From 30b46044de19fc2aee82c37bbb3a3850cd842069 Mon Sep 17 00:00:00 2001
From: root <root@rivolta.investici.org>
Date: Sat, 26 Mar 2011 14:28:51 +0000
Subject: [PATCH] added nextgen gallery plugin

---
 .../plugins/nextgen-gallery/admin/about.php   |  183 +
 .../nextgen-gallery/admin/addgallery.php      |  417 ++
 .../plugins/nextgen-gallery/admin/admin.php   |  453 ++
 .../plugins/nextgen-gallery/admin/ajax.php    |  446 ++
 .../plugins/nextgen-gallery/admin/album.php   |  582 +++
 .../admin/css/images/dropdown.png             |  Bin 0 -> 217 bytes
 .../admin/css/images/ui-anim_basic_16x16.gif  |  Bin 0 -> 1553 bytes
 .../css/images/ui-icons_222222_256x240.png    |  Bin 0 -> 4369 bytes
 .../css/images/ui-icons_cccccc_256x240.png    |  Bin 0 -> 4369 bytes
 .../css/images/ui-icons_ffffff_256x240.png    |  Bin 0 -> 4369 bytes
 .../nextgen-gallery/admin/css/jquery.ui.css   |  139 +
 .../admin/css/jquery.ui.tabs.css              |  158 +
 .../nextgen-gallery/admin/css/menu.css        |   14 +
 .../admin/css/nggColorPicker.css              |   14 +
 .../nextgen-gallery/admin/css/nggSorter.css   |   76 +
 .../nextgen-gallery/admin/css/nggadmin.css    |  462 ++
 .../nextgen-gallery/admin/css/tags-admin.css  |   10 +
 .../nextgen-gallery/admin/edit-thumbnail.php  |  173 +
 .../nextgen-gallery/admin/functions.php       | 1484 +++++++
 .../admin/images/icon-amazon.gif              |  Bin 0 -> 244 bytes
 .../admin/images/icon-paypal.gif              |  Bin 0 -> 220 bytes
 .../admin/images/icon-rating.png              |  Bin 0 -> 728 bytes
 .../admin/images/icon-translate.png           |  Bin 0 -> 819 bytes
 .../admin/images/marker_bottom.gif            |  Bin 0 -> 45 bytes
 .../admin/images/marker_middle.gif            |  Bin 0 -> 48 bytes
 .../admin/images/marker_top.gif               |  Bin 0 -> 45 bytes
 .../admin/images/menu-bits.gif                |  Bin 0 -> 1194 bytes
 .../nextgen-gallery/admin/images/nextgen.png  |  Bin 0 -> 738 bytes
 .../admin/images/nextgen_16_color.png         |  Bin 0 -> 462 bytes
 .../admin/images/nextgen_16_grey.png          |  Bin 0 -> 400 bytes
 .../admin/images/nextgen_32_color.png         |  Bin 0 -> 1108 bytes
 .../admin/images/nextgen_32_grey.png          |  Bin 0 -> 898 bytes
 .../nextgen-gallery/admin/images/select.png   |  Bin 0 -> 506 bytes
 .../plugins/nextgen-gallery/admin/index.html  |    0
 .../plugins/nextgen-gallery/admin/install.php |  293 ++
 .../admin/js/Jcrop/css/Jcrop.gif              |  Bin 0 -> 329 bytes
 .../admin/js/Jcrop/css/jquery.Jcrop.css       |   35 +
 .../admin/js/Jcrop/js/jquery.Jcrop.js         | 1197 +++++
 .../admin/js/colorpicker/css/colorpicker.css  |  161 +
 .../admin/js/colorpicker/images/blank.gif     |  Bin 0 -> 49 bytes
 .../images/colorpicker_background.png         |  Bin 0 -> 1897 bytes
 .../js/colorpicker/images/colorpicker_hex.png |  Bin 0 -> 532 bytes
 .../colorpicker/images/colorpicker_hsb_b.png  |  Bin 0 -> 970 bytes
 .../colorpicker/images/colorpicker_hsb_h.png  |  Bin 0 -> 1012 bytes
 .../colorpicker/images/colorpicker_hsb_s.png  |  Bin 0 -> 1171 bytes
 .../colorpicker/images/colorpicker_indic.gif  |  Bin 0 -> 86 bytes
 .../images/colorpicker_overlay.png            |  Bin 0 -> 10355 bytes
 .../colorpicker/images/colorpicker_rgb_b.png  |  Bin 0 -> 970 bytes
 .../colorpicker/images/colorpicker_rgb_g.png  |  Bin 0 -> 1069 bytes
 .../colorpicker/images/colorpicker_rgb_r.png  |  Bin 0 -> 1066 bytes
 .../colorpicker/images/colorpicker_select.gif |  Bin 0 -> 78 bytes
 .../colorpicker/images/colorpicker_submit.png |  Bin 0 -> 984 bytes
 .../colorpicker/images/custom_background.png  |  Bin 0 -> 1916 bytes
 .../js/colorpicker/images/custom_hex.png      |  Bin 0 -> 562 bytes
 .../js/colorpicker/images/custom_hsb_b.png    |  Bin 0 -> 1097 bytes
 .../js/colorpicker/images/custom_hsb_h.png    |  Bin 0 -> 970 bytes
 .../js/colorpicker/images/custom_hsb_s.png    |  Bin 0 -> 1168 bytes
 .../js/colorpicker/images/custom_indic.gif    |  Bin 0 -> 86 bytes
 .../js/colorpicker/images/custom_rgb_b.png    |  Bin 0 -> 1008 bytes
 .../js/colorpicker/images/custom_rgb_g.png    |  Bin 0 -> 1069 bytes
 .../js/colorpicker/images/custom_rgb_r.png    |  Bin 0 -> 1018 bytes
 .../js/colorpicker/images/custom_submit.png   |  Bin 0 -> 997 bytes
 .../admin/js/colorpicker/images/select.png    |  Bin 0 -> 506 bytes
 .../admin/js/colorpicker/images/select2.png   |  Bin 0 -> 518 bytes
 .../admin/js/colorpicker/images/slider.png    |  Bin 0 -> 315 bytes
 .../admin/js/colorpicker/js/colorpicker.js    |  484 +++
 .../admin/js/jquery-ui-1.8.6.min.js           |  391 ++
 .../admin/js/jquery.MultiFile.js              |  535 +++
 .../admin/js/jquery.MultiFile.pack.js         |   11 +
 .../admin/js/jquery.ui.autocomplete.min.js    |   31 +
 .../admin/js/jquery.ui.tabs.js                |  532 +++
 .../admin/js/jquery.ui.tabs.pack.js           |   10 +
 .../js/jqueryFileTree/images/directory.png    |  Bin 0 -> 537 bytes
 .../js/jqueryFileTree/images/folder_open.png  |  Bin 0 -> 583 bytes
 .../js/jqueryFileTree/images/spinner.gif      |  Bin 0 -> 2530 bytes
 .../js/jqueryFileTree/jqueryFileTree.css      |   81 +
 .../admin/js/jqueryFileTree/jqueryFileTree.js |   98 +
 .../nextgen-gallery/admin/js/ngg.ajax.js      |  117 +
 .../admin/js/ngg.autocomplete.js              |   72 +
 .../admin/js/ngg.progressbar.js               |   92 +
 .../nextgen-gallery/admin/js/sorter.js        |  294 ++
 .../nextgen-gallery/admin/js/swfobject.js     |    4 +
 .../admin/js/swfupload.handler.js             |  153 +
 .../nextgen-gallery/admin/js/swfupload.js     |  986 +++++
 .../nextgen-gallery/admin/js/swfupload.swf    |  Bin 0 -> 12787 bytes
 .../admin/manage-galleries.php                |  382 ++
 .../nextgen-gallery/admin/manage-images.php   |  673 +++
 .../nextgen-gallery/admin/manage-sort.php     |  107 +
 .../plugins/nextgen-gallery/admin/manage.php  |  551 +++
 .../nextgen-gallery/admin/media-upload.php    |  282 ++
 .../nextgen-gallery/admin/overview.php        |  850 ++++
 .../plugins/nextgen-gallery/admin/publish.php |   74 +
 .../plugins/nextgen-gallery/admin/roles.php   |  139 +
 .../plugins/nextgen-gallery/admin/rotate.php  |   95 +
 .../nextgen-gallery/admin/settings.php        |  836 ++++
 .../plugins/nextgen-gallery/admin/setup.php   |   58 +
 .../nextgen-gallery/admin/showmeta.php        |  124 +
 .../plugins/nextgen-gallery/admin/style.php   |  252 ++
 .../plugins/nextgen-gallery/admin/tags.php    |  288 ++
 .../admin/tinymce/editor_plugin.js            |   77 +
 .../nextgen-gallery/admin/tinymce/langs/de.js |    6 +
 .../admin/tinymce/langs/de_de.js              |    6 +
 .../nextgen-gallery/admin/tinymce/langs/en.js |    6 +
 .../admin/tinymce/langs/en_US.js              |    6 +
 .../nextgen-gallery/admin/tinymce/nextgen.gif |  Bin 0 -> 963 bytes
 .../nextgen-gallery/admin/tinymce/tinymce.js  |   76 +
 .../nextgen-gallery/admin/tinymce/tinymce.php |  101 +
 .../nextgen-gallery/admin/tinymce/window.php  |  143 +
 .../plugins/nextgen-gallery/admin/upgrade.php |  472 ++
 .../plugins/nextgen-gallery/admin/upload.php  |   52 +
 .../plugins/nextgen-gallery/admin/wpmu.php    |  131 +
 .../plugins/nextgen-gallery/changelog.txt     |  643 +++
 .../nextgen-gallery/css/Black_Minimalism.css  |  375 ++
 .../plugins/nextgen-gallery/css/albumset.gif  |  Bin 0 -> 814 bytes
 .../nextgen-gallery/css/hovereffect.css       |  425 ++
 .../nextgen-gallery/css/ngg_dkret3.css        |  318 ++
 .../plugins/nextgen-gallery/css/ngg_k2.css    |  330 ++
 .../nextgen-gallery/css/ngg_shadow.css        |  371 ++
 .../nextgen-gallery/css/ngg_shadow2.css       |  379 ++
 .../plugins/nextgen-gallery/css/nggallery.css |  396 ++
 .../plugins/nextgen-gallery/css/shadow.gif    |  Bin 0 -> 4364 bytes
 .../nextgen-gallery/css/shadowAlpha.png       |  Bin 0 -> 3403 bytes
 .../plugins/nextgen-gallery/fonts/arial.ttf   |  Bin 0 -> 311636 bytes
 .../nextgen-gallery/images/ajax-loader.gif    |  Bin 0 -> 673 bytes
 .../plugins/nextgen-gallery/images/loader.gif |  Bin 0 -> 6820 bytes
 .../nextgen-gallery/images/mrss-icon.gif      |  Bin 0 -> 1040 bytes
 .../nextgen-gallery/images/piclens.gif        |  Bin 0 -> 1443 bytes
 wp-content/plugins/nextgen-gallery/index.html |    0
 .../nextgen-gallery/js/jquery.cycle.all.js    | 1331 ++++++
 .../js/jquery.cycle.all.min.js                |   21 +
 wp-content/plugins/nextgen-gallery/js/ngg.js  |  188 +
 .../nextgen-gallery/js/ngg.slideshow.js       |  135 +
 .../nextgen-gallery/js/ngg.slideshow.min.js   |    9 +
 .../nextgen-gallery/lang/nggallery-de_DE.mo   |  Bin 0 -> 71717 bytes
 .../nextgen-gallery/lang/nggallery-de_DE.po   | 3838 +++++++++++++++++
 .../nextgen-gallery/lang/nggallery.pot        | 3545 +++++++++++++++
 .../plugins/nextgen-gallery/lib/core.php      |  524 +++
 .../nextgen-gallery/lib/gd.thumbnail.inc.php  |  950 ++++
 .../plugins/nextgen-gallery/lib/image.php     |  214 +
 .../nextgen-gallery/lib/imagemagick.inc.php   |  598 +++
 .../plugins/nextgen-gallery/lib/locale.php    |  152 +
 .../plugins/nextgen-gallery/lib/media-rss.php |  248 ++
 .../plugins/nextgen-gallery/lib/meta.php      |  540 +++
 .../plugins/nextgen-gallery/lib/multisite.php |   57 +
 .../nextgen-gallery/lib/navigation.php        |  117 +
 .../plugins/nextgen-gallery/lib/ngg-db.php    | 1100 +++++
 .../nextgen-gallery/lib/post-thumbnail.php    |  215 +
 .../plugins/nextgen-gallery/lib/rewrite.php   |  278 ++
 .../nextgen-gallery/lib/shortcodes.php        |  375 ++
 .../plugins/nextgen-gallery/lib/swfobject.php |  197 +
 .../plugins/nextgen-gallery/lib/tags.php      |  380 ++
 .../plugins/nextgen-gallery/lib/xmlrpc.php    |  734 ++++
 .../plugins/nextgen-gallery/ngg-config.php    |   33 +
 .../plugins/nextgen-gallery/nggallery.php     |  526 +++
 .../plugins/nextgen-gallery/nggfunctions.php  | 1116 +++++
 .../plugins/nextgen-gallery/nggshow.php       |   68 +
 wp-content/plugins/nextgen-gallery/readme.txt |  775 ++++
 .../plugins/nextgen-gallery/screenshot-1.jpg  |  Bin 0 -> 24830 bytes
 .../plugins/nextgen-gallery/screenshot-2.jpg  |  Bin 0 -> 17482 bytes
 .../plugins/nextgen-gallery/screenshot-3.jpg  |  Bin 0 -> 23568 bytes
 .../plugins/nextgen-gallery/screenshot-4.jpg  |  Bin 0 -> 24298 bytes
 .../plugins/nextgen-gallery/screenshot-5.jpg  |  Bin 0 -> 33472 bytes
 .../plugins/nextgen-gallery/screenshot-6.jpg  |  Bin 0 -> 39666 bytes
 .../shutter/shutter-reloaded.css              |   93 +
 .../shutter/shutter-reloaded.js               |  243 ++
 .../nextgen-gallery/view/album-compact.php    |   43 +
 .../nextgen-gallery/view/album-extend.php     |   43 +
 .../nextgen-gallery/view/gallery-caption.php  |   61 +
 .../nextgen-gallery/view/gallery-carousel.php |   56 +
 .../plugins/nextgen-gallery/view/gallery.php  |   62 +
 .../view/imagebrowser-caption.php             |   37 +
 .../view/imagebrowser-exif.php                |   67 +
 .../nextgen-gallery/view/imagebrowser.php     |   37 +
 .../nextgen-gallery/view/singlepic.php        |   26 +
 .../widgets/media-rss-widget.php              |  140 +
 .../nextgen-gallery/widgets/widgets.php       |  406 ++
 .../plugins/nextgen-gallery/xml/ajax.php      |   40 +
 .../nextgen-gallery/xml/imagerotator.php      |   54 +
 .../plugins/nextgen-gallery/xml/json.php      |  274 ++
 .../plugins/nextgen-gallery/xml/media-rss.php |  124 +
 180 files changed, 39282 insertions(+)
 create mode 100644 wp-content/plugins/nextgen-gallery/admin/about.php
 create mode 100644 wp-content/plugins/nextgen-gallery/admin/addgallery.php
 create mode 100644 wp-content/plugins/nextgen-gallery/admin/admin.php
 create mode 100644 wp-content/plugins/nextgen-gallery/admin/ajax.php
 create mode 100644 wp-content/plugins/nextgen-gallery/admin/album.php
 create mode 100644 wp-content/plugins/nextgen-gallery/admin/css/images/dropdown.png
 create mode 100644 wp-content/plugins/nextgen-gallery/admin/css/images/ui-anim_basic_16x16.gif
 create mode 100644 wp-content/plugins/nextgen-gallery/admin/css/images/ui-icons_222222_256x240.png
 create mode 100644 wp-content/plugins/nextgen-gallery/admin/css/images/ui-icons_cccccc_256x240.png
 create mode 100644 wp-content/plugins/nextgen-gallery/admin/css/images/ui-icons_ffffff_256x240.png
 create mode 100644 wp-content/plugins/nextgen-gallery/admin/css/jquery.ui.css
 create mode 100644 wp-content/plugins/nextgen-gallery/admin/css/jquery.ui.tabs.css
 create mode 100644 wp-content/plugins/nextgen-gallery/admin/css/menu.css
 create mode 100644 wp-content/plugins/nextgen-gallery/admin/css/nggColorPicker.css
 create mode 100644 wp-content/plugins/nextgen-gallery/admin/css/nggSorter.css
 create mode 100644 wp-content/plugins/nextgen-gallery/admin/css/nggadmin.css
 create mode 100644 wp-content/plugins/nextgen-gallery/admin/css/tags-admin.css
 create mode 100644 wp-content/plugins/nextgen-gallery/admin/edit-thumbnail.php
 create mode 100644 wp-content/plugins/nextgen-gallery/admin/functions.php
 create mode 100644 wp-content/plugins/nextgen-gallery/admin/images/icon-amazon.gif
 create mode 100644 wp-content/plugins/nextgen-gallery/admin/images/icon-paypal.gif
 create mode 100644 wp-content/plugins/nextgen-gallery/admin/images/icon-rating.png
 create mode 100644 wp-content/plugins/nextgen-gallery/admin/images/icon-translate.png
 create mode 100644 wp-content/plugins/nextgen-gallery/admin/images/marker_bottom.gif
 create mode 100644 wp-content/plugins/nextgen-gallery/admin/images/marker_middle.gif
 create mode 100644 wp-content/plugins/nextgen-gallery/admin/images/marker_top.gif
 create mode 100644 wp-content/plugins/nextgen-gallery/admin/images/menu-bits.gif
 create mode 100644 wp-content/plugins/nextgen-gallery/admin/images/nextgen.png
 create mode 100644 wp-content/plugins/nextgen-gallery/admin/images/nextgen_16_color.png
 create mode 100644 wp-content/plugins/nextgen-gallery/admin/images/nextgen_16_grey.png
 create mode 100644 wp-content/plugins/nextgen-gallery/admin/images/nextgen_32_color.png
 create mode 100644 wp-content/plugins/nextgen-gallery/admin/images/nextgen_32_grey.png
 create mode 100644 wp-content/plugins/nextgen-gallery/admin/images/select.png
 create mode 100644 wp-content/plugins/nextgen-gallery/admin/index.html
 create mode 100644 wp-content/plugins/nextgen-gallery/admin/install.php
 create mode 100644 wp-content/plugins/nextgen-gallery/admin/js/Jcrop/css/Jcrop.gif
 create mode 100644 wp-content/plugins/nextgen-gallery/admin/js/Jcrop/css/jquery.Jcrop.css
 create mode 100644 wp-content/plugins/nextgen-gallery/admin/js/Jcrop/js/jquery.Jcrop.js
 create mode 100644 wp-content/plugins/nextgen-gallery/admin/js/colorpicker/css/colorpicker.css
 create mode 100644 wp-content/plugins/nextgen-gallery/admin/js/colorpicker/images/blank.gif
 create mode 100644 wp-content/plugins/nextgen-gallery/admin/js/colorpicker/images/colorpicker_background.png
 create mode 100644 wp-content/plugins/nextgen-gallery/admin/js/colorpicker/images/colorpicker_hex.png
 create mode 100644 wp-content/plugins/nextgen-gallery/admin/js/colorpicker/images/colorpicker_hsb_b.png
 create mode 100644 wp-content/plugins/nextgen-gallery/admin/js/colorpicker/images/colorpicker_hsb_h.png
 create mode 100644 wp-content/plugins/nextgen-gallery/admin/js/colorpicker/images/colorpicker_hsb_s.png
 create mode 100644 wp-content/plugins/nextgen-gallery/admin/js/colorpicker/images/colorpicker_indic.gif
 create mode 100644 wp-content/plugins/nextgen-gallery/admin/js/colorpicker/images/colorpicker_overlay.png
 create mode 100644 wp-content/plugins/nextgen-gallery/admin/js/colorpicker/images/colorpicker_rgb_b.png
 create mode 100644 wp-content/plugins/nextgen-gallery/admin/js/colorpicker/images/colorpicker_rgb_g.png
 create mode 100644 wp-content/plugins/nextgen-gallery/admin/js/colorpicker/images/colorpicker_rgb_r.png
 create mode 100644 wp-content/plugins/nextgen-gallery/admin/js/colorpicker/images/colorpicker_select.gif
 create mode 100644 wp-content/plugins/nextgen-gallery/admin/js/colorpicker/images/colorpicker_submit.png
 create mode 100644 wp-content/plugins/nextgen-gallery/admin/js/colorpicker/images/custom_background.png
 create mode 100644 wp-content/plugins/nextgen-gallery/admin/js/colorpicker/images/custom_hex.png
 create mode 100644 wp-content/plugins/nextgen-gallery/admin/js/colorpicker/images/custom_hsb_b.png
 create mode 100644 wp-content/plugins/nextgen-gallery/admin/js/colorpicker/images/custom_hsb_h.png
 create mode 100644 wp-content/plugins/nextgen-gallery/admin/js/colorpicker/images/custom_hsb_s.png
 create mode 100644 wp-content/plugins/nextgen-gallery/admin/js/colorpicker/images/custom_indic.gif
 create mode 100644 wp-content/plugins/nextgen-gallery/admin/js/colorpicker/images/custom_rgb_b.png
 create mode 100644 wp-content/plugins/nextgen-gallery/admin/js/colorpicker/images/custom_rgb_g.png
 create mode 100644 wp-content/plugins/nextgen-gallery/admin/js/colorpicker/images/custom_rgb_r.png
 create mode 100644 wp-content/plugins/nextgen-gallery/admin/js/colorpicker/images/custom_submit.png
 create mode 100644 wp-content/plugins/nextgen-gallery/admin/js/colorpicker/images/select.png
 create mode 100644 wp-content/plugins/nextgen-gallery/admin/js/colorpicker/images/select2.png
 create mode 100644 wp-content/plugins/nextgen-gallery/admin/js/colorpicker/images/slider.png
 create mode 100644 wp-content/plugins/nextgen-gallery/admin/js/colorpicker/js/colorpicker.js
 create mode 100644 wp-content/plugins/nextgen-gallery/admin/js/jquery-ui-1.8.6.min.js
 create mode 100644 wp-content/plugins/nextgen-gallery/admin/js/jquery.MultiFile.js
 create mode 100644 wp-content/plugins/nextgen-gallery/admin/js/jquery.MultiFile.pack.js
 create mode 100644 wp-content/plugins/nextgen-gallery/admin/js/jquery.ui.autocomplete.min.js
 create mode 100644 wp-content/plugins/nextgen-gallery/admin/js/jquery.ui.tabs.js
 create mode 100644 wp-content/plugins/nextgen-gallery/admin/js/jquery.ui.tabs.pack.js
 create mode 100644 wp-content/plugins/nextgen-gallery/admin/js/jqueryFileTree/images/directory.png
 create mode 100644 wp-content/plugins/nextgen-gallery/admin/js/jqueryFileTree/images/folder_open.png
 create mode 100644 wp-content/plugins/nextgen-gallery/admin/js/jqueryFileTree/images/spinner.gif
 create mode 100644 wp-content/plugins/nextgen-gallery/admin/js/jqueryFileTree/jqueryFileTree.css
 create mode 100644 wp-content/plugins/nextgen-gallery/admin/js/jqueryFileTree/jqueryFileTree.js
 create mode 100644 wp-content/plugins/nextgen-gallery/admin/js/ngg.ajax.js
 create mode 100644 wp-content/plugins/nextgen-gallery/admin/js/ngg.autocomplete.js
 create mode 100644 wp-content/plugins/nextgen-gallery/admin/js/ngg.progressbar.js
 create mode 100644 wp-content/plugins/nextgen-gallery/admin/js/sorter.js
 create mode 100644 wp-content/plugins/nextgen-gallery/admin/js/swfobject.js
 create mode 100644 wp-content/plugins/nextgen-gallery/admin/js/swfupload.handler.js
 create mode 100644 wp-content/plugins/nextgen-gallery/admin/js/swfupload.js
 create mode 100644 wp-content/plugins/nextgen-gallery/admin/js/swfupload.swf
 create mode 100644 wp-content/plugins/nextgen-gallery/admin/manage-galleries.php
 create mode 100644 wp-content/plugins/nextgen-gallery/admin/manage-images.php
 create mode 100644 wp-content/plugins/nextgen-gallery/admin/manage-sort.php
 create mode 100644 wp-content/plugins/nextgen-gallery/admin/manage.php
 create mode 100644 wp-content/plugins/nextgen-gallery/admin/media-upload.php
 create mode 100644 wp-content/plugins/nextgen-gallery/admin/overview.php
 create mode 100644 wp-content/plugins/nextgen-gallery/admin/publish.php
 create mode 100644 wp-content/plugins/nextgen-gallery/admin/roles.php
 create mode 100644 wp-content/plugins/nextgen-gallery/admin/rotate.php
 create mode 100644 wp-content/plugins/nextgen-gallery/admin/settings.php
 create mode 100644 wp-content/plugins/nextgen-gallery/admin/setup.php
 create mode 100644 wp-content/plugins/nextgen-gallery/admin/showmeta.php
 create mode 100644 wp-content/plugins/nextgen-gallery/admin/style.php
 create mode 100644 wp-content/plugins/nextgen-gallery/admin/tags.php
 create mode 100644 wp-content/plugins/nextgen-gallery/admin/tinymce/editor_plugin.js
 create mode 100644 wp-content/plugins/nextgen-gallery/admin/tinymce/langs/de.js
 create mode 100644 wp-content/plugins/nextgen-gallery/admin/tinymce/langs/de_de.js
 create mode 100644 wp-content/plugins/nextgen-gallery/admin/tinymce/langs/en.js
 create mode 100644 wp-content/plugins/nextgen-gallery/admin/tinymce/langs/en_US.js
 create mode 100644 wp-content/plugins/nextgen-gallery/admin/tinymce/nextgen.gif
 create mode 100644 wp-content/plugins/nextgen-gallery/admin/tinymce/tinymce.js
 create mode 100644 wp-content/plugins/nextgen-gallery/admin/tinymce/tinymce.php
 create mode 100644 wp-content/plugins/nextgen-gallery/admin/tinymce/window.php
 create mode 100644 wp-content/plugins/nextgen-gallery/admin/upgrade.php
 create mode 100644 wp-content/plugins/nextgen-gallery/admin/upload.php
 create mode 100644 wp-content/plugins/nextgen-gallery/admin/wpmu.php
 create mode 100644 wp-content/plugins/nextgen-gallery/changelog.txt
 create mode 100644 wp-content/plugins/nextgen-gallery/css/Black_Minimalism.css
 create mode 100644 wp-content/plugins/nextgen-gallery/css/albumset.gif
 create mode 100644 wp-content/plugins/nextgen-gallery/css/hovereffect.css
 create mode 100644 wp-content/plugins/nextgen-gallery/css/ngg_dkret3.css
 create mode 100644 wp-content/plugins/nextgen-gallery/css/ngg_k2.css
 create mode 100644 wp-content/plugins/nextgen-gallery/css/ngg_shadow.css
 create mode 100644 wp-content/plugins/nextgen-gallery/css/ngg_shadow2.css
 create mode 100644 wp-content/plugins/nextgen-gallery/css/nggallery.css
 create mode 100644 wp-content/plugins/nextgen-gallery/css/shadow.gif
 create mode 100644 wp-content/plugins/nextgen-gallery/css/shadowAlpha.png
 create mode 100644 wp-content/plugins/nextgen-gallery/fonts/arial.ttf
 create mode 100644 wp-content/plugins/nextgen-gallery/images/ajax-loader.gif
 create mode 100644 wp-content/plugins/nextgen-gallery/images/loader.gif
 create mode 100644 wp-content/plugins/nextgen-gallery/images/mrss-icon.gif
 create mode 100644 wp-content/plugins/nextgen-gallery/images/piclens.gif
 create mode 100644 wp-content/plugins/nextgen-gallery/index.html
 create mode 100644 wp-content/plugins/nextgen-gallery/js/jquery.cycle.all.js
 create mode 100644 wp-content/plugins/nextgen-gallery/js/jquery.cycle.all.min.js
 create mode 100644 wp-content/plugins/nextgen-gallery/js/ngg.js
 create mode 100644 wp-content/plugins/nextgen-gallery/js/ngg.slideshow.js
 create mode 100644 wp-content/plugins/nextgen-gallery/js/ngg.slideshow.min.js
 create mode 100644 wp-content/plugins/nextgen-gallery/lang/nggallery-de_DE.mo
 create mode 100644 wp-content/plugins/nextgen-gallery/lang/nggallery-de_DE.po
 create mode 100644 wp-content/plugins/nextgen-gallery/lang/nggallery.pot
 create mode 100644 wp-content/plugins/nextgen-gallery/lib/core.php
 create mode 100644 wp-content/plugins/nextgen-gallery/lib/gd.thumbnail.inc.php
 create mode 100644 wp-content/plugins/nextgen-gallery/lib/image.php
 create mode 100644 wp-content/plugins/nextgen-gallery/lib/imagemagick.inc.php
 create mode 100644 wp-content/plugins/nextgen-gallery/lib/locale.php
 create mode 100644 wp-content/plugins/nextgen-gallery/lib/media-rss.php
 create mode 100644 wp-content/plugins/nextgen-gallery/lib/meta.php
 create mode 100644 wp-content/plugins/nextgen-gallery/lib/multisite.php
 create mode 100644 wp-content/plugins/nextgen-gallery/lib/navigation.php
 create mode 100644 wp-content/plugins/nextgen-gallery/lib/ngg-db.php
 create mode 100644 wp-content/plugins/nextgen-gallery/lib/post-thumbnail.php
 create mode 100644 wp-content/plugins/nextgen-gallery/lib/rewrite.php
 create mode 100644 wp-content/plugins/nextgen-gallery/lib/shortcodes.php
 create mode 100644 wp-content/plugins/nextgen-gallery/lib/swfobject.php
 create mode 100644 wp-content/plugins/nextgen-gallery/lib/tags.php
 create mode 100644 wp-content/plugins/nextgen-gallery/lib/xmlrpc.php
 create mode 100644 wp-content/plugins/nextgen-gallery/ngg-config.php
 create mode 100644 wp-content/plugins/nextgen-gallery/nggallery.php
 create mode 100644 wp-content/plugins/nextgen-gallery/nggfunctions.php
 create mode 100644 wp-content/plugins/nextgen-gallery/nggshow.php
 create mode 100644 wp-content/plugins/nextgen-gallery/readme.txt
 create mode 100644 wp-content/plugins/nextgen-gallery/screenshot-1.jpg
 create mode 100644 wp-content/plugins/nextgen-gallery/screenshot-2.jpg
 create mode 100644 wp-content/plugins/nextgen-gallery/screenshot-3.jpg
 create mode 100644 wp-content/plugins/nextgen-gallery/screenshot-4.jpg
 create mode 100644 wp-content/plugins/nextgen-gallery/screenshot-5.jpg
 create mode 100644 wp-content/plugins/nextgen-gallery/screenshot-6.jpg
 create mode 100644 wp-content/plugins/nextgen-gallery/shutter/shutter-reloaded.css
 create mode 100644 wp-content/plugins/nextgen-gallery/shutter/shutter-reloaded.js
 create mode 100644 wp-content/plugins/nextgen-gallery/view/album-compact.php
 create mode 100644 wp-content/plugins/nextgen-gallery/view/album-extend.php
 create mode 100644 wp-content/plugins/nextgen-gallery/view/gallery-caption.php
 create mode 100644 wp-content/plugins/nextgen-gallery/view/gallery-carousel.php
 create mode 100644 wp-content/plugins/nextgen-gallery/view/gallery.php
 create mode 100644 wp-content/plugins/nextgen-gallery/view/imagebrowser-caption.php
 create mode 100644 wp-content/plugins/nextgen-gallery/view/imagebrowser-exif.php
 create mode 100644 wp-content/plugins/nextgen-gallery/view/imagebrowser.php
 create mode 100644 wp-content/plugins/nextgen-gallery/view/singlepic.php
 create mode 100644 wp-content/plugins/nextgen-gallery/widgets/media-rss-widget.php
 create mode 100644 wp-content/plugins/nextgen-gallery/widgets/widgets.php
 create mode 100644 wp-content/plugins/nextgen-gallery/xml/ajax.php
 create mode 100644 wp-content/plugins/nextgen-gallery/xml/imagerotator.php
 create mode 100644 wp-content/plugins/nextgen-gallery/xml/json.php
 create mode 100644 wp-content/plugins/nextgen-gallery/xml/media-rss.php

diff --git a/wp-content/plugins/nextgen-gallery/admin/about.php b/wp-content/plugins/nextgen-gallery/admin/about.php
new file mode 100644
index 000000000..271846fc2
--- /dev/null
+++ b/wp-content/plugins/nextgen-gallery/admin/about.php
@@ -0,0 +1,183 @@
+<?php  
+if(preg_match('#' . basename(__FILE__) . '#', $_SERVER['PHP_SELF'])) { die('You are not allowed to call this page directly.'); }
+
+	function nggallery_admin_about()  {	
+
+	?>
+
+	<div class="wrap">
+    <?php screen_icon( 'nextgen-gallery' ); ?>
+	<h2><?php _e('Copyright notes / Credits', 'nggallery') ;?></h2>
+	<div id="poststuff">
+		<div class="postbox">
+		    <h3 class="hndle"><span><?php _e('NextGEN DEV Team', 'nggallery'); ?></span></h3>
+		    <div class="inside">
+				<p><?php _e('This plugin is primarily developed, maintained, supported, documented by', 'nggallery'); ?> <a href="http://alexrabe.de" target="_blank">Alex Rabe</a>. <?php _e('There are many other folks who have made contributions to this project :', 'nggallery') ;?></p>
+				<p><?php ngg_list_contributors(); ?></p>
+			</div>
+		</div>
+		<div class="postbox">
+			<h3 class="hndle"><span><?php _e('Contributors / Tribute to', 'nggallery'); ?></span></h3>
+		    <div class="inside">
+				<p><?php _e('If you study the code of this plugin, you will find out that we mixed a lot of good already existing code and ideas together.', 'nggallery') ;?>
+				<?php _e('So, we would like to thank the following people for their pioneer work (without this work it\'s impossible to create such a plugin so fast)', 'nggallery') ;?></p>		
+				<ul class="ngg-list">
+				<li><a href="http://wordpress.org" target="_blank">The WordPress Team</a> <?php _e('for their great documented code', 'nggallery') ;?></li>
+				<li><a href="http://jquery.com" target="_blank">The jQuery Team</a> <?php _e('for jQuery, which is the best Web2.0 framework', 'nggallery') ;?></li>
+				<li><a href="http://www.gen-x-design.com" target="_blank">Ian Selby</a> <?php _e('for the fantastic PHP Thumbnail Class', 'nggallery') ;?></li>
+				<li><a href="http://www.lesterchan.net/" target="_blank">GaMerZ</a> <?php _e('for a lot of very useful plugins and ideas', 'nggallery') ;?></li>
+				<li><a href="http://www.laptoptips.ca/" target="_blank">Andrew Ozz</a> <?php _e('for Shutter Reloaded, a real lightweight image effect', 'nggallery') ;?></li>
+				<li><a href="http://www.jeroenwijering.com/" target="_blank">Jeroen Wijering</a> <?php _e('for the best Media Flash Scripts on earth', 'nggallery') ;?></li>
+				<li><a href="http://field2.com" target="_blank">Ben Dunkle</a> <?php _e('for the Gallery Icon', 'nggallery') ;?></li>
+				<li><a href="http://watermark.malcherek.com/" target="_blank">Marek Malcherek</a> <?php _e('for the Watermark plugin', 'nggallery') ;?></li>
+				</ul>
+				<p><?php _e('If you didn\'t find your name on this list and there is some code which I integrate in my plugin, don\'t hesitate to send me a mail.', 'nggallery') ;?></p>		
+			</div>
+		</div>
+		<div class="postbox">
+			<h3 class="hndle"><span><?php _e('How to support ?', 'nggallery'); ?></span></h3>
+			<div class="inside">
+				<p><?php _e('There exist several ways to contribute, help or support us in this work. Non of them are mandatory.', 'nggallery') ;?></p>
+				<ul class="ngg-list">
+					<li><strong><?php _e('Send us bugfixes / code changes', 'nggallery') ;?></strong><br /><?php _e('The most motivated support for this plugin are your ideas and brain work', 'nggallery') ;?></li>
+					<li><strong><?php _e('Translate the plugin', 'nggallery') ;?></strong><br /><?php _e('To help people to work with this plugin, I would like to have it in all available languages', 'nggallery') ;?></li>
+					<li><strong><?php _e('Donate the work via paypal', 'nggallery') ;?></strong><br />
+						<form action="https://www.paypal.com/cgi-bin/webscr" method="post" >
+						<input type="hidden" name="cmd" value="_xclick"/>
+						<input type="hidden" name="business" value="alter.ego@boelinger.com"/>
+						<input type="hidden" name="item_name" value="NextGEN Gallery plugin"/>
+						<input type="hidden" name="no_shipping" value="1"/>
+						<input type="hidden" name="return" value="http://alexrabe.de/" />
+						<input type="hidden" name="cancel_return" value="http://alexrabe.de/"/>
+						<input type="hidden" name="lc" value="US" /> 
+						<input type="hidden" name="currency_code" value="EUR"/>
+						<input type="hidden" name="tax" value="0"/>
+						<input type="hidden" name="bn" value="PP-DonationsBF"/>
+						<input type="image" src="https://www.paypal.com/en_US/i/btn/x-click-but21.gif" name="submit" alt="Make payments with PayPal - it's fast, free and secure!" style="border: none;"/>
+						</form><?php _e('No doubt a very useful and easy motivation :-)', 'nggallery') ;?>
+					</li>
+					<li><strong><?php _e('Place a link to the plugin in your blog/webpage', 'nggallery') ;?></strong><br /><?php _e('Yes, share and trackback is also a good support for this work ', 'nggallery') ;?></li>
+				</ul>
+			</div>
+		</div>
+		<div class="postbox" id="donators">
+			<h3 class="hndle"><span><?php _e('Thanks!', 'nggallery'); ?></span></h3>
+			<div class="inside">
+				<p><?php _e('We would like to thank this people which support us in the work :', 'nggallery'); ?></p>
+				<p><a href="http://www.boelinger.com/heike/" target="_blank">HEIKE</a>, <?php ngg_list_support(); ?></p>
+			</div>
+		</div>
+	</div>
+	</div>
+	
+	<?php
+}
+
+function ngg_list_contributors()	{
+/* The list of my contributors. Thanks to all of them !*/
+	
+	$contributors = array(
+	'Anty (Code contributor)' => 'http://www.anty.at/',
+	'Bjoern von Prollius (Code contributor)' => 'http://www.prollius.de/',
+	'Simone Fumagalli (Code contributor)' => 'http://www.iliveinperego.com/',
+	'Vincent Prat (Code contributor)' => 'http://www.vincentprat.info',
+	'Frederic De Ranter (AJAX code contributor)' => 'http://li.deranter.com/',
+	'Christian Arnold (Code contributor)' => 'http://blog.arctic-media.de/',
+	'Thomas Matzke (Album code contributor)' => 'http://mufuschnu.mu.funpic.de/',
+	'KeViN (Sidebar Widget developer)' => 'http://www.kev.hu/',
+	'Lazy (German Translation)' => 'http://www.lazychris.de/',
+	'Lise (French Translation)' => 'http://liseweb.fr/',
+	'Anja (Dutch Translation)' => 'http://www.werkgroepen.net/wordpress',
+	'Adrian (Indonesian Translation)' => 'http://adrian.web.id/',
+	'Gaspard Tseng / SillyCCSmile (Chinese Translation)' => '',
+	'Mika Pennanen (Finnish Translation)' => 'http://kapsi.fi/~penni',
+	'Wojciech Owczarek (Polish Translation)' => 'http://www.owczi.net',
+	'Dilip Ramirez (Spanish Translation)' => 'http://jmtd.110mb.com/blog',
+	'Oleinikov Vedmak Evgeny (Russian Translation)' => 'http://ka-2-03.mirea.org/',
+	'Sebastien MALHERBE	(Logo design)' => 'http://www.7vision.com/',
+	'Claudia (German documentation)' => 'http://www.blog-werkstatt.de/',
+	'Robert (German documentation)' => 'http://www.curlyrob.de/',
+	'Pierpaolo Mannone (Italian Translation)' => 'http://www.interscambiocasa.com/',
+	'Mattias Tengblad (Swedish Translation)' => 'http://wp-support.se/',
+	'M&uuml;fit Kiper (Swedish Translation)' => 'http://www.kiper.se/',
+	'Gil Yaker (Documentation)' => 'http://bamboosoup.com/',
+	'Morten Johansen (Danish Translation)' => 'http://www.fr3ak.dk/',
+	'Vidar Seland (Norwegian Translation)' => 'http://www.viidar.net/',
+	'Emre G&uuml;ler (Turkish Translation)' => 'http://www.emreguler.com/',	
+	'Emilio Lauretti (Italian Translation)' => '',
+	'Jan Angelovic (Czech Translation)' => 'http://www.angelovic.cz/',
+	'Laki (Slovak Translation)' => 'http://www.laki.sk/',
+	'Rowan Crane (WPMU support)' => 'http://blog.rowancrane.com/',
+	'Kuba Zwolinski (Polish Translation)' => 'http://kubazwolinski.com/',
+	'Rina Jiang (Chinese Translation)' => 'http://http://mysticecho.net/',
+	'Anthony (Chinese Translation)' => 'http://www.angryouth.com/',
+	'Milan Vasicek (Czech Translation)' => 'http://www.NoWorkTeam.cz/',
+	'Joo Gi-young (Korean Translation)' => 'http://lombric.linuxstudy.pe.kr/wp/',
+	'Oleg A. Safonov (Russian Translation)' => 'http://blog.olart.ru',
+	'AleXander Kirichev (Bulgarian Translation)' => 'http://xsakex.art-bg.org/',
+	'Richer Yang (Chinese Translation)' => 'http://fantasyworld.idv.tw/',
+	'Bill Jones (Forums contributor)' => 'http://jonesphoto.bluehorizoninternet.com/',
+	'TheDonSansone (Forums contributor)' => 'http://abseiling.200blogs.co.uk/',
+	'Komyshov (Russian Translation)' => 'http://kf-web.ru/',
+	'aleX Zhang (Chinese Translation)' => 'http://zhangfei.info/',
+	'TheSoloist (Chinese Translation)' => 'http://www.soloist-ic.cn/',
+	'Nica Luigi Cristian (Romanian Translation)' => 'http://www.cristiannica.com/',
+	'Zdenek Hatas (Czech Translation)' => '',
+	'David Potter (Documentation and Help)' => 'http://dpotter.net/',
+	'Carlale Chen (Chinese Translation)' => 'http://0-o-0.cc/',
+	'Nica Luigi Cristian (Romanian Translation)' => 'http://www.cristiannica.com/',
+	'Igor Shevkoplyas (Russian Translation)' => 'http://www.russian-translation-matters.com',
+	'Alexandr Kindras (Code contributor)' => 'http://www.fixdev.com',
+	'Manabu Togawa (Japanese Translation)' => 'http://www.churadesign.com/',
+	'Serhiy Tretyak (Ukrainian Translation)' => 'http://designpoint.com.ua/',
+	'Janis Grinvalds (Latvian Translation)' => 'http://riga.bmxrace.lv/',
+	'Kristoffer Th&oslash;ring (Norwegian Translation)' => '',
+	'Flactarus (Italian Translation)' => 'http://www.giroevago.it',
+	'Felip Alfred Galit&oacute; i Trilla (Catalan Translation)' => 'http://www.bratac.cat',
+	'Luka Komac (Slovenian Translation)' => 'http://www.komac.biz',
+    'Dimitris Ikonomou / Nikos Mouratidis (Greek Translation)' => 'http://www.kepik.gr'
+	);
+	
+	ksort($contributors);
+	$i = count($contributors);
+	foreach ($contributors as $name => $url)
+	{
+		if ($url)
+			echo "<a href=\"$url\">$name</a>";
+		else
+			echo $name;
+		$i--;
+		if ($i == 1)
+			echo " & ";
+		elseif ($i)
+			echo ", ";
+	}	
+}
+
+function ngg_list_support()	{
+/* The list of my supporters. Thanks to all of them !*/
+	
+	global $ngg;
+	
+	$supporter = nggAdminPanel::get_remote_array($ngg->donators);
+
+	// Ensure that this is a array
+	if ( !is_array($supporter) )
+		return _e('and all donators...', 'nggallery');
+
+	ksort($supporter);
+	$i = count($supporter);
+	foreach ($supporter as $name => $url)
+	{
+		if ($url)
+			echo "<a href=\"$url\">$name</a>";
+		else
+			echo $name;
+		$i--;
+		if ($i == 1)
+			echo " & ";
+		elseif ($i)
+			echo ", ";
+	}	
+}
+?>
\ No newline at end of file
diff --git a/wp-content/plugins/nextgen-gallery/admin/addgallery.php b/wp-content/plugins/nextgen-gallery/admin/addgallery.php
new file mode 100644
index 000000000..d6231d508
--- /dev/null
+++ b/wp-content/plugins/nextgen-gallery/admin/addgallery.php
@@ -0,0 +1,417 @@
+<?php  
+if(preg_match('#' . basename(__FILE__) . '#', $_SERVER['PHP_SELF'])) { die('You are not allowed to call this page directly.'); }
+	
+	// sometimes a error feedback is better than a white screen
+	@ini_set('error_reporting', E_ALL ^ E_NOTICE);
+
+class nggAddGallery {
+
+    /**
+     * PHP4 compatibility layer for calling the PHP5 constructor.
+     * 
+     */
+    function nggAddGallery() {
+        return $this->__construct();        
+    }
+    
+    /**
+     * nggOptions::__construct()
+     * 
+     * @return void
+     */
+    function __construct() {
+        
+       	// same as $_SERVER['REQUEST_URI'], but should work under IIS 6.0
+	   $this->filepath    = admin_url() . 'admin.php?page=' . $_GET['page'];
+        
+  		//Look for POST updates
+		if ( !empty($_POST) )
+			$this->processor();
+    }
+
+	/**
+	 * Perform the upload and add a new hook for plugins
+	 * 
+	 * @return void
+	 */
+	function processor() {
+        global $wpdb, $ngg;
+
+    	$defaultpath = $ngg->options['gallerypath'];	
+    	
+    	if ($_POST['addgallery']){
+    		check_admin_referer('ngg_addgallery');
+    		
+    		if ( !nggGallery::current_user_can( 'NextGEN Add new gallery' ))
+    			wp_die(__('Cheatin&#8217; uh?'));
+    		
+    		$newgallery = esc_attr( $_POST['galleryname']);
+    		if ( !empty($newgallery) )
+    			nggAdmin::create_gallery($newgallery, $defaultpath);
+    	}
+    	
+    	if ($_POST['zipupload']){
+    		check_admin_referer('ngg_addgallery');
+    
+    		if ( !nggGallery::current_user_can( 'NextGEN Upload a zip' ))
+    			wp_die(__('Cheatin&#8217; uh?'));
+    
+    		if ($_FILES['zipfile']['error'] == 0 || (!empty($_POST['zipurl']))) 
+    			nggAdmin::import_zipfile( intval( $_POST['zipgalselect'] ) );
+    		else
+    			nggGallery::show_error( __('Upload failed!','nggallery') );
+    	}
+    	
+    	if ($_POST['importfolder']){
+    		check_admin_referer('ngg_addgallery');
+    
+    		if ( !nggGallery::current_user_can( 'NextGEN Import image folder' ))
+    			wp_die(__('Cheatin&#8217; uh?'));
+    
+    		$galleryfolder = $_POST['galleryfolder'];
+    		if ( ( !empty($galleryfolder) ) AND ($defaultpath != $galleryfolder) )
+    			nggAdmin::import_gallery($galleryfolder);
+    	}
+    	
+    	if ($_POST['uploadimage']){
+    		check_admin_referer('ngg_addgallery');
+    		
+    		if ( !nggGallery::current_user_can( 'NextGEN Upload in all galleries' ))
+    			wp_die(__('Cheatin&#8217; uh?'));		
+    		
+    		if ( $_FILES['imagefiles']['error'][0] == 0 )
+    			$messagetext = nggAdmin::upload_images();
+    		else
+    			nggGallery::show_error( __('Upload failed! ' . nggAdmin::decode_upload_error( $_FILES['imagefiles']['error'][0]),'nggallery') );	
+    	}
+    	
+    	if (isset($_POST['swf_callback'])){
+    		if ($_POST['galleryselect'] == '0' )
+    			nggGallery::show_error(__('No gallery selected !','nggallery'));
+    		else {
+    			// get the path to the gallery
+    			$galleryID = (int) $_POST['galleryselect'];
+    			$gallerypath = $wpdb->get_var("SELECT path FROM $wpdb->nggallery WHERE gid = '$galleryID' ");
+    			nggAdmin::import_gallery($gallerypath);
+    		}	
+    	}
+    
+    	if ( isset($_POST['disable_flash']) ){
+    		check_admin_referer('ngg_addgallery');
+    		$ngg->options['swfUpload'] = false;	
+    		update_option('ngg_options', $ngg->options);
+    	}
+    
+    	if ( isset($_POST['enable_flash']) ){
+    		check_admin_referer('ngg_addgallery');
+    		$ngg->options['swfUpload'] = true;	
+    		update_option('ngg_options', $ngg->options);
+    	}
+
+        do_action( 'ngg_update_addgallery_page' );
+        
+    }
+
+    /**
+     * Render the page content
+     * 
+     * @return void
+     */
+    function controller() {
+        global $ngg, $nggdb;
+        
+    	// check for the max image size
+    	$this->maxsize    = nggGallery::check_memory_limit();
+
+    	//get all galleries (after we added new ones)
+    	$this->gallerylist = $nggdb->find_all_galleries('gid', 'DESC');
+        
+        $this->defaultpath = $ngg->options['gallerypath'];
+    	
+        // link for the flash file
+    	$swf_upload_link = NGGALLERY_URLPATH . 'admin/upload.php';
+
+        // get list of tabs
+        $tabs = $this->tabs_order();
+	?>
+	
+	<?php if($ngg->options['swfUpload'] && !empty ($this->gallerylist) ) { ?>
+	<!-- SWFUpload script -->
+	<script type="text/javascript">
+		var ngg_swf_upload;
+			
+		window.onload = function () {
+			ngg_swf_upload = new SWFUpload({
+				// Backend settings
+				upload_url : "<?php echo esc_attr( $swf_upload_link ); ?>",
+				flash_url : "<?php echo NGGALLERY_URLPATH; ?>admin/js/swfupload.swf",
+				
+				// Button Settings
+				button_placeholder_id : "spanButtonPlaceholder",
+				button_width: 300,
+				button_height: 27,
+				button_window_mode: SWFUpload.WINDOW_MODE.TRANSPARENT,
+				button_cursor: SWFUpload.CURSOR.HAND,
+								
+				// File Upload Settings
+				file_size_limit : "<?php echo wp_max_upload_size(); ?>b",
+				file_types : "*.jpg;*.jpeg;*.gif;*.png;*.JPG;*.JPEG;*.GIF;*.PNG",
+				file_types_description : "<?php _e('Image Files', 'nggallery') ;?>",
+				
+				// Queue handler
+				file_queued_handler : fileQueued,
+				
+				// Upload handler
+				upload_start_handler : uploadStart,
+				upload_progress_handler : uploadProgress,
+				upload_error_handler : uploadError,
+				upload_success_handler : uploadSuccess,
+				upload_complete_handler : uploadComplete,
+				
+				post_params : {
+					"auth_cookie" : "<?php echo (is_ssl() ? $_COOKIE[SECURE_AUTH_COOKIE] : $_COOKIE[AUTH_COOKIE]); ?>",
+                    "logged_in_cookie": "<?php echo $_COOKIE[LOGGED_IN_COOKIE]; ?>",
+                    "_wpnonce" : "<?php echo wp_create_nonce('ngg_swfupload'); ?>",                    
+					"galleryselect" : "0"
+				},
+				
+				// i18names
+				custom_settings : {
+					"remove" : "<?php _e('remove', 'nggallery') ;?>",
+					"browse" : "<?php _e('Browse...', 'nggallery') ;?>",
+					"upload" : "<?php _e('Upload images', 'nggallery') ;?>"
+				},
+
+				// Debug settings
+				debug: false
+				
+			});
+			
+			// on load change the upload to swfupload
+			initSWFUpload();
+
+			nggAjaxOptions = {
+			  	header: "<?php _e('Upload images', 'nggallery') ;?>",
+			  	maxStep: 100
+			};
+			
+		};
+	</script>
+	
+	<?php } else { ?>
+	<!-- MultiFile script -->
+	<script type="text/javascript">	
+	/* <![CDATA[ */
+		jQuery(document).ready(function(){
+			jQuery('#imagefiles').MultiFile({
+				STRING: {
+			    	remove:'[<?php _e('remove', 'nggallery') ;?>]'
+  				}
+		 	});
+		});
+	/* ]]> */
+	</script>
+	<?php } ?>
+	<!-- jQuery Tabs script -->
+	<script type="text/javascript">
+	/* <![CDATA[ */
+		jQuery(document).ready(function(){
+            jQuery('html,body').scrollTop(0);
+			jQuery('#slider').tabs({ fxFade: true, fxSpeed: 'fast' });	
+		});
+		
+		// File Tree implementation
+		jQuery(function() {								 
+		    jQuery("span.browsefiles").show().click(function(){
+    		    jQuery("#file_browser").fileTree({
+    		      script: "admin-ajax.php?action=ngg_file_browser&nonce=<?php echo wp_create_nonce( 'ngg-ajax' ) ;?>",
+                  root: jQuery("#galleryfolder").val(),
+    		    }, function(folder) {
+    		        jQuery("#galleryfolder").val( folder );
+    		    });
+		    	jQuery("#file_browser").show('slide');
+		    });	
+		});
+	/* ]]> */
+	</script>
+	<div id="slider" class="wrap">
+        <ul id="tabs">
+            <?php    
+        	foreach($tabs as $tab_key => $tab_name) {
+        	   echo "\n\t\t<li><a href='#$tab_key'>$tab_name</a></li>";
+            } 
+            ?>
+		</ul>
+        <?php    
+        foreach($tabs as $tab_key => $tab_name) {
+            echo "\n\t<div id='$tab_key'>\n";
+            // Looks for the internal class function, otherwise enable a hook for plugins
+            if ( method_exists( $this, "tab_$tab_key" ))
+                call_user_func( array( &$this , "tab_$tab_key") );
+            else
+                do_action( 'ngg_tab_content_' . $tab_key );
+             echo "\n\t</div>";
+        } 
+        ?>
+    </div>
+    <?php
+        
+    }
+
+    /**
+     * Create array for tabs and add a filter for other plugins to inject more tabs
+     * 
+     * @return array $tabs
+     */
+    function tabs_order() {
+     
+    	$tabs = array();
+        
+    	if ( !empty ($this->gallerylist) )
+    	   $tabs['uploadimage'] = __( 'Upload Images', 'nggallery' );
+        
+        if ( nggGallery::current_user_can( 'NextGEN Add new gallery' ))
+    	   $tabs['addgallery'] = __('Add new gallery', 'nggallery');
+        
+        if ( wpmu_enable_function('wpmuZipUpload') && nggGallery::current_user_can( 'NextGEN Upload a zip' ) ) 
+            $tabs['zipupload'] = __('Upload a Zip-File', 'nggallery');
+    	
+        if ( wpmu_enable_function('wpmuImportFolder') && nggGallery::current_user_can( 'NextGEN Import image folder' ) ) 
+            $tabs['importfolder'] = __('Import image folder', 'nggallery');
+            
+    	$tabs = apply_filters('ngg_addgallery_tabs', $tabs);
+    
+    	return $tabs;
+        
+    }
+    
+    function tab_addgallery() {
+    ?>
+		<!-- create gallery -->
+		<h2><?php _e('Add new gallery', 'nggallery') ;?></h2>
+		<form name="addgallery" id="addgallery_form" method="POST" action="<?php echo $this->filepath; ?>" accept-charset="utf-8" >
+		<?php wp_nonce_field('ngg_addgallery') ?>
+			<table class="form-table"> 
+			<tr valign="top"> 
+				<th scope="row"><?php _e('New Gallery', 'nggallery') ;?>:</th> 
+				<td><input type="text" size="35" name="galleryname" value="" /><br />
+				<?php if(!is_multisite()) { ?>
+				<?php _e('Create a new , empty gallery below the folder', 'nggallery') ;?>  <strong><?php echo $this->defaultpath ?></strong><br />
+				<?php } ?>
+				<i>( <?php _e('Allowed characters for file and folder names are', 'nggallery') ;?>: a-z, A-Z, 0-9, -, _ )</i></td>
+			</tr>
+			<?php do_action('ngg_add_new_gallery_form'); ?>
+			</table>
+			<div class="submit"><input class="button-primary" type="submit" name= "addgallery" value="<?php _e('Add gallery', 'nggallery') ;?>"/></div>
+		</form>
+    <?php
+    }
+
+    function tab_zipupload() {
+    ?>
+		<!-- zip-file operation -->
+		<h2><?php _e('Upload a Zip-File', 'nggallery') ;?></h2>
+		<form name="zipupload" id="zipupload_form" method="POST" enctype="multipart/form-data" action="<?php echo $this->filepath.'#zipupload'; ?>" accept-charset="utf-8" >
+		<?php wp_nonce_field('ngg_addgallery') ?>
+			<table class="form-table"> 
+			<tr valign="top"> 
+				<th scope="row"><?php _e('Select Zip-File', 'nggallery') ;?>:</th> 
+				<td><input type="file" name="zipfile" id="zipfile" size="35" class="uploadform"/><br />
+				<?php _e('Upload a zip file with images', 'nggallery') ;?></td> 
+			</tr>
+			<?php if (function_exists('curl_init')) : ?>
+			<tr valign="top"> 
+				<th scope="row"><?php _e('or enter a Zip-File URL', 'nggallery') ;?>:</th> 
+				<td><input type="text" name="zipurl" id="zipurl" size="35" class="uploadform"/><br />
+				<?php _e('Import a zip file with images from a url', 'nggallery') ;?></td> 
+			</tr>
+			<?php endif; ?>
+			<tr valign="top"> 
+				<th scope="row"><?php _e('in to', 'nggallery') ;?></th> 
+				<td><select name="zipgalselect">
+				<option value="0" ><?php _e('a new gallery', 'nggallery') ?></option>
+				<?php
+					foreach($this->gallerylist as $gallery) {
+						if ( !nggAdmin::can_manage_this_gallery($gallery->author) )
+							continue;
+						$name = ( empty($gallery->title) ) ? $gallery->name : $gallery->title;
+						echo '<option value="' . $gallery->gid . '" >' . $gallery->gid . ' - ' . $name . '</option>' . "\n";
+					}
+				?>
+				</select>
+				<br /><?php echo $this->maxsize; ?>
+				<br /><?php echo _e('Note : The upload limit on your server is ','nggallery') . "<strong>" . ini_get('upload_max_filesize') . "Byte</strong>\n"; ?>
+				<br /><?php if ( (is_multisite()) && wpmu_enable_function('wpmuQuotaCheck') ) display_space_usage(); ?></td> 
+			</tr> 
+			</table>
+			<div class="submit"><input class="button-primary" type="submit" name= "zipupload" value="<?php _e('Start upload', 'nggallery') ;?>"/></div>
+		</form>
+    <?php
+    }
+
+    function tab_importfolder() {
+    ?>
+	<!-- import folder -->
+	<h2><?php _e('Import image folder', 'nggallery') ;?></h2>
+		<form name="importfolder" id="importfolder_form" method="POST" action="<?php echo $this->filepath.'#importfolder'; ?>" accept-charset="utf-8" >
+		<?php wp_nonce_field('ngg_addgallery') ?>
+			<table class="form-table"> 
+			<tr valign="top"> 
+				<th scope="row"><?php _e('Import from Server path:', 'nggallery') ;?></th> 
+				<td><input type="text" size="35" id="galleryfolder" name="galleryfolder" value="<?php echo $this->defaultpath; ?>" /><span class="browsefiles button" style="display:none"><?php _e('Browse...', 'nggallery'); ?></span><br />
+				<div id="file_browser"></div>
+				<br /><i>( <?php _e('Note : Change the default path in the gallery settings', 'nggallery') ;?> )</i>
+				<br /><?php echo $this->maxsize; ?>
+				<?php if (SAFE_MODE) {?><br /><?php _e(' Please note : For safe-mode = ON you need to add the subfolder thumbs manually', 'nggallery') ;?><?php }; ?></td> 
+			</tr>
+			</table>
+			<div class="submit"><input class="button-primary" type="submit" name= "importfolder" value="<?php _e('Import folder', 'nggallery') ;?>"/></div>
+		</form>
+    <?php
+    }
+
+    function tab_uploadimage() {
+        global $ngg;
+    ?>
+    	<!-- upload images -->
+    	<h2><?php _e('Upload Images', 'nggallery') ;?></h2>
+		<form name="uploadimage" id="uploadimage_form" method="POST" enctype="multipart/form-data" action="<?php echo $this->filepath.'#uploadimage'; ?>" accept-charset="utf-8" >
+		<?php wp_nonce_field('ngg_addgallery') ?>
+			<table class="form-table"> 
+			<tr valign="top"> 
+				<th scope="row"><?php _e('Upload image', 'nggallery') ;?></th>
+				<td><span id='spanButtonPlaceholder'></span><input type="file" name="imagefiles[]" id="imagefiles" size="35" class="imagefiles"/></td>
+			</tr> 
+			<tr valign="top"> 
+				<th scope="row"><?php _e('in to', 'nggallery') ;?></th> 
+				<td><select name="galleryselect" id="galleryselect">
+				<option value="0" ><?php _e('Choose gallery', 'nggallery') ?></option>
+				<?php
+					foreach($this->gallerylist as $gallery) {
+						
+						//special case : we check if a user has this cap, then we override the second cap check
+						if ( !current_user_can( 'NextGEN Upload in all galleries' ) )
+							if ( !nggAdmin::can_manage_this_gallery($gallery->author) )
+								continue;
+						
+						$name = ( empty($gallery->title) ) ? $gallery->name : $gallery->title;
+						echo '<option value="' . $gallery->gid . '" >' . $gallery->gid . ' - ' . $name . '</option>' . "\n";
+					}					?>
+				</select>
+				<br /><?php echo $this->maxsize; ?>
+				<br /><?php if ((is_multisite()) && wpmu_enable_function('wpmuQuotaCheck')) display_space_usage(); ?></td> 
+			</tr> 
+			</table>
+			<div class="submit">
+				<?php if ($ngg->options['swfUpload']) { ?>
+				<input type="submit" name="disable_flash" id="disable_flash" title="<?php _e('The batch upload requires Adobe Flash 10, disable it if you have problems','nggallery') ?>" value="<?php _e('Disable flash upload', 'nggallery') ;?>" />
+				<?php } else { ?>
+				<input type="submit" name="enable_flash" id="enable_flash" title="<?php _e('Upload multiple files at once by ctrl/shift-selecting in dialog','nggallery') ?>" value="<?php _e('Enable flash based upload', 'nggallery') ;?>" />
+				<?php } ?>
+				<input class="button-primary" type="submit" name="uploadimage" id="uploadimage_btn" value="<?php _e('Upload images', 'nggallery') ;?>" />
+			</div>
+		</form>
+    <?php
+    }        
+}
+?>
\ No newline at end of file
diff --git a/wp-content/plugins/nextgen-gallery/admin/admin.php b/wp-content/plugins/nextgen-gallery/admin/admin.php
new file mode 100644
index 000000000..3df4f5973
--- /dev/null
+++ b/wp-content/plugins/nextgen-gallery/admin/admin.php
@@ -0,0 +1,453 @@
+<?php
+/**
+ * nggAdminPanel - Admin Section for NextGEN Gallery
+ * 
+ * @package NextGEN Gallery
+ * @author Alex Rabe
+ * @copyright 2008-2010
+ * @since 1.0.0
+ */
+class nggAdminPanel{
+	
+	// constructor
+	function nggAdminPanel() {
+
+		// Add the admin menu
+		add_action( 'admin_menu', array (&$this, 'add_menu') ); 
+		add_action( 'network_admin_menu', array (&$this, 'add_network_admin_menu') );
+        
+		// Add the script and style files
+		add_action('admin_print_scripts', array(&$this, 'load_scripts') );
+		add_action('admin_print_styles', array(&$this, 'load_styles') );
+
+		add_filter('contextual_help', array(&$this, 'show_help'), 10, 2);
+		add_filter('screen_meta_screen', array(&$this, 'edit_screen_meta'));
+        
+	}
+
+	// integrate the menu	
+	function add_menu()  {
+	
+		add_menu_page( _n( 'Gallery', 'Galleries', 1, 'nggallery' ), _n( 'Gallery', 'Galleries', 1, 'nggallery' ), 'NextGEN Gallery overview', NGGFOLDER, array (&$this, 'show_menu'), 'div' );
+	    add_submenu_page( NGGFOLDER , __('Overview', 'nggallery'), __('Overview', 'nggallery'), 'NextGEN Gallery overview', NGGFOLDER, array (&$this, 'show_menu'));
+		add_submenu_page( NGGFOLDER , __('Add Gallery / Images', 'nggallery'), __('Add Gallery / Images', 'nggallery'), 'NextGEN Upload images', 'nggallery-add-gallery', array (&$this, 'show_menu'));
+	    add_submenu_page( NGGFOLDER , __('Manage Gallery', 'nggallery'), __('Manage Gallery', 'nggallery'), 'NextGEN Manage gallery', 'nggallery-manage-gallery', array (&$this, 'show_menu'));
+	    add_submenu_page( NGGFOLDER , _n( 'Album', 'Albums', 1, 'nggallery' ), _n( 'Album', 'Albums', 1, 'nggallery' ), 'NextGEN Edit album', 'nggallery-manage-album', array (&$this, 'show_menu'));
+	    add_submenu_page( NGGFOLDER , __('Tags', 'nggallery'), __('Tags', 'nggallery'), 'NextGEN Manage tags', 'nggallery-tags', array (&$this, 'show_menu'));
+	    add_submenu_page( NGGFOLDER , __('Options', 'nggallery'), __('Options', 'nggallery'), 'NextGEN Change options', 'nggallery-options', array (&$this, 'show_menu'));
+	    if ( wpmu_enable_function('wpmuStyle') )
+			add_submenu_page( NGGFOLDER , __('Style', 'nggallery'), __('Style', 'nggallery'), 'NextGEN Change style', 'nggallery-style', array (&$this, 'show_menu'));
+	    if ( wpmu_enable_function('wpmuRoles') || wpmu_site_admin() )
+			add_submenu_page( NGGFOLDER , __('Roles', 'nggallery'), __('Roles', 'nggallery'), 'activate_plugins', 'nggallery-roles', array (&$this, 'show_menu'));
+	    add_submenu_page( NGGFOLDER , __('About this Gallery', 'nggallery'), __('About', 'nggallery'), 'NextGEN Gallery overview', 'nggallery-about', array (&$this, 'show_menu'));
+		//TODO: Remove after WP 3.1 release, not longer needed 
+        if ( is_multisite() && wpmu_site_admin() ) 
+			add_submenu_page( 'ms-admin.php' , __('NextGEN Gallery', 'nggallery'), __('NextGEN Gallery', 'nggallery'), 'activate_plugins', 'nggallery-wpmu', array (&$this, 'show_menu'));
+
+	    if ( !is_multisite() || wpmu_site_admin() ) 
+            add_submenu_page( NGGFOLDER , __('Reset / Uninstall', 'nggallery'), __('Reset / Uninstall', 'nggallery'), 'activate_plugins', 'nggallery-setup', array (&$this, 'show_menu'));
+
+		//register the column fields
+		$this->register_columns();	
+	}
+
+	// integrate the network menu	
+	function add_network_admin_menu()  {
+	
+		add_menu_page( _n( 'Gallery', 'Galleries', 1, 'nggallery' ), _n( 'Gallery', 'Galleries', 1, 'nggallery' ), 'nggallery-wpmu', NGGFOLDER, array (&$this, 'show_network_settings'), 'div' );
+		add_submenu_page( NGGFOLDER , __('Network settings', 'nggallery'), __('Network settings', 'nggallery'), 'nggallery-wpmu', NGGFOLDER,  array (&$this, 'show_network_settings'));
+        add_submenu_page( NGGFOLDER , __('Reset / Uninstall', 'nggallery'), __('Reset / Uninstall', 'nggallery'), 'activate_plugins', 'nggallery-setup', array (&$this, 'show_menu'));
+	}
+
+    // show the network page
+    function show_network_settings() {
+		include_once ( dirname (__FILE__) . '/style.php' );		
+		include_once ( dirname (__FILE__) . '/wpmu.php' );
+		nggallery_wpmu_setup();        
+    }
+
+	// load the script for the defined page and load only this code	
+	function show_menu() {
+		
+		global $ngg;
+
+		// check for upgrade and show upgrade screen
+		if( get_option( 'ngg_db_version' ) != NGG_DBVERSION ) {
+			include_once ( dirname (__FILE__) . '/functions.php' );
+			include_once ( dirname (__FILE__) . '/upgrade.php' );
+			nggallery_upgrade_page();
+			return;			
+		}
+		
+		// Set installation date
+		if( empty($ngg->options['installDate']) ) {
+			$ngg->options['installDate'] = time();
+			update_option('ngg_options', $ngg->options);			
+		}
+		
+		// Show donation message only one time.
+		if (isset ( $_GET['hide_donation']) ) {
+			$ngg->options['hideDonation'] = true;
+			update_option('ngg_options', $ngg->options);			
+		}
+		
+		if( !isset ( $ngg->options['hideDonation']) ||  $ngg->options['hideDonation'] !== true ) {
+			if ( time() > ( $ngg->options['installDate'] + ( 60 * 60 * 24 * 30 ) ) ) {
+			?>	
+				<div id="donator_message">
+					<p><?php echo str_replace('%s', 'http://alexrabe.de/donation', __('Thanks for using this plugin, I hope you are satisfied ! If you would like to support the further development, please consider a <strong><a href="%s">donation</a></strong>! If you still need some help, please post your questions <a href="http://wordpress.org/tags/nextgen-gallery?forum_id=10">here</a> .', 'nggallery')); ?>
+						<span>
+							<a href="<?php echo add_query_arg( array( 'hide_donation' => 'true') ); ?>" >
+								<small><?php _e('OK, hide this message now !', 'nggallery'); ?></small>
+							</a>
+						<span>
+					</p>
+				</div>
+			<?php
+			}
+		}
+		
+  		switch ($_GET['page']){
+			case "nggallery-add-gallery" :
+				include_once ( dirname (__FILE__) . '/functions.php' );		// admin functions
+				include_once ( dirname (__FILE__) . '/addgallery.php' );    // nggallery_admin_add_gallery
+				$ngg->addgallery_page = new nggAddGallery ();
+				$ngg->addgallery_page->controller();
+				break;
+			case "nggallery-manage-gallery" :
+				include_once ( dirname (__FILE__) . '/functions.php' );	// admin functions
+				include_once ( dirname (__FILE__) . '/manage.php' );	// nggallery_admin_manage_gallery
+				// Initate the Manage Gallery page
+				$ngg->manage_page = new nggManageGallery ();
+				// Render the output now, because you cannot access a object during the constructor is not finished
+				$ngg->manage_page->controller();				
+				break;
+			case "nggallery-manage-album" :
+				include_once ( dirname (__FILE__) . '/album.php' );		// nggallery_admin_manage_album
+				$ngg->manage_album = new nggManageAlbum ();
+				$ngg->manage_album->controller();
+				break;				
+			case "nggallery-options" :
+				include_once ( dirname (__FILE__) . '/settings.php' );	// nggallery_admin_options
+				$ngg->option_page = new nggOptions ();
+				$ngg->option_page->controller();
+				break;
+			case "nggallery-tags" :
+				include_once ( dirname (__FILE__) . '/tags.php' );		// nggallery_admin_tags
+				break;
+			case "nggallery-style" :
+				include_once ( dirname (__FILE__) . '/style.php' );		// nggallery_admin_style
+				nggallery_admin_style();
+				break;
+			case "nggallery-setup" :
+				include_once ( dirname (__FILE__) . '/setup.php' );		// nggallery_admin_setup
+				nggallery_admin_setup();
+				break;
+			case "nggallery-roles" :
+				include_once ( dirname (__FILE__) . '/roles.php' );		// nggallery_admin_roles
+				nggallery_admin_roles();
+				break;
+			case "nggallery-import" :
+				include_once ( dirname (__FILE__) . '/myimport.php' );	// nggallery_admin_import
+				nggallery_admin_import();
+				break;
+			case "nggallery-about" :
+				include_once ( dirname (__FILE__) . '/about.php' );		// nggallery_admin_about
+				nggallery_admin_about();
+				break;
+            //TODO: Remove after WP 3.1 release, not longer needed   
+			case "nggallery-wpmu" :
+				include_once ( dirname (__FILE__) . '/style.php' );		
+				include_once ( dirname (__FILE__) . '/wpmu.php' );		// nggallery_wpmu_admin
+				nggallery_wpmu_setup();
+				break;
+			case "nggallery" :
+			default :
+				include_once ( dirname (__FILE__) . '/overview.php' ); 	// nggallery_admin_overview
+				nggallery_admin_overview();
+				break;
+		}
+	}
+	
+	function load_scripts() {
+		global $wp_version;
+        
+		// no need to go on if it's not a plugin page
+		if( !isset($_GET['page']) )
+			return;
+
+		wp_register_script('ngg-ajax', NGGALLERY_URLPATH . 'admin/js/ngg.ajax.js', array('jquery'), '1.4.1');
+		wp_localize_script('ngg-ajax', 'nggAjaxSetup', array(
+					'url' => admin_url('admin-ajax.php'),
+					'action' => 'ngg_ajax_operation',
+					'operation' => '',
+					'nonce' => wp_create_nonce( 'ngg-ajax' ),
+					'ids' => '',
+					'permission' => __('You do not have the correct permission', 'nggallery'),
+					'error' => __('Unexpected Error', 'nggallery'),
+					'failure' => __('A failure occurred', 'nggallery')				
+		) );
+		wp_register_script('ngg-progressbar', NGGALLERY_URLPATH .'admin/js/ngg.progressbar.js', array('jquery'), '2.0.1');
+		wp_register_script('swfupload_f10', NGGALLERY_URLPATH .'admin/js/swfupload.js', array('jquery'), '2.2.0');
+        // Until release of 3.1 not used, due to script conflict
+        wp_register_script('jquery-ui-autocomplete', NGGALLERY_URLPATH .'admin/js/jquery.ui.autocomplete.min.js', array('jquery-ui-core', 'jquery-ui-widget'), '1.8.9');
+       		
+		switch ($_GET['page']) {
+			case NGGFOLDER : 
+				wp_enqueue_script( 'postbox' );
+				add_thickbox();
+			break;	
+			case "nggallery-manage-gallery" :
+				wp_enqueue_script( 'postbox' );
+				wp_enqueue_script( 'ngg-ajax' );
+				wp_enqueue_script( 'ngg-progressbar' );
+				wp_enqueue_script( 'jquery-ui-dialog' );
+				add_thickbox();
+			break;
+			case "nggallery-manage-album" :
+                if ( version_compare( $wp_version, '3.0.999', '>' ) ) {
+                    wp_enqueue_script( 'jquery-ui-autocomplete' ); 
+                    wp_enqueue_script( 'jquery-ui-dialog' );
+                    wp_enqueue_script( 'jquery-ui-sortable' );
+                    wp_enqueue_script( 'ngg-autocomplete', NGGALLERY_URLPATH .'admin/js/ngg.autocomplete.js', array('jquery-ui-autocomplete'), '1.0');
+                 } else {
+                    // Due to script conflict with jQuery UI 1.8.6
+                    wp_deregister_script( 'jquery-ui-sortable' );
+                    // Package included sortable, dialog, autocomplete, tabs
+                    wp_enqueue_script('jquery-ui', NGGALLERY_URLPATH .'admin/js/jquery-ui-1.8.6.min.js', array('jquery'), '1.8.6');
+                    wp_enqueue_script('ngg-autocomplete', NGGALLERY_URLPATH .'admin/js/ngg.autocomplete.js', array('jquery-ui'), '1.0');
+                }                
+			break;
+			case "nggallery-options" :
+				wp_enqueue_script( 'jquery-ui-tabs' );
+				//wp_enqueue_script( 'ngg-colorpicker', NGGALLERY_URLPATH .'admin/js/colorpicker/js/colorpicker.js', array('jquery'), '1.0');
+			break;		
+			case "nggallery-add-gallery" :
+				wp_enqueue_script( 'jquery-ui-tabs' );
+				wp_enqueue_script( 'mutlifile', NGGALLERY_URLPATH .'admin/js/jquery.MultiFile.js', array('jquery'), '1.4.4' );
+				wp_enqueue_script( 'ngg-swfupload-handler', NGGALLERY_URLPATH .'admin/js/swfupload.handler.js', array('swfupload_f10'), '1.0.3' );
+				wp_enqueue_script( 'ngg-ajax' );
+				wp_enqueue_script( 'ngg-progressbar' );
+                wp_enqueue_script( 'jquery-ui-dialog' );
+				wp_enqueue_script( 'jqueryFileTree', NGGALLERY_URLPATH .'admin/js/jqueryFileTree/jqueryFileTree.js', array('jquery'), '1.0.1' );
+			break;
+			case "nggallery-style" :
+				wp_enqueue_script( 'codepress' );
+				wp_enqueue_script( 'ngg-colorpicker', NGGALLERY_URLPATH .'admin/js/colorpicker/js/colorpicker.js', array('jquery'), '1.0');
+			break;
+
+		}
+	}		
+	
+	function load_styles() {
+        // load the icon for the navigation menu
+        wp_enqueue_style( 'nggmenu', NGGALLERY_URLPATH .'admin/css/menu.css', array() );
+		wp_register_style( 'nggadmin', NGGALLERY_URLPATH .'admin/css/nggadmin.css', false, '2.8.1', 'screen' );
+		wp_register_style( 'ngg-jqueryui', NGGALLERY_URLPATH .'admin/css/jquery.ui.css', false, '1.8.5', 'screen' );
+        
+        // no need to go on if it's not a plugin page
+		if( !isset($_GET['page']) )
+			return;
+
+		switch ($_GET['page']) {
+			case NGGFOLDER :
+				wp_enqueue_style( 'thickbox' );	
+			case "nggallery-about" :
+				wp_enqueue_style( 'nggadmin' );
+                wp_admin_css( 'css/dashboard' );
+			break;
+			case "nggallery-add-gallery" :
+				wp_enqueue_style( 'ngg-jqueryui' );
+				wp_enqueue_style( 'jqueryFileTree', NGGALLERY_URLPATH .'admin/js/jqueryFileTree/jqueryFileTree.css', false, '1.0.1', 'screen' );
+			case "nggallery-options" :
+				wp_enqueue_style( 'nggtabs', NGGALLERY_URLPATH .'admin/css/jquery.ui.tabs.css', false, '2.5.0', 'screen' );
+				wp_enqueue_style( 'nggadmin' );
+            break;    
+			case "nggallery-manage-gallery" :
+			case "nggallery-roles" :
+			case "nggallery-manage-album" :
+				wp_enqueue_style( 'ngg-jqueryui' );
+				wp_enqueue_style( 'nggadmin' );
+				wp_enqueue_style( 'thickbox' );			
+			break;
+			case "nggallery-tags" :
+				wp_enqueue_style( 'nggtags', NGGALLERY_URLPATH .'admin/css/tags-admin.css', false, '2.6.1', 'screen' );
+				break;
+			case "nggallery-style" :
+				wp_admin_css( 'css/theme-editor' );
+				wp_enqueue_style('nggcolorpicker', NGGALLERY_URLPATH.'admin/js/colorpicker/css/colorpicker.css', false, '1.0', 'screen');
+				wp_enqueue_style('nggadmincp', NGGALLERY_URLPATH.'admin/css/nggColorPicker.css', false, '1.0', 'screen');
+			break;
+		}	
+	}
+	
+	function show_help($help, $screen) {
+		
+		// since WP3.0 it's an object
+		if ( is_object($screen) )
+			$screen = $screen->id;
+		
+		$link = '';
+		// menu title is localized...
+		$i18n = strtolower  ( _n( 'Gallery', 'Galleries', 1, 'nggallery' ) );
+
+		switch ($screen) {
+			case 'toplevel_page_' . NGGFOLDER :
+				$link  = __('<a href="http://dpotter.net/Technical/2008/03/nextgen-gallery-review-introduction/" target="_blank">Introduction</a>', 'nggallery');
+			break;
+			case "{$i18n}_page_nggallery-setup" :
+				$link  = __('<a href="http://dpotter.net/Technical/2008/03/nextgen-gallery-review-introduction/" target="_blank">Setup</a>', 'nggallery');
+			break;
+			case "{$i18n}_page_nggallery-about" :
+				$link  = __('<a href="http://alexrabe.de/wordpress-plugins/nextgen-gallery/languages/" target="_blank">Translation by alex rabe</a>', 'nggallery');
+			break;
+			case "{$i18n}_page_nggallery-roles" :
+				$link  = __('<a href="http://dpotter.net/Technical/2008/03/nextgen-gallery-review-introduction/" target="_blank">Roles / Capabilities</a>', 'nggallery');
+			break;
+			case "{$i18n}_page_nggallery-style" :
+				$link  = __('<a href="http://dpotter.net/Technical/2008/03/nextgen-gallery-review-introduction/" target="_blank">Styles</a>', 'nggallery');
+				$link .= ' | <a href="http://nextgen-gallery.com/templates/" target="_blank">' . __('Templates', 'nggallery') . '</a>';
+			break;
+			case "{$i18n}_page_nggallery-gallery" :
+				$link  = __('<a href="http://dpotter.net/Technical/2008/03/nextgen-gallery-review-introduction/" target="_blank">Gallery management</a>', 'nggallery');
+				$link .= ' | <a href="http://nextgen-gallery.com/gallery-page/" target="_blank">' . __('Gallery example', 'nggallery') . '</a>';
+			break;
+			case "{$i18n}_page_nggallery-manage-gallery" :
+			case "nggallery-manage-gallery":
+			case "nggallery-manage-images":
+				$link  = __('<a href="http://dpotter.net/Technical/2008/03/nextgen-gallery-review-introduction/" target="_blank">Gallery management</a>', 'nggallery');
+				$link .= ' | <a href="http://nextgen-gallery.com/gallery-tags/" target="_blank">' . __('Gallery tags', 'nggallery') . '</a>';
+			break;
+			case "{$i18n}_page_nggallery-manage-album" :
+				$link  = __('<a href="http://dpotter.net/Technical/2008/03/nextgen-gallery-review-introduction/" target="_blank">Album management</a>', 'nggallery');
+				$link .= ' | <a href="http://nextgen-gallery.com/album/" target="_blank">' . __('Album example', 'nggallery') . '</a>';
+				$link .= ' | <a href="http://nextgen-gallery.com/albumtags/" target="_blank">' . __('Album tags', 'nggallery') . '</a>';
+			break;
+			case "{$i18n}_page_nggallery-tags" :
+				$link  = __('<a href="http://dpotter.net/Technical/2008/03/nextgen-gallery-review-introduction/" target="_blank">Gallery tags</a>', 'nggallery');
+				$link .= ' | <a href="http://nextgen-gallery.com/related-images/" target="_blank">' . __('Related images', 'nggallery') . '</a>';
+				$link .= ' | <a href="http://nextgen-gallery.com/gallery-tags/" target="_blank">' . __('Gallery tags', 'nggallery') . '</a>';
+				$link .= ' | <a href="http://nextgen-gallery.com/albumtags/" target="_blank">' . __('Album tags', 'nggallery') . '</a>';
+			break;
+			case "{$i18n}_page_nggallery-options" :
+				$link  = __('<a href="http://dpotter.net/Technical/2008/03/nextgen-gallery-review-image-management/" target="_blank">Image management</a>', 'nggallery');
+				$link .= ' | <a href="http://nextgen-gallery.com/custom-fields/" target="_blank">' . __('Custom fields', 'nggallery') . '</a>';
+			break;
+		}
+		
+		if ( !empty($link) ) {
+			$help  = '<h5>' . __('Get help with NextGEN Gallery', 'nggallery') . '</h5>';
+			$help .= '<div class="metabox-prefs">';
+			$help .= $link;
+			$help .= "</div>\n";
+			$help .= '<h5>' . __('More Help & Info', 'nggallery') . '</h5>';
+			$help .= '<div class="metabox-prefs">';
+			$help .= __('<a href="http://wordpress.org/tags/nextgen-gallery?forum_id=10" target="_blank">Support Forums</a>', 'nggallery');
+			$help .= ' | <a href="http://alexrabe.de/wordpress-plugins/nextgen-gallery/faq/" target="_blank">' . __('FAQ', 'nggallery') . '</a>';
+			$help .= ' | <a href="http://code.google.com/p/nextgen-gallery/issues/list" target="_blank">' . __('Feature request', 'nggallery') . '</a>';
+			$help .= ' | <a href="http://alexrabe.de/wordpress-plugins/nextgen-gallery/languages/" target="_blank">' . __('Get your language pack', 'nggallery') . '</a>';
+			$help .= ' | <a href="http://code.google.com/p/nextgen-gallery/" target="_blank">' . __('Contribute development', 'nggallery') . '</a>';
+			$help .= ' | <a href="http://wordpress.org/extend/plugins/nextgen-gallery" target="_blank">' . __('Download latest version', 'nggallery') . '</a>';
+			$help .= "</div>\n";
+		} 
+		
+		return $help;
+	}
+	
+	function edit_screen_meta($screen) {
+
+		// menu title is localized, so we need to change the toplevel name
+		$i18n = strtolower  ( _n( 'Gallery', 'Galleries', 1, 'nggallery' ) );
+		
+		switch ($screen) {
+			case "{$i18n}_page_nggallery-manage-gallery" :
+				// we would like to have screen option only at the manage images / gallery page
+				if ( isset ($_POST['sortGallery']) )
+					$screen = $screen;
+				else if ( ($_GET['mode'] == 'edit') || isset ($_POST['backToGallery']) )
+					$screen = 'nggallery-manage-images';
+				else if ( ($_GET['mode'] == 'sort') )
+					$screen = $screen;
+				else
+					$screen = 'nggallery-manage-gallery';	
+			break;
+		}
+
+		return $screen;
+	}
+
+	function register_column_headers($screen, $columns) {
+		global $_wp_column_headers, $wp_list_table;
+	
+		if ( !isset($_wp_column_headers) )
+			$_wp_column_headers = array();
+	
+		$_wp_column_headers[$screen] = $columns;
+        
+        //TODO: Deprecated in 3.1, see http://core.trac.wordpress.org/ticket/14579
+       	//$wp_list_table = new _WP_List_Table_Compat($screen);
+       	//$wp_list_table->_columns = $columns;
+	}
+
+	function register_columns() {
+		include_once ( dirname (__FILE__) . '/manage-images.php' );
+		
+		$this->register_column_headers('nggallery-manage-images', ngg_manage_image_columns() );
+		
+		include_once ( dirname (__FILE__) . '/manage-galleries.php' );
+		
+		$this->register_column_headers('nggallery-manage-galleries', ngg_manage_gallery_columns() );	
+	}
+
+	/**
+	 * Read an array from a remote url
+	 * 
+	 * @param string $url
+	 * @return array of the content
+	 */
+	function get_remote_array($url) {
+		if ( function_exists('wp_remote_request') ) {
+					
+			$options = array();
+			$options['headers'] = array(
+				'User-Agent' => 'NextGEN Gallery Information Reader V' . NGGVERSION . '; (' . get_bloginfo('url') .')'
+			 );
+			 
+			$response = wp_remote_request($url, $options);
+			
+			if ( is_wp_error( $response ) )
+				return false;
+		
+			if ( 200 != $response['response']['code'] )
+				return false;
+		   	
+			$content = unserialize($response['body']);
+	
+			if (is_array($content)) 
+				return $content;
+		}
+		
+		return false;	
+	}
+
+}
+
+function wpmu_site_admin() {
+	// Check for site admin
+	if ( function_exists('is_super_admin') )
+		if ( is_super_admin() )
+			return true;
+			
+	return false;
+}
+
+function wpmu_enable_function($value) {
+	if (is_multisite()) {
+		$ngg_options = get_site_option('ngg_options');
+		return $ngg_options[$value];
+	}
+	// if this is not WPMU, enable it !
+	return true;
+}
+
+?>
\ No newline at end of file
diff --git a/wp-content/plugins/nextgen-gallery/admin/ajax.php b/wp-content/plugins/nextgen-gallery/admin/ajax.php
new file mode 100644
index 000000000..e775e6cac
--- /dev/null
+++ b/wp-content/plugins/nextgen-gallery/admin/ajax.php
@@ -0,0 +1,446 @@
+<?php
+add_action('wp_ajax_ngg_ajax_operation', 'ngg_ajax_operation' );
+
+/**
+ * Image edit functions via AJAX
+ * 
+ * @author Alex Rabe
+ * @copyright 2008 - 2010
+ * 
+ * @return void
+ */
+function ngg_ajax_operation() {
+		
+	global $wpdb;
+
+	// if nonce is not correct it returns -1
+	check_ajax_referer( "ngg-ajax" );
+	
+	// check for correct capability
+	if ( !is_user_logged_in() )
+		die('-1');
+
+	// check for correct NextGEN capability
+	if ( !current_user_can('NextGEN Upload images') && !current_user_can('NextGEN Manage gallery') ) 
+		die('-1');	
+	
+	// include the ngg function
+	include_once (dirname (__FILE__) . '/functions.php');
+
+	// Get the image id
+	if ( isset($_POST['image'])) {
+		$id = (int) $_POST['image'];
+		// let's get the image data
+		$picture = nggdb::find_image( $id );
+		// what do you want to do ?		
+		switch ( $_POST['operation'] ) {
+			case 'create_thumbnail' :
+				$result = nggAdmin::create_thumbnail($picture);
+			break;
+			case 'resize_image' :
+				$result = nggAdmin::resize_image($picture);
+			break;
+			case 'rotate_cw' :
+				$result = nggAdmin::rotate_image($picture, 'CW');
+				nggAdmin::create_thumbnail($picture);
+			break;
+			case 'rotate_ccw' :
+				$result = nggAdmin::rotate_image($picture, 'CCW');
+				nggAdmin::create_thumbnail($picture);
+			break;			
+			case 'set_watermark' :
+				$result = nggAdmin::set_watermark($picture);
+			break;
+			case 'recover_image' :
+				$result = nggAdmin::recover_image($picture);
+			break;			
+			case 'import_metadata' :
+				$result = nggAdmin::import_MetaData( $id );
+			break;
+			case 'get_image_ids' :
+				$result = nggAdmin::get_image_ids( $id );
+			break;
+			default :
+				do_action( 'ngg_ajax_' . $_POST['operation'] );
+				die('-1');	
+			break;		
+		}
+		// A success should return a '1'
+		die ($result);
+	}
+	
+	// The script should never stop here
+	die('0');
+}
+
+add_action('wp_ajax_createNewThumb', 'createNewThumb');
+	
+function createNewThumb() {
+	
+    global $ngg;
+    
+	// check for correct capability
+	if ( !is_user_logged_in() )
+		die('-1');
+		
+	// check for correct NextGEN capability
+	if ( !current_user_can('NextGEN Manage gallery') ) 
+		die('-1');	
+
+	include_once( nggGallery::graphic_library() );
+
+	$id 	 = (int) $_POST['id'];
+	$picture = nggdb::find_image( $id );
+
+	$x = round( $_POST['x'] * $_POST['rr'], 0);
+	$y = round( $_POST['y'] * $_POST['rr'], 0);
+	$w = round( $_POST['w'] * $_POST['rr'], 0);
+	$h = round( $_POST['h'] * $_POST['rr'], 0);
+	
+	$thumb = new ngg_Thumbnail($picture->imagePath, TRUE);
+	
+	$thumb->crop($x, $y, $w, $h);
+    
+    // Note : the routine is a bit different to create_thumbnail(), due to rounding it's resized in the other way
+	if ($ngg->options['thumbfix'])  {
+		// check for portrait format
+		if ($thumb->currentDimensions['height'] > $thumb->currentDimensions['width']) {
+			// first resize to the wanted height, here changed to create_thumbnail()
+			$thumb->resize(0, $ngg->options['thumbheight']);
+			// get optimal y startpos
+			$ypos = ($thumb->currentDimensions['height'] - $ngg->options['thumbheight']) / 2;
+			$thumb->crop(0, $ypos, $ngg->options['thumbwidth'],$ngg->options['thumbheight']);	
+		} else {
+			// first resize to the wanted width, here changed to create_thumbnail()
+            $thumb->resize($ngg->options['thumbwidth'], 0);
+			//	
+			// get optimal x startpos
+			$xpos = ($thumb->currentDimensions['width'] - $ngg->options['thumbwidth']) / 2;
+			$thumb->crop($xpos, 0, $ngg->options['thumbwidth'],$ngg->options['thumbheight']);	
+		}
+	//this create a thumbnail but keep ratio settings	
+	} else {
+		$thumb->resize($ngg->options['thumbwidth'],$ngg->options['thumbheight']);	
+	}    
+	
+	if ( $thumb->save($picture->thumbPath, 100)) {
+		
+		//read the new sizes
+		$new_size = @getimagesize ( $picture->thumbPath );
+		$size['width'] = $new_size[0];
+		$size['height'] = $new_size[1]; 
+		
+		// add them to the database
+		nggdb::update_image_meta($picture->pid, array( 'thumbnail' => $size) );
+		
+		echo "OK";
+	} else {
+		header('HTTP/1.1 500 Internal Server Error');			
+		echo "KO";
+	}
+	
+	exit();
+	
+}
+	
+add_action('wp_ajax_rotateImage', 'ngg_rotateImage');
+	
+function ngg_rotateImage() {
+	
+	// check for correct capability
+	if ( !is_user_logged_in() )
+		die('-1');
+		
+	// check for correct NextGEN capability
+	if ( !current_user_can('NextGEN Manage gallery') ) 
+		die('-1');	
+
+	require_once( dirname( dirname(__FILE__) ) . '/ngg-config.php');
+
+	// include the ngg function
+	include_once (dirname (__FILE__). '/functions.php');
+			
+	$ngg_options = get_option('ngg_options');
+	
+	$id = (int) $_POST['id'];
+	$result = '-1';
+	
+	switch ( $_POST['ra'] ) {
+		case 'cw' :
+			$result = nggAdmin::rotate_image($id, 'CW');
+		break;
+		case 'ccw' :
+			$result = nggAdmin::rotate_image($id, 'CCW');
+		break;
+		case 'fv' :
+			$result = nggAdmin::rotate_image($id, 0, 'V');
+		break;
+		case 'fh' :
+			$result = nggAdmin::rotate_image($id, 0, 'H');
+		break;
+	}
+    
+    // recreate the thumbnail     
+    nggAdmin::create_thumbnail($id);
+	
+	if ( $result == 1 )
+		die('1');
+
+	header('HTTP/1.1 500 Internal Server Error');			
+	die( $result );
+	
+}
+
+add_action('wp_ajax_ngg_dashboard', 'ngg_ajax_dashboard');
+
+function ngg_ajax_dashboard() {
+    
+   	require_once( dirname( dirname(__FILE__) ) . '/admin/admin.php');
+	require_once( dirname( dirname(__FILE__) ) . '/admin/overview.php');
+    
+   	if ( !current_user_can('NextGEN Gallery overview') ) 
+		die('-1');	
+        
+    @header( 'Content-Type: ' . get_option( 'html_type' ) . '; charset=' . get_option( 'blog_charset' ) );
+    @header( 'X-Content-Type-Options: nosniff' ); 
+    
+    switch ( $_GET['jax'] ) {
+    
+    case 'ngg_lastdonators' :
+    	ngg_overview_donators();
+    	break;
+    
+    case 'dashboard_primary' :
+    	ngg_overview_news();
+    	break;
+    
+    case 'ngg_locale' :
+    	ngg_locale();
+    	break;
+    
+    case 'dashboard_plugins' :
+    	ngg_related_plugins();
+    	break;
+
+    }
+    die();
+}    
+
+add_action('wp_ajax_ngg_file_browser', 'ngg_ajax_file_browser');
+	
+/**
+ * jQuery File Tree PHP Connector 
+ * @author Cory S.N. LaViska - A Beautiful Site (http://abeautifulsite.net/)
+ * @version 1.0.1
+ * 
+ * @return string folder content 
+ */
+function ngg_ajax_file_browser() {
+    
+    global $ngg;
+
+	// check for correct NextGEN capability
+	if ( !current_user_can('NextGEN Upload images') && !current_user_can('NextGEN Manage gallery') ) 
+		die('No access');	
+
+    if ( !defined('ABSPATH') )
+        die('No access');
+
+	// if nonce is not correct it returns -1
+	check_ajax_referer( 'ngg-ajax', 'nonce' );
+    
+    //PHP4 compat script
+	if (!function_exists('scandir')) {
+		function scandir($dir, $listDirectories = false, $skipDots = true ) {
+			$dirArray = array();
+			if ($handle = opendir($dir) ) {
+				while (false !== ($file = readdir($handle))) {
+					if (($file != '.' && $file != '..' ) || $skipDots == true) {
+						if($listDirectories == false) { if(is_dir($file)) { continue; } }
+						array_push($dirArray, basename($file) );
+					}
+				}
+				closedir($handle);
+			}
+			return $dirArray;
+		}
+	}
+    
+    // start from the default path
+    $root = trailingslashit ( WINABSPATH );
+    // get the current directory
+	$dir = trailingslashit ( urldecode($_POST['dir']) );
+    
+	if( file_exists($root . $dir) ) {
+		$files = scandir($root . $dir);
+		natcasesort($files);
+        
+        // The 2 counts for . and .. 
+		if( count($files) > 2 ) {
+			echo "<ul class=\"jqueryDirTree\" style=\"display: none;\">";
+			
+            // return only directories
+			foreach( $files as $file ) {
+			 
+			    //reserved name for the thumnbnails, don't use it as folder name
+                if ( $file == 'thumbs')
+                    continue;
+                    
+				if ( file_exists($root . $dir . $file) && $file != '.' && $file != '..' && is_dir($root . $dir . $file) ) {
+					echo "<li class=\"directory collapsed\"><a href=\"#\" rel=\"" . esc_html($dir . $file) . "/\">" . esc_html($file) . "</a></li>";
+				}
+			}
+            
+			echo "</ul>";
+		}
+	}
+    
+    die();	
+}
+
+add_action('wp_ajax_ngg_tinymce', 'ngg_ajax_tinymce');
+/**
+ * Call TinyMCE window content via admin-ajax
+ * 
+ * @since 1.7.0 
+ * @return html content
+ */
+function ngg_ajax_tinymce() {
+
+    // check for rights
+    if ( !current_user_can('edit_pages') && !current_user_can('edit_posts') ) 
+    	die(__("You are not allowed to be here"));
+        	
+   	include_once( dirname( dirname(__FILE__) ) . '/admin/tinymce/window.php');
+    
+    die();	
+}
+
+add_action( 'wp_ajax_ngg_rebuild_unique_slugs', 'ngg_ajax_rebuild_unique_slugs' );
+/**
+ * This rebuild the slugs for albums, galleries and images as ajax routine, max 50 elements per request
+ * 
+ * @since 1.7.0
+ * @return string '1'
+ */
+function ngg_ajax_rebuild_unique_slugs() {
+    global $wpdb;
+    
+	$action = $_POST['_action'];
+    $offset = (int) $_POST['offset'];
+    
+    switch ($action) {
+        case 'images':
+        	$images = $wpdb->get_results("SELECT * FROM $wpdb->nggpictures ORDER BY pid ASC LIMIT $offset, 50", OBJECT_K);
+        	if ( is_array($images) ) {
+                foreach ($images as $image) {
+            		//slug must be unique, we use the alttext for that
+                    $image->slug = nggdb::get_unique_slug( sanitize_title( $image->alttext ), 'image' );
+                    $wpdb->query( $wpdb->prepare( "UPDATE $wpdb->nggpictures SET image_slug= '%s' WHERE pid = '%d'" , $image->slug, $image->pid ) );
+                }
+            }
+        break;
+        case 'gallery':
+        	$galleries = $wpdb->get_results("SELECT * FROM $wpdb->nggallery ORDER BY gid ASC LIMIT $offset, 50", OBJECT_K);
+        	if ( is_array($galleries) ) {
+                foreach ($galleries as $gallery) {
+            		//slug must be unique, we use the title for that
+                    $gallery->slug = nggdb::get_unique_slug( sanitize_title( $gallery->title ), 'gallery' );
+                    $wpdb->query( $wpdb->prepare( "UPDATE $wpdb->nggallery SET slug= '%s' WHERE gid = '%d'" , $gallery->slug, $gallery->gid ) );
+                }
+            } 
+        break;
+        case 'album':
+        	$albumlist = $wpdb->get_results("SELECT * FROM $wpdb->nggalbum ORDER BY id ASC LIMIT $offset, 50", OBJECT_K);
+        	if ( is_array($albumlist) ) {
+                foreach ($albumlist as $album) {
+            		//slug must be unique, we use the name for that
+                    $album->slug = nggdb::get_unique_slug( sanitize_title( $album->name ), 'album' );
+                    $wpdb->query( $wpdb->prepare( "UPDATE $wpdb->nggalbum SET slug= '%s' WHERE id = '%d'" , $album->slug, $album->id ) );
+                }
+            }         
+        break;
+    }
+
+	die(1);
+}
+add_action('wp_ajax_ngg_image_check', 'ngg_ajax_image_check');
+/**
+ * Test for various image resolution
+ * 
+ * @since 1.7.3 
+ * @return result
+ */
+function ngg_ajax_image_check() {
+
+    // check for correct NextGEN capability
+	if ( !current_user_can('NextGEN Upload images') ) 
+		die('No access');	
+
+    if ( !defined('ABSPATH') )
+        die('No access');
+    
+    $step = (int) $_POST['step'];
+
+	// build the test sizes
+	$sizes = array();
+	$sizes[1] = array ( 'width' => 800,  'height' => 600);
+	$sizes[2] = array ( 'width' => 1024, 'height' => 768);
+	$sizes[3] = array ( 'width' => 1280, 'height' => 960);  // 1MP	
+	$sizes[4] = array ( 'width' => 1600, 'height' => 1200); // 2MP
+	$sizes[5] = array ( 'width' => 2016, 'height' => 1512); // 3MP
+	$sizes[6] = array ( 'width' => 2272, 'height' => 1704); // 4MP
+	$sizes[7] = array ( 'width' => 2560, 'height' => 1920); // 5MP
+    $sizes[8] = array ( 'width' => 2848, 'height' => 2136); // 6MP
+    $sizes[9] = array ( 'width' => 3072, 'height' => 2304); // 7MP
+    $sizes[10] = array ( 'width' => 3264, 'height' => 2448); // 8MP
+    $sizes[11] = array ( 'width' => 4048, 'height' => 3040); // 12MP
+    
+    if ( $step < 1 || $step > 11 )
+        die('No vaild value');
+        
+    // let's test each image size
+    $temp = imagecreatetruecolor ($sizes[$step]['width'], $sizes[$step]['height'] );
+    imagedestroy ($temp);
+    
+    $result = array ('stat' => 'ok', 'message' => sprintf(__('Could create image with %s x %s pixel', 'nggallery'), $sizes[$step]['width'], $sizes[$step]['height'] ) );
+    
+	header('Content-Type: application/json; charset=' . get_option('blog_charset'), true);
+	echo json_encode($result);
+    
+    die();	
+}
+
+add_action('wp_ajax_ngg_test_head_footer', 'ngg_ajax_test_head_footer');
+/**
+ * Check for the header / footer, parts taken from Matt Martz (http://sivel.net/)
+ * 
+ * @see https://gist.github.com/378450
+ * @since 1.7.3 
+ * @return result
+ */
+function ngg_ajax_test_head_footer() {
+
+	// Build the url to call, NOTE: uses home_url and thus requires WordPress 3.0
+	$url = add_query_arg( array( 'test-head' => '', 'test-footer' => '' ), home_url() );
+	// Perform the HTTP GET ignoring SSL errors
+	$response = wp_remote_get( $url, array( 'sslverify' => false ) );
+	// Grab the response code and make sure the request was sucessful
+	$code = (int) wp_remote_retrieve_response_code( $response );
+	if ( $code == 200 ) {
+		global $head_footer_errors;
+		$head_footer_errors = array();
+
+		// Strip all tabs, line feeds, carriage returns and spaces
+		$html = preg_replace( '/[\t\r\n\s]/', '', wp_remote_retrieve_body( $response ) );
+
+		// Check to see if we found the existence of wp_head
+		if ( ! strstr( $html, '<!--wp_head-->' ) )
+			die('Missing the call to <?php wp_head(); ?> in your theme');
+		// Check to see if we found the existence of wp_footer
+		if ( ! strstr( $html, '<!--wp_footer-->' ) )
+			die('Missing the call to <?php wp_footer(); ?> in your theme');
+	}
+    die('success');	
+}
+?>
\ No newline at end of file
diff --git a/wp-content/plugins/nextgen-gallery/admin/album.php b/wp-content/plugins/nextgen-gallery/admin/album.php
new file mode 100644
index 000000000..8cdd0a6f9
--- /dev/null
+++ b/wp-content/plugins/nextgen-gallery/admin/album.php
@@ -0,0 +1,582 @@
+<?php 
+
+if(preg_match('#' . basename(__FILE__) . '#', $_SERVER['PHP_SELF'])) { die('You are not allowed to call this page directly.'); }
+
+class nggManageAlbum {
+	
+	/**
+	 * The selected album ID
+	 *
+	 * @since 1.3.0
+	 * @access privat
+	 * @var int
+	 */
+	var $currentID = 0;
+	
+	/**
+	 * The array for the galleries
+	 *
+	 * @since 1.3.0
+	 * @access privat
+	 * @var array
+	 */
+	var $galleries = false;	
+
+	/**
+	 * The array for the albums
+	 *
+	 * @since 1.3.0
+	 * @access privat
+	 * @var array
+	 */
+	var $albums = false;	
+
+	/**
+	 * The amount of all galleries
+	 *
+	 * @since 1.4.0
+	 * @access privat
+	 * @var int
+	 */
+	var $num_galleries = false;
+	
+	/**
+	 * The amount of all albums
+	 *
+	 * @since 1.4.0
+	 * @access privat
+	 * @var int
+	 */
+	var $num_albums = false;
+
+	/**
+	 * PHP4 compatibility layer for calling the PHP5 constructor.
+	 * 
+	 */
+	function nggManageAlbum() {
+		return $this->__construct();
+	}
+
+	/**
+	 * Init the album output
+	 * 
+	 */	
+	function __construct() {
+		return true;
+	}
+	
+	function controller() {
+		global $nggdb;
+
+		$this->currentID = isset($_POST['act_album']) ? (int) $_POST['act_album'] : 0 ;
+
+		if (isset ($_POST['update']) || isset( $_POST['delete'] ) || isset( $_POST['add'] ) )
+			$this->processor();
+		
+		if (isset ($_POST['update_album']) )
+			$this->update_album();	
+		
+		// get first all galleries & albums
+		$this->albums = $nggdb->find_all_album();
+		$this->galleries  = $nggdb->find_all_galleries();	
+		$this->num_albums  = count( $this->albums );
+		$this->num_galleries  = count( $this->galleries );	
+		$this->output();	
+	
+	}
+	
+	function processor() {
+		global $wpdb;
+		
+		check_admin_referer('ngg_album');
+	
+		if ( isset($_POST['add']) && isset ($_POST['newalbum']) ) { 
+			
+			if (!nggGallery::current_user_can( 'NextGEN Add/Delete album' ))
+				wp_die(__('Cheatin&#8217; uh?'));			
+			
+			$result = nggdb::add_album( $_POST['newalbum'] );
+            $this->currentID = ($result) ? $result : 0 ;
+			
+			if ($result) 
+				nggGallery::show_message(__('Update Successfully','nggallery'));
+		} 
+		
+		if ( isset($_POST['update']) && ($this->currentID > 0) ) {
+            
+            $gid = '';
+            
+			// get variable galleryContainer 
+			parse_str($_POST['sortorder']); 
+			if ( is_array($gid) ){ 
+				$serial_sort = serialize($gid); 
+				$wpdb->query("UPDATE $wpdb->nggalbum SET sortorder = '$serial_sort' WHERE id = $this->currentID ");
+			} else {
+				$wpdb->query("UPDATE $wpdb->nggalbum SET sortorder = '0' WHERE id = $this->currentID ");
+			}
+			nggGallery::show_message(__('Update Successfully','nggallery'));
+
+		}
+		
+		if ( isset($_POST['delete']) ) {
+			
+			if (!nggGallery::current_user_can( 'NextGEN Add/Delete album' ))
+				wp_die(__('Cheatin&#8217; uh?'));
+				
+			$result = nggdb::delete_album( $this->currentID );
+            
+            $this->currentID = 0;
+            
+			if ($result) 
+				nggGallery::show_message(__('Album deleted','nggallery'));
+		}
+		
+	}
+
+	function update_album() {
+		global $wpdb, $nggdb;
+		
+		check_admin_referer('ngg_thickbox_form');
+		
+		if (!nggGallery::current_user_can( 'NextGEN Edit album settings' )) 
+			wp_die(__('Cheatin&#8217; uh?'));
+		
+		$name = $_POST['album_name'];
+		$desc = $_POST['album_desc'];
+		$prev = (int) $_POST['previewpic'];
+		$link = (int) $_POST['pageid'];
+        
+		// slug must be unique, we use the title for that
+        $slug = nggdb::get_unique_slug( sanitize_title( $name ), 'album' );
+        
+		$result = $wpdb->query( $wpdb->prepare( "UPDATE $wpdb->nggalbum SET slug= '%s', name= '%s', albumdesc= '%s', previewpic= %d, pageid= %d WHERE id = '%d'" , $slug, $name, $desc, $prev, $link, $this->currentID ) );
+        
+		//hook for other plugin to update the fields
+		do_action('ngg_update_album', $this->currentID, $_POST);        
+        
+		if ($result)
+			nggGallery::show_message(__('Update Successfully','nggallery'));
+	}
+	
+	function output() {
+		
+	global $wpdb, $nggdb;
+
+	//TODO:Code MUST be optimized, how to flag a used gallery better ?
+	$used_list = $this->get_used_galleries();
+	
+?>
+
+<script type="text/javascript">
+
+jQuery(document).ready(
+	function()
+	{
+        jQuery("#previewpic").nggAutocomplete( {
+            type: 'image',domain: "<?php echo site_url(); ?>/"
+        });
+        
+		jQuery('#selectContainer').sortable( {
+			items: '.groupItem',
+			placeholder: 'sort_placeholder',
+			opacity: 0.7,
+			tolerance: 'intersect',
+			distance: 2,
+			forcePlaceholderSize: true ,
+			connectWith: ['#galleryContainer'] 
+		} );
+
+		jQuery('#galleryContainer').sortable( {
+			items: '.groupItem',
+			placeholder: 'sort_placeholder',
+			opacity: 0.7,
+			tolerance: 'intersect',
+			distance: 2,
+			forcePlaceholderSize: true ,
+			connectWith: ['#selectContainer', '#albumContainer'] 
+		} );
+
+		jQuery('#albumContainer').sortable( {
+			items: '.groupItem',
+			placeholder: 'sort_placeholder',
+			opacity: 0.7,
+			tolerance: 'intersect',
+			distance: 2,
+			forcePlaceholderSize: true ,
+			connectWith: ['#galleryContainer']
+		} );
+		
+		jQuery('a.min').bind('click', toggleContent);
+
+		// Hide used galleries
+		jQuery('a#toggle_used').click(function()
+			{
+				jQuery('#selectContainer div.inUse').toggle();
+				return false;
+			}
+		);	
+			
+		// Maximize All Portlets (whole site, no differentiation)
+		jQuery('a#all_max').click(function()
+			{
+				jQuery('div.itemContent:hidden').show();
+				return false;
+			}
+		);
+
+		// Minimize All Portlets (whole site, no differentiation)
+		jQuery('a#all_min').click(function()
+			{
+				jQuery('div.itemContent:visible').hide();
+				return false;
+			}
+		);
+	   // Auto Minimize if more than 4 (whole site, no differentiation)
+	   if(jQuery('a.min').length > 4)
+	   {
+	   		jQuery('a.min').html('[+]');
+	   		jQuery('div.itemContent:visible').hide();
+	   		jQuery('#selectContainer div.inUse').toggle();
+	   };
+	}
+);
+
+var toggleContent = function(e)
+{
+	var targetContent = jQuery('div.itemContent', this.parentNode.parentNode);
+	if (targetContent.css('display') == 'none') {
+		targetContent.slideDown(300);
+		jQuery(this).html('[-]');
+	} else {
+		targetContent.slideUp(300);
+		jQuery(this).html('[+]');
+	}
+	return false;
+}
+
+function ngg_serialize(s)
+{
+	//serial = jQuery.SortSerialize(s);
+	serial = jQuery('#galleryContainer').sortable('serialize');
+	jQuery('input[name=sortorder]').val(serial);
+}
+
+function showDialog() {
+	jQuery( "#editalbum").dialog({
+		width: 640,
+        resizable : false,
+		modal: true,
+        title: '<?php echo esc_js( __('Edit Album', 'nggallery') ); ?>'        
+	});
+    jQuery('#editalbum .dialog-cancel').click(function() { jQuery( "#editalbum" ).dialog("close"); });
+}
+
+</script>
+
+<div class="wrap album" id="wrap" >
+    <?php screen_icon( 'nextgen-gallery' ); ?>
+	<h2><?php esc_html_e('Manage Albums', 'nggallery') ?></h2>
+	<form id="selectalbum" method="POST" onsubmit="ngg_serialize()" accept-charset="utf-8">
+		<?php wp_nonce_field('ngg_album') ?>
+		<input name="sortorder" type="hidden" />
+		<div class="albumnav tablenav">
+			<div class="alignleft actions">
+				<?php esc_html_e('Select album', 'nggallery') ?>
+				<select id="act_album" name="act_album" onchange="this.form.submit();">
+					<option value="0" ><?php esc_html_e('No album selected', 'nggallery') ?></option>
+					<?php
+						if( is_array($this->albums) ) {
+							foreach($this->albums as $album) {
+								$selected = ($this->currentID == $album->id) ? 'selected="selected" ' : '';
+								echo '<option value="' . $album->id . '" ' . $selected . '>' . $album->id . ' - ' . $album->name . '</option>'."\n";
+							}
+						}
+					?>
+				</select>
+				<?php if ($this->currentID > 0){ ?>
+					<input class="button-primary" type="submit" name="update" value="<?php esc_attr_e('Update', 'nggallery'); ?>"/>
+					<?php if(nggGallery::current_user_can( 'NextGEN Edit album settings' )) { ?>
+					<input class="button-secondary" type="submit" name="showThickbox" value="<?php esc_attr_e( 'Edit album', 'nggallery'); ?>" onclick="showDialog(); return false;" />
+					<?php } ?>
+					<?php if(nggGallery::current_user_can( 'NextGEN Add/Delete album' )) { ?>
+					<input class="button-secondary action "type="submit" name="delete" value="<?php esc_attr_e('Delete', 'nggallery'); ?>" onclick="javascript:check=confirm('<?php esc_js('Delete album ?','nggallery'); ?>');if(check==false) return false;"/>
+					<?php } ?>
+				<?php } else { ?>
+					<?php if(nggGallery::current_user_can( 'NextGEN Add/Delete album' )) { ?>
+					<span><?php esc_html_e('Add new album', 'nggallery'); ?>&nbsp;</span>
+					<input class="search-input" id="newalbum" name="newalbum" type="text" value="" />			
+					<input class="button-secondary action" type="submit" name="add" value="<?php esc_attr_e('Add', 'nggallery'); ?>"/>
+					<?php } ?>
+				<?php } ?>	
+			</div>
+		</div>
+	</form>
+	
+	<br class="clear"/>
+	
+	<div>
+		<div style="float:right;">
+		  <a href="#" title="<?php esc_attr_e('Show / hide used galleries','nggallery'); ?>" id="toggle_used"><?php esc_html_e('[Show all]', 'nggallery'); ?></a>
+		| <a href="#" title="<?php esc_attr_e('Maximize the widget content','nggallery'); ?>" id="all_max"><?php esc_html_e('[Maximize]', 'nggallery'); ?></a>
+		| <a href="#" title="<?php esc_attr_e('Minimize the widget content','nggallery'); ?>" id="all_min"><?php esc_html_e('[Minimize]', 'nggallery'); ?></a>
+		</div>
+		<?php esc_html_e('After you create and select a album, you can drag and drop a gallery or another album into your new album below','nggallery'); ?>
+	</div>
+
+	<br class="clear" />
+	
+	<div class="container">
+		
+		<!-- /#album container -->
+		<div class="widget widget-right">
+			<div class="widget-top">
+				<h3><?php esc_html_e('Select album', 'nggallery'); ?></h3>
+			</div>
+			<div id="albumContainer" class="widget-holder">
+			<?php 
+			if( is_array( $this->albums ) ) {
+				foreach($this->albums as $album) {
+					$this->get_container('a' . $album->id);
+				}
+			}
+		?> 
+			</div>			
+		</div>
+		
+		<!-- /#select container -->
+		<div class="widget widget-right">
+			<div class="widget-top">
+				<h3><?php esc_html_e('Select gallery', 'nggallery'); ?></h3>
+			</div>
+			<div id="selectContainer" class="widget-holder">
+		<?php
+		
+		if( is_array( $this->galleries ) ) {
+			//get the array of galleries	
+			$sort_array =  $this->currentID > 0 ? (array) $this->albums[$this->currentID]->galleries : array() ;
+			foreach($this->galleries as $gallery) {
+				if (!in_array($gallery->gid, $sort_array)) {
+					if (in_array($gallery->gid,$used_list))
+						$this->get_container($gallery->gid,true);
+					else
+						$this->get_container($gallery->gid,false);
+				}
+			}
+		}
+		?>
+			</div>
+		</div>
+		
+		<!-- /#target-album -->
+		<div class="widget target-album widget-liquid-left">
+
+		<?php
+			if ($this->currentID > 0){			
+				$album = $this->albums[$this->currentID];
+				?>
+				<div class="widget-top">
+					<h3><?php esc_html_e('Album ID', 'nggallery');  ?> <?php echo $album->id . ' : ' . $album->name; ?> </h3>
+				</div>
+				<div id="galleryContainer" class="widget-holder target">
+				<?php
+				$sort_array = (array) $this->albums[$this->currentID]->galleries;
+				foreach($sort_array as $galleryid) {
+					$this->get_container($galleryid, false);
+				}
+			} 
+			else
+			{	
+				?>
+				<div class="widget-top">
+					<h3><?php esc_html_e('No album selected!', 'nggallery'); ?></h3>
+				</div>
+				<div class="widget-holder target">
+				<?php
+			}
+		?> 
+			</div>
+		</div><!-- /#target-album -->
+
+	</div><!-- /#container -->
+</div><!-- /#wrap -->
+
+<!-- #editalbum -->
+<div id="editalbum" style="display: none;" >
+	<form id="form-edit-album" method="POST" accept-charset="utf-8">
+	<?php wp_nonce_field('ngg_thickbox_form') ?>
+	<input type="hidden" id="current_album" name="act_album" value="<?php echo $this->currentID; ?>" />
+	<table width="100%" border="0" cellspacing="3" cellpadding="3" >
+	  	<tr>
+	    	<th>
+	    		<?php esc_html_e('Album name:', 'nggallery'); ?><br />
+				<input class="search-input" id="album_name" name="album_name" type="text" value="<?php echo esc_attr( $album->name ); ?>" style="width:95%" />
+	    	</th>
+	  	</tr>
+	  	<tr>
+	    	<th>
+	    		<?php esc_html_e('Album description:', 'nggallery'); ?><br />
+	    		<textarea class="search-input" id="album_desc" name="album_desc" cols="50" rows="2" style="width:95%" ><?php echo esc_attr( $album->albumdesc ); ?></textarea>
+	    	</th>
+	  	</tr>
+	  	<tr>
+	    	<th>
+	    		<?php esc_html_e('Select a preview image:', 'nggallery'); ?><br />
+					<select id="previewpic" name="previewpic" style="width:95%" >
+                        <?php if ($album->previewpic == 0) ?>
+		                <option value="0"><?php esc_html_e('No picture', 'nggallery'); ?></option>
+						<?php
+                            if ($album->previewpic == 0)
+                                echo '<option value="0" selected="selected">' . __('No picture', 'nggallery') . '</option>';
+                            else {
+                                $picture = nggdb::find_image($album->previewpic);
+                                echo '<option value="' . $picture->pid . '" selected="selected" >'. $picture->pid . ' - ' . ( empty($picture->alltext) ? $picture->filename : $picture->alltext ) .' </option>'."\n";
+                            }
+						?>
+					</select>
+	    	</th>
+	  	</tr>
+        <tr>
+            <th>
+                <?php esc_html_e('Page Link to', 'nggallery')?><br />
+                    <select name="pageid" style="width:95%">
+                        <option value="0" ><?php esc_html_e('Not linked', 'nggallery') ?></option>
+                        <?php 
+                        if (!isset($album->pageid))
+                            $album->pageid = 0;
+                        parent_dropdown($album->pageid); ?>
+                    </select>
+            </th>
+        </tr>
+        
+        <?php do_action('ngg_edit_album_settings', $this->currentID); ?>
+        
+	  	<tr align="right">
+	    	<td class="submit">
+	    		<input type="submit" class="button-primary" name="update_album" value="<?php esc_attr_e('OK', 'nggallery'); ?>" />
+	    		&nbsp;
+	    		<input class="button-secondary dialog-cancel" type="reset" value="<?php esc_attr_e('Cancel', 'nggallery'); ?>"/>
+	    	</td>
+		</tr>
+	</table>
+	</form>
+</div>
+<!-- /#editalbum -->
+
+<?php
+		
+	}
+	
+	/**
+	 * Create the album or gallery container
+	 * 
+	 * @param integer $id (the prefix 'a' indidcates that you look for a album 
+	 * @param bool $used (object will be hidden)
+	 * @return $output
+	 */
+	function get_container($id = 0, $used = false) {
+		global $wpdb, $nggdb;
+		
+		$obj =  array();
+		$preview_image = '';
+        $class = '';
+		
+		// if the id started with a 'a', then it's a sub album
+		if (substr( $id, 0, 1) == 'a') {
+			
+			if ( !$album = $this->albums[ substr( $id, 1) ] )
+				return;
+	
+			$obj['id']   = $album->id;
+			$obj['name'] = $obj['title'] = $album->name;
+			$class = 'album_obj';
+
+			// get the post name
+			$post = get_post($album->pageid);
+			$obj['pagenname'] = ($post == null) ? '---' : $post->post_title;
+			
+			// for speed reason we limit it to 50
+			if ( $this->num_albums < 50 ) {	
+				if ($album->previewpic != 0) {
+					$image = $nggdb->find_image( $album->previewpic ); 
+    				$preview_image = ( !is_null($image->thumbURL) )  ? '<div class="inlinepicture"><img src="' . $image->thumbURL . '" /></div>' : '';
+                }
+			}
+			
+			// this indicates that we have a album container
+			$prefix = 'a';
+		
+		} else {
+			if ( !$gallery = $nggdb->find_gallery( $id ) )
+				return;
+
+			$obj['id']    = $gallery->gid;
+			$obj['name']  = $gallery->name;
+			$obj['title'] = $gallery->title;
+		
+			// get the post name
+			$post = get_post($gallery->pageid);
+			$obj['pagenname'] = ($post == null) ? '---' : $post->post_title;	
+
+			// for spped reason we limit it to 50
+			if ( $this->num_galleries < 50 ) {
+				// set image url
+				$image = $nggdb->find_image( $gallery->previewpic );
+				$preview_image = isset($image->thumbURL) ? '<div class="inlinepicture"><img src="' . $image->thumbURL . '" /></div>' : '';
+			}
+			
+			$prefix = '';
+		}
+
+		// add class if it's in use in other albums
+		$used = $used ? ' inUse' : '';		
+		
+		echo '<div id="gid-' . $prefix . $obj['id'] . '" class="groupItem' . $used . '">
+				<div class="innerhandle">
+					<div class="item_top ' . $class . '">
+						<a href="#" class="min" title="close">[-]</a>
+						ID: ' . $obj['id'] . ' | ' . wp_html_excerpt( nggGallery::i18n( $obj['title'] ) , 25) . '
+					</div>
+					<div class="itemContent">
+							' . $preview_image . '
+							<p><strong>' . __('Name', 'nggallery') . ' : </strong>' . nggGallery::i18n( $obj['name'] ) . '</p>
+							<p><strong>' . __('Title', 'nggallery') . ' : </strong>' . nggGallery::i18n( $obj['title'] ) . '</p>
+							<p><strong>' . __('Page', 'nggallery'). ' : </strong>' . nggGallery::i18n( $obj['pagenname'] ) . '</p>
+							' . apply_filters('ngg_display_album_item_content', '', $obj['id']) . '
+						</div>
+				</div>
+			   </div>'; 
+	}
+	
+	/**
+	 * get all used galleries from all albums
+	 * 
+	 * @return array $used_galleries_ids
+	 */
+	function get_used_galleries() {
+		
+		$used = array();
+		
+		if ($this->albums) {
+			foreach($this->albums as $key => $value) {
+				$sort_array = $this->albums[$key]->galleries;
+				foreach($sort_array as $galleryid) {
+					if (!in_array($galleryid, $used))
+						$used[] = $galleryid;
+				}
+			}
+		}
+		
+		return $used;
+	}
+
+	/**
+	 * PHP5 style destructor
+	 *
+	 * @return bool Always true
+	 */
+	function __destruct() {
+		return true;
+	}
+	
+}
+?>
\ No newline at end of file
diff --git a/wp-content/plugins/nextgen-gallery/admin/css/images/dropdown.png b/wp-content/plugins/nextgen-gallery/admin/css/images/dropdown.png
new file mode 100644
index 0000000000000000000000000000000000000000..3ae61797fc9b2378cc12aa1211c1a6e192e9f393
GIT binary patch
literal 217
zcmeAS@N?(olHy`uVBq!ia0y~yU=U<rVBq6mVqjo!>rZ&hz`(#+;1OBOz`%C|gc+x5
z^GP!>Fm!vmIEGZr**j???-2za*SQ*^LbDI#iS!)Io2EN0fl-Skyx<Xsr;116ex}?0
z|D`udCMN{4Ggv%-#+dy!(BJTwqyxvtuZ#^rr=qsm8!5KT%+!3^f6`L_w~3o(sqCkF
z->>gA3_WARaOTb~^<^bWi`WDL@9+A)(#eIv;mE?eTkhGmE?%0pdk=nl)L+NY)>-a(
U^PT8#1_lNOPgg&ebxsLQ0LLaxx&QzG

literal 0
HcmV?d00001

diff --git a/wp-content/plugins/nextgen-gallery/admin/css/images/ui-anim_basic_16x16.gif b/wp-content/plugins/nextgen-gallery/admin/css/images/ui-anim_basic_16x16.gif
new file mode 100644
index 0000000000000000000000000000000000000000..085ccaecaf5fa5c34bc14cd2c2ed5cbbd8e25dcb
GIT binary patch
literal 1553
zcmZ?wbhEHb6krfwIKsg2|NsAY@7~?Ldw2Kl-K$ounmKc3M@L6_d3jn|T4-pfi;Ih~
zv9XeplAxd<gCGL~SUrd$8Y}+i_Hzvhc6JPKHPSO+W@KPsQ2fcl%FZCbpaU`l<O~MZ
zas?G9#!i)|E1Z~=S<Wj@Sgm2>^Wen6HC)Dr4{u;z=E8VX;F*U?+_otWFC~6V2uNwz
zutO=7t#xyNGV8g-)}|Qi`DdFC8?NG#kmAZeZ)Ih`RmSGP#G+E8W6Z?O%)-jl6tB$4
z$u7W}!qi~O#BMxYiMiO6nK@Mv)h+xC0t^hS$qFic7aBVlEwz-Cxp)_LaUZexW_%{;
zph+ux_7nyuDelXUCwg@XO=wLpnenO3hJ&%t;?1TBPE3tIn&Mk$7P|yEgfcc>UNAv4
zW&QQ276Bd(#xyPV%zC9J4OY!Ifv`xXK4mm}1sM1l7+4b&RQduEC#>k`;1Xu>*0SQf
z!d5CZMc|^4@<E4^2nKPkW<@mv8#$&>WpyEudHoMF8gAsut6y}8>{t|+aVSwY`}-Y@
zmV>YLWZIe;XZd}SVrdXys!?HeZe&c;bZAPe!LStM*(3#(z9h$aj|3e$mDHHIblG1k
zz0fjqmVV6Gc%nf-i?6jwJ0a@@pGgOwQNjrY(@7g7B1Ab@Bo|#QI53IzA?L>oeUFWk
z6Z9@{@+^CuF`@0u*B~WE=GfqHW~bPOx~8^<E)5K8`4|{jJwahyIAO(%j`N3?y}9MY
zt0R{eeIer#&xGTLo@lYUcOK^oy)$vzilZJ3nih-Kx}Poax*8XJ#bL&-zGJ#tF1e?d
z-B`jH!qVP~H8mB2OgEUIAtJD-u%mqf8+*3Igo7tmHgK3bGP_F&q_j1?+@N77vgp78
z1CAc1CYF?g!kiIH8Wtsla-K^KQk)ndaqdM(<G~DtLmCGcH5@8aj8_T>WC~+U<>ikQ
z;LX%z;g1qXs8HtNS2wQYuhE>>hv7$1(1PM~g2IFq79Fk!m%Z`a(aO~AX5h@#IE(S_
zfe?od5x0p6Gn`C>Rvh4L{m|LuD8bm+ki;ByG^ub$uMo=`$xTfP2R1M_F>*?XZ$EaJ
zK~q1Gu_`#YfsbE}FRX!+yFdlSQbq<yB8pQ`acZ*QQ8HX7aBC6sp>+mbI~r$nJ8=rK
z2OTot;wW2vSm}gQAJ4j*IRz_LEm<6q)N%Fh61Vvi851|j@i#j<s%b^E9dA6S;m~2s
zxa$gs&IT5K4c=M-o<MCo0nQ*4D;XFdc^8yl0t6<ksBmgh;M3NcqZ@rB<-xYbhl{i)
zXF3Q-a%m<oHu@~$vRC&^SmEW~)V%FS5>LRsm5)AV^oj5`pZXZFLxPpbiBZ!)V9}xL
zJ0e782P*S0)(UX)`SIm*E0uU^M|q;y3-f9WD8D4IF|F)cX0hhg&vh%ct{mm*Z!u)q
zHkGd_LqgD?sc1umh3E#SgY7~hQd<KP*?;yjbsP;lqQEA>wN&w<uZ&Aej^aWI6AslI
zOit}G-<(nfxB^@v4cOQWuv!?apwg!zGUbH?$I=6f4td)32cA0kf$z)bKBm~09~8Ev
zD76`}N?NdTx-TyDu;g6N;Miz1O=!{l6Ad4n#3rm#dZ?q|(%$5up)Mo9WU~3-UT3Zt
zgGP=7#!w$6)*?tY;Y2GIQxsJCQat&36V@F*ye9jTz=j`Ahd$46QsCOolq>RLDp#N5
zNpm9|5w7Ny8UeBr5id8bYWl&(IeC(Zg+q{PQz8$iw_v;0!Uo}gE-M-j_Pj81W#r}%
Xs1{&huUBbqNfRhBZF5#tWUvMRh_K`K

literal 0
HcmV?d00001

diff --git a/wp-content/plugins/nextgen-gallery/admin/css/images/ui-icons_222222_256x240.png b/wp-content/plugins/nextgen-gallery/admin/css/images/ui-icons_222222_256x240.png
new file mode 100644
index 0000000000000000000000000000000000000000..b273ff111d219c9b9a8b96d57683d0075fb7871a
GIT binary patch
literal 4369
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
B0@(ln

literal 0
HcmV?d00001

diff --git a/wp-content/plugins/nextgen-gallery/admin/css/images/ui-icons_cccccc_256x240.png b/wp-content/plugins/nextgen-gallery/admin/css/images/ui-icons_cccccc_256x240.png
new file mode 100644
index 0000000000000000000000000000000000000000..9254e05cfb964be56241b5bb4d0a0eb51c02df80
GIT binary patch
literal 4369
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
Bpn3oR

literal 0
HcmV?d00001

diff --git a/wp-content/plugins/nextgen-gallery/admin/css/images/ui-icons_ffffff_256x240.png b/wp-content/plugins/nextgen-gallery/admin/css/images/ui-icons_ffffff_256x240.png
new file mode 100644
index 0000000000000000000000000000000000000000..42f8f992c727ddaa617da224a522e463df690387
GIT binary patch
literal 4369
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
B%d`Lh

literal 0
HcmV?d00001

diff --git a/wp-content/plugins/nextgen-gallery/admin/css/jquery.ui.css b/wp-content/plugins/nextgen-gallery/admin/css/jquery.ui.css
new file mode 100644
index 000000000..cce17f9e9
--- /dev/null
+++ b/wp-content/plugins/nextgen-gallery/admin/css/jquery.ui.css
@@ -0,0 +1,139 @@
+/*
+ * jQuery UI CSS Framework @VERSION
+ *
+ * Copyright 2010, AUTHORS.txt (http://jqueryui.com/about)
+ * Dual licensed under the MIT or GPL Version 2 licenses.
+ * http://jquery.org/license
+ *
+ * http://docs.jquery.com/UI/Theming/API
+ */
+
+/* Layout helpers
+----------------------------------*/
+.ui-helper-hidden { display: none; }
+.ui-helper-hidden-accessible { position: absolute; left: -99999999px; }
+.ui-helper-reset { margin: 0; padding: 0; border: 0; outline: 0; line-height: 1.3; text-decoration: none; font-size: 100%; list-style: none; }
+.ui-helper-clearfix:after { content: "."; display: block; height: 0; clear: both; visibility: hidden; }
+.ui-helper-clearfix { display: inline-block; }
+/* required comment for clearfix to work in Opera \*/
+* html .ui-helper-clearfix { height:1%; }
+.ui-helper-clearfix { display:block; }
+/* end clearfix */
+.ui-helper-zfix { width: 100%; height: 100%; top: 0; left: 0; position: absolute; opacity: 0; filter:Alpha(Opacity=0); }
+
+/* Interaction Cues
+----------------------------------*/
+.ui-state-disabled { cursor: default !important; }
+
+/* Icons
+----------------------------------*/
+.ui-icon-triangle-1-s { background-position: -64px -16px; }
+
+/* states and images */
+.ui-icon { display: block; text-indent: -99999px; overflow: hidden; background-repeat: no-repeat; }
+
+/* Misc visuals
+----------------------------------*/
+
+/* Overlays */
+.ui-widget-overlay { position: absolute; top: 0; left: 0; width: 100%; height: 100%; }
+
+/* jQuery UI CSS Framework @VERSION */
+
+/* Component containers
+----------------------------------*/
+.ui-widget-content { background: #fcfdfd 50% bottom repeat-x; color: #222222; }
+/* .ui-widget-content a { color: #222222; } */
+.ui-widget-header { background: #222222 50% 50% repeat-x; color: #CFCFCF; }
+.ui-widget-header a { color: #CFCFCF; }
+
+/* Interaction states
+----------------------------------*/
+.ui-dialog-titlebar-close:hover { border: 1px solid #464646; background: #464646 50% 50% repeat-x; font-weight: normal; color: #ffffff; }
+.ui-widget :active { outline: none; }
+
+/* Icons
+----------------------------------*/
+
+/* states and images */
+.ui-icon { width: 16px; height: 16px; background-image: url(images/ui-icons_cccccc_256x240.png); }
+.ui-widget-content .ui-icon {background-image: url(images/ui-icons_cccccc_256x240.png); }
+.ui-widget-header .ui-icon {background-image: url(images/ui-icons_ffffff_256x240.png); }
+.ui-state-default .ui-icon { background-image: url(images/ui-icons_cccccc_256x240.png); }
+.ui-state-hover .ui-icon, .ui-state-focus .ui-icon {background-image: url(images/ui-icons_ffffff_256x240.png); }
+.ui-state-active .ui-icon {background-image: url(images/ui-icons_222222_256x240.png); }
+
+/* positioning */
+.ui-icon-close { background-position: -80px -128px; }
+.ui-icon-closethick { background-position: -96px -128px; }
+.ui-icon-gripsmall-diagonal-se { background-position: -64px -224px; }
+.ui-icon-grip-diagonal-se { background-position: -80px -224px; }
+
+/* Misc visuals
+----------------------------------*/
+
+/* Corner radius */
+.ui-corner-tl { -moz-border-radius-topleft: 5px; -webkit-border-top-left-radius: 5px; border-top-left-radius: 5px; }
+.ui-corner-tr { -moz-border-radius-topright: 5px; -webkit-border-top-right-radius: 5px; border-top-right-radius: 5px; }
+.ui-corner-bl { -moz-border-radius-bottomleft: 5px; -webkit-border-bottom-left-radius: 5px; border-bottom-left-radius: 5px; }
+.ui-corner-br { -moz-border-radius-bottomright: 5px; -webkit-border-bottom-right-radius: 5px; border-bottom-right-radius: 5px; }
+.ui-corner-top { -moz-border-radius-topleft: 5px; -webkit-border-top-left-radius: 5px; border-top-left-radius: 5px; -moz-border-radius-topright: 5px; -webkit-border-top-right-radius: 5px; border-top-right-radius: 5px; }
+.ui-corner-bottom { -moz-border-radius-bottomleft: 5px; -webkit-border-bottom-left-radius: 5px; border-bottom-left-radius: 5px; -moz-border-radius-bottomright: 5px; -webkit-border-bottom-right-radius: 5px; border-bottom-right-radius: 5px; }
+.ui-corner-right {  -moz-border-radius-topright: 5px; -webkit-border-top-right-radius: 5px; border-top-right-radius: 5px; -moz-border-radius-bottomright: 5px; -webkit-border-bottom-right-radius: 5px; border-bottom-right-radius: 5px; }
+.ui-corner-left { -moz-border-radius-topleft: 5px; -webkit-border-top-left-radius: 5px; border-top-left-radius: 5px; -moz-border-radius-bottomleft: 5px; -webkit-border-bottom-left-radius: 5px; border-bottom-left-radius: 5px; }
+.ui-corner-all { -moz-border-radius: 5px; -webkit-border-radius: 5px; border-radius: 5px; }
+
+/* Overlays */
+.ui-widget-overlay { background: #000000 50% 50% repeat-x; opacity: .75;filter:Alpha(Opacity=75); }
+.ui-widget-shadow { margin: -8px 0 0 -8px; padding: 8px; background: #000000 50% 50% repeat-x; opacity: .75;filter:Alpha(Opacity=75); -moz-border-radius: 8px; -webkit-border-radius: 8px; border-radius: 8px; }/*
+ 
+/* jQuery UI Resizable */
+.ui-resizable { position: relative;}
+.ui-resizable-handle { position: absolute;font-size: 0.1px;z-index: 99999; display: block;}
+.ui-resizable-disabled .ui-resizable-handle, .ui-resizable-autohide .ui-resizable-handle { display: none; }
+.ui-resizable-n { cursor: n-resize; height: 7px; width: 100%; top: -5px; left: 0; }
+.ui-resizable-s { cursor: s-resize; height: 7px; width: 100%; bottom: -5px; left: 0; }
+.ui-resizable-e { cursor: e-resize; width: 7px; right: -5px; top: 0; height: 100%; }
+.ui-resizable-w { cursor: w-resize; width: 7px; left: -5px; top: 0; height: 100%; }
+.ui-resizable-se { cursor: se-resize; width: 12px; height: 12px; right: 1px; bottom: 1px; }
+.ui-resizable-sw { cursor: sw-resize; width: 9px; height: 9px; left: -5px; bottom: -5px; }
+.ui-resizable-nw { cursor: nw-resize; width: 9px; height: 9px; left: -5px; top: -5px; }
+.ui-resizable-ne { cursor: ne-resize; width: 9px; height: 9px; right: -5px; top: -5px;}/*
+
+/* jQuery UI Dialog  */
+.ui-dialog { position: absolute; padding: .2em; width: 300px; overflow: hidden; }
+.ui-dialog { -moz-box-shadow: rgba(0,0,0,1) 0 4px 30px; -webkit-box-shadow: rgba(0,0,0,1) 0 4px 30px; -khtml-box-shadow: rgba(0,0,0,1) 0 4px 30px; box-shadow: rgba(0,0,0,1) 0 4px 30px; }
+.ui-dialog .ui-dialog-titlebar { padding: .5em 1em .3em; position: relative;  }
+.ui-dialog .ui-dialog-title { float: left; margin: .1em 16px .2em 0; } 
+.ui-dialog .ui-dialog-titlebar-close { position: absolute; right: .3em; top: 50%; width: 19px; margin: -10px 0 0 0; padding: 1px; height: 18px; }
+.ui-dialog .ui-dialog-titlebar-close span { display: block; margin: 1px; }
+.ui-dialog .ui-dialog-titlebar-close:hover, .ui-dialog .ui-dialog-titlebar-close:focus { padding: 0; }
+.ui-dialog .ui-dialog-content { position: relative; border: 0; padding: .5em 1em; background: none; overflow: auto; zoom: 1; }
+.ui-dialog .ui-dialog-buttonpane { text-align: left; border-width: 1px 0 0 0; background-image: none; margin: .5em 0 0 0; padding: .3em 1em .5em .4em; }
+.ui-dialog .ui-dialog-buttonpane .ui-dialog-buttonset { float: right; }
+.ui-dialog .ui-dialog-buttonpane button { margin: .5em .4em .5em 0; cursor: pointer; }
+.ui-dialog .ui-resizable-se { width: 14px; height: 14px; right: 3px; bottom: 3px; }
+.ui-draggable .ui-dialog-titlebar { cursor: move; }
+
+/* jQuery UI Progressbar */
+.ui-progressbar { height:2em; text-align: left; }
+.ui-progressbar .ui-progressbar-value {margin: -1px; height:100%; }
+
+/* jQuery UI Dialog loading spinner */
+#spinner {display: none; width:100px; height: 100px; position: fixed; top: 50%; left: 50%; background:url(../../images/loader.gif) no-repeat center #fff; padding:10px; border:1px solid #666; margin-left: -50px; margin-top: -50px; z-index:2; overflow: auto; }
+
+/* jQuery Autocomplete */
+.ui-autocomplete { position: absolute; cursor: default; }	
+.ui-autocomplete-start { background: white url('images/dropdown.png') right center no-repeat; }	
+* html .ui-autocomplete { width:1px; } /* without this, the menu expands to 100% in IE6 */
+.ui-autocomplete-loading { background: white url('images/ui-anim_basic_16x16.gif') right center no-repeat; }
+/* this limit the height of the result list*/
+.ui-autocomplete { max-height: 90px; overflow-y: auto; }
+* html .ui-autocomplete { height: 90px; }
+.ui-autocomplete .ui-state-hover, .ui-autocomplete .ui-widget-content .ui-state-hover { background: #1e90ff; color: #FFFFFF !important; }
+.ui-widget-content { border: 1px solid #dddddd; border-style:outset; background: #FFFFFF; }
+.ui-autocomplete, .ui-autocomplete .ui-corner-all { -moz-border-radius: 0px; -webkit-border-radius: 0px; border-radius: 0px; }
+.ui-menu { list-style:none;	padding: 1px; margin: 0; display:block;	float: left; }
+.ui-menu .ui-menu { margin-top: -3px; }
+.ui-menu .ui-menu-item { margin:0; padding:0; zoom:1; float:left; clear:left; width:100%; }
+.ui-menu .ui-menu-item a { text-decoration:none; display:block;	zoom:1; color: black;}
\ No newline at end of file
diff --git a/wp-content/plugins/nextgen-gallery/admin/css/jquery.ui.tabs.css b/wp-content/plugins/nextgen-gallery/admin/css/jquery.ui.tabs.css
new file mode 100644
index 000000000..09f1892cf
--- /dev/null
+++ b/wp-content/plugins/nextgen-gallery/admin/css/jquery.ui.tabs.css
@@ -0,0 +1,158 @@
+/* Caution! Ensure accessibility in print and other media types... */
+@media projection, screen { /* Use class for showing/hiding tab content, so that visibility can be better controlled in different media types... */
+    .ui-tabs-hide {
+        display: none;
+    }
+}
+
+/* Hide useless elements in print layouts... */
+@media print {
+    .ui-tabs-nav {
+        display: none;
+    }
+}
+
+/* Skin */
+#slider {
+	border-color:#EBEBEB rgb(204, 204, 204) rgb(204, 204, 204) rgb(235, 235, 235);
+	border-style:solid;
+	border-width:1px;
+	margin:15px 15% 0pt 15px;
+	padding:2px;
+}
+#tabs{
+	display: block;
+	background:#F1F1F1 none repeat scroll 0%;
+	font-size:14px;
+	overflow:hidden;
+}
+
+.ui-tabs-nav {
+    list-style: none;
+    margin: 0;
+    padding: 0 0 0 10px;
+}
+.ui-tabs-nav:after { /* clearing without presentational markup, IE gets extra treatment */
+    display: block;
+    clear: both;
+    content: " ";
+}
+.ui-tabs-nav li {
+    float: left;
+    padding: 6px 5px;
+    min-width: 84px; /* be nice to Opera */
+    margin: 2px 2px 0px 1px !important;
+	text-decoration: none;
+	list-style: none;
+}
+.ui-tabs-nav a, .ui-tabs-nav a span {
+    display: block;
+    padding: 0 1px;
+}
+
+.ui-tabs-nav a {
+    margin: 1px 0 0; /* position: relative makes opacity fail for disabled tab in IE */
+    padding-left: 0;
+    color: #2583AD;
+    line-height: 1.2;
+    text-align: center;
+    text-decoration: none;
+    white-space: nowrap; /* required in IE 6 */    
+    outline: 0; /* prevent dotted border in Firefox */
+}
+.ui-tabs-nav .ui-tabs-selected{
+	background: #6D6D6D url(../images/menu-bits.gif) repeat-x scroll left top;
+	border-color: #6D6D6D;
+	color: #FFFFFF;
+	text-shadow:0 -1px 0 #666666;
+
+	-moz-border-radius-topright: 6px;
+	-khtml-border-top-right-radius: 6px;
+	-webkit-border-top-right-radius: 6px;
+	border-top-right-radius: 6px;
+	-moz-border-radius-topleft: 6px;
+	-khtml-border-top-left-radius: 6px;
+	-webkit-border-top-left-radius: 6px;
+	border-top-left-radius: 6px;
+}
+
+.ui-tabs-selected a,
+.ui-tabs-selected a:hover {
+	color:#FFFFFF !important;
+}
+
+.ui-tabs-nav .ui-tabs-selected a,
+.ui-tabs-nav .ui-tabs-selected a:hover  {
+    position: relative;
+    top: 1px;
+    z-index: 2;
+    margin-top: 0;
+}
+
+.ui-tabs-nav li a:hover {
+	color:#D54E21;
+}
+
+.ui-tabs-nav a span {
+    width: 64px; /* IE 6 treats width as min-width */
+    min-width: 64px;
+    height: 18px; /* IE 6 treats height as min-height */
+    min-height: 18px;
+    padding-top: 6px;
+    padding-right: 0;
+}
+*>.ui-tabs-nav a span { /* hide from IE 6 */
+    width: auto;
+    height: auto;
+}
+.ui-tabs-nav .ui-tabs-selected a span {
+    padding-bottom: 1px;
+}
+.ui-tabs-nav .ui-tabs-selected a, .ui-tabs-nav a:hover, .ui-tabs-nav a:focus, .ui-tabs-nav a:active {
+    background-position: 100% -150px;
+}
+.ui-tabs-nav a, .ui-tabs-nav .ui-tabs-disabled a:hover, .ui-tabs-nav .ui-tabs-disabled a:focus, .ui-tabs-nav .ui-tabs-disabled a:active {
+    background-position: 100% -100px;
+}
+.ui-tabs-nav .ui-tabs-selected a span, .ui-tabs-nav a:hover span, .ui-tabs-nav a:focus span, .ui-tabs-nav a:active span {
+    background-position: 0 -50px;
+}
+.ui-tabs-nav a span, .ui-tabs-nav .ui-tabs-disabled a:hover span, .ui-tabs-nav .ui-tabs-disabled a:focus span, .ui-tabs-nav .ui-tabs-disabled a:active span {
+    background-position: 0 0;
+}
+.ui-tabs-nav .ui-tabs-selected a:link, .ui-tabs-nav .ui-tabs-selected a:visited, .ui-tabs-nav .ui-tabs-disabled a:link, .ui-tabs-nav .ui-tabs-disabled a:visited { /* @ Opera, use pseudo classes otherwise it confuses cursor... */
+    cursor: text;
+}
+.ui-tabs-nav a:hover, .ui-tabs-nav a:focus, .ui-tabs-nav a:active,
+.ui-tabs-nav .ui-tabs-unselect a:hover, .ui-tabs-nav .ui-tabs-unselect a:focus, .ui-tabs-nav .ui-tabs-unselect a:active { /* @ Opera, we need to be explicit again here now... */
+    cursor: pointer;
+}
+.ui-tabs-disabled {
+    opacity: .4;
+    filter: alpha(opacity=40);
+}
+.ui-tabs-panel {
+    border-top: 1px solid #97a5b0 !important;
+    padding: 1em 8px;
+    background: #fff; /* declare background color for container to avoid distorted fonts in IE while fading */
+
+	/* overwrite wp-admin */
+	border:none !important;
+	height:100% !important;
+	margin:0pt 0pt 0pt 0px !important;
+	overflow:visible !important;
+}
+
+.ui-tabs-panel a {
+	display:inline;
+}
+
+
+/* Additional IE specific bug fixes... */
+* html .ui-tabs-nav { /* auto clear, @ IE 6 & IE 7 Quirks Mode */
+    display: inline-block;
+}
+*:first-child+html .ui-tabs-nav  { /* @ IE 7 Standards Mode - do not group selectors, otherwise IE 6 will ignore complete rule (because of the unknown + combinator)... */
+    display: inline-block;
+}
+
diff --git a/wp-content/plugins/nextgen-gallery/admin/css/menu.css b/wp-content/plugins/nextgen-gallery/admin/css/menu.css
new file mode 100644
index 000000000..510ecb102
--- /dev/null
+++ b/wp-content/plugins/nextgen-gallery/admin/css/menu.css
@@ -0,0 +1,14 @@
+#adminmenu #toplevel_page_nextgen-gallery div.wp-menu-image,
+#oam_toplevel_page_nextgen-gallery div.wp-menu-image {
+	background: transparent url('../images/nextgen_16_grey.png') no-repeat scroll 6px 6px;
+}
+#adminmenu #toplevel_page_nextgen-gallery:hover div.wp-menu-image,
+#adminmenu #toplevel_page_nextgen-gallery.wp-has-current-submenu div.wp-menu-image,
+#adminmenu #toplevel_page_nextgen-gallery.current div.wp-menu-image,
+#oam_toplevel_page_nextgen-gallery:hover div.wp-menu-image {
+	background: transparent url('../images/nextgen_16_color.png') no-repeat scroll 6px 6px;
+}
+
+#icon-nextgen-gallery  {
+    background:url("../images/nextgen_32_grey.png") no-repeat scroll 1px 1px transparent;
+}
\ No newline at end of file
diff --git a/wp-content/plugins/nextgen-gallery/admin/css/nggColorPicker.css b/wp-content/plugins/nextgen-gallery/admin/css/nggColorPicker.css
new file mode 100644
index 000000000..6b7775fb9
--- /dev/null
+++ b/wp-content/plugins/nextgen-gallery/admin/css/nggColorPicker.css
@@ -0,0 +1,14 @@
+#colorSelector{
+	background:transparent url(../images/select.png) repeat scroll 0 0;
+	height:36px;
+	position:relative;
+	width:36px;
+}
+#colorSelector div{
+	background:transparent url(../images/select.png) repeat scroll center center;
+	height:30px;
+	left:3px;
+	position:absolute;
+	top:3px;
+	width:30px;
+}
\ No newline at end of file
diff --git a/wp-content/plugins/nextgen-gallery/admin/css/nggSorter.css b/wp-content/plugins/nextgen-gallery/admin/css/nggSorter.css
new file mode 100644
index 000000000..e0d61b9b4
--- /dev/null
+++ b/wp-content/plugins/nextgen-gallery/admin/css/nggSorter.css
@@ -0,0 +1,76 @@
+.imageBox,.imageBoxHighlighted{
+	width:130px;	/* Total width of each image box */
+	height:160px;	/* Total height of each image box */
+	float:left;
+}
+.imageBox_theImage{
+	width:110px;	/* Width of image */
+	height:125px;	/* Height of image */
+	
+	/* 
+	Don't change these values *
+	*/
+	background-position: center;
+	background-repeat: no-repeat;		
+	margin: 0 auto;
+	margin-bottom:2px;
+}
+
+.imageBox .imageBox_theImage{
+	border:1px solid #DDD;	/* Border color for not selected images */
+	padding:2px;
+}
+.imageBoxHighlighted .imageBox_theImage{
+	border:3px solid #316AC5;	/* Border color for selected image */
+	padding:0px;
+
+}
+.imageBoxHighlighted span{	/* Title of selected image */
+	background-color: #316AC5;
+	color:#FFFFFF;
+	padding:2px;
+}
+
+.imageBox_label{	/* Title of images - both selected and not selected */
+	text-align:center;
+	font-family: arial;
+	font-size:11px;		
+	padding-top:2px;
+	margin: 0 auto;
+}
+
+/* 
+DIV that indicates where the dragged image will be placed	
+*/
+#insertionMarker{
+	height:150px;
+	width:6px;
+	position:absolute;
+}
+
+#insertionMarkerLine{
+	width:6px;	/* No need to change this value */
+	height:145px;	/* To adjust the height of the div that indicates where the dragged image will be dropped */
+
+}
+	
+#insertionMarker img{
+	float:left;
+}
+
+/*
+DIV that shows the image as you drag it 
+*/
+#dragDropContent{
+
+	opacity:0.4;	/* 40 % opacity */
+	filter:alpha(opacity=40);	/* 40 % opacity */
+
+	/* 
+	No need to change these three values 
+	*/
+	position:absolute;
+	z-index:10;
+	display:none;
+		
+}
\ No newline at end of file
diff --git a/wp-content/plugins/nextgen-gallery/admin/css/nggadmin.css b/wp-content/plugins/nextgen-gallery/admin/css/nggadmin.css
new file mode 100644
index 000000000..bfe1f5aa0
--- /dev/null
+++ b/wp-content/plugins/nextgen-gallery/admin/css/nggadmin.css
@@ -0,0 +1,462 @@
+/* 
+** NextGEN Gallery Style for Wordpress 3.0
+*/
+
+/* SETTINGS FOR Overview Gallery */
+
+#newversion {
+	border-color:#CCCCCC;
+	border-style:solid;
+	border-width:1px;
+	margin-right:7px;
+	margin-top:10px;
+	padding:2px;
+}
+
+.ngg-dashboard-widget ul.settings span {
+	padding-left : 10px;
+	color:#2583AD;
+	font-weight:bold;
+}
+
+.ngg-overview .postbox .handlediv {
+	float:right;
+	height:24px;
+	width:24px;
+}
+
+.warning {
+    color: #9F6000;
+    background-color: #FEEFB3;
+    border: 1px solid;
+    margin: 5px 0px;
+    padding:5px;
+}
+
+#donator_message {
+	margin:5px 0 15px;
+	background-color:#BDE5F8;
+	border-color:#00529B;
+	-moz-border-radius-bottomleft:3px;
+	-moz-border-radius-bottomright:3px;
+	-moz-border-radius-topleft:3px;
+	-moz-border-radius-topright:3px;
+	border-style:solid;
+	border-width:1px;
+	margin:5px 15px 2px;
+	padding:0 0.6em;
+}
+
+#donator_message p{
+	line-height:1;
+	margin:0.5em 0;
+	padding:2px;
+	padding-bottom:10px;
+}
+
+#donator_message span{
+	padding-top:10px;
+	float:right;
+}
+
+#plugin_check img {
+    float: right;
+}
+
+#plugin_check p.message {
+	font-size: 90%;
+	color: #666;
+}
+/* SETTING FOR FLASH UPLOAD BUTTON */
+.swfupload {
+	position:absolute;
+	z-index:1;
+	vertical-align:top;
+}
+
+/* SETTINGS FOR THE OPTIONS TABLE */ 
+.ngg-options th {
+	width:22%;
+} 
+
+a.switch-expert {
+	text-decoration:none;
+}
+
+/* WATERMARK */
+#wm-preview {
+	float:right;
+	font-size:90%;
+	width:35%;
+	border-color:#EBEBEB rgb(204, 204, 204) rgb(204, 204, 204) rgb(235, 235, 235);
+	border-style:solid;
+	border-width:1px;
+	margin-bottom:10px;
+	margin-left:10px;
+	margin-right:8px;
+	padding:2px;
+}
+#wm-preview h3{
+	background:#F9F9F9 none repeat scroll 0%;
+	font-size:14px;
+	font-weight:bold;
+	margin:0pt 0pt 10px;
+	padding:8px 5px;
+}
+
+#wm-position {
+	width:100%;
+	margin-left:40px;
+}
+
+.wm-table {
+	border-collapse:collapse;
+	margin-top:1em;
+	width: 60%;
+	clear:none;
+}
+.wm-table td {
+	border-bottom:8px solid #FFFFFF;
+	line-height:20px;
+	margin-bottom:9px;
+	padding:10px;
+}
+.wm-table th {
+	border-bottom:8px solid #FFFFFF;
+	padding:10px;
+	text-align:left;
+}
+.wm-table tr {
+	background:#F9F9F9 none repeat scroll 0%;
+}
+
+/* SETTINGS FOR MANAGE TABLE */
+
+div#poststuff #gallerydiv {
+	cursor:pointer;
+}
+
+p#ngg-inlinebutton {
+	float:right;
+	margin:0pt;
+	position:relative;
+	top:-25pt;
+}
+
+.ngg-tablenav .button-secondary {
+	padding:2px 8px;
+	vertical-align: top;
+}
+
+.fixed tbody th.column-cb {
+	padding:7px 0 22px;
+}
+.fixed .column-cb {
+	padding:0;
+	width:2.2em;
+}
+
+.fixed .column-thumbnail{
+	width:85px;
+}
+
+.fixed .column-thumbnail img{
+	max-height:80px;
+	max-width:80px;
+}
+
+.fixed .column-id {
+	width: 5em;
+}
+
+.fixed .column-exclude, .fixed .column-action, .fixed .column-delete {
+	width: 10%;
+}
+
+/* SETTINGS FOR PROGRESS BAR */
+
+div .progressborder {
+	border:1px solid #DDDDDD;
+	display: block; 
+	height: 30px; 
+	background-color: #464646; 
+	width: 100%;
+	margin-top: 15px;
+	margin-bottom: 15px;
+    -moz-border-radius: 5px; 
+    -webkit-border-radius: 5px; 
+    border-radius: 5px;
+}
+
+div .progressbar {
+	border: medium none ; 
+	display: block; 
+	height: 30px; 
+	background-color: #D54E21; 
+	width: 0%;
+    -moz-border-radius: 5px; 
+    -webkit-border-radius: 5px; 
+    border-radius: 5px;
+}
+
+div .progressbar span {
+	display: inline; 
+	position: absolute; 
+	color: white; 
+	font-weight: bold; 
+	padding: 5px 0 0 5px;
+}
+
+.show_details
+{
+	height: 16px;
+	line-height: 20px; 
+	overflow: hidden;
+	min-width: 8em;
+	padding: 3px;
+	cursor:pointer;
+}
+
+.show_details span
+{
+	border-bottom:1px solid #999;
+	white-space:pre;
+}
+.show_details:hover 
+{
+	height: auto;
+	overflow: visible;
+	border: 1px solid #999;
+}
+
+ /* SETTINGS FOR ALBUM PAGE */
+
+.albumnav select[name="act_album"] {
+	width:150px;
+}
+
+.albumnav span {
+	padding-left: 50px;
+}
+
+div .groupItem
+{
+	cursor: move;
+	width: 295px;
+	padding: 5px;
+}
+
+div .innerhandle {
+	background-color:#FBFBFB;
+}
+
+.groupItem .item_top
+{
+	background-color:#2683AE;
+	color: #FFFFFF;
+	font-weight:bold;
+	line-height: 28px;
+	height: 28px;
+	padding: 0 5px;
+	-moz-border-radius: 3px;
+	-khtml-border-radius: 3px;
+	-webkit-border-radius: 3px;
+	border-radius: 3px;
+}
+
+.groupItem .album_obj
+{
+	background-color:#D54E21;
+}
+
+.groupItem .item_top a
+{
+	color:#FFFFFF;
+	float:right;
+	text-decoration: none;
+}
+
+.groupItem .item_top a:hover
+{
+	color:#FFFFFF;
+}
+
+.itemContent {
+	border-color:#DFDFDF;
+	border-style:none solid solid;
+	border-width:0 1px 1px;
+	padding:2px 0 20px 2px;
+}
+
+.itemContent p {
+	border: 0;  
+	margin: 0;  
+	padding: 0;
+}
+
+.inlinepicture
+{
+	float:left;
+	display:inline;
+	margin:0pt;
+	padding:0pt 3px 1px;
+}
+
+.inlinepicture img
+{
+	margin:3px;
+	max-height:60px;
+}
+
+.sort_placeholder
+{
+	border:1px dashed #bba !important;
+	margin: 5px;
+	background: #F9F9F9;
+}
+
+.container {
+	margin-top: 10px;
+}
+
+.target-album {
+	margin:10px 685px 10px 10px;
+}
+
+.widget-right {
+	float:right;
+	margin:0pt 10px;
+	width:315px;
+}
+
+.widget-holder {
+	min-height: 400px;	
+	padding-top:1px;
+}
+
+.target {
+	background-color:#F1F1F1;
+}
+
+div.widget-top h3 {
+	text-align:center;
+	line-height:25px;
+	margin: 0;
+	padding: 5px 12px;
+	font-size: 13px;
+}
+
+div.widget-top {
+	text-shadow:0 1px 0 #FFFFFF;
+	background-repeat: repeat-x;
+	background-position: 0 0;
+	font-size: 13px;
+}
+
+.ui-autocomplete-start { background-position: 99% center; }	
+
+/* SETTINGS FOR SORT GALLERY */
+
+#sortGallery {
+	position:relative;
+}
+
+p#sortButton{
+	margin:0;
+	position:absolute;
+	right:0;
+	top:0;
+}
+
+.imageBox,.imageBoxHighlighted{
+	width:130px;	/* Total width of each image box */
+	height:160px;	/* Total height of each image box */
+	float:left;
+}
+.imageBox_theImage{
+	width:110px;	/* Width of image */
+	height:125px;	/* Height of image */
+	
+	background-position: center;
+	background-repeat: no-repeat;		
+	margin: 0 auto;
+	margin-bottom:2px;
+}
+
+.imageBox .imageBox_theImage{
+	border:1px solid #DDD;	/* Border color for not selected images */
+	padding:2px;
+}
+.imageBoxHighlighted .imageBox_theImage{
+	border:3px solid #316AC5;	/* Border color for selected image */
+	padding:0px;
+
+}
+.imageBoxHighlighted span{	/* Title of selected image */
+	background-color: #316AC5;
+	color:#FFFFFF;
+	padding:2px;
+}
+
+.imageBox_label{	/* Title of images - both selected and not selected */
+	text-align:center;
+	font-family: arial;
+	font-size:11px;		
+	padding-top:2px;
+	margin: 0 auto;
+}
+
+/* 
+DIV that indicates where the dragged image will be placed	
+*/
+
+#insertionMarker{
+	height:150px;
+	width:6px;
+	position:absolute;
+}
+
+#insertionMarkerLine{
+	width:6px;		/* No need to change this value */
+	height:145px;	/* To adjust the height of the div that indicates where the dragged image will be dropped */
+
+}
+	
+#insertionMarker img{
+	float:left;
+}
+
+/*
+DIV that shows the image as you drag it 
+*/
+
+#dragDropContent{
+
+	opacity:0.4;	/* 40 % opacity */
+	filter:alpha(opacity=40);	/* 40 % opacity */
+
+	/* 
+	No need to change these three values 
+	*/
+	position:absolute;
+	z-index:10;
+	display:none;
+		
+}	
+
+/* UPGRADE PAGE */
+
+.error_inline {
+	background:#FFEBE8 none repeat scroll 0%;
+	border:1px solid #CC0000;
+	margin:5px auto;
+	padding:10px;
+}
+
+/* ABOUT PAGE */ 
+.ngg-list {
+	font-size:11px; 
+	margin-left:15px;
+	list-style-position:inside;
+	list-style-type:disc;
+}
diff --git a/wp-content/plugins/nextgen-gallery/admin/css/tags-admin.css b/wp-content/plugins/nextgen-gallery/admin/css/tags-admin.css
new file mode 100644
index 000000000..a7f5e273e
--- /dev/null
+++ b/wp-content/plugins/nextgen-gallery/admin/css/tags-admin.css
@@ -0,0 +1,10 @@
+.ngg_wrap .auto_list{width:98%;margin:3px 0;padding:3px 5px;}
+.ngg_wrap .list_tags {width:240px;vertical-align:top;}
+.ngg_wrap .forms_manage {vertical-align:top;}
+.ngg_wrap .forms_manage h3 {margin-bottom:5px;}
+.ngg_wrap .forms_manage .form-table {margin-top:0;}
+.ngg_wrap .sort_order h3 {margin:0;}
+.ngg_wrap #ajax_area_tagslist {}
+.ngg_wrap #ajax_area_tagslist ul{list-style:square;margin:10px 0 10px 20px;padding:0;}
+.ngg_wrap #ajax_area_tagslist ul li{margin:0;padding:0;line-height:1.4;}
+.ngg_wrap #ajax_area_tagslist ul li span{cursor:pointer;}
\ No newline at end of file
diff --git a/wp-content/plugins/nextgen-gallery/admin/edit-thumbnail.php b/wp-content/plugins/nextgen-gallery/admin/edit-thumbnail.php
new file mode 100644
index 000000000..b2425c2df
--- /dev/null
+++ b/wp-content/plugins/nextgen-gallery/admin/edit-thumbnail.php
@@ -0,0 +1,173 @@
+<?php
+
+/**
+
+Custom thumbnail for NGG
+Author : Simone Fumagalli | simone@iliveinperego.com
+More info and update : http://www.iliveinperego.com/custom_thumbnail_for_ngg/
+
+Credits:
+ NextGen Gallery : Alex Rabe | http://alexrabe.boelinger.com/wordpress-plugins/nextgen-gallery/
+ jCrop : Kelly Hallman <khallman@wrack.org> | http://deepliquid.com/content/Jcrop.html
+ 
+**/
+
+require_once( dirname( dirname(__FILE__) ) . '/ngg-config.php');
+require_once( NGGALLERY_ABSPATH . '/lib/image.php' );
+
+if ( !is_user_logged_in() )
+	die(__('Cheatin&#8217; uh?'));
+	
+if ( !current_user_can('NextGEN Manage gallery') ) 
+	die(__('Cheatin&#8217; uh?'));
+
+global $wpdb;
+
+$id = (int) $_GET['id'];
+
+// let's get the image data
+$picture = nggdb::find_image($id);
+
+include_once( nggGallery::graphic_library() );
+$ngg_options=get_option('ngg_options');
+
+$thumb = new ngg_Thumbnail($picture->imagePath, TRUE);
+$thumb->resize(350,350);
+// we need the new dimension
+$resizedPreviewInfo = $thumb->newDimensions;
+$thumb->destruct();
+
+$preview_image		= NGGALLERY_URLPATH . 'nggshow.php?pid=' . $picture->pid . '&amp;width=350&amp;height=350';
+$imageInfo			= @getimagesize($picture->imagePath);
+$rr = round($imageInfo[0] / $resizedPreviewInfo['newWidth'], 2);
+
+if ( ($ngg_options['thumbfix'] == 1) ) {
+	
+	$WidthHtmlPrev  = $ngg_options['thumbwidth'];
+	$HeightHtmlPrev = $ngg_options['thumbheight'];
+	
+} else {
+	// H > W
+	if ($imageInfo[1] > $imageInfo[0]) {
+
+		$HeightHtmlPrev =  $ngg_options['thumbheight'];
+		$WidthHtmlPrev  = round($imageInfo[0] / ($imageInfo[1] / $ngg_options['thumbheight']),0);
+		
+	} else {
+		
+		$WidthHtmlPrev  =  $ngg_options['thumbwidth'];
+		$HeightHtmlPrev = round($imageInfo[1] / ($imageInfo[0] / $ngg_options['thumbwidth']),0);
+		
+	}
+}
+
+?>
+<script src="<?php echo NGGALLERY_URLPATH; ?>/admin/js/Jcrop/js/jquery.Jcrop.js"></script>
+<link rel="stylesheet" href="<?php echo NGGALLERY_URLPATH; ?>/admin/js/Jcrop/css/jquery.Jcrop.css" type="text/css" />
+
+<script language="JavaScript">
+<!--
+	
+	var status = 'start';
+	var xT, yT, wT, hT, selectedCoords;
+	var selectedImage = "thumb<?php echo $id ?>";
+
+	function showPreview(coords)
+	{
+		
+		if (status != 'edit') {
+			jQuery('#actualThumb').hide();
+			jQuery('#previewNewThumb').show();
+			status = 'edit';	
+		}
+		
+		var rx = <?php echo $WidthHtmlPrev; ?> / coords.w;
+		var ry = <?php echo $HeightHtmlPrev; ?> / coords.h;
+		
+		jQuery('#imageToEditPreview').css({
+			width: Math.round(rx * <?php echo $resizedPreviewInfo['newWidth']; ?>) + 'px',
+			height: Math.round(ry * <?php echo $resizedPreviewInfo['newHeight']; ?>) + 'px',
+			marginLeft: '-' + Math.round(rx * coords.x) + 'px',
+			marginTop: '-' + Math.round(ry * coords.y) + 'px'
+		});
+		
+		xT = coords.x;
+		yT = coords.y;
+		wT = coords.w;
+		hT = coords.h;
+		
+		jQuery("#sizeThumb").html(xT+" "+yT+" "+wT+" "+hT);
+		
+	};
+	
+	function updateThumb() {
+		
+		if ( (wT == 0) || (hT == 0) || (wT == undefined) || (hT == undefined) ) {
+			alert("<?php _e('Select with the mouse the area for the new thumbnail', 'nggallery'); ?>");
+			return false;			
+		}
+				
+		jQuery.ajax({
+		  url: "admin-ajax.php",
+		  type : "POST",
+		  data:  {x: xT, y: yT, w: wT, h: hT, action: 'createNewThumb', id: <?php echo $id; ?>, rr: <?php echo $rr; ?>},
+		  cache: false,
+		  success: function(data){
+					var d = new Date();
+					newUrl = jQuery("#"+selectedImage).attr("src") + "?" + d.getTime();
+					jQuery("#"+selectedImage).attr("src" , newUrl);
+					
+					jQuery('#thumbMsg').html("<?php _e('Thumbnail updated', 'nggallery') ?>");
+					jQuery('#thumbMsg').css({'display':'block'});
+					setTimeout(function(){ jQuery('#thumbMsg').fadeOut('slow'); }, 1500);
+			},
+		  error: function() {
+		  			jQuery('#thumbMsg').html("<?php _e('Error updating thumbnail', 'nggallery') ?>");
+					jQuery('#thumbMsg').css({'display':'block'});
+					setTimeout(function(){ jQuery('#thumbMsg').fadeOut('slow'); }, 1500);
+		    }
+		});
+
+	}
+	
+-->
+</script>
+
+<table width="98%" align="center" style="border:1px solid #DADADA">
+	<tr>
+		<td rowspan="3" valign="middle" align="center" width="350" style="background-color:#DADADA;">
+			<img src="<?php echo $preview_image; ?>" alt="" id="imageToEdit" />	
+		</td>
+		<td width="300" style="background-color : #DADADA;">
+			<small style="margin-left:6px; display:block;"><?php _e('Select the area for the thumbnail from the picture on the left.', 'nggallery'); ?></small>
+		</td>		
+	</tr>
+	<tr>
+		<td align="center" width="300" height="320">
+			<div id="previewNewThumb" style="display:none;width:<?php echo $WidthHtmlPrev; ?>px;height:<?php echo $HeightHtmlPrev; ?>px;overflow:hidden; margin-left:5px;">
+				<img src="<?php echo $preview_image; ?>" id="imageToEditPreview" />
+			</div>
+			<div id="actualThumb">
+				<img src="<?php echo $picture->thumbURL; ?>?<?php echo time()?>" />
+			</div>
+		</td>
+	</tr>
+	<tr style="background-color:#DADADA;">
+		<td>
+			<input type="button" name="update" value="<?php _e('Update', 'nggallery'); ?>" onclick="updateThumb()" class="button-secondary" style="float:left; margin-left:4px;"/>
+			<div id="thumbMsg" style="color:#FF0000; display : none;font-size:11px; float:right; width:60%; height:2em; line-height:2em;"></div>
+		</td>
+	</tr>
+</table>
+
+<script type="text/javascript">
+<!--
+	jQuery(document).ready(function(){
+		jQuery('#imageToEdit').Jcrop({
+			onChange: showPreview,
+			onSelect: showPreview,
+			aspectRatio: <?php echo round($WidthHtmlPrev/$HeightHtmlPrev, 3) ?>
+		});
+	});
+-->
+</script>
diff --git a/wp-content/plugins/nextgen-gallery/admin/functions.php b/wp-content/plugins/nextgen-gallery/admin/functions.php
new file mode 100644
index 000000000..8af43e1ba
--- /dev/null
+++ b/wp-content/plugins/nextgen-gallery/admin/functions.php
@@ -0,0 +1,1484 @@
+<?php
+
+if(preg_match('#' . basename(__FILE__) . '#', $_SERVER['PHP_SELF'])) { die('You are not allowed to call this page directly.'); }
+
+/**
+ * nggAdmin - Class for admin operation
+ * 
+ * @package NextGEN Gallery
+ * @author Alex Rabe
+ * @copyright 2007-2010
+ * @access public
+ */
+class nggAdmin{
+
+	/**
+	 * create a new gallery & folder
+	 * 
+	 * @class nggAdmin
+	 * @param string $name of the gallery
+	 * @param string $defaultpath
+	 * @param bool $output if the function should show an error messsage or not
+	 * @return 
+	 */
+	function create_gallery($title, $defaultpath, $output = true) {
+
+		global $user_ID;
+ 
+		// get the current user ID
+		get_currentuserinfo();
+
+		//cleanup pathname
+		$name = sanitize_file_name( sanitize_title($title)  );
+		$name = apply_filters('ngg_gallery_name', $name);
+		$nggRoot = WINABSPATH . $defaultpath;
+		$txt = '';
+		
+		// No gallery name ?
+		if ( empty($name) ) {	
+			if ($output) nggGallery::show_error( __('No valid gallery name!', 'nggallery') );
+			return false;
+		}
+		
+		// check for main folder
+		if ( !is_dir($nggRoot) ) {
+			if ( !wp_mkdir_p( $nggRoot ) ) {
+				$txt  = __('Directory', 'nggallery').' <strong>' . $defaultpath . '</strong> '.__('didn\'t exist. Please create first the main gallery folder ', 'nggallery').'!<br />';
+				$txt .= __('Check this link, if you didn\'t know how to set the permission :', 'nggallery').' <a href="http://codex.wordpress.org/Changing_File_Permissions">http://codex.wordpress.org/Changing_File_Permissions</a> ';
+				if ($output) nggGallery::show_error($txt);
+				return false;
+			}
+		}
+
+		// check for permission settings, Safe mode limitations are not taken into account. 
+		if ( !is_writeable( $nggRoot ) ) {
+			$txt  = __('Directory', 'nggallery').' <strong>' . $defaultpath . '</strong> '.__('is not writeable !', 'nggallery').'<br />';
+			$txt .= __('Check this link, if you didn\'t know how to set the permission :', 'nggallery').' <a href="http://codex.wordpress.org/Changing_File_Permissions">http://codex.wordpress.org/Changing_File_Permissions</a> ';
+			if ($output) nggGallery::show_error($txt);
+			return false;
+		}
+		
+		// 1. Check for existing folder
+		if ( is_dir(WINABSPATH . $defaultpath . $name ) ) {
+			$suffix = 1;
+			do {
+				$alt_name = substr ($name, 0, 200 - ( strlen( $suffix ) + 1 ) ) . "_$suffix";
+				$dir_check = is_dir(WINABSPATH . $defaultpath . $alt_name );
+				$suffix++;
+			} while ( $dir_check );
+			$name = $alt_name;
+		}  
+        // define relative path to gallery inside wp root folder
+        $nggpath = $defaultpath . $name;
+		
+		// 2. Create new gallery folder
+		if ( !wp_mkdir_p (WINABSPATH . $nggpath) ) 
+		  $txt  = __('Unable to create directory ', 'nggallery').$nggpath.'!<br />';
+		
+		// 3. Check folder permission
+		if ( !is_writeable(WINABSPATH . $nggpath ) )
+			$txt .= __('Directory', 'nggallery').' <strong>'.$nggpath.'</strong> '.__('is not writeable !', 'nggallery').'<br />';
+
+		// 4. Now create thumbnail folder inside
+		if ( !is_dir(WINABSPATH . $nggpath . '/thumbs') ) {				
+			if ( !wp_mkdir_p ( WINABSPATH . $nggpath . '/thumbs') ) 
+				$txt .= __('Unable to create directory ', 'nggallery').' <strong>' . $nggpath . '/thumbs !</strong>';
+		}
+		
+		if (SAFE_MODE) {
+			$help  = __('The server setting Safe-Mode is on !', 'nggallery');	
+			$help .= '<br />'.__('If you have problems, please create directory', 'nggallery').' <strong>' . $nggpath . '</strong> ';	
+			$help .= __('and the thumbnails directory', 'nggallery').' <strong>' . $nggpath . '/thumbs</strong> '.__('with permission 777 manually !', 'nggallery');
+			if ($output) nggGallery::show_message($help);
+		}
+		
+		// show a error message			
+		if ( !empty($txt) ) {
+			if (SAFE_MODE) {
+			// for safe_mode , better delete folder, both folder must be created manually
+				@rmdir(WINABSPATH . $nggpath . '/thumbs');
+				@rmdir(WINABSPATH . $nggpath);
+			}
+			if ($output) nggGallery::show_error($txt);
+			return false;
+		}
+        
+        // now add the gallery to the database
+        $galleryID = nggdb::add_gallery($title, $nggpath, '', 0, 0, $user_ID );
+		// here you can inject a custom function
+		do_action('ngg_created_new_gallery', $galleryID);
+
+		// return only the id if defined
+		if ($output == false)
+			return $galleryID;
+			
+		if ($galleryID != false) {
+			$message  = __('Gallery ID %1$s successfully created. You can show this gallery in your post or page with the shortcode %2$s.<br/>','nggallery');
+			$message  = sprintf($message, $galleryID, '<strong>[nggallery id=' . $galleryID . ']</strong>');
+			$message .= '<a href="' . admin_url() . 'admin.php?page=nggallery-manage-gallery&mode=edit&gid=' . $galleryID . '" >';
+			$message .= __('Edit gallery','nggallery');
+			$message .= '</a>';
+			
+			if ($output) nggGallery::show_message($message); 
+		}
+		return true;
+	}
+	
+	/**
+	 * nggAdmin::import_gallery()
+	 * TODO: Check permission of existing thumb folder & images
+	 * 
+	 * @class nggAdmin
+	 * @param string $galleryfolder contains relative path to the gallery itself
+	 * @return void
+	 */
+	function import_gallery($galleryfolder) {
+		
+		global $wpdb, $user_ID;
+
+		// get the current user ID
+		get_currentuserinfo();
+		
+		$created_msg = '';
+		
+		// remove trailing slash at the end, if somebody use it
+		if (substr($galleryfolder, -1) == '/') $galleryfolder = substr($galleryfolder, 0, -1);
+		$gallerypath = WINABSPATH . $galleryfolder;
+		
+		if (!is_dir($gallerypath)) {
+			nggGallery::show_error(__('Directory', 'nggallery').' <strong>'.$gallerypath.'</strong> '.__('doesn&#96;t exist!', 'nggallery'));
+			return ;
+		}
+		
+		// read list of images
+		$new_imageslist = nggAdmin::scandir($gallerypath);
+
+		if (empty($new_imageslist)) {
+			nggGallery::show_message(__('Directory', 'nggallery').' <strong>'.$gallerypath.'</strong> '.__('contains no pictures', 'nggallery'));
+			return;
+		}
+		
+		// check & create thumbnail folder
+		if ( !nggGallery::get_thumbnail_folder($gallerypath) )
+			return;
+		
+		// take folder name as gallery name		
+		$galleryname = basename($galleryfolder);
+		$galleryname = apply_filters('ngg_gallery_name', $galleryname);
+		
+		// check for existing gallery folder
+		$gallery_id = $wpdb->get_var("SELECT gid FROM $wpdb->nggallery WHERE path = '$galleryfolder' ");
+
+		if (!$gallery_id) {
+			$result = $wpdb->query( $wpdb->prepare("INSERT INTO $wpdb->nggallery (name, path, title, author) VALUES (%s, %s, %s, %s)", $galleryname, $galleryfolder, $galleryname , $user_ID) );
+			if (!$result) {
+				nggGallery::show_error(__('Database error. Could not add gallery!','nggallery'));
+				return;
+			}
+			$created_msg = _n( 'Gallery', 'Galleries', 1, 'nggallery' ) . ' <strong>' . $galleryname . '</strong> ' . __('successfully created!','nggallery') . '<br />';
+			$gallery_id  = $wpdb->insert_id;  // get index_id
+		}
+		
+		// Look for existing image list
+		$old_imageslist = $wpdb->get_col("SELECT filename FROM $wpdb->nggpictures WHERE galleryid = '$gallery_id' ");
+		
+		// if no images are there, create empty array
+		if ($old_imageslist == NULL) 
+			$old_imageslist = array();
+			
+		// check difference
+		$new_images = array_diff($new_imageslist, $old_imageslist);
+		
+		// all images must be valid files
+		foreach($new_images as $key => $picture) {
+			if (!@getimagesize($gallerypath . '/' . $picture) ) {
+				unset($new_images[$key]);
+				@unlink($gallerypath . '/' . $picture);				
+			}
+		}
+				
+		// add images to database		
+		$image_ids = nggAdmin::add_Images($gallery_id, $new_images);
+		
+		//add the preview image if needed
+		nggAdmin::set_gallery_preview ( $gallery_id );
+
+		// now create thumbnails
+		nggAdmin::do_ajax_operation( 'create_thumbnail' , $image_ids, __('Create new thumbnails','nggallery') );
+		
+		//TODO:Message will not shown, because AJAX routine require more time, message should be passed to AJAX
+		nggGallery::show_message( $created_msg . count($image_ids) .__(' picture(s) successfully added','nggallery') );
+		
+		return;
+
+	}
+
+	/**
+	 * Scan folder for new images
+	 * 
+	 * @class nggAdmin
+	 * @param string $dirname
+	 * @return array $files list of image filenames 
+	 */
+	function scandir( $dirname = '.' ) { 
+		$ext = array('jpeg', 'jpg', 'png', 'gif'); 
+
+		$files = array(); 
+		if( $handle = opendir( $dirname ) ) { 
+			while( false !== ( $file = readdir( $handle ) ) ) {
+				$info = pathinfo( $file );
+				// just look for images with the correct extension
+                if ( isset($info['extension']) )
+				    if ( in_array( strtolower($info['extension']), $ext) )
+					   $files[] = utf8_encode( $file );
+			}		
+			closedir( $handle ); 
+		} 
+		sort( $files );
+		return ( $files ); 
+	} 
+	
+	/**
+	 * nggAdmin::createThumbnail() - function to create or recreate a thumbnail
+	 * 
+	 * @class nggAdmin
+	 * @param object | int $image contain all information about the image or the id
+	 * @return string result code
+	 * @since v1.0.0
+	 */
+	function create_thumbnail($image) {
+		
+		global $ngg;
+		
+		if(! class_exists('ngg_Thumbnail'))
+			require_once( nggGallery::graphic_library() );
+		
+		if ( is_numeric($image) )
+			$image = nggdb::find_image( $image );
+
+		if ( !is_object($image) ) 
+			return __('Object didn\'t contain correct data','nggallery');
+
+		// before we start we import the meta data to database (required for uploads before V1.4.0)
+		nggAdmin::maybe_import_meta( $image->pid );
+        		
+		// check for existing thumbnail
+		if (file_exists($image->thumbPath))
+			if (!is_writable($image->thumbPath))
+				return $image->filename . __(' is not writeable ','nggallery');
+
+		$thumb = new ngg_Thumbnail($image->imagePath, TRUE);
+
+		// skip if file is not there
+		if (!$thumb->error) {
+			if ($ngg->options['thumbfix'])  {
+
+				// calculate correct ratio
+				$wratio = $ngg->options['thumbwidth'] / $thumb->currentDimensions['width'];
+				$hratio = $ngg->options['thumbheight'] / $thumb->currentDimensions['height'];
+				
+				if ($wratio > $hratio) {
+					// first resize to the wanted width
+					$thumb->resize($ngg->options['thumbwidth'], 0);
+					// get optimal y startpos
+					$ypos = ($thumb->currentDimensions['height'] - $ngg->options['thumbheight']) / 2;
+					$thumb->crop(0, $ypos, $ngg->options['thumbwidth'],$ngg->options['thumbheight']);	
+				} else {
+					// first resize to the wanted height
+					$thumb->resize(0, $ngg->options['thumbheight']);	
+					// get optimal x startpos
+					$xpos = ($thumb->currentDimensions['width'] - $ngg->options['thumbwidth']) / 2;
+					$thumb->crop($xpos, 0, $ngg->options['thumbwidth'],$ngg->options['thumbheight']);	
+				}
+			//this create a thumbnail but keep ratio settings	
+			} else {
+				$thumb->resize($ngg->options['thumbwidth'],$ngg->options['thumbheight']);	
+			}
+			
+			// save the new thumbnail
+			$thumb->save($image->thumbPath, $ngg->options['thumbquality']);
+			nggAdmin::chmod ($image->thumbPath); 
+			
+			//read the new sizes
+			$new_size = @getimagesize ( $image->thumbPath );
+			$size['width'] = $new_size[0];
+			$size['height'] = $new_size[1]; 
+			
+			// add them to the database
+			nggdb::update_image_meta($image->pid, array( 'thumbnail' => $size) );
+		} 
+				
+		$thumb->destruct();
+		
+		if ( !empty($thumb->errmsg) )
+			return ' <strong>' . $image->filename . ' (Error : '.$thumb->errmsg .')</strong>';
+		
+		// success
+		return '1'; 
+	}
+	
+	/**
+	 * nggAdmin::resize_image() - create a new image, based on the height /width
+	 * 
+	 * @class nggAdmin
+	 * @param object | int $image contain all information about the image or the id
+	 * @param integer $width optional 
+	 * @param integer $height optional
+	 * @return string result code
+	 */
+	function resize_image($image, $width = 0, $height = 0) {
+		
+		global $ngg;
+		
+		if(! class_exists('ngg_Thumbnail'))
+			require_once( nggGallery::graphic_library() );
+
+		if ( is_numeric($image) )
+			$image = nggdb::find_image( $image );
+		
+		if ( !is_object($image) ) 
+			return __('Object didn\'t contain correct data','nggallery');	
+		
+		// before we start we import the meta data to database (required for uploads before V1.4.0)
+		nggAdmin::maybe_import_meta( $image->pid );
+		
+		// if no parameter is set, take global settings
+		$width  = ($width  == 0) ? $ngg->options['imgWidth']  : $width;
+		$height = ($height == 0) ? $ngg->options['imgHeight'] : $height;
+		
+		if (!is_writable($image->imagePath))
+			return ' <strong>' . $image->filename . __(' is not writeable','nggallery') . '</strong>';
+		
+		$file = new ngg_Thumbnail($image->imagePath, TRUE);
+
+		// skip if file is not there
+		if (!$file->error) {
+			
+			// If required save a backup copy of the file
+			if ( ($ngg->options['imgBackup'] == 1) && (!file_exists($image->imagePath . '_backup')) )
+				@copy ($image->imagePath, $image->imagePath . '_backup');
+			
+			$file->resize($width, $height, 4);
+			$file->save($image->imagePath, $ngg->options['imgQuality']);
+			// read the new sizes
+			$size = @getimagesize ( $image->imagePath );
+			// add them to the database
+			nggdb::update_image_meta($image->pid, array( 'width' => $size[0], 'height' => $size[1] ) );
+			$file->destruct();
+		} else {
+            $file->destruct();
+			return ' <strong>' . $image->filename . ' (Error : ' . $file->errmsg . ')</strong>';
+		}
+
+		return '1';
+	}
+	
+	/**
+	 * Rotated/Flip an image based on the orientation flag or a definded angle
+	 * 
+	 * @param int|object $image
+	 * @param string (optional) $dir, CW (clockwise)or CCW (counter clockwise), if set to false, the exif flag will be used
+	 * @param string (optional)  $flip, could be either false | V (flip vertical) | H (flip horizontal)
+	 * @return string result code
+	 */
+	function rotate_image($image, $dir = false, $flip = false) {
+
+		global $ngg;
+
+		if(! class_exists('ngg_Thumbnail'))
+			require_once( nggGallery::graphic_library() );
+		
+		if ( is_numeric($image) )
+			$image = nggdb::find_image( $image );
+		
+		if ( !is_object($image) ) 
+			return __('Object didn\'t contain correct data','nggallery');		
+	
+		if (!is_writable($image->imagePath))
+			return ' <strong>' . $image->filename . __(' is not writeable','nggallery') . '</strong>';
+		
+		// if you didn't define a rotation, we look for the orientation flag in EXIF
+		if ( $dir === false ) {
+			$meta = new nggMeta( $image->pid );
+			$exif = $meta->get_EXIF();
+	
+			if (isset($exif['Orientation'])) {
+				
+				switch ($exif['Orientation']) {
+					case 5 : // vertical flip + 90 rotate right
+						$flip = 'V';
+					case 6 : // 90 rotate right
+						$dir = 'CW';
+						break;
+					case 7 : // horizontal flip + 90 rotate right
+						$flip = 'H';
+					case 8 : // 90 rotate left
+						$dir = 'CCW';
+						break;
+					case 4 : // vertical flip
+						$flip = 'V';
+						break;
+					case 3 : // 180 rotate left
+						$dir = 180;
+						break;
+					case 2 : // horizontal flip
+						$flip = 'H';
+						break;						
+					case 1 : // no action in the case it doesn't need a rotation
+					default:
+						return '0';
+						break; 
+				}
+			} else
+                return '0';
+		}
+		$file = new ngg_Thumbnail( $image->imagePath, TRUE );
+		
+		// skip if file is not there
+		if (!$file->error) {
+
+			// If required save a backup copy of the file
+			if ( ($ngg->options['imgBackup'] == 1) && (!file_exists($image->imagePath . '_backup')) )
+				@copy ($image->imagePath, $image->imagePath . '_backup');
+
+			// before we start we import the meta data to database (required for uploads before V1.4.X)
+			nggAdmin::maybe_import_meta( $image->pid );
+
+			if ( $dir !== 0 )
+				$file->rotateImage( $dir );
+			if ( $dir === 180)
+				$file->rotateImage( 'CCW' ); // very special case, we rotate the image two times
+			if ( $flip == 'H')
+				$file->flipImage(true, false);
+			if ( $flip == 'V')
+				$file->flipImage(false, true);
+					
+			$file->save($image->imagePath, $ngg->options['imgQuality']);
+			
+			// read the new sizes
+			$size = @getimagesize ( $image->imagePath );
+			// add them to the database
+			nggdb::update_image_meta($image->pid, array( 'width' => $size[0], 'height' => $size[1] ) );
+			
+		}
+		
+		$file->destruct();
+
+		if ( !empty($file->errmsg) )
+			return ' <strong>' . $image->filename . ' (Error : '.$file->errmsg .')</strong>';		
+
+		return '1';
+		
+	}
+
+	/**
+	 * nggAdmin::set_watermark() - set the watermark for the image
+	 * 
+	 * @class nggAdmin
+	 * @param object | int $image contain all information about the image or the id
+	 * @return string result code
+	 */
+	function set_watermark($image) {
+		
+		global $ngg;
+
+		if(! class_exists('ngg_Thumbnail'))
+			require_once( nggGallery::graphic_library() );
+		
+		if ( is_numeric($image) )
+			$image = nggdb::find_image( $image );
+		
+		if ( !is_object($image) ) 
+			return __('Object didn\'t contain correct data','nggallery');		
+
+		// before we start we import the meta data to database (required for uploads before V1.4.0)
+		nggAdmin::maybe_import_meta( $image->pid );	
+
+		if (!is_writable($image->imagePath))
+			return ' <strong>' . $image->filename . __(' is not writeable','nggallery') . '</strong>';
+		
+		$file = new ngg_Thumbnail( $image->imagePath, TRUE );
+
+		// skip if file is not there
+		if (!$file->error) {
+			
+			// If required save a backup copy of the file
+			if ( ($ngg->options['imgBackup'] == 1) && (!file_exists($image->imagePath . '_backup')) )
+				@copy ($image->imagePath, $image->imagePath . '_backup');
+			
+			if ($ngg->options['wmType'] == 'image') {
+				$file->watermarkImgPath = $ngg->options['wmPath'];
+				$file->watermarkImage($ngg->options['wmPos'], $ngg->options['wmXpos'], $ngg->options['wmYpos']); 
+			}
+			if ($ngg->options['wmType'] == 'text') {
+				$file->watermarkText = $ngg->options['wmText'];
+				$file->watermarkCreateText($ngg->options['wmColor'], $ngg->options['wmFont'], $ngg->options['wmSize'], $ngg->options['wmOpaque']);
+				$file->watermarkImage($ngg->options['wmPos'], $ngg->options['wmXpos'], $ngg->options['wmYpos']);  
+			}
+			$file->save($image->imagePath, $ngg->options['imgQuality']);
+		}
+		
+		$file->destruct();
+
+		if ( !empty($file->errmsg) )
+			return ' <strong>' . $image->filename . ' (Error : '.$file->errmsg .')</strong>';		
+
+		return '1';
+	}
+
+	/**
+	 * Recover image from backup copy and reprocess it
+	 * 
+	 * @class nggAdmin
+	 * @since 1.5.0
+	 * @param object | int $image contain all information about the image or the id
+	 * @return string result code
+	 */
+	
+	function recover_image($image) {
+
+		global $ngg;
+		
+		if ( is_numeric($image) )
+			$image = nggdb::find_image( $image );
+		
+		if ( !is_object( $image ) ) 
+			return __('Object didn\'t contain correct data','nggallery');		
+			
+		if (!is_writable( $image->imagePath ))
+			return ' <strong>' . $image->filename . __(' is not writeable','nggallery') . '</strong>';
+		
+		if (!file_exists( $image->imagePath . '_backup' )) {
+			return ' <strong>'.__('File do not exists','nggallery').'</strong>';
+		}
+
+		if (!@copy( $image->imagePath . '_backup' , $image->imagePath) )
+			return ' <strong>'.__('Couldn\'t restore original image','nggallery').'</strong>';
+		
+		require_once(NGGALLERY_ABSPATH . '/lib/meta.php');
+		
+		$meta_obj = new nggMeta( $image->pid );
+					
+        $common = $meta_obj->get_common_meta();
+        $common['saved']  = true; 
+		$result = nggdb::update_image_meta($image->pid, $common);			
+		
+		return '1';
+		
+	}
+		
+	/**
+	 * Add images to database
+	 * 
+	 * @class nggAdmin
+	 * @param int $galleryID
+	 * @param array $imageslist
+	 * @return array $image_ids Id's which are sucessful added
+	 */
+	function add_Images($galleryID, $imageslist) {
+		
+		global $wpdb, $ngg;
+		
+		$image_ids = array();
+		
+		if ( is_array($imageslist) ) {
+			foreach($imageslist as $picture) {
+				
+				// strip off the extension of the filename
+				$path_parts = pathinfo( $picture );
+				$alttext = ( !isset($path_parts['filename']) ) ? substr($path_parts['basename'], 0,strpos($path_parts['basename'], '.')) : $path_parts['filename'];
+				// save it to the database
+                $pic_id = nggdb::add_image( $galleryID, $picture, '', $alttext ); 
+
+				if ( !empty($pic_id) ) 
+					$image_ids[] = $pic_id;
+
+				// add the metadata
+				nggAdmin::import_MetaData( $pic_id );
+				
+				// auto rotate
+				nggAdmin::rotate_image( $pic_id );		
+
+				// Autoresize image if required
+                if ($ngg->options['imgAutoResize']) {
+                	$imagetmp = nggdb::find_image( $pic_id );
+                	$sizetmp = @getimagesize ( $imagetmp->imagePath );
+                	$widthtmp  = $ngg->options['imgWidth'];
+                	$heighttmp = $ngg->options['imgHeight'];
+                	if (($sizetmp[0] > $widthtmp && $widthtmp) || ($sizetmp[1] > $heighttmp && $heighttmp)) {
+                			nggAdmin::resize_image( $pic_id );
+                	}
+                }
+				
+				// action hook for post process after the image is added to the database
+				$image = array( 'id' => $pic_id, 'filename' => $picture, 'galleryID' => $galleryID);
+				do_action('ngg_added_new_image', $image);
+									
+			} 
+		} // is_array
+        
+        // delete dirsize after adding new images
+        delete_transient( 'dirsize_cache' );
+        
+		do_action('ngg_after_new_images_added', $galleryID, $image_ids );
+		
+		return $image_ids;
+		
+	}
+	
+	/**
+	 * Import some meta data into the database (if avialable)
+	 * 
+	 * @class nggAdmin
+	 * @param array|int $imagesIds
+	 * @return string result code
+	 */
+	function import_MetaData($imagesIds) {
+			
+		global $wpdb;
+		
+		require_once(NGGALLERY_ABSPATH . '/lib/image.php');
+		
+		if (!is_array($imagesIds))
+			$imagesIds = array($imagesIds);
+		
+		foreach($imagesIds as $imageID) {
+			
+			$image = nggdb::find_image( $imageID );
+			if (!$image->error) {
+
+				$meta = nggAdmin::get_MetaData( $image->pid );
+				
+				// get the title
+				$alttext = empty( $meta['title'] ) ? $image->alttext : $meta['title'];
+				
+				// get the caption / description field
+				$description = empty( $meta['caption'] ) ? $image->description : $meta['caption'];
+					
+				// get the file date/time from exif
+				$timestamp = $meta['timestamp'];
+				// first update database
+				$result = $wpdb->query( 
+					$wpdb->prepare("UPDATE $wpdb->nggpictures SET 
+						alttext = %s, 
+						description = %s, 
+						imagedate = %s
+					WHERE pid = %d", $alttext, $description, $timestamp, $image->pid) );
+
+				if ($result === false)
+					return ' <strong>' . $image->filename . ' ' . __('(Error : Couldn\'t not update data base)', 'nggallery') . '</strong>';		
+				
+				//this flag will inform us that the import is already one time performed
+				$meta['common']['saved']  = true; 
+				$result = nggdb::update_image_meta($image->pid, $meta['common']);
+				
+				if ($result === false)
+					return ' <strong>' . $image->filename . ' ' . __('(Error : Couldn\'t not update meta data)', 'nggallery') . '</strong>';		
+
+				// add the tags if we found some
+				if ($meta['keywords']) {
+					$taglist = explode(',', $meta['keywords']);
+					wp_set_object_terms($image->pid, $taglist, 'ngg_tag');
+				}
+
+			} else
+				return ' <strong>' . $image->filename . ' ' . __('(Error : Couldn\'t not find image)', 'nggallery') . '</strong>';// error check
+		}
+		
+		return '1';		
+	}
+
+	/**
+	 * nggAdmin::get_MetaData()
+	 * 
+	 * @class nggAdmin
+	 * @require NextGEN Meta class
+	 * @param int $id image ID
+	 * @return array metadata
+	 */
+	function get_MetaData($id) {
+		
+		require_once(NGGALLERY_ABSPATH . '/lib/meta.php');
+		
+		$meta = array();
+
+		$pdata = new nggMeta( $id );
+		
+		$meta['title'] = trim ( $pdata->get_META('title') );		
+		$meta['caption'] = trim ( $pdata->get_META('caption') );	
+		$meta['keywords'] = trim ( $pdata->get_META('keywords') );
+		$meta['timestamp'] = $pdata->get_date_time();
+		// this contain other useful meta information
+		$meta['common'] = $pdata->get_common_meta();
+        // hook for addon plugin to add more meta fields
+        $meta = apply_filters('ngg_get_image_metadata', $meta, $pdata);
+		
+		return $meta;
+		
+	}
+
+	/**
+	 * Maybe import some meta data to the database. The functions checks the flag 'saved'
+	 * and if based on compat reason (pre V1.4.0) we save then some meta datas to the database
+	 * 
+	 * @since V1.4.0
+	 * @param int $id
+	 * @return result
+	 */
+	function maybe_import_meta( $id ) {
+				
+		require_once(NGGALLERY_ABSPATH . '/lib/meta.php');
+				
+		$meta_obj = new nggMeta( $id );
+        
+		if ( $meta_obj->image->meta_data['saved'] != true ) {
+            $common = $meta_obj->get_common_meta();
+            //this flag will inform us that the import is already one time performed
+            $common['saved']  = true; 
+			$result = nggdb::update_image_meta($id, $common);
+		} else
+			return false;
+		
+		return $result;		
+
+	}
+
+	/**
+	 * Unzip a file via the PclZip class
+	 * 
+	 * @class nggAdmin
+	 * @require PclZip class
+	 * @param string $dir
+	 * @param string $file
+	 * @return bool
+	 */
+	function unzip($dir, $file) {
+		
+		if(! class_exists('PclZip'))
+			require_once(ABSPATH . 'wp-admin/includes/class-pclzip.php');
+				
+		$archive = new PclZip($file);
+
+		// extract all files in one folder
+		if ($archive->extract(PCLZIP_OPT_PATH, $dir, PCLZIP_OPT_REMOVE_ALL_PATH, 
+                                PCLZIP_CB_PRE_EXTRACT, 'ngg_getOnlyImages',
+                                PCLZIP_CB_POST_EXTRACT, 'ngg_checkExtract') == 0) {
+			nggGallery::show_error( 'Error : ' . $archive->errorInfo(true) );
+			return false;
+		}
+
+		return true;
+	}
+ 
+	/**
+	 * nggAdmin::getOnlyImages()
+	 * 
+	 * @class nggAdmin
+	 * @param mixed $p_event
+	 * @param mixed $p_header
+	 * @return bool
+	 */
+	function getOnlyImages($p_event, &$p_header)	{
+        // avoid null byte hack (THX to Dominic Szablewski)
+        if ( strpos($p_header['filename'], chr(0) ) !== false ) 
+            $p_header['filename'] = substr ( $p_header['filename'], 0, strpos($p_header['filename'], chr(0) ));        
+        // check for extension
+		$info = pathinfo($p_header['filename']);
+		// check for extension
+		$ext = array('jpeg', 'jpg', 'png', 'gif'); 
+		if ( in_array( strtolower($info['extension']), $ext) ) {
+			// For MAC skip the ".image" files
+			if ($info['basename']{0} ==  '.' ) 
+				return 0;
+			else 
+				return 1;
+		}
+		// ----- all other files are skipped
+		else {
+		  return 0;
+		}
+	}
+
+	/**
+	 * Import a ZIP file via a upload form or a URL
+	 * 
+	 * @class nggAdmin
+	 * @param int (optional) $galleryID
+	 * @return bool $result
+	 */
+	function import_zipfile($galleryID) {
+
+		global $ngg, $wpdb;
+		
+		if (nggWPMU::check_quota())
+			return false;
+		
+		$defaultpath = $ngg->options['gallerypath'];		
+		$zipurl = $_POST['zipurl'];
+		
+		// if someone entered a URL try to upload it
+		if (!empty($zipurl) && (function_exists('curl_init')) ) {
+			
+			if (!(preg_match('/^http(s)?:\/\//i', $zipurl) )) {
+				nggGallery::show_error( __('No valid URL path ','nggallery') );
+				return false; 
+			}
+			
+			$temp_zipfile = tempnam('/tmp', 'zipimport_');
+			$filename = basename($zipurl);
+			
+			//Grab the zip via cURL
+			$save = fopen ( $temp_zipfile, "w" );
+			$ch = curl_init ();
+			curl_setopt ( $ch, CURLOPT_FILE, $save );
+			curl_setopt ( $ch, CURLOPT_HEADER, 0 );
+			curl_setopt ( $ch, CURLOPT_BINARYTRANSFER, 1 );
+			curl_setopt ( $ch, CURLOPT_URL, $zipurl );
+			$success = curl_exec ( $ch );
+			if (!$success)
+				nggGallery::show_error( __('Import via cURL failed.','nggallery') . ' Error code ' . curl_errno( $ch ) . ' : ' . curl_error( $ch ) );
+			curl_close ( $ch );
+			fclose($save);
+			
+			if (!$success)
+				return false; 
+			
+		} else {
+			
+			$temp_zipfile = $_FILES['zipfile']['tmp_name'];
+			$filename = $_FILES['zipfile']['name']; 
+						
+			// Chrome return a empty content-type : http://code.google.com/p/chromium/issues/detail?id=6800
+			if ( !preg_match('/chrome/i', $_SERVER['HTTP_USER_AGENT']) ) {
+				// check if file is a zip file
+				if ( !preg_match('/(zip|download|octet-stream)/i', $_FILES['zipfile']['type']) ) {
+					@unlink($temp_zipfile); // del temp file
+					nggGallery::show_error(__('Uploaded file was no or a faulty zip file ! The server recognized : ','nggallery').$_FILES['zipfile']['type']);
+					return false; 
+				}
+			}
+		}
+
+		// should this unpacked into a new folder ?		
+		if ( $galleryID == '0' ) {	
+			//cleanup and take the zipfile name as folder name
+			$foldername = sanitize_title(strtok ($filename, '.'));
+			$foldername = $defaultpath . $foldername;
+		} else {
+			// get foldername if selected
+			$foldername = $wpdb->get_var("SELECT path FROM $wpdb->nggallery WHERE gid = '$galleryID' ");
+		}
+		
+		if ( empty($foldername) ) {
+			nggGallery::show_error( __('Could not get a valid foldername', 'nggallery') );
+			return false;
+		}
+		
+		// set complete folder path
+		$newfolder = WINABSPATH . $foldername;
+
+		// check first if the traget folder exist
+		if (!is_dir($newfolder)) {
+			// create new directories
+			if (!wp_mkdir_p ($newfolder)) {
+				$message = sprintf(__('Unable to create directory %s. Is its parent directory writable by the server?', 'nggallery'), $newfolder);
+				nggGallery::show_error($message);
+				return false;
+			}
+			if (!wp_mkdir_p ($newfolder . '/thumbs')) {
+				nggGallery::show_error(__('Unable to create directory ', 'nggallery') . $newfolder . '/thumbs !');
+				return false;
+			}
+		} 
+		
+		// unzip and del temp file		
+		$result = nggAdmin::unzip($newfolder, $temp_zipfile);
+		@unlink($temp_zipfile);		
+
+		if ($result) {
+			$message = __('Zip-File successfully unpacked','nggallery') . '<br />';		
+
+			// parse now the folder and add to database
+			$message .= nggAdmin::import_gallery( $foldername );
+			nggGallery::show_message($message);
+		}
+		
+		return true;
+	}
+
+	/**
+	 * Function for uploading of images via the upload form
+	 * 
+	 * @class nggAdmin
+	 * @return void
+	 */
+	function upload_images() {
+	
+		global $nggdb;
+		
+		// WPMU action
+		if (nggWPMU::check_quota())
+			return;
+
+		// Images must be an array
+		$imageslist = array();
+
+		// get selected gallery
+		$galleryID = (int) $_POST['galleryselect'];
+
+		if ($galleryID == 0) {
+			nggGallery::show_error(__('No gallery selected !','nggallery'));
+			return;	
+		}
+
+		// get the path to the gallery	
+		$gallery = $nggdb->find_gallery($galleryID);
+
+		if ( empty($gallery->path) ){
+			nggGallery::show_error(__('Failure in database, no gallery path set !','nggallery'));
+			return;
+		} 
+	
+		// read list of images
+		$dirlist = nggAdmin::scandir($gallery->abspath);
+		
+		$imagefiles = $_FILES['imagefiles'];
+		
+		if (is_array($imagefiles)) {
+			foreach ($imagefiles['name'] as $key => $value) {
+
+				// look only for uploded files
+				if ($imagefiles['error'][$key] == 0) {
+					
+					$temp_file = $imagefiles['tmp_name'][$key];
+					
+					//clean filename and extract extension
+					$filepart = nggGallery::fileinfo( $imagefiles['name'][$key] );
+					$filename = $filepart['basename'];
+						
+					// check for allowed extension and if it's an image file
+					$ext = array('jpg', 'png', 'gif'); 
+					if ( !in_array($filepart['extension'], $ext) || !@getimagesize($temp_file) ){ 
+						nggGallery::show_error('<strong>' . $imagefiles['name'][$key] . ' </strong>' . __('is no valid image file!','nggallery'));
+						continue;
+					}
+	
+					// check if this filename already exist in the folder
+					$i = 0;
+					while ( in_array( $filename, $dirlist ) ) {
+						$filename = $filepart['filename'] . '_' . $i++ . '.' .$filepart['extension'];
+					}
+					
+					$dest_file = $gallery->abspath . '/' . $filename;
+					
+					//check for folder permission
+					if ( !is_writeable($gallery->abspath) ) {
+						$message = sprintf(__('Unable to write to directory %s. Is this directory writable by the server?', 'nggallery'), $gallery->abspath);
+						nggGallery::show_error($message);
+						return;				
+					}
+					
+					// save temp file to gallery
+					if ( !@move_uploaded_file($temp_file, $dest_file) ){
+						nggGallery::show_error(__('Error, the file could not be moved to : ','nggallery') . $dest_file);
+						nggAdmin::check_safemode( $gallery->abspath );		
+						continue;
+					} 
+					if ( !nggAdmin::chmod($dest_file) ) {
+						nggGallery::show_error(__('Error, the file permissions could not be set','nggallery'));
+						continue;
+					}
+					
+					// add to imagelist & dirlist
+					$imageslist[] = $filename;
+					$dirlist[] = $filename;
+	
+				}
+			}
+		}
+		
+		if (count($imageslist) > 0) {
+			
+			// add images to database		
+			$image_ids = nggAdmin::add_Images($galleryID, $imageslist);
+
+			//create thumbnails
+			nggAdmin::do_ajax_operation( 'create_thumbnail' , $image_ids, __('Create new thumbnails','nggallery') );
+			
+			//add the preview image if needed
+			nggAdmin::set_gallery_preview ( $galleryID );
+			
+			nggGallery::show_message( count($image_ids) . __(' Image(s) successfully added','nggallery'));
+		}
+		
+		return;
+
+	}
+	
+	/**
+	 * Upload function will be called via the Flash uploader
+	 * 
+	 * @class nggAdmin
+	 * @param integer $galleryID
+	 * @return string $result
+	 */
+	function swfupload_image($galleryID = 0) {
+
+		global $wpdb;
+		
+		if ($galleryID == 0)
+			return __('No gallery selected !', 'nggallery');
+
+		// WPMU action
+		if (nggWPMU::check_quota())
+			return '0';
+
+		// Check the upload
+		if (!isset($_FILES['Filedata']) || !is_uploaded_file($_FILES['Filedata']['tmp_name']) || $_FILES['Filedata']['error'] != 0) 
+			return __('Invalid upload. Error Code : ', 'nggallery') . $_FILES['Filedata']['error'];
+
+		// get the filename and extension
+		$temp_file = $_FILES['Filedata']['tmp_name'];
+
+		$filepart = nggGallery::fileinfo( $_FILES['Filedata']['name'] );
+		$filename = $filepart['basename'];
+
+		// check for allowed extension
+		$ext = array('jpg', 'png', 'gif'); 
+		if (!in_array($filepart['extension'], $ext))
+			return $_FILES[$key]['name'] . __('is no valid image file!', 'nggallery');
+
+		// get the path to the gallery	
+		$gallerypath = $wpdb->get_var("SELECT path FROM $wpdb->nggallery WHERE gid = '$galleryID' ");
+		if (!$gallerypath){
+			@unlink($temp_file);		
+			return __('Failure in database, no gallery path set !', 'nggallery');
+		} 
+
+		// read list of images
+		$imageslist = nggAdmin::scandir( WINABSPATH . $gallerypath );
+
+		// check if this filename already exist
+		$i = 0;
+		while (in_array($filename, $imageslist)) {
+			$filename = $filepart['filename'] . '_' . $i++ . '.' . $filepart['extension'];
+		}
+		
+		$dest_file = WINABSPATH . $gallerypath . '/' . $filename;
+				
+		// save temp file to gallery
+		if ( !@move_uploaded_file($_FILES["Filedata"]['tmp_name'], $dest_file) ){
+			nggAdmin::check_safemode(WINABSPATH.$gallerypath);	
+			return __('Error, the file could not be moved to : ','nggallery').$dest_file;
+		} 
+		
+		if ( !nggAdmin::chmod($dest_file) )
+			return __('Error, the file permissions could not be set','nggallery');
+		
+		return '0';
+	}	
+	
+	/**
+	 * Set correct file permissions (taken from wp core)
+	 * 
+	 * @class nggAdmin
+	 * @param string $filename
+	 * @return bool $result
+	 */
+	function chmod($filename = '') {
+
+		$stat = @ stat(dirname($filename));
+		$perms = $stat['mode'] & 0007777;
+		$perms = $perms & 0000666;
+		if ( @chmod($filename, $perms) )
+			return true;
+			
+		return false;
+	}
+	
+	/**
+	 * Check UID in folder and Script
+	 * Read http://www.php.net/manual/en/features.safe-mode.php to understand safe_mode
+	 * 
+	 * @class nggAdmin
+	 * @param string $foldername
+	 * @return bool $result
+	 */
+	function check_safemode($foldername) {
+
+		if ( SAFE_MODE ) {
+			
+			$script_uid = ( ini_get('safe_mode_gid') ) ? getmygid() : getmyuid();
+			$folder_uid = fileowner($foldername);
+
+			if ($script_uid != $folder_uid) {
+				$message  = sprintf(__('SAFE MODE Restriction in effect! You need to create the folder <strong>%s</strong> manually','nggallery'), $foldername);
+				$message .= '<br />' . sprintf(__('When safe_mode is on, PHP checks to see if the owner (%s) of the current script matches the owner (%s) of the file to be operated on by a file function or its directory','nggallery'), $script_uid, $folder_uid );
+				nggGallery::show_error($message);
+				return false;
+			}
+		}
+		
+		return true;
+	}
+	
+	/**
+	 * Capability check. Check is the ID fit's to the user_ID
+	 * 
+	 * @class nggAdmin
+	 * @param int $check_ID is the user_id
+	 * @return bool $result
+	 */
+	function can_manage_this_gallery($check_ID) {
+		
+		global $user_ID, $wp_roles;
+		
+		if ( !current_user_can('NextGEN Manage others gallery') ) {
+			// get the current user ID
+			get_currentuserinfo();
+			
+			if ( $user_ID != $check_ID)
+				return false;
+		}
+		
+		return true;
+	
+	}
+	
+	/**
+	 * Move images from one folder to another
+	 * 
+	 * @class nggAdmin
+	 * @param array|int $pic_ids ID's of the images
+	 * @param int $dest_gid destination gallery
+	 * @return void
+	 */
+	function move_images($pic_ids, $dest_gid) {
+
+		$errors = '';
+		$count = 0;
+
+		if ( !is_array($pic_ids) )
+			$pic_ids = array($pic_ids);
+		
+		// Get destination gallery
+		$destination  = nggdb::find_gallery( $dest_gid );
+		$dest_abspath = WINABSPATH . $destination->path;
+		
+		if ( $destination == null ) {
+			nggGallery::show_error(__('The destination gallery does not exist','nggallery'));
+			return;
+		}
+		
+		// Check for folder permission
+		if ( !is_writeable( $dest_abspath ) ) {
+			$message = sprintf(__('Unable to write to directory %s. Is this directory writable by the server?', 'nggallery'), $dest_abspath );
+			nggGallery::show_error($message);
+			return;				
+		}
+				
+		// Get pictures
+		$images = nggdb::find_images_in_list($pic_ids);
+
+		foreach ($images as $image) {		
+			
+			$i = 0;
+			$tmp_prefix = '';
+			
+			$destination_file_name = $image->filename;
+			// check if the filename already exist, then we add a copy_ prefix
+			while (file_exists( $dest_abspath . '/' . $destination_file_name)) {
+				$tmp_prefix = 'copy_' . ($i++) . '_';
+				$destination_file_name = $tmp_prefix . $image->filename;
+			}
+			
+			$destination_path = $dest_abspath . '/' . $destination_file_name;
+			$destination_thumbnail = $dest_abspath . '/thumbs/thumbs_' . $destination_file_name;
+
+			// Move files
+			if ( !@rename($image->imagePath, $destination_path) ) {
+				$errors .= sprintf(__('Failed to move image %1$s to %2$s','nggallery'), 
+					'<strong>' . $image->filename . '</strong>', $destination_path) . '<br />';
+				continue;				
+			}
+			
+            // Move backup file, if possible
+            @rename($image->imagePath . '_backup', $destination_path . '_backup');
+			// Move the thumbnail, if possible
+			@rename($image->thumbPath, $destination_thumbnail);
+			
+			// Change the gallery id in the database , maybe the filename
+			if ( nggdb::update_image($image->pid, $dest_gid, $destination_file_name) )
+				$count++;
+
+		}
+
+		if ( $errors != '' )
+			nggGallery::show_error($errors);
+
+		$link = '<a href="' . admin_url() . 'admin.php?page=nggallery-manage-gallery&mode=edit&gid=' . $destination->gid . '" >' . $destination->title . '</a>';
+		$messages  = sprintf(__('Moved %1$s picture(s) to gallery : %2$s .','nggallery'), $count, $link);
+		nggGallery::show_message($messages);
+
+		return;
+	}
+	
+	/**
+	 * Copy images to another gallery
+	 * 
+	 * @class nggAdmin
+	 * @param array|int $pic_ids ID's of the images
+	 * @param int $dest_gid destination gallery
+	 * @return void
+	 */
+	function copy_images($pic_ids, $dest_gid) {
+	   
+        require_once(NGGALLERY_ABSPATH . '/lib/meta.php');
+		
+		$errors = $messages = '';
+		
+		if (!is_array($pic_ids))
+			$pic_ids = array($pic_ids);
+		
+		// Get destination gallery
+		$destination = nggdb::find_gallery( $dest_gid );
+		if ( $destination == null ) {
+			nggGallery::show_error(__('The destination gallery does not exist','nggallery'));
+			return;
+		}
+		
+		// Check for folder permission
+		if (!is_writeable(WINABSPATH.$destination->path)) {
+			$message = sprintf(__('Unable to write to directory %s. Is this directory writable by the server?', 'nggallery'), WINABSPATH.$destination->path);
+			nggGallery::show_error($message);
+			return;				
+		}
+				
+		// Get pictures
+		$images = nggdb::find_images_in_list($pic_ids);
+		$destination_path = WINABSPATH . $destination->path;
+		
+		foreach ($images as $image) {		
+			// WPMU action
+			if ( nggWPMU::check_quota() )
+				return;
+			
+			$i = 0;
+			$tmp_prefix = ''; 
+			$destination_file_name = $image->filename;
+			while (file_exists($destination_path . '/' . $destination_file_name)) {
+				$tmp_prefix = 'copy_' . ($i++) . '_';
+				$destination_file_name = $tmp_prefix . $image->filename;
+			}
+			
+			$destination_file_path = $destination_path . '/' . $destination_file_name;
+			$destination_thumb_file_path = $destination_path . '/' . $image->thumbFolder . $image->thumbPrefix . $destination_file_name;
+
+			// Copy files
+			if ( !@copy($image->imagePath, $destination_file_path) ) {
+				$errors .= sprintf(__('Failed to copy image %1$s to %2$s','nggallery'), 
+					$image->filename, $destination_file_path) . '<br />';
+				continue;				
+			}
+			
+            // Copy backup file, if possible
+            @copy($image->imagePath . '_backup', $destination_file_path . '_backup');
+            // Copy the thumbnail if possible
+			@copy($image->thumbPath, $destination_thumb_file_path);
+			
+			// Create new database entry for the image
+			$new_pid = nggdb::insert_image( $destination->gid, $destination_file_name, $image->alttext, $image->description, $image->exclude);
+
+			if (!isset($new_pid)) {				
+				$errors .= sprintf(__('Failed to copy database row for picture %s','nggallery'), $image->pid) . '<br />';
+				continue;				
+			}
+				
+			// Copy tags
+			nggTags::copy_tags($image->pid, $new_pid);
+            
+            // Copy meta information
+            $meta = new nggMeta($image->pid);
+            nggdb::update_image_meta( $new_pid, $meta->image->meta_data);
+			
+			if ( $tmp_prefix != '' ) {
+				$messages .= sprintf(__('Image %1$s (%2$s) copied as image %3$s (%4$s) &raquo; The file already existed in the destination gallery.','nggallery'),
+					 $image->pid, $image->filename, $new_pid, $destination_file_name) . '<br />';
+			} else {
+				$messages .= sprintf(__('Image %1$s (%2$s) copied as image %3$s (%4$s)','nggallery'),
+					 $image->pid, $image->filename, $new_pid, $destination_file_name) . '<br />';
+			}
+
+		}
+		
+		// Finish by showing errors or success
+		if ( $errors == '' ) {
+			$link = '<a href="' . admin_url() . 'admin.php?page=nggallery-manage-gallery&mode=edit&gid=' . $destination->gid . '" >' . $destination->title . '</a>';
+			$messages .= '<hr />' . sprintf(__('Copied %1$s picture(s) to gallery: %2$s .','nggallery'), count($images), $link);
+		} 
+
+		if ( $messages != '' )
+			nggGallery::show_message($messages);
+
+		if ( $errors != '' )
+			nggGallery::show_error($errors);
+
+		return;
+	}
+	
+	/**
+	 * Initate the Ajax operation
+	 * 
+	 * @class nggAdmin	 
+	 * @param string $operation name of the function which should be executed
+	 * @param array $image_array
+	 * @param string $title name of the operation
+	 * @return string the javascript output
+	 */
+	function do_ajax_operation( $operation, $image_array, $title = '' ) {
+		
+		if ( !is_array($image_array) || empty($image_array) )
+			return;
+
+		$js_array  = implode('","', $image_array);
+		
+		// send out some JavaScript, which initate the ajax operation
+		?>
+		<script type="text/javascript">
+
+			Images = new Array("<?php echo $js_array; ?>");
+
+			nggAjaxOptions = {
+				operation: "<?php echo $operation; ?>",
+				ids: Images,		
+			  	header: "<?php echo $title; ?>",
+			  	maxStep: Images.length
+			};
+			
+			jQuery(document).ready( function(){ 
+				nggProgressBar.init( nggAjaxOptions );
+				nggAjax.init( nggAjaxOptions );
+			} );
+		</script>
+		
+		<?php	
+	}
+	
+	/**
+	 * nggAdmin::set_gallery_preview() - define a preview pic after the first upload, can be changed in the gallery settings
+	 * 
+	 * @class nggAdmin
+	 * @param int $galleryID
+	 * @return void
+	 */
+	function set_gallery_preview( $galleryID ) {
+		
+		global $wpdb;
+		
+		$gallery = nggdb::find_gallery( $galleryID );
+		
+		// in the case no preview image is setup, we do this now
+		if ($gallery->previewpic == 0) {
+			$firstImage = $wpdb->get_var("SELECT pid FROM $wpdb->nggpictures WHERE exclude != 1 AND galleryid = '$galleryID' ORDER by pid DESC limit 0,1");
+			if ($firstImage) {
+				$wpdb->query("UPDATE $wpdb->nggallery SET previewpic = '$firstImage' WHERE gid = '$galleryID'");
+				wp_cache_delete($galleryID, 'ngg_gallery');
+			}
+		}
+		
+		return;
+	}
+
+	/**
+	 * Return a JSON coded array of Image ids for a requested gallery
+	 * 
+	 * @class nggAdmin
+	 * @param int $galleryID
+	 * @return arry (JSON)
+	 */
+	function get_image_ids( $galleryID ) {
+		
+		if ( !function_exists('json_encode') )
+			return(-2);
+		
+		$gallery = nggdb::get_ids_from_gallery($galleryID, 'pid', 'ASC', false);
+
+		header('Content-Type: text/plain; charset=' . get_option('blog_charset'), true);
+		$output = json_encode($gallery);
+		
+		return $output;
+	}
+
+	/**
+	 * Decode upload error to normal message
+	 *
+	 * @class nggAdmin
+	 * @access internal
+	 * @param int $code php upload error code
+	 * @return string message
+	 */
+	
+	function decode_upload_error( $code ) {
+		
+	        switch ($code) {
+	            case UPLOAD_ERR_INI_SIZE:
+	                $message = __ ( 'The uploaded file exceeds the upload_max_filesize directive in php.ini', 'nggallery' );
+	                break;
+	            case UPLOAD_ERR_FORM_SIZE:
+	                $message = __ ( 'The uploaded file exceeds the MAX_FILE_SIZE directive that was specified in the HTML form', 'nggallery' );
+	                break;
+	            case UPLOAD_ERR_PARTIAL:
+	                $message = __ ( 'The uploaded file was only partially uploaded', 'nggallery' );
+	                break;
+	            case UPLOAD_ERR_NO_FILE:
+	                $message = __ ( 'No file was uploaded', 'nggallery' );
+	                break;
+	            case UPLOAD_ERR_NO_TMP_DIR:
+	                $message = __ ( 'Missing a temporary folder', 'nggallery' );
+	                break;
+	            case UPLOAD_ERR_CANT_WRITE:
+	                $message = __ ( 'Failed to write file to disk', 'nggallery' );
+	                break;
+	            case UPLOAD_ERR_EXTENSION:
+	                $message = __ ( 'File upload stopped by extension', 'nggallery' );
+	                break;
+	            default:
+	                $message = __ ( 'Unknown upload error', 'nggallery' );
+	                break;
+	        }
+
+	        return $message; 
+	}
+
+} // END class nggAdmin
+
+/**
+ * TODO: Cannot be member of a class ? Check PCLZIP later...
+ * 
+ * @param mixed $p_event
+ * @param mixed $p_header
+ * @return
+ */
+function ngg_getOnlyImages($p_event, &$p_header)	{
+	return nggAdmin::getOnlyImages($p_event, $p_header);
+}
+
+/**
+ * Ensure after zip extraction that it could be only a image file
+ * 
+ * @param mixed $p_event
+ * @param mixed $p_header
+ * @return 1
+ */
+function ngg_checkExtract($p_event, &$p_header)	{
+	
+    // look for valid extraction
+    if ($p_header['status'] == 'ok') {
+        // check if it's any image file, delete all other files
+        if ( !@getimagesize ( $p_header['filename'] ))
+            unlink($p_header['filename']);
+    }
+	
+    return 1;
+}
+?>
\ No newline at end of file
diff --git a/wp-content/plugins/nextgen-gallery/admin/images/icon-amazon.gif b/wp-content/plugins/nextgen-gallery/admin/images/icon-amazon.gif
new file mode 100644
index 0000000000000000000000000000000000000000..b6e497f74073a05200fd0e07b4905c36b849959f
GIT binary patch
literal 244
zcmZ?wbhEHb6krfwIKswYZfY9f=a-q0;o{^J8y$V?=FR{A|8Lp6`P8XX&z?OiD=C>h
zYu4vapH?hiUYlUCz1iyN0-KM^ZO%=y_H#CCYHaN9?JbNnKiq9KCC@S~$lTe+^wv!4
zC@-@GrIsD(7OxJr>M$@cFo5iGV69Y8U^}ERZ^aCWH&G1dm|Z8DFdl9)cr)prjJLZ}
zw~gAI4(ApF6)v5l{w^I%RhQpnHeHNSnx&L`dFNc4S;CB`tTGrmTpnb7NL|>&R;Kmh
xC9i%YBR97QgDA6@xVVIopk%NxU%Y^@v=D>1bdrhq1O{g%d2w03v?xUeYXI%OTtEN-

literal 0
HcmV?d00001

diff --git a/wp-content/plugins/nextgen-gallery/admin/images/icon-paypal.gif b/wp-content/plugins/nextgen-gallery/admin/images/icon-paypal.gif
new file mode 100644
index 0000000000000000000000000000000000000000..a5470d2e6c21cb698acc5d6b8b80c59b6895e50e
GIT binary patch
literal 220
zcmZ?wbhEHb6krfwI3mDs?cTE!m+vtcr%hb8=gG@=|NsAAyZ3C%oGokjoZWrm>ZIj+
zKYsb%GJ8wegf(Ro*UaB|^#A|=45R?XpDc_om<1SgK$<{yI<Q76sPv^+vN<hW$7(gj
z<J7871ExcZxEeCK4k&yG71AhkxO&J;$RMP5fpUNn%euyS>sb!OZB=9HcQxSPTiUF%
hBdKc|ql!bS8gI(AhMzG$Z{(r{_?_|^+msa<tO3-kOVI!T

literal 0
HcmV?d00001

diff --git a/wp-content/plugins/nextgen-gallery/admin/images/icon-rating.png b/wp-content/plugins/nextgen-gallery/admin/images/icon-rating.png
new file mode 100644
index 0000000000000000000000000000000000000000..eaa77e6b4aa72fefbeb22b410175864d8642cd80
GIT binary patch
literal 728
zcmeAS@N?(olHy`uVBq!ia0y~yU=RRd4mJh`2Kmqb6B!s77>k44ofy`glX=O&z`&N|
z?e4<x9|RZdT|SwCfq}EYBeIx*fm;}a85w5Hkzin8U@!6Xb!ETBA}p+`_U3SNHUk4w
zgr|#Rh{fr(6TLk`7)9Ft7tcSp_uPvgTw9w=y3a(4v?g*3yA-}W6t!()#$zV~AC98S
z%^W(nTxOd&23%NVz!`Pxbj~CvpSc{Rvo_6HetGWi8P)#W?ExaqFLL<opMUuH|2f0|
z%{>cyt%@JUD~NC1ee9{%Ii3d^3<dYU{oWF{<o5>uTq_f8^Q{Nx)y(;#G;vwVT&dN*
z(F-1~Wjs_BSj1gCr)TCKsaBaR{zbdqlz!N}^rFE8+yCMY-|j?x51a14Ih@5zY@v+x
z)^6rQA!Q7)N5i?Rn{T^#@H$QUoFV?&>HCvo&x+1Rq%B<1_(^{LVc**BO%r!MnR#vV
z9=G@@GS2(M7z*q^c)KzjU|za&`Q$&06E+^<5$M!%{wU1C`=+x%{Lr@FFLP(t$?E@i
zSs>UT)AHony>okJr=2>(^hU^$;Q)&|ds$G!^rkJ(JDBPVKetI2*ek5^IF_!Q_wG2C
z;}nKPP4-M34k}Dd90JWE_doJ7NHNMVcb;;{JNo%;!(7vuj@ijV3>*nc0-ijPtSlQ#
zFN^;%|8RF^{bw(JHo^Fg$pHli6ATPl;w?QimDO#y&K;A_{n@%aeU(<!s=1X96WmvZ
zonlz25OhHA;4iDmC(rKbIJ5NWy=m6xs*^b`tXso8=Z!_<MbWK4p8fmqaNdN9_^C^!
zE`L2!AyzEh{cZBf9pBzPymT&8I&TrzO_v{sw`@Oo@ZGySL2vu7M^8p^vI{w?s0!}V
zy#Ctk^{UieXCzmj*e)e0zunCB#_g-ECvHeEEZDek-lTt73!OG`vi!L5Sb|00%J3jV
jfwkD-o3o@C4&<MX|9&srW#%Ua1_lOCS3j3^P6<r_q3}Y>

literal 0
HcmV?d00001

diff --git a/wp-content/plugins/nextgen-gallery/admin/images/icon-translate.png b/wp-content/plugins/nextgen-gallery/admin/images/icon-translate.png
new file mode 100644
index 0000000000000000000000000000000000000000..f8064599b1c09dccaf31beac8ec1cfafbe6bbe51
GIT binary patch
literal 819
zcmeAS@N?(olHy`uVBq!ia0y~yU=RRd4mJh`2Kmqb6B!s7Sc;uILpV4%IBGajIv5xj
zI14-?iy0UgcY`pa)tkqU7#J8NOI#yLg7ec#$`gxH8OqDc^)mCai<1)zQuXqS(r3T3
zkz!zA+TiKp7-G@8bh2%}j4Ok~{WIsz)!jLM@2B4LoO93Su&5pqa#ENeo#NQ2;qa*b
z!Uukh6$15&vKp+iDy&Y7Dk2LxTm%jsY(G#q(fiGjboWnpE5DbOm9;m?J3PF;|Cy)1
z#d8b(Pcdc++wAx4-e)g&f3oA3?duQUFO_)Xns~$SR&SZikCl_|xy>rO?WyfI{pY6Z
zdB-NN-~adL!5<Gxj#r-bznZhrM|}C_g=_oTPkhK-Ir~TBv#HbFS6sT#V|puX$EC%>
z9$L@W@%@^+`tjeF>;d&FyL6(jdV1}&IBI!#Ya(~JbBk(El2v2k+Q@*4Sz7`>zjo}K
zB=j%aJYeft_j&4tK@W4z&b}UPbACZs(;uC~8vVC8#n{qLU0iS=s@vhwsi(7ww(Y1f
zJ00M)@nR^)%i<|hm*}3BzAhZMN5VjA-KVqfWa6`>{!MB=tm(wDV$;M)S6;81BfLE*
z?3S3#(Qj!^8nXX={5bx~{pIefT=~LO=9(1W{JD=>n2x8ueAwp2b>@wP>{fxTiHo0K
z=F@Rcm%F__Z^Ks06aj0Smmgo;m@s|XE|Z1|N4CT}ADaa<v*c_o4?U4IfB&YSyyld5
z_^+I}ohQ`i|39>d;jOk`QDc~tB8$_B(4~*VHf@p$6tmn`R^ixuG3wCFjDq+5>U+Lk
zbY^>L^}gREc>0IC{`E?sEquz;mgTKTlQHA(PtUMd3Tb*@&V8?T?a6OjTP6n{SRnk-
zMqKBQo%y~U%>s5)KX24KbaL0)u1$TSY~hs>&l7V`zLhWknR_RxV&UPEl@;&jUjO;(
z8vo6E&A+*2MC<em675~SGnsarajaQ+@$A|wQv+5>uC(I3#VvL|t-JZR|LWzx>ubwC
zAD;X4Pm2DAZ-t?uA)!~dUMpL>)h#DCH`eIbnuu)c(%AA-n@mDOeY+M_*v#~K_TTz)
dW%)mG2Nknr`#k0>V_;xl@O1TaS?83{1OSbifENG&

literal 0
HcmV?d00001

diff --git a/wp-content/plugins/nextgen-gallery/admin/images/marker_bottom.gif b/wp-content/plugins/nextgen-gallery/admin/images/marker_bottom.gif
new file mode 100644
index 0000000000000000000000000000000000000000..0a14a2bd3087bf76b5c4f6304c3c2db99a158861
GIT binary patch
literal 45
wcmZ?wbhEHbWMg1rXkcVuU|{(F|G(l-7DfgJMg|=aA0)%T#KObZ7S3P|0MNAuy8r+H

literal 0
HcmV?d00001

diff --git a/wp-content/plugins/nextgen-gallery/admin/images/marker_middle.gif b/wp-content/plugins/nextgen-gallery/admin/images/marker_middle.gif
new file mode 100644
index 0000000000000000000000000000000000000000..ea47c286fb5d35f06d2a5315b2c6941c918f1e3a
GIT binary patch
literal 48
zcmZ?wbhEHbWMg1vXkcVuU|{(F|G(l-7DfgJMg|=aA0)%T#O}k8wqkl91A{dH?v@D)

literal 0
HcmV?d00001

diff --git a/wp-content/plugins/nextgen-gallery/admin/images/marker_top.gif b/wp-content/plugins/nextgen-gallery/admin/images/marker_top.gif
new file mode 100644
index 0000000000000000000000000000000000000000..22760f2a505d95ca955e66a0c71c93d464883781
GIT binary patch
literal 45
wcmZ?wbhEHbWMg1rXkcVuU|{(F|G(l-7DfgJMg|=aA0)%T#L^<q9>`z~0MX0`zW@LL

literal 0
HcmV?d00001

diff --git a/wp-content/plugins/nextgen-gallery/admin/images/menu-bits.gif b/wp-content/plugins/nextgen-gallery/admin/images/menu-bits.gif
new file mode 100644
index 0000000000000000000000000000000000000000..9a10a9a168d6e17db802ded92ac0c3c990096a2d
GIT binary patch
literal 1194
zcmZ?wbhEHbv|*@WylTqO(9lp*Q`6Pem7AM8W5$e*j*jo&zdv~J;PK<fMMXvB<>mkX
z|1T^oEGsL^&(AL?C@3i@$;->DtgLKnYpbuX@9gX>E-tRCt7~p<Zf$L?s;X*fX=!R|
zI&<dC&!0c9T)Fc8{rl(7pMU-Ob>hT{Po6w^{rdH*SFhUJ+n+vt`sU4>hYugVeEIVC
z@83Uu{CM=}(dW;fKYsl9=g*%nU%q_$^y%%}xBvhDXTS>-f3h$#FqksvfK-9}#K897
zp`pM-N2>qCl1&;JR`V~cDDhewwf@GMZHL}g?SHVL!snmZxfffi&gSjD|6xas-~1cz
zf9$C{|Ni%9$;PJUme#iRj?Nb8p5DIx2@@wxp3*Ndea6gLv**m6H-DDQqQy&=E?d50
z<*KFLYuBy!64|tQ%hqk%ckJA?RebNh{Ra*nI(+2l0mc(2Pn|w<_T2dk7cX7Da#ia3
zjhnY_-?@A5{w<+LkDok!_WZ@mS5LX#zI*@S<EPJGzJB2S@$=X3KY#!IXZY?Y;jv-C
z!DbF&t(c4pO^4eBl)dJ7Y+Q7-gVQMM&WVkSkM}D$7o|9CT5@u-M)0bblb@b6Pd7+D
zHOF)Fva_>|WMAAlxq12d|MMN1x!y`HTyb%+$7HS8Q(H7IF$OI5n(MW7)z#Gzo3rko
z+N!-~eM0nA3GZ!dZf?%Fyejtewzapn7d$>S*L(ZAySpnszq)&R`}+I)8<@G}e0FSj
zc(_AYJMPSmjgOB{Q1+hZvvbqa(=&{-@15DX`T6+;&fRjpySBW%ydrpY+}T}QUtiyl
ze0rYm?rm>x?<jtK@9mF<#<Tkx|6h}t^W(#rqZ8$i&zbY{)9JGd?YGO!{q^P4)s6AX
z=gj^6?d08q_0whM{rPd?=|%hh7Z&dQ%_o13eciu>`~LpuUEN%9U(x0LYxW)A4<_G~
zd?3fck|+LvaYE^KhC0qws_}_0O)VbQA4<)b({`%x#s4|&ml`wXcHElyVs7W7g&Fg@
zUTw@+*e#f+k=$-v7m?gy-Zvw;(|X>G<SzSl5-Huz`yy2GJ=9h{ndD>k^2y`|Mu!7w
zK|z*F(?XLfQ_~`gcB-buHvN2>nmEaFS!(K{%CywXO*_?6a}WJ|mQr}ha(PPWqssJ@
z%1=AhQ)-!hJx@**N_erb!zgSSQ-{*3hDGUI7c>}^O|Cs#!WpqEjiF=SgNQlGGF~rc
zb4qX>Sdlf?;6*~?qE$<$ZrG=_diusoR;y=heN?r2=FU&MR?phY^n3N}gF@D8<{VY3
zUNiTk(e5?#&N}^GGyh_c_1Xnjld5&6+$npl%QUBP_sku$CeEI@bH>8z<1=?n+Za7_
z_mqRyGxtooC_QuUgonRp?Cbk@JAy+lhmDC-^~i*o>~c#MF!9V#eACFGHbJ2&l~38m
znL{-s%#fE|VZ}yvg#`&r+|y5PVB*qEd3K2Vaog*n(+1OjZ#rW*-+J>|)8*Bh&snbD
zz4^TD_TQT?IPSOJa?$m8^_EMX=XY<p?0fz9mMekxt+!qceO|rwTIBoPTd&7{|Go7_
zqWLrZ<aGUM+mf=?ubCy~%ZqJKEEW&jzP;l4+VA%!>pu8?zkyxv$AcE}yov{o3=Gx)
DShAbz

literal 0
HcmV?d00001

diff --git a/wp-content/plugins/nextgen-gallery/admin/images/nextgen.png b/wp-content/plugins/nextgen-gallery/admin/images/nextgen.png
new file mode 100644
index 0000000000000000000000000000000000000000..4e3f9ef42db4392ea9a12e4364c12093378b1214
GIT binary patch
literal 738
zcmeAS@N?(olHy`uVBq!ia0y~yU=RRd4mJh`2Kmqb6B!s7BuiW)N`mv#O3D+9QW+dm
z@{>{(JaZG%Q-e|yQz{EjrrIztFtvEPIEGZ*YMJcsArdHae7~{v=5z1f$X~w`Vsh5>
zW=iwXR|>9)0h8LlUO21pB1O)s;-vt~yv5Oii7Z@lEq;P7Vu1pI6DO3Mh@H00OgDRL
zSnTn?#>UpS-|sET5iERg`uFGR{qKM8sobybG0B8SA>`fuyM1@}TVB$5-4n;LAZVpS
z(#hb<m&505;yL=VB|0!?rJnd5Q`3MI>jP}8EGjxxzkmC7t1oD04BuUOY34qjivjAH
z*7@-^wa=2~f6p_}$d#OM#6yKiQ>rylqRe4KSinZFZ#NzmBv^jey|U}N;gJhB-QV)(
zB}9sq#JbzaZ5OV|lKZa5zu=Sn!L5xi60?r|U|X_!^5nzY7(JR46lC~5A9YKVQ#;Gs
z*S#XRQRv{+>V^hsi;Ijh+>sh$TuR0T7wQ>2;;uSmKGrtha7OgZlAw(8y{=1kO4n_d
zw$lBqq1W<i_JYZkcJsw|G-l3X@NDUP{k%Us@q0;G-e2)cbJN#f*x}xKJhYkDceR>E
zbZVdN_YEig1dr6m7QOA#Rf;ZA+_!GgQor_PnO9lV?lL)7|5?KOH{FyaOIL%@eomeI
zmR46e>njNlU+hz2IoTPb7w&t2cg0_W*~hZ3wKvBaRsCwdQNKX)vwXed(i>+#eq`@-
zd1Tr=Db?~Y&k|pz!xw()ZH$<=?DL<npw0Iu#+D=~W-fX-g?0V;?{kFm*REZ6Xzi*!
z6PEZk1$8d;w6L6XGpu!O?E}L$*;g+P+&RN@?Q&+GLjJXbZU>L-oG5*JQsh(1mvi^j
zoBv*U?YH$|q0J|s+z(o|V7jEoqK;|X-pSr)OniKF@p=2}_k8v)NmRC1wv}=FkeZZq
wsCoIbKkND<<C8*<y_<2aCpGPpdjlhbl)ijQ$7#1t1_lNOPgg&ebxsLQ0NH_3(f|Me

literal 0
HcmV?d00001

diff --git a/wp-content/plugins/nextgen-gallery/admin/images/nextgen_16_color.png b/wp-content/plugins/nextgen-gallery/admin/images/nextgen_16_color.png
new file mode 100644
index 0000000000000000000000000000000000000000..7d895303d45e0f035cad1adecea50ca33b1a29f1
GIT binary patch
literal 462
zcmeAS@N?(olHy`uVBq!ia0y~yU=RRd4mJh`2Kmqb6B!s7BuiW)N`mv#O3D+9QW+dm
z@{>{(JaZG%Q-e|yQz{EjrrIztFcx^aIEGZ*O8WEvzdf^RLuaGYfhJ#ronHh#o@1(H
zlw@v<s(IM>{|Lhbt2KH*e!sUrJm3Dmgx=ei2|xZ+m@}_mquo5AjIB#b(vxw6)dt2y
z&&dz{zHzKe{PFv{{o(cZ>krO)tIB5}Q*)*vk-<Z5Nnh*4iGjKnc}mWi>$oExU0lr0
zll|=vv(^vhZIVkQT@D{O%+D`5ueR#cgOl%hOdiM|Vg3K_FSB>uj-4G3j~<P6SYB%Q
z=hs*E9Bq#JA0HbN&(FQf6CNLv_~XxK;fS@HciA4|uK(x6^W)PSfeD{`8B^p=baKDf
zNw4_%SM_lF`+UV~n;i|Wa4VDsh&wbjxS#54eE3zbAg6)JFiuq{{Y~Q&$5#i~{<Q9L
zaIo!jY!c2mQO4GGXxZi?>PzY`JgNC`&#uk-`+I|eQ+3AzBvuHYG042e*rsf~`|89?
z7j(rqn3WRNKVdnxgF$^eM}+XTB{8@6wXWH7fWvE-ipuY33ATV)a~YX<7_??SdAaoS
SB4q{!1_n=8KbLh*2~7YC#mt2O

literal 0
HcmV?d00001

diff --git a/wp-content/plugins/nextgen-gallery/admin/images/nextgen_16_grey.png b/wp-content/plugins/nextgen-gallery/admin/images/nextgen_16_grey.png
new file mode 100644
index 0000000000000000000000000000000000000000..7e8d9fa4b57a703878fc60398f35c602e5b387a8
GIT binary patch
literal 400
zcmeAS@N?(olHy`uVBq!ia0y~yU=RRd4mJh`2Kmqb6B!s7BuiW)N`mv#O3D+9QW+dm
z@{>{(JaZG%Q-e|yQz{EjrrIztFdBKfIEGZ*S`uuX*X$r5tE04Pf=Pmvu&a@%xR=&C
z2iN0_6Et=>FIcktF^`8xSjP$lUX6)ALmX~wOldyIC*)rhm0AAm?d+S8t6p10H1n=u
zvE80I>se9sk`~44H@t^mOlvrDcG`t)y6YST8gg&%xYxCKy>9j_Hs8y0SntW*Kgeh2
zFzsn4L+9-Pk*(@pt5zwAx>{N*cz!FKGv~RbOCXEqq!<|<-RgPfLJDhMOC2(3vFKZ<
z<83op<)xCrmY7gcGvm`nKmPn{n*Uf|=;MXYKd+cgOEt`U(r{<mGEEWJ#`g8M#T(xK
z6`#Xlz{A}4xMAJv|9uSSKdUn?a+&3vr@r-Fne`KaMH)@7cO^tlGbt!o(0*8jgXxo4
z&Hdv`ZU)9B&3wG$q}<idobR?}UD<NjCE;!PKj8$1{FcXaFE0w5z`(%3;OXk;vd$@?
F2>=i_s7U|-

literal 0
HcmV?d00001

diff --git a/wp-content/plugins/nextgen-gallery/admin/images/nextgen_32_color.png b/wp-content/plugins/nextgen-gallery/admin/images/nextgen_32_color.png
new file mode 100644
index 0000000000000000000000000000000000000000..d9368695e3d1dfbd892904f3985c9f61f3a99b03
GIT binary patch
literal 1108
zcmeAS@N?(olHy`uVBq!ia0y~yU{C;I4mJh`hT^KKFANL}k|nMYCBgY=CFO}lsSJ)O
z`AMk?p1FzXsX?iUDV2pMQ*9U+n7?_tIEGZ*dJ`U>5u7ga|8D(B-%IwM*~wwM7xnti
z{e3tkkE?9U<*R44qS7Rj`IA`XzwOz$_s4^K+qjG*qUE<~b|~aDcQ%*qO5A;I;ld7&
z?Cjm8PMT7e&35Kao^9$WeE$30S<9-TgCb8f|K1^f?&rSZ_dn+r*FE2TU-Z&T6D~^^
zkqQx+hB>PrO6$tLY+_1S{Q3|3|CPmDTILK*3MQs<KW3d?{$Fl!yUUFfLDw#x)f!6k
zyb{$W9@&3V<eBA4c{T3`(-$tAxb#6m?$=kw2ijsMJ=}7tfc@W*H&f3qyuX*R`l;BC
z*Y=JVg86gx`mQANu}T<cPHO4-=fZGG$LJbcmEisxUB2fTvac~uR<u8+w~zV!xy=Hr
zX9@V8ORrhJ`7Y<_f(8429_eDK{&#h;<jvHr3N=41%)*&OQ;*HrEi*wSVZnFf9enRy
zxjruKD^`5?(>V9ERB3tn<JFsmW6Dklsj0gMyo=6yti_tN-R;4$uMt5;><TFtA1g8_
zMZE5_eH&w0o-T8V>7dLe9&SM$N0!h2E#mS5tT(i4W^nPR7#(n{kgA!tUYMiUY&OG*
zupE~SL90H_S|Bg@e|iV&uf)%LIQsWY4l|dqp02Rq)meYTYn2mrHCsGT;uF}nvHHNS
zWyw!k4rpIWW?@NKWY2WKGxsT9ob#U|=`3599qEk|%4D0v*I!<Bu}!RK!4)%SpZ^UL
z?@fO3dVklYS8rF;ymnqu`g_6*f5(YSe2)B@)A#P79uF&<;2cgRk-1IFvOm;+S<T6?
znrZEJ+0rL_?xddC$RT-Bz_euQCG7we)$_6q*~Q%FnX+rI{ny;38u?_R+hfC+9hHo8
z|L#vncI91l`r5<Rt#MOUxE4gnJd@lY{3#$qMDP72E76;qPpizj7ADm5kMCt-317@1
zfAe~`+@ow;@^134&N(?l?b+lDNtd57NHpd=jceJu(1-0t$BXVwrHl?5Qpa3Ux=tVd
z{{PU9GXCbqM7`?F;v0KcHhL{|=zsm^+{@?#9AP&<7#^$7f4ow+*obdKZ`#FW|57$H
zwk!$~oqBp{mZ3}-`<!h;Z&p>$J?|P`uuF%bRdCHR&PVHlCH7uxly<JwSb3{!(RAqs
zZEl7=x5H`{ip{S4w0@x%OVZSkn*7D*wyQgD_-$LiVTm-~mzRHP`$8|yNhk_?eeRs=
zC-wuI91N~4pB$L{U3%^hcH8aM9#x&M@5}!*t7rIDx+k3>k!AAQ7`<it=Fa6RW_ZIe
z@w)KEZC}^Vkm_B{dEolg&))odzv=aDk3Y0_Uw+y86nFJc_op$;h-*7|)O1~_>(v`K
zIG(SxzH@MukwB+AceU2PcYpP{*cUv#@UrQT_y)fGv&Xwv{<D9^^5B2{;pK7%m>Jm^
Zjw;$u-LuNz6$1kUgQu&X%Q~loCIC#S3R3_8

literal 0
HcmV?d00001

diff --git a/wp-content/plugins/nextgen-gallery/admin/images/nextgen_32_grey.png b/wp-content/plugins/nextgen-gallery/admin/images/nextgen_32_grey.png
new file mode 100644
index 0000000000000000000000000000000000000000..f22f3d87c0c56e78e68631cbf638b2954bb369b9
GIT binary patch
literal 898
zcmeAS@N?(olHy`uVBq!ia0y~yU{C;I4mJh`hT^KKFANL}k|nMYCBgY=CFO}lsSJ)O
z`AMk?p1FzXsX?iUDV2pMQ*9U+m{mMo978H@y$SdAPD&K9o0ZC@q#7|nAZ1Fz?vjPN
zw@jKfwsd?H-_dm<_q4*D9U1TYXRO^J5$n2OkyE!4$FCbL9a6X2XRUl({9teK?|^ry
zJmSXeaqnJN_dmCJZh5{k(0BXorGc}ix#cLcF9?1m(dn{FnU&%8{rmD+pW*^fF<8t!
zm*42n@O@`Y-?3xIJeFU+c;pC+eSCcU%9}YsyYDXZTkh<1L#o%UtI@bd?ESTC*RB{d
zNXyGFKY7w~)zz$$ni`*0r^aW`o}GAFH1TB0qN=@qS!&*f41!k@3<9=BJ$(|kdg`?4
z(^m$q{E)u=wr|?znNe%6wV(QZG=-tPy`5Q6d4r6DjhuS-Q75;>6DL2kw6^x1>C?7t
z`*u-d1;&O}r-l3aUQ}yMePsJ9PH%c<UEMsX-nJ);ufP5&^L}Bc<5ceExDwmOzc+5(
zdenURa`2_BtvW_uB&#j%-n-`&`jE#&SyD^<+m9b7o>%bCU6I7#d5@c?M6BC&Syfh+
z*C)qNX=!PZ?xQp6_Egu^J$qlVH;#=#Y>I@jg7^#@OO0)}-^RQ=d6JVk@#?o@d4+`&
z|J2zpy_~sg*RCYPUp01i$2FK*40@jb{Aqdj?%l#11J(oV?CkXn9j_ENq!?*(zIpnz
zb-snT9Rox2ukf(2B{z>X@lQ(bKk~C?-fgbNMYbAT8y8GB=Q$BwP+xyuG;!Y3&Hv>Z
z?l3TMpPWB$o`q&h_mLg)Pi8SVCp-vd;4rYY^<5hDviHD+Y{%6M4K52r+D>znGiDrP
zYF@p1wNBcG4$}Z;2UV?)6*f~mR4S${;Ovo_wn9mU&)eaMWD7^s#}W&fp!cHP0R{|5
zxVgEv?A&=$<ldb-1@{Z`<6~kx_R6O;#f1hdNC<p!I_vH2J?VhLvdx=~JAWlgeyZbo
zu=l``)+JMJ?N4I}wX?DLAU9obl{iCLdHH_60~aq|WN&or*wOP~&-U%#P4{=OFw8!C
zEj(g}!<1XUep$IL4&1eG-#@z(`m@jet72X-zbQQ}EhMyc<w4sfmQ@lG%MQ5sgfcW8
zeDH$d&6_tp@9GaeeVUqZqp|w$|CLAlKmXtV(4POnb_QmKj?MRUJq=BsGcYhPc)I$z
JtaD0e0sxU;pTYnD

literal 0
HcmV?d00001

diff --git a/wp-content/plugins/nextgen-gallery/admin/images/select.png b/wp-content/plugins/nextgen-gallery/admin/images/select.png
new file mode 100644
index 0000000000000000000000000000000000000000..21213bfd51b088497f3a9e423170cd65532d873d
GIT binary patch
literal 506
zcmeAS@N?(olHy`uVBq!ia0y~yU{C>J4mJh`hKCF@W-u@?u%tWsIx;Y<KVi<=^^$>s
zL9)a(q9iy!t)x7$D3!r6B|j-u!8128JvAsbF{QHbWU37V17nY;i(^Q|tv53cdL4EU
zXe&2gS>+j|v}k(_%SMH`J<mIBDn3cte0?DN^xes3r5_Ak60@ExGBf-qoR+A0L#%MJ
zSlNU8%bp4Q-tl=qo1S}{OE&0KZH=sBaz^-#UjGcXy$<iED2Uyx^^kn<ol~SMaZ$^>
z13{X8Je<lq%nUi^Z}&X>#?kx&OVBjMeGA!NNc~b^OPaXDqM7f<!rKZQYKanD_rI^b
zbfr}H)FzS8P{Avz%kPVrZ|J+M(Y5AqNp!PRNOzXhOT$n(NzRv*ape=ATV9NAJgC=U
z(Z_my(y_G{*Vi60xYRc7Z=kA~j?4t+A_u+`jFt;>**ATCba`FX-xtyzDxQz3GIlp^
z(zz|8z`L1m%B$+sFvrOG<(EwU&X;?%dC}kQX>*NV%k&f{n`O^l_A<?Q)@%<m=B;A<
z7k4IkyBtpr6#3=&+90GmhF{rs@xk6RZN-OkW;h+UoymLtg6M2sk?*(UcS+pnTc~lc
zXnA<!w6!uqZuxU#HheiT%`(M3<+#xi@$c`oZyLmwH$Qc6U}PxQZFr`&=36EM0|SGn
LtDnm{r-UW|{}|Rt

literal 0
HcmV?d00001

diff --git a/wp-content/plugins/nextgen-gallery/admin/index.html b/wp-content/plugins/nextgen-gallery/admin/index.html
new file mode 100644
index 000000000..e69de29bb
diff --git a/wp-content/plugins/nextgen-gallery/admin/install.php b/wp-content/plugins/nextgen-gallery/admin/install.php
new file mode 100644
index 000000000..c4d7dd3b3
--- /dev/null
+++ b/wp-content/plugins/nextgen-gallery/admin/install.php
@@ -0,0 +1,293 @@
+<?php
+if(preg_match('#' . basename(__FILE__) . '#', $_SERVER['PHP_SELF'])) { die('You are not allowed to call this page directly.'); }
+
+/**
+ * creates all tables for the gallery
+ * called during register_activation hook
+ * 
+ * @access internal
+ * @return void
+ */
+function nggallery_install () {
+	
+   	global $wpdb , $wp_roles, $wp_version;
+   	
+	// Check for capability
+	if ( !current_user_can('activate_plugins') ) 
+		return;
+	
+	// Set the capabilities for the administrator
+	$role = get_role('administrator');
+	// We need this role, no other chance
+	if ( empty($role) ) {
+		update_option( "ngg_init_check", __('Sorry, NextGEN Gallery works only with a role called administrator',"nggallery") );
+		return;
+	}
+	
+	$role->add_cap('NextGEN Gallery overview');
+	$role->add_cap('NextGEN Use TinyMCE');
+	$role->add_cap('NextGEN Upload images');
+	$role->add_cap('NextGEN Manage gallery');
+	$role->add_cap('NextGEN Manage tags');
+	$role->add_cap('NextGEN Manage others gallery');
+	$role->add_cap('NextGEN Edit album');
+	$role->add_cap('NextGEN Change style');
+	$role->add_cap('NextGEN Change options');
+	
+	// upgrade function changed in WordPress 2.3	
+	require_once(ABSPATH . 'wp-admin/includes/upgrade.php');
+	
+	// add charset & collate like wp core
+	$charset_collate = '';
+
+	if ( version_compare(mysql_get_server_info(), '4.1.0', '>=') ) {
+		if ( ! empty($wpdb->charset) )
+			$charset_collate = "DEFAULT CHARACTER SET $wpdb->charset";
+		if ( ! empty($wpdb->collate) )
+			$charset_collate .= " COLLATE $wpdb->collate";
+	}
+		
+   	$nggpictures					= $wpdb->prefix . 'ngg_pictures';
+	$nggallery						= $wpdb->prefix . 'ngg_gallery';
+	$nggalbum						= $wpdb->prefix . 'ngg_album';
+
+    // could be case senstive : http://dev.mysql.com/doc/refman/5.1/en/identifier-case-sensitivity.html
+	if( !$wpdb->get_var( "SHOW TABLES LIKE '$nggpictures'" ) ) {
+      
+		$sql = "CREATE TABLE " . $nggpictures . " (
+		pid BIGINT(20) NOT NULL AUTO_INCREMENT ,
+        image_slug VARCHAR(255) NOT NULL ,
+		post_id BIGINT(20) DEFAULT '0' NOT NULL ,
+		galleryid BIGINT(20) DEFAULT '0' NOT NULL ,
+		filename VARCHAR(255) NOT NULL ,
+		description MEDIUMTEXT NULL ,
+		alttext MEDIUMTEXT NULL ,
+		imagedate DATETIME NOT NULL DEFAULT '0000-00-00 00:00:00',
+		exclude TINYINT NULL DEFAULT '0' ,
+		sortorder BIGINT(20) DEFAULT '0' NOT NULL ,
+		meta_data LONGTEXT,
+		PRIMARY KEY pid (pid),
+		KEY post_id (post_id)
+		) $charset_collate;";
+	
+      dbDelta($sql);
+    }
+
+	if( !$wpdb->get_var( "SHOW TABLES LIKE '$nggallery'" )) {
+      
+		$sql = "CREATE TABLE " . $nggallery . " (
+		gid BIGINT(20) NOT NULL AUTO_INCREMENT ,
+		name VARCHAR(255) NOT NULL ,
+        slug VARCHAR(255) NOT NULL ,
+		path MEDIUMTEXT NULL ,
+		title MEDIUMTEXT NULL ,
+		galdesc MEDIUMTEXT NULL ,
+		pageid BIGINT(20) DEFAULT '0' NOT NULL ,
+		previewpic BIGINT(20) DEFAULT '0' NOT NULL ,
+		author BIGINT(20) DEFAULT '0' NOT NULL  ,
+		PRIMARY KEY gid (gid)
+		) $charset_collate;";
+	
+      dbDelta($sql);
+   }
+    
+	if( !$wpdb->get_var( "SHOW TABLES LIKE '$nggalbum'" )) {
+      
+		$sql = "CREATE TABLE " . $nggalbum . " (
+		id BIGINT(20) NOT NULL AUTO_INCREMENT ,
+		name VARCHAR(255) NOT NULL ,
+        slug VARCHAR(255) NOT NULL ,
+		previewpic BIGINT(20) DEFAULT '0' NOT NULL ,
+		albumdesc MEDIUMTEXT NULL ,
+		sortorder LONGTEXT NOT NULL,
+		pageid BIGINT(20) DEFAULT '0' NOT NULL,
+		PRIMARY KEY id (id)
+		) $charset_collate;";
+	
+      dbDelta($sql);
+    }
+
+	// check one table again, to be sure
+	if( !$wpdb->get_var( "SHOW TABLES LIKE '$nggpictures'" ) ) {
+		update_option( "ngg_init_check", __('NextGEN Gallery : Tables could not created, please check your database settings',"nggallery") );
+		return;
+	}
+	
+	$options = get_option('ngg_options');
+	// set the default settings, if we didn't upgrade
+	if ( empty( $options ) )	
+ 		ngg_default_options();
+ 	
+	// if all is passed , save the DBVERSION
+	add_option("ngg_db_version", NGG_DBVERSION);
+
+}
+
+/**
+ * Setup the default option array for the gallery
+ * 
+ * @access internal
+ * @since version 0.33 
+ * @return void
+ */
+function ngg_default_options() {
+	
+	global $blog_id, $ngg;
+
+	$ngg_options['gallerypath']			= 'wp-content/gallery/';  		// set default path to the gallery
+	$ngg_options['deleteImg']			= true;							// delete Images
+	$ngg_options['swfUpload']			= true;							// activate the batch upload
+	$ngg_options['usePermalinks']		= false;						// use permalinks for parameters
+	$ngg_options['graphicLibrary']		= 'gd';							// default graphic library
+	$ngg_options['imageMagickDir']		= '/usr/local/bin/';			// default path to ImageMagick
+	$ngg_options['useMediaRSS']			= false;						// activate the global Media RSS file
+	$ngg_options['usePicLens']			= false;						// activate the PicLens Link for galleries
+	
+	// Tags / categories
+	$ngg_options['activateTags']		= false;						// append related images
+	$ngg_options['appendType']			= 'tags';						// look for category or tags
+	$ngg_options['maxImages']			= 7;  							// number of images toshow
+	
+	// Thumbnail Settings
+	$ngg_options['thumbwidth']			= 100;  						// Thumb Width
+	$ngg_options['thumbheight']			= 75;  							// Thumb height
+	$ngg_options['thumbfix']			= true;							// Fix the dimension
+	$ngg_options['thumbquality']		= 100;  						// Thumb Quality
+		
+	// Image Settings
+	$ngg_options['imgWidth']			= 800;  						// Image Width
+	$ngg_options['imgHeight']			= 600;  						// Image height
+	$ngg_options['imgQuality']			= 85;							// Image Quality
+	$ngg_options['imgCacheSinglePic']	= true;							// Cached the singlepic	
+	$ngg_options['imgBackup']			= true;							// Create a backup
+	$ngg_options['imgAutoResize']		= false;						// Resize after upload
+	
+	// Gallery Settings
+	$ngg_options['galImages']			= '20';		  					// Number of images per page
+	$ngg_options['galPagedGalleries']	= 0;		  					// Number of galleries per page (in a album)
+	$ngg_options['galColumns']			= 0;							// Number of columns for the gallery
+	$ngg_options['galShowSlide']		= true;							// Show slideshow
+	$ngg_options['galTextSlide']		= __('[Show as slideshow]','nggallery'); // Text for slideshow
+	$ngg_options['galTextGallery']		= __('[Show picture list]','nggallery'); // Text for gallery
+	$ngg_options['galShowOrder']		= 'gallery';					// Show order
+	$ngg_options['galSort']				= 'sortorder';					// Sort order
+	$ngg_options['galSortDir']			= 'ASC';						// Sort direction
+	$ngg_options['galNoPages']   		= true;							// use no subpages for gallery
+	$ngg_options['galImgBrowser']   	= false;						// Show ImageBrowser, instead effect
+	$ngg_options['galHiddenImg']   		= false;						// For paged galleries we can hide image
+	$ngg_options['galAjaxNav']   		= false;						// AJAX Navigation for Shutter effect
+
+	// Thumbnail Effect
+	$ngg_options['thumbEffect']			= 'shutter';  					// select effect
+	$ngg_options['thumbCode']			= 'class="shutterset_%GALLERY_NAME%"'; 
+
+	// Watermark settings
+	$ngg_options['wmPos']				= 'botRight';					// Postion
+	$ngg_options['wmXpos']				= 5;  							// X Pos
+	$ngg_options['wmYpos']				= 5;  							// Y Pos
+	$ngg_options['wmType']				= 'text';  						// Type : 'image' / 'text'
+	$ngg_options['wmPath']				= '';  							// Path to image
+	$ngg_options['wmFont']				= 'arial.ttf';  				// Font type
+	$ngg_options['wmSize']				= 10;  							// Font Size
+	$ngg_options['wmText']				= get_option('blogname');		// Text
+	$ngg_options['wmColor']				= '000000';  					// Font Color
+	$ngg_options['wmOpaque']			= '100';  						// Font Opaque
+
+	// Image Rotator settings 
+	$ngg_options['enableIR']		    = false;
+    $ngg_options['slideFx']		        = 'fade';
+    $ngg_options['irURL']				= '';
+	$ngg_options['irXHTMLvalid']		= false;
+	$ngg_options['irAudio']				= '';
+	$ngg_options['irWidth']				= 320; 
+	$ngg_options['irHeight']			= 240;
+ 	$ngg_options['irShuffle']			= true;
+ 	$ngg_options['irLinkfromdisplay']	= true;
+	$ngg_options['irShownavigation']	= false;
+	$ngg_options['irShowicons']			= false;
+	$ngg_options['irWatermark']			= false;
+	$ngg_options['irOverstretch']		= 'true';
+	$ngg_options['irRotatetime']		= 10;
+	$ngg_options['irTransition']		= 'random';
+	$ngg_options['irKenburns']			= false;
+	$ngg_options['irBackcolor']			= '000000';
+	$ngg_options['irFrontcolor']		= 'FFFFFF';
+	$ngg_options['irLightcolor']		= 'CC0000';
+	$ngg_options['irScreencolor']		= '000000';		
+
+	// CSS Style
+	$ngg_options['activateCSS']			= true;							// activate the CSS file
+	$ngg_options['CSSfile']				= 'nggallery.css';  			// set default css filename
+	
+	// special overrides for WPMU	
+	if (is_multisite()) {
+		// get the site options
+		$ngg_wpmu_options = get_site_option('ngg_options');
+		
+		// get the default value during first installation
+		if (!is_array($ngg_wpmu_options)) {
+			$ngg_wpmu_options['gallerypath'] = 'wp-content/blogs.dir/%BLOG_ID%/files/';
+			$ngg_wpmu_options['wpmuCSSfile'] = 'nggallery.css';
+			update_site_option('ngg_options', $ngg_wpmu_options);
+		}
+		
+		$ngg_options['gallerypath']  		= str_replace("%BLOG_ID%", $blog_id , $ngg_wpmu_options['gallerypath']);
+		$ngg_options['CSSfile']				= $ngg_wpmu_options['wpmuCSSfile'];
+		$ngg_options['imgCacheSinglePic']	= true; 					// under WPMU this should be enabled
+	} 
+	
+	update_option('ngg_options', $ngg_options);
+
+}
+
+/**
+ * Deregister a capability from all classic roles
+ * 
+ * @access internal
+ * @param string $capability name of the capability which should be deregister
+ * @return void
+ */
+function ngg_remove_capability($capability){
+	// this function remove the $capability only from the classic roles
+	$check_order = array("subscriber", "contributor", "author", "editor", "administrator");
+
+	foreach ($check_order as $role) {
+
+		$role = get_role($role);
+		$role->remove_cap($capability) ;
+	}
+
+}
+
+/**
+ * Uninstall all settings and tables
+ * Called via Setup and register_unstall hook
+ * 
+ * @access internal
+ * @return void
+ */
+function nggallery_uninstall() {
+	global $wpdb;
+	
+	// first remove all tables
+	$wpdb->query("DROP TABLE IF EXISTS {$wpdb->prefix}ngg_pictures");
+	$wpdb->query("DROP TABLE IF EXISTS {$wpdb->prefix}ngg_gallery");
+	$wpdb->query("DROP TABLE IF EXISTS {$wpdb->prefix}ngg_album");
+	
+	// then remove all options
+	delete_option( 'ngg_options' );
+	delete_option( 'ngg_db_version' );
+	delete_option( 'ngg_update_exists' );
+	delete_option( 'ngg_next_update' );
+
+	// now remove the capability
+	ngg_remove_capability("NextGEN Gallery overview");
+	ngg_remove_capability("NextGEN Use TinyMCE");
+	ngg_remove_capability("NextGEN Upload images");
+	ngg_remove_capability("NextGEN Manage gallery");
+	ngg_remove_capability("NextGEN Edit album");
+	ngg_remove_capability("NextGEN Change style");
+	ngg_remove_capability("NextGEN Change options");
+}
+
+?>
\ No newline at end of file
diff --git a/wp-content/plugins/nextgen-gallery/admin/js/Jcrop/css/Jcrop.gif b/wp-content/plugins/nextgen-gallery/admin/js/Jcrop/css/Jcrop.gif
new file mode 100644
index 0000000000000000000000000000000000000000..72ea7ccb5321d5384d70437cfaac73011237901e
GIT binary patch
literal 329
zcmZ?wbhEHb<Y3@nn8?7eYSpU$|Nk?9f#QE|Ki808XU70nBRvCVMg|53#h)ykTnr2h
zIv@ogEeuS&Q&>5dXP*u6VZRvpR0o?1{uaFjGqRq?MPFEW;?2^nSWV$)X-S$s`_+Y{
z3tJ*GYZqWw)6$wWp=#%?q>Mum8>?4fRm0n&s7b&zB7BPox@Jm40>U+mz&5d>`I~=A
LW5Oh4*H{Ap`pi-g

literal 0
HcmV?d00001

diff --git a/wp-content/plugins/nextgen-gallery/admin/js/Jcrop/css/jquery.Jcrop.css b/wp-content/plugins/nextgen-gallery/admin/js/Jcrop/css/jquery.Jcrop.css
new file mode 100644
index 000000000..24925dc94
--- /dev/null
+++ b/wp-content/plugins/nextgen-gallery/admin/js/Jcrop/css/jquery.Jcrop.css
@@ -0,0 +1,35 @@
+/* Fixes issue here http://code.google.com/p/jcrop/issues/detail?id=1 */
+.jcrop-holder { text-align: left; }
+
+.jcrop-vline, .jcrop-hline
+{
+	font-size: 0;
+	position: absolute;
+	background: white url('Jcrop.gif') top left repeat;
+}
+.jcrop-vline { height: 100%; width: 1px !important; }
+.jcrop-hline { width: 100%; height: 1px !important; }
+.jcrop-handle {
+	font-size: 1px;
+	width: 7px !important;
+	height: 7px !important;
+	border: 1px #eee solid;
+	background-color: #333;
+	*width: 9px;
+	*height: 9px;
+}
+
+.jcrop-tracker { width: 100%; height: 100%; }
+
+.custom .jcrop-vline,
+.custom .jcrop-hline
+{
+	background: yellow;
+}
+.custom .jcrop-handle
+{
+	border-color: black;
+	background-color: #C7BB00;
+	-moz-border-radius: 3px;
+	-webkit-border-radius: 3px;
+}
diff --git a/wp-content/plugins/nextgen-gallery/admin/js/Jcrop/js/jquery.Jcrop.js b/wp-content/plugins/nextgen-gallery/admin/js/Jcrop/js/jquery.Jcrop.js
new file mode 100644
index 000000000..ad261f97a
--- /dev/null
+++ b/wp-content/plugins/nextgen-gallery/admin/js/Jcrop/js/jquery.Jcrop.js
@@ -0,0 +1,1197 @@
+/**
+ * jquery.Jcrop.js v0.9.8
+ * jQuery Image Cropping Plugin
+ * @author Kelly Hallman <khallman@gmail.com>
+ * Copyright (c) 2008-2009 Kelly Hallman - released under MIT License {{{
+ *
+ * Permission is hereby granted, free of charge, to any person
+ * obtaining a copy of this software and associated documentation
+ * files (the "Software"), to deal in the Software without
+ * restriction, including without limitation the rights to use,
+ * copy, modify, merge, publish, distribute, sublicense, and/or sell
+ * copies of the Software, and to permit persons to whom the
+ * Software is furnished to do so, subject to the following
+ * conditions:
+
+ * The above copyright notice and this permission notice shall be
+ * included in all copies or substantial portions of the Software.
+
+ * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
+ * EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES
+ * OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
+ * NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT
+ * HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY,
+ * WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING
+ * FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR
+ * OTHER DEALINGS IN THE SOFTWARE.
+
+ * }}}
+ */
+
+(function($) {
+
+$.Jcrop = function(obj,opt)
+{
+	// Initialization {{{
+
+	// Sanitize some options {{{
+	var obj = obj, opt = opt;
+
+	if (typeof(obj) !== 'object') obj = $(obj)[0];
+	if (typeof(opt) !== 'object') opt = { };
+
+	// Some on-the-fly fixes for MSIE...sigh
+	if (!('trackDocument' in opt))
+	{
+		opt.trackDocument = $.browser.msie ? false : true;
+		if ($.browser.msie && $.browser.version.split('.')[0] == '8')
+			opt.trackDocument = true;
+	}
+
+	if (!('keySupport' in opt))
+			opt.keySupport = $.browser.msie ? false : true;
+		
+	// }}}
+	// Extend the default options {{{
+	var defaults = {
+
+		// Basic Settings
+		trackDocument:		false,
+		baseClass:			'jcrop',
+		addClass:			null,
+
+		// Styling Options
+		bgColor:			'black',
+		bgOpacity:			.6,
+		borderOpacity:		.4,
+		handleOpacity:		.5,
+
+		handlePad:			5,
+		handleSize:			9,
+		handleOffset:		5,
+		edgeMargin:			14,
+
+		aspectRatio:		0,
+		keySupport:			true,
+		cornerHandles:		true,
+		sideHandles:		true,
+		drawBorders:		true,
+		dragEdges:			true,
+
+		boxWidth:			0,
+		boxHeight:			0,
+
+		boundary:			8,
+		animationDelay:		20,
+		swingSpeed:			3,
+
+		allowSelect:		true,
+		allowMove:			true,
+		allowResize:		true,
+
+		minSelect:			[ 0, 0 ],
+		maxSize:			[ 0, 0 ],
+		minSize:			[ 0, 0 ],
+
+		// Callbacks / Event Handlers
+		onChange: function() { },
+		onSelect: function() { }
+
+	};
+	var options = defaults;
+	setOptions(opt);
+
+	// }}}
+	// Initialize some jQuery objects {{{
+
+	var $origimg = $(obj);
+	var $img = $origimg.clone().removeAttr('id').css({ position: 'absolute' });
+
+	$img.width($origimg.width());
+	$img.height($origimg.height());
+	$origimg.after($img).hide();
+
+	presize($img,options.boxWidth,options.boxHeight);
+
+	var boundx = $img.width(),
+		boundy = $img.height(),
+
+		$div = $('<div />')
+			.width(boundx).height(boundy)
+			.addClass(cssClass('holder'))
+			.css({
+				position: 'relative',
+				backgroundColor: options.bgColor
+			}).insertAfter($origimg).append($img);
+	;
+	
+	if (options.addClass) $div.addClass(options.addClass);
+	//$img.wrap($div);
+
+	var $img2 = $('<img />')/*{{{*/
+			.attr('src',$img.attr('src'))
+			.css('position','absolute')
+			.width(boundx).height(boundy)
+	;/*}}}*/
+	var $img_holder = $('<div />')/*{{{*/
+		.width(pct(100)).height(pct(100))
+		.css({
+			zIndex: 310,
+			position: 'absolute',
+			overflow: 'hidden'
+		})
+		.append($img2)
+	;/*}}}*/
+	var $hdl_holder = $('<div />')/*{{{*/
+		.width(pct(100)).height(pct(100))
+		.css('zIndex',320);
+	/*}}}*/
+	var $sel = $('<div />')/*{{{*/
+		.css({
+			position: 'absolute',
+			zIndex: 300
+		})
+		.insertBefore($img)
+		.append($img_holder,$hdl_holder)
+	;/*}}}*/
+
+	var bound = options.boundary;
+	var $trk = newTracker().width(boundx+(bound*2)).height(boundy+(bound*2))
+		.css({ position: 'absolute', top: px(-bound), left: px(-bound), zIndex: 290 })
+		.mousedown(newSelection);	
+	
+	/* }}} */
+	// Set more variables {{{
+
+	var xlimit, ylimit, xmin, ymin;
+	var xscale, yscale, enabled = true;
+	var docOffset = getPos($img),
+		// Internal states
+		btndown, lastcurs, dimmed, animating,
+		shift_down;
+
+	// }}}
+		
+
+		// }}}
+	// Internal Modules {{{
+
+	var Coords = function()/*{{{*/
+	{
+		var x1 = 0, y1 = 0, x2 = 0, y2 = 0, ox, oy;
+
+		function setPressed(pos)/*{{{*/
+		{
+			var pos = rebound(pos);
+			x2 = x1 = pos[0];
+			y2 = y1 = pos[1];
+		};
+		/*}}}*/
+		function setCurrent(pos)/*{{{*/
+		{
+			var pos = rebound(pos);
+			ox = pos[0] - x2;
+			oy = pos[1] - y2;
+			x2 = pos[0];
+			y2 = pos[1];
+		};
+		/*}}}*/
+		function getOffset()/*{{{*/
+		{
+			return [ ox, oy ];
+		};
+		/*}}}*/
+		function moveOffset(offset)/*{{{*/
+		{
+			var ox = offset[0], oy = offset[1];
+
+			if (0 > x1 + ox) ox -= ox + x1;
+			if (0 > y1 + oy) oy -= oy + y1;
+
+			if (boundy < y2 + oy) oy += boundy - (y2 + oy);
+			if (boundx < x2 + ox) ox += boundx - (x2 + ox);
+
+			x1 += ox;
+			x2 += ox;
+			y1 += oy;
+			y2 += oy;
+		};
+		/*}}}*/
+		function getCorner(ord)/*{{{*/
+		{
+			var c = getFixed();
+			switch(ord)
+			{
+				case 'ne': return [ c.x2, c.y ];
+				case 'nw': return [ c.x, c.y ];
+				case 'se': return [ c.x2, c.y2 ];
+				case 'sw': return [ c.x, c.y2 ];
+			}
+		};
+		/*}}}*/
+		function getFixed()/*{{{*/
+		{
+			if (!options.aspectRatio) return getRect();
+			// This function could use some optimization I think...
+			var aspect = options.aspectRatio,
+				min_x = options.minSize[0]/xscale, 
+				min_y = options.minSize[1]/yscale,
+				max_x = options.maxSize[0]/xscale, 
+				max_y = options.maxSize[1]/yscale,
+				rw = x2 - x1,
+				rh = y2 - y1,
+				rwa = Math.abs(rw),
+				rha = Math.abs(rh),
+				real_ratio = rwa / rha,
+				xx, yy
+			;
+			if (max_x == 0) { max_x = boundx * 10 }
+			if (max_y == 0) { max_y = boundy * 10 }
+			if (real_ratio < aspect)
+			{
+				yy = y2;
+				w = rha * aspect;
+				xx = rw < 0 ? x1 - w : w + x1;
+
+				if (xx < 0)
+				{
+					xx = 0;
+					h = Math.abs((xx - x1) / aspect);
+					yy = rh < 0 ? y1 - h: h + y1;
+				}
+				else if (xx > boundx)
+				{
+					xx = boundx;
+					h = Math.abs((xx - x1) / aspect);
+					yy = rh < 0 ? y1 - h : h + y1;
+				}
+			}
+			else
+			{
+				xx = x2;
+				h = rwa / aspect;
+				yy = rh < 0 ? y1 - h : y1 + h;
+				if (yy < 0)
+				{
+					yy = 0;
+					w = Math.abs((yy - y1) * aspect);
+					xx = rw < 0 ? x1 - w : w + x1;
+				}
+				else if (yy > boundy)
+				{
+					yy = boundy;
+					w = Math.abs(yy - y1) * aspect;
+					xx = rw < 0 ? x1 - w : w + x1;
+				}
+			}
+
+			// Magic %-)
+			if(xx > x1) { // right side
+			  if(xx - x1 < min_x) {
+				xx = x1 + min_x;
+			  } else if (xx - x1 > max_x) {
+				xx = x1 + max_x;
+			  }
+			  if(yy > y1) {
+				yy = y1 + (xx - x1)/aspect;
+			  } else {
+				yy = y1 - (xx - x1)/aspect;
+			  }
+			} else if (xx < x1) { // left side
+			  if(x1 - xx < min_x) {
+				xx = x1 - min_x
+			  } else if (x1 - xx > max_x) {
+				xx = x1 - max_x;
+			  }
+			  if(yy > y1) {
+				yy = y1 + (x1 - xx)/aspect;
+			  } else {
+				yy = y1 - (x1 - xx)/aspect;
+			  }
+			}
+
+			if(xx < 0) {
+				x1 -= xx;
+				xx = 0;
+			} else  if (xx > boundx) {
+				x1 -= xx - boundx;
+				xx = boundx;
+			}
+
+			if(yy < 0) {
+				y1 -= yy;
+				yy = 0;
+			} else  if (yy > boundy) {
+				y1 -= yy - boundy;
+				yy = boundy;
+			}
+
+			return last = makeObj(flipCoords(x1,y1,xx,yy));
+		};
+		/*}}}*/
+		function rebound(p)/*{{{*/
+		{
+			if (p[0] < 0) p[0] = 0;
+			if (p[1] < 0) p[1] = 0;
+
+			if (p[0] > boundx) p[0] = boundx;
+			if (p[1] > boundy) p[1] = boundy;
+
+			return [ p[0], p[1] ];
+		};
+		/*}}}*/
+		function flipCoords(x1,y1,x2,y2)/*{{{*/
+		{
+			var xa = x1, xb = x2, ya = y1, yb = y2;
+			if (x2 < x1)
+			{
+				xa = x2;
+				xb = x1;
+			}
+			if (y2 < y1)
+			{
+				ya = y2;
+				yb = y1;
+			}
+			return [ Math.round(xa), Math.round(ya), Math.round(xb), Math.round(yb) ];
+		};
+		/*}}}*/
+		function getRect()/*{{{*/
+		{
+			var xsize = x2 - x1;
+			var ysize = y2 - y1;
+
+			if (xlimit && (Math.abs(xsize) > xlimit))
+				x2 = (xsize > 0) ? (x1 + xlimit) : (x1 - xlimit);
+			if (ylimit && (Math.abs(ysize) > ylimit))
+				y2 = (ysize > 0) ? (y1 + ylimit) : (y1 - ylimit);
+
+			if (ymin && (Math.abs(ysize) < ymin))
+				y2 = (ysize > 0) ? (y1 + ymin) : (y1 - ymin);
+			if (xmin && (Math.abs(xsize) < xmin))
+				x2 = (xsize > 0) ? (x1 + xmin) : (x1 - xmin);
+
+			if (x1 < 0) { x2 -= x1; x1 -= x1; }
+			if (y1 < 0) { y2 -= y1; y1 -= y1; }
+			if (x2 < 0) { x1 -= x2; x2 -= x2; }
+			if (y2 < 0) { y1 -= y2; y2 -= y2; }
+			if (x2 > boundx) { var delta = x2 - boundx; x1 -= delta; x2 -= delta; }
+			if (y2 > boundy) { var delta = y2 - boundy; y1 -= delta; y2 -= delta; }
+			if (x1 > boundx) { var delta = x1 - boundy; y2 -= delta; y1 -= delta; }
+			if (y1 > boundy) { var delta = y1 - boundy; y2 -= delta; y1 -= delta; }
+
+			return makeObj(flipCoords(x1,y1,x2,y2));
+		};
+		/*}}}*/
+		function makeObj(a)/*{{{*/
+		{
+			return { x: a[0], y: a[1], x2: a[2], y2: a[3],
+				w: a[2] - a[0], h: a[3] - a[1] };
+		};
+		/*}}}*/
+
+		return {
+			flipCoords: flipCoords,
+			setPressed: setPressed,
+			setCurrent: setCurrent,
+			getOffset: getOffset,
+			moveOffset: moveOffset,
+			getCorner: getCorner,
+			getFixed: getFixed
+		};
+	}();
+
+	/*}}}*/
+	var Selection = function()/*{{{*/
+	{
+		var start, end, dragmode, awake, hdep = 370;
+		var borders = { };
+		var handle = { };
+		var seehandles = false;
+		var hhs = options.handleOffset;
+
+		/* Insert draggable elements {{{*/
+
+		// Insert border divs for outline
+		if (options.drawBorders) {
+			borders = {
+					top: insertBorder('hline')
+						.css('top',$.browser.msie?px(-1):px(0)),
+					bottom: insertBorder('hline'),
+					left: insertBorder('vline'),
+					right: insertBorder('vline')
+			};
+		}
+
+		// Insert handles on edges
+		if (options.dragEdges) {
+			handle.t = insertDragbar('n');
+			handle.b = insertDragbar('s');
+			handle.r = insertDragbar('e');
+			handle.l = insertDragbar('w');
+		}
+
+		// Insert side handles
+		options.sideHandles &&
+			createHandles(['n','s','e','w']);
+
+		// Insert corner handles
+		options.cornerHandles &&
+			createHandles(['sw','nw','ne','se']);
+
+		/*}}}*/
+		// Private Methods
+		function insertBorder(type)/*{{{*/
+		{
+			var jq = $('<div />')
+				.css({position: 'absolute', opacity: options.borderOpacity })
+				.addClass(cssClass(type));
+			$img_holder.append(jq);
+			return jq;
+		};
+		/*}}}*/
+		function dragDiv(ord,zi)/*{{{*/
+		{
+			var jq = $('<div />')
+				.mousedown(createDragger(ord))
+				.css({
+					cursor: ord+'-resize',
+					position: 'absolute',
+					zIndex: zi 
+				})
+			;
+			$hdl_holder.append(jq);
+			return jq;
+		};
+		/*}}}*/
+		function insertHandle(ord)/*{{{*/
+		{
+			return dragDiv(ord,hdep++)
+				.css({ top: px(-hhs+1), left: px(-hhs+1), opacity: options.handleOpacity })
+				.addClass(cssClass('handle'));
+		};
+		/*}}}*/
+		function insertDragbar(ord)/*{{{*/
+		{
+			var s = options.handleSize,
+				o = hhs,
+				h = s, w = s,
+				t = o, l = o;
+
+			switch(ord)
+			{
+				case 'n': case 's': w = pct(100); break;
+				case 'e': case 'w': h = pct(100); break;
+			}
+
+			return dragDiv(ord,hdep++).width(w).height(h)
+				.css({ top: px(-t+1), left: px(-l+1)});
+		};
+		/*}}}*/
+		function createHandles(li)/*{{{*/
+		{
+			for(i in li) handle[li[i]] = insertHandle(li[i]);
+		};
+		/*}}}*/
+		function moveHandles(c)/*{{{*/
+		{
+			var midvert  = Math.round((c.h / 2) - hhs),
+				midhoriz = Math.round((c.w / 2) - hhs),
+				north = west = -hhs+1,
+				east = c.w - hhs,
+				south = c.h - hhs,
+				x, y;
+
+			'e' in handle &&
+				handle.e.css({ top: px(midvert), left: px(east) }) &&
+				handle.w.css({ top: px(midvert) }) &&
+				handle.s.css({ top: px(south), left: px(midhoriz) }) &&
+				handle.n.css({ left: px(midhoriz) });
+
+			'ne' in handle &&
+				handle.ne.css({ left: px(east) }) &&
+				handle.se.css({ top: px(south), left: px(east) }) &&
+				handle.sw.css({ top: px(south) });
+
+			'b' in handle &&
+				handle.b.css({ top: px(south) }) &&
+				handle.r.css({ left: px(east) });
+		};
+		/*}}}*/
+		function moveto(x,y)/*{{{*/
+		{
+			$img2.css({ top: px(-y), left: px(-x) });
+			$sel.css({ top: px(y), left: px(x) });
+		};
+		/*}}}*/
+		function resize(w,h)/*{{{*/
+		{
+			$sel.width(w).height(h);
+		};
+		/*}}}*/
+		function refresh()/*{{{*/
+		{
+			var c = Coords.getFixed();
+
+			Coords.setPressed([c.x,c.y]);
+			Coords.setCurrent([c.x2,c.y2]);
+
+			updateVisible();
+		};
+		/*}}}*/
+
+		// Internal Methods
+		function updateVisible()/*{{{*/
+			{ if (awake) return update(); };
+		/*}}}*/
+		function update()/*{{{*/
+		{
+			var c = Coords.getFixed();
+
+			resize(c.w,c.h);
+			moveto(c.x,c.y);
+
+			options.drawBorders &&
+				borders['right'].css({ left: px(c.w-1) }) &&
+					borders['bottom'].css({ top: px(c.h-1) });
+
+			seehandles && moveHandles(c);
+			awake || show();
+
+			options.onChange(unscale(c));
+		};
+		/*}}}*/
+		function show()/*{{{*/
+		{
+			$sel.show();
+			$img.css('opacity',options.bgOpacity);
+			awake = true;
+		};
+		/*}}}*/
+		function release()/*{{{*/
+		{
+			disableHandles();
+			$sel.hide();
+			$img.css('opacity',1);
+			awake = false;
+		};
+		/*}}}*/
+		function showHandles()//{{{
+		{
+			if (seehandles)
+			{
+				moveHandles(Coords.getFixed());
+				$hdl_holder.show();
+			}
+		};
+		//}}}
+		function enableHandles()/*{{{*/
+		{ 
+			seehandles = true;
+			if (options.allowResize)
+			{
+				moveHandles(Coords.getFixed());
+				$hdl_holder.show();
+				return true;
+			}
+		};
+		/*}}}*/
+		function disableHandles()/*{{{*/
+		{
+			seehandles = false;
+			$hdl_holder.hide();
+		};
+		/*}}}*/
+		function animMode(v)/*{{{*/
+		{
+			(animating = v) ? disableHandles(): enableHandles();
+		};
+		/*}}}*/
+		function done()/*{{{*/
+		{
+			animMode(false);
+			refresh();
+		};
+		/*}}}*/
+
+		var $track = newTracker().mousedown(createDragger('move'))
+				.css({ cursor: 'move', position: 'absolute', zIndex: 360 })
+
+		$img_holder.append($track);
+		disableHandles();
+
+		return {
+			updateVisible: updateVisible,
+			update: update,
+			release: release,
+			refresh: refresh,
+			setCursor: function (cursor) { $track.css('cursor',cursor); },
+			enableHandles: enableHandles,
+			enableOnly: function() { seehandles = true; },
+			showHandles: showHandles,
+			disableHandles: disableHandles,
+			animMode: animMode,
+			done: done
+		};
+	}();
+	/*}}}*/
+	var Tracker = function()/*{{{*/
+	{
+		var onMove		= function() { },
+			onDone		= function() { },
+			trackDoc	= options.trackDocument;
+
+		if (!trackDoc)
+		{
+			$trk
+				.mousemove(trackMove)
+				.mouseup(trackUp)
+				.mouseout(trackUp)
+			;
+		}
+
+		function toFront()/*{{{*/
+		{
+			$trk.css({zIndex:450});
+			if (trackDoc)
+			{
+				$(document)
+					.mousemove(trackMove)
+					.mouseup(trackUp)
+				;
+			}
+		}
+		/*}}}*/
+		function toBack()/*{{{*/
+		{
+			$trk.css({zIndex:290});
+			if (trackDoc)
+			{
+				$(document)
+					.unbind('mousemove',trackMove)
+					.unbind('mouseup',trackUp)
+				;
+			}
+		}
+		/*}}}*/
+		function trackMove(e)/*{{{*/
+		{
+			onMove(mouseAbs(e));
+		};
+		/*}}}*/
+		function trackUp(e)/*{{{*/
+		{
+			e.preventDefault();
+			e.stopPropagation();
+
+			if (btndown)
+			{
+				btndown = false;
+
+				onDone(mouseAbs(e));
+				options.onSelect(unscale(Coords.getFixed()));
+				toBack();
+				onMove = function() { };
+				onDone = function() { };
+			}
+
+			return false;
+		};
+		/*}}}*/
+
+		function activateHandlers(move,done)/* {{{ */
+		{
+			btndown = true;
+			onMove = move;
+			onDone = done;
+			toFront();
+			return false;
+		};
+		/* }}} */
+
+		function setCursor(t) { $trk.css('cursor',t); };
+
+		$img.before($trk);
+		return {
+			activateHandlers: activateHandlers,
+			setCursor: setCursor
+		};
+	}();
+	/*}}}*/
+	var KeyManager = function()/*{{{*/
+	{
+		var $keymgr = $('<input type="radio" />')
+				.css({ position: 'absolute', left: '-30px' })
+				.keypress(parseKey)
+				.blur(onBlur),
+
+			$keywrap = $('<div />')
+				.css({
+					position: 'absolute',
+					overflow: 'hidden'
+				})
+				.append($keymgr)
+		;
+
+		function watchKeys()/*{{{*/
+		{
+			if (options.keySupport)
+			{
+				$keymgr.show();
+				$keymgr.focus();
+			}
+		};
+		/*}}}*/
+		function onBlur(e)/*{{{*/
+		{
+			$keymgr.hide();
+		};
+		/*}}}*/
+		function doNudge(e,x,y)/*{{{*/
+		{
+			if (options.allowMove) {
+				Coords.moveOffset([x,y]);
+				Selection.updateVisible();
+			};
+			e.preventDefault();
+			e.stopPropagation();
+		};
+		/*}}}*/
+		function parseKey(e)/*{{{*/
+		{
+			if (e.ctrlKey) return true;
+			shift_down = e.shiftKey ? true : false;
+			var nudge = shift_down ? 10 : 1;
+			switch(e.keyCode)
+			{
+				case 37: doNudge(e,-nudge,0); break;
+				case 39: doNudge(e,nudge,0); break;
+				case 38: doNudge(e,0,-nudge); break;
+				case 40: doNudge(e,0,nudge); break;
+
+				case 27: Selection.release(); break;
+
+				case 9: return true;
+			}
+
+			return nothing(e);
+		};
+		/*}}}*/
+		
+		if (options.keySupport) $keywrap.insertBefore($img);
+		return {
+			watchKeys: watchKeys
+		};
+	}();
+	/*}}}*/
+
+	// }}}
+	// Internal Methods {{{
+
+	function px(n) { return '' + parseInt(n) + 'px'; };
+	function pct(n) { return '' + parseInt(n) + '%'; };
+	function cssClass(cl) { return options.baseClass + '-' + cl; };
+	function getPos(obj)/*{{{*/
+	{
+		// Updated in v0.9.4 to use built-in dimensions plugin
+		var pos = $(obj).offset();
+		return [ pos.left, pos.top ];
+	};
+	/*}}}*/
+	function mouseAbs(e)/*{{{*/
+	{
+		return [ (e.pageX - docOffset[0]), (e.pageY - docOffset[1]) ];
+	};
+	/*}}}*/
+	function myCursor(type)/*{{{*/
+	{
+		if (type != lastcurs)
+		{
+			Tracker.setCursor(type);
+			//Handles.xsetCursor(type);
+			lastcurs = type;
+		}
+	};
+	/*}}}*/
+	function startDragMode(mode,pos)/*{{{*/
+	{
+		docOffset = getPos($img);
+		Tracker.setCursor(mode=='move'?mode:mode+'-resize');
+
+		if (mode == 'move')
+			return Tracker.activateHandlers(createMover(pos), doneSelect);
+
+		var fc = Coords.getFixed();
+		var opp = oppLockCorner(mode);
+		var opc = Coords.getCorner(oppLockCorner(opp));
+
+		Coords.setPressed(Coords.getCorner(opp));
+		Coords.setCurrent(opc);
+
+		Tracker.activateHandlers(dragmodeHandler(mode,fc),doneSelect);
+	};
+	/*}}}*/
+	function dragmodeHandler(mode,f)/*{{{*/
+	{
+		return function(pos) {
+			if (!options.aspectRatio) switch(mode)
+			{
+				case 'e': pos[1] = f.y2; break;
+				case 'w': pos[1] = f.y2; break;
+				case 'n': pos[0] = f.x2; break;
+				case 's': pos[0] = f.x2; break;
+			}
+			else switch(mode)
+			{
+				case 'e': pos[1] = f.y+1; break;
+				case 'w': pos[1] = f.y+1; break;
+				case 'n': pos[0] = f.x+1; break;
+				case 's': pos[0] = f.x+1; break;
+			}
+			Coords.setCurrent(pos);
+			Selection.update();
+		};
+	};
+	/*}}}*/
+	function createMover(pos)/*{{{*/
+	{
+		var lloc = pos;
+		KeyManager.watchKeys();
+
+		return function(pos)
+		{
+			Coords.moveOffset([pos[0] - lloc[0], pos[1] - lloc[1]]);
+			lloc = pos;
+			
+			Selection.update();
+		};
+	};
+	/*}}}*/
+	function oppLockCorner(ord)/*{{{*/
+	{
+		switch(ord)
+		{
+			case 'n': return 'sw';
+			case 's': return 'nw';
+			case 'e': return 'nw';
+			case 'w': return 'ne';
+			case 'ne': return 'sw';
+			case 'nw': return 'se';
+			case 'se': return 'nw';
+			case 'sw': return 'ne';
+		};
+	};
+	/*}}}*/
+	function createDragger(ord)/*{{{*/
+	{
+		return function(e) {
+			if (options.disabled) return false;
+			if ((ord == 'move') && !options.allowMove) return false;
+			btndown = true;
+			startDragMode(ord,mouseAbs(e));
+			e.stopPropagation();
+			e.preventDefault();
+			return false;
+		};
+	};
+	/*}}}*/
+	function presize($obj,w,h)/*{{{*/
+	{
+		var nw = $obj.width(), nh = $obj.height();
+		if ((nw > w) && w > 0)
+		{
+			nw = w;
+			nh = (w/$obj.width()) * $obj.height();
+		}
+		if ((nh > h) && h > 0)
+		{
+			nh = h;
+			nw = (h/$obj.height()) * $obj.width();
+		}
+		xscale = $obj.width() / nw;
+		yscale = $obj.height() / nh;
+		$obj.width(nw).height(nh);
+	};
+	/*}}}*/
+	function unscale(c)/*{{{*/
+	{
+		return {
+			x: parseInt(c.x * xscale), y: parseInt(c.y * yscale), 
+			x2: parseInt(c.x2 * xscale), y2: parseInt(c.y2 * yscale), 
+			w: parseInt(c.w * xscale), h: parseInt(c.h * yscale)
+		};
+	};
+	/*}}}*/
+	function doneSelect(pos)/*{{{*/
+	{
+		var c = Coords.getFixed();
+		if (c.w > options.minSelect[0] && c.h > options.minSelect[1])
+		{
+			Selection.enableHandles();
+			Selection.done();
+		}
+		else
+		{
+			Selection.release();
+		}
+		Tracker.setCursor( options.allowSelect?'crosshair':'default' );
+	};
+	/*}}}*/
+	function newSelection(e)/*{{{*/
+	{
+		if (options.disabled) return false;
+		if (!options.allowSelect) return false;
+		btndown = true;
+		docOffset = getPos($img);
+		Selection.disableHandles();
+		myCursor('crosshair');
+		var pos = mouseAbs(e);
+		Coords.setPressed(pos);
+		Tracker.activateHandlers(selectDrag,doneSelect);
+		KeyManager.watchKeys();
+		Selection.update();
+
+		e.stopPropagation();
+		e.preventDefault();
+		return false;
+	};
+	/*}}}*/
+	function selectDrag(pos)/*{{{*/
+	{
+		Coords.setCurrent(pos);
+		Selection.update();
+	};
+	/*}}}*/
+	function newTracker()
+	{
+		var trk = $('<div></div>').addClass(cssClass('tracker'));
+		$.browser.msie && trk.css({ opacity: 0, backgroundColor: 'white' });
+		return trk;
+	};
+
+	// }}}
+	// API methods {{{
+		
+	function animateTo(a)/*{{{*/
+	{
+		var x1 = a[0] / xscale,
+			y1 = a[1] / yscale,
+			x2 = a[2] / xscale,
+			y2 = a[3] / yscale;
+
+		if (animating) return;
+
+		var animto = Coords.flipCoords(x1,y1,x2,y2);
+		var c = Coords.getFixed();
+		var animat = initcr = [ c.x, c.y, c.x2, c.y2 ];
+		var interv = options.animationDelay;
+
+		var x = animat[0];
+		var y = animat[1];
+		var x2 = animat[2];
+		var y2 = animat[3];
+		var ix1 = animto[0] - initcr[0];
+		var iy1 = animto[1] - initcr[1];
+		var ix2 = animto[2] - initcr[2];
+		var iy2 = animto[3] - initcr[3];
+		var pcent = 0;
+		var velocity = options.swingSpeed;
+
+		Selection.animMode(true);
+
+		var animator = function()
+		{
+			return function()
+			{
+				pcent += (100 - pcent) / velocity;
+
+				animat[0] = x + ((pcent / 100) * ix1);
+				animat[1] = y + ((pcent / 100) * iy1);
+				animat[2] = x2 + ((pcent / 100) * ix2);
+				animat[3] = y2 + ((pcent / 100) * iy2);
+
+				if (pcent < 100) animateStart();
+					else Selection.done();
+
+				if (pcent >= 99.8) pcent = 100;
+
+				setSelectRaw(animat);
+			};
+		}();
+
+		function animateStart()
+			{ window.setTimeout(animator,interv); };
+
+		animateStart();
+	};
+	/*}}}*/
+	function setSelect(rect)//{{{
+	{
+		setSelectRaw([rect[0]/xscale,rect[1]/yscale,rect[2]/xscale,rect[3]/yscale]);
+	};
+	//}}}
+	function setSelectRaw(l) /*{{{*/
+	{
+		Coords.setPressed([l[0],l[1]]);
+		Coords.setCurrent([l[2],l[3]]);
+		Selection.update();
+	};
+	/*}}}*/
+	function setOptions(opt)/*{{{*/
+	{
+		if (typeof(opt) != 'object') opt = { };
+		options = $.extend(options,opt);
+
+		if (typeof(options.onChange)!=='function')
+			options.onChange = function() { };
+
+		if (typeof(options.onSelect)!=='function')
+			options.onSelect = function() { };
+
+	};
+	/*}}}*/
+	function tellSelect()/*{{{*/
+	{
+		return unscale(Coords.getFixed());
+	};
+	/*}}}*/
+	function tellScaled()/*{{{*/
+	{
+		return Coords.getFixed();
+	};
+	/*}}}*/
+	function setOptionsNew(opt)/*{{{*/
+	{
+		setOptions(opt);
+		interfaceUpdate();
+	};
+	/*}}}*/
+	function disableCrop()//{{{
+	{
+		options.disabled = true;
+		Selection.disableHandles();
+		Selection.setCursor('default');
+		Tracker.setCursor('default');
+	};
+	//}}}
+	function enableCrop()//{{{
+	{
+		options.disabled = false;
+		interfaceUpdate();
+	};
+	//}}}
+	function cancelCrop()//{{{
+	{
+		Selection.done();
+		Tracker.activateHandlers(null,null);
+	};
+	//}}}
+	function destroy()//{{{
+	{
+		$div.remove();
+		$origimg.show();
+	};
+	//}}}
+
+	function interfaceUpdate(alt)//{{{
+	// This method tweaks the interface based on options object.
+	// Called when options are changed and at end of initialization.
+	{
+		options.allowResize ?
+			alt?Selection.enableOnly():Selection.enableHandles():
+			Selection.disableHandles();
+
+		Tracker.setCursor( options.allowSelect? 'crosshair': 'default' );
+		Selection.setCursor( options.allowMove? 'move': 'default' );
+
+		$div.css('backgroundColor',options.bgColor);
+
+		if ('setSelect' in options) {
+			setSelect(opt.setSelect);
+			Selection.done();
+			delete(options.setSelect);
+		}
+
+		if ('trueSize' in options) {
+			xscale = options.trueSize[0] / boundx;
+			yscale = options.trueSize[1] / boundy;
+		}
+
+		xlimit = options.maxSize[0] || 0;
+		ylimit = options.maxSize[1] || 0;
+		xmin = options.minSize[0] || 0;
+		ymin = options.minSize[1] || 0;
+
+		if ('outerImage' in options)
+		{
+			$img.attr('src',options.outerImage);
+			delete(options.outerImage);
+		}
+
+		Selection.refresh();
+	};
+	//}}}
+
+	// }}}
+
+	$hdl_holder.hide();
+	interfaceUpdate(true);
+	
+	var api = {
+		animateTo: animateTo,
+		setSelect: setSelect,
+		setOptions: setOptionsNew,
+		tellSelect: tellSelect,
+		tellScaled: tellScaled,
+
+		disable: disableCrop,
+		enable: enableCrop,
+		cancel: cancelCrop,
+
+		focus: KeyManager.watchKeys,
+
+		getBounds: function() { return [ boundx * xscale, boundy * yscale ]; },
+		getWidgetSize: function() { return [ boundx, boundy ]; },
+
+		release: Selection.release,
+		destroy: destroy
+
+	};
+
+	$origimg.data('Jcrop',api);
+	return api;
+};
+
+$.fn.Jcrop = function(options)/*{{{*/
+{
+	function attachWhenDone(from)/*{{{*/
+	{
+		var loadsrc = options.useImg || from.src;
+		var img = new Image();
+		img.onload = function() { $.Jcrop(from,options); };
+		img.src = loadsrc;
+	};
+	/*}}}*/
+	if (typeof(options) !== 'object') options = { };
+
+	// Iterate over each object, attach Jcrop
+	this.each(function()
+	{
+		// If we've already attached to this object
+		if ($(this).data('Jcrop'))
+		{
+			// The API can be requested this way (undocumented)
+			if (options == 'api') return $(this).data('Jcrop');
+			// Otherwise, we just reset the options...
+			else $(this).data('Jcrop').setOptions(options);
+		}
+		// If we haven't been attached, preload and attach
+		else attachWhenDone(this);
+	});
+
+	// Return "this" so we're chainable a la jQuery plugin-style!
+	return this;
+};
+/*}}}*/
+
+})(jQuery);
diff --git a/wp-content/plugins/nextgen-gallery/admin/js/colorpicker/css/colorpicker.css b/wp-content/plugins/nextgen-gallery/admin/js/colorpicker/css/colorpicker.css
new file mode 100644
index 000000000..6f0e570b4
--- /dev/null
+++ b/wp-content/plugins/nextgen-gallery/admin/js/colorpicker/css/colorpicker.css
@@ -0,0 +1,161 @@
+.colorpicker {
+	width: 356px;
+	height: 176px;
+	overflow: hidden;
+	position: absolute;
+	background: url(../images/colorpicker_background.png);
+	font-family: Arial, Helvetica, sans-serif;
+	display: none;
+}
+.colorpicker_color {
+	width: 150px;
+	height: 150px;
+	left: 14px;
+	top: 13px;
+	position: absolute;
+	background: #f00;
+	overflow: hidden;
+	cursor: crosshair;
+}
+.colorpicker_color div {
+	position: absolute;
+	top: 0;
+	left: 0;
+	width: 150px;
+	height: 150px;
+	background: url(../images/colorpicker_overlay.png);
+}
+.colorpicker_color div div {
+	position: absolute;
+	top: 0;
+	left: 0;
+	width: 11px;
+	height: 11px;
+	overflow: hidden;
+	background: url(../images/colorpicker_select.gif);
+	margin: -5px 0 0 -5px;
+}
+.colorpicker_hue {
+	position: absolute;
+	top: 13px;
+	left: 171px;
+	width: 35px;
+	height: 150px;
+	cursor: n-resize;
+}
+.colorpicker_hue div {
+	position: absolute;
+	width: 35px;
+	height: 9px;
+	overflow: hidden;
+	background: url(../images/colorpicker_indic.gif) left top;
+	margin: -4px 0 0 0;
+	left: 0px;
+}
+.colorpicker_new_color {
+	position: absolute;
+	width: 60px;
+	height: 30px;
+	left: 213px;
+	top: 13px;
+	background: #f00;
+}
+.colorpicker_current_color {
+	position: absolute;
+	width: 60px;
+	height: 30px;
+	left: 283px;
+	top: 13px;
+	background: #f00;
+}
+.colorpicker input {
+	background-color: transparent;
+	border: 1px solid transparent;
+	position: absolute;
+	font-size: 10px;
+	font-family: Arial, Helvetica, sans-serif;
+	color: #898989;
+	top: 4px;
+	right: 11px;
+	text-align: right;
+	margin: 0;
+	padding: 0;
+	height: 13px;
+}
+.colorpicker_hex {
+	position: absolute;
+	width: 72px;
+	height: 22px;
+	background: url(../images/colorpicker_hex.png) top;
+	left: 212px;
+	top: 142px;
+}
+.colorpicker_hex input {
+	right: 6px;
+}
+.colorpicker_field {
+	height: 22px;
+	width: 62px;
+	background-position: top;
+	position: absolute;
+}
+.colorpicker_field span {
+	position: absolute;
+	width: 12px;
+	height: 22px;
+	overflow: hidden;
+	top: 0;
+	right: 0;
+	cursor: n-resize;
+}
+.colorpicker_rgb_r {
+	background-image: url(../images/colorpicker_rgb_r.png);
+	top: 52px;
+	left: 212px;
+}
+.colorpicker_rgb_g {
+	background-image: url(../images/colorpicker_rgb_g.png);
+	top: 82px;
+	left: 212px;
+}
+.colorpicker_rgb_b {
+	background-image: url(../images/colorpicker_rgb_b.png);
+	top: 112px;
+	left: 212px;
+}
+.colorpicker_hsb_h {
+	background-image: url(../images/colorpicker_hsb_h.png);
+	top: 52px;
+	left: 282px;
+}
+.colorpicker_hsb_s {
+	background-image: url(../images/colorpicker_hsb_s.png);
+	top: 82px;
+	left: 282px;
+}
+.colorpicker_hsb_b {
+	background-image: url(../images/colorpicker_hsb_b.png);
+	top: 112px;
+	left: 282px;
+}
+.colorpicker_submit {
+	position: absolute;
+	width: 22px;
+	height: 22px;
+	background: url(../images/colorpicker_submit.png) top;
+	left: 322px;
+	top: 142px;
+	overflow: hidden;
+}
+.colorpicker_focus {
+	background-position: center;
+}
+.colorpicker_hex.colorpicker_focus {
+	background-position: bottom;
+}
+.colorpicker_submit.colorpicker_focus {
+	background-position: bottom;
+}
+.colorpicker_slider {
+	background-position: bottom;
+}
diff --git a/wp-content/plugins/nextgen-gallery/admin/js/colorpicker/images/blank.gif b/wp-content/plugins/nextgen-gallery/admin/js/colorpicker/images/blank.gif
new file mode 100644
index 0000000000000000000000000000000000000000..75b945d2553848b8b6f41fe5e24599c0687b8472
GIT binary patch
literal 49
zcmZ?wbhEHbWMp7unE0RJ|Ns9C3=9Vj9AIEzQ2fcl$iTqFpu@nxzyOkGU}6ekWUvMR
DQN9XW

literal 0
HcmV?d00001

diff --git a/wp-content/plugins/nextgen-gallery/admin/js/colorpicker/images/colorpicker_background.png b/wp-content/plugins/nextgen-gallery/admin/js/colorpicker/images/colorpicker_background.png
new file mode 100644
index 0000000000000000000000000000000000000000..8401572f1939a1a24c1963513573b0194ad36ee0
GIT binary patch
literal 1897
zcmeAS@N?(olHy`uVBq!ia0y~yU`%0PVA#OH#=yW}aad$60|SF(iEBhjaDG}zd16s2
zgJVj5QmTSyZen_BP-<dIW#P$G8wLh;Zci7-kcwMx?)qm(hf5uJSe$xv?a~#cD-=69
z*OoJH?q7I!Yk=2+*G`&KeljqBj$})_8M@z9bF*~Xg1h}1Z=Fsmy;NH2De8G-;@WwS
zCmNSK{r7x+!tSvhzl@N}y2pF={VFU{jW_Q;sx&8a*0ZfYPWSF8dt9Z-uz}P6ah1sR
z?Hdo?x6Lo$D&qO5@b4dg;oc-ahUc%^ckJuZl`Egd-(h&*XhrJH2Nz=FmRWQcny>4B
zT&2IxwwUQgM|)wd*!AUwXM>xAyMr6PN7ujbH_yNKr=Y&xJ|{n4TJiv!jI8Y2yZh_^
zFJ|YLTe4bYzK;Aof5&^de|K7M&%4XjFK^GsFK=gJ+Q56`_HFK!TMbW?M>*c}E!}tN
zSMlz<dEq^bW*VkuTfepPew^BOk>QHt1V$D~21m9P0p(Yj%gV|Q9X#l`!%AX?+)-P}
z{=*q2T$^v^JWY<Tf81-(@jP|%$M4IfIeQ*IFL?j%?t`6y&$83>_WzBEvpkV>Mr~=a
z_T1#d4-1}3#P6@$d*b<p*I)hWV@*%(zyAE#`r5N+o^GFi`flmJNl#Ae?+f7X+Fe_*
z<J#o%4K~m6|NjYpu`O@L)>W04TkQ9LefGKk`Ob;|O^v7X#%*elTKZpX{<~xIWZK_(
zx=pY?`@hD<!oTT^>SR509izVd9sx%-N4E(NgI;nQHSv@dycKtB^ZL@m;K=64=GZo^
zuCd?H(2Yg%)eS|EJnItiuSM_E7@K%n%T6@)C^RcHD;%D=PeJ)aKzj+V<@4uyb0id-
zcv8QxNJ0&O$yI7U{*kQgGGSrQJO$+w3MUj!T(~5j!Xo)<!{o}S^SuI&ZAMj1JqpgU
zzd$6f-=WimrN(_A6<srK$wPG*34(MOaNld~QE(PrCNA+r{c+(AD~Xod?d|(_?_6HL
zd*>Rn>GLmr6nVCZ)v|nTwu#i*KP-E6E_(hiD~`<7D?1TWHJSU4;`y}A1~PoLf@e~5
zo6bC~`ov!D>^5N`SFoeo1jh-E6Bec_o!~IKq8RI(XVe!D_K*)N#6zI4T6hlZ?`8$(
zlM1^JayRizW%;?vQ0YW~+6hbjGo~Q-+k$-$GL2Qzv5l9-@;RI1y~IWZXGQ<*NfV5>
z?UZ$Oo3L=g+y}E*n|MNBfP%L41*cIH4+!d7yET9U0!&u1+8x^nGTeQ_@nand&ihJu
zEx)H*fYh>nX_jBruHY;R3OG<qID7AEn^WApKo}IxclaVF2&SxXh@T*svcVY?n{E>p
z+P!q$ySC?X?QN4Lp4KlQw^@CGN7dXjo2&9#IE<!T1O@x63&Nnl-e7y)dbM>|kAkzJ
za5PB3Kom@J-}~OC;B0E0;^;PEA(OD9+k}IBk}Q%el8$Y^mWY47BOvM6#^nRzTEW7u
zZCVNM&XX2(i6A>}gVU4f3=X3vo-$BsFfwLhk$iPiv01^HRgKl|*fx--kApp-p%CkQ
zt};<?ufmS(9uA`^Hx-|=NwP?C!8Lzynoyi4aK+GxMbc}B&@;p1ui1Ahp8)xUTQ35X
z)<BrUC}g=lC|(nfa|ooYa6Zo=kg~(Z(ay+?Me@^Ea9AwKKC#pOz{~1nmkEmT`ae3W
zIE+B>PdF$LS2%-0w;B?<@Kme-GEwr$+MdV#y`ZcFN+8g*@+^qm^7)c^(u$x+ZR$|~
z#qv{#MLD*;+K;F1Y*kV|5pd#)7$j}Ai8sCJJpr;1gu$A4?8Q^eT|nswlr9BRR-ADG
zMe1Rlb!v})v<fPn2sjopK`=!C3_+pKB3Y*h&Rq&80*p@RODi|={8R&_NZCu~ZBO<X
zTt`XGZPPjxlur~a?CbA$-hP|+^5VQ3QETc?Z+pD#^Pk6#Umfd=<l0v^JMO5h$f(M3
zu{s`R+IKu=cbRU@hi}%dcI_Xf<}=T!p5VSX(89vPqSq)#>DWt|=&N_18a7wNnVtQ0
zT~@67XlBp*bssGc>}0Pro89`bAfqVc>CMgQ4`;96Z^rR&eQ6Ja!vscw6b47O2jWe4
z>JC4B^W@2sFH^G^%#=;b?B*}OZ<l5JXU*=K2V0*q*Y7WXfA9Cp++2p7bD!SM{hwj`
zMPqN`XSbO87`qQaG4-9V?>;DEJFsj?zWQIAb^DKfE%|w4|LiYrKbB?YEsxzI$r#g7
znDcRZ`tAqoFEOVv75p=dGqafUZo>H^b3fJnIIr3h-uyd`F~^JR{o@_`dU^NNe|yl+
c#KYio_Py8p$<LY?7#J8lUHx3vIVCg!0I6>^umAu6

literal 0
HcmV?d00001

diff --git a/wp-content/plugins/nextgen-gallery/admin/js/colorpicker/images/colorpicker_hex.png b/wp-content/plugins/nextgen-gallery/admin/js/colorpicker/images/colorpicker_hex.png
new file mode 100644
index 0000000000000000000000000000000000000000..4e532d7c65393fe56d7463e1da3faa591f03de84
GIT binary patch
literal 532
zcmeAS@N?(olHy`uVBq!ia0y~yVDMmIV9?=UVqjqKe3co)z`(#+;1OBOz`!jG!i)^F
z=14FwFeoH@1o<*BROvD>G)!e+_;H<qp(BWaq0p6q;Z+&~gC#oygW^wS_0}*32F6*Q
zE{-7;x8BUyn0?4W<k)@{_Oug8j*paNnWQ#(s=u64@77)4f8odVJ0Wwr9t7O!+946c
z|0d~Wfx`9fpo<Ria^HRBPqN<Y|32wXZQLZ4K#|7jQ-YMb7X7U|&$H(8OAdy8@0;hc
zG$?RXG;u2CRZMy?d*zf>j64U*b}x0l`ueNSgxv>D^v-8|^t$}bnzYR`Q+)(kjI%#~
z4ga`?VNIC!<%sf?C)fBg{IHT)Bf8#oVegbrB^RTvaXDutEa!?&e8K!<U51ey^NG(k
z=ZkY!o#rSzv&NU9;dyM-t@qz`ouk+~7y^!JJu5EeTRKI5vM2M7HS$}^*Cki|Su*7o
zg9khFC*I$8H+nCgv211PEVC}r4KGVpt)K7XykpOPcf-?0rwtf)7gZk<cvE4s>8-@q
z&l3IyOGVBbJYRVC-7!Ps4Y843c{2O;r=K}6ug!USkg4FCZD*7hZ*Tk)vHmq@@jWqa
ztB~`HCwi}p@p5(fx+H`pHS9%@*7Tsi>eo$=i%ky-lyjXPRLB6ap?GuRZNpd34d*57
j-c+L^_Trk*vp+lxmh-RfJN!OOiUAbeu6{1-oD!M<(lq4X

literal 0
HcmV?d00001

diff --git a/wp-content/plugins/nextgen-gallery/admin/js/colorpicker/images/colorpicker_hsb_b.png b/wp-content/plugins/nextgen-gallery/admin/js/colorpicker/images/colorpicker_hsb_b.png
new file mode 100644
index 0000000000000000000000000000000000000000..dfac595d017e279ff670df2c816e02d922660d9f
GIT binary patch
literal 970
zcmeAS@N?(olHy`uVBq!ia0y~yV6bCgU~uAKVqjosaQ?KCfq{Xuz$3Dlfq`2Xgc%uT
z&5>YWU{FZ*2=ZlMsM2L%Xqd{t@Z&lILq`w;L!m1J!>cp~21|AZ2F0Ju>aAf649o$Z
zE{-7;x8BTh^p<v%Xxo1`XYHd|8x|dF4$QhX<IA=R!-@|9JojGRZEj*!T)|r3s^GC=
z=L`M~^#^9Nh-k`Pn$*0Z^O=CSzFU9ZrlTpFZF};}Z_ePo=9zx$?+1gtv>ELW=bk;|
zJR`y2#AlleVXIaZ*_^+B_ikXjorT2-MuyXy91;r|9(=6GaD8s^j#atvy+CMa;X>vE
zU%#5Fy>n1_;PKV{MaAa}e7kI4zkdBX?f0KQe}4Sf@%crc^@g9)ZX!oRv`VY1Z{NNx
z-F=kju!XH{?u%pzwy+ZIP_@YuRaPdJ@iEk8&8mI!@L}S@fQrL~wY9Ye6F$5?c<{i1
zhOLKhzsp<mLM_y6y7QNb1vjj$*%`J*owX~ftJ@c&SH1V%%a<=*lmfM;|DIiXI9%;&
zibl!I^NY(ek{0P195DDcagj#WtYe#U{QdjSKNn_Mm}%aVI#W-C%k+Fz@S+r>nP<~%
zb$%BnD$4cO`!BcV{x@5zys%N~;mMP`&N49cti6!_Z{fm=7Xuvy7#0+ih8pu!%g^cl
z7oqWp=Wt9+TvU3!nL&1T_EfLd=RYS-oH%*%<oyM48v<OF1Q|G@x4jHb$a&G};uJV#
z-8#Lt#CPxCr$&DJS>uzw`JRF7qH?$M&p$5>I{Bx(re=@y=hYVk|IW<4wI<kl`DzCR
z2c=!fFL(L9SarEDZn<b|XlT^>tACpe-h2;kuM5^GI$Za^->1#$i>7B$FGH-`gWA8H
zkFI*3dukB3djH(HiI3)Wy2UDg=$B-?bM+R7&7%EhI3BFK=Jr7Ft|`+x!Ghj~Y?c`1
z53}47)TEYvii!;oxz6#Y-R;4$2${p08$ZOZUb$x~Q^WPws#iFCJTJBH+$km-<nI1N
ziqU<!=Q_a*?zuk70V_i?Oquxk`L{?lZVQ|1qx@h-so35`DK8OM*T73Jx9FVS7?D#}
zcJ1DB<`-$Xxw$XDx^59P2(L{~XJ^>9eY?52`AY+)s;ym8^Uclny?M9jTbt_1CsK{8
zR9}Crxbts9jB-G2)YrXxZLdVc#x6a~@#3o1uislXH7R`m{{3vbi!@`l*|h1?851%y
zPl`z>^)^UKgmiaz^ZK7KWva5(@O4|TcCvD#+k?9|B-~2gG#371QxV_$Y{#o7QjOE>
g8FjO7t!HHL-}2?IQO5Qw3=9kmp00i_>zopr0LRh4RsaA1

literal 0
HcmV?d00001

diff --git a/wp-content/plugins/nextgen-gallery/admin/js/colorpicker/images/colorpicker_hsb_h.png b/wp-content/plugins/nextgen-gallery/admin/js/colorpicker/images/colorpicker_hsb_h.png
new file mode 100644
index 0000000000000000000000000000000000000000..3977ed9f21e3186eefd37b198a7cc3f8de6c69cb
GIT binary patch
literal 1012
zcmeAS@N?(olHy`uVBq!ia0y~yV6bCgU~uAKVqjosaQ?KCfq{Xuz$3Dlfq`2Xgc%uT
z&5>YWU{FZ*2=ZlMsM2L%Xqd{t@Z&lILq`w;L!m1J!>cp~21|AZ2F0Ju>aAf649r!Y
zE{-7;x8BS=@AcS0;=umQpxo@htQBt$x`}1yepfmg{B;M%z6N!EE<KK>b^U=aUCZ{q
z(Eh=(>G;v^r4=`i`6ddA>cn*&al5T{^Y9gc$y)^P-aNPACr7H<&qIG^)crKxzu@J|
zml-BpYg!j+)R;)^-Mu@R&sMJgGlKvJOT)njj17-1!Y)?Mt3Nz*$$A0TK#zsY2d-Wf
zReTqs_0;pLUdg7f4_rkLY|ZPwdp9;v<m|gsr%oL@)TG;PVs+ho*9%7XC6`~iE&llB
zOUv%blP4cc*l;l;qS#|`^l>YD`|W~d+|L3-=ccb(waRQZ2LnTiZ}#@vXWQF7EOOL%
z+MQf3`mS1~!sxIx=w#~VYZogSE|lJ_eD>*6(dL^xpKKU<xSJ9s+7fr932_y#x#{z4
zy3XUWw6teOQ@J=S&-*ODylT~>{c19NuXpir>`a@)bvk0E&#}LJkGqNs3If)K?Q~#Z
z=&G)6OZ;+5#r5Bv33_@3%GTDe9o`#G@9gaKP+?+N_%Lza^T78$Mw9Q!YEM5Krpj5q
z_KPj|vfc9XM)m9=20LT;7&c8iEyA!P#c1Vgt18J&I@3=-^-wV~F=-LlwQrxDwRQH^
zC}m~kG`{17-@kuv*>L>Wv7C^P6?bkuwK%soAth3bMNx$7p|iQUImf~X9kU5dFJ~H<
zn_quf;$gGmzU1GP6*hlvKMT6N<>0wrw=b@&h))-d4HOBRe)aLj2&0J!e1EsaJ)hj^
zvNI@=uhwq<_g;o*w+D|;n|JM(vsdkWu<6(Fmzs+2jyfGQXWA#Y;3&t0zJG2Dy5C7N
z-skw?){v$A!0z?$-@ms;`3kVqy!i2BN7(9v4QY41-uIqs5quH(dfU?A8*lseMQ9l8
zT=TEC@}+d+{|g*<uDuRkDbjs9OD%jUgMpQm*Gj<|=bzi_>VEb7QCH-&UhqT7tS?fH
z;R`QkvfO%Ww%TpM)vS$KEH>$L<CGVC<z3a=Ai5<&XV+r;RjYE1dl}x%ayu~XbN&VI
zr9uo-yi}#F_PRM#|Ks_Vn*RLt_WT`tH}5^$AowEU-RtP+=yP+wNHKnX{P^KR#k`!n
zyj$-LP6#d&6mSg`aa}FA;i-VG#GcxFHx5j2cXxm0x2m^ctJ$^d*BKLXbI%4Egh(;o
zzW(a!)zI5=RlN<*zW$sar~F}+xjR?yf%cV}O)rjcAA9}LU4Pd*%hz9|7!SWF-mr32
bJsZO&D_bF#nFY2C3=9mOu6{1-oD!M<Az#;$

literal 0
HcmV?d00001

diff --git a/wp-content/plugins/nextgen-gallery/admin/js/colorpicker/images/colorpicker_hsb_s.png b/wp-content/plugins/nextgen-gallery/admin/js/colorpicker/images/colorpicker_hsb_s.png
new file mode 100644
index 0000000000000000000000000000000000000000..a2a699736c24b34c60afac8cea399b2c4afcf9a1
GIT binary patch
literal 1171
zcmeAS@N?(olHy`uVBq!ia0y~yV6bCgU~uAKVqjosaQ?KCfq{Xuz$3Dlfq`2Xgc%uT
z&5>YWU{FZ*2=ZlMsM2L%Xqd{t@Z&lILq`w;L!m1J!>cp~21|AZ2F0Ju>aAf63@nnK
zE{-7;x8BTh^thcMay&k(B(y2lc*#}W$y>9-%U^aWocOTi?Gn+0i`ltlIhy!dZmvGw
zr14^pM#UEmIkOyxvMbk`z8KuR6*VQ3KbSx3<eRL?W$hW$)l^^J*{65&mwNkzef{6n
zYk%(Bb6@;S+Gar(#wg*#1{RJ2%a<>owfWwqOHIrTe#@D8x!4<a?Xp@Mb-eJ8m~x=K
zBG2IkoA?;q-Q7ECf<>0Tc(r}a;<fEwYrM1fZroUyk<p=Y(noEwk6QD=gs*G0?HZq^
zOYFa2Us>sSc}v`Sc?pS(tgNW$XyKzGT&zp3wXR!qamDSoVyVX&A5^O;OQjjjeD>_w
zp@$m|CY*R$l$)E&&d$D8tlQvOUtIr{s*6{jNA#56e^|n``7y(U^Uqxm3w0j3a^=do
zbLZY2@Bdg)Q(L<?K*QtkgjF-%Z9F{j#_h-FWy^k_@7ffhqjQ?6jk7;MV~UU3*|g2e
z_y7OdE&j6P*P};HBEj+T^Zk|!{xp-|aSAWbS2?qenPJVB3Wq?ses#HST^*eYn|W8S
zhR#2KeA5~Yo~>P-kIaQquQM`)X&u<GZ=c=lvuP$0@9yvZ-kZqq;K>t}c#SD73%AuN
z?>l11)2%La=#7QEs?21srDo>l_kH~2<mA#eNAAAsclpcLTWyI~waXmW_4V;F6mZD}
zGaQJ~yMFcR)Di{HNo&`xbz5vG!}tE(yGbgUX0uxvd3kv~!Y^-H*K)J)-~I{z%F4>7
zc`e;^Q|EYL*y_;!3N4*z11?6r>D{T3BHUl|z3z#gTfYCU@$tet_xHZuzI|QS_tLdd
z=@M?Mb4@diBE8aWeP6u(Xqaa>yL?gL*~s@LyR%&!qFo+%zLY*He|>obPh#|5NiM}t
zf7k5Z?Z)!YP^ls6lgoo!zutB*WStal%ziDU%2aW4TW(s~v6m%frKP;pdl@$D*(1~G
zvMTlsQ#fDyVjtJ59S*%5f4BrS?q{u8vxcSFaURE+^XEUiEI6e-{e<ZIeT(!w|GGG=
zJE+Xzw6C%1+TFD$xBYr>db*V05B|;r*B?JF>$;Q_z4qif5r$c_XNP*RSlxa1TtEI4
zOU;cN0s4XgDYIUwGKofps|%iZS`?+q^l7)$Dm5n2yQQT<j7Ouce>Cp#sM|kZ#dFrO
z?c29kS5>jGvoAFa-4GX|An?FzX_ivJp4Xc<Z)PyCwY4=gT*#|*;BHRyUOD;s^}nat
z%gak&W)MtZ-D+oLrM0)CdCA`88mGQ~dHK8iz0yPv1%VG$d+p}uXJ@b8w@Wy%@N;2d
z;Y52$Ny&)^ctV93`%-^Co_hZH?3k!1t+)_VL4j*+*I%<XJbak=(Dlsa+q3W7pWYYp
z$L+zyt6e3gxn@$SOqZTNf2GPa=hC<RRh<s5`F&a{O#HWR3r4xe8F*<gs9O76^!=`?
k&W1PY3#QLJ)6dA@w!1%OeI~~N1_lNOPgg&ebxsLQ05RGY=>Px#

literal 0
HcmV?d00001

diff --git a/wp-content/plugins/nextgen-gallery/admin/js/colorpicker/images/colorpicker_indic.gif b/wp-content/plugins/nextgen-gallery/admin/js/colorpicker/images/colorpicker_indic.gif
new file mode 100644
index 0000000000000000000000000000000000000000..f9fa95e2825eadd2d779ad270a71eddb94f94748
GIT binary patch
literal 86
zcmZ?wbhEHbRA%60n8?6jX=xc99sU3Re+C8y#h)yU3=B*RIt&a93?O+1CUu{dm8a*5
p9Vpz=mC>*z#`S0JT+y^y7G{bSek+6P-f?H&^tm2zPm-0v8UO&78!`X@

literal 0
HcmV?d00001

diff --git a/wp-content/plugins/nextgen-gallery/admin/js/colorpicker/images/colorpicker_overlay.png b/wp-content/plugins/nextgen-gallery/admin/js/colorpicker/images/colorpicker_overlay.png
new file mode 100644
index 0000000000000000000000000000000000000000..561cdd9c59a498b499cbfd1295dc4d2037e235ff
GIT binary patch
literal 10355
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

literal 0
HcmV?d00001

diff --git a/wp-content/plugins/nextgen-gallery/admin/js/colorpicker/images/colorpicker_rgb_b.png b/wp-content/plugins/nextgen-gallery/admin/js/colorpicker/images/colorpicker_rgb_b.png
new file mode 100644
index 0000000000000000000000000000000000000000..dfac595d017e279ff670df2c816e02d922660d9f
GIT binary patch
literal 970
zcmeAS@N?(olHy`uVBq!ia0y~yV6bCgU~uAKVqjosaQ?KCfq{Xuz$3Dlfq`2Xgc%uT
z&5>YWU{FZ*2=ZlMsM2L%Xqd{t@Z&lILq`w;L!m1J!>cp~21|AZ2F0Ju>aAf649o$Z
zE{-7;x8BTh^p<v%Xxo1`XYHd|8x|dF4$QhX<IA=R!-@|9JojGRZEj*!T)|r3s^GC=
z=L`M~^#^9Nh-k`Pn$*0Z^O=CSzFU9ZrlTpFZF};}Z_ePo=9zx$?+1gtv>ELW=bk;|
zJR`y2#AlleVXIaZ*_^+B_ikXjorT2-MuyXy91;r|9(=6GaD8s^j#atvy+CMa;X>vE
zU%#5Fy>n1_;PKV{MaAa}e7kI4zkdBX?f0KQe}4Sf@%crc^@g9)ZX!oRv`VY1Z{NNx
z-F=kju!XH{?u%pzwy+ZIP_@YuRaPdJ@iEk8&8mI!@L}S@fQrL~wY9Ye6F$5?c<{i1
zhOLKhzsp<mLM_y6y7QNb1vjj$*%`J*owX~ftJ@c&SH1V%%a<=*lmfM;|DIiXI9%;&
zibl!I^NY(ek{0P195DDcagj#WtYe#U{QdjSKNn_Mm}%aVI#W-C%k+Fz@S+r>nP<~%
zb$%BnD$4cO`!BcV{x@5zys%N~;mMP`&N49cti6!_Z{fm=7Xuvy7#0+ih8pu!%g^cl
z7oqWp=Wt9+TvU3!nL&1T_EfLd=RYS-oH%*%<oyM48v<OF1Q|G@x4jHb$a&G};uJV#
z-8#Lt#CPxCr$&DJS>uzw`JRF7qH?$M&p$5>I{Bx(re=@y=hYVk|IW<4wI<kl`DzCR
z2c=!fFL(L9SarEDZn<b|XlT^>tACpe-h2;kuM5^GI$Za^->1#$i>7B$FGH-`gWA8H
zkFI*3dukB3djH(HiI3)Wy2UDg=$B-?bM+R7&7%EhI3BFK=Jr7Ft|`+x!Ghj~Y?c`1
z53}47)TEYvii!;oxz6#Y-R;4$2${p08$ZOZUb$x~Q^WPws#iFCJTJBH+$km-<nI1N
ziqU<!=Q_a*?zuk70V_i?Oquxk`L{?lZVQ|1qx@h-so35`DK8OM*T73Jx9FVS7?D#}
zcJ1DB<`-$Xxw$XDx^59P2(L{~XJ^>9eY?52`AY+)s;ym8^Uclny?M9jTbt_1CsK{8
zR9}Crxbts9jB-G2)YrXxZLdVc#x6a~@#3o1uislXH7R`m{{3vbi!@`l*|h1?851%y
zPl`z>^)^UKgmiaz^ZK7KWva5(@O4|TcCvD#+k?9|B-~2gG#371QxV_$Y{#o7QjOE>
g8FjO7t!HHL-}2?IQO5Qw3=9kmp00i_>zopr0LRh4RsaA1

literal 0
HcmV?d00001

diff --git a/wp-content/plugins/nextgen-gallery/admin/js/colorpicker/images/colorpicker_rgb_g.png b/wp-content/plugins/nextgen-gallery/admin/js/colorpicker/images/colorpicker_rgb_g.png
new file mode 100644
index 0000000000000000000000000000000000000000..72b32760a5c40b7ab834d176ac588750a06f13f2
GIT binary patch
literal 1069
zcmeAS@N?(olHy`uVBq!ia0y~yV6bCgU~uAKVqjosaQ?KCfq{Xuz$3Dlfq`2Xgc%uT
z&5>YWU{FZ*2=ZlMsM2L%Xqd{t@Z&lILq`w;L!m1J!>cp~21|AZ2F0Ju>aAf649uH7
zT^vIyZoQd#-v5z<$np4v8*;V>uHce$+3XcycCoEO>Dc9CyUUYRCb}dqlCJ;5tJfLG
z7bo(ceZ5>s|7!NliZM4XO;{lqGVR35jaqBpExe>VC18>D8<W%C{3$a|{{HmCZ~6P+
zq=bZqWtj%i98C_FOky=eeAM@@Ufs>Y(0!CijYo)KP1x$lrIS^Dc1>MT-l4#;VhQts
zr%zRt?#8XZ9&mN`lEq)0l`myi)mBtgq@)~q{#ms9sE=B4LBWNTmu=P;7Trl))s%YE
zLnTOS>bGy-`uh5g9Y4N&`SR7z7ED`rcB+rs*PEUUJH(H!N}W7;^6%fjZ{NQC_U&5}
z-{+ry{`~p#_3P~Emsg&vd|se1b=|68Ckq)Sc&IQrJKuUE#!#_}XZq=*24_xwEMz}i
zapxVsNa@tmYuBz7&Cgf$3|hW$-L6>~7v8ILG%0ZC&ApbU&d9*ww0qg&&B6?ucHXJ(
z`ozz-ZrwVq$Fpb8wmENp{*6><-TwXCu6Lf&o_?08;r#Q>w{v#pe0%-t*QZZL3@Mu<
zKfd#u+ZI##(`&l3_9mUZMlOL*D(z(WqCJB|j&A;3y#02p-jVqZ@n5C~==ce^%zD1{
zX0`+yLs?mwn7H`kj~3@Yi@1LM@})p#`pFcDHpZrmeThts3=BM(+cX&jbWYpZ*}W1!
zwdqZXRdscBu35CvOrNDer}6{xx0mgfeVG{*JXNY}_uP<w-Lu+fDsU`czMP+*pW(v&
z`|llU%&$lvOJF*^X_Cr9ixu}JzJ^Zp`gQ%SW#qK~xmV-$WxJo3ZuSyqIk+a*^l?#X
zwav20b(7CezAJaW-{nxrCHLloVuA+Zf<Hojx_rE@e6*0`_N({m>K!Hhtxmd17nGQG
z2rym=oX@c*WUnhrl*<BFmJMo5Tcdk_|Nfm}vPzwauYGZ5t!Jo`Yprvv&_9<03l1*M
z+~vn_D#kT)(^|XTJ2C_t|4-n!^W<}F+<M8|S;1vX87^GA)}|>a!OLdv?{j75hqoUD
z;*}Ckn0!=a;`KZ}nPZBV>Sm$FU-_mR)R=ffW&M>BUX<2!HmvE)FwqKUyXNAs_Sdy*
zVhlMsIcwIenbFK~V$zbB_-WIoEYlO~UfCQW%;@>}Yild(Uj@!x-{Mr6!gtPbVyP45
z+8E)Z$Ry%w>RI*k>En0r)_qFM%kyJ5-k`#?%3NvlX0KNjHhBpWJ{=9$q#qVYFr=lW
zm9!n4#1XQ0?YvpDR!JS4&T+zR{eO@nZ7q{LSnR%iRh-gy$G~m5+`dcmc~<x73s%&v
h`}}mS#y>d*6Ysk^Up&3`FfcGMc)I$ztaD0e0sw#a<F5b!

literal 0
HcmV?d00001

diff --git a/wp-content/plugins/nextgen-gallery/admin/js/colorpicker/images/colorpicker_rgb_r.png b/wp-content/plugins/nextgen-gallery/admin/js/colorpicker/images/colorpicker_rgb_r.png
new file mode 100644
index 0000000000000000000000000000000000000000..4855fe03f8ea8d88b4f8ae625c7958eea65208ac
GIT binary patch
literal 1066
zcmeAS@N?(olHy`uVBq!ia0y~yV6bCgU~uAKVqjosaQ?KCfq{Xuz$3Dlfq`2Xgc%uT
z&5>YWU{FZ*2=ZlMsM2L%Xqd{t@Z&lILq`w;L!m1J!>cp~21|AZ2F0Ju>aAf649pum
zT^vIyZoQf5=q>Fia{T_WRN-WfZP^iu%N9ypzv0a@Z^?0`AA(wPB0L;jVvZl4MV>gg
zW!{!Y%LR0J8TCVhRs@>l`iMwxN$L=5xtmk6d1HI;>0Ptc9A}nHduG_4_>A{+`m?j|
z_S_ekJ9n<xY~G$Und1}9X6w#AE9JNA@IwX011Uz0jJ+%k%a*Av_EPu!B&ZxXU!d=C
zfG2yy<;%e?yJGdiLqq*1^_j_KO<dRib>&LUrFtArCQ^6r-(SD^%PRE?D)osb&puX|
znVVm~cJ12r>%}``6a)&a=1R$5xpcMo?c296)72Rj^f`V_{8;hl&!0cnZ{EC~@#XO=
zt-}T%o0(T%U1c#tS8T~8(NKFKPKJ)7Nw#t8tIC8Jx{fZYTXOtyp@mG^=AGNOZ(q7J
zH9Ncec_nw!&aB{&(#<(WQzyO73BTSP!QOPCf6kmaQ?#c~pZ@vt=aVUy-j+@O>XN!@
zXT&t!dY{v$X3m^>^X^?)8JRh=XK%j!c3mG|_sy8|$*Wd)$;h1&%`e~nZHAE5<lk{S
zV(k6>>~eF?oI7VV_uM8s4e`AxMIFK{g)@9srJGOP<`z6fSGnW-!veF}wbmw6_V3hu
z+-#EY&fDLgpP^!J+}AfP=b!K1yZ35OQlyzs=LHkp`k<)jXxBiW<(G4FbG!Im13msP
zs|w9ptkE^)yVK=~UQ07(ZHv$;y8iX+R*kN()mtNUuDx9sW~#<H|9rTHNWh;J^E0M~
zPW<$x-@15`%HP|e^?OQm-o194daiIz;N@4(&(GUx-1Bfre2P(u_2HWCqde++&%e(X
zU`!Tl3}4l4&-Htrhl0=Q{W<x{m;UbBzu%EX%7sB(so|EEaO0#eY=RjAjckGkW^qjM
zH+5Qg;o?O>-^(nHPd@)Vdek*gq;g(<Uf#Oo74`wDtJlv{m2BepV|wuN5<d~wK#`^U
zGbN1H+IcRQc6ng0!X!Sk=k`;hq^R5zYeX2{lvyuxS#bV+y|F>SK}8|H$KEWfjC^Z4
z9egi+RAE}AAvKjFr0(j0SsYikys8jtT(z-JUvNUmwhbE;Y`0AMvPU7K%ZH_}zdza9
z`n|K_yyuc_KWj^ueq7oACBcA$;b205vTVGP!d?63y|d^2+ptCD`ts0;J^F$gE0SuH
zlAP{$=nDqO$xoj?{pqP6KXw>)G=ylJP&F`9>yC+x43yfa#>DCwbn3+m4Thec9u3_H
zVaBuBUq5`<u#7ccNg=fQ-|^`jS4xVHOyJm4vRly0UC!WX-IQY!;@0eX^+Tv}_inDa
emX1G+8J12dS|&B+(HaH@1_n=8KbLh*2~7Zbf8UG%

literal 0
HcmV?d00001

diff --git a/wp-content/plugins/nextgen-gallery/admin/js/colorpicker/images/colorpicker_select.gif b/wp-content/plugins/nextgen-gallery/admin/js/colorpicker/images/colorpicker_select.gif
new file mode 100644
index 0000000000000000000000000000000000000000..599f7f13a6854d198f501588948ffcf97bf9f365
GIT binary patch
literal 78
zcmZ?wbhEHb<YwSzn8?Jyz`*by3>X*~6o0ZXGB7YP=zv5)@(fJ!Q<^iRAIM2WupM!m
bel+sU&Dy!`4Kq~>qDpK6rfIk_GFSruQg;_i

literal 0
HcmV?d00001

diff --git a/wp-content/plugins/nextgen-gallery/admin/js/colorpicker/images/colorpicker_submit.png b/wp-content/plugins/nextgen-gallery/admin/js/colorpicker/images/colorpicker_submit.png
new file mode 100644
index 0000000000000000000000000000000000000000..7f4c0825f53cc4faba8fc9e043502276765da1f5
GIT binary patch
literal 984
zcmeAS@N?(olHy`uVBq!ia0y~yU=U+qV9?=UVqjo+XMTS<0|NtRfk$L90|U1(2s1Lw
znj^u$z@U)q5#-CjP^HVj&@h#O;m36bhK?WxhC){chF56}43_K+42nOQ)my_D7?|Tc
zT^vIyZoQduKmT@!$npKxzgum4EWhz`O6m4xuf=k6nlAm-@DRy;)Y|UpaogBK;p2YA
zdkL>@n}kic@L=I<Ese#&rx$d;%$R*_W3qMOof{7iW_mPhIeuc8T=s;0zV_Vycb4Dp
z@oP>$-L)v;%7@zdnq5I_!`$6Ox?R~C9$WMX@-QqdiD603$+&u=<ep&j&ciDLULO+Y
z-*L!)&xgHtwncvF7sx;Rqx_uv^tAhPujy-^)v>wwed*EOUuQ*M>+RpWD8iW|YgU?7
zpNUu;zg^Y*J>{<-Pdepd{vb;*{B@V_*N}IIzD(WTyFAM_@4cs)xxn$Xg)7?S@8s#;
z`{B~PYJru7Y?9clt^%%iEn((j`FHbbEI+Q^bN|8J<lZm-PY#*B|8hq(^O)m=<`gGA
zr;r7i9BLD<I`-uF&eN)1|28IGw`TIRlHIXv3OQRZ#pswHx%7s6(i4$bL2e(ziD#WJ
zKlD>^;dZ*0*)U%#)hx|<XSh;_67vKV&sn=~B`)C1JtF5a_vEg;l%>Wl=h{PxY%GN4
z@Yr}3^KY&5TrVgvNzIy5XA9>H#vKjZPgonhCh=Oh&zDYQ_uRjv{YCoz_nS+XuM$x+
zX<<9$slf1%LHtJc;k<*r39=Sqx1YDaW3_ZLtDiQ_yuNbr0;v}+37jj~1)3Tb9osNF
zLH~eP>SoQ{m(IIiy!WbIlxw@~OZW80O%4Z~Cg^Z9OgOM~#it4}nTV~&CojMD|JsSb
zbM1S+P5tKaBk$e0pDR416_gkhm~8mM7Vp|u6@K3K!Ow&R)d81HCaWmAE8bw5S32+Z
z{;RW8&iHL}xty7*HG8-8clo^g(Wkaf4_WHO))eIR?D=!+xqkoW9VwJKUfAy6^wQ_|
z9Uphw?q$ce**^TaO(trJOOK&fX8mKG+JwJ0e-&Fc=(%uj&~kXX{$e`AhnKq#c&bm@
zH@$v!f8r61Qy**VWB&ThT(<DFvhu6G!#uI^vC-0!g@0dN4QI2LEPT7^`$OKm!iT|U
z%Mz|WVB2stM&;?U=Uz`|e-h7*dHrzJuP;X;|CqDAS3G7|!T<5pga7Ky{L$WbgFepu
zfB0Qc>OuRz%NB^ApP*6nZ^gbJzuc>T2J)R=waY%jzQ==C?@h|5`P-ZG<!vmtn`V5d
x$p{oX`q8kNUpX$T`MT`$oRubhb^m1;`ZoX0V6|?Z#lXP8;OXk;vd$@?2>=_T$>#t7

literal 0
HcmV?d00001

diff --git a/wp-content/plugins/nextgen-gallery/admin/js/colorpicker/images/custom_background.png b/wp-content/plugins/nextgen-gallery/admin/js/colorpicker/images/custom_background.png
new file mode 100644
index 0000000000000000000000000000000000000000..cf55ffdd68ed42f2d70bd7ec2010cee86c110816
GIT binary patch
literal 1916
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

literal 0
HcmV?d00001

diff --git a/wp-content/plugins/nextgen-gallery/admin/js/colorpicker/images/custom_hex.png b/wp-content/plugins/nextgen-gallery/admin/js/colorpicker/images/custom_hex.png
new file mode 100644
index 0000000000000000000000000000000000000000..888f444495b3e08dbfa91181bf94d90bf48c85c8
GIT binary patch
literal 562
zcmeAS@N?(olHy`uVBq!ia0y~yVDMmIV9?=UVqjqKe3co)z`(#+;1OBOz`!jG!i)^F
z=14FwFeoH@1o<*BROvD>G)!e+_;H<qp(BWaq0p6q;Z+&~gC#oygW^wS_0}*32F4wp
zE{-7;x8BS+@6F^Wa(w?fZqY^4TYQuRY*<)buOuo8SpBO1(%tfJM%RX4);4TT4-`2T
zEm;)sCc%wsA%}Kua(iR0%=QUK58uv|d;g*A+r~ZopVPj-HUIJ<B)fc9!0Dum9XH>V
z2peDSYBaqUrN(efVv4bF!{eIF4f4trM#&dXFx*)F_(yd>R^2qd(63KJSprvyx(YPM
zSO2>AuTiAKPx#E*vkV7*)%vq<*tSW5?NV%(+O;&M8MEe0FxpmLY_q{AvOLgh^IJJn
zgY8bY-$^p?D69PZ`O>f<Xk&nuScSnHw}RtGZuRUBKHVRx$#JQCjeSYNwz8rm`KXz1
zBL8*R^>7?IXfvtecjQbReug{u!cR2wzPpkCY|;gHsjZ@))!S?C@-i_R-|3Poy+39C
zQU}2eg2#<7CG`Ac<ZeIwM2+8UnJo9c)6T3LB1{%7oALSHuNCIAx*Ao53pd}(h<fea
z)i`zCyDeT{>kn}FshsY9$!Kt2>*}*(TC%IUPiL<U%ADGDYK?{1)UE}cqFGbDR);M4
zw_xuv-L*liD@C_@i8??m`xmmRB&+YvlZBzH6q;3qKYFcQH*dygTZZyQuOn1+?yhD4
NB?ebNmvv4FO#nWu?>ztj

literal 0
HcmV?d00001

diff --git a/wp-content/plugins/nextgen-gallery/admin/js/colorpicker/images/custom_hsb_b.png b/wp-content/plugins/nextgen-gallery/admin/js/colorpicker/images/custom_hsb_b.png
new file mode 100644
index 0000000000000000000000000000000000000000..2f99dae8e6ef73e91a5d6283d2a732b6372d5e27
GIT binary patch
literal 1097
zcmeAS@N?(olHy`uVBq!ia0y~yV6bCgU~uAKVqjosaQ?KCfq{Xuz$3Dlfq`2Xgc%uT
z&5>YWU{FZ*2=ZlMsM2L%Xqd{t@Z&lILq`w;L!m1J!>cp~21|AZ2F0Ju>aAf649w>}
zT^vIyZoQdR?IGeQbG&}Lb$QjixO$BrIyKYgEmN_3;i@F!$?`Y+ub`uXOXCV#1&u|=
z<%1#@xXut24H0-E-zXx{CFsHB_R~W5`?}3nghkI+|G0DeZU5HXy}R@B&%2dBZ2Os9
z_Rie+{_Nl9-n>coH~nxoseA{6^Cf}qpxHV`vlx`W23n<*?|787xX?qraoVjTyc!2Q
zUjGnbVrWY&@Ca{wk|(L@E5LAJi}Z$!>34L`uDa&5>jhWj((7LXtqNayo5<eTvMi_T
z`)AFClky~{J>Yuw&@eF6f_L*Sl~t#<e~B*bt+BLL-@ax`MB61!hJ=V~%F!ChkB(hw
zYC3dg&75u1o|Wg$y=S;%Dfe-$JJX)pS}`%?R?H|reYoArIB3$ejH+YrmS|}Gym9bj
zXJ+DoKYy6QUhY{H<1ED>@?3h~x8Oq;1sMcd`gK>X{MoFhbjR%RpF20>LPI52UiS03
zdF_(Ho>li4gTGA^S$D@gBkp18{F6SsZQ05aZILtP&)sIZY}wn_J5pM^!adS!CBOT)
zR?buGE!!P$vNwN6{Qk`^7`yM^KXinDyQy}s_7@4w^Qosc&70}1e9d!mYR~NVJy%qk
z6!s(+c*UQab2M_=*^@q^egFIqU%6(gv}9hX<r-!CuCn*+4BKZ%>K`t6Ro$ajcsL{^
zY`Lnso{r8Yotz7=KW)0aJh$(wQBT0$9VLgKJ@J@3ZT}y)zjF@n5$*DtzQITKT;#=j
zXAdX;=!<9cOrMc3$6?YE4+clCcfnt`cdpP9Ir07Qm+tkOIwviCy|`qC-0F>9*WF)U
zI5H*oidE;+KP}Ien9W?gmC;S@$k7FXub+H7By&`-v2Wcy0l@$<!5^2*TduyYy!le1
z)8Xa18XuPhUz5u_I8IFBP<VIq_Tp<!lI2rmI{JIdc0IclH7iu>>b^;bOsDCEgwDzT
zapmrN=c)o1hVoDTEYp^@cQ|x#v_Oah|5cdQ%J2RtyWc>l@yisI|BS0!Bo&nu{9kew
z8mgUMAtb+=Gazl#&ACRZOtP_i^P_M5b(!||u5!GR!z7QDE)4>QH-1uO%G&C-(#2sd
zXRwywg%!=8cFA-wcy{I7`SiD+LCMqZdW?<c9v2nOY^4MHKkO{}$HEY^KcMdCvE)<%
z#(M_g+4Eyo*`1rZ{%+kW2BigJI+thtdVX)}Csn2w{fX!1+MN>3yH~xEN2x*J<Wp<j
z^*esrR=?ti*UVOGU}10k)xMtb!Mnw3iA!rb8>*h_u6%e?x?k$25aY$@Nj04eTu+{8
zI4c>X{1g4NX8rGE)9t+)K~|0(XLsdvHvBhVAt?B8KRd$}kBwcAgTB9GU|?YIboFyt
I=akR{03r+jMF0Q*

literal 0
HcmV?d00001

diff --git a/wp-content/plugins/nextgen-gallery/admin/js/colorpicker/images/custom_hsb_h.png b/wp-content/plugins/nextgen-gallery/admin/js/colorpicker/images/custom_hsb_h.png
new file mode 100644
index 0000000000000000000000000000000000000000..a217e9218e6a512b507a35e8a6141f0e56193439
GIT binary patch
literal 970
zcmeAS@N?(olHy`uVBq!ia0y~yV6bCgU~uAKVqjosaQ?KCfq{Xuz$3Dlfq`2Xgc%uT
z&5>YWU{FZ*2=ZlMsM2L%Xqd{t@Z&lILq`w;L!m1J!>cp~21|AZ2F0Ju>aAf649o$Z
zE{-7;x8BT%^$>BCIq-kCarL{mPa8EelxEHmE1xz=L6F7qf^+{~7rU=2EsZTVn*;P!
z6<xk1I67TqcM*KzEMUjtr1(RD<K<7+doNw*O`j)UStWn(ULJpOZgutbSlPAPn}4Uv
zr9Df_ujBcDbLL+|<M^7{3v(CfzBy{PNAlJ>4gIBjwjXLmnHy9*9TF251dblL=XAZg
z{YH20&Wn#1&A7k+x{S>N;qQO0FP#%|%y-6|5FN=SnznoUZMf@}{`~Uw!G#Yq($45D
zNZ0f%@tkIQ^!ZFZ-Ho63w3;w?b6Xb{)_2C*y5*OAjX8UKuGFEFLlHk0eNks^6klVb
zm=byI(8F4@*JT!~csksYcP-Km;nibjn3GY|>tA_gb239hq}tz;jo;_zFv<6KGi=zn
z?T`V_VFO9`S0blk-bv>FohTJFf6iS0o6BZ?-;q9TJJ*vfU2cbTPKy<sUey_V;i*q&
z_1e8#FFq9z=48lty~jDs;hO!?sR7Tdo|Q~Eb!3aWtnKH+-Hi&K@8(9h_^6~*nxCu>
z?)9&fis3W*eq@XJ)2A7K6r@AW{ypB3x&PL~HLK(J)=i!tr8lSiTBx{I;*~EuFUGd>
z>#|>0z9{i?<*rpR)1E%K)z7r(|6w!U+}5jS3sh!(To#y6;(01vSJ3I#yk$ZAR{I^V
zof}qCy|MS&`Bzh~^42SO$X2DgN`7N+QlH%))NW_=%B+_m_Qibl=OwDyYt~=A$T7$A
z>Js7a7e36$Wbsi>5K&%Go?_1AS#p_UhT8!Xre%T#y$AlAFgYJi4v}iSHB0L<#~VlG
zfXKjSUw>x)S(Day?#7KfMk@p*Bun}0e#}TcuygbB-fR|uLtE+|Y}{G0rm&accw~kt
z)10Lp*IG6f%m`C%5SYDG;uc3j%alvSk2me=6!cmY{Zq*|u!kX2%gw>q?RlubTY0!P
zLrM8orBI1m923?sG(>-&clXT>msi`X=LaXSSX?!G`?7lGz04TphI(1g>+82nICZyu
z{g!-*$ZKLpIVx(s<L*zo#gTFBMMs~Y=J((CCxpJv*}bA9&3ne7_~W7Cjr)%0Gd?&t
znXz<vVK2k<DwVJME0(`BTqhWC&)|zB;~#T#cV?-^oj>z`uCIEyUDIvLqUSa&z1b|A
g;w@Pk|64MwEx9YZ`ua0T1_lNOPgg&ebxsLQ0M`<?lK=n!

literal 0
HcmV?d00001

diff --git a/wp-content/plugins/nextgen-gallery/admin/js/colorpicker/images/custom_hsb_s.png b/wp-content/plugins/nextgen-gallery/admin/js/colorpicker/images/custom_hsb_s.png
new file mode 100644
index 0000000000000000000000000000000000000000..7826b415077be23ed1b1bf05b2da62d4aa5b1c67
GIT binary patch
literal 1168
zcmeAS@N?(olHy`uVBq!ia0y~yV6bCgU~uAKVqjosaQ?KCfq{Xuz$3Dlfq`2Xgc%uT
z&5>YWU{FZ*2=ZlMsM2L%Xqd{t@Z&lILq`w;L!m1J!>cp~21|AZ2F0Ju>aAf63@l=v
zE{-7;x8BUm^#~4>I6nVwwb|WSO;aKaduHlZZw~py%B!p~Wzzx<E_)V7{V575-<Vv#
zeNyaw)%-Pa!lYK#pjwZ`8X`)HMiWBA#G=E@=d9kdd6(t)vV8fz-q+9eb`^cSbL;TW
zg0gqU^ZuWkXZzf8f99Jq>*IwAiFR@9E>Sgic#agtBqc4H;w~UC^V08_zZ?t|^QM1#
z(8wOd%jjSrF{MgIz{JIypM^<y!oSbg^OtU}47&7p)9yUKd5b5!n|I!C|CUvS@2pH?
ze+qE0s84z=*S~z@#)+vn8}v@v+~1U1tJru+GbZuSnq9kQrQTe$XwjTGbJE|gy*^9s
zLz95nlxcc>TaA(fQ%YDEHdfW%xP2$Dyt1+~FHg_<K&D_))qXvL+50T^ch<JG?dkHm
ze*D-2&tH#zGEA7f^T$)^b_**ehAuAujP9dBp`lZ!PBqon&A+*5%3A60;3;j3mTd`W
zJ5*X)AF=5|&-3;7zqZJjn9cT;-}sv0!ri-fFJ8R(Yl$#J*_%6?wajhLBo-8ST;xhN
zIC9E@hmS9iL7_)xzT~o<J1Y~Tq9P-29<JW*WtN}6VtbaLklU<FyXCmHnCP<hZ+J1~
zMrK8*KvYze4Bzns{qpiN?G`)oGZars3ldS~5Rf|MEiY$r^kce!yZhldCF7YsKY#vw
zo|QFe^5j~LkBk4FeN{U9QBPZ@&F783!t?Dr#7)g+`!1JWx;ZuS+RGB7zcq>Xy3UlG
z{{F8qE`0xugRj48&U$TVSoC+>_1Dfnc6ZcFn=m24Xy&I9ww4#)`Hn3v(3CN~e%#J?
z=^Tr`&)jxD_bP^1F?`tbM0wV-skXj9PkPR8QnFZC7rXXSuiN4?TW3YQ{8(r#@Ve~#
z&X^#%c@6V?UKXdHcdFG34|8jK)p6kR^VmS81$s&!9&L>cOg%k)iIxY;HIWppCA-(|
zHTGgz<kBFbv|!6g;l{+5TB=NoV?Hn}ShR>qxKaB0>m?lrLS{vL?1<?XYSa*vFc*~g
zyDBg$Dk>(Xr_&+zXPytsF`X@4_k0hZ>b|4<QeK@Y_wC$ODoiWWf~Ro&X?IB|3%aD<
z7WjDUET+<12mJd2ls<f^y#Cj{KUJpdy4WOdmJF$tQ#k^XA4U{)HiWGX))u_*D(Q+B
zOUW(Hr&gRU4a+pQ3NgA|URe0;M%+hlm&-1~jThwY)cN1CG#I;=&t0)HoL!JZ^~}o8
z;r;SA8lNxMH(AlZk>P58dGprZiQOE+j2jJkJ|9ZE9S}5W?%diR9yPgl-?mk~p2f8K
z{QLQrj(x~K6!PwVpZasX`#lYkE<%hg88&)Rvp1Y*{=KbLtW%B2;|j->xShNV(_g*o
z5I?EPbZesfq_4N`ZV)Z%JTSvuXr~K9@A6`m2^=@7_xWU9U;aI+_jHHWQulcuS1B@m
gifunA@H?HsvR|Ed$D-^e1_lNOPgg&ebxsLQ0KnN3^Z)<=

literal 0
HcmV?d00001

diff --git a/wp-content/plugins/nextgen-gallery/admin/js/colorpicker/images/custom_indic.gif b/wp-content/plugins/nextgen-gallery/admin/js/colorpicker/images/custom_indic.gif
new file mode 100644
index 0000000000000000000000000000000000000000..222fb94cfd66bd2bd525891024289d8ee7adc321
GIT binary patch
literal 86
zcmZ?wbhEHbRA%60n8?7e|H!!+3pf7%|DS<@LGdRGBLf2ygAM}&0|Q8&fl1w`W##F)
qVh0MhbY(PbiE;gzJ6AMqmW7#Oh2P5Hx_8{!H+`-L+>>Nwum%9JoE@<M

literal 0
HcmV?d00001

diff --git a/wp-content/plugins/nextgen-gallery/admin/js/colorpicker/images/custom_rgb_b.png b/wp-content/plugins/nextgen-gallery/admin/js/colorpicker/images/custom_rgb_b.png
new file mode 100644
index 0000000000000000000000000000000000000000..80764e5d6dd8aac3c5ef87d83b45d29780af1fe9
GIT binary patch
literal 1008
zcmeAS@N?(olHy`uVBq!ia0y~yV6bCgU~uAKVqjosaQ?KCfq{Xuz$3Dlfq`2Xgc%uT
z&5>YWU{FZ*2=ZlMsM2L%Xqd{t@Z&lILq`w;L!m1J!>cp~21|AZ2F0Ju>aAf649sPo
zE{-7;x8BUk_7HKDIq<wJ{i|G6ZNP`fih0xS#d<x`-0RVz)VU!4YC8v$BA3fsMn^$g
zJCD>xvBa>D0LKaPOqvEF&J#p>J{3m2yBYebQ?C4;^WHtT-yXiT>0azQ*|p}*)@Ryp
z?z}l${_y|()}MC=^VDzLX=~RIeNioI!R^Q1zMhBp?%F+VU|?uVWN2e$Vqj`~@V`~B
zv@Ju}^wEp%Mu(F7>uyg_6a0Q-yJw(Q3A5W2Eu&w(ZE5>*O+-VcOjqjgV_=Y&#=Fw&
z)})PgyLa4}Gd=%RMt1Gxi^6tpStSo+p6UL4xY?PZ!AnxU?)gFHr#p9@IqHyb?d{S`
ztJf#~t;}3raNtl=d{D`}RR<QZGfWYawBx;a=%yk=gM!Gz@@-r8U0yMDUF7@rdFN)$
zdd1S4b?af&>4t|Z+1l0~^R-%MYhkoa=bG|!3)@8@D<#`L>YuTUm21B&dw7bdkiK)e
zGV8mQt4=vJ+X?X4Wmn!V*<M(E(l+eZ4>7U2U1xt*t-F}N(E0L|RA=q*V{eVaZmVp+
zxAW#q7RQ$Ui9)q2ixkgoTBE5SZSh;4dD*^&l1^FYo^R~0*S)z@oI!x+SkCIh7r#fZ
zdBhkT8oT=ZsSm&FH|azyzbYbCJV(!e4U?OPeqY{=8B-Soew;r4<@?V<_FS$P|10_0
z-rITgjY(3^IfIKXOrDc2?em?P5iZ;R*J|C1TQ0ooj=#!m&pu?=EL&BTWi)5Q`5e>P
z8=T+2lbz7Z5cfi!-Cb2x+vJ%?2Fs~(5zixc?_E`wW>o2AcyjKZ;$E{`o7U#UM|n-U
zZhrsbwN(Kc-=@sGE)nYy8kJIU-&};z)=F8SH1Z~g&cf4f4rWZ71Sj-1<gol(Dwy&9
z)!|DVPhJ?MDu0ldYW#8~Wpyso@nloR4?23=#RHWu+_nC&Yi)5Wqv-DPh1o0~LXWBr
zC?6@&+2z)-=uv?wQ%H=>I!0l4SJBrR5{#2XDhn3>mS^;sRI}E)KBj`xQz%pU!2buu
zFW(q49JpFMReZhek;5Dx7>jrQyV!bbam?>iXOBxrFnUc`R@&=-*!rR=(}(f{b1W-o
zWXJ6PEW@wNpm_3Xw6Fe-ueP<11nzfk5o~Dcb$I-DIzz*4{-~C@FQgc=erm6Ld2;mx
zxsu+77uuY$$_(L~i(M{o^z{AhsJoh6pVg+a?gfkDwpS;l7>{<%Uv>3VJTpW3bf;ri
U-ib|PU|?YIboFyt=akR{0Pn5Ap8x;=

literal 0
HcmV?d00001

diff --git a/wp-content/plugins/nextgen-gallery/admin/js/colorpicker/images/custom_rgb_g.png b/wp-content/plugins/nextgen-gallery/admin/js/colorpicker/images/custom_rgb_g.png
new file mode 100644
index 0000000000000000000000000000000000000000..fc9778be1eb862a7ada05ae4a34726df0a2c73af
GIT binary patch
literal 1069
zcmeAS@N?(olHy`uVBq!ia0y~yV6bCgU~uAKVqjosaQ?KCfq{Xuz$3Dlfq`2Xgc%uT
z&5>YWU{FZ*2=ZlMsM2L%Xqd{t@Z&lILq`w;L!m1J!>cp~21|AZ2F0Ju>aAf649uH7
zT^vIyZoQcq>k*tNaa{iV@j236OP)RZeq5w<mc|U1CKb^Zb4T+s;fTnE;+dH#oRJlZ
zOEXtYnVIUy+8A`VM3A#lLD6&8vY$79eNZ+x|GsyQb*zlFjQMRR>vwx9;^uX~eOUSZ
z&-Ztg=YQ|n|FfrW^%pkb1!hctmbTnWnAFOqs9u{F=giP>_#p!eJ0nBc?^E9<o%_ni
z`C)q1w0$|-^WR)fUi?Jn<-C7ZuLDKvxsNSgwco4W-r}0Q!J1hzoOc9;q~}+t*iX;D
zWXMnuFlF-BT8XzA`<*8(y1d*^?#}%0>z<#z+dkLNFvdIm`KePLWoP{u8s^`)o_VYL
zdF;=2?p3GyGE3Q-Ps*rq=k2^JrpSLW<Eu~4)vU)MR*SR3y=)j#(wFhn%}Pl>&cJZE
z=Ekzfn5avuzP~*iap6VUv#V^2Esbi@i=BNv0u($S_()t|eNIJ6YVIP9u0<=hJh3P%
zJ5+kkf2$Znl2U3~cWFh*u7_!|Z}qLi*ZFjPJvB}CpUvL7wZYl$B};f1+>V8s-7YFw
z@+Rr&(&*l=3<AQc)4h)PNL(+P>9W$ZaLYzlqf6Ik9PyV~9I(x{A}Ky{;*U<@M@nhW
zO;<-BcQj1A;~j6h>&VOZ2hRDev0l4n$%b_szq$k#_Bds3o$;)$rqkQU+pi<;!izmY
z23vmhD+ixDUwS?MzW<x(+MOkVtLF!u{TCH?Z|=l7>q2In5$nFXjdkfEk)G96=P$h!
zRy+_tYw}#RZ=#F`ZagvPKJM@Q{nB-N-@7c5J!#Ds-z>ZQVN*$ava)HzV~g#}S0)#)
zKKH#&HuNRqzo3xySGlF`o|z+M`7&`+LQ<OFUUh9z%a?m=otXq3ynh||z_R?*rKwze
zoept+YVNysSN~#FQV?L=C&0L_y;^C*u2)Qg0v!zwEG$Y20*(JYS$0+bnyA9mb%Udk
zBga`uK#hA|(AfnQYmYIUU3gi#(u<|)cU#=vy4PwCE;Ppc6JnH657_%4abAH=eJ6uw
zSAZ(hk`v-rn*=9HuPt3K%qVj_K$VH5&p0f)wC(S-1BG$IjL-PzuNLoPcJNKTIQ8}S
ziwaB@eHY8t?rYxH9~LfR<QFH*IBBbI_H4P`R@Yz3NGb`4%6SPhR%TqddFiu>pusGi
z=qnQcG-q^8TKuJ3TGu}|kxjmn!STTs(=B$3uW#S8qoMHAEDnJ+ZVO(<sWX^tFW)%#
zk1ErXTgofHUi4PyukUO)uH3obrQyf)a}(QL5|V!XP7A*~dwUv_d#F`gWmM@sA;#}>
f+gz0X*)lBI%YXf#=F<=c1_lOCS3j3^P6<r_`y<{e

literal 0
HcmV?d00001

diff --git a/wp-content/plugins/nextgen-gallery/admin/js/colorpicker/images/custom_rgb_r.png b/wp-content/plugins/nextgen-gallery/admin/js/colorpicker/images/custom_rgb_r.png
new file mode 100644
index 0000000000000000000000000000000000000000..91b0cd4c520013444ae3a64c7e10b28060992557
GIT binary patch
literal 1018
zcmeAS@N?(olHy`uVBq!ia0y~yV6bCgU~uAKVqjosaQ?KCfq{Xuz$3Dlfq`2Xgc%uT
z&5>YWU{FZ*2=ZlMsM2L%Xqd{t@Z&lILq`w;L!m1J!>cp~21|AZ2F0Ju>aAf649pFl
zE{-7;x8BT%^$>BCIq<wJ{r%<5SCsV)Uw^t{WB*9+OqYu=R}DwCPDhi=ghd_7@+{RS
zYBu<2uMP0pu%Kx{i`*+k4lYM03yrOtKl$muwR!7v`S-UyZxhcazh~awckTAUzsCHV
zcW<_~Z~On|%paD;_jS6x{TiZFPNx<Wo?PkU@631C%$S{#q0xasK|+Ax!T0q!IwjlE
zJvPN0>)H3_`|<Ckq1VEu?Kr;Q-#DnyJW*n0(&GCscF3>lK5~iqx7Rn3=S94-%nU3Z
zMvEeRjya1yEj3kN-5=(;WYfKQdZ(}WxJYli__B6t#^=S=?F<Z^5h8z=ZPQ4PJ~nO5
znJ=3zJqk8uTYYw&?y16EHVfJ0`lp9}5eVI=Ce0AA>T=DmoJHUH7#SqgI_fU}xSBNk
z@6(SJ_7XjL(-&{@QTLy;EAklc>Gsf74+D!G=XI^>uaV?G{dLC0()G=&mMmFnZW^n3
zB6y}+ol4fJOPz-=oQ&wK{vCEZF1POf>hIUrZ`Juz=HuhH{`rK<E4w~zUU_Q5MG;G1
zPoqr%iQ6Kst~%4DeD!Va+G!_e&d9yt!Y`(E)N_)~ovoAaSs(k+nH-wBk}LK7WV_CY
z87o>AzG&}Bd)BhEAaMTt&9&F;{3k7O(OGqUzB-47|D;`a?tS%_u(CDYrB;4?P3^t6
zAA|aX%uaJMS<T7g5ni)~MX2c?|K*aC4;RJ%syS_Uzvzpf^1&C44mOkdju)1NUv}8D
zxbIk<Z0MJiojg~Qzn<U8y83LNOjTPD<65)d|0X#-xxmiWUa8z5_UrgW!?2TO;wvIe
zn5MFq>J;vOYyQEl!JH|^kSXW*EjNXZbJC3WIKV=C1b@tTdyu=I(NlRrSn4OY1ZJs5
zo~4I!HZH1IbBtlu#tknXtPqrtkg5Co?5-5=D!%E(*Et?oxO{DBH+&iKPKvQfU{Mwe
z$3l*)ErLRYPp!mz82XY|NHKOiUU=zJg!}#$3ptnR9j=0{Mog8j)&$L67Fh45<h$wC
zo31Oqg1HfLUlUBsuP`yplFllOD!9ebBD8Gf+V7kGnS}1Y^-q9N+2O*nOz-E9U(CK^
z%2ZJ5xyru0Y1Ni{wOwt34Fbzgoqd;n<wu-VwN1(7%We(->|fS=kYOlT{+#tM|KV6=
zhZcR$yZv!)cOI@2Oo*AZBb(*H{Wmg}87#++Eq^5c^~n5LihWvEZHB#8>AejJXO{=9
c{BfS4CAjJ;Q-|FP1_lNOPgg&ebxsLQ07z!hy#N3J

literal 0
HcmV?d00001

diff --git a/wp-content/plugins/nextgen-gallery/admin/js/colorpicker/images/custom_submit.png b/wp-content/plugins/nextgen-gallery/admin/js/colorpicker/images/custom_submit.png
new file mode 100644
index 0000000000000000000000000000000000000000..cd202cd93b753b31926593e79eb3756cd58bd677
GIT binary patch
literal 997
zcmeAS@N?(olHy`uVBq!ia0y~yU=U+qV9?=UVqjo+XMTS<0|NtRfk$L90|U1(2s1Lw
znj^u$z@U)q5#-CjP^HVj&@h#O;m36bhK?WxhC){chF56}43_K+42nOQ)my_D7?`s?
zT^vIyZoQduH~)5u$g%m?*Y7>j`S`|3w^_QbiQc<6Z4~|G$ok0p@~%Ut*mA@<7|ml2
z)*t4*e#dBnnwgboW{{)QiZ!~TH@(75?@sBjTbe0sy;4|xqpaSeS$dKl*%JkX-QS<x
zc<=c|%jaKzPHc5q6>(|9b%ENrZ4sBOoDSMXuSwq?!7wc~QT`y40ng|8+dIyyr=_Ra
zcn4p!E)3yQ@#mf5KmU#NoA<TbcHeFCIeYH&p6u_-S6|ORrG0-6C%52Aca7?RqWt{N
zr@wOvKdnjJ^83<@*}L__wXR;%T6cej#mQR3KmRHX*DGvh4RyZveEr9NCsz7Rulam>
z=4y%k7Dey$r6WC5{;pf!eqUNJ+cJQ&hh;naBK|6gtN@)8hxOy5{^jN9&3a*3_C=9<
z^~DUe;_}D&@yq^P<}$JW!B@e5P}f0ZVe5m54k_oSZTGML>-OjOyT#{kG-pJ8$g37h
zO*?g0GFEk3`~;Toj$tnv)ENSsq_%XdcsVDCMf{!4|FGxw8&r42r7{}uWIj6;yg%zv
ztJWEzJ3_Cgs@yy*uXwM)uW~6%YkLucYFtP?pOw&VLG?{yMk|Ci7%gDZ5-8ZIasD}D
z>hl$*IR~<2)05N14prTcRaKYa>AH~mLeYUakwNrC*u?b?YZW)Itf(sPV_{%kaB+jb
zxUtE`9bXu>iuCB*Fuh<hK`CP4iA^UWJTi7njeAoyuUutYt1$Cl<~#kLJ}ukFdEM#;
zj|Z0uX9~wP4Ks^7*UgT8So`mvc-iV%p*Jqx72SKFZpx1=y_wo;8<sgvauD)hKFu?&
zYv-3oQ@f|v9^c((Iq6y?gN1!nThHU$=hy%Jbn4r~%X%*_2nMaz%-(rb{#}dE<oUHl
zKh_qfm*3xB-tzcOxnfJesSQ)^MenGuuCiLEbGBGS^kGZhS2rhTeZF}wI<N8`Hqkx4
zG|v3Ql{Yp^uWVd0B~jv8e%S3zI+y=^4)nd8lY7L#=Ri$P+?FrjZk!OTz4!N#`Q}{{
z^+mqt2u^S{i`Up^^5f1tUA5)U=SeheW_Z<h(eFe5VW%fs<q{WMSNoBZ_-Oe??Oc|6
z7t#N|P09aRw(I^={~_%5p<QPdOa1q`6CZPLygm8y$B)_ji<5nu_DgZ{*8Xy{K3M+G
z@AOIOvoDV&U5wEAm3TYo+ABBigYp+o?05OlpkwE;_8t5FdLD*jWm80-Em4}tz`(%Z
M>FVdQ&MBb@0I@R7ivR!s

literal 0
HcmV?d00001

diff --git a/wp-content/plugins/nextgen-gallery/admin/js/colorpicker/images/select.png b/wp-content/plugins/nextgen-gallery/admin/js/colorpicker/images/select.png
new file mode 100644
index 0000000000000000000000000000000000000000..21213bfd51b088497f3a9e423170cd65532d873d
GIT binary patch
literal 506
zcmeAS@N?(olHy`uVBq!ia0y~yU{C>J4mJh`hKCF@W-u@?u%tWsIx;Y<KVi<=^^$>s
zL9)a(q9iy!t)x7$D3!r6B|j-u!8128JvAsbF{QHbWU37V17nY;i(^Q|tv53cdL4EU
zXe&2gS>+j|v}k(_%SMH`J<mIBDn3cte0?DN^xes3r5_Ak60@ExGBf-qoR+A0L#%MJ
zSlNU8%bp4Q-tl=qo1S}{OE&0KZH=sBaz^-#UjGcXy$<iED2Uyx^^kn<ol~SMaZ$^>
z13{X8Je<lq%nUi^Z}&X>#?kx&OVBjMeGA!NNc~b^OPaXDqM7f<!rKZQYKanD_rI^b
zbfr}H)FzS8P{Avz%kPVrZ|J+M(Y5AqNp!PRNOzXhOT$n(NzRv*ape=ATV9NAJgC=U
z(Z_my(y_G{*Vi60xYRc7Z=kA~j?4t+A_u+`jFt;>**ATCba`FX-xtyzDxQz3GIlp^
z(zz|8z`L1m%B$+sFvrOG<(EwU&X;?%dC}kQX>*NV%k&f{n`O^l_A<?Q)@%<m=B;A<
z7k4IkyBtpr6#3=&+90GmhF{rs@xk6RZN-OkW;h+UoymLtg6M2sk?*(UcS+pnTc~lc
zXnA<!w6!uqZuxU#HheiT%`(M3<+#xi@$c`oZyLmwH$Qc6U}PxQZFr`&=36EM0|SGn
LtDnm{r-UW|{}|Rt

literal 0
HcmV?d00001

diff --git a/wp-content/plugins/nextgen-gallery/admin/js/colorpicker/images/select2.png b/wp-content/plugins/nextgen-gallery/admin/js/colorpicker/images/select2.png
new file mode 100644
index 0000000000000000000000000000000000000000..2cd2cabeb6777c724034d5b0e0efd664011f515c
GIT binary patch
literal 518
zcmeAS@N?(olHy`uVBq!ia0y~yU{C>J4mJh`hKCF@W-u@?a29w(7Bet#3xhBt!>l<H
z3=9kk$sR$z3=CDe3=9oZ85n+CXJF_EVqhqAWng%f#=v07&cLAflUcnrjDdl%$J50z
zq~g|_83(-%JBYZR_g=1bWr^<67wjBMSqmTUi+^%x>iq|&TH~+m)fS)H)Fkc5xiB-y
z(f8Gk7c7esqK{-oooKyj({^U&%+uaQt#h_q(|sV2!La+rRcisJ^9~FON*#=ajeHLR
zdz2DXlr|=FxgJWm_KrcL*jMt5Tmk17hT}#@)D2kl8q5z|j@s^$UCXoO?2^|S^S&K=
zF;&HL?WK^_U2WU@pI>V`FjMn)pJBnWcNId>?Tj9irhHUkd-3cPFKb9KtLJ4&hPPqN
z=hxmWEU-Ds?{p?=lKqbO+N6Xd$0D`_w(|yahA>TaPz~S=Vam0hu<1+8-Z!6<?>gAn
z*iDtYmA9a7|9(pc$un93=XUw0Nlw|sYa+q(@3`}_@E7}gTx-*&9-Hyx-`OoeqMnx}
z>jWOLFTA^Mjh6lFj7Kv(R4&JEewQY^_OQuoy#pHId`DY&)pu@q$Yl`~e4~JW&g>10
z56n)t`*HUrGbjn}Jn5Hs#KuI6M{T#&&u?AVcJa#0a7j6Cbfo>`d+rB^Z7%(mV$iQ_
WKe9a_MVNtsfx*+&&t;ucLK6Vh5Ytlt

literal 0
HcmV?d00001

diff --git a/wp-content/plugins/nextgen-gallery/admin/js/colorpicker/images/slider.png b/wp-content/plugins/nextgen-gallery/admin/js/colorpicker/images/slider.png
new file mode 100644
index 0000000000000000000000000000000000000000..8b03da96ebd45d66729466d43f263854ce7a0c49
GIT binary patch
literal 315
zcmeAS@N?(olHy`uVBq!ia0y~yU=U|uU}WK7VqjqKskJC$U|?WLcl32+U|4^`oVDvE
z0|SF(iEBhjaDG}zd16s2gJVj5QmTSyZen_BP-<dIW#P$G8wLi3vz{)FAr-gY+_C0s
zHsE2n5D>7sPu4<AW+C(UqzAL63M`f1+N1GKVC8w|MLcz0ZqXB07tRUNX?u8UP4w-!
zO`YprU)x$K|I2Q2<h1pZE*XB(;A(YR7@#4-^;Cb#W&SCavY$S^UR!i}@6nwKs(~6J
z5ZR~N8<UzK%37Tkz6pC}8NR~YYt84_u1PQ@Q!Y)7kaPf>1TyfO*2ZT)m-BVhO6$9L
wLQN6zx_K&D=uB~scUg$H&VSKzMm7fR=t)LOw?D`;FfcH9y85}Sb4q9e03k_rc>n+a

literal 0
HcmV?d00001

diff --git a/wp-content/plugins/nextgen-gallery/admin/js/colorpicker/js/colorpicker.js b/wp-content/plugins/nextgen-gallery/admin/js/colorpicker/js/colorpicker.js
new file mode 100644
index 000000000..10a2b2244
--- /dev/null
+++ b/wp-content/plugins/nextgen-gallery/admin/js/colorpicker/js/colorpicker.js
@@ -0,0 +1,484 @@
+/**
+ *
+ * Color picker
+ * Author: Stefan Petre www.eyecon.ro
+ * 
+ * Dual licensed under the MIT and GPL licenses
+ * 
+ */
+(function ($) {
+	var ColorPicker = function () {
+		var
+			ids = {},
+			inAction,
+			charMin = 65,
+			visible,
+			tpl = '<div class="colorpicker"><div class="colorpicker_color"><div><div></div></div></div><div class="colorpicker_hue"><div></div></div><div class="colorpicker_new_color"></div><div class="colorpicker_current_color"></div><div class="colorpicker_hex"><input type="text" maxlength="6" size="6" /></div><div class="colorpicker_rgb_r colorpicker_field"><input type="text" maxlength="3" size="3" /><span></span></div><div class="colorpicker_rgb_g colorpicker_field"><input type="text" maxlength="3" size="3" /><span></span></div><div class="colorpicker_rgb_b colorpicker_field"><input type="text" maxlength="3" size="3" /><span></span></div><div class="colorpicker_hsb_h colorpicker_field"><input type="text" maxlength="3" size="3" /><span></span></div><div class="colorpicker_hsb_s colorpicker_field"><input type="text" maxlength="3" size="3" /><span></span></div><div class="colorpicker_hsb_b colorpicker_field"><input type="text" maxlength="3" size="3" /><span></span></div><div class="colorpicker_submit"></div></div>',
+			defaults = {
+				eventName: 'click',
+				onShow: function () {},
+				onBeforeShow: function(){},
+				onHide: function () {},
+				onChange: function () {},
+				onSubmit: function () {},
+				color: 'ff0000',
+				livePreview: true,
+				flat: false
+			},
+			fillRGBFields = function  (hsb, cal) {
+				var rgb = HSBToRGB(hsb);
+				$(cal).data('colorpicker').fields
+					.eq(1).val(rgb.r).end()
+					.eq(2).val(rgb.g).end()
+					.eq(3).val(rgb.b).end();
+			},
+			fillHSBFields = function  (hsb, cal) {
+				$(cal).data('colorpicker').fields
+					.eq(4).val(hsb.h).end()
+					.eq(5).val(hsb.s).end()
+					.eq(6).val(hsb.b).end();
+			},
+			fillHexFields = function (hsb, cal) {
+				$(cal).data('colorpicker').fields
+					.eq(0).val(HSBToHex(hsb)).end();
+			},
+			setSelector = function (hsb, cal) {
+				$(cal).data('colorpicker').selector.css('backgroundColor', '#' + HSBToHex({h: hsb.h, s: 100, b: 100}));
+				$(cal).data('colorpicker').selectorIndic.css({
+					left: parseInt(150 * hsb.s/100, 10),
+					top: parseInt(150 * (100-hsb.b)/100, 10)
+				});
+			},
+			setHue = function (hsb, cal) {
+				$(cal).data('colorpicker').hue.css('top', parseInt(150 - 150 * hsb.h/360, 10));
+			},
+			setCurrentColor = function (hsb, cal) {
+				$(cal).data('colorpicker').currentColor.css('backgroundColor', '#' + HSBToHex(hsb));
+			},
+			setNewColor = function (hsb, cal) {
+				$(cal).data('colorpicker').newColor.css('backgroundColor', '#' + HSBToHex(hsb));
+			},
+			keyDown = function (ev) {
+				var pressedKey = ev.charCode || ev.keyCode || -1;
+				if ((pressedKey > charMin && pressedKey <= 90) || pressedKey == 32) {
+					return false;
+				}
+				var cal = $(this).parent().parent();
+				if (cal.data('colorpicker').livePreview === true) {
+					change.apply(this);
+				}
+			},
+			change = function (ev) {
+				var cal = $(this).parent().parent(), col;
+				if (this.parentNode.className.indexOf('_hex') > 0) {
+					cal.data('colorpicker').color = col = HexToHSB(fixHex(this.value));
+				} else if (this.parentNode.className.indexOf('_hsb') > 0) {
+					cal.data('colorpicker').color = col = fixHSB({
+						h: parseInt(cal.data('colorpicker').fields.eq(4).val(), 10),
+						s: parseInt(cal.data('colorpicker').fields.eq(5).val(), 10),
+						b: parseInt(cal.data('colorpicker').fields.eq(6).val(), 10)
+					});
+				} else {
+					cal.data('colorpicker').color = col = RGBToHSB(fixRGB({
+						r: parseInt(cal.data('colorpicker').fields.eq(1).val(), 10),
+						g: parseInt(cal.data('colorpicker').fields.eq(2).val(), 10),
+						b: parseInt(cal.data('colorpicker').fields.eq(3).val(), 10)
+					}));
+				}
+				if (ev) {
+					fillRGBFields(col, cal.get(0));
+					fillHexFields(col, cal.get(0));
+					fillHSBFields(col, cal.get(0));
+				}
+				setSelector(col, cal.get(0));
+				setHue(col, cal.get(0));
+				setNewColor(col, cal.get(0));
+				cal.data('colorpicker').onChange.apply(cal, [col, HSBToHex(col), HSBToRGB(col)]);
+			},
+			blur = function (ev) {
+				var cal = $(this).parent().parent();
+				cal.data('colorpicker').fields.parent().removeClass('colorpicker_focus');
+			},
+			focus = function () {
+				charMin = this.parentNode.className.indexOf('_hex') > 0 ? 70 : 65;
+				$(this).parent().parent().data('colorpicker').fields.parent().removeClass('colorpicker_focus');
+				$(this).parent().addClass('colorpicker_focus');
+			},
+			downIncrement = function (ev) {
+				var field = $(this).parent().find('input').focus();
+				var current = {
+					el: $(this).parent().addClass('colorpicker_slider'),
+					max: this.parentNode.className.indexOf('_hsb_h') > 0 ? 360 : (this.parentNode.className.indexOf('_hsb') > 0 ? 100 : 255),
+					y: ev.pageY,
+					field: field,
+					val: parseInt(field.val(), 10),
+					preview: $(this).parent().parent().data('colorpicker').livePreview					
+				};
+				$(document).bind('mouseup', current, upIncrement);
+				$(document).bind('mousemove', current, moveIncrement);
+			},
+			moveIncrement = function (ev) {
+				ev.data.field.val(Math.max(0, Math.min(ev.data.max, parseInt(ev.data.val + ev.pageY - ev.data.y, 10))));
+				if (ev.data.preview) {
+					change.apply(ev.data.field.get(0), [true]);
+				}
+				return false;
+			},
+			upIncrement = function (ev) {
+				change.apply(ev.data.field.get(0), [true]);
+				ev.data.el.removeClass('colorpicker_slider').find('input').focus();
+				$(document).unbind('mouseup', upIncrement);
+				$(document).unbind('mousemove', moveIncrement);
+				return false;
+			},
+			downHue = function (ev) {
+				var current = {
+					cal: $(this).parent(),
+					y: $(this).offset().top
+				};
+				current.preview = current.cal.data('colorpicker').livePreview;
+				$(document).bind('mouseup', current, upHue);
+				$(document).bind('mousemove', current, moveHue);
+			},
+			moveHue = function (ev) {
+				change.apply(
+					ev.data.cal.data('colorpicker')
+						.fields
+						.eq(4)
+						.val(parseInt(360*(150 - Math.max(0,Math.min(150,(ev.pageY - ev.data.y))))/150, 10))
+						.get(0),
+					[ev.data.preview]
+				);
+				return false;
+			},
+			upHue = function (ev) {
+				fillRGBFields(ev.data.cal.data('colorpicker').color, ev.data.cal.get(0));
+				fillHexFields(ev.data.cal.data('colorpicker').color, ev.data.cal.get(0));
+				$(document).unbind('mouseup', upHue);
+				$(document).unbind('mousemove', moveHue);
+				return false;
+			},
+			downSelector = function (ev) {
+				var current = {
+					cal: $(this).parent(),
+					pos: $(this).offset()
+				};
+				current.preview = current.cal.data('colorpicker').livePreview;
+				$(document).bind('mouseup', current, upSelector);
+				$(document).bind('mousemove', current, moveSelector);
+			},
+			moveSelector = function (ev) {
+				change.apply(
+					ev.data.cal.data('colorpicker')
+						.fields
+						.eq(6)
+						.val(parseInt(100*(150 - Math.max(0,Math.min(150,(ev.pageY - ev.data.pos.top))))/150, 10))
+						.end()
+						.eq(5)
+						.val(parseInt(100*(Math.max(0,Math.min(150,(ev.pageX - ev.data.pos.left))))/150, 10))
+						.get(0),
+					[ev.data.preview]
+				);
+				return false;
+			},
+			upSelector = function (ev) {
+				fillRGBFields(ev.data.cal.data('colorpicker').color, ev.data.cal.get(0));
+				fillHexFields(ev.data.cal.data('colorpicker').color, ev.data.cal.get(0));
+				$(document).unbind('mouseup', upSelector);
+				$(document).unbind('mousemove', moveSelector);
+				return false;
+			},
+			enterSubmit = function (ev) {
+				$(this).addClass('colorpicker_focus');
+			},
+			leaveSubmit = function (ev) {
+				$(this).removeClass('colorpicker_focus');
+			},
+			clickSubmit = function (ev) {
+				var cal = $(this).parent();
+				var col = cal.data('colorpicker').color;
+				cal.data('colorpicker').origColor = col;
+				setCurrentColor(col, cal.get(0));
+				cal.data('colorpicker').onSubmit(col, HSBToHex(col), HSBToRGB(col), cal.data('colorpicker').el);
+			},
+			show = function (ev) {
+				var cal = $('#' + $(this).data('colorpickerId'));
+				cal.data('colorpicker').onBeforeShow.apply(this, [cal.get(0)]);
+				var pos = $(this).offset();
+				var viewPort = getViewport();
+				var top = pos.top + this.offsetHeight;
+				var left = pos.left;
+				if (top + 176 > viewPort.t + viewPort.h) {
+					top -= this.offsetHeight + 176;
+				}
+				if (left + 356 > viewPort.l + viewPort.w) {
+					left -= 356;
+				}
+				cal.css({left: left + 'px', top: top + 'px'});
+				if (cal.data('colorpicker').onShow.apply(this, [cal.get(0)]) != false) {
+					cal.show();
+				}
+				$(document).bind('mousedown', {cal: cal}, hide);
+				return false;
+			},
+			hide = function (ev) {
+				if (!isChildOf(ev.data.cal.get(0), ev.target, ev.data.cal.get(0))) {
+					if (ev.data.cal.data('colorpicker').onHide.apply(this, [ev.data.cal.get(0)]) != false) {
+						ev.data.cal.hide();
+					}
+					$(document).unbind('mousedown', hide);
+				}
+			},
+			isChildOf = function(parentEl, el, container) {
+				if (parentEl == el) {
+					return true;
+				}
+				if (parentEl.contains) {
+					return parentEl.contains(el);
+				}
+				if ( parentEl.compareDocumentPosition ) {
+					return !!(parentEl.compareDocumentPosition(el) & 16);
+				}
+				var prEl = el.parentNode;
+				while(prEl && prEl != container) {
+					if (prEl == parentEl)
+						return true;
+					prEl = prEl.parentNode;
+				}
+				return false;
+			},
+			getViewport = function () {
+				var m = document.compatMode == 'CSS1Compat';
+				return {
+					l : window.pageXOffset || (m ? document.documentElement.scrollLeft : document.body.scrollLeft),
+					t : window.pageYOffset || (m ? document.documentElement.scrollTop : document.body.scrollTop),
+					w : window.innerWidth || (m ? document.documentElement.clientWidth : document.body.clientWidth),
+					h : window.innerHeight || (m ? document.documentElement.clientHeight : document.body.clientHeight)
+				};
+			},
+			fixHSB = function (hsb) {
+				return {
+					h: Math.min(360, Math.max(0, hsb.h)),
+					s: Math.min(100, Math.max(0, hsb.s)),
+					b: Math.min(100, Math.max(0, hsb.b))
+				};
+			}, 
+			fixRGB = function (rgb) {
+				return {
+					r: Math.min(255, Math.max(0, rgb.r)),
+					g: Math.min(255, Math.max(0, rgb.g)),
+					b: Math.min(255, Math.max(0, rgb.b))
+				};
+			},
+			fixHex = function (hex) {
+				var len = 6 - hex.length;
+				if (len > 0) {
+					var o = [];
+					for (var i=0; i<len; i++) {
+						o.push('0');
+					}
+					o.push(hex);
+					hex = o.join('');
+				}
+				return hex;
+			}, 
+			HexToRGB = function (hex) {
+				var hex = parseInt(((hex.indexOf('#') > -1) ? hex.substring(1) : hex), 16);
+				return {r: hex >> 16, g: (hex & 0x00FF00) >> 8, b: (hex & 0x0000FF)};
+			},
+			HexToHSB = function (hex) {
+				return RGBToHSB(HexToRGB(hex));
+			},
+			RGBToHSB = function (rgb) {
+				var hsb = {
+					h: 0,
+					s: 0,
+					b: 0
+				};
+				var min = Math.min(rgb.r, rgb.g, rgb.b);
+				var max = Math.max(rgb.r, rgb.g, rgb.b);
+				var delta = max - min;
+				hsb.b = max;
+				if (max != 0) {
+					
+				}
+				hsb.s = max != 0 ? 255 * delta / max : 0;
+				if (hsb.s != 0) {
+					if (rgb.r == max) {
+						hsb.h = (rgb.g - rgb.b) / delta;
+					} else if (rgb.g == max) {
+						hsb.h = 2 + (rgb.b - rgb.r) / delta;
+					} else {
+						hsb.h = 4 + (rgb.r - rgb.g) / delta;
+					}
+				} else {
+					hsb.h = -1;
+				}
+				hsb.h *= 60;
+				if (hsb.h < 0) {
+					hsb.h += 360;
+				}
+				hsb.s *= 100/255;
+				hsb.b *= 100/255;
+				return hsb;
+			},
+			HSBToRGB = function (hsb) {
+				var rgb = {};
+				var h = Math.round(hsb.h);
+				var s = Math.round(hsb.s*255/100);
+				var v = Math.round(hsb.b*255/100);
+				if(s == 0) {
+					rgb.r = rgb.g = rgb.b = v;
+				} else {
+					var t1 = v;
+					var t2 = (255-s)*v/255;
+					var t3 = (t1-t2)*(h%60)/60;
+					if(h==360) h = 0;
+					if(h<60) {rgb.r=t1;	rgb.b=t2; rgb.g=t2+t3}
+					else if(h<120) {rgb.g=t1; rgb.b=t2;	rgb.r=t1-t3}
+					else if(h<180) {rgb.g=t1; rgb.r=t2;	rgb.b=t2+t3}
+					else if(h<240) {rgb.b=t1; rgb.r=t2;	rgb.g=t1-t3}
+					else if(h<300) {rgb.b=t1; rgb.g=t2;	rgb.r=t2+t3}
+					else if(h<360) {rgb.r=t1; rgb.g=t2;	rgb.b=t1-t3}
+					else {rgb.r=0; rgb.g=0;	rgb.b=0}
+				}
+				return {r:Math.round(rgb.r), g:Math.round(rgb.g), b:Math.round(rgb.b)};
+			},
+			RGBToHex = function (rgb) {
+				var hex = [
+					rgb.r.toString(16),
+					rgb.g.toString(16),
+					rgb.b.toString(16)
+				];
+				$.each(hex, function (nr, val) {
+					if (val.length == 1) {
+						hex[nr] = '0' + val;
+					}
+				});
+				return hex.join('');
+			},
+			HSBToHex = function (hsb) {
+				return RGBToHex(HSBToRGB(hsb));
+			},
+			restoreOriginal = function () {
+				var cal = $(this).parent();
+				var col = cal.data('colorpicker').origColor;
+				cal.data('colorpicker').color = col;
+				fillRGBFields(col, cal.get(0));
+				fillHexFields(col, cal.get(0));
+				fillHSBFields(col, cal.get(0));
+				setSelector(col, cal.get(0));
+				setHue(col, cal.get(0));
+				setNewColor(col, cal.get(0));
+			};
+		return {
+			init: function (opt) {
+				opt = $.extend({}, defaults, opt||{});
+				if (typeof opt.color == 'string') {
+					opt.color = HexToHSB(opt.color);
+				} else if (opt.color.r != undefined && opt.color.g != undefined && opt.color.b != undefined) {
+					opt.color = RGBToHSB(opt.color);
+				} else if (opt.color.h != undefined && opt.color.s != undefined && opt.color.b != undefined) {
+					opt.color = fixHSB(opt.color);
+				} else {
+					return this;
+				}
+				return this.each(function () {
+					if (!$(this).data('colorpickerId')) {
+						var options = $.extend({}, opt);
+						options.origColor = opt.color;
+						var id = 'collorpicker_' + parseInt(Math.random() * 1000);
+						$(this).data('colorpickerId', id);
+						var cal = $(tpl).attr('id', id);
+						if (options.flat) {
+							cal.appendTo(this).show();
+						} else {
+							cal.appendTo(document.body);
+						}
+						options.fields = cal
+											.find('input')
+												.bind('keyup', keyDown)
+												.bind('change', change)
+												.bind('blur', blur)
+												.bind('focus', focus);
+						cal
+							.find('span').bind('mousedown', downIncrement).end()
+							.find('>div.colorpicker_current_color').bind('click', restoreOriginal);
+						options.selector = cal.find('div.colorpicker_color').bind('mousedown', downSelector);
+						options.selectorIndic = options.selector.find('div div');
+						options.el = this;
+						options.hue = cal.find('div.colorpicker_hue div');
+						cal.find('div.colorpicker_hue').bind('mousedown', downHue);
+						options.newColor = cal.find('div.colorpicker_new_color');
+						options.currentColor = cal.find('div.colorpicker_current_color');
+						cal.data('colorpicker', options);
+						cal.find('div.colorpicker_submit')
+							.bind('mouseenter', enterSubmit)
+							.bind('mouseleave', leaveSubmit)
+							.bind('click', clickSubmit);
+						fillRGBFields(options.color, cal.get(0));
+						fillHSBFields(options.color, cal.get(0));
+						fillHexFields(options.color, cal.get(0));
+						setHue(options.color, cal.get(0));
+						setSelector(options.color, cal.get(0));
+						setCurrentColor(options.color, cal.get(0));
+						setNewColor(options.color, cal.get(0));
+						if (options.flat) {
+							cal.css({
+								position: 'relative',
+								display: 'block'
+							});
+						} else {
+							$(this).bind(options.eventName, show);
+						}
+					}
+				});
+			},
+			showPicker: function() {
+				return this.each( function () {
+					if ($(this).data('colorpickerId')) {
+						show.apply(this);
+					}
+				});
+			},
+			hidePicker: function() {
+				return this.each( function () {
+					if ($(this).data('colorpickerId')) {
+						$('#' + $(this).data('colorpickerId')).hide();
+					}
+				});
+			},
+			setColor: function(col) {
+				if (typeof col == 'string') {
+					col = HexToHSB(col);
+				} else if (col.r != undefined && col.g != undefined && col.b != undefined) {
+					col = RGBToHSB(col);
+				} else if (col.h != undefined && col.s != undefined && col.b != undefined) {
+					col = fixHSB(col);
+				} else {
+					return this;
+				}
+				return this.each(function(){
+					if ($(this).data('colorpickerId')) {
+						var cal = $('#' + $(this).data('colorpickerId'));
+						cal.data('colorpicker').color = col;
+						cal.data('colorpicker').origColor = col;
+						fillRGBFields(col, cal.get(0));
+						fillHSBFields(col, cal.get(0));
+						fillHexFields(col, cal.get(0));
+						setHue(col, cal.get(0));
+						setSelector(col, cal.get(0));
+						setCurrentColor(col, cal.get(0));
+						setNewColor(col, cal.get(0));
+					}
+				});
+			}
+		};
+	}();
+	$.fn.extend({
+		ColorPicker: ColorPicker.init,
+		ColorPickerHide: ColorPicker.hidePicker,
+		ColorPickerShow: ColorPicker.showPicker,
+		ColorPickerSetColor: ColorPicker.setColor
+	});
+})(jQuery)
\ No newline at end of file
diff --git a/wp-content/plugins/nextgen-gallery/admin/js/jquery-ui-1.8.6.min.js b/wp-content/plugins/nextgen-gallery/admin/js/jquery-ui-1.8.6.min.js
new file mode 100644
index 000000000..94d5f5397
--- /dev/null
+++ b/wp-content/plugins/nextgen-gallery/admin/js/jquery-ui-1.8.6.min.js
@@ -0,0 +1,391 @@
+/*!
+ * jQuery UI 1.8.6
+ *
+ * Copyright 2010, AUTHORS.txt (http://jqueryui.com/about)
+ * Dual licensed under the MIT or GPL Version 2 licenses.
+ * http://jquery.org/license
+ *
+ * http://docs.jquery.com/UI
+ */
+(function(c,j){function k(a){return!c(a).parents().andSelf().filter(function(){return c.curCSS(this,"visibility")==="hidden"||c.expr.filters.hidden(this)}).length}c.ui=c.ui||{};if(!c.ui.version){c.extend(c.ui,{version:"1.8.6",keyCode:{ALT:18,BACKSPACE:8,CAPS_LOCK:20,COMMA:188,COMMAND:91,COMMAND_LEFT:91,COMMAND_RIGHT:93,CONTROL:17,DELETE:46,DOWN:40,END:35,ENTER:13,ESCAPE:27,HOME:36,INSERT:45,LEFT:37,MENU:93,NUMPAD_ADD:107,NUMPAD_DECIMAL:110,NUMPAD_DIVIDE:111,NUMPAD_ENTER:108,NUMPAD_MULTIPLY:106,
+NUMPAD_SUBTRACT:109,PAGE_DOWN:34,PAGE_UP:33,PERIOD:190,RIGHT:39,SHIFT:16,SPACE:32,TAB:9,UP:38,WINDOWS:91}});c.fn.extend({_focus:c.fn.focus,focus:function(a,b){return typeof a==="number"?this.each(function(){var d=this;setTimeout(function(){c(d).focus();b&&b.call(d)},a)}):this._focus.apply(this,arguments)},scrollParent:function(){var a;a=c.browser.msie&&/(static|relative)/.test(this.css("position"))||/absolute/.test(this.css("position"))?this.parents().filter(function(){return/(relative|absolute|fixed)/.test(c.curCSS(this,
+"position",1))&&/(auto|scroll)/.test(c.curCSS(this,"overflow",1)+c.curCSS(this,"overflow-y",1)+c.curCSS(this,"overflow-x",1))}).eq(0):this.parents().filter(function(){return/(auto|scroll)/.test(c.curCSS(this,"overflow",1)+c.curCSS(this,"overflow-y",1)+c.curCSS(this,"overflow-x",1))}).eq(0);return/fixed/.test(this.css("position"))||!a.length?c(document):a},zIndex:function(a){if(a!==j)return this.css("zIndex",a);if(this.length){a=c(this[0]);for(var b;a.length&&a[0]!==document;){b=a.css("position");
+if(b==="absolute"||b==="relative"||b==="fixed"){b=parseInt(a.css("zIndex"),10);if(!isNaN(b)&&b!==0)return b}a=a.parent()}}return 0},disableSelection:function(){return this.bind((c.support.selectstart?"selectstart":"mousedown")+".ui-disableSelection",function(a){a.preventDefault()})},enableSelection:function(){return this.unbind(".ui-disableSelection")}});c.each(["Width","Height"],function(a,b){function d(f,g,l,m){c.each(e,function(){g-=parseFloat(c.curCSS(f,"padding"+this,true))||0;if(l)g-=parseFloat(c.curCSS(f,
+"border"+this+"Width",true))||0;if(m)g-=parseFloat(c.curCSS(f,"margin"+this,true))||0});return g}var e=b==="Width"?["Left","Right"]:["Top","Bottom"],h=b.toLowerCase(),i={innerWidth:c.fn.innerWidth,innerHeight:c.fn.innerHeight,outerWidth:c.fn.outerWidth,outerHeight:c.fn.outerHeight};c.fn["inner"+b]=function(f){if(f===j)return i["inner"+b].call(this);return this.each(function(){c(this).css(h,d(this,f)+"px")})};c.fn["outer"+b]=function(f,g){if(typeof f!=="number")return i["outer"+b].call(this,f);return this.each(function(){c(this).css(h,
+d(this,f,true,g)+"px")})}});c.extend(c.expr[":"],{data:function(a,b,d){return!!c.data(a,d[3])},focusable:function(a){var b=a.nodeName.toLowerCase(),d=c.attr(a,"tabindex");if("area"===b){b=a.parentNode;d=b.name;if(!a.href||!d||b.nodeName.toLowerCase()!=="map")return false;a=c("img[usemap=#"+d+"]")[0];return!!a&&k(a)}return(/input|select|textarea|button|object/.test(b)?!a.disabled:"a"==b?a.href||!isNaN(d):!isNaN(d))&&k(a)},tabbable:function(a){var b=c.attr(a,"tabindex");return(isNaN(b)||b>=0)&&c(a).is(":focusable")}});
+c(function(){var a=document.body,b=a.appendChild(b=document.createElement("div"));c.extend(b.style,{minHeight:"100px",height:"auto",padding:0,borderWidth:0});c.support.minHeight=b.offsetHeight===100;c.support.selectstart="onselectstart"in b;a.removeChild(b).style.display="none"});c.extend(c.ui,{plugin:{add:function(a,b,d){a=c.ui[a].prototype;for(var e in d){a.plugins[e]=a.plugins[e]||[];a.plugins[e].push([b,d[e]])}},call:function(a,b,d){if((b=a.plugins[b])&&a.element[0].parentNode)for(var e=0;e<b.length;e++)a.options[b[e][0]]&&
+b[e][1].apply(a.element,d)}},contains:function(a,b){return document.compareDocumentPosition?a.compareDocumentPosition(b)&16:a!==b&&a.contains(b)},hasScroll:function(a,b){if(c(a).css("overflow")==="hidden")return false;b=b&&b==="left"?"scrollLeft":"scrollTop";var d=false;if(a[b]>0)return true;a[b]=1;d=a[b]>0;a[b]=0;return d},isOverAxis:function(a,b,d){return a>b&&a<b+d},isOver:function(a,b,d,e,h,i){return c.ui.isOverAxis(a,d,h)&&c.ui.isOverAxis(b,e,i)}})}})(jQuery);
+;/*!
+ * jQuery UI Widget 1.8.6
+ *
+ * Copyright 2010, AUTHORS.txt (http://jqueryui.com/about)
+ * Dual licensed under the MIT or GPL Version 2 licenses.
+ * http://jquery.org/license
+ *
+ * http://docs.jquery.com/UI/Widget
+ */
+(function(b,j){if(b.cleanData){var k=b.cleanData;b.cleanData=function(a){for(var c=0,d;(d=a[c])!=null;c++)b(d).triggerHandler("remove");k(a)}}else{var l=b.fn.remove;b.fn.remove=function(a,c){return this.each(function(){if(!c)if(!a||b.filter(a,[this]).length)b("*",this).add([this]).each(function(){b(this).triggerHandler("remove")});return l.call(b(this),a,c)})}}b.widget=function(a,c,d){var e=a.split(".")[0],f;a=a.split(".")[1];f=e+"-"+a;if(!d){d=c;c=b.Widget}b.expr[":"][f]=function(h){return!!b.data(h,
+a)};b[e]=b[e]||{};b[e][a]=function(h,g){arguments.length&&this._createWidget(h,g)};c=new c;c.options=b.extend(true,{},c.options);b[e][a].prototype=b.extend(true,c,{namespace:e,widgetName:a,widgetEventPrefix:b[e][a].prototype.widgetEventPrefix||a,widgetBaseClass:f},d);b.widget.bridge(a,b[e][a])};b.widget.bridge=function(a,c){b.fn[a]=function(d){var e=typeof d==="string",f=Array.prototype.slice.call(arguments,1),h=this;d=!e&&f.length?b.extend.apply(null,[true,d].concat(f)):d;if(e&&d.charAt(0)==="_")return h;
+e?this.each(function(){var g=b.data(this,a),i=g&&b.isFunction(g[d])?g[d].apply(g,f):g;if(i!==g&&i!==j){h=i;return false}}):this.each(function(){var g=b.data(this,a);g?g.option(d||{})._init():b.data(this,a,new c(d,this))});return h}};b.Widget=function(a,c){arguments.length&&this._createWidget(a,c)};b.Widget.prototype={widgetName:"widget",widgetEventPrefix:"",options:{disabled:false},_createWidget:function(a,c){b.data(c,this.widgetName,this);this.element=b(c);this.options=b.extend(true,{},this.options,
+this._getCreateOptions(),a);var d=this;this.element.bind("remove."+this.widgetName,function(){d.destroy()});this._create();this._trigger("create");this._init()},_getCreateOptions:function(){return b.metadata&&b.metadata.get(this.element[0])[this.widgetName]},_create:function(){},_init:function(){},destroy:function(){this.element.unbind("."+this.widgetName).removeData(this.widgetName);this.widget().unbind("."+this.widgetName).removeAttr("aria-disabled").removeClass(this.widgetBaseClass+"-disabled ui-state-disabled")},
+widget:function(){return this.element},option:function(a,c){var d=a;if(arguments.length===0)return b.extend({},this.options);if(typeof a==="string"){if(c===j)return this.options[a];d={};d[a]=c}this._setOptions(d);return this},_setOptions:function(a){var c=this;b.each(a,function(d,e){c._setOption(d,e)});return this},_setOption:function(a,c){this.options[a]=c;if(a==="disabled")this.widget()[c?"addClass":"removeClass"](this.widgetBaseClass+"-disabled ui-state-disabled").attr("aria-disabled",c);return this},
+enable:function(){return this._setOption("disabled",false)},disable:function(){return this._setOption("disabled",true)},_trigger:function(a,c,d){var e=this.options[a];c=b.Event(c);c.type=(a===this.widgetEventPrefix?a:this.widgetEventPrefix+a).toLowerCase();d=d||{};if(c.originalEvent){a=b.event.props.length;for(var f;a;){f=b.event.props[--a];c[f]=c.originalEvent[f]}}this.element.trigger(c,d);return!(b.isFunction(e)&&e.call(this.element[0],c,d)===false||c.isDefaultPrevented())}}})(jQuery);
+;/*!
+ * jQuery UI Mouse 1.8.6
+ *
+ * Copyright 2010, AUTHORS.txt (http://jqueryui.com/about)
+ * Dual licensed under the MIT or GPL Version 2 licenses.
+ * http://jquery.org/license
+ *
+ * http://docs.jquery.com/UI/Mouse
+ *
+ * Depends:
+ *	jquery.ui.widget.js
+ */
+(function(c){c.widget("ui.mouse",{options:{cancel:":input,option",distance:1,delay:0},_mouseInit:function(){var a=this;this.element.bind("mousedown."+this.widgetName,function(b){return a._mouseDown(b)}).bind("click."+this.widgetName,function(b){if(a._preventClickEvent){a._preventClickEvent=false;b.stopImmediatePropagation();return false}});this.started=false},_mouseDestroy:function(){this.element.unbind("."+this.widgetName)},_mouseDown:function(a){a.originalEvent=a.originalEvent||{};if(!a.originalEvent.mouseHandled){this._mouseStarted&&
+this._mouseUp(a);this._mouseDownEvent=a;var b=this,e=a.which==1,f=typeof this.options.cancel=="string"?c(a.target).parents().add(a.target).filter(this.options.cancel).length:false;if(!e||f||!this._mouseCapture(a))return true;this.mouseDelayMet=!this.options.delay;if(!this.mouseDelayMet)this._mouseDelayTimer=setTimeout(function(){b.mouseDelayMet=true},this.options.delay);if(this._mouseDistanceMet(a)&&this._mouseDelayMet(a)){this._mouseStarted=this._mouseStart(a)!==false;if(!this._mouseStarted){a.preventDefault();
+return true}}this._mouseMoveDelegate=function(d){return b._mouseMove(d)};this._mouseUpDelegate=function(d){return b._mouseUp(d)};c(document).bind("mousemove."+this.widgetName,this._mouseMoveDelegate).bind("mouseup."+this.widgetName,this._mouseUpDelegate);a.preventDefault();return a.originalEvent.mouseHandled=true}},_mouseMove:function(a){if(c.browser.msie&&!(document.documentMode>=9)&&!a.button)return this._mouseUp(a);if(this._mouseStarted){this._mouseDrag(a);return a.preventDefault()}if(this._mouseDistanceMet(a)&&
+this._mouseDelayMet(a))(this._mouseStarted=this._mouseStart(this._mouseDownEvent,a)!==false)?this._mouseDrag(a):this._mouseUp(a);return!this._mouseStarted},_mouseUp:function(a){c(document).unbind("mousemove."+this.widgetName,this._mouseMoveDelegate).unbind("mouseup."+this.widgetName,this._mouseUpDelegate);if(this._mouseStarted){this._mouseStarted=false;this._preventClickEvent=a.target==this._mouseDownEvent.target;this._mouseStop(a)}return false},_mouseDistanceMet:function(a){return Math.max(Math.abs(this._mouseDownEvent.pageX-
+a.pageX),Math.abs(this._mouseDownEvent.pageY-a.pageY))>=this.options.distance},_mouseDelayMet:function(){return this.mouseDelayMet},_mouseStart:function(){},_mouseDrag:function(){},_mouseStop:function(){},_mouseCapture:function(){return true}})})(jQuery);
+;/*
+ * jQuery UI Position 1.8.6
+ *
+ * Copyright 2010, AUTHORS.txt (http://jqueryui.com/about)
+ * Dual licensed under the MIT or GPL Version 2 licenses.
+ * http://jquery.org/license
+ *
+ * http://docs.jquery.com/UI/Position
+ */
+(function(c){c.ui=c.ui||{};var n=/left|center|right/,o=/top|center|bottom/,t=c.fn.position,u=c.fn.offset;c.fn.position=function(b){if(!b||!b.of)return t.apply(this,arguments);b=c.extend({},b);var a=c(b.of),d=a[0],g=(b.collision||"flip").split(" "),e=b.offset?b.offset.split(" "):[0,0],h,k,j;if(d.nodeType===9){h=a.width();k=a.height();j={top:0,left:0}}else if(d.setTimeout){h=a.width();k=a.height();j={top:a.scrollTop(),left:a.scrollLeft()}}else if(d.preventDefault){b.at="left top";h=k=0;j={top:b.of.pageY,
+left:b.of.pageX}}else{h=a.outerWidth();k=a.outerHeight();j=a.offset()}c.each(["my","at"],function(){var f=(b[this]||"").split(" ");if(f.length===1)f=n.test(f[0])?f.concat(["center"]):o.test(f[0])?["center"].concat(f):["center","center"];f[0]=n.test(f[0])?f[0]:"center";f[1]=o.test(f[1])?f[1]:"center";b[this]=f});if(g.length===1)g[1]=g[0];e[0]=parseInt(e[0],10)||0;if(e.length===1)e[1]=e[0];e[1]=parseInt(e[1],10)||0;if(b.at[0]==="right")j.left+=h;else if(b.at[0]==="center")j.left+=h/2;if(b.at[1]==="bottom")j.top+=
+k;else if(b.at[1]==="center")j.top+=k/2;j.left+=e[0];j.top+=e[1];return this.each(function(){var f=c(this),l=f.outerWidth(),m=f.outerHeight(),p=parseInt(c.curCSS(this,"marginLeft",true))||0,q=parseInt(c.curCSS(this,"marginTop",true))||0,v=l+p+parseInt(c.curCSS(this,"marginRight",true))||0,w=m+q+parseInt(c.curCSS(this,"marginBottom",true))||0,i=c.extend({},j),r;if(b.my[0]==="right")i.left-=l;else if(b.my[0]==="center")i.left-=l/2;if(b.my[1]==="bottom")i.top-=m;else if(b.my[1]==="center")i.top-=m/2;
+i.left=parseInt(i.left);i.top=parseInt(i.top);r={left:i.left-p,top:i.top-q};c.each(["left","top"],function(s,x){c.ui.position[g[s]]&&c.ui.position[g[s]][x](i,{targetWidth:h,targetHeight:k,elemWidth:l,elemHeight:m,collisionPosition:r,collisionWidth:v,collisionHeight:w,offset:e,my:b.my,at:b.at})});c.fn.bgiframe&&f.bgiframe();f.offset(c.extend(i,{using:b.using}))})};c.ui.position={fit:{left:function(b,a){var d=c(window);d=a.collisionPosition.left+a.collisionWidth-d.width()-d.scrollLeft();b.left=d>0?
+b.left-d:Math.max(b.left-a.collisionPosition.left,b.left)},top:function(b,a){var d=c(window);d=a.collisionPosition.top+a.collisionHeight-d.height()-d.scrollTop();b.top=d>0?b.top-d:Math.max(b.top-a.collisionPosition.top,b.top)}},flip:{left:function(b,a){if(a.at[0]!=="center"){var d=c(window);d=a.collisionPosition.left+a.collisionWidth-d.width()-d.scrollLeft();var g=a.my[0]==="left"?-a.elemWidth:a.my[0]==="right"?a.elemWidth:0,e=a.at[0]==="left"?a.targetWidth:-a.targetWidth,h=-2*a.offset[0];b.left+=
+a.collisionPosition.left<0?g+e+h:d>0?g+e+h:0}},top:function(b,a){if(a.at[1]!=="center"){var d=c(window);d=a.collisionPosition.top+a.collisionHeight-d.height()-d.scrollTop();var g=a.my[1]==="top"?-a.elemHeight:a.my[1]==="bottom"?a.elemHeight:0,e=a.at[1]==="top"?a.targetHeight:-a.targetHeight,h=-2*a.offset[1];b.top+=a.collisionPosition.top<0?g+e+h:d>0?g+e+h:0}}}};if(!c.offset.setOffset){c.offset.setOffset=function(b,a){if(/static/.test(c.curCSS(b,"position")))b.style.position="relative";var d=c(b),
+g=d.offset(),e=parseInt(c.curCSS(b,"top",true),10)||0,h=parseInt(c.curCSS(b,"left",true),10)||0;g={top:a.top-g.top+e,left:a.left-g.left+h};"using"in a?a.using.call(b,g):d.css(g)};c.fn.offset=function(b){var a=this[0];if(!a||!a.ownerDocument)return null;if(b)return this.each(function(){c.offset.setOffset(this,b)});return u.call(this)}}})(jQuery);
+;/*
+ * jQuery UI Draggable 1.8.6
+ *
+ * Copyright 2010, AUTHORS.txt (http://jqueryui.com/about)
+ * Dual licensed under the MIT or GPL Version 2 licenses.
+ * http://jquery.org/license
+ *
+ * http://docs.jquery.com/UI/Draggables
+ *
+ * Depends:
+ *	jquery.ui.core.js
+ *	jquery.ui.mouse.js
+ *	jquery.ui.widget.js
+ */
+(function(d){d.widget("ui.draggable",d.ui.mouse,{widgetEventPrefix:"drag",options:{addClasses:true,appendTo:"parent",axis:false,connectToSortable:false,containment:false,cursor:"auto",cursorAt:false,grid:false,handle:false,helper:"original",iframeFix:false,opacity:false,refreshPositions:false,revert:false,revertDuration:500,scope:"default",scroll:true,scrollSensitivity:20,scrollSpeed:20,snap:false,snapMode:"both",snapTolerance:20,stack:false,zIndex:false},_create:function(){if(this.options.helper==
+"original"&&!/^(?:r|a|f)/.test(this.element.css("position")))this.element[0].style.position="relative";this.options.addClasses&&this.element.addClass("ui-draggable");this.options.disabled&&this.element.addClass("ui-draggable-disabled");this._mouseInit()},destroy:function(){if(this.element.data("draggable")){this.element.removeData("draggable").unbind(".draggable").removeClass("ui-draggable ui-draggable-dragging ui-draggable-disabled");this._mouseDestroy();return this}},_mouseCapture:function(a){var b=
+this.options;if(this.helper||b.disabled||d(a.target).is(".ui-resizable-handle"))return false;this.handle=this._getHandle(a);if(!this.handle)return false;return true},_mouseStart:function(a){var b=this.options;this.helper=this._createHelper(a);this._cacheHelperProportions();if(d.ui.ddmanager)d.ui.ddmanager.current=this;this._cacheMargins();this.cssPosition=this.helper.css("position");this.scrollParent=this.helper.scrollParent();this.offset=this.positionAbs=this.element.offset();this.offset={top:this.offset.top-
+this.margins.top,left:this.offset.left-this.margins.left};d.extend(this.offset,{click:{left:a.pageX-this.offset.left,top:a.pageY-this.offset.top},parent:this._getParentOffset(),relative:this._getRelativeOffset()});this.originalPosition=this.position=this._generatePosition(a);this.originalPageX=a.pageX;this.originalPageY=a.pageY;b.cursorAt&&this._adjustOffsetFromHelper(b.cursorAt);b.containment&&this._setContainment();if(this._trigger("start",a)===false){this._clear();return false}this._cacheHelperProportions();
+d.ui.ddmanager&&!b.dropBehaviour&&d.ui.ddmanager.prepareOffsets(this,a);this.helper.addClass("ui-draggable-dragging");this._mouseDrag(a,true);return true},_mouseDrag:function(a,b){this.position=this._generatePosition(a);this.positionAbs=this._convertPositionTo("absolute");if(!b){b=this._uiHash();if(this._trigger("drag",a,b)===false){this._mouseUp({});return false}this.position=b.position}if(!this.options.axis||this.options.axis!="y")this.helper[0].style.left=this.position.left+"px";if(!this.options.axis||
+this.options.axis!="x")this.helper[0].style.top=this.position.top+"px";d.ui.ddmanager&&d.ui.ddmanager.drag(this,a);return false},_mouseStop:function(a){var b=false;if(d.ui.ddmanager&&!this.options.dropBehaviour)b=d.ui.ddmanager.drop(this,a);if(this.dropped){b=this.dropped;this.dropped=false}if(!this.element[0]||!this.element[0].parentNode)return false;if(this.options.revert=="invalid"&&!b||this.options.revert=="valid"&&b||this.options.revert===true||d.isFunction(this.options.revert)&&this.options.revert.call(this.element,
+b)){var c=this;d(this.helper).animate(this.originalPosition,parseInt(this.options.revertDuration,10),function(){c._trigger("stop",a)!==false&&c._clear()})}else this._trigger("stop",a)!==false&&this._clear();return false},cancel:function(){this.helper.is(".ui-draggable-dragging")?this._mouseUp({}):this._clear();return this},_getHandle:function(a){var b=!this.options.handle||!d(this.options.handle,this.element).length?true:false;d(this.options.handle,this.element).find("*").andSelf().each(function(){if(this==
+a.target)b=true});return b},_createHelper:function(a){var b=this.options;a=d.isFunction(b.helper)?d(b.helper.apply(this.element[0],[a])):b.helper=="clone"?this.element.clone():this.element;a.parents("body").length||a.appendTo(b.appendTo=="parent"?this.element[0].parentNode:b.appendTo);a[0]!=this.element[0]&&!/(fixed|absolute)/.test(a.css("position"))&&a.css("position","absolute");return a},_adjustOffsetFromHelper:function(a){if(typeof a=="string")a=a.split(" ");if(d.isArray(a))a={left:+a[0],top:+a[1]||
+0};if("left"in a)this.offset.click.left=a.left+this.margins.left;if("right"in a)this.offset.click.left=this.helperProportions.width-a.right+this.margins.left;if("top"in a)this.offset.click.top=a.top+this.margins.top;if("bottom"in a)this.offset.click.top=this.helperProportions.height-a.bottom+this.margins.top},_getParentOffset:function(){this.offsetParent=this.helper.offsetParent();var a=this.offsetParent.offset();if(this.cssPosition=="absolute"&&this.scrollParent[0]!=document&&d.ui.contains(this.scrollParent[0],
+this.offsetParent[0])){a.left+=this.scrollParent.scrollLeft();a.top+=this.scrollParent.scrollTop()}if(this.offsetParent[0]==document.body||this.offsetParent[0].tagName&&this.offsetParent[0].tagName.toLowerCase()=="html"&&d.browser.msie)a={top:0,left:0};return{top:a.top+(parseInt(this.offsetParent.css("borderTopWidth"),10)||0),left:a.left+(parseInt(this.offsetParent.css("borderLeftWidth"),10)||0)}},_getRelativeOffset:function(){if(this.cssPosition=="relative"){var a=this.element.position();return{top:a.top-
+(parseInt(this.helper.css("top"),10)||0)+this.scrollParent.scrollTop(),left:a.left-(parseInt(this.helper.css("left"),10)||0)+this.scrollParent.scrollLeft()}}else return{top:0,left:0}},_cacheMargins:function(){this.margins={left:parseInt(this.element.css("marginLeft"),10)||0,top:parseInt(this.element.css("marginTop"),10)||0}},_cacheHelperProportions:function(){this.helperProportions={width:this.helper.outerWidth(),height:this.helper.outerHeight()}},_setContainment:function(){var a=this.options;if(a.containment==
+"parent")a.containment=this.helper[0].parentNode;if(a.containment=="document"||a.containment=="window")this.containment=[0-this.offset.relative.left-this.offset.parent.left,0-this.offset.relative.top-this.offset.parent.top,d(a.containment=="document"?document:window).width()-this.helperProportions.width-this.margins.left,(d(a.containment=="document"?document:window).height()||document.body.parentNode.scrollHeight)-this.helperProportions.height-this.margins.top];if(!/^(document|window|parent)$/.test(a.containment)&&
+a.containment.constructor!=Array){var b=d(a.containment)[0];if(b){a=d(a.containment).offset();var c=d(b).css("overflow")!="hidden";this.containment=[a.left+(parseInt(d(b).css("borderLeftWidth"),10)||0)+(parseInt(d(b).css("paddingLeft"),10)||0)-this.margins.left,a.top+(parseInt(d(b).css("borderTopWidth"),10)||0)+(parseInt(d(b).css("paddingTop"),10)||0)-this.margins.top,a.left+(c?Math.max(b.scrollWidth,b.offsetWidth):b.offsetWidth)-(parseInt(d(b).css("borderLeftWidth"),10)||0)-(parseInt(d(b).css("paddingRight"),
+10)||0)-this.helperProportions.width-this.margins.left,a.top+(c?Math.max(b.scrollHeight,b.offsetHeight):b.offsetHeight)-(parseInt(d(b).css("borderTopWidth"),10)||0)-(parseInt(d(b).css("paddingBottom"),10)||0)-this.helperProportions.height-this.margins.top]}}else if(a.containment.constructor==Array)this.containment=a.containment},_convertPositionTo:function(a,b){if(!b)b=this.position;a=a=="absolute"?1:-1;var c=this.cssPosition=="absolute"&&!(this.scrollParent[0]!=document&&d.ui.contains(this.scrollParent[0],
+this.offsetParent[0]))?this.offsetParent:this.scrollParent,f=/(html|body)/i.test(c[0].tagName);return{top:b.top+this.offset.relative.top*a+this.offset.parent.top*a-(d.browser.safari&&d.browser.version<526&&this.cssPosition=="fixed"?0:(this.cssPosition=="fixed"?-this.scrollParent.scrollTop():f?0:c.scrollTop())*a),left:b.left+this.offset.relative.left*a+this.offset.parent.left*a-(d.browser.safari&&d.browser.version<526&&this.cssPosition=="fixed"?0:(this.cssPosition=="fixed"?-this.scrollParent.scrollLeft():
+f?0:c.scrollLeft())*a)}},_generatePosition:function(a){var b=this.options,c=this.cssPosition=="absolute"&&!(this.scrollParent[0]!=document&&d.ui.contains(this.scrollParent[0],this.offsetParent[0]))?this.offsetParent:this.scrollParent,f=/(html|body)/i.test(c[0].tagName),e=a.pageX,g=a.pageY;if(this.originalPosition){if(this.containment){if(a.pageX-this.offset.click.left<this.containment[0])e=this.containment[0]+this.offset.click.left;if(a.pageY-this.offset.click.top<this.containment[1])g=this.containment[1]+
+this.offset.click.top;if(a.pageX-this.offset.click.left>this.containment[2])e=this.containment[2]+this.offset.click.left;if(a.pageY-this.offset.click.top>this.containment[3])g=this.containment[3]+this.offset.click.top}if(b.grid){g=this.originalPageY+Math.round((g-this.originalPageY)/b.grid[1])*b.grid[1];g=this.containment?!(g-this.offset.click.top<this.containment[1]||g-this.offset.click.top>this.containment[3])?g:!(g-this.offset.click.top<this.containment[1])?g-b.grid[1]:g+b.grid[1]:g;e=this.originalPageX+
+Math.round((e-this.originalPageX)/b.grid[0])*b.grid[0];e=this.containment?!(e-this.offset.click.left<this.containment[0]||e-this.offset.click.left>this.containment[2])?e:!(e-this.offset.click.left<this.containment[0])?e-b.grid[0]:e+b.grid[0]:e}}return{top:g-this.offset.click.top-this.offset.relative.top-this.offset.parent.top+(d.browser.safari&&d.browser.version<526&&this.cssPosition=="fixed"?0:this.cssPosition=="fixed"?-this.scrollParent.scrollTop():f?0:c.scrollTop()),left:e-this.offset.click.left-
+this.offset.relative.left-this.offset.parent.left+(d.browser.safari&&d.browser.version<526&&this.cssPosition=="fixed"?0:this.cssPosition=="fixed"?-this.scrollParent.scrollLeft():f?0:c.scrollLeft())}},_clear:function(){this.helper.removeClass("ui-draggable-dragging");this.helper[0]!=this.element[0]&&!this.cancelHelperRemoval&&this.helper.remove();this.helper=null;this.cancelHelperRemoval=false},_trigger:function(a,b,c){c=c||this._uiHash();d.ui.plugin.call(this,a,[b,c]);if(a=="drag")this.positionAbs=
+this._convertPositionTo("absolute");return d.Widget.prototype._trigger.call(this,a,b,c)},plugins:{},_uiHash:function(){return{helper:this.helper,position:this.position,originalPosition:this.originalPosition,offset:this.positionAbs}}});d.extend(d.ui.draggable,{version:"1.8.6"});d.ui.plugin.add("draggable","connectToSortable",{start:function(a,b){var c=d(this).data("draggable"),f=c.options,e=d.extend({},b,{item:c.element});c.sortables=[];d(f.connectToSortable).each(function(){var g=d.data(this,"sortable");
+if(g&&!g.options.disabled){c.sortables.push({instance:g,shouldRevert:g.options.revert});g._refreshItems();g._trigger("activate",a,e)}})},stop:function(a,b){var c=d(this).data("draggable"),f=d.extend({},b,{item:c.element});d.each(c.sortables,function(){if(this.instance.isOver){this.instance.isOver=0;c.cancelHelperRemoval=true;this.instance.cancelHelperRemoval=false;if(this.shouldRevert)this.instance.options.revert=true;this.instance._mouseStop(a);this.instance.options.helper=this.instance.options._helper;
+c.options.helper=="original"&&this.instance.currentItem.css({top:"auto",left:"auto"})}else{this.instance.cancelHelperRemoval=false;this.instance._trigger("deactivate",a,f)}})},drag:function(a,b){var c=d(this).data("draggable"),f=this;d.each(c.sortables,function(){this.instance.positionAbs=c.positionAbs;this.instance.helperProportions=c.helperProportions;this.instance.offset.click=c.offset.click;if(this.instance._intersectsWith(this.instance.containerCache)){if(!this.instance.isOver){this.instance.isOver=
+1;this.instance.currentItem=d(f).clone().appendTo(this.instance.element).data("sortable-item",true);this.instance.options._helper=this.instance.options.helper;this.instance.options.helper=function(){return b.helper[0]};a.target=this.instance.currentItem[0];this.instance._mouseCapture(a,true);this.instance._mouseStart(a,true,true);this.instance.offset.click.top=c.offset.click.top;this.instance.offset.click.left=c.offset.click.left;this.instance.offset.parent.left-=c.offset.parent.left-this.instance.offset.parent.left;
+this.instance.offset.parent.top-=c.offset.parent.top-this.instance.offset.parent.top;c._trigger("toSortable",a);c.dropped=this.instance.element;c.currentItem=c.element;this.instance.fromOutside=c}this.instance.currentItem&&this.instance._mouseDrag(a)}else if(this.instance.isOver){this.instance.isOver=0;this.instance.cancelHelperRemoval=true;this.instance.options.revert=false;this.instance._trigger("out",a,this.instance._uiHash(this.instance));this.instance._mouseStop(a,true);this.instance.options.helper=
+this.instance.options._helper;this.instance.currentItem.remove();this.instance.placeholder&&this.instance.placeholder.remove();c._trigger("fromSortable",a);c.dropped=false}})}});d.ui.plugin.add("draggable","cursor",{start:function(){var a=d("body"),b=d(this).data("draggable").options;if(a.css("cursor"))b._cursor=a.css("cursor");a.css("cursor",b.cursor)},stop:function(){var a=d(this).data("draggable").options;a._cursor&&d("body").css("cursor",a._cursor)}});d.ui.plugin.add("draggable","iframeFix",{start:function(){var a=
+d(this).data("draggable").options;d(a.iframeFix===true?"iframe":a.iframeFix).each(function(){d('<div class="ui-draggable-iframeFix" style="background: #fff;"></div>').css({width:this.offsetWidth+"px",height:this.offsetHeight+"px",position:"absolute",opacity:"0.001",zIndex:1E3}).css(d(this).offset()).appendTo("body")})},stop:function(){d("div.ui-draggable-iframeFix").each(function(){this.parentNode.removeChild(this)})}});d.ui.plugin.add("draggable","opacity",{start:function(a,b){a=d(b.helper);b=d(this).data("draggable").options;
+if(a.css("opacity"))b._opacity=a.css("opacity");a.css("opacity",b.opacity)},stop:function(a,b){a=d(this).data("draggable").options;a._opacity&&d(b.helper).css("opacity",a._opacity)}});d.ui.plugin.add("draggable","scroll",{start:function(){var a=d(this).data("draggable");if(a.scrollParent[0]!=document&&a.scrollParent[0].tagName!="HTML")a.overflowOffset=a.scrollParent.offset()},drag:function(a){var b=d(this).data("draggable"),c=b.options,f=false;if(b.scrollParent[0]!=document&&b.scrollParent[0].tagName!=
+"HTML"){if(!c.axis||c.axis!="x")if(b.overflowOffset.top+b.scrollParent[0].offsetHeight-a.pageY<c.scrollSensitivity)b.scrollParent[0].scrollTop=f=b.scrollParent[0].scrollTop+c.scrollSpeed;else if(a.pageY-b.overflowOffset.top<c.scrollSensitivity)b.scrollParent[0].scrollTop=f=b.scrollParent[0].scrollTop-c.scrollSpeed;if(!c.axis||c.axis!="y")if(b.overflowOffset.left+b.scrollParent[0].offsetWidth-a.pageX<c.scrollSensitivity)b.scrollParent[0].scrollLeft=f=b.scrollParent[0].scrollLeft+c.scrollSpeed;else if(a.pageX-
+b.overflowOffset.left<c.scrollSensitivity)b.scrollParent[0].scrollLeft=f=b.scrollParent[0].scrollLeft-c.scrollSpeed}else{if(!c.axis||c.axis!="x")if(a.pageY-d(document).scrollTop()<c.scrollSensitivity)f=d(document).scrollTop(d(document).scrollTop()-c.scrollSpeed);else if(d(window).height()-(a.pageY-d(document).scrollTop())<c.scrollSensitivity)f=d(document).scrollTop(d(document).scrollTop()+c.scrollSpeed);if(!c.axis||c.axis!="y")if(a.pageX-d(document).scrollLeft()<c.scrollSensitivity)f=d(document).scrollLeft(d(document).scrollLeft()-
+c.scrollSpeed);else if(d(window).width()-(a.pageX-d(document).scrollLeft())<c.scrollSensitivity)f=d(document).scrollLeft(d(document).scrollLeft()+c.scrollSpeed)}f!==false&&d.ui.ddmanager&&!c.dropBehaviour&&d.ui.ddmanager.prepareOffsets(b,a)}});d.ui.plugin.add("draggable","snap",{start:function(){var a=d(this).data("draggable"),b=a.options;a.snapElements=[];d(b.snap.constructor!=String?b.snap.items||":data(draggable)":b.snap).each(function(){var c=d(this),f=c.offset();this!=a.element[0]&&a.snapElements.push({item:this,
+width:c.outerWidth(),height:c.outerHeight(),top:f.top,left:f.left})})},drag:function(a,b){for(var c=d(this).data("draggable"),f=c.options,e=f.snapTolerance,g=b.offset.left,n=g+c.helperProportions.width,m=b.offset.top,o=m+c.helperProportions.height,h=c.snapElements.length-1;h>=0;h--){var i=c.snapElements[h].left,k=i+c.snapElements[h].width,j=c.snapElements[h].top,l=j+c.snapElements[h].height;if(i-e<g&&g<k+e&&j-e<m&&m<l+e||i-e<g&&g<k+e&&j-e<o&&o<l+e||i-e<n&&n<k+e&&j-e<m&&m<l+e||i-e<n&&n<k+e&&j-e<o&&
+o<l+e){if(f.snapMode!="inner"){var p=Math.abs(j-o)<=e,q=Math.abs(l-m)<=e,r=Math.abs(i-n)<=e,s=Math.abs(k-g)<=e;if(p)b.position.top=c._convertPositionTo("relative",{top:j-c.helperProportions.height,left:0}).top-c.margins.top;if(q)b.position.top=c._convertPositionTo("relative",{top:l,left:0}).top-c.margins.top;if(r)b.position.left=c._convertPositionTo("relative",{top:0,left:i-c.helperProportions.width}).left-c.margins.left;if(s)b.position.left=c._convertPositionTo("relative",{top:0,left:k}).left-c.margins.left}var t=
+p||q||r||s;if(f.snapMode!="outer"){p=Math.abs(j-m)<=e;q=Math.abs(l-o)<=e;r=Math.abs(i-g)<=e;s=Math.abs(k-n)<=e;if(p)b.position.top=c._convertPositionTo("relative",{top:j,left:0}).top-c.margins.top;if(q)b.position.top=c._convertPositionTo("relative",{top:l-c.helperProportions.height,left:0}).top-c.margins.top;if(r)b.position.left=c._convertPositionTo("relative",{top:0,left:i}).left-c.margins.left;if(s)b.position.left=c._convertPositionTo("relative",{top:0,left:k-c.helperProportions.width}).left-c.margins.left}if(!c.snapElements[h].snapping&&
+(p||q||r||s||t))c.options.snap.snap&&c.options.snap.snap.call(c.element,a,d.extend(c._uiHash(),{snapItem:c.snapElements[h].item}));c.snapElements[h].snapping=p||q||r||s||t}else{c.snapElements[h].snapping&&c.options.snap.release&&c.options.snap.release.call(c.element,a,d.extend(c._uiHash(),{snapItem:c.snapElements[h].item}));c.snapElements[h].snapping=false}}}});d.ui.plugin.add("draggable","stack",{start:function(){var a=d(this).data("draggable").options;a=d.makeArray(d(a.stack)).sort(function(c,f){return(parseInt(d(c).css("zIndex"),
+10)||0)-(parseInt(d(f).css("zIndex"),10)||0)});if(a.length){var b=parseInt(a[0].style.zIndex)||0;d(a).each(function(c){this.style.zIndex=b+c});this[0].style.zIndex=b+a.length}}});d.ui.plugin.add("draggable","zIndex",{start:function(a,b){a=d(b.helper);b=d(this).data("draggable").options;if(a.css("zIndex"))b._zIndex=a.css("zIndex");a.css("zIndex",b.zIndex)},stop:function(a,b){a=d(this).data("draggable").options;a._zIndex&&d(b.helper).css("zIndex",a._zIndex)}})})(jQuery);
+;/*
+ * jQuery UI Droppable 1.8.6
+ *
+ * Copyright 2010, AUTHORS.txt (http://jqueryui.com/about)
+ * Dual licensed under the MIT or GPL Version 2 licenses.
+ * http://jquery.org/license
+ *
+ * http://docs.jquery.com/UI/Droppables
+ *
+ * Depends:
+ *	jquery.ui.core.js
+ *	jquery.ui.widget.js
+ *	jquery.ui.mouse.js
+ *	jquery.ui.draggable.js
+ */
+(function(d){d.widget("ui.droppable",{widgetEventPrefix:"drop",options:{accept:"*",activeClass:false,addClasses:true,greedy:false,hoverClass:false,scope:"default",tolerance:"intersect"},_create:function(){var a=this.options,b=a.accept;this.isover=0;this.isout=1;this.accept=d.isFunction(b)?b:function(c){return c.is(b)};this.proportions={width:this.element[0].offsetWidth,height:this.element[0].offsetHeight};d.ui.ddmanager.droppables[a.scope]=d.ui.ddmanager.droppables[a.scope]||[];d.ui.ddmanager.droppables[a.scope].push(this);
+a.addClasses&&this.element.addClass("ui-droppable")},destroy:function(){for(var a=d.ui.ddmanager.droppables[this.options.scope],b=0;b<a.length;b++)a[b]==this&&a.splice(b,1);this.element.removeClass("ui-droppable ui-droppable-disabled").removeData("droppable").unbind(".droppable");return this},_setOption:function(a,b){if(a=="accept")this.accept=d.isFunction(b)?b:function(c){return c.is(b)};d.Widget.prototype._setOption.apply(this,arguments)},_activate:function(a){var b=d.ui.ddmanager.current;this.options.activeClass&&
+this.element.addClass(this.options.activeClass);b&&this._trigger("activate",a,this.ui(b))},_deactivate:function(a){var b=d.ui.ddmanager.current;this.options.activeClass&&this.element.removeClass(this.options.activeClass);b&&this._trigger("deactivate",a,this.ui(b))},_over:function(a){var b=d.ui.ddmanager.current;if(!(!b||(b.currentItem||b.element)[0]==this.element[0]))if(this.accept.call(this.element[0],b.currentItem||b.element)){this.options.hoverClass&&this.element.addClass(this.options.hoverClass);
+this._trigger("over",a,this.ui(b))}},_out:function(a){var b=d.ui.ddmanager.current;if(!(!b||(b.currentItem||b.element)[0]==this.element[0]))if(this.accept.call(this.element[0],b.currentItem||b.element)){this.options.hoverClass&&this.element.removeClass(this.options.hoverClass);this._trigger("out",a,this.ui(b))}},_drop:function(a,b){var c=b||d.ui.ddmanager.current;if(!c||(c.currentItem||c.element)[0]==this.element[0])return false;var e=false;this.element.find(":data(droppable)").not(".ui-draggable-dragging").each(function(){var g=
+d.data(this,"droppable");if(g.options.greedy&&!g.options.disabled&&g.options.scope==c.options.scope&&g.accept.call(g.element[0],c.currentItem||c.element)&&d.ui.intersect(c,d.extend(g,{offset:g.element.offset()}),g.options.tolerance)){e=true;return false}});if(e)return false;if(this.accept.call(this.element[0],c.currentItem||c.element)){this.options.activeClass&&this.element.removeClass(this.options.activeClass);this.options.hoverClass&&this.element.removeClass(this.options.hoverClass);this._trigger("drop",
+a,this.ui(c));return this.element}return false},ui:function(a){return{draggable:a.currentItem||a.element,helper:a.helper,position:a.position,offset:a.positionAbs}}});d.extend(d.ui.droppable,{version:"1.8.6"});d.ui.intersect=function(a,b,c){if(!b.offset)return false;var e=(a.positionAbs||a.position.absolute).left,g=e+a.helperProportions.width,f=(a.positionAbs||a.position.absolute).top,h=f+a.helperProportions.height,i=b.offset.left,k=i+b.proportions.width,j=b.offset.top,l=j+b.proportions.height;
+switch(c){case "fit":return i<=e&&g<=k&&j<=f&&h<=l;case "intersect":return i<e+a.helperProportions.width/2&&g-a.helperProportions.width/2<k&&j<f+a.helperProportions.height/2&&h-a.helperProportions.height/2<l;case "pointer":return d.ui.isOver((a.positionAbs||a.position.absolute).top+(a.clickOffset||a.offset.click).top,(a.positionAbs||a.position.absolute).left+(a.clickOffset||a.offset.click).left,j,i,b.proportions.height,b.proportions.width);case "touch":return(f>=j&&f<=l||h>=j&&h<=l||f<j&&h>l)&&(e>=
+i&&e<=k||g>=i&&g<=k||e<i&&g>k);default:return false}};d.ui.ddmanager={current:null,droppables:{"default":[]},prepareOffsets:function(a,b){var c=d.ui.ddmanager.droppables[a.options.scope]||[],e=b?b.type:null,g=(a.currentItem||a.element).find(":data(droppable)").andSelf(),f=0;a:for(;f<c.length;f++)if(!(c[f].options.disabled||a&&!c[f].accept.call(c[f].element[0],a.currentItem||a.element))){for(var h=0;h<g.length;h++)if(g[h]==c[f].element[0]){c[f].proportions.height=0;continue a}c[f].visible=c[f].element.css("display")!=
+"none";if(c[f].visible){c[f].offset=c[f].element.offset();c[f].proportions={width:c[f].element[0].offsetWidth,height:c[f].element[0].offsetHeight};e=="mousedown"&&c[f]._activate.call(c[f],b)}}},drop:function(a,b){var c=false;d.each(d.ui.ddmanager.droppables[a.options.scope]||[],function(){if(this.options){if(!this.options.disabled&&this.visible&&d.ui.intersect(a,this,this.options.tolerance))c=c||this._drop.call(this,b);if(!this.options.disabled&&this.visible&&this.accept.call(this.element[0],a.currentItem||
+a.element)){this.isout=1;this.isover=0;this._deactivate.call(this,b)}}});return c},drag:function(a,b){a.options.refreshPositions&&d.ui.ddmanager.prepareOffsets(a,b);d.each(d.ui.ddmanager.droppables[a.options.scope]||[],function(){if(!(this.options.disabled||this.greedyChild||!this.visible)){var c=d.ui.intersect(a,this,this.options.tolerance);if(c=!c&&this.isover==1?"isout":c&&this.isover==0?"isover":null){var e;if(this.options.greedy){var g=this.element.parents(":data(droppable):eq(0)");if(g.length){e=
+d.data(g[0],"droppable");e.greedyChild=c=="isover"?1:0}}if(e&&c=="isover"){e.isover=0;e.isout=1;e._out.call(e,b)}this[c]=1;this[c=="isout"?"isover":"isout"]=0;this[c=="isover"?"_over":"_out"].call(this,b);if(e&&c=="isout"){e.isout=0;e.isover=1;e._over.call(e,b)}}}})}}})(jQuery);
+;/*
+ * jQuery UI Resizable 1.8.6
+ *
+ * Copyright 2010, AUTHORS.txt (http://jqueryui.com/about)
+ * Dual licensed under the MIT or GPL Version 2 licenses.
+ * http://jquery.org/license
+ *
+ * http://docs.jquery.com/UI/Resizables
+ *
+ * Depends:
+ *	jquery.ui.core.js
+ *	jquery.ui.mouse.js
+ *	jquery.ui.widget.js
+ */
+(function(e){e.widget("ui.resizable",e.ui.mouse,{widgetEventPrefix:"resize",options:{alsoResize:false,animate:false,animateDuration:"slow",animateEasing:"swing",aspectRatio:false,autoHide:false,containment:false,ghost:false,grid:false,handles:"e,s,se",helper:false,maxHeight:null,maxWidth:null,minHeight:10,minWidth:10,zIndex:1E3},_create:function(){var b=this,a=this.options;this.element.addClass("ui-resizable");e.extend(this,{_aspectRatio:!!a.aspectRatio,aspectRatio:a.aspectRatio,originalElement:this.element,
+_proportionallyResizeElements:[],_helper:a.helper||a.ghost||a.animate?a.helper||"ui-resizable-helper":null});if(this.element[0].nodeName.match(/canvas|textarea|input|select|button|img/i)){/relative/.test(this.element.css("position"))&&e.browser.opera&&this.element.css({position:"relative",top:"auto",left:"auto"});this.element.wrap(e('<div class="ui-wrapper" style="overflow: hidden;"></div>').css({position:this.element.css("position"),width:this.element.outerWidth(),height:this.element.outerHeight(),
+top:this.element.css("top"),left:this.element.css("left")}));this.element=this.element.parent().data("resizable",this.element.data("resizable"));this.elementIsWrapper=true;this.element.css({marginLeft:this.originalElement.css("marginLeft"),marginTop:this.originalElement.css("marginTop"),marginRight:this.originalElement.css("marginRight"),marginBottom:this.originalElement.css("marginBottom")});this.originalElement.css({marginLeft:0,marginTop:0,marginRight:0,marginBottom:0});this.originalResizeStyle=
+this.originalElement.css("resize");this.originalElement.css("resize","none");this._proportionallyResizeElements.push(this.originalElement.css({position:"static",zoom:1,display:"block"}));this.originalElement.css({margin:this.originalElement.css("margin")});this._proportionallyResize()}this.handles=a.handles||(!e(".ui-resizable-handle",this.element).length?"e,s,se":{n:".ui-resizable-n",e:".ui-resizable-e",s:".ui-resizable-s",w:".ui-resizable-w",se:".ui-resizable-se",sw:".ui-resizable-sw",ne:".ui-resizable-ne",
+nw:".ui-resizable-nw"});if(this.handles.constructor==String){if(this.handles=="all")this.handles="n,e,s,w,se,sw,ne,nw";var c=this.handles.split(",");this.handles={};for(var d=0;d<c.length;d++){var f=e.trim(c[d]),g=e('<div class="ui-resizable-handle '+("ui-resizable-"+f)+'"></div>');/sw|se|ne|nw/.test(f)&&g.css({zIndex:++a.zIndex});"se"==f&&g.addClass("ui-icon ui-icon-gripsmall-diagonal-se");this.handles[f]=".ui-resizable-"+f;this.element.append(g)}}this._renderAxis=function(h){h=h||this.element;for(var i in this.handles){if(this.handles[i].constructor==
+String)this.handles[i]=e(this.handles[i],this.element).show();if(this.elementIsWrapper&&this.originalElement[0].nodeName.match(/textarea|input|select|button/i)){var j=e(this.handles[i],this.element),k=0;k=/sw|ne|nw|se|n|s/.test(i)?j.outerHeight():j.outerWidth();j=["padding",/ne|nw|n/.test(i)?"Top":/se|sw|s/.test(i)?"Bottom":/^e$/.test(i)?"Right":"Left"].join("");h.css(j,k);this._proportionallyResize()}e(this.handles[i])}};this._renderAxis(this.element);this._handles=e(".ui-resizable-handle",this.element).disableSelection();
+this._handles.mouseover(function(){if(!b.resizing){if(this.className)var h=this.className.match(/ui-resizable-(se|sw|ne|nw|n|e|s|w)/i);b.axis=h&&h[1]?h[1]:"se"}});if(a.autoHide){this._handles.hide();e(this.element).addClass("ui-resizable-autohide").hover(function(){e(this).removeClass("ui-resizable-autohide");b._handles.show()},function(){if(!b.resizing){e(this).addClass("ui-resizable-autohide");b._handles.hide()}})}this._mouseInit()},destroy:function(){this._mouseDestroy();var b=function(c){e(c).removeClass("ui-resizable ui-resizable-disabled ui-resizable-resizing").removeData("resizable").unbind(".resizable").find(".ui-resizable-handle").remove()};
+if(this.elementIsWrapper){b(this.element);var a=this.element;a.after(this.originalElement.css({position:a.css("position"),width:a.outerWidth(),height:a.outerHeight(),top:a.css("top"),left:a.css("left")})).remove()}this.originalElement.css("resize",this.originalResizeStyle);b(this.originalElement);return this},_mouseCapture:function(b){var a=false;for(var c in this.handles)if(e(this.handles[c])[0]==b.target)a=true;return!this.options.disabled&&a},_mouseStart:function(b){var a=this.options,c=this.element.position(),
+d=this.element;this.resizing=true;this.documentScroll={top:e(document).scrollTop(),left:e(document).scrollLeft()};if(d.is(".ui-draggable")||/absolute/.test(d.css("position")))d.css({position:"absolute",top:c.top,left:c.left});e.browser.opera&&/relative/.test(d.css("position"))&&d.css({position:"relative",top:"auto",left:"auto"});this._renderProxy();c=m(this.helper.css("left"));var f=m(this.helper.css("top"));if(a.containment){c+=e(a.containment).scrollLeft()||0;f+=e(a.containment).scrollTop()||0}this.offset=
+this.helper.offset();this.position={left:c,top:f};this.size=this._helper?{width:d.outerWidth(),height:d.outerHeight()}:{width:d.width(),height:d.height()};this.originalSize=this._helper?{width:d.outerWidth(),height:d.outerHeight()}:{width:d.width(),height:d.height()};this.originalPosition={left:c,top:f};this.sizeDiff={width:d.outerWidth()-d.width(),height:d.outerHeight()-d.height()};this.originalMousePosition={left:b.pageX,top:b.pageY};this.aspectRatio=typeof a.aspectRatio=="number"?a.aspectRatio:
+this.originalSize.width/this.originalSize.height||1;a=e(".ui-resizable-"+this.axis).css("cursor");e("body").css("cursor",a=="auto"?this.axis+"-resize":a);d.addClass("ui-resizable-resizing");this._propagate("start",b);return true},_mouseDrag:function(b){var a=this.helper,c=this.originalMousePosition,d=this._change[this.axis];if(!d)return false;c=d.apply(this,[b,b.pageX-c.left||0,b.pageY-c.top||0]);if(this._aspectRatio||b.shiftKey)c=this._updateRatio(c,b);c=this._respectSize(c,b);this._propagate("resize",
+b);a.css({top:this.position.top+"px",left:this.position.left+"px",width:this.size.width+"px",height:this.size.height+"px"});!this._helper&&this._proportionallyResizeElements.length&&this._proportionallyResize();this._updateCache(c);this._trigger("resize",b,this.ui());return false},_mouseStop:function(b){this.resizing=false;var a=this.options,c=this;if(this._helper){var d=this._proportionallyResizeElements,f=d.length&&/textarea/i.test(d[0].nodeName);d=f&&e.ui.hasScroll(d[0],"left")?0:c.sizeDiff.height;
+f={width:c.size.width-(f?0:c.sizeDiff.width),height:c.size.height-d};d=parseInt(c.element.css("left"),10)+(c.position.left-c.originalPosition.left)||null;var g=parseInt(c.element.css("top"),10)+(c.position.top-c.originalPosition.top)||null;a.animate||this.element.css(e.extend(f,{top:g,left:d}));c.helper.height(c.size.height);c.helper.width(c.size.width);this._helper&&!a.animate&&this._proportionallyResize()}e("body").css("cursor","auto");this.element.removeClass("ui-resizable-resizing");this._propagate("stop",
+b);this._helper&&this.helper.remove();return false},_updateCache:function(b){this.offset=this.helper.offset();if(l(b.left))this.position.left=b.left;if(l(b.top))this.position.top=b.top;if(l(b.height))this.size.height=b.height;if(l(b.width))this.size.width=b.width},_updateRatio:function(b){var a=this.position,c=this.size,d=this.axis;if(b.height)b.width=c.height*this.aspectRatio;else if(b.width)b.height=c.width/this.aspectRatio;if(d=="sw"){b.left=a.left+(c.width-b.width);b.top=null}if(d=="nw"){b.top=
+a.top+(c.height-b.height);b.left=a.left+(c.width-b.width)}return b},_respectSize:function(b){var a=this.options,c=this.axis,d=l(b.width)&&a.maxWidth&&a.maxWidth<b.width,f=l(b.height)&&a.maxHeight&&a.maxHeight<b.height,g=l(b.width)&&a.minWidth&&a.minWidth>b.width,h=l(b.height)&&a.minHeight&&a.minHeight>b.height;if(g)b.width=a.minWidth;if(h)b.height=a.minHeight;if(d)b.width=a.maxWidth;if(f)b.height=a.maxHeight;var i=this.originalPosition.left+this.originalSize.width,j=this.position.top+this.size.height,
+k=/sw|nw|w/.test(c);c=/nw|ne|n/.test(c);if(g&&k)b.left=i-a.minWidth;if(d&&k)b.left=i-a.maxWidth;if(h&&c)b.top=j-a.minHeight;if(f&&c)b.top=j-a.maxHeight;if((a=!b.width&&!b.height)&&!b.left&&b.top)b.top=null;else if(a&&!b.top&&b.left)b.left=null;return b},_proportionallyResize:function(){if(this._proportionallyResizeElements.length)for(var b=this.helper||this.element,a=0;a<this._proportionallyResizeElements.length;a++){var c=this._proportionallyResizeElements[a];if(!this.borderDif){var d=[c.css("borderTopWidth"),
+c.css("borderRightWidth"),c.css("borderBottomWidth"),c.css("borderLeftWidth")],f=[c.css("paddingTop"),c.css("paddingRight"),c.css("paddingBottom"),c.css("paddingLeft")];this.borderDif=e.map(d,function(g,h){g=parseInt(g,10)||0;h=parseInt(f[h],10)||0;return g+h})}e.browser.msie&&(e(b).is(":hidden")||e(b).parents(":hidden").length)||c.css({height:b.height()-this.borderDif[0]-this.borderDif[2]||0,width:b.width()-this.borderDif[1]-this.borderDif[3]||0})}},_renderProxy:function(){var b=this.options;this.elementOffset=
+this.element.offset();if(this._helper){this.helper=this.helper||e('<div style="overflow:hidden;"></div>');var a=e.browser.msie&&e.browser.version<7,c=a?1:0;a=a?2:-1;this.helper.addClass(this._helper).css({width:this.element.outerWidth()+a,height:this.element.outerHeight()+a,position:"absolute",left:this.elementOffset.left-c+"px",top:this.elementOffset.top-c+"px",zIndex:++b.zIndex});this.helper.appendTo("body").disableSelection()}else this.helper=this.element},_change:{e:function(b,a){return{width:this.originalSize.width+
+a}},w:function(b,a){return{left:this.originalPosition.left+a,width:this.originalSize.width-a}},n:function(b,a,c){return{top:this.originalPosition.top+c,height:this.originalSize.height-c}},s:function(b,a,c){return{height:this.originalSize.height+c}},se:function(b,a,c){return e.extend(this._change.s.apply(this,arguments),this._change.e.apply(this,[b,a,c]))},sw:function(b,a,c){return e.extend(this._change.s.apply(this,arguments),this._change.w.apply(this,[b,a,c]))},ne:function(b,a,c){return e.extend(this._change.n.apply(this,
+arguments),this._change.e.apply(this,[b,a,c]))},nw:function(b,a,c){return e.extend(this._change.n.apply(this,arguments),this._change.w.apply(this,[b,a,c]))}},_propagate:function(b,a){e.ui.plugin.call(this,b,[a,this.ui()]);b!="resize"&&this._trigger(b,a,this.ui())},plugins:{},ui:function(){return{originalElement:this.originalElement,element:this.element,helper:this.helper,position:this.position,size:this.size,originalSize:this.originalSize,originalPosition:this.originalPosition}}});e.extend(e.ui.resizable,
+{version:"1.8.6"});e.ui.plugin.add("resizable","alsoResize",{start:function(){var b=e(this).data("resizable").options,a=function(c){e(c).each(function(){var d=e(this);d.data("resizable-alsoresize",{width:parseInt(d.width(),10),height:parseInt(d.height(),10),left:parseInt(d.css("left"),10),top:parseInt(d.css("top"),10),position:d.css("position")})})};if(typeof b.alsoResize=="object"&&!b.alsoResize.parentNode)if(b.alsoResize.length){b.alsoResize=b.alsoResize[0];a(b.alsoResize)}else e.each(b.alsoResize,
+function(c){a(c)});else a(b.alsoResize)},resize:function(b,a){var c=e(this).data("resizable");b=c.options;var d=c.originalSize,f=c.originalPosition,g={height:c.size.height-d.height||0,width:c.size.width-d.width||0,top:c.position.top-f.top||0,left:c.position.left-f.left||0},h=function(i,j){e(i).each(function(){var k=e(this),q=e(this).data("resizable-alsoresize"),p={},r=j&&j.length?j:k.parents(a.originalElement[0]).length?["width","height"]:["width","height","top","left"];e.each(r,function(n,o){if((n=
+(q[o]||0)+(g[o]||0))&&n>=0)p[o]=n||null});if(e.browser.opera&&/relative/.test(k.css("position"))){c._revertToRelativePosition=true;k.css({position:"absolute",top:"auto",left:"auto"})}k.css(p)})};typeof b.alsoResize=="object"&&!b.alsoResize.nodeType?e.each(b.alsoResize,function(i,j){h(i,j)}):h(b.alsoResize)},stop:function(){var b=e(this).data("resizable"),a=b.options,c=function(d){e(d).each(function(){var f=e(this);f.css({position:f.data("resizable-alsoresize").position})})};if(b._revertToRelativePosition){b._revertToRelativePosition=
+false;typeof a.alsoResize=="object"&&!a.alsoResize.nodeType?e.each(a.alsoResize,function(d){c(d)}):c(a.alsoResize)}e(this).removeData("resizable-alsoresize")}});e.ui.plugin.add("resizable","animate",{stop:function(b){var a=e(this).data("resizable"),c=a.options,d=a._proportionallyResizeElements,f=d.length&&/textarea/i.test(d[0].nodeName),g=f&&e.ui.hasScroll(d[0],"left")?0:a.sizeDiff.height;f={width:a.size.width-(f?0:a.sizeDiff.width),height:a.size.height-g};g=parseInt(a.element.css("left"),10)+(a.position.left-
+a.originalPosition.left)||null;var h=parseInt(a.element.css("top"),10)+(a.position.top-a.originalPosition.top)||null;a.element.animate(e.extend(f,h&&g?{top:h,left:g}:{}),{duration:c.animateDuration,easing:c.animateEasing,step:function(){var i={width:parseInt(a.element.css("width"),10),height:parseInt(a.element.css("height"),10),top:parseInt(a.element.css("top"),10),left:parseInt(a.element.css("left"),10)};d&&d.length&&e(d[0]).css({width:i.width,height:i.height});a._updateCache(i);a._propagate("resize",
+b)}})}});e.ui.plugin.add("resizable","containment",{start:function(){var b=e(this).data("resizable"),a=b.element,c=b.options.containment;if(a=c instanceof e?c.get(0):/parent/.test(c)?a.parent().get(0):c){b.containerElement=e(a);if(/document/.test(c)||c==document){b.containerOffset={left:0,top:0};b.containerPosition={left:0,top:0};b.parentData={element:e(document),left:0,top:0,width:e(document).width(),height:e(document).height()||document.body.parentNode.scrollHeight}}else{var d=e(a),f=[];e(["Top",
+"Right","Left","Bottom"]).each(function(i,j){f[i]=m(d.css("padding"+j))});b.containerOffset=d.offset();b.containerPosition=d.position();b.containerSize={height:d.innerHeight()-f[3],width:d.innerWidth()-f[1]};c=b.containerOffset;var g=b.containerSize.height,h=b.containerSize.width;h=e.ui.hasScroll(a,"left")?a.scrollWidth:h;g=e.ui.hasScroll(a)?a.scrollHeight:g;b.parentData={element:a,left:c.left,top:c.top,width:h,height:g}}}},resize:function(b){var a=e(this).data("resizable"),c=a.options,d=a.containerOffset,
+f=a.position;b=a._aspectRatio||b.shiftKey;var g={top:0,left:0},h=a.containerElement;if(h[0]!=document&&/static/.test(h.css("position")))g=d;if(f.left<(a._helper?d.left:0)){a.size.width+=a._helper?a.position.left-d.left:a.position.left-g.left;if(b)a.size.height=a.size.width/c.aspectRatio;a.position.left=c.helper?d.left:0}if(f.top<(a._helper?d.top:0)){a.size.height+=a._helper?a.position.top-d.top:a.position.top;if(b)a.size.width=a.size.height*c.aspectRatio;a.position.top=a._helper?d.top:0}a.offset.left=
+a.parentData.left+a.position.left;a.offset.top=a.parentData.top+a.position.top;c=Math.abs((a._helper?a.offset.left-g.left:a.offset.left-g.left)+a.sizeDiff.width);d=Math.abs((a._helper?a.offset.top-g.top:a.offset.top-d.top)+a.sizeDiff.height);f=a.containerElement.get(0)==a.element.parent().get(0);g=/relative|absolute/.test(a.containerElement.css("position"));if(f&&g)c-=a.parentData.left;if(c+a.size.width>=a.parentData.width){a.size.width=a.parentData.width-c;if(b)a.size.height=a.size.width/a.aspectRatio}if(d+
+a.size.height>=a.parentData.height){a.size.height=a.parentData.height-d;if(b)a.size.width=a.size.height*a.aspectRatio}},stop:function(){var b=e(this).data("resizable"),a=b.options,c=b.containerOffset,d=b.containerPosition,f=b.containerElement,g=e(b.helper),h=g.offset(),i=g.outerWidth()-b.sizeDiff.width;g=g.outerHeight()-b.sizeDiff.height;b._helper&&!a.animate&&/relative/.test(f.css("position"))&&e(this).css({left:h.left-d.left-c.left,width:i,height:g});b._helper&&!a.animate&&/static/.test(f.css("position"))&&
+e(this).css({left:h.left-d.left-c.left,width:i,height:g})}});e.ui.plugin.add("resizable","ghost",{start:function(){var b=e(this).data("resizable"),a=b.options,c=b.size;b.ghost=b.originalElement.clone();b.ghost.css({opacity:0.25,display:"block",position:"relative",height:c.height,width:c.width,margin:0,left:0,top:0}).addClass("ui-resizable-ghost").addClass(typeof a.ghost=="string"?a.ghost:"");b.ghost.appendTo(b.helper)},resize:function(){var b=e(this).data("resizable");b.ghost&&b.ghost.css({position:"relative",
+height:b.size.height,width:b.size.width})},stop:function(){var b=e(this).data("resizable");b.ghost&&b.helper&&b.helper.get(0).removeChild(b.ghost.get(0))}});e.ui.plugin.add("resizable","grid",{resize:function(){var b=e(this).data("resizable"),a=b.options,c=b.size,d=b.originalSize,f=b.originalPosition,g=b.axis;a.grid=typeof a.grid=="number"?[a.grid,a.grid]:a.grid;var h=Math.round((c.width-d.width)/(a.grid[0]||1))*(a.grid[0]||1);a=Math.round((c.height-d.height)/(a.grid[1]||1))*(a.grid[1]||1);if(/^(se|s|e)$/.test(g)){b.size.width=
+d.width+h;b.size.height=d.height+a}else if(/^(ne)$/.test(g)){b.size.width=d.width+h;b.size.height=d.height+a;b.position.top=f.top-a}else{if(/^(sw)$/.test(g)){b.size.width=d.width+h;b.size.height=d.height+a}else{b.size.width=d.width+h;b.size.height=d.height+a;b.position.top=f.top-a}b.position.left=f.left-h}}});var m=function(b){return parseInt(b,10)||0},l=function(b){return!isNaN(parseInt(b,10))}})(jQuery);
+;/*
+ * jQuery UI Selectable 1.8.6
+ *
+ * Copyright 2010, AUTHORS.txt (http://jqueryui.com/about)
+ * Dual licensed under the MIT or GPL Version 2 licenses.
+ * http://jquery.org/license
+ *
+ * http://docs.jquery.com/UI/Selectables
+ *
+ * Depends:
+ *	jquery.ui.core.js
+ *	jquery.ui.mouse.js
+ *	jquery.ui.widget.js
+ */
+(function(e){e.widget("ui.selectable",e.ui.mouse,{options:{appendTo:"body",autoRefresh:true,distance:0,filter:"*",tolerance:"touch"},_create:function(){var c=this;this.element.addClass("ui-selectable");this.dragged=false;var f;this.refresh=function(){f=e(c.options.filter,c.element[0]);f.each(function(){var d=e(this),b=d.offset();e.data(this,"selectable-item",{element:this,$element:d,left:b.left,top:b.top,right:b.left+d.outerWidth(),bottom:b.top+d.outerHeight(),startselected:false,selected:d.hasClass("ui-selected"),
+selecting:d.hasClass("ui-selecting"),unselecting:d.hasClass("ui-unselecting")})})};this.refresh();this.selectees=f.addClass("ui-selectee");this._mouseInit();this.helper=e("<div class='ui-selectable-helper'></div>")},destroy:function(){this.selectees.removeClass("ui-selectee").removeData("selectable-item");this.element.removeClass("ui-selectable ui-selectable-disabled").removeData("selectable").unbind(".selectable");this._mouseDestroy();return this},_mouseStart:function(c){var f=this;this.opos=[c.pageX,
+c.pageY];if(!this.options.disabled){var d=this.options;this.selectees=e(d.filter,this.element[0]);this._trigger("start",c);e(d.appendTo).append(this.helper);this.helper.css({left:c.clientX,top:c.clientY,width:0,height:0});d.autoRefresh&&this.refresh();this.selectees.filter(".ui-selected").each(function(){var b=e.data(this,"selectable-item");b.startselected=true;if(!c.metaKey){b.$element.removeClass("ui-selected");b.selected=false;b.$element.addClass("ui-unselecting");b.unselecting=true;f._trigger("unselecting",
+c,{unselecting:b.element})}});e(c.target).parents().andSelf().each(function(){var b=e.data(this,"selectable-item");if(b){var g=!c.metaKey||!b.$element.hasClass("ui-selected");b.$element.removeClass(g?"ui-unselecting":"ui-selected").addClass(g?"ui-selecting":"ui-unselecting");b.unselecting=!g;b.selecting=g;(b.selected=g)?f._trigger("selecting",c,{selecting:b.element}):f._trigger("unselecting",c,{unselecting:b.element});return false}})}},_mouseDrag:function(c){var f=this;this.dragged=true;if(!this.options.disabled){var d=
+this.options,b=this.opos[0],g=this.opos[1],h=c.pageX,i=c.pageY;if(b>h){var j=h;h=b;b=j}if(g>i){j=i;i=g;g=j}this.helper.css({left:b,top:g,width:h-b,height:i-g});this.selectees.each(function(){var a=e.data(this,"selectable-item");if(!(!a||a.element==f.element[0])){var k=false;if(d.tolerance=="touch")k=!(a.left>h||a.right<b||a.top>i||a.bottom<g);else if(d.tolerance=="fit")k=a.left>b&&a.right<h&&a.top>g&&a.bottom<i;if(k){if(a.selected){a.$element.removeClass("ui-selected");a.selected=false}if(a.unselecting){a.$element.removeClass("ui-unselecting");
+a.unselecting=false}if(!a.selecting){a.$element.addClass("ui-selecting");a.selecting=true;f._trigger("selecting",c,{selecting:a.element})}}else{if(a.selecting)if(c.metaKey&&a.startselected){a.$element.removeClass("ui-selecting");a.selecting=false;a.$element.addClass("ui-selected");a.selected=true}else{a.$element.removeClass("ui-selecting");a.selecting=false;if(a.startselected){a.$element.addClass("ui-unselecting");a.unselecting=true}f._trigger("unselecting",c,{unselecting:a.element})}if(a.selected)if(!c.metaKey&&
+!a.startselected){a.$element.removeClass("ui-selected");a.selected=false;a.$element.addClass("ui-unselecting");a.unselecting=true;f._trigger("unselecting",c,{unselecting:a.element})}}}});return false}},_mouseStop:function(c){var f=this;this.dragged=false;e(".ui-unselecting",this.element[0]).each(function(){var d=e.data(this,"selectable-item");d.$element.removeClass("ui-unselecting");d.unselecting=false;d.startselected=false;f._trigger("unselected",c,{unselected:d.element})});e(".ui-selecting",this.element[0]).each(function(){var d=
+e.data(this,"selectable-item");d.$element.removeClass("ui-selecting").addClass("ui-selected");d.selecting=false;d.selected=true;d.startselected=true;f._trigger("selected",c,{selected:d.element})});this._trigger("stop",c);this.helper.remove();return false}});e.extend(e.ui.selectable,{version:"1.8.6"})})(jQuery);
+;/*
+ * jQuery UI Sortable 1.8.6
+ *
+ * Copyright 2010, AUTHORS.txt (http://jqueryui.com/about)
+ * Dual licensed under the MIT or GPL Version 2 licenses.
+ * http://jquery.org/license
+ *
+ * http://docs.jquery.com/UI/Sortables
+ *
+ * Depends:
+ *	jquery.ui.core.js
+ *	jquery.ui.mouse.js
+ *	jquery.ui.widget.js
+ */
+(function(d){d.widget("ui.sortable",d.ui.mouse,{widgetEventPrefix:"sort",options:{appendTo:"parent",axis:false,connectWith:false,containment:false,cursor:"auto",cursorAt:false,dropOnEmpty:true,forcePlaceholderSize:false,forceHelperSize:false,grid:false,handle:false,helper:"original",items:"> *",opacity:false,placeholder:false,revert:false,scroll:true,scrollSensitivity:20,scrollSpeed:20,scope:"default",tolerance:"intersect",zIndex:1E3},_create:function(){this.containerCache={};this.element.addClass("ui-sortable");
+this.refresh();this.floating=this.items.length?/left|right/.test(this.items[0].item.css("float")):false;this.offset=this.element.offset();this._mouseInit()},destroy:function(){this.element.removeClass("ui-sortable ui-sortable-disabled").removeData("sortable").unbind(".sortable");this._mouseDestroy();for(var a=this.items.length-1;a>=0;a--)this.items[a].item.removeData("sortable-item");return this},_setOption:function(a,b){if(a==="disabled"){this.options[a]=b;this.widget()[b?"addClass":"removeClass"]("ui-sortable-disabled")}else d.Widget.prototype._setOption.apply(this,
+arguments)},_mouseCapture:function(a,b){if(this.reverting)return false;if(this.options.disabled||this.options.type=="static")return false;this._refreshItems(a);var c=null,e=this;d(a.target).parents().each(function(){if(d.data(this,"sortable-item")==e){c=d(this);return false}});if(d.data(a.target,"sortable-item")==e)c=d(a.target);if(!c)return false;if(this.options.handle&&!b){var f=false;d(this.options.handle,c).find("*").andSelf().each(function(){if(this==a.target)f=true});if(!f)return false}this.currentItem=
+c;this._removeCurrentsFromItems();return true},_mouseStart:function(a,b,c){b=this.options;var e=this;this.currentContainer=this;this.refreshPositions();this.helper=this._createHelper(a);this._cacheHelperProportions();this._cacheMargins();this.scrollParent=this.helper.scrollParent();this.offset=this.currentItem.offset();this.offset={top:this.offset.top-this.margins.top,left:this.offset.left-this.margins.left};this.helper.css("position","absolute");this.cssPosition=this.helper.css("position");d.extend(this.offset,
+{click:{left:a.pageX-this.offset.left,top:a.pageY-this.offset.top},parent:this._getParentOffset(),relative:this._getRelativeOffset()});this.originalPosition=this._generatePosition(a);this.originalPageX=a.pageX;this.originalPageY=a.pageY;b.cursorAt&&this._adjustOffsetFromHelper(b.cursorAt);this.domPosition={prev:this.currentItem.prev()[0],parent:this.currentItem.parent()[0]};this.helper[0]!=this.currentItem[0]&&this.currentItem.hide();this._createPlaceholder();b.containment&&this._setContainment();
+if(b.cursor){if(d("body").css("cursor"))this._storedCursor=d("body").css("cursor");d("body").css("cursor",b.cursor)}if(b.opacity){if(this.helper.css("opacity"))this._storedOpacity=this.helper.css("opacity");this.helper.css("opacity",b.opacity)}if(b.zIndex){if(this.helper.css("zIndex"))this._storedZIndex=this.helper.css("zIndex");this.helper.css("zIndex",b.zIndex)}if(this.scrollParent[0]!=document&&this.scrollParent[0].tagName!="HTML")this.overflowOffset=this.scrollParent.offset();this._trigger("start",
+a,this._uiHash());this._preserveHelperProportions||this._cacheHelperProportions();if(!c)for(c=this.containers.length-1;c>=0;c--)this.containers[c]._trigger("activate",a,e._uiHash(this));if(d.ui.ddmanager)d.ui.ddmanager.current=this;d.ui.ddmanager&&!b.dropBehaviour&&d.ui.ddmanager.prepareOffsets(this,a);this.dragging=true;this.helper.addClass("ui-sortable-helper");this._mouseDrag(a);return true},_mouseDrag:function(a){this.position=this._generatePosition(a);this.positionAbs=this._convertPositionTo("absolute");
+if(!this.lastPositionAbs)this.lastPositionAbs=this.positionAbs;if(this.options.scroll){var b=this.options,c=false;if(this.scrollParent[0]!=document&&this.scrollParent[0].tagName!="HTML"){if(this.overflowOffset.top+this.scrollParent[0].offsetHeight-a.pageY<b.scrollSensitivity)this.scrollParent[0].scrollTop=c=this.scrollParent[0].scrollTop+b.scrollSpeed;else if(a.pageY-this.overflowOffset.top<b.scrollSensitivity)this.scrollParent[0].scrollTop=c=this.scrollParent[0].scrollTop-b.scrollSpeed;if(this.overflowOffset.left+
+this.scrollParent[0].offsetWidth-a.pageX<b.scrollSensitivity)this.scrollParent[0].scrollLeft=c=this.scrollParent[0].scrollLeft+b.scrollSpeed;else if(a.pageX-this.overflowOffset.left<b.scrollSensitivity)this.scrollParent[0].scrollLeft=c=this.scrollParent[0].scrollLeft-b.scrollSpeed}else{if(a.pageY-d(document).scrollTop()<b.scrollSensitivity)c=d(document).scrollTop(d(document).scrollTop()-b.scrollSpeed);else if(d(window).height()-(a.pageY-d(document).scrollTop())<b.scrollSensitivity)c=d(document).scrollTop(d(document).scrollTop()+
+b.scrollSpeed);if(a.pageX-d(document).scrollLeft()<b.scrollSensitivity)c=d(document).scrollLeft(d(document).scrollLeft()-b.scrollSpeed);else if(d(window).width()-(a.pageX-d(document).scrollLeft())<b.scrollSensitivity)c=d(document).scrollLeft(d(document).scrollLeft()+b.scrollSpeed)}c!==false&&d.ui.ddmanager&&!b.dropBehaviour&&d.ui.ddmanager.prepareOffsets(this,a)}this.positionAbs=this._convertPositionTo("absolute");if(!this.options.axis||this.options.axis!="y")this.helper[0].style.left=this.position.left+
+"px";if(!this.options.axis||this.options.axis!="x")this.helper[0].style.top=this.position.top+"px";for(b=this.items.length-1;b>=0;b--){c=this.items[b];var e=c.item[0],f=this._intersectsWithPointer(c);if(f)if(e!=this.currentItem[0]&&this.placeholder[f==1?"next":"prev"]()[0]!=e&&!d.ui.contains(this.placeholder[0],e)&&(this.options.type=="semi-dynamic"?!d.ui.contains(this.element[0],e):true)){this.direction=f==1?"down":"up";if(this.options.tolerance=="pointer"||this._intersectsWithSides(c))this._rearrange(a,
+c);else break;this._trigger("change",a,this._uiHash());break}}this._contactContainers(a);d.ui.ddmanager&&d.ui.ddmanager.drag(this,a);this._trigger("sort",a,this._uiHash());this.lastPositionAbs=this.positionAbs;return false},_mouseStop:function(a,b){if(a){d.ui.ddmanager&&!this.options.dropBehaviour&&d.ui.ddmanager.drop(this,a);if(this.options.revert){var c=this;b=c.placeholder.offset();c.reverting=true;d(this.helper).animate({left:b.left-this.offset.parent.left-c.margins.left+(this.offsetParent[0]==
+document.body?0:this.offsetParent[0].scrollLeft),top:b.top-this.offset.parent.top-c.margins.top+(this.offsetParent[0]==document.body?0:this.offsetParent[0].scrollTop)},parseInt(this.options.revert,10)||500,function(){c._clear(a)})}else this._clear(a,b);return false}},cancel:function(){var a=this;if(this.dragging){this._mouseUp();this.options.helper=="original"?this.currentItem.css(this._storedCSS).removeClass("ui-sortable-helper"):this.currentItem.show();for(var b=this.containers.length-1;b>=0;b--){this.containers[b]._trigger("deactivate",
+null,a._uiHash(this));if(this.containers[b].containerCache.over){this.containers[b]._trigger("out",null,a._uiHash(this));this.containers[b].containerCache.over=0}}}this.placeholder[0].parentNode&&this.placeholder[0].parentNode.removeChild(this.placeholder[0]);this.options.helper!="original"&&this.helper&&this.helper[0].parentNode&&this.helper.remove();d.extend(this,{helper:null,dragging:false,reverting:false,_noFinalSort:null});this.domPosition.prev?d(this.domPosition.prev).after(this.currentItem):
+d(this.domPosition.parent).prepend(this.currentItem);return this},serialize:function(a){var b=this._getItemsAsjQuery(a&&a.connected),c=[];a=a||{};d(b).each(function(){var e=(d(a.item||this).attr(a.attribute||"id")||"").match(a.expression||/(.+)[-=_](.+)/);if(e)c.push((a.key||e[1]+"[]")+"="+(a.key&&a.expression?e[1]:e[2]))});!c.length&&a.key&&c.push(a.key+"=");return c.join("&")},toArray:function(a){var b=this._getItemsAsjQuery(a&&a.connected),c=[];a=a||{};b.each(function(){c.push(d(a.item||this).attr(a.attribute||
+"id")||"")});return c},_intersectsWith:function(a){var b=this.positionAbs.left,c=b+this.helperProportions.width,e=this.positionAbs.top,f=e+this.helperProportions.height,g=a.left,h=g+a.width,i=a.top,k=i+a.height,j=this.offset.click.top,l=this.offset.click.left;j=e+j>i&&e+j<k&&b+l>g&&b+l<h;return this.options.tolerance=="pointer"||this.options.forcePointerForContainers||this.options.tolerance!="pointer"&&this.helperProportions[this.floating?"width":"height"]>a[this.floating?"width":"height"]?j:g<b+
+this.helperProportions.width/2&&c-this.helperProportions.width/2<h&&i<e+this.helperProportions.height/2&&f-this.helperProportions.height/2<k},_intersectsWithPointer:function(a){var b=d.ui.isOverAxis(this.positionAbs.top+this.offset.click.top,a.top,a.height);a=d.ui.isOverAxis(this.positionAbs.left+this.offset.click.left,a.left,a.width);b=b&&a;a=this._getDragVerticalDirection();var c=this._getDragHorizontalDirection();if(!b)return false;return this.floating?c&&c=="right"||a=="down"?2:1:a&&(a=="down"?
+2:1)},_intersectsWithSides:function(a){var b=d.ui.isOverAxis(this.positionAbs.top+this.offset.click.top,a.top+a.height/2,a.height);a=d.ui.isOverAxis(this.positionAbs.left+this.offset.click.left,a.left+a.width/2,a.width);var c=this._getDragVerticalDirection(),e=this._getDragHorizontalDirection();return this.floating&&e?e=="right"&&a||e=="left"&&!a:c&&(c=="down"&&b||c=="up"&&!b)},_getDragVerticalDirection:function(){var a=this.positionAbs.top-this.lastPositionAbs.top;return a!=0&&(a>0?"down":"up")},
+_getDragHorizontalDirection:function(){var a=this.positionAbs.left-this.lastPositionAbs.left;return a!=0&&(a>0?"right":"left")},refresh:function(a){this._refreshItems(a);this.refreshPositions();return this},_connectWith:function(){var a=this.options;return a.connectWith.constructor==String?[a.connectWith]:a.connectWith},_getItemsAsjQuery:function(a){var b=[],c=[],e=this._connectWith();if(e&&a)for(a=e.length-1;a>=0;a--)for(var f=d(e[a]),g=f.length-1;g>=0;g--){var h=d.data(f[g],"sortable");if(h&&h!=
+this&&!h.options.disabled)c.push([d.isFunction(h.options.items)?h.options.items.call(h.element):d(h.options.items,h.element).not(".ui-sortable-helper").not(".ui-sortable-placeholder"),h])}c.push([d.isFunction(this.options.items)?this.options.items.call(this.element,null,{options:this.options,item:this.currentItem}):d(this.options.items,this.element).not(".ui-sortable-helper").not(".ui-sortable-placeholder"),this]);for(a=c.length-1;a>=0;a--)c[a][0].each(function(){b.push(this)});return d(b)},_removeCurrentsFromItems:function(){for(var a=
+this.currentItem.find(":data(sortable-item)"),b=0;b<this.items.length;b++)for(var c=0;c<a.length;c++)a[c]==this.items[b].item[0]&&this.items.splice(b,1)},_refreshItems:function(a){this.items=[];this.containers=[this];var b=this.items,c=[[d.isFunction(this.options.items)?this.options.items.call(this.element[0],a,{item:this.currentItem}):d(this.options.items,this.element),this]],e=this._connectWith();if(e)for(var f=e.length-1;f>=0;f--)for(var g=d(e[f]),h=g.length-1;h>=0;h--){var i=d.data(g[h],"sortable");
+if(i&&i!=this&&!i.options.disabled){c.push([d.isFunction(i.options.items)?i.options.items.call(i.element[0],a,{item:this.currentItem}):d(i.options.items,i.element),i]);this.containers.push(i)}}for(f=c.length-1;f>=0;f--){a=c[f][1];e=c[f][0];h=0;for(g=e.length;h<g;h++){i=d(e[h]);i.data("sortable-item",a);b.push({item:i,instance:a,width:0,height:0,left:0,top:0})}}},refreshPositions:function(a){if(this.offsetParent&&this.helper)this.offset.parent=this._getParentOffset();for(var b=this.items.length-1;b>=
+0;b--){var c=this.items[b],e=this.options.toleranceElement?d(this.options.toleranceElement,c.item):c.item;if(!a){c.width=e.outerWidth();c.height=e.outerHeight()}e=e.offset();c.left=e.left;c.top=e.top}if(this.options.custom&&this.options.custom.refreshContainers)this.options.custom.refreshContainers.call(this);else for(b=this.containers.length-1;b>=0;b--){e=this.containers[b].element.offset();this.containers[b].containerCache.left=e.left;this.containers[b].containerCache.top=e.top;this.containers[b].containerCache.width=
+this.containers[b].element.outerWidth();this.containers[b].containerCache.height=this.containers[b].element.outerHeight()}return this},_createPlaceholder:function(a){var b=a||this,c=b.options;if(!c.placeholder||c.placeholder.constructor==String){var e=c.placeholder;c.placeholder={element:function(){var f=d(document.createElement(b.currentItem[0].nodeName)).addClass(e||b.currentItem[0].className+" ui-sortable-placeholder").removeClass("ui-sortable-helper")[0];if(!e)f.style.visibility="hidden";return f},
+update:function(f,g){if(!(e&&!c.forcePlaceholderSize)){g.height()||g.height(b.currentItem.innerHeight()-parseInt(b.currentItem.css("paddingTop")||0,10)-parseInt(b.currentItem.css("paddingBottom")||0,10));g.width()||g.width(b.currentItem.innerWidth()-parseInt(b.currentItem.css("paddingLeft")||0,10)-parseInt(b.currentItem.css("paddingRight")||0,10))}}}}b.placeholder=d(c.placeholder.element.call(b.element,b.currentItem));b.currentItem.after(b.placeholder);c.placeholder.update(b,b.placeholder)},_contactContainers:function(a){for(var b=
+null,c=null,e=this.containers.length-1;e>=0;e--)if(!d.ui.contains(this.currentItem[0],this.containers[e].element[0]))if(this._intersectsWith(this.containers[e].containerCache)){if(!(b&&d.ui.contains(this.containers[e].element[0],b.element[0]))){b=this.containers[e];c=e}}else if(this.containers[e].containerCache.over){this.containers[e]._trigger("out",a,this._uiHash(this));this.containers[e].containerCache.over=0}if(b)if(this.containers.length===1){this.containers[c]._trigger("over",a,this._uiHash(this));
+this.containers[c].containerCache.over=1}else if(this.currentContainer!=this.containers[c]){b=1E4;e=null;for(var f=this.positionAbs[this.containers[c].floating?"left":"top"],g=this.items.length-1;g>=0;g--)if(d.ui.contains(this.containers[c].element[0],this.items[g].item[0])){var h=this.items[g][this.containers[c].floating?"left":"top"];if(Math.abs(h-f)<b){b=Math.abs(h-f);e=this.items[g]}}if(e||this.options.dropOnEmpty){this.currentContainer=this.containers[c];e?this._rearrange(a,e,null,true):this._rearrange(a,
+null,this.containers[c].element,true);this._trigger("change",a,this._uiHash());this.containers[c]._trigger("change",a,this._uiHash(this));this.options.placeholder.update(this.currentContainer,this.placeholder);this.containers[c]._trigger("over",a,this._uiHash(this));this.containers[c].containerCache.over=1}}},_createHelper:function(a){var b=this.options;a=d.isFunction(b.helper)?d(b.helper.apply(this.element[0],[a,this.currentItem])):b.helper=="clone"?this.currentItem.clone():this.currentItem;a.parents("body").length||
+d(b.appendTo!="parent"?b.appendTo:this.currentItem[0].parentNode)[0].appendChild(a[0]);if(a[0]==this.currentItem[0])this._storedCSS={width:this.currentItem[0].style.width,height:this.currentItem[0].style.height,position:this.currentItem.css("position"),top:this.currentItem.css("top"),left:this.currentItem.css("left")};if(a[0].style.width==""||b.forceHelperSize)a.width(this.currentItem.width());if(a[0].style.height==""||b.forceHelperSize)a.height(this.currentItem.height());return a},_adjustOffsetFromHelper:function(a){if(typeof a==
+"string")a=a.split(" ");if(d.isArray(a))a={left:+a[0],top:+a[1]||0};if("left"in a)this.offset.click.left=a.left+this.margins.left;if("right"in a)this.offset.click.left=this.helperProportions.width-a.right+this.margins.left;if("top"in a)this.offset.click.top=a.top+this.margins.top;if("bottom"in a)this.offset.click.top=this.helperProportions.height-a.bottom+this.margins.top},_getParentOffset:function(){this.offsetParent=this.helper.offsetParent();var a=this.offsetParent.offset();if(this.cssPosition==
+"absolute"&&this.scrollParent[0]!=document&&d.ui.contains(this.scrollParent[0],this.offsetParent[0])){a.left+=this.scrollParent.scrollLeft();a.top+=this.scrollParent.scrollTop()}if(this.offsetParent[0]==document.body||this.offsetParent[0].tagName&&this.offsetParent[0].tagName.toLowerCase()=="html"&&d.browser.msie)a={top:0,left:0};return{top:a.top+(parseInt(this.offsetParent.css("borderTopWidth"),10)||0),left:a.left+(parseInt(this.offsetParent.css("borderLeftWidth"),10)||0)}},_getRelativeOffset:function(){if(this.cssPosition==
+"relative"){var a=this.currentItem.position();return{top:a.top-(parseInt(this.helper.css("top"),10)||0)+this.scrollParent.scrollTop(),left:a.left-(parseInt(this.helper.css("left"),10)||0)+this.scrollParent.scrollLeft()}}else return{top:0,left:0}},_cacheMargins:function(){this.margins={left:parseInt(this.currentItem.css("marginLeft"),10)||0,top:parseInt(this.currentItem.css("marginTop"),10)||0}},_cacheHelperProportions:function(){this.helperProportions={width:this.helper.outerWidth(),height:this.helper.outerHeight()}},
+_setContainment:function(){var a=this.options;if(a.containment=="parent")a.containment=this.helper[0].parentNode;if(a.containment=="document"||a.containment=="window")this.containment=[0-this.offset.relative.left-this.offset.parent.left,0-this.offset.relative.top-this.offset.parent.top,d(a.containment=="document"?document:window).width()-this.helperProportions.width-this.margins.left,(d(a.containment=="document"?document:window).height()||document.body.parentNode.scrollHeight)-this.helperProportions.height-
+this.margins.top];if(!/^(document|window|parent)$/.test(a.containment)){var b=d(a.containment)[0];a=d(a.containment).offset();var c=d(b).css("overflow")!="hidden";this.containment=[a.left+(parseInt(d(b).css("borderLeftWidth"),10)||0)+(parseInt(d(b).css("paddingLeft"),10)||0)-this.margins.left,a.top+(parseInt(d(b).css("borderTopWidth"),10)||0)+(parseInt(d(b).css("paddingTop"),10)||0)-this.margins.top,a.left+(c?Math.max(b.scrollWidth,b.offsetWidth):b.offsetWidth)-(parseInt(d(b).css("borderLeftWidth"),
+10)||0)-(parseInt(d(b).css("paddingRight"),10)||0)-this.helperProportions.width-this.margins.left,a.top+(c?Math.max(b.scrollHeight,b.offsetHeight):b.offsetHeight)-(parseInt(d(b).css("borderTopWidth"),10)||0)-(parseInt(d(b).css("paddingBottom"),10)||0)-this.helperProportions.height-this.margins.top]}},_convertPositionTo:function(a,b){if(!b)b=this.position;a=a=="absolute"?1:-1;var c=this.cssPosition=="absolute"&&!(this.scrollParent[0]!=document&&d.ui.contains(this.scrollParent[0],this.offsetParent[0]))?
+this.offsetParent:this.scrollParent,e=/(html|body)/i.test(c[0].tagName);return{top:b.top+this.offset.relative.top*a+this.offset.parent.top*a-(d.browser.safari&&this.cssPosition=="fixed"?0:(this.cssPosition=="fixed"?-this.scrollParent.scrollTop():e?0:c.scrollTop())*a),left:b.left+this.offset.relative.left*a+this.offset.parent.left*a-(d.browser.safari&&this.cssPosition=="fixed"?0:(this.cssPosition=="fixed"?-this.scrollParent.scrollLeft():e?0:c.scrollLeft())*a)}},_generatePosition:function(a){var b=
+this.options,c=this.cssPosition=="absolute"&&!(this.scrollParent[0]!=document&&d.ui.contains(this.scrollParent[0],this.offsetParent[0]))?this.offsetParent:this.scrollParent,e=/(html|body)/i.test(c[0].tagName);if(this.cssPosition=="relative"&&!(this.scrollParent[0]!=document&&this.scrollParent[0]!=this.offsetParent[0]))this.offset.relative=this._getRelativeOffset();var f=a.pageX,g=a.pageY;if(this.originalPosition){if(this.containment){if(a.pageX-this.offset.click.left<this.containment[0])f=this.containment[0]+
+this.offset.click.left;if(a.pageY-this.offset.click.top<this.containment[1])g=this.containment[1]+this.offset.click.top;if(a.pageX-this.offset.click.left>this.containment[2])f=this.containment[2]+this.offset.click.left;if(a.pageY-this.offset.click.top>this.containment[3])g=this.containment[3]+this.offset.click.top}if(b.grid){g=this.originalPageY+Math.round((g-this.originalPageY)/b.grid[1])*b.grid[1];g=this.containment?!(g-this.offset.click.top<this.containment[1]||g-this.offset.click.top>this.containment[3])?
+g:!(g-this.offset.click.top<this.containment[1])?g-b.grid[1]:g+b.grid[1]:g;f=this.originalPageX+Math.round((f-this.originalPageX)/b.grid[0])*b.grid[0];f=this.containment?!(f-this.offset.click.left<this.containment[0]||f-this.offset.click.left>this.containment[2])?f:!(f-this.offset.click.left<this.containment[0])?f-b.grid[0]:f+b.grid[0]:f}}return{top:g-this.offset.click.top-this.offset.relative.top-this.offset.parent.top+(d.browser.safari&&this.cssPosition=="fixed"?0:this.cssPosition=="fixed"?-this.scrollParent.scrollTop():
+e?0:c.scrollTop()),left:f-this.offset.click.left-this.offset.relative.left-this.offset.parent.left+(d.browser.safari&&this.cssPosition=="fixed"?0:this.cssPosition=="fixed"?-this.scrollParent.scrollLeft():e?0:c.scrollLeft())}},_rearrange:function(a,b,c,e){c?c[0].appendChild(this.placeholder[0]):b.item[0].parentNode.insertBefore(this.placeholder[0],this.direction=="down"?b.item[0]:b.item[0].nextSibling);this.counter=this.counter?++this.counter:1;var f=this,g=this.counter;window.setTimeout(function(){g==
+f.counter&&f.refreshPositions(!e)},0)},_clear:function(a,b){this.reverting=false;var c=[];!this._noFinalSort&&this.currentItem[0].parentNode&&this.placeholder.before(this.currentItem);this._noFinalSort=null;if(this.helper[0]==this.currentItem[0]){for(var e in this._storedCSS)if(this._storedCSS[e]=="auto"||this._storedCSS[e]=="static")this._storedCSS[e]="";this.currentItem.css(this._storedCSS).removeClass("ui-sortable-helper")}else this.currentItem.show();this.fromOutside&&!b&&c.push(function(f){this._trigger("receive",
+f,this._uiHash(this.fromOutside))});if((this.fromOutside||this.domPosition.prev!=this.currentItem.prev().not(".ui-sortable-helper")[0]||this.domPosition.parent!=this.currentItem.parent()[0])&&!b)c.push(function(f){this._trigger("update",f,this._uiHash())});if(!d.ui.contains(this.element[0],this.currentItem[0])){b||c.push(function(f){this._trigger("remove",f,this._uiHash())});for(e=this.containers.length-1;e>=0;e--)if(d.ui.contains(this.containers[e].element[0],this.currentItem[0])&&!b){c.push(function(f){return function(g){f._trigger("receive",
+g,this._uiHash(this))}}.call(this,this.containers[e]));c.push(function(f){return function(g){f._trigger("update",g,this._uiHash(this))}}.call(this,this.containers[e]))}}for(e=this.containers.length-1;e>=0;e--){b||c.push(function(f){return function(g){f._trigger("deactivate",g,this._uiHash(this))}}.call(this,this.containers[e]));if(this.containers[e].containerCache.over){c.push(function(f){return function(g){f._trigger("out",g,this._uiHash(this))}}.call(this,this.containers[e]));this.containers[e].containerCache.over=
+0}}this._storedCursor&&d("body").css("cursor",this._storedCursor);this._storedOpacity&&this.helper.css("opacity",this._storedOpacity);if(this._storedZIndex)this.helper.css("zIndex",this._storedZIndex=="auto"?"":this._storedZIndex);this.dragging=false;if(this.cancelHelperRemoval){if(!b){this._trigger("beforeStop",a,this._uiHash());for(e=0;e<c.length;e++)c[e].call(this,a);this._trigger("stop",a,this._uiHash())}return false}b||this._trigger("beforeStop",a,this._uiHash());this.placeholder[0].parentNode.removeChild(this.placeholder[0]);
+this.helper[0]!=this.currentItem[0]&&this.helper.remove();this.helper=null;if(!b){for(e=0;e<c.length;e++)c[e].call(this,a);this._trigger("stop",a,this._uiHash())}this.fromOutside=false;return true},_trigger:function(){d.Widget.prototype._trigger.apply(this,arguments)===false&&this.cancel()},_uiHash:function(a){var b=a||this;return{helper:b.helper,placeholder:b.placeholder||d([]),position:b.position,originalPosition:b.originalPosition,offset:b.positionAbs,item:b.currentItem,sender:a?a.element:null}}});
+d.extend(d.ui.sortable,{version:"1.8.6"})})(jQuery);
+;/*
+ * jQuery UI Autocomplete 1.8.6
+ *
+ * Copyright 2010, AUTHORS.txt (http://jqueryui.com/about)
+ * Dual licensed under the MIT or GPL Version 2 licenses.
+ * http://jquery.org/license
+ *
+ * http://docs.jquery.com/UI/Autocomplete
+ *
+ * Depends:
+ *	jquery.ui.core.js
+ *	jquery.ui.widget.js
+ *	jquery.ui.position.js
+ */
+(function(e){e.widget("ui.autocomplete",{options:{appendTo:"body",delay:300,minLength:1,position:{my:"left top",at:"left bottom",collision:"none"},source:null},_create:function(){var a=this,b=this.element[0].ownerDocument,f;this.element.addClass("ui-autocomplete-input").attr("autocomplete","off").attr({role:"textbox","aria-autocomplete":"list","aria-haspopup":"true"}).bind("keydown.autocomplete",function(c){if(!(a.options.disabled||a.element.attr("readonly"))){f=false;var d=e.ui.keyCode;switch(c.keyCode){case d.PAGE_UP:a._move("previousPage",
+c);break;case d.PAGE_DOWN:a._move("nextPage",c);break;case d.UP:a._move("previous",c);c.preventDefault();break;case d.DOWN:a._move("next",c);c.preventDefault();break;case d.ENTER:case d.NUMPAD_ENTER:if(a.menu.active){f=true;c.preventDefault()}case d.TAB:if(!a.menu.active)return;a.menu.select(c);break;case d.ESCAPE:a.element.val(a.term);a.close(c);break;default:clearTimeout(a.searching);a.searching=setTimeout(function(){if(a.term!=a.element.val()){a.selectedItem=null;a.search(null,c)}},a.options.delay);
+break}}}).bind("keypress.autocomplete",function(c){if(f){f=false;c.preventDefault()}}).bind("focus.autocomplete",function(){if(!a.options.disabled){a.selectedItem=null;a.previous=a.element.val()}}).bind("blur.autocomplete",function(c){if(!a.options.disabled){clearTimeout(a.searching);a.closing=setTimeout(function(){a.close(c);a._change(c)},150)}});this._initSource();this.response=function(){return a._response.apply(a,arguments)};this.menu=e("<ul></ul>").addClass("ui-autocomplete").appendTo(e(this.options.appendTo||
+"body",b)[0]).mousedown(function(c){var d=a.menu.element[0];e(c.target).closest(".ui-menu-item").length||setTimeout(function(){e(document).one("mousedown",function(g){g.target!==a.element[0]&&g.target!==d&&!e.ui.contains(d,g.target)&&a.close()})},1);setTimeout(function(){clearTimeout(a.closing)},13)}).menu({focus:function(c,d){d=d.item.data("item.autocomplete");false!==a._trigger("focus",c,{item:d})&&/^key/.test(c.originalEvent.type)&&a.element.val(d.value)},selected:function(c,d){d=d.item.data("item.autocomplete");
+var g=a.previous;if(a.element[0]!==b.activeElement){a.element.focus();a.previous=g;setTimeout(function(){a.previous=g},1)}false!==a._trigger("select",c,{item:d})&&a.element.val(d.value);a.term=a.element.val();a.close(c);a.selectedItem=d},blur:function(){a.menu.element.is(":visible")&&a.element.val()!==a.term&&a.element.val(a.term)}}).zIndex(this.element.zIndex()+1).css({top:0,left:0}).hide().data("menu");e.fn.bgiframe&&this.menu.element.bgiframe()},destroy:function(){this.element.removeClass("ui-autocomplete-input").removeAttr("autocomplete").removeAttr("role").removeAttr("aria-autocomplete").removeAttr("aria-haspopup");
+this.menu.element.remove();e.Widget.prototype.destroy.call(this)},_setOption:function(a,b){e.Widget.prototype._setOption.apply(this,arguments);a==="source"&&this._initSource();if(a==="appendTo")this.menu.element.appendTo(e(b||"body",this.element[0].ownerDocument)[0])},_initSource:function(){var a=this,b,f;if(e.isArray(this.options.source)){b=this.options.source;this.source=function(c,d){d(e.ui.autocomplete.filter(b,c.term))}}else if(typeof this.options.source==="string"){f=this.options.source;this.source=
+function(c,d){a.xhr&&a.xhr.abort();a.xhr=e.getJSON(f,c,function(g,i,h){h===a.xhr&&d(g);a.xhr=null})}}else this.source=this.options.source},search:function(a,b){a=a!=null?a:this.element.val();this.term=this.element.val();if(a.length<this.options.minLength)return this.close(b);clearTimeout(this.closing);if(this._trigger("search",b)!==false)return this._search(a)},_search:function(a){this.element.addClass("ui-autocomplete-loading");this.source({term:a},this.response)},_response:function(a){if(a&&a.length){a=
+this._normalize(a);this._suggest(a);this._trigger("open")}else this.close();this.element.removeClass("ui-autocomplete-loading")},close:function(a){clearTimeout(this.closing);if(this.menu.element.is(":visible")){this._trigger("close",a);this.menu.element.hide();this.menu.deactivate()}},_change:function(a){this.previous!==this.element.val()&&this._trigger("change",a,{item:this.selectedItem})},_normalize:function(a){if(a.length&&a[0].label&&a[0].value)return a;return e.map(a,function(b){if(typeof b===
+"string")return{label:b,value:b};return e.extend({label:b.label||b.value,value:b.value||b.label},b)})},_suggest:function(a){this._renderMenu(this.menu.element.empty().zIndex(this.element.zIndex()+1),a);this.menu.deactivate();this.menu.refresh();this.menu.element.show().position(e.extend({of:this.element},this.options.position));this._resizeMenu()},_resizeMenu:function(){var a=this.menu.element;a.outerWidth(Math.max(a.width("").outerWidth(),this.element.outerWidth()))},_renderMenu:function(a,b){var f=
+this;e.each(b,function(c,d){f._renderItem(a,d)})},_renderItem:function(a,b){return e("<li></li>").data("item.autocomplete",b).append(e("<a></a>").text(b.label)).appendTo(a)},_move:function(a,b){if(this.menu.element.is(":visible"))if(this.menu.first()&&/^previous/.test(a)||this.menu.last()&&/^next/.test(a)){this.element.val(this.term);this.menu.deactivate()}else this.menu[a](b);else this.search(null,b)},widget:function(){return this.menu.element}});e.extend(e.ui.autocomplete,{escapeRegex:function(a){return a.replace(/[-[\]{}()*+?.,\\^$|#\s]/g,
+"\\$&")},filter:function(a,b){var f=new RegExp(e.ui.autocomplete.escapeRegex(b),"i");return e.grep(a,function(c){return f.test(c.label||c.value||c)})}})})(jQuery);
+(function(e){e.widget("ui.menu",{_create:function(){var a=this;this.element.addClass("ui-menu ui-widget ui-widget-content ui-corner-all").attr({role:"listbox","aria-activedescendant":"ui-active-menuitem"}).click(function(b){if(e(b.target).closest(".ui-menu-item a").length){b.preventDefault();a.select(b)}});this.refresh()},refresh:function(){var a=this;this.element.children("li:not(.ui-menu-item):has(a)").addClass("ui-menu-item").attr("role","menuitem").children("a").addClass("ui-corner-all").attr("tabindex",
+-1).mouseenter(function(b){a.activate(b,e(this).parent())}).mouseleave(function(){a.deactivate()})},activate:function(a,b){this.deactivate();if(this.hasScroll()){var f=b.offset().top-this.element.offset().top,c=this.element.attr("scrollTop"),d=this.element.height();if(f<0)this.element.attr("scrollTop",c+f);else f>=d&&this.element.attr("scrollTop",c+f-d+b.height())}this.active=b.eq(0).children("a").addClass("ui-state-hover").attr("id","ui-active-menuitem").end();this._trigger("focus",a,{item:b})},
+deactivate:function(){if(this.active){this.active.children("a").removeClass("ui-state-hover").removeAttr("id");this._trigger("blur");this.active=null}},next:function(a){this.move("next",".ui-menu-item:first",a)},previous:function(a){this.move("prev",".ui-menu-item:last",a)},first:function(){return this.active&&!this.active.prevAll(".ui-menu-item").length},last:function(){return this.active&&!this.active.nextAll(".ui-menu-item").length},move:function(a,b,f){if(this.active){a=this.active[a+"All"](".ui-menu-item").eq(0);
+a.length?this.activate(f,a):this.activate(f,this.element.children(b))}else this.activate(f,this.element.children(b))},nextPage:function(a){if(this.hasScroll())if(!this.active||this.last())this.activate(a,this.element.children(".ui-menu-item:first"));else{var b=this.active.offset().top,f=this.element.height(),c=this.element.children(".ui-menu-item").filter(function(){var d=e(this).offset().top-b-f+e(this).height();return d<10&&d>-10});c.length||(c=this.element.children(".ui-menu-item:last"));this.activate(a,
+c)}else this.activate(a,this.element.children(".ui-menu-item").filter(!this.active||this.last()?":first":":last"))},previousPage:function(a){if(this.hasScroll())if(!this.active||this.first())this.activate(a,this.element.children(".ui-menu-item:last"));else{var b=this.active.offset().top,f=this.element.height();result=this.element.children(".ui-menu-item").filter(function(){var c=e(this).offset().top-b+f-e(this).height();return c<10&&c>-10});result.length||(result=this.element.children(".ui-menu-item:first"));
+this.activate(a,result)}else this.activate(a,this.element.children(".ui-menu-item").filter(!this.active||this.first()?":last":":first"))},hasScroll:function(){return this.element.height()<this.element.attr("scrollHeight")},select:function(a){this._trigger("selected",a,{item:this.active})}})})(jQuery);
+;/*
+ * jQuery UI Dialog 1.8.6
+ *
+ * Copyright 2010, AUTHORS.txt (http://jqueryui.com/about)
+ * Dual licensed under the MIT or GPL Version 2 licenses.
+ * http://jquery.org/license
+ *
+ * http://docs.jquery.com/UI/Dialog
+ *
+ * Depends:
+ *	jquery.ui.core.js
+ *	jquery.ui.widget.js
+ *  jquery.ui.button.js
+ *	jquery.ui.draggable.js
+ *	jquery.ui.mouse.js
+ *	jquery.ui.position.js
+ *	jquery.ui.resizable.js
+ */
+(function(c,j){var k={buttons:true,height:true,maxHeight:true,maxWidth:true,minHeight:true,minWidth:true,width:true},l={maxHeight:true,maxWidth:true,minHeight:true,minWidth:true};c.widget("ui.dialog",{options:{autoOpen:true,buttons:{},closeOnEscape:true,closeText:"close",dialogClass:"",draggable:true,hide:null,height:"auto",maxHeight:false,maxWidth:false,minHeight:150,minWidth:150,modal:false,position:{my:"center",at:"center",of:window,collision:"fit",using:function(a){var b=c(this).css(a).offset().top;
+b<0&&c(this).css("top",a.top-b)}},resizable:true,show:null,stack:true,title:"",width:300,zIndex:1E3},_create:function(){this.originalTitle=this.element.attr("title");if(typeof this.originalTitle!=="string")this.originalTitle="";this.options.title=this.options.title||this.originalTitle;var a=this,b=a.options,d=b.title||"&#160;",e=c.ui.dialog.getTitleId(a.element),g=(a.uiDialog=c("<div></div>")).appendTo(document.body).hide().addClass("ui-dialog ui-widget ui-widget-content ui-corner-all "+b.dialogClass).css({zIndex:b.zIndex}).attr("tabIndex",
+-1).css("outline",0).keydown(function(i){if(b.closeOnEscape&&i.keyCode&&i.keyCode===c.ui.keyCode.ESCAPE){a.close(i);i.preventDefault()}}).attr({role:"dialog","aria-labelledby":e}).mousedown(function(i){a.moveToTop(false,i)});a.element.show().removeAttr("title").addClass("ui-dialog-content ui-widget-content").appendTo(g);var f=(a.uiDialogTitlebar=c("<div></div>")).addClass("ui-dialog-titlebar ui-widget-header ui-corner-all ui-helper-clearfix").prependTo(g),h=c('<a href="#"></a>').addClass("ui-dialog-titlebar-close ui-corner-all").attr("role",
+"button").hover(function(){h.addClass("ui-state-hover")},function(){h.removeClass("ui-state-hover")}).focus(function(){h.addClass("ui-state-focus")}).blur(function(){h.removeClass("ui-state-focus")}).click(function(i){a.close(i);return false}).appendTo(f);(a.uiDialogTitlebarCloseText=c("<span></span>")).addClass("ui-icon ui-icon-closethick").text(b.closeText).appendTo(h);c("<span></span>").addClass("ui-dialog-title").attr("id",e).html(d).prependTo(f);if(c.isFunction(b.beforeclose)&&!c.isFunction(b.beforeClose))b.beforeClose=
+b.beforeclose;f.find("*").add(f).disableSelection();b.draggable&&c.fn.draggable&&a._makeDraggable();b.resizable&&c.fn.resizable&&a._makeResizable();a._createButtons(b.buttons);a._isOpen=false;c.fn.bgiframe&&g.bgiframe()},_init:function(){this.options.autoOpen&&this.open()},destroy:function(){var a=this;a.overlay&&a.overlay.destroy();a.uiDialog.hide();a.element.unbind(".dialog").removeData("dialog").removeClass("ui-dialog-content ui-widget-content").hide().appendTo("body");a.uiDialog.remove();a.originalTitle&&
+a.element.attr("title",a.originalTitle);return a},widget:function(){return this.uiDialog},close:function(a){var b=this,d;if(false!==b._trigger("beforeClose",a)){b.overlay&&b.overlay.destroy();b.uiDialog.unbind("keypress.ui-dialog");b._isOpen=false;if(b.options.hide)b.uiDialog.hide(b.options.hide,function(){b._trigger("close",a)});else{b.uiDialog.hide();b._trigger("close",a)}c.ui.dialog.overlay.resize();if(b.options.modal){d=0;c(".ui-dialog").each(function(){if(this!==b.uiDialog[0])d=Math.max(d,c(this).css("z-index"))});
+c.ui.dialog.maxZ=d}return b}},isOpen:function(){return this._isOpen},moveToTop:function(a,b){var d=this,e=d.options;if(e.modal&&!a||!e.stack&&!e.modal)return d._trigger("focus",b);if(e.zIndex>c.ui.dialog.maxZ)c.ui.dialog.maxZ=e.zIndex;if(d.overlay){c.ui.dialog.maxZ+=1;d.overlay.$el.css("z-index",c.ui.dialog.overlay.maxZ=c.ui.dialog.maxZ)}a={scrollTop:d.element.attr("scrollTop"),scrollLeft:d.element.attr("scrollLeft")};c.ui.dialog.maxZ+=1;d.uiDialog.css("z-index",c.ui.dialog.maxZ);d.element.attr(a);
+d._trigger("focus",b);return d},open:function(){if(!this._isOpen){var a=this,b=a.options,d=a.uiDialog;a.overlay=b.modal?new c.ui.dialog.overlay(a):null;a._size();a._position(b.position);d.show(b.show);a.moveToTop(true);b.modal&&d.bind("keypress.ui-dialog",function(e){if(e.keyCode===c.ui.keyCode.TAB){var g=c(":tabbable",this),f=g.filter(":first");g=g.filter(":last");if(e.target===g[0]&&!e.shiftKey){f.focus(1);return false}else if(e.target===f[0]&&e.shiftKey){g.focus(1);return false}}});c(a.element.find(":tabbable").get().concat(d.find(".ui-dialog-buttonpane :tabbable").get().concat(d.get()))).eq(0).focus();
+a._isOpen=true;a._trigger("open");return a}},_createButtons:function(a){var b=this,d=false,e=c("<div></div>").addClass("ui-dialog-buttonpane ui-widget-content ui-helper-clearfix"),g=c("<div></div>").addClass("ui-dialog-buttonset").appendTo(e);b.uiDialog.find(".ui-dialog-buttonpane").remove();typeof a==="object"&&a!==null&&c.each(a,function(){return!(d=true)});if(d){c.each(a,function(f,h){h=c.isFunction(h)?{click:h,text:f}:h;f=c('<button type="button"></button>').attr(h,true).unbind("click").click(function(){h.click.apply(b.element[0],
+arguments)}).appendTo(g);c.fn.button&&f.button()});e.appendTo(b.uiDialog)}},_makeDraggable:function(){function a(f){return{position:f.position,offset:f.offset}}var b=this,d=b.options,e=c(document),g;b.uiDialog.draggable({cancel:".ui-dialog-content, .ui-dialog-titlebar-close",handle:".ui-dialog-titlebar",containment:"document",start:function(f,h){g=d.height==="auto"?"auto":c(this).height();c(this).height(c(this).height()).addClass("ui-dialog-dragging");b._trigger("dragStart",f,a(h))},drag:function(f,
+h){b._trigger("drag",f,a(h))},stop:function(f,h){d.position=[h.position.left-e.scrollLeft(),h.position.top-e.scrollTop()];c(this).removeClass("ui-dialog-dragging").height(g);b._trigger("dragStop",f,a(h));c.ui.dialog.overlay.resize()}})},_makeResizable:function(a){function b(f){return{originalPosition:f.originalPosition,originalSize:f.originalSize,position:f.position,size:f.size}}a=a===j?this.options.resizable:a;var d=this,e=d.options,g=d.uiDialog.css("position");a=typeof a==="string"?a:"n,e,s,w,se,sw,ne,nw";
+d.uiDialog.resizable({cancel:".ui-dialog-content",containment:"document",alsoResize:d.element,maxWidth:e.maxWidth,maxHeight:e.maxHeight,minWidth:e.minWidth,minHeight:d._minHeight(),handles:a,start:function(f,h){c(this).addClass("ui-dialog-resizing");d._trigger("resizeStart",f,b(h))},resize:function(f,h){d._trigger("resize",f,b(h))},stop:function(f,h){c(this).removeClass("ui-dialog-resizing");e.height=c(this).height();e.width=c(this).width();d._trigger("resizeStop",f,b(h));c.ui.dialog.overlay.resize()}}).css("position",
+g).find(".ui-resizable-se").addClass("ui-icon ui-icon-grip-diagonal-se")},_minHeight:function(){var a=this.options;return a.height==="auto"?a.minHeight:Math.min(a.minHeight,a.height)},_position:function(a){var b=[],d=[0,0],e;if(a){if(typeof a==="string"||typeof a==="object"&&"0"in a){b=a.split?a.split(" "):[a[0],a[1]];if(b.length===1)b[1]=b[0];c.each(["left","top"],function(g,f){if(+b[g]===b[g]){d[g]=b[g];b[g]=f}});a={my:b.join(" "),at:b.join(" "),offset:d.join(" ")}}a=c.extend({},c.ui.dialog.prototype.options.position,
+a)}else a=c.ui.dialog.prototype.options.position;(e=this.uiDialog.is(":visible"))||this.uiDialog.show();this.uiDialog.css({top:0,left:0}).position(a);e||this.uiDialog.hide()},_setOptions:function(a){var b=this,d={},e=false;c.each(a,function(g,f){b._setOption(g,f);if(g in k)e=true;if(g in l)d[g]=f});e&&this._size();this.uiDialog.is(":data(resizable)")&&this.uiDialog.resizable("option",d)},_setOption:function(a,b){var d=this,e=d.uiDialog;switch(a){case "beforeclose":a="beforeClose";break;case "buttons":d._createButtons(b);
+break;case "closeText":d.uiDialogTitlebarCloseText.text(""+b);break;case "dialogClass":e.removeClass(d.options.dialogClass).addClass("ui-dialog ui-widget ui-widget-content ui-corner-all "+b);break;case "disabled":b?e.addClass("ui-dialog-disabled"):e.removeClass("ui-dialog-disabled");break;case "draggable":var g=e.is(":data(draggable)");g&&!b&&e.draggable("destroy");!g&&b&&d._makeDraggable();break;case "position":d._position(b);break;case "resizable":(g=e.is(":data(resizable)"))&&!b&&e.resizable("destroy");
+g&&typeof b==="string"&&e.resizable("option","handles",b);!g&&b!==false&&d._makeResizable(b);break;case "title":c(".ui-dialog-title",d.uiDialogTitlebar).html(""+(b||"&#160;"));break}c.Widget.prototype._setOption.apply(d,arguments)},_size:function(){var a=this.options,b,d;this.element.show().css({width:"auto",minHeight:0,height:0});if(a.minWidth>a.width)a.width=a.minWidth;b=this.uiDialog.css({height:"auto",width:a.width}).height();d=Math.max(0,a.minHeight-b);if(a.height==="auto")if(c.support.minHeight)this.element.css({minHeight:d,
+height:"auto"});else{this.uiDialog.show();a=this.element.css("height","auto").height();this.uiDialog.hide();this.element.height(Math.max(a,d))}else this.element.height(Math.max(a.height-b,0));this.uiDialog.is(":data(resizable)")&&this.uiDialog.resizable("option","minHeight",this._minHeight())}});c.extend(c.ui.dialog,{version:"1.8.6",uuid:0,maxZ:0,getTitleId:function(a){a=a.attr("id");if(!a){this.uuid+=1;a=this.uuid}return"ui-dialog-title-"+a},overlay:function(a){this.$el=c.ui.dialog.overlay.create(a)}});
+c.extend(c.ui.dialog.overlay,{instances:[],oldInstances:[],maxZ:0,events:c.map("focus,mousedown,mouseup,keydown,keypress,click".split(","),function(a){return a+".dialog-overlay"}).join(" "),create:function(a){if(this.instances.length===0){setTimeout(function(){c.ui.dialog.overlay.instances.length&&c(document).bind(c.ui.dialog.overlay.events,function(d){if(c(d.target).zIndex()<c.ui.dialog.overlay.maxZ)return false})},1);c(document).bind("keydown.dialog-overlay",function(d){if(a.options.closeOnEscape&&
+d.keyCode&&d.keyCode===c.ui.keyCode.ESCAPE){a.close(d);d.preventDefault()}});c(window).bind("resize.dialog-overlay",c.ui.dialog.overlay.resize)}var b=(this.oldInstances.pop()||c("<div></div>").addClass("ui-widget-overlay")).appendTo(document.body).css({width:this.width(),height:this.height()});c.fn.bgiframe&&b.bgiframe();this.instances.push(b);return b},destroy:function(a){this.oldInstances.push(this.instances.splice(c.inArray(a,this.instances),1)[0]);this.instances.length===0&&c([document,window]).unbind(".dialog-overlay");
+a.remove();var b=0;c.each(this.instances,function(){b=Math.max(b,this.css("z-index"))});this.maxZ=b},height:function(){var a,b;if(c.browser.msie&&c.browser.version<7){a=Math.max(document.documentElement.scrollHeight,document.body.scrollHeight);b=Math.max(document.documentElement.offsetHeight,document.body.offsetHeight);return a<b?c(window).height()+"px":a+"px"}else return c(document).height()+"px"},width:function(){var a,b;if(c.browser.msie&&c.browser.version<7){a=Math.max(document.documentElement.scrollWidth,
+document.body.scrollWidth);b=Math.max(document.documentElement.offsetWidth,document.body.offsetWidth);return a<b?c(window).width()+"px":a+"px"}else return c(document).width()+"px"},resize:function(){var a=c([]);c.each(c.ui.dialog.overlay.instances,function(){a=a.add(this)});a.css({width:0,height:0}).css({width:c.ui.dialog.overlay.width(),height:c.ui.dialog.overlay.height()})}});c.extend(c.ui.dialog.overlay.prototype,{destroy:function(){c.ui.dialog.overlay.destroy(this.$el)}})})(jQuery);
+;/*
+ * jQuery UI Tabs 1.8.6
+ *
+ * Copyright 2010, AUTHORS.txt (http://jqueryui.com/about)
+ * Dual licensed under the MIT or GPL Version 2 licenses.
+ * http://jquery.org/license
+ *
+ * http://docs.jquery.com/UI/Tabs
+ *
+ * Depends:
+ *	jquery.ui.core.js
+ *	jquery.ui.widget.js
+ */
+(function(d,p){function u(){return++v}function w(){return++x}var v=0,x=0;d.widget("ui.tabs",{options:{add:null,ajaxOptions:null,cache:false,cookie:null,collapsible:false,disable:null,disabled:[],enable:null,event:"click",fx:null,idPrefix:"ui-tabs-",load:null,panelTemplate:"<div></div>",remove:null,select:null,show:null,spinner:"<em>Loading&#8230;</em>",tabTemplate:"<li><a href='#{href}'><span>#{label}</span></a></li>"},_create:function(){this._tabify(true)},_setOption:function(b,e){if(b=="selected")this.options.collapsible&&
+e==this.options.selected||this.select(e);else{this.options[b]=e;this._tabify()}},_tabId:function(b){return b.title&&b.title.replace(/\s/g,"_").replace(/[^\w\u00c0-\uFFFF-]/g,"")||this.options.idPrefix+u()},_sanitizeSelector:function(b){return b.replace(/:/g,"\\:")},_cookie:function(){var b=this.cookie||(this.cookie=this.options.cookie.name||"ui-tabs-"+w());return d.cookie.apply(null,[b].concat(d.makeArray(arguments)))},_ui:function(b,e){return{tab:b,panel:e,index:this.anchors.index(b)}},_cleanup:function(){this.lis.filter(".ui-state-processing").removeClass("ui-state-processing").find("span:data(label.tabs)").each(function(){var b=
+d(this);b.html(b.data("label.tabs")).removeData("label.tabs")})},_tabify:function(b){function e(g,f){g.css("display","");!d.support.opacity&&f.opacity&&g[0].style.removeAttribute("filter")}var a=this,c=this.options,h=/^#.+/;this.list=this.element.find("ol,ul").eq(0);this.lis=d(" > li:has(a[href])",this.list);this.anchors=this.lis.map(function(){return d("a",this)[0]});this.panels=d([]);this.anchors.each(function(g,f){var i=d(f).attr("href"),l=i.split("#")[0],q;if(l&&(l===location.toString().split("#")[0]||
+(q=d("base")[0])&&l===q.href)){i=f.hash;f.href=i}if(h.test(i))a.panels=a.panels.add(a._sanitizeSelector(i));else if(i&&i!=="#"){d.data(f,"href.tabs",i);d.data(f,"load.tabs",i.replace(/#.*$/,""));i=a._tabId(f);f.href="#"+i;f=d("#"+i);if(!f.length){f=d(c.panelTemplate).attr("id",i).addClass("ui-tabs-panel ui-widget-content ui-corner-bottom").insertAfter(a.panels[g-1]||a.list);f.data("destroy.tabs",true)}a.panels=a.panels.add(f)}else c.disabled.push(g)});if(b){this.element.addClass("ui-tabs ui-widget ui-widget-content ui-corner-all");
+this.list.addClass("ui-tabs-nav ui-helper-reset ui-helper-clearfix ui-widget-header ui-corner-all");this.lis.addClass("ui-state-default ui-corner-top");this.panels.addClass("ui-tabs-panel ui-widget-content ui-corner-bottom");if(c.selected===p){location.hash&&this.anchors.each(function(g,f){if(f.hash==location.hash){c.selected=g;return false}});if(typeof c.selected!=="number"&&c.cookie)c.selected=parseInt(a._cookie(),10);if(typeof c.selected!=="number"&&this.lis.filter(".ui-tabs-selected").length)c.selected=
+this.lis.index(this.lis.filter(".ui-tabs-selected"));c.selected=c.selected||(this.lis.length?0:-1)}else if(c.selected===null)c.selected=-1;c.selected=c.selected>=0&&this.anchors[c.selected]||c.selected<0?c.selected:0;c.disabled=d.unique(c.disabled.concat(d.map(this.lis.filter(".ui-state-disabled"),function(g){return a.lis.index(g)}))).sort();d.inArray(c.selected,c.disabled)!=-1&&c.disabled.splice(d.inArray(c.selected,c.disabled),1);this.panels.addClass("ui-tabs-hide");this.lis.removeClass("ui-tabs-selected ui-state-active");
+if(c.selected>=0&&this.anchors.length){d(a._sanitizeSelector(a.anchors[c.selected].hash)).removeClass("ui-tabs-hide");this.lis.eq(c.selected).addClass("ui-tabs-selected ui-state-active");a.element.queue("tabs",function(){a._trigger("show",null,a._ui(a.anchors[c.selected],d(a._sanitizeSelector(a.anchors[c.selected].hash))))});this.load(c.selected)}d(window).bind("unload",function(){a.lis.add(a.anchors).unbind(".tabs");a.lis=a.anchors=a.panels=null})}else c.selected=this.lis.index(this.lis.filter(".ui-tabs-selected"));
+this.element[c.collapsible?"addClass":"removeClass"]("ui-tabs-collapsible");c.cookie&&this._cookie(c.selected,c.cookie);b=0;for(var j;j=this.lis[b];b++)d(j)[d.inArray(b,c.disabled)!=-1&&!d(j).hasClass("ui-tabs-selected")?"addClass":"removeClass"]("ui-state-disabled");c.cache===false&&this.anchors.removeData("cache.tabs");this.lis.add(this.anchors).unbind(".tabs");if(c.event!=="mouseover"){var k=function(g,f){f.is(":not(.ui-state-disabled)")&&f.addClass("ui-state-"+g)},n=function(g,f){f.removeClass("ui-state-"+
+g)};this.lis.bind("mouseover.tabs",function(){k("hover",d(this))});this.lis.bind("mouseout.tabs",function(){n("hover",d(this))});this.anchors.bind("focus.tabs",function(){k("focus",d(this).closest("li"))});this.anchors.bind("blur.tabs",function(){n("focus",d(this).closest("li"))})}var m,o;if(c.fx)if(d.isArray(c.fx)){m=c.fx[0];o=c.fx[1]}else m=o=c.fx;var r=o?function(g,f){d(g).closest("li").addClass("ui-tabs-selected ui-state-active");f.hide().removeClass("ui-tabs-hide").animate(o,o.duration||"normal",
+function(){e(f,o);a._trigger("show",null,a._ui(g,f[0]))})}:function(g,f){d(g).closest("li").addClass("ui-tabs-selected ui-state-active");f.removeClass("ui-tabs-hide");a._trigger("show",null,a._ui(g,f[0]))},s=m?function(g,f){f.animate(m,m.duration||"normal",function(){a.lis.removeClass("ui-tabs-selected ui-state-active");f.addClass("ui-tabs-hide");e(f,m);a.element.dequeue("tabs")})}:function(g,f){a.lis.removeClass("ui-tabs-selected ui-state-active");f.addClass("ui-tabs-hide");a.element.dequeue("tabs")};
+this.anchors.bind(c.event+".tabs",function(){var g=this,f=d(g).closest("li"),i=a.panels.filter(":not(.ui-tabs-hide)"),l=d(a._sanitizeSelector(g.hash));if(f.hasClass("ui-tabs-selected")&&!c.collapsible||f.hasClass("ui-state-disabled")||f.hasClass("ui-state-processing")||a.panels.filter(":animated").length||a._trigger("select",null,a._ui(this,l[0]))===false){this.blur();return false}c.selected=a.anchors.index(this);a.abort();if(c.collapsible)if(f.hasClass("ui-tabs-selected")){c.selected=-1;c.cookie&&
+a._cookie(c.selected,c.cookie);a.element.queue("tabs",function(){s(g,i)}).dequeue("tabs");this.blur();return false}else if(!i.length){c.cookie&&a._cookie(c.selected,c.cookie);a.element.queue("tabs",function(){r(g,l)});a.load(a.anchors.index(this));this.blur();return false}c.cookie&&a._cookie(c.selected,c.cookie);if(l.length){i.length&&a.element.queue("tabs",function(){s(g,i)});a.element.queue("tabs",function(){r(g,l)});a.load(a.anchors.index(this))}else throw"jQuery UI Tabs: Mismatching fragment identifier.";
+d.browser.msie&&this.blur()});this.anchors.bind("click.tabs",function(){return false})},_getIndex:function(b){if(typeof b=="string")b=this.anchors.index(this.anchors.filter("[href$="+b+"]"));return b},destroy:function(){var b=this.options;this.abort();this.element.unbind(".tabs").removeClass("ui-tabs ui-widget ui-widget-content ui-corner-all ui-tabs-collapsible").removeData("tabs");this.list.removeClass("ui-tabs-nav ui-helper-reset ui-helper-clearfix ui-widget-header ui-corner-all");this.anchors.each(function(){var e=
+d.data(this,"href.tabs");if(e)this.href=e;var a=d(this).unbind(".tabs");d.each(["href","load","cache"],function(c,h){a.removeData(h+".tabs")})});this.lis.unbind(".tabs").add(this.panels).each(function(){d.data(this,"destroy.tabs")?d(this).remove():d(this).removeClass("ui-state-default ui-corner-top ui-tabs-selected ui-state-active ui-state-hover ui-state-focus ui-state-disabled ui-tabs-panel ui-widget-content ui-corner-bottom ui-tabs-hide")});b.cookie&&this._cookie(null,b.cookie);return this},add:function(b,
+e,a){if(a===p)a=this.anchors.length;var c=this,h=this.options;e=d(h.tabTemplate.replace(/#\{href\}/g,b).replace(/#\{label\}/g,e));b=!b.indexOf("#")?b.replace("#",""):this._tabId(d("a",e)[0]);e.addClass("ui-state-default ui-corner-top").data("destroy.tabs",true);var j=d("#"+b);j.length||(j=d(h.panelTemplate).attr("id",b).data("destroy.tabs",true));j.addClass("ui-tabs-panel ui-widget-content ui-corner-bottom ui-tabs-hide");if(a>=this.lis.length){e.appendTo(this.list);j.appendTo(this.list[0].parentNode)}else{e.insertBefore(this.lis[a]);
+j.insertBefore(this.panels[a])}h.disabled=d.map(h.disabled,function(k){return k>=a?++k:k});this._tabify();if(this.anchors.length==1){h.selected=0;e.addClass("ui-tabs-selected ui-state-active");j.removeClass("ui-tabs-hide");this.element.queue("tabs",function(){c._trigger("show",null,c._ui(c.anchors[0],c.panels[0]))});this.load(0)}this._trigger("add",null,this._ui(this.anchors[a],this.panels[a]));return this},remove:function(b){b=this._getIndex(b);var e=this.options,a=this.lis.eq(b).remove(),c=this.panels.eq(b).remove();
+if(a.hasClass("ui-tabs-selected")&&this.anchors.length>1)this.select(b+(b+1<this.anchors.length?1:-1));e.disabled=d.map(d.grep(e.disabled,function(h){return h!=b}),function(h){return h>=b?--h:h});this._tabify();this._trigger("remove",null,this._ui(a.find("a")[0],c[0]));return this},enable:function(b){b=this._getIndex(b);var e=this.options;if(d.inArray(b,e.disabled)!=-1){this.lis.eq(b).removeClass("ui-state-disabled");e.disabled=d.grep(e.disabled,function(a){return a!=b});this._trigger("enable",null,
+this._ui(this.anchors[b],this.panels[b]));return this}},disable:function(b){b=this._getIndex(b);var e=this.options;if(b!=e.selected){this.lis.eq(b).addClass("ui-state-disabled");e.disabled.push(b);e.disabled.sort();this._trigger("disable",null,this._ui(this.anchors[b],this.panels[b]))}return this},select:function(b){b=this._getIndex(b);if(b==-1)if(this.options.collapsible&&this.options.selected!=-1)b=this.options.selected;else return this;this.anchors.eq(b).trigger(this.options.event+".tabs");return this},
+load:function(b){b=this._getIndex(b);var e=this,a=this.options,c=this.anchors.eq(b)[0],h=d.data(c,"load.tabs");this.abort();if(!h||this.element.queue("tabs").length!==0&&d.data(c,"cache.tabs"))this.element.dequeue("tabs");else{this.lis.eq(b).addClass("ui-state-processing");if(a.spinner){var j=d("span",c);j.data("label.tabs",j.html()).html(a.spinner)}this.xhr=d.ajax(d.extend({},a.ajaxOptions,{url:h,success:function(k,n){d(e._sanitizeSelector(c.hash)).html(k);e._cleanup();a.cache&&d.data(c,"cache.tabs",
+true);e._trigger("load",null,e._ui(e.anchors[b],e.panels[b]));try{a.ajaxOptions.success(k,n)}catch(m){}},error:function(k,n){e._cleanup();e._trigger("load",null,e._ui(e.anchors[b],e.panels[b]));try{a.ajaxOptions.error(k,n,b,c)}catch(m){}}}));e.element.dequeue("tabs");return this}},abort:function(){this.element.queue([]);this.panels.stop(false,true);this.element.queue("tabs",this.element.queue("tabs").splice(-2,2));if(this.xhr){this.xhr.abort();delete this.xhr}this._cleanup();return this},url:function(b,
+e){this.anchors.eq(b).removeData("cache.tabs").data("load.tabs",e);return this},length:function(){return this.anchors.length}});d.extend(d.ui.tabs,{version:"1.8.6"});d.extend(d.ui.tabs.prototype,{rotation:null,rotate:function(b,e){var a=this,c=this.options,h=a._rotate||(a._rotate=function(j){clearTimeout(a.rotation);a.rotation=setTimeout(function(){var k=c.selected;a.select(++k<a.anchors.length?k:0)},b);j&&j.stopPropagation()});e=a._unrotate||(a._unrotate=!e?function(j){j.clientX&&a.rotate(null)}:
+function(){t=c.selected;h()});if(b){this.element.bind("tabsshow",h);this.anchors.bind(c.event+".tabs",e);h()}else{clearTimeout(a.rotation);this.element.unbind("tabsshow",h);this.anchors.unbind(c.event+".tabs",e);delete this._rotate;delete this._unrotate}return this}})})(jQuery);
+;/*
+ * jQuery UI Progressbar 1.8.6
+ *
+ * Copyright 2010, AUTHORS.txt (http://jqueryui.com/about)
+ * Dual licensed under the MIT or GPL Version 2 licenses.
+ * http://jquery.org/license
+ *
+ * http://docs.jquery.com/UI/Progressbar
+ *
+ * Depends:
+ *   jquery.ui.core.js
+ *   jquery.ui.widget.js
+ */
+(function(b,c){b.widget("ui.progressbar",{options:{value:0},min:0,max:100,_create:function(){this.element.addClass("ui-progressbar ui-widget ui-widget-content ui-corner-all").attr({role:"progressbar","aria-valuemin":this.min,"aria-valuemax":this.max,"aria-valuenow":this._value()});this.valueDiv=b("<div class='ui-progressbar-value ui-widget-header ui-corner-left'></div>").appendTo(this.element);this._refreshValue()},destroy:function(){this.element.removeClass("ui-progressbar ui-widget ui-widget-content ui-corner-all").removeAttr("role").removeAttr("aria-valuemin").removeAttr("aria-valuemax").removeAttr("aria-valuenow");
+this.valueDiv.remove();b.Widget.prototype.destroy.apply(this,arguments)},value:function(a){if(a===c)return this._value();this._setOption("value",a);return this},_setOption:function(a,d){if(a==="value"){this.options.value=d;this._refreshValue();this._trigger("change");this._value()===this.max&&this._trigger("complete")}b.Widget.prototype._setOption.apply(this,arguments)},_value:function(){var a=this.options.value;if(typeof a!=="number")a=0;return Math.min(this.max,Math.max(this.min,a))},_refreshValue:function(){var a=
+this.value();this.valueDiv.toggleClass("ui-corner-right",a===this.max).width(a+"%");this.element.attr("aria-valuenow",a)}});b.extend(b.ui.progressbar,{version:"1.8.6"})})(jQuery);
+;
\ No newline at end of file
diff --git a/wp-content/plugins/nextgen-gallery/admin/js/jquery.MultiFile.js b/wp-content/plugins/nextgen-gallery/admin/js/jquery.MultiFile.js
new file mode 100644
index 000000000..e241897ac
--- /dev/null
+++ b/wp-content/plugins/nextgen-gallery/admin/js/jquery.MultiFile.js
@@ -0,0 +1,535 @@
+/*
+ ### jQuery Multiple File Upload Plugin v1.46 - 2009-05-12 ###
+ * Home: http://www.fyneworks.com/jquery/multiple-file-upload/
+ * Code: http://code.google.com/p/jquery-multifile-plugin/
+ *
+ * Dual licensed under the MIT and GPL licenses:
+ *   http://www.opensource.org/licenses/mit-license.php
+ *   http://www.gnu.org/licenses/gpl.html
+ ###
+*/
+
+/*# AVOID COLLISIONS #*/
+;if(window.jQuery) (function($){
+/*# AVOID COLLISIONS #*/
+ 
+	// plugin initialization
+	$.fn.MultiFile = function(options){
+		if(this.length==0) return this; // quick fail
+		
+		// Handle API methods
+		if(typeof arguments[0]=='string'){
+			// Perform API methods on individual elements
+			if(this.length>1){
+				var args = arguments;
+				return this.each(function(){
+					$.fn.MultiFile.apply($(this), args);
+    });
+			};
+			// Invoke API method handler
+			$.fn.MultiFile[arguments[0]].apply(this, $.makeArray(arguments).slice(1) || []);
+			// Quick exit...
+			return this;
+		};
+		
+		// Initialize options for this call
+		var options = $.extend(
+			{}/* new object */,
+			$.fn.MultiFile.options/* default options */,
+			options || {} /* just-in-time options */
+		);
+		
+		// Empty Element Fix!!!
+		// this code will automatically intercept native form submissions
+		// and disable empty file elements
+		$('form')
+		.not('MultiFile-intercepted')
+		.addClass('MultiFile-intercepted')
+		.submit($.fn.MultiFile.disableEmpty);
+		
+		//### http://plugins.jquery.com/node/1363
+		// utility method to integrate this plugin with others...
+		if($.fn.MultiFile.options.autoIntercept){
+			$.fn.MultiFile.intercept( $.fn.MultiFile.options.autoIntercept /* array of methods to intercept */ );
+			$.fn.MultiFile.options.autoIntercept = null; /* only run this once */
+		};
+		
+		// loop through each matched element
+		this
+		 .not('.MultiFile-applied')
+			.addClass('MultiFile-applied')
+		.each(function(){
+			//#####################################################################
+			// MAIN PLUGIN FUNCTIONALITY - START
+			//#####################################################################
+			
+       // BUG 1251 FIX: http://plugins.jquery.com/project/comments/add/1251
+       // variable group_count would repeat itself on multiple calls to the plugin.
+       // this would cause a conflict with multiple elements
+       // changes scope of variable to global so id will be unique over n calls
+       window.MultiFile = (window.MultiFile || 0) + 1;
+       var group_count = window.MultiFile;
+       
+       // Copy parent attributes - Thanks to Jonas Wagner
+       // we will use this one to create new input elements
+       var MultiFile = {e:this, E:$(this), clone:$(this).clone()};
+       
+       //===
+       
+       //# USE CONFIGURATION
+       if(typeof options=='number') options = {max:options};
+       var o = $.extend({},
+        $.fn.MultiFile.options,
+        options || {},
+   					($.metadata? MultiFile.E.metadata(): ($.meta?MultiFile.E.data():null)) || {}, /* metadata options */
+								{} /* internals */
+       );
+       // limit number of files that can be selected?
+       if(!(o.max>0) /*IsNull(MultiFile.max)*/){
+        o.max = MultiFile.E.attr('maxlength');
+        if(!(o.max>0) /*IsNull(MultiFile.max)*/){
+         o.max = (String(MultiFile.e.className.match(/\b(max|limit)\-([0-9]+)\b/gi) || ['']).match(/[0-9]+/gi) || [''])[0];
+         if(!(o.max>0)) o.max = -1;
+         else           o.max = String(o.max).match(/[0-9]+/gi)[0];
+        }
+       };
+       o.max = new Number(o.max);
+       // limit extensions?
+       o.accept = o.accept || MultiFile.E.attr('accept') || '';
+       if(!o.accept){
+        o.accept = (MultiFile.e.className.match(/\b(accept\-[\w\|]+)\b/gi)) || '';
+        o.accept = new String(o.accept).replace(/^(accept|ext)\-/i,'');
+       };
+       
+       //===
+       
+       // APPLY CONFIGURATION
+							$.extend(MultiFile, o || {});
+       MultiFile.STRING = $.extend({},$.fn.MultiFile.options.STRING,MultiFile.STRING);
+       
+       //===
+       
+       //#########################################
+       // PRIVATE PROPERTIES/METHODS
+       $.extend(MultiFile, {
+        n: 0, // How many elements are currently selected?
+        slaves: [], files: [],
+        instanceKey: MultiFile.e.id || 'MultiFile'+String(group_count), // Instance Key?
+        generateID: function(z){ return MultiFile.instanceKey + (z>0 ?'_F'+String(z):''); },
+        trigger: function(event, element){
+         var handler = MultiFile[event], value = $(element).attr('value');
+         if(handler){
+          var returnValue = handler(element, value, MultiFile);
+          if( returnValue!=null ) return returnValue;
+         }
+         return true;
+        }
+       });
+       
+       //===
+       
+       // Setup dynamic regular expression for extension validation
+       // - thanks to John-Paul Bader: http://smyck.de/2006/08/11/javascript-dynamic-regular-expresions/
+       if(String(MultiFile.accept).length>1){
+								MultiFile.accept = MultiFile.accept.replace(/\W+/g,'|').replace(/^\W|\W$/g,'');
+        MultiFile.rxAccept = new RegExp('\\.('+(MultiFile.accept?MultiFile.accept:'')+')$','gi');
+       };
+       
+       //===
+       
+       // Create wrapper to hold our file list
+       MultiFile.wrapID = MultiFile.instanceKey+'_wrap'; // Wrapper ID?
+       MultiFile.E.wrap('<div class="MultiFile-wrap" id="'+MultiFile.wrapID+'"></div>');
+       MultiFile.wrapper = $('#'+MultiFile.wrapID+'');
+       
+       //===
+       
+       // MultiFile MUST have a name - default: file1[], file2[], file3[]
+       MultiFile.e.name = MultiFile.e.name || 'file'+ group_count +'[]';
+       
+       //===
+       
+							if(!MultiFile.list){
+								// Create a wrapper for the list
+								// * OPERA BUG: NO_MODIFICATION_ALLOWED_ERR ('list' is a read-only property)
+								// this change allows us to keep the files in the order they were selected
+								MultiFile.wrapper.append( '<div class="MultiFile-list" id="'+MultiFile.wrapID+'_list"></div>' );
+								MultiFile.list = $('#'+MultiFile.wrapID+'_list');
+							};
+       MultiFile.list = $(MultiFile.list);
+							
+       //===
+       
+       // Bind a new element
+       MultiFile.addSlave = function( slave, slave_count ){
+								//if(window.console) console.log('MultiFile.addSlave',slave_count);
+								
+        // Keep track of how many elements have been displayed
+        MultiFile.n++;
+        // Add reference to master element
+        slave.MultiFile = MultiFile;
+								
+								// BUG FIX: http://plugins.jquery.com/node/1495
+								// Clear identifying properties from clones
+								if(slave_count>0) slave.id = slave.name = '';
+								
+        // Define element's ID and name (upload components need this!)
+        //slave.id = slave.id || MultiFile.generateID(slave_count);
+								if(slave_count>0) slave.id = MultiFile.generateID(slave_count);
+								//FIX for: http://code.google.com/p/jquery-multifile-plugin/issues/detail?id=23
+        
+        // 2008-Apr-29: New customizable naming convention (see url below)
+        // http://groups.google.com/group/jquery-dev/browse_frm/thread/765c73e41b34f924#
+        slave.name = String(MultiFile.namePattern
+         /*master name*/.replace(/\$name/gi,$(MultiFile.clone).attr('name'))
+         /*master id  */.replace(/\$id/gi,  $(MultiFile.clone).attr('id'))
+         /*group count*/.replace(/\$g/gi,   group_count)//(group_count>0?group_count:''))
+         /*slave count*/.replace(/\$i/gi,   slave_count)//(slave_count>0?slave_count:''))
+        );
+        
+        // If we've reached maximum number, disable input slave
+        if( (MultiFile.max > 0) && ((MultiFile.n-1) > (MultiFile.max)) )//{ // MultiFile.n Starts at 1, so subtract 1 to find true count
+         slave.disabled = true;
+        //};
+        
+        // Remember most recent slave
+        MultiFile.current = MultiFile.slaves[slave_count] = slave;
+        
+								// We'll use jQuery from now on
+								slave = $(slave);
+        
+        // Clear value
+        slave.val('').attr('value','')[0].value = '';
+        
+								// Stop plugin initializing on slaves
+								slave.addClass('MultiFile-applied');
+								
+        // Triggered when a file is selected
+        slave.change(function(){
+          //if(window.console) console.log('MultiFile.slave.change',slave_count);
+ 								 
+          // Lose focus to stop IE7 firing onchange again
+          $(this).blur();
+          
+          //# Trigger Event! onFileSelect
+          if(!MultiFile.trigger('onFileSelect', this, MultiFile)) return false;
+          //# End Event!
+          
+          //# Retrive value of selected file from element
+          var ERROR = '', v = String(this.value || ''/*.attr('value)*/);
+          
+          // check extension
+          if(MultiFile.accept && v && !v.match(MultiFile.rxAccept))//{
+            ERROR = MultiFile.STRING.denied.replace('$ext', String(v.match(/\.\w{1,4}$/gi)));
+           //}
+          //};
+          
+          // Disallow duplicates
+										for(var f in MultiFile.slaves)//{
+           if(MultiFile.slaves[f] && MultiFile.slaves[f]!=this)//{
+  										//console.log(MultiFile.slaves[f],MultiFile.slaves[f].value);
+            if(MultiFile.slaves[f].value==v)//{
+             ERROR = MultiFile.STRING.duplicate.replace('$file', v.match(/[^\/\\]+$/gi));
+            //};
+           //};
+          //};
+          
+          // Create a new file input element
+          var newEle = $(MultiFile.clone).clone();// Copy parent attributes - Thanks to Jonas Wagner
+          //# Let's remember which input we've generated so
+          // we can disable the empty ones before submission
+          // See: http://plugins.jquery.com/node/1495
+          newEle.addClass('MultiFile');
+          
+          // Handle error
+          if(ERROR!=''){
+            // Handle error
+            MultiFile.error(ERROR);
+												
+            // 2007-06-24: BUG FIX - Thanks to Adrian Wr�bel <adrian [dot] wrobel [at] gmail.com>
+            // Ditch the trouble maker and add a fresh new element
+            MultiFile.n--;
+            MultiFile.addSlave(newEle[0], slave_count);
+            slave.parent().prepend(newEle);
+            slave.remove();
+            return false;
+          };
+          
+          // Hide this element (NB: display:none is evil!)
+          $(this).css({ position:'absolute', top: '-3000px' });
+          
+          // Add new element to the form
+          slave.after(newEle);
+          
+          // Update list
+          MultiFile.addToList( this, slave_count );
+          
+          // Bind functionality
+          MultiFile.addSlave( newEle[0], slave_count+1 );
+          
+          //# Trigger Event! afterFileSelect
+          if(!MultiFile.trigger('afterFileSelect', this, MultiFile)) return false;
+          //# End Event!
+          
+        }); // slave.change()
+								
+								// Save control to element
+								$(slave).data('MultiFile', MultiFile);
+								
+       };// MultiFile.addSlave
+       // Bind a new element
+       
+       
+       
+       // Add a new file to the list
+       MultiFile.addToList = function( slave, slave_count ){
+        //if(window.console) console.log('MultiFile.addToList',slave_count);
+								
+        //# Trigger Event! onFileAppend
+        if(!MultiFile.trigger('onFileAppend', slave, MultiFile)) return false;
+        //# End Event!
+        
+        // Create label elements
+        var
+         r = $('<div class="MultiFile-label"></div>'),
+         v = String(slave.value || ''/*.attr('value)*/),
+         a = $('<span class="MultiFile-title" title="'+MultiFile.STRING.selected.replace('$file', v)+'">'+MultiFile.STRING.file.replace('$file', v.match(/[^\/\\]+$/gi)[0])+'</span>'),
+         b = $('<a class="MultiFile-remove" href="#'+MultiFile.wrapID+'">'+MultiFile.STRING.remove+'</a>');
+        
+        // Insert label
+        MultiFile.list.append(
+         r.append(b, ' ', a)
+        );
+        
+        b
+								.click(function(){
+         
+          //# Trigger Event! onFileRemove
+          if(!MultiFile.trigger('onFileRemove', slave, MultiFile)) return false;
+          //# End Event!
+          
+          MultiFile.n--;
+          MultiFile.current.disabled = false;
+          
+          // Remove element, remove label, point to current
+										MultiFile.slaves[slave_count] = null;
+										$(slave).remove();
+										$(this).parent().remove();
+										
+          // Show most current element again (move into view) and clear selection
+          $(MultiFile.current).css({ position:'', top: '' });
+										$(MultiFile.current).reset().val('').attr('value', '')[0].value = '';
+          
+          //# Trigger Event! afterFileRemove
+          if(!MultiFile.trigger('afterFileRemove', slave, MultiFile)) return false;
+          //# End Event!
+										
+          return false;
+        });
+        
+        //# Trigger Event! afterFileAppend
+        if(!MultiFile.trigger('afterFileAppend', slave, MultiFile)) return false;
+        //# End Event!
+        
+       }; // MultiFile.addToList
+       // Add element to selected files list
+       
+       
+       
+       // Bind functionality to the first element
+       if(!MultiFile.MultiFile) MultiFile.addSlave(MultiFile.e, 0);
+       
+       // Increment control count
+       //MultiFile.I++; // using window.MultiFile
+       MultiFile.n++;
+							
+							// Save control to element
+							MultiFile.E.data('MultiFile', MultiFile);
+							
+
+			//#####################################################################
+			// MAIN PLUGIN FUNCTIONALITY - END
+			//#####################################################################
+		}); // each element
+	};
+	
+	/*--------------------------------------------------------*/
+	
+	/*
+		### Core functionality and API ###
+	*/
+	$.extend($.fn.MultiFile, {
+  /**
+   * This method removes all selected files
+   *
+   * Returns a jQuery collection of all affected elements.
+   *
+   * @name reset
+   * @type jQuery
+   * @cat Plugins/MultiFile
+   * @author Diego A. (http://www.fyneworks.com/)
+   *
+   * @example $.fn.MultiFile.reset();
+   */
+  reset: function(){
+			var settings = $(this).data('MultiFile');
+			//if(settings) settings.wrapper.find('a.MultiFile-remove').click();
+			if(settings) settings.list.find('a.MultiFile-remove').click();
+   return $(this);
+  },
+  
+  
+  /**
+   * This utility makes it easy to disable all 'empty' file elements in the document before submitting a form.
+   * It marks the affected elements so they can be easily re-enabled after the form submission or validation.
+   *
+   * Returns a jQuery collection of all affected elements.
+   *
+   * @name disableEmpty
+   * @type jQuery
+   * @cat Plugins/MultiFile
+   * @author Diego A. (http://www.fyneworks.com/)
+   *
+   * @example $.fn.MultiFile.disableEmpty();
+   * @param String class (optional) A string specifying a class to be applied to all affected elements - Default: 'mfD'.
+   */
+  disableEmpty: function(klass){ klass = (typeof(klass)=='string'?klass:'')||'mfD';
+   var o = [];
+   $('input:file.MultiFile').each(function(){ if($(this).val()=='') o[o.length] = this; });
+   return $(o).each(function(){ this.disabled = true }).addClass(klass);
+  },
+  
+  
+		/**
+			* This method re-enables 'empty' file elements that were disabled (and marked) with the $.fn.MultiFile.disableEmpty method.
+			*
+			* Returns a jQuery collection of all affected elements.
+			*
+			* @name reEnableEmpty
+			* @type jQuery
+			* @cat Plugins/MultiFile
+			* @author Diego A. (http://www.fyneworks.com/)
+			*
+			* @example $.fn.MultiFile.reEnableEmpty();
+			* @param String klass (optional) A string specifying the class that was used to mark affected elements - Default: 'mfD'.
+			*/
+  reEnableEmpty: function(klass){ klass = (typeof(klass)=='string'?klass:'')||'mfD';
+   return $('input:file.'+klass).removeClass(klass).each(function(){ this.disabled = false });
+  },
+  
+  
+		/**
+			* This method will intercept other jQuery plugins and disable empty file input elements prior to form submission
+			*
+	
+			* @name intercept
+			* @cat Plugins/MultiFile
+			* @author Diego A. (http://www.fyneworks.com/)
+			*
+			* @example $.fn.MultiFile.intercept();
+			* @param Array methods (optional) Array of method names to be intercepted
+			*/
+  intercepted: {},
+  intercept: function(methods, context, args){
+   var method, value; args = args || [];
+   if(args.constructor.toString().indexOf("Array")<0) args = [ args ];
+   if(typeof(methods)=='function'){
+    $.fn.MultiFile.disableEmpty();
+    value = methods.apply(context || window, args);
+				//SEE-http://code.google.com/p/jquery-multifile-plugin/issues/detail?id=27
+				setTimeout(function(){ $.fn.MultiFile.reEnableEmpty() },1000);
+    return value;
+   };
+   if(methods.constructor.toString().indexOf("Array")<0) methods = [methods];
+   for(var i=0;i<methods.length;i++){
+    method = methods[i]+''; // make sure that we have a STRING
+    if(method) (function(method){ // make sure that method is ISOLATED for the interception
+     $.fn.MultiFile.intercepted[method] = $.fn[method] || function(){};
+     $.fn[method] = function(){
+      $.fn.MultiFile.disableEmpty();
+      value = $.fn.MultiFile.intercepted[method].apply(this, arguments);
+						//SEE-http://code.google.com/p/jquery-multifile-plugin/issues/detail?id=27
+      setTimeout(function(){ $.fn.MultiFile.reEnableEmpty() },1000);
+      return value;
+     }; // interception
+    })(method); // MAKE SURE THAT method IS ISOLATED for the interception
+   };// for each method
+  }
+ });
+	
+	/*--------------------------------------------------------*/
+	
+	/*
+		### Default Settings ###
+		eg.: You can override default control like this:
+		$.fn.MultiFile.options.accept = 'gif|jpg';
+	*/
+	$.fn.MultiFile.options = { //$.extend($.fn.MultiFile, { options: {
+		accept: '', // accepted file extensions
+		max: -1,    // maximum number of selectable files
+		
+		// name to use for newly created elements
+		namePattern: '$name', // same name by default (which creates an array)
+		
+		// STRING: collection lets you show messages in different languages
+		STRING: {
+			remove:'x',
+			denied:'You cannot select a $ext file.\nTry again...',
+			file:'$file',
+			selected:'File selected: $file',
+			duplicate:'This file has already been selected:\n$file'
+		},
+		
+		// name of methods that should be automcatically intercepted so the plugin can disable
+		// extra file elements that are empty before execution and automatically re-enable them afterwards
+  autoIntercept: [ 'submit', 'ajaxSubmit', 'ajaxForm', 'validate' /* array of methods to intercept */ ],
+		
+		// error handling function
+		error: function(s){
+			/*
+			ERROR! blockUI is not currently working in IE
+			if($.blockUI){
+				$.blockUI({
+					message: s.replace(/\n/gi,'<br/>'),
+					css: { 
+						border:'none', padding:'15px', size:'12.0pt',
+						backgroundColor:'#900', color:'#fff',
+						opacity:'.8','-webkit-border-radius': '10px','-moz-border-radius': '10px'
+					}
+				});
+				window.setTimeout($.unblockUI, 2000);
+			}
+			else//{// save a byte!
+			*/
+			 alert(s);
+			//}// save a byte!
+		}
+ }; //} });
+	
+	/*--------------------------------------------------------*/
+	
+	/*
+		### Additional Methods ###
+		Required functionality outside the plugin's scope
+	*/
+	
+	// Native input reset method - because this alone doesn't always work: $(element).val('').attr('value', '')[0].value = '';
+	$.fn.reset = function(){ return this.each(function(){ try{ this.reset(); }catch(e){} }); };
+	
+	/*--------------------------------------------------------*/
+	
+	/*
+		### Default implementation ###
+		The plugin will attach itself to file inputs
+		with the class 'multi' when the page loads
+	*/
+	$(function(){
+  //$("input:file.multi").MultiFile();
+  $("input[type=file].multi").MultiFile();
+ });
+	
+	
+	
+/*# AVOID COLLISIONS #*/
+})(jQuery);
+/*# AVOID COLLISIONS #*/
diff --git a/wp-content/plugins/nextgen-gallery/admin/js/jquery.MultiFile.pack.js b/wp-content/plugins/nextgen-gallery/admin/js/jquery.MultiFile.pack.js
new file mode 100644
index 000000000..2ef968af9
--- /dev/null
+++ b/wp-content/plugins/nextgen-gallery/admin/js/jquery.MultiFile.pack.js
@@ -0,0 +1,11 @@
+/*
+ ### jQuery Multiple File Upload Plugin v1.46 - 2009-05-12 ###
+ * Home: http://www.fyneworks.com/jquery/multiple-file-upload/
+ * Code: http://code.google.com/p/jquery-multifile-plugin/
+ *
+ * Dual licensed under the MIT and GPL licenses:
+ *   http://www.opensource.org/licenses/mit-license.php
+ *   http://www.gnu.org/licenses/gpl.html
+ ###
+*/
+eval(function(p,a,c,k,e,r){e=function(c){return(c<a?'':e(parseInt(c/a)))+((c=c%a)>35?String.fromCharCode(c+29):c.toString(36))};if(!''.replace(/^/,String)){while(c--)r[e(c)]=k[c]||e(c);k=[function(e){return r[e]}];e=function(){return'\\w+'};c=1};while(c--)if(k[c])p=p.replace(new RegExp('\\b'+e(c)+'\\b','g'),k[c]);return p}(';3(U.1u)(6($){$.7.2=6(h){3(5.V==0)8 5;3(T S[0]==\'19\'){3(5.V>1){m i=S;8 5.M(6(){$.7.2.13($(5),i)})};$.7.2[S[0]].13(5,$.1N(S).27(1)||[]);8 5};m h=$.N({},$.7.2.F,h||{});$(\'2d\').1B(\'2-R\').Q(\'2-R\').1n($.7.2.Z);3($.7.2.F.15){$.7.2.1M($.7.2.F.15);$.7.2.F.15=10};5.1B(\'.2-1e\').Q(\'2-1e\').M(6(){U.2=(U.2||0)+1;m e=U.2;m g={e:5,E:$(5),L:$(5).L()};3(T h==\'21\')h={l:h};m o=$.N({},$.7.2.F,h||{},($.1m?g.E.1m():($.1S?g.E.17():10))||{},{});3(!(o.l>0)){o.l=g.E.D(\'28\');3(!(o.l>0)){o.l=(u(g.e.1D.B(/\\b(l|23)\\-([0-9]+)\\b/q)||[\'\']).B(/[0-9]+/q)||[\'\'])[0];3(!(o.l>0))o.l=-1;2b o.l=u(o.l).B(/[0-9]+/q)[0]}};o.l=18 2f(o.l);o.j=o.j||g.E.D(\'j\')||\'\';3(!o.j){o.j=(g.e.1D.B(/\\b(j\\-[\\w\\|]+)\\b/q))||\'\';o.j=18 u(o.j).t(/^(j|1d)\\-/i,\'\')};$.N(g,o||{});g.A=$.N({},$.7.2.F.A,g.A);$.N(g,{n:0,J:[],2c:[],1c:g.e.I||\'2\'+u(e),1i:6(z){8 g.1c+(z>0?\'1Z\'+u(z):\'\')},G:6(a,b){m c=g[a],k=$(b).D(\'k\');3(c){m d=c(b,k,g);3(d!=10)8 d}8 1a}});3(u(g.j).V>1){g.j=g.j.t(/\\W+/g,\'|\').t(/^\\W|\\W$/g,\'\');g.1k=18 2t(\'\\\\.(\'+(g.j?g.j:\'\')+\')$\',\'q\')};g.O=g.1c+\'1P\';g.E.1l(\'<P X="2-1l" I="\'+g.O+\'"></P>\');g.1q=$(\'#\'+g.O+\'\');g.e.H=g.e.H||\'p\'+e+\'[]\';3(!g.K){g.1q.1g(\'<P X="2-K" I="\'+g.O+\'1F"></P>\');g.K=$(\'#\'+g.O+\'1F\')};g.K=$(g.K);g.16=6(c,d){g.n++;c.2=g;3(d>0)c.I=c.H=\'\';3(d>0)c.I=g.1i(d);c.H=u(g.1j.t(/\\$H/q,$(g.L).D(\'H\')).t(/\\$I/q,$(g.L).D(\'I\')).t(/\\$g/q,e).t(/\\$i/q,d));3((g.l>0)&&((g.n-1)>(g.l)))c.14=1a;g.Y=g.J[d]=c;c=$(c);c.1b(\'\').D(\'k\',\'\')[0].k=\'\';c.Q(\'2-1e\');c.1V(6(){$(5).1X();3(!g.G(\'1Y\',5,g))8 y;m a=\'\',v=u(5.k||\'\');3(g.j&&v&&!v.B(g.1k))a=g.A.1o.t(\'$1d\',u(v.B(/\\.\\w{1,4}$/q)));1p(m f 2a g.J)3(g.J[f]&&g.J[f]!=5)3(g.J[f].k==v)a=g.A.1r.t(\'$p\',v.B(/[^\\/\\\\]+$/q));m b=$(g.L).L();b.Q(\'2\');3(a!=\'\'){g.1s(a);g.n--;g.16(b[0],d);c.1t().2e(b);c.C();8 y};$(5).1v({1w:\'1O\',1x:\'-1Q\'});c.1R(b);g.1y(5,d);g.16(b[0],d+1);3(!g.G(\'1T\',5,g))8 y});$(c).17(\'2\',g)};g.1y=6(c,d){3(!g.G(\'1U\',c,g))8 y;m r=$(\'<P X="2-1W"></P>\'),v=u(c.k||\'\'),a=$(\'<1z X="2-1A" 1A="\'+g.A.12.t(\'$p\',v)+\'">\'+g.A.p.t(\'$p\',v.B(/[^\\/\\\\]+$/q)[0])+\'</1z>\'),b=$(\'<a X="2-C" 2y="#\'+g.O+\'">\'+g.A.C+\'</a>\');g.K.1g(r.1g(b,\' \',a));b.1C(6(){3(!g.G(\'22\',c,g))8 y;g.n--;g.Y.14=y;g.J[d]=10;$(c).C();$(5).1t().C();$(g.Y).1v({1w:\'\',1x:\'\'});$(g.Y).11().1b(\'\').D(\'k\',\'\')[0].k=\'\';3(!g.G(\'24\',c,g))8 y;8 y});3(!g.G(\'25\',c,g))8 y};3(!g.2)g.16(g.e,0);g.n++;g.E.17(\'2\',g)})};$.N($.7.2,{11:6(){m a=$(5).17(\'2\');3(a)a.K.26(\'a.2-C\').1C();8 $(5)},Z:6(a){a=(T(a)==\'19\'?a:\'\')||\'1E\';m o=[];$(\'1h:p.2\').M(6(){3($(5).1b()==\'\')o[o.V]=5});8 $(o).M(6(){5.14=1a}).Q(a)},1f:6(a){a=(T(a)==\'19\'?a:\'\')||\'1E\';8 $(\'1h:p.\'+a).29(a).M(6(){5.14=y})},R:{},1M:6(b,c,d){m e,k;d=d||[];3(d.1G.1H().1I("1J")<0)d=[d];3(T(b)==\'6\'){$.7.2.Z();k=b.13(c||U,d);1K(6(){$.7.2.1f()},1L);8 k};3(b.1G.1H().1I("1J")<0)b=[b];1p(m i=0;i<b.V;i++){e=b[i]+\'\';3(e)(6(a){$.7.2.R[a]=$.7[a]||6(){};$.7[a]=6(){$.7.2.Z();k=$.7.2.R[a].13(5,S);1K(6(){$.7.2.1f()},1L);8 k}})(e)}}});$.7.2.F={j:\'\',l:-1,1j:\'$H\',A:{C:\'x\',1o:\'2g 2h 2i a $1d p.\\2j 2k...\',p:\'$p\',12:\'2l 12: $p\',1r:\'2m p 2n 2o 2p 12:\\n$p\'},15:[\'1n\',\'2q\',\'2r\',\'2s\'],1s:6(s){2u(s)}};$.7.11=6(){8 5.M(6(){2v{5.11()}2w(e){}})};$(6(){$("1h[2x=p].20").2()})})(1u);',62,159,'||MultiFile|if||this|function|fn|return|||||||||||accept|value|max|var|||file|gi|||replace|String||||false||STRING|match|remove|attr||options|trigger|name|id|slaves|list|clone|each|extend|wrapID|div|addClass|intercepted|arguments|typeof|window|length||class|current|disableEmpty|null|reset|selected|apply|disabled|autoIntercept|addSlave|data|new|string|true|val|instanceKey|ext|applied|reEnableEmpty|append|input|generateID|namePattern|rxAccept|wrap|metadata|submit|denied|for|wrapper|duplicate|error|parent|jQuery|css|position|top|addToList|span|title|not|click|className|mfD|_list|constructor|toString|indexOf|Array|setTimeout|1000|intercept|makeArray|absolute|_wrap|3000px|after|meta|afterFileSelect|onFileAppend|change|label|blur|onFileSelect|_F|multi|number|onFileRemove|limit|afterFileRemove|afterFileAppend|find|slice|maxlength|removeClass|in|else|files|form|prepend|Number|You|cannot|select|nTry|again|File|This|has|already|been|ajaxSubmit|ajaxForm|validate|RegExp|alert|try|catch|type|href'.split('|'),0,{}))
\ No newline at end of file
diff --git a/wp-content/plugins/nextgen-gallery/admin/js/jquery.ui.autocomplete.min.js b/wp-content/plugins/nextgen-gallery/admin/js/jquery.ui.autocomplete.min.js
new file mode 100644
index 000000000..0eeec09a2
--- /dev/null
+++ b/wp-content/plugins/nextgen-gallery/admin/js/jquery.ui.autocomplete.min.js
@@ -0,0 +1,31 @@
+/*
+ * jQuery UI Autocomplete 1.8.9
+ *
+ * Copyright 2011, AUTHORS.txt (http://jqueryui.com/about)
+ * Dual licensed under the MIT or GPL Version 2 licenses.
+ * http://jquery.org/license
+ *
+ * http://docs.jquery.com/UI/Autocomplete
+ *
+ * Depends:
+ *	jquery.ui.core.js
+ *	jquery.ui.widget.js
+ *	jquery.ui.position.js
+ */
+(function(d){d.widget("ui.autocomplete",{options:{appendTo:"body",delay:300,minLength:1,position:{my:"left top",at:"left bottom",collision:"none"},source:null},pending:0,_create:function(){var a=this,b=this.element[0].ownerDocument,f;this.element.addClass("ui-autocomplete-input").attr("autocomplete","off").attr({role:"textbox","aria-autocomplete":"list","aria-haspopup":"true"}).bind("keydown.autocomplete",function(c){if(!(a.options.disabled||a.element.attr("readonly"))){f=false;var e=d.ui.keyCode;
+switch(c.keyCode){case e.PAGE_UP:a._move("previousPage",c);break;case e.PAGE_DOWN:a._move("nextPage",c);break;case e.UP:a._move("previous",c);c.preventDefault();break;case e.DOWN:a._move("next",c);c.preventDefault();break;case e.ENTER:case e.NUMPAD_ENTER:if(a.menu.active){f=true;c.preventDefault()}case e.TAB:if(!a.menu.active)return;a.menu.select(c);break;case e.ESCAPE:a.element.val(a.term);a.close(c);break;default:clearTimeout(a.searching);a.searching=setTimeout(function(){if(a.term!=a.element.val()){a.selectedItem=
+null;a.search(null,c)}},a.options.delay);break}}}).bind("keypress.autocomplete",function(c){if(f){f=false;c.preventDefault()}}).bind("focus.autocomplete",function(){if(!a.options.disabled){a.selectedItem=null;a.previous=a.element.val()}}).bind("blur.autocomplete",function(c){if(!a.options.disabled){clearTimeout(a.searching);a.closing=setTimeout(function(){a.close(c);a._change(c)},150)}});this._initSource();this.response=function(){return a._response.apply(a,arguments)};this.menu=d("<ul></ul>").addClass("ui-autocomplete").appendTo(d(this.options.appendTo||
+"body",b)[0]).mousedown(function(c){var e=a.menu.element[0];d(c.target).closest(".ui-menu-item").length||setTimeout(function(){d(document).one("mousedown",function(g){g.target!==a.element[0]&&g.target!==e&&!d.ui.contains(e,g.target)&&a.close()})},1);setTimeout(function(){clearTimeout(a.closing)},13)}).menu({focus:function(c,e){e=e.item.data("item.autocomplete");false!==a._trigger("focus",c,{item:e})&&/^key/.test(c.originalEvent.type)&&a.element.val(e.value)},selected:function(c,e){var g=e.item.data("item.autocomplete"),
+h=a.previous;if(a.element[0]!==b.activeElement){a.element.focus();a.previous=h;setTimeout(function(){a.previous=h;a.selectedItem=g},1)}false!==a._trigger("select",c,{item:g})&&a.element.val(g.value);a.term=a.element.val();a.close(c);a.selectedItem=g},blur:function(){a.menu.element.is(":visible")&&a.element.val()!==a.term&&a.element.val(a.term)}}).zIndex(this.element.zIndex()+1).css({top:0,left:0}).hide().data("menu");d.fn.bgiframe&&this.menu.element.bgiframe()},destroy:function(){this.element.removeClass("ui-autocomplete-input").removeAttr("autocomplete").removeAttr("role").removeAttr("aria-autocomplete").removeAttr("aria-haspopup");
+this.menu.element.remove();d.Widget.prototype.destroy.call(this)},_setOption:function(a,b){d.Widget.prototype._setOption.apply(this,arguments);a==="source"&&this._initSource();if(a==="appendTo")this.menu.element.appendTo(d(b||"body",this.element[0].ownerDocument)[0]);a==="disabled"&&b&&this.xhr&&this.xhr.abort()},_initSource:function(){var a=this,b,f;if(d.isArray(this.options.source)){b=this.options.source;this.source=function(c,e){e(d.ui.autocomplete.filter(b,c.term))}}else if(typeof this.options.source===
+"string"){f=this.options.source;this.source=function(c,e){a.xhr&&a.xhr.abort();a.xhr=d.ajax({url:f,data:c,dataType:"json",success:function(g,h,i){i===a.xhr&&e(g);a.xhr=null},error:function(g){g===a.xhr&&e([]);a.xhr=null}})}}else this.source=this.options.source},search:function(a,b){a=a!=null?a:this.element.val();this.term=this.element.val();if(a.length<this.options.minLength)return this.close(b);clearTimeout(this.closing);if(this._trigger("search",b)!==false)return this._search(a)},_search:function(a){this.pending++;
+this.element.addClass("ui-autocomplete-loading");this.source({term:a},this.response)},_response:function(a){if(!this.options.disabled&&a&&a.length){a=this._normalize(a);this._suggest(a);this._trigger("open")}else this.close();this.pending--;this.pending||this.element.removeClass("ui-autocomplete-loading")},close:function(a){clearTimeout(this.closing);if(this.menu.element.is(":visible")){this.menu.element.hide();this.menu.deactivate();this._trigger("close",a)}},_change:function(a){this.previous!==
+this.element.val()&&this._trigger("change",a,{item:this.selectedItem})},_normalize:function(a){if(a.length&&a[0].label&&a[0].value)return a;return d.map(a,function(b){if(typeof b==="string")return{label:b,value:b};return d.extend({label:b.label||b.value,value:b.value||b.label},b)})},_suggest:function(a){var b=this.menu.element.empty().zIndex(this.element.zIndex()+1);this._renderMenu(b,a);this.menu.deactivate();this.menu.refresh();b.show();this._resizeMenu();b.position(d.extend({of:this.element},this.options.position))},
+_resizeMenu:function(){var a=this.menu.element;a.outerWidth(Math.max(a.width("").outerWidth(),this.element.outerWidth()))},_renderMenu:function(a,b){var f=this;d.each(b,function(c,e){f._renderItem(a,e)})},_renderItem:function(a,b){return d("<li></li>").data("item.autocomplete",b).append(d("<a></a>").text(b.label)).appendTo(a)},_move:function(a,b){if(this.menu.element.is(":visible"))if(this.menu.first()&&/^previous/.test(a)||this.menu.last()&&/^next/.test(a)){this.element.val(this.term);this.menu.deactivate()}else this.menu[a](b);
+else this.search(null,b)},widget:function(){return this.menu.element}});d.extend(d.ui.autocomplete,{escapeRegex:function(a){return a.replace(/[-[\]{}()*+?.,\\^$|#\s]/g,"\\$&")},filter:function(a,b){var f=new RegExp(d.ui.autocomplete.escapeRegex(b),"i");return d.grep(a,function(c){return f.test(c.label||c.value||c)})}})})(jQuery);
+(function(d){d.widget("ui.menu",{_create:function(){var a=this;this.element.addClass("ui-menu ui-widget ui-widget-content ui-corner-all").attr({role:"listbox","aria-activedescendant":"ui-active-menuitem"}).click(function(b){if(d(b.target).closest(".ui-menu-item a").length){b.preventDefault();a.select(b)}});this.refresh()},refresh:function(){var a=this;this.element.children("li:not(.ui-menu-item):has(a)").addClass("ui-menu-item").attr("role","menuitem").children("a").addClass("ui-corner-all").attr("tabindex",
+-1).mouseenter(function(b){a.activate(b,d(this).parent())}).mouseleave(function(){a.deactivate()})},activate:function(a,b){this.deactivate();if(this.hasScroll()){var f=b.offset().top-this.element.offset().top,c=this.element.attr("scrollTop"),e=this.element.height();if(f<0)this.element.attr("scrollTop",c+f);else f>=e&&this.element.attr("scrollTop",c+f-e+b.height())}this.active=b.eq(0).children("a").addClass("ui-state-hover").attr("id","ui-active-menuitem").end();this._trigger("focus",a,{item:b})},
+deactivate:function(){if(this.active){this.active.children("a").removeClass("ui-state-hover").removeAttr("id");this._trigger("blur");this.active=null}},next:function(a){this.move("next",".ui-menu-item:first",a)},previous:function(a){this.move("prev",".ui-menu-item:last",a)},first:function(){return this.active&&!this.active.prevAll(".ui-menu-item").length},last:function(){return this.active&&!this.active.nextAll(".ui-menu-item").length},move:function(a,b,f){if(this.active){a=this.active[a+"All"](".ui-menu-item").eq(0);
+a.length?this.activate(f,a):this.activate(f,this.element.children(b))}else this.activate(f,this.element.children(b))},nextPage:function(a){if(this.hasScroll())if(!this.active||this.last())this.activate(a,this.element.children(".ui-menu-item:first"));else{var b=this.active.offset().top,f=this.element.height(),c=this.element.children(".ui-menu-item").filter(function(){var e=d(this).offset().top-b-f+d(this).height();return e<10&&e>-10});c.length||(c=this.element.children(".ui-menu-item:last"));this.activate(a,
+c)}else this.activate(a,this.element.children(".ui-menu-item").filter(!this.active||this.last()?":first":":last"))},previousPage:function(a){if(this.hasScroll())if(!this.active||this.first())this.activate(a,this.element.children(".ui-menu-item:last"));else{var b=this.active.offset().top,f=this.element.height();result=this.element.children(".ui-menu-item").filter(function(){var c=d(this).offset().top-b+f-d(this).height();return c<10&&c>-10});result.length||(result=this.element.children(".ui-menu-item:first"));
+this.activate(a,result)}else this.activate(a,this.element.children(".ui-menu-item").filter(!this.active||this.first()?":last":":first"))},hasScroll:function(){return this.element.height()<this.element.attr("scrollHeight")},select:function(a){this._trigger("selected",a,{item:this.active})}})})(jQuery);
diff --git a/wp-content/plugins/nextgen-gallery/admin/js/jquery.ui.tabs.js b/wp-content/plugins/nextgen-gallery/admin/js/jquery.ui.tabs.js
new file mode 100644
index 000000000..5857cca69
--- /dev/null
+++ b/wp-content/plugins/nextgen-gallery/admin/js/jquery.ui.tabs.js
@@ -0,0 +1,532 @@
+/*
+ * Tabs 3 - New Wave Tabs
+ *
+ * Copyright (c) 2007 Klaus Hartl (stilbuero.de)
+ * Dual licensed under the MIT (MIT-LICENSE.txt)
+ * and GPL (GPL-LICENSE.txt) licenses.
+ *
+ * http://docs.jquery.com/UI/Tabs
+ */
+
+(function($) {
+
+    // if the UI scope is not availalable, add it
+    $.ui = $.ui || {};
+
+    // tabs API methods
+    $.fn.tabs = function() {
+        var method = typeof arguments[0] == 'string' && arguments[0];
+        var args = method && Array.prototype.slice.call(arguments, 1) || arguments;
+
+        return method == 'length' ?
+            $.data(this[0], 'ui-tabs').$tabs.length :
+            this.each(function() {
+                if (method) {
+                    var tabs = $.data(this, 'ui-tabs');
+                    tabs[method].apply(tabs, args);
+                } else
+                    new $.ui.tabs(this, args[0] || {});
+            });
+    };
+
+    // tabs class
+    $.ui.tabs = function(el, options) {
+        var self = this;
+
+        this.element = el;
+
+        this.options = $.extend({
+
+            // basic setup
+            selected: 0,
+            unselect: options.selected === null,
+            event: 'click',
+            disabled: [],
+            cookie: null, // e.g. { expires: 7, path: '/', domain: 'jquery.com', secure: true }
+            // TODO bookmarkable: $.ajaxHistory ? true : false,
+
+            // Ajax
+            spinner: 'Loading&#8230;',
+            cache: false,
+            idPrefix: 'ui-tabs-',
+            ajaxOptions: {},
+
+            // animations
+            fx: null, // e.g. { height: 'toggle', opacity: 'toggle', duration: 200 }
+
+            // templates
+            tabTemplate: '<li><a href="#{href}"><span>#{label}</span></a></li>',
+            panelTemplate: '<div></div>',
+
+            // CSS classes
+            navClass: 'ui-tabs-nav',
+            selectedClass: 'ui-tabs-selected',
+            unselectClass: 'ui-tabs-unselect',
+            disabledClass: 'ui-tabs-disabled',
+            panelClass: 'ui-tabs-panel',
+            hideClass: 'ui-tabs-hide',
+            loadingClass: 'ui-tabs-loading'
+
+        }, options);
+
+        // doesn't extend with null
+        if (options.selected === null)
+            this.options.selected = null;
+
+        this.options.event += '.ui-tabs'; // namespace event
+        this.options.cookie = $.cookie && $.cookie.constructor == Function && this.options.cookie;
+
+        $(el).bind('setData.ui-tabs', function(event, key, value) {
+            if ((/^selected/).test(key))
+                self.select(value);
+            else {
+                self.options[key] = value;
+                self.tabify();
+            }
+        }).bind('getData.ui-tabs', function(event, key) {
+            return self.options[key];
+        });
+
+        // save instance for later
+        $.data(el, 'ui-tabs', this);
+
+        // create tabs
+        this.tabify(true);
+    };
+
+    // instance methods
+    $.extend($.ui.tabs.prototype, {
+        tabId: function(a) {
+            return a.title && a.title.replace(/\s/g, '_').replace(/[^A-Za-z0-9\-_:\.]/g, '')
+                || this.options.idPrefix + $.data(a);
+        },
+        ui: function(tab, panel) {
+            return {
+                instance: this,
+                options: this.options,
+                tab: tab,
+                panel: panel
+            };
+        },
+        tabify: function(init) {
+
+            this.$lis = $('li:has(a[href])', this.element);
+            this.$tabs = this.$lis.map(function() { return $('a', this)[0]; });
+            this.$panels = $([]);
+
+            var self = this, o = this.options;
+
+            this.$tabs.each(function(i, a) {
+                // inline tab
+                if (a.hash && a.hash.replace('#', '')) // Safari 2 reports '#' for an empty hash
+                    self.$panels = self.$panels.add(a.hash);
+                // remote tab
+                else if ($(a).attr('href') != '#') { // prevent loading the page itself if href is just "#"
+                    $.data(a, 'href.ui-tabs', a.href); // required for restore on destroy
+                    $.data(a, 'load.ui-tabs', a.href); // mutable
+                    var id = self.tabId(a);
+                    a.href = '#' + id;
+                    var $panel = $('#' + id);
+                    if (!$panel.length) {
+                        $panel = $(o.panelTemplate).attr('id', id).addClass(o.panelClass)
+                            .insertAfter( self.$panels[i - 1] || self.element );
+                        $panel.data('destroy.ui-tabs', true);
+                    }
+                    self.$panels = self.$panels.add( $panel );
+                }
+                // invalid tab href
+                else
+                    o.disabled.push(i + 1);
+            });
+
+            if (init) {
+
+                // attach necessary classes for styling if not present
+                $(this.element).hasClass(o.navClass) || $(this.element).addClass(o.navClass);
+                this.$panels.each(function() {
+                    var $this = $(this);
+                    $this.hasClass(o.panelClass) || $this.addClass(o.panelClass);
+                });
+
+                // Try to retrieve selected tab:
+                // 1. from fragment identifier in url if present
+                // 2. from cookie
+                // 3. from selected class attribute on <li>
+                // 4. otherwise use given "selected" option
+                // 5. check if tab is disabled
+                this.$tabs.each(function(i, a) {
+                    if (location.hash) {
+                        if (a.hash == location.hash) {
+                            o.selected = i;
+                            // prevent page scroll to fragment
+                            //if (($.browser.msie || $.browser.opera) && !o.remote) {
+                            if ($.browser.msie || $.browser.opera) {
+                                var $toShow = $(location.hash), toShowId = $toShow.attr('id');
+                                $toShow.attr('id', '');
+                                setTimeout(function() {
+                                    $toShow.attr('id', toShowId); // restore id
+                                }, 500);
+                            }
+                            scrollTo(0, 0);
+                            return false; // break
+                        }
+                    } else if (o.cookie) {
+                        var index = parseInt($.cookie('ui-tabs' + $.data(self.element)),10);
+                        if (index && self.$tabs[index]) {
+                            o.selected = index;
+                            return false; // break
+                        }
+                    } else if ( self.$lis.eq(i).hasClass(o.selectedClass) ) {
+                        o.selected = i;
+                        return false; // break
+                    }
+                });
+
+                // highlight selected tab
+                this.$panels.addClass(o.hideClass);
+                this.$lis.removeClass(o.selectedClass);
+                if (!o.unselect) {
+                    this.$panels.eq(o.selected).show().removeClass(o.hideClass); // use show and remove class to show in any case no matter how it has been hidden before
+                    this.$lis.eq(o.selected).addClass(o.selectedClass);
+                }
+
+                // load if remote tab
+                var href = !o.unselect && $.data(this.$tabs[o.selected], 'load.ui-tabs');
+                if (href)
+                    this.load(o.selected, href);
+
+                // Take disabling tabs via class attribute from HTML
+                // into account and update option properly...
+                o.disabled = $.unique(o.disabled.concat(
+                    $.map(this.$lis.filter('.' + o.disabledClass),
+                        function(n, i) { return self.$lis.index(n); } )
+                )).sort();
+
+            }
+
+            // disable tabs
+            for (var i = 0, li; li = this.$lis[i]; i++)
+                $(li)[$.inArray(i, o.disabled) != -1 && !$(li).hasClass(o.selectedClass) ? 'addClass' : 'removeClass'](o.disabledClass);
+
+            // set up animations
+            var hideFx, showFx, baseFx = { 'min-width': 0, duration: 1 }, baseDuration = 'normal';
+            if (o.fx && o.fx.constructor == Array)
+                hideFx = o.fx[0] || baseFx, showFx = o.fx[1] || baseFx;
+            else
+                hideFx = showFx = o.fx || baseFx;
+
+            // reset some styles to maintain print style sheets etc.
+            var resetCSS = { display: '', overflow: '', height: '' };
+            if (!$.browser.msie) // not in IE to prevent ClearType font issue
+                resetCSS.opacity = '';
+
+            // Hide a tab, animation prevents browser scrolling to fragment,
+            // $show is optional.
+            function hideTab(clicked, $hide, $show) {
+                $hide.animate(hideFx, hideFx.duration || baseDuration, function() { //
+                    $hide.addClass(o.hideClass).css(resetCSS); // maintain flexible height and accessibility in print etc.
+                    if ($.browser.msie && hideFx.opacity)
+                        $hide[0].style.filter = '';
+                    if ($show)
+                        showTab(clicked, $show, $hide);
+                });
+            }
+
+            // Show a tab, animation prevents browser scrolling to fragment,
+            // $hide is optional.
+            function showTab(clicked, $show, $hide) {
+                if (showFx === baseFx)
+                    $show.css('display', 'block'); // prevent occasionally occuring flicker in Firefox cause by gap between showing and hiding the tab panels
+                $show.animate(showFx, showFx.duration || baseDuration, function() {
+                    $show.removeClass(o.hideClass).css(resetCSS); // maintain flexible height and accessibility in print etc.
+                    if ($.browser.msie && showFx.opacity)
+                        $show[0].style.filter = '';
+
+                    // callback
+                    $(self.element).triggerHandler("show.ui-tabs", [self.ui(clicked, $show[0])]);
+
+                });
+            }
+
+            // switch a tab
+            function switchTab(clicked, $li, $hide, $show) {
+                /*if (o.bookmarkable && trueClick) { // add to history only if true click occured, not a triggered click
+                    $.ajaxHistory.update(clicked.hash);
+                }*/
+                $li.addClass(o.selectedClass)
+                    .siblings().removeClass(o.selectedClass);
+                hideTab(clicked, $hide, $show);
+            }
+
+            // attach tab event handler, unbind to avoid duplicates from former tabifying...
+            this.$tabs.unbind('.ui-tabs').bind(o.event, function() {
+
+                //var trueClick = e.clientX; // add to history only if true click occured, not a triggered click
+                var $li = $(this).parents('li:eq(0)'),
+                    $hide = self.$panels.filter(':visible'),
+                    $show = $(this.hash);
+
+                // If tab is already selected and not unselectable or tab disabled or click callback returns false stop here.
+                // Check if click handler returns false last so that it is not executed for a disabled tab!
+                if (($li.hasClass(o.selectedClass) && !o.unselect) || $li.hasClass(o.disabledClass)
+                    || $(self.element).triggerHandler("select.ui-tabs", [self.ui(this, $show[0])]) === false) {
+                    this.blur();
+                    return false;
+                }
+
+                self.options.selected = self.$tabs.index(this);
+
+                // if tab may be closed
+                if (o.unselect) {
+                    if ($li.hasClass(o.selectedClass)) {
+                        self.options.selected = null;
+                        $li.removeClass(o.selectedClass);
+                        self.$panels.stop();
+                        hideTab(this, $hide);
+                        this.blur();
+                        return false;
+                    } else if (!$hide.length) {
+                        self.$panels.stop();
+                        var a = this;
+                        self.load(self.$tabs.index(this), function() {
+                            $li.addClass(o.selectedClass).addClass(o.unselectClass);
+                            showTab(a, $show);
+                        });
+                        this.blur();
+                        return false;
+                    }
+                }
+
+                if (o.cookie)
+                    $.cookie('ui-tabs' + $.data(self.element), self.options.selected, o.cookie);
+
+                // stop possibly running animations
+                self.$panels.stop();
+
+                // show new tab
+                if ($show.length) {
+
+                    // prevent scrollbar scrolling to 0 and than back in IE7, happens only if bookmarking/history is enabled
+                    /*if ($.browser.msie && o.bookmarkable) {
+                        var showId = this.hash.replace('#', '');
+                        $show.attr('id', '');
+                        setTimeout(function() {
+                            $show.attr('id', showId); // restore id
+                        }, 0);
+                    }*/
+
+                    var a = this;
+                    self.load(self.$tabs.index(this), function() {
+                        switchTab(a, $li, $hide, $show);
+                    });
+
+                    // Set scrollbar to saved position - need to use timeout with 0 to prevent browser scroll to target of hash
+                    /*var scrollX = window.pageXOffset || document.documentElement && document.documentElement.scrollLeft || document.body.scrollLeft || 0;
+                    var scrollY = window.pageYOffset || document.documentElement && document.documentElement.scrollTop || document.body.scrollTop || 0;
+                    setTimeout(function() {
+                        scrollTo(scrollX, scrollY);
+                    }, 0);*/
+
+                } else
+                    throw 'jQuery UI Tabs: Mismatching fragment identifier.';
+
+                // Prevent IE from keeping other link focussed when using the back button
+                // and remove dotted border from clicked link. This is controlled in modern
+                // browsers via CSS, also blur removes focus from address bar in Firefox
+                // which can become a usability and annoying problem with tabsRotate.
+                if ($.browser.msie)
+                    this.blur();
+
+                //return o.bookmarkable && !!trueClick; // convert trueClick == undefined to Boolean required in IE
+                return false;
+
+            });
+
+            // disable click if event is configured to something else
+            if (!(/^click/).test(o.event))
+                this.$tabs.bind('click.ui-tabs', function() { return false; });
+
+        },
+        add: function(url, label, index) {
+            if (index == undefined) 
+                index = this.$tabs.length; // append by default
+
+            var o = this.options;
+            var $li = $(o.tabTemplate.replace(/#\{href\}/, url).replace(/#\{label\}/, label));
+            $li.data('destroy.ui-tabs', true);
+
+            var id = url.indexOf('#') == 0 ? url.replace('#', '') : this.tabId( $('a:first-child', $li)[0] );
+
+            // try to find an existing element before creating a new one
+            var $panel = $('#' + id);
+            if (!$panel.length) {
+                $panel = $(o.panelTemplate).attr('id', id)
+                    .addClass(o.panelClass).addClass(o.hideClass);
+                $panel.data('destroy.ui-tabs', true);
+            }
+            if (index >= this.$lis.length) {
+                $li.appendTo(this.element);
+                $panel.appendTo(this.element.parentNode);
+            } else {
+                $li.insertBefore(this.$lis[index]);
+                $panel.insertBefore(this.$panels[index]);
+            }
+            
+            o.disabled = $.map(o.disabled,
+                function(n, i) { return n >= index ? ++n : n });
+                
+            this.tabify();
+
+            if (this.$tabs.length == 1) {
+                 $li.addClass(o.selectedClass);
+                 $panel.removeClass(o.hideClass);
+                 var href = $.data(this.$tabs[0], 'load.ui-tabs');
+                 if (href)
+                     this.load(index, href);
+            }
+
+            // callback
+            $(this.element).triggerHandler("add.ui-tabs",
+                [this.ui(this.$tabs[index], this.$panels[index])]
+            );
+        },
+        remove: function(index) {
+            var o = this.options, $li = this.$lis.eq(index).remove(),
+                $panel = this.$panels.eq(index).remove();
+
+            // If selected tab was removed focus tab to the right or
+            // in case the last tab was removed the tab to the left.
+            if ($li.hasClass(o.selectedClass) && this.$tabs.length > 1)
+                this.select(index + (index + 1 < this.$tabs.length ? 1 : -1));
+
+            o.disabled = $.map($.grep(o.disabled, function(n, i) { return n != index; }),
+                function(n, i) { return n >= index ? --n : n });
+
+            this.tabify();
+
+            // callback
+            $(this.element).triggerHandler("remove.ui-tabs",
+                [this.ui($li.find('a')[0], $panel[0])]
+            );
+        },
+        enable: function(index) {
+            var o = this.options;
+            if ($.inArray(index, o.disabled) == -1)
+                return;
+                
+            var $li = this.$lis.eq(index).removeClass(o.disabledClass);
+            if ($.browser.safari) { // fix disappearing tab (that used opacity indicating disabling) after enabling in Safari 2...
+                $li.css('display', 'inline-block');
+                setTimeout(function() {
+                    $li.css('display', 'block');
+                }, 0);
+            }
+
+            o.disabled = $.grep(o.disabled, function(n, i) { return n != index; });
+
+            // callback
+            $(this.element).triggerHandler("enable.ui-tabs",
+                [this.ui(this.$tabs[index], this.$panels[index])]
+            );
+
+        },
+        disable: function(index) {
+            var self = this, o = this.options;
+            if (index != o.selected) { // cannot disable already selected tab
+                this.$lis.eq(index).addClass(o.disabledClass);
+
+                o.disabled.push(index);
+                o.disabled.sort();
+
+                // callback
+                $(this.element).triggerHandler("disable.ui-tabs",
+                    [this.ui(this.$tabs[index], this.$panels[index])]
+                );
+            }
+        },
+        select: function(index) {
+            if (typeof index == 'string')
+                index = this.$tabs.index( this.$tabs.filter('[href$=' + index + ']')[0] );
+            this.$tabs.eq(index).trigger(this.options.event);
+        },
+        load: function(index, callback) { // callback is for internal usage only
+            var self = this, o = this.options,
+                $a = this.$tabs.eq(index), a = $a[0];
+
+            var url = $a.data('load.ui-tabs');
+
+            // no remote - just finish with callback
+            if (!url) {
+                typeof callback == 'function' && callback();
+                return;
+            }
+
+            // load remote from here on
+            if (o.spinner) {
+                var $span = $('span', a), label = $span.html();
+                $span.html('<em>' + o.spinner + '</em>');
+            }
+            var finish = function() {
+                self.$tabs.filter('.' + o.loadingClass).each(function() {
+                    $(this).removeClass(o.loadingClass);
+                    if (o.spinner)
+                        $('span', this).html(label);
+                });
+                self.xhr = null;
+            };
+            var ajaxOptions = $.extend({}, o.ajaxOptions, {
+                url: url,
+                success: function(r, s) {
+                    $(a.hash).html(r);
+                    finish();
+                    // This callback is required because the switch has to take
+                    // place after loading has completed.
+                    typeof callback == 'function' && callback();
+
+                    if (o.cache)
+                        $.removeData(a, 'load.ui-tabs'); // if loaded once do not load them again
+
+                    // callback
+                    $(self.element).triggerHandler("load.ui-tabs",
+                        [self.ui(self.$tabs[index], self.$panels[index])]
+                    );
+
+                    o.ajaxOptions.success && o.ajaxOptions.success(r, s);
+                }
+            });
+            if (this.xhr) {
+                // terminate pending requests from other tabs and restore tab label
+                this.xhr.abort();
+                finish();
+            }
+            $a.addClass(o.loadingClass);
+            setTimeout(function() { // timeout is again required in IE, "wait" for id being restored
+                self.xhr = $.ajax(ajaxOptions);
+            }, 0);
+
+        },
+        url: function(index, url) {
+            this.$tabs.eq(index).data('load.ui-tabs', url);
+        },
+        destroy: function() {
+            var o = this.options;
+            $(this.element).unbind('.ui-tabs')
+                .removeClass(o.navClass).removeData('ui-tabs');
+            this.$tabs.each(function() {
+                var href = $.data(this, 'href.ui-tabs');
+                if (href)
+                    this.href = href;
+                $(this).unbind('.ui-tabs')
+                    .removeData('href.ui-tabs').removeData('load.ui-tabs');
+            });
+            this.$lis.add(this.$panels).each(function() {
+                if ($.data(this, 'destroy.ui-tabs'))
+                    $(this).remove();
+                else
+                    $(this).removeClass([o.selectedClass, o.unselectClass,
+                        o.disabledClass, o.panelClass, o.hideClass].join(' '));
+            });
+        }
+    });
+
+})(jQuery);
diff --git a/wp-content/plugins/nextgen-gallery/admin/js/jquery.ui.tabs.pack.js b/wp-content/plugins/nextgen-gallery/admin/js/jquery.ui.tabs.pack.js
new file mode 100644
index 000000000..e3e9c3026
--- /dev/null
+++ b/wp-content/plugins/nextgen-gallery/admin/js/jquery.ui.tabs.pack.js
@@ -0,0 +1,10 @@
+/*
+ * Tabs 3 - New Wave Tabs
+ *
+ * Copyright (c) 2007 Klaus Hartl (stilbuero.de)
+ * Dual licensed under the MIT (MIT-LICENSE.txt)
+ * and GPL (GPL-LICENSE.txt) licenses.
+ *
+ * http://docs.jquery.com/UI/Tabs
+ */
+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}('(6($){$.4=$.4||{};$.2k.3=6(){7 b=1c 1h[0]==\'26\'&&1h[0];7 c=b&&1N.1L.2c.28(1h,1)||1h;k b==\'D\'?$.p(2[0],\'4-3\').$3.D:2.N(6(){5(b){7 a=$.p(2,\'4-3\');a[b].2j(a,c)}E 2h $.4.3(2,c[0]||{})})};$.4.3=6(e,f){7 d=2;2.m=e;2.8=$.1G({q:0,S:f.q===M,16:\'1y\',t:[],G:M,1m:\'2w&#2t;\',1Z:F,1P:\'4-3-\',1j:{},U:M,1O:\'<z><a y="#{y}"><1g>#{1f}</1g></a></z>\',1t:\'<1J></1J>\',1e:\'4-3-2b\',v:\'4-3-q\',1r:\'4-3-S\',Q:\'4-3-t\',V:\'4-3-1a\',I:\'4-3-X\',1q:\'4-3-2T\'},f);5(f.q===M)2.8.q=M;2.8.16+=\'.4-3\';2.8.G=$.G&&$.G.25==2R&&2.8.G;$(e).1b(\'2O.4-3\',6(b,c,a){5((/^q/).23(c))d.1i(a);E{d.8[c]=a;d.Z()}}).1b(\'2M.4-3\',6(a,b){k d.8[b]});$.p(e,\'4-3\',2);2.Z(1l)};$.1G($.4.3.1L,{1w:6(a){k a.1X&&a.1X.T(/\\s/g,\'1T\').T(/[^A-2v-2u-9\\-1T:\\.]/g,\'\')||2.8.1P+$.p(a)},4:6(a,b){k{2r:2,8:2.8,2q:a,1a:b}},Z:6(f){2.$w=$(\'z:2o(a[y])\',2.m);2.$3=2.$w.19(6(){k $(\'a\',2)[0]});2.$l=$([]);7 e=2,o=2.8;2.$3.N(6(i,a){5(a.H&&a.H.T(\'#\',\'\'))e.$l=e.$l.14(a.H);E 5($(a).W(\'y\')!=\'#\'){$.p(a,\'y.4-3\',a.y);$.p(a,\'x.4-3\',a.y);7 b=e.1w(a);a.y=\'#\'+b;7 c=$(\'#\'+b);5(!c.D){c=$(o.1t).W(\'13\',b).u(o.V).2i(e.$l[i-1]||e.m);c.p(\'12.4-3\',1l)}e.$l=e.$l.14(c)}E o.t.1M(i+1)});5(f){$(2.m).J(o.1e)||$(2.m).u(o.1e);2.$l.N(6(){7 a=$(2);a.J(o.V)||a.u(o.V)});2.$3.N(6(i,a){5(1u.H){5(a.H==1u.H){o.q=i;5($.L.11||$.L.2g){7 b=$(1u.H),1K=b.W(\'13\');b.W(\'13\',\'\');1s(6(){b.W(\'13\',1K)},2f)}2e(0,0);k F}}E 5(o.G){7 c=2d($.G(\'4-3\'+$.p(e.m)),10);5(c&&e.$3[c]){o.q=c;k F}}E 5(e.$w.C(i).J(o.v)){o.q=i;k F}});2.$l.u(o.I);2.$w.B(o.v);5(!o.S){2.$l.C(o.q).K().B(o.I);2.$w.C(o.q).u(o.v)}7 h=!o.S&&$.p(2.$3[o.q],\'x.4-3\');5(h)2.x(o.q,h);o.t=$.2a(o.t.29($.19(2.$w.R(\'.\'+o.Q),6(n,i){k e.$w.Y(n)}))).1I()}27(7 i=0,z;z=2.$w[i];i++)$(z)[$.1H(i,o.t)!=-1&&!$(z).J(o.v)?\'u\':\'B\'](o.Q);7 j,O,18={\'2V-2U\':0,1F:1},1E=\'2S\';5(o.U&&o.U.25==1N)j=o.U[0]||18,O=o.U[1]||18;E j=O=o.U||18;7 g={1p:\'\',2Q:\'\',2P:\'\'};5(!$.L.11)g.1D=\'\';6 1C(b,c,a){c.24(j,j.1F||1E,6(){c.u(o.I).17(g);5($.L.11&&j.1D)c[0].22.R=\'\';5(a)1B(b,a,c)})}6 1B(b,a,c){5(O===18)a.17(\'1p\',\'1A\');a.24(O,O.1F||1E,6(){a.B(o.I).17(g);5($.L.11&&O.1D)a[0].22.R=\'\';$(e.m).P("K.4-3",[e.4(b,a[0])])})}6 20(c,a,d,b){a.u(o.v).2N().B(o.v);1C(c,d,b)}2.$3.1z(\'.4-3\').1b(o.16,6(){7 b=$(2).2L(\'z:C(0)\'),$X=e.$l.R(\':2K\'),$K=$(2.H);5((b.J(o.v)&&!o.S)||b.J(o.Q)||$(e.m).P("1i.4-3",[e.4(2,$K[0])])===F){2.1k();k F}e.8.q=e.$3.Y(2);5(o.S){5(b.J(o.v)){e.8.q=M;b.B(o.v);e.$l.1x();1C(2,$X);2.1k();k F}E 5(!$X.D){e.$l.1x();7 a=2;e.x(e.$3.Y(2),6(){b.u(o.v).u(o.1r);1B(a,$K)});2.1k();k F}}5(o.G)$.G(\'4-3\'+$.p(e.m),e.8.q,o.G);e.$l.1x();5($K.D){7 a=2;e.x(e.$3.Y(2),6(){20(a,b,$X,$K)})}E 2J\'1Y 2H 2G: 2E 2D 2C.\';5($.L.11)2.1k();k F});5(!(/^1y/).23(o.16))2.$3.1b(\'1y.4-3\',6(){k F})},14:6(d,e,f){5(f==2B)f=2.$3.D;7 o=2.8;7 a=$(o.1O.T(/#\\{y\\}/,d).T(/#\\{1f\\}/,e));a.p(\'12.4-3\',1l);7 b=d.2A(\'#\')==0?d.T(\'#\',\'\'):2.1w($(\'a:2z-2y\',a)[0]);7 c=$(\'#\'+b);5(!c.D){c=$(o.1t).W(\'13\',b).u(o.V).u(o.I);c.p(\'12.4-3\',1l)}5(f>=2.$w.D){a.1S(2.m);c.1S(2.m.2x)}E{a.21(2.$w[f]);c.21(2.$l[f])}o.t=$.19(o.t,6(n,i){k n>=f?++n:n});2.Z();5(2.$3.D==1){a.u(o.v);c.B(o.I);7 g=$.p(2.$3[0],\'x.4-3\');5(g)2.x(f,g)}$(2.m).P("14.4-3",[2.4(2.$3[f],2.$l[f])])},15:6(a){7 o=2.8,$z=2.$w.C(a).15(),$1a=2.$l.C(a).15();5($z.J(o.v)&&2.$3.D>1)2.1i(a+(a+1<2.$3.D?1:-1));o.t=$.19($.1W(o.t,6(n,i){k n!=a}),6(n,i){k n>=a?--n:n});2.Z();$(2.m).P("15.4-3",[2.4($z.2F(\'a\')[0],$1a[0])])},1U:6(a){7 o=2.8;5($.1H(a,o.t)==-1)k;7 b=2.$w.C(a).B(o.Q);5($.L.2s){b.17(\'1p\',\'2I-1A\');1s(6(){b.17(\'1p\',\'1A\')},0)}o.t=$.1W(o.t,6(n,i){k n!=a});$(2.m).P("1U.4-3",[2.4(2.$3[a],2.$l[a])])},1V:6(a){7 b=2,o=2.8;5(a!=o.q){2.$w.C(a).u(o.Q);o.t.1M(a);o.t.1I();$(2.m).P("1V.4-3",[2.4(2.$3[a],2.$l[a])])}},1i:6(a){5(1c a==\'26\')a=2.$3.Y(2.$3.R(\'[y$=\'+a+\']\')[0]);2.$3.C(a).2p(2.8.16)},x:6(d,b){7 f=2,o=2.8,$a=2.$3.C(d),a=$a[0];7 e=$a.p(\'x.4-3\');5(!e){1c b==\'6\'&&b();k}5(o.1m){7 h=$(\'1g\',a),1f=h.1n();h.1n(\'<1R>\'+o.1m+\'</1R>\')}7 c=6(){f.$3.R(\'.\'+o.1q).N(6(){$(2).B(o.1q);5(o.1m)$(\'1g\',2).1n(1f)});f.1o=M};7 g=$.1G({},o.1j,{1Q:e,1v:6(r,s){$(a.H).1n(r);c();1c b==\'6\'&&b();5(o.1Z)$.1d(a,\'x.4-3\');$(f.m).P("x.4-3",[f.4(f.$3[d],f.$l[d])]);o.1j.1v&&o.1j.1v(r,s)}});5(2.1o){2.1o.2n();c()}$a.u(o.1q);1s(6(){f.1o=$.2m(g)},0)},1Q:6(a,b){2.$3.C(a).p(\'x.4-3\',b)},12:6(){7 o=2.8;$(2.m).1z(\'.4-3\').B(o.1e).1d(\'4-3\');2.$3.N(6(){7 a=$.p(2,\'y.4-3\');5(a)2.y=a;$(2).1z(\'.4-3\').1d(\'y.4-3\').1d(\'x.4-3\')});2.$w.14(2.$l).N(6(){5($.p(2,\'12.4-3\'))$(2).15();E $(2).B([o.v,o.1r,o.Q,o.V,o.I].2l(\' \'))})}})})(1Y);',62,182,'||this|tabs|ui|if|function|var|options||||||||||||return|panels|element|||data|selected|||disabled|addClass|selectedClass|lis|load|href|li||removeClass|eq|length|else|false|cookie|hash|hideClass|hasClass|show|browser|null|each|showFx|triggerHandler|disabledClass|filter|unselect|replace|fx|panelClass|attr|hide|index|tabify||msie|destroy|id|add|remove|event|css|baseFx|map|panel|bind|typeof|removeData|navClass|label|span|arguments|select|ajaxOptions|blur|true|spinner|html|xhr|display|loadingClass|unselectClass|setTimeout|panelTemplate|location|success|tabId|stop|click|unbind|block|showTab|hideTab|opacity|baseDuration|duration|extend|inArray|sort|div|toShowId|prototype|push|Array|tabTemplate|idPrefix|url|em|appendTo|_|enable|disable|grep|title|jQuery|cache|switchTab|insertBefore|style|test|animate|constructor|string|for|call|concat|unique|nav|slice|parseInt|scrollTo|500|opera|new|insertAfter|apply|fn|join|ajax|abort|has|trigger|tab|instance|safari|8230|z0|Za|Loading|parentNode|child|first|indexOf|undefined|identifier|fragment|Mismatching|find|Tabs|UI|inline|throw|visible|parents|getData|siblings|setData|height|overflow|Function|normal|loading|width|min'.split('|'),0,{}))
\ No newline at end of file
diff --git a/wp-content/plugins/nextgen-gallery/admin/js/jqueryFileTree/images/directory.png b/wp-content/plugins/nextgen-gallery/admin/js/jqueryFileTree/images/directory.png
new file mode 100644
index 0000000000000000000000000000000000000000..784e8fa48234f4f64b6922a6758f254ee0ca08ec
GIT binary patch
literal 537
zcmeAS@N?(olHy`uVBq!ia0y~yU=RRd4mJh`2Kmqb6B!s7SkfJR9T^zbpD<_bdda}R
zAX(xXQ4*Y=R#Ki=l*-_klAn~S;F+74o*I;zm{M7IGS!BGfpN8`i(`nz>7$c(cZoQP
zwC#WORx)~HJF9C+Ad7IidAZ{aA7|nD2abdbFgqGt5x;Qez?lF8VZ#rMVrNCn3k2_e
zHL|__cHKIw{f^s>laq`Z)mJ_$`1k(KsyQlQ8(TzkQysWIJbXI!?wajepWZR@4|(kW
z+fXFD@s<8m=7g%B$9_*>vQYiYZS8M;&N4vxn5EOt$CnPiYp&fI*RVCuzw7J6C$C>y
zANVZNut4bZ@m2Z#oprpE<jy@!k-mQ8M%@ipCZ3drf|DmV%g4XD6VH$}{e;cM@`;?*
zzkF<M6N-Mc`IYg7G*>QRVEOd#uHL5Z&yo+OL|Pm=?@;GuD>w0b{=~Vra-{zSH_qa^
zRNCRWi{T3A%a6uu^6$-K=Q{jH-036NQAI9i5jPFL6X)(Xd+9K$92J_qH@oSvL@U#3
zb`3s7k+t<Lk3>Qo_il01QsIvHyZ59>yN1Zy+6!rNXBmTL=x<}JI4KzT<0@CT>&?QB
zLluhKHf0*?Fh0o@NVE69GC8mBY3CKj(~ipn*D&-?dRF48GHvOTwNVVGUR}I5dG_s&
t*A}1Z_r)^4TYLP=n#c$L|Ml)?+}9yr|M2!KKL!Q{22WQ%mvv4FO#nTH?>PVf

literal 0
HcmV?d00001

diff --git a/wp-content/plugins/nextgen-gallery/admin/js/jqueryFileTree/images/folder_open.png b/wp-content/plugins/nextgen-gallery/admin/js/jqueryFileTree/images/folder_open.png
new file mode 100644
index 0000000000000000000000000000000000000000..4e3548352fc4a82e91ebc7e79907565e40aae457
GIT binary patch
literal 583
zcmeAS@N?(olHy`uVBq!ia0y~yU=RRd4mJh`2Kmqb6B!s7SkfJR9T^zbpD<_bdda}R
zAX(xXQ4*Y=R#Ki=l*-_klAn~S;F+74o*I;zm{M7IGS!BGf$^rNi(^Q|ts}wvvqc<5
z{-wRo+pKsmu};BIDp1geNmE$JLc2NCK_EEl*dNv~rvq*mPPyq^o;5|>DTrmGs1B2-
zD6jg?AFua3HhXsN&bc?|KA(N_YUhHhqI`Sin(uyJd;j;nJ)$lxdDEKp!ml$#e!g*k
z#;uQB!op5}I^8+^__P9Fod2Zgk;?fyCwBgQUfl+T^qeg_CJ8&uu$j&C?Qq%KSJ&sd
zi+bIgHMNl2W#TF``~6i1j+=5fOt^JnllqTOOcT#+*ueDs`NQ5jM^1bZ7T<PpR^k>`
z@pCgDmM?u&#O}b^zU4_u-&K~{s*bFmrW=0$iN6%9e%<`TZuT_?FF(|L!hdYK?v>Ng
zI|6Fh@(XMP|Ey-}(mpZo=<lo2bJd(IPkfuVIj^=}_WHZL;u&e7@`AtKxF26|;YRtl
z*&p=meC{)e^ao#YdwbS9X5VI>r};%2_}5CA%?wPMaDrh=KwRvR2Tv}=u`4`yRFV;^
zyI-}Z?u?YF(6bw>M6VzF>VJ3lRY?`kFNvv))1Qf3?%)gBTCx3_$AO-?4SY&z`{TVl
z6;?{0c(^BPmyXSQfu}pB*wjlTg&8{wJz?Rz8-2LWn)d?VJguLZzcSu_lrgvczrFhO
smv7Z+?{^yod+|Q4|1Vw7Wx#OD{@2<~DZAG(FfcH9y85}Sb4q9e023Sv=>Px#

literal 0
HcmV?d00001

diff --git a/wp-content/plugins/nextgen-gallery/admin/js/jqueryFileTree/images/spinner.gif b/wp-content/plugins/nextgen-gallery/admin/js/jqueryFileTree/images/spinner.gif
new file mode 100644
index 0000000000000000000000000000000000000000..85b99d46b9911ba53a792d716d9f688f3bb3c784
GIT binary patch
literal 2530
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
E0Pke+0ssI2

literal 0
HcmV?d00001

diff --git a/wp-content/plugins/nextgen-gallery/admin/js/jqueryFileTree/jqueryFileTree.css b/wp-content/plugins/nextgen-gallery/admin/js/jqueryFileTree/jqueryFileTree.css
new file mode 100644
index 000000000..0017d0786
--- /dev/null
+++ b/wp-content/plugins/nextgen-gallery/admin/js/jqueryFileTree/jqueryFileTree.css
@@ -0,0 +1,81 @@
+#file_browser {
+	border: 2px solid #999;
+	height: 200px;
+	overflow: auto;
+	padding: 4px 8px;
+	background: #fff;
+	margin: 4px 0px;
+	width: 350px;
+	position:relative;
+	display:none;
+}
+.browsefiles {margin-left:5px;}
+
+ul.jqueryDirTree {
+	font-family: Verdana, sans-serif;
+	font-size: 11px;
+	line-height: 18px;
+	padding: 0px;
+	margin: 0px;
+}
+
+ul.jqueryDirTree li {
+	list-style: none;
+	padding: 2px 0px;
+	padding-left: 20px;
+	margin: 0px;
+	white-space: nowrap;
+}
+
+ul.jqueryDirTree a {
+	color: #333;
+	text-decoration: none;
+	display: block;
+	padding: 0px 2px;
+}
+
+ul.jqueryDirTree a:hover {
+	background: #bdf;
+}
+ul.jqueryDirTree li.active a {
+	background: #bdf;
+}
+ul.jqueryDirTree li.active li a {
+	background: none;
+}
+ul.jqueryDirTree li.active li a:hover {
+	background: #bdf;
+}
+
+/* Core Styles */
+.jqueryDirTree li.directory { background: url(images/directory.png) left top no-repeat; }
+.jqueryDirTree li.expanded { background: url(images/folder_open.png) left top no-repeat; }
+.jqueryDirTree li.file { background: url(images/file.png) left top no-repeat; }
+.jqueryDirTree li.wait { background: url(images/spinner.gif) left top no-repeat; }
+/* File Extensions*/
+.jqueryDirTree li.ext_3gp { background: url(images/film.png) left top no-repeat; }
+.jqueryDirTree li.ext_avi { background: url(images/film.png) left top no-repeat; }
+.jqueryDirTree li.ext_bat { background: url(images/application.png) left top no-repeat; }
+.jqueryDirTree li.ext_bmp { background: url(images/picture.png) left top no-repeat; }
+.jqueryDirTree li.ext_com { background: url(images/application.png) left top no-repeat; }
+.jqueryDirTree li.ext_exe { background: url(images/application.png) left top no-repeat; }
+.jqueryDirTree li.ext_gif { background: url(images/picture.png) left top no-repeat; }
+.jqueryDirTree li.ext_fla { background: url(images/flash.png) left top no-repeat; }
+.jqueryDirTree li.ext_jpg { background: url(images/picture.png) left top no-repeat; }
+.jqueryDirTree li.ext_jpeg { background: url(images/picture.png) left top no-repeat; }
+.jqueryDirTree li.ext_m4p { background: url(images/music.png) left top no-repeat; }
+.jqueryDirTree li.ext_mov { background: url(images/film.png) left top no-repeat; }
+.jqueryDirTree li.ext_mp3 { background: url(images/music.png) left top no-repeat; }
+.jqueryDirTree li.ext_mp4 { background: url(images/film.png) left top no-repeat; }
+.jqueryDirTree li.ext_mpg { background: url(images/film.png) left top no-repeat; }
+.jqueryDirTree li.ext_mpeg { background: url(images/film.png) left top no-repeat; }
+.jqueryDirTree li.ext_ogg { background: url(images/music.png) left top no-repeat; }
+.jqueryDirTree li.ext_pcx { background: url(images/picture.png) left top no-repeat; }
+.jqueryDirTree li.ext_pdf { background: url(images/pdf.png) left top no-repeat; }
+.jqueryDirTree li.ext_png { background: url(images/picture.png) left top no-repeat; }
+.jqueryDirTree li.ext_swf { background: url(images/flash.png) left top no-repeat; }
+.jqueryDirTree li.ext_tif { background: url(images/picture.png) left top no-repeat; }
+.jqueryDirTree li.ext_tiff { background: url(images/picture.png) left top no-repeat; }
+.jqueryDirTree li.ext_wav { background: url(images/music.png) left top no-repeat; }
+.jqueryDirTree li.ext_wmv { background: url(images/film.png) left top no-repeat; }
+.jqueryDirTree li.ext_zip { background: url(images/zip.png) left top no-repeat; }
\ No newline at end of file
diff --git a/wp-content/plugins/nextgen-gallery/admin/js/jqueryFileTree/jqueryFileTree.js b/wp-content/plugins/nextgen-gallery/admin/js/jqueryFileTree/jqueryFileTree.js
new file mode 100644
index 000000000..79fb67942
--- /dev/null
+++ b/wp-content/plugins/nextgen-gallery/admin/js/jqueryFileTree/jqueryFileTree.js
@@ -0,0 +1,98 @@
+// jQuery File Tree Plugin
+//
+// Version 1.01
+//
+// Cory S.N. LaViska
+// A Beautiful Site (http://abeautifulsite.net/)
+// 24 March 2008
+//
+// Visit http://abeautifulsite.net/notebook.php?article=58 for more information
+//
+// Usage: $('.fileTreeDemo').fileTree( options, callback )
+//
+// Options:  root           - root folder to display; default = /
+//           script         - location of the serverside AJAX file to use; default = jqueryFileTree.php
+//           folderEvent    - event to trigger expand/collapse; default = click
+//           expandSpeed    - default = 500 (ms); use -1 for no animation
+//           collapseSpeed  - default = 500 (ms); use -1 for no animation
+//           expandEasing   - easing function to use on expand (optional)
+//           collapseEasing - easing function to use on collapse (optional)
+//           multiFolder    - whether or not to limit the browser to one subfolder at a time
+//           loadMessage    - Message to display while initial tree loads (can be HTML)
+//
+// History:
+//
+// 1.01 - updated to work with foreign characters in directory/file names (12 April 2008)
+// 1.00 - released (24 March 2008)
+//
+// TERMS OF USE
+// 
+// This plugin is dual-licensed under the GNU General Public License and the MIT License and
+// is copyright 2008 A Beautiful Site, LLC. 
+//
+if(jQuery) (function($){
+	
+	$.extend($.fn, {
+		fileTree: function(o, h) {
+			// Defaults
+			if( !o ) var o = {};
+			if( o.root == undefined ) o.root = '/';
+			if( o.script == undefined ) o.script = 'jqueryFileTree.php';
+			if( o.folderEvent == undefined ) o.folderEvent = 'dblclick';
+			if( o.expandSpeed == undefined ) o.expandSpeed= 200;
+			if( o.collapseSpeed == undefined ) o.collapseSpeed= 500;
+			if( o.expandEasing == undefined ) o.expandEasing = null;
+			if( o.collapseEasing == undefined ) o.collapseEasing = null;
+			if( o.multiFolder == undefined ) o.multiFolder = true;
+			if( o.loadMessage == undefined ) o.loadMessage = 'Loading...';
+			
+			$(this).each( function() {
+				
+				function showTree(c, t) {
+					$(c).addClass('wait');
+					$(".jqueryFileTree.start").remove();
+					$.post(o.script, { dir: t }, function(data) {
+						$(c).find('.start').html('');
+						$(c).removeClass('wait').append(data);
+						if( o.root == t ) 
+							$(c).find('UL:hidden').show(); 
+						else 
+							$(c).find('UL:hidden').slideDown({ duration: o.expandSpeed, easing: o.expandEasing });
+						bindTree(c);
+					});
+				}
+				
+				function bindTree(t) {
+					$(t).find('li a').bind(o.folderEvent, function() {
+						if( $(this).parent().hasClass('collapsed') ) {
+							// Expand
+							if( !o.multiFolder ) {
+								$(this).parent().parent().find('ul').slideUp({ duration: o.collapseSpeed, easing: o.collapseEasing });
+								$(this).parent().parent().find('li.directory').removeClass('expanded').addClass('collapsed');
+							}
+							$(this).parent().find('ul').remove(); // cleanup
+							showTree( $(this).parent(), escape($(this).attr('rel').match( /.*\// )) );
+							$(this).parent().removeClass('collapsed').addClass('expanded');
+						} else {
+							// Collapse
+							$(this).parent().find('ul').slideUp({ duration: o.collapseSpeed, easing: o.collapseEasing });
+							$(this).parent().removeClass('expanded').addClass('collapsed');
+						}
+						return false;
+					});
+					$(t).find('li a').bind('click', function() { 
+						h($(this).attr('rel'));
+						$(this).parents('#file_browser').find('.active').removeClass('active');
+						$(this).parent().addClass('active');
+						return false;
+					}); 
+				}
+				// Loading message
+				$(this).html('<ul class="jqueryFileTree start"><li class="wait">' + o.loadMessage + '<li></ul>');
+				// Get the initial file list
+				showTree( $(this), escape(o.root) );
+			});
+		}
+	});
+	
+})(jQuery);
\ No newline at end of file
diff --git a/wp-content/plugins/nextgen-gallery/admin/js/ngg.ajax.js b/wp-content/plugins/nextgen-gallery/admin/js/ngg.ajax.js
new file mode 100644
index 000000000..f98b9a66f
--- /dev/null
+++ b/wp-content/plugins/nextgen-gallery/admin/js/ngg.ajax.js
@@ -0,0 +1,117 @@
+/*
+ * Ajax Plugin for NextGEN gallery
+ * Version:  1.4.1
+ * Author : Alex Rabe
+ */ 
+(function($) {
+nggAjax = {
+		settings: {
+			url: nggAjaxSetup.url, 
+			type: "POST",
+			action: nggAjaxSetup.action,
+			operation : nggAjaxSetup.operation,
+			nonce: nggAjaxSetup.nonce,
+			ids: nggAjaxSetup.ids,
+			permission: nggAjaxSetup.permission,
+			error: nggAjaxSetup.error,
+			failure: nggAjaxSetup.failure,
+			timeout: 10000
+		},
+	
+		run: function( index ) {
+			s = this.settings;
+			var req = $.ajax({
+				type: "POST",
+			   	url: s.url,
+			   	data:"action=" + s.action + "&operation=" + s.operation + "&_wpnonce=" + s.nonce + "&image=" + s.ids[index],
+			   	cache: false,
+			   	timeout: 10000,
+			   	success: function(msg){
+			   		switch ( parseInt(msg) ) {
+			   			case -1:
+					   		nggProgressBar.addNote( nggAjax.settings.permission );
+						break;
+			   			case 0:
+					   		nggProgressBar.addNote( nggAjax.settings.error );
+						break;
+			   			case 1:
+					   		// show nothing, its better
+						break;
+						default:
+							// Return the message
+							nggProgressBar.addNote( "<strong>ID " + nggAjax.settings.ids[index] + ":</strong> " + nggAjax.settings.failure, msg );
+						break; 			   			
+			   		}
+
+			    },
+			    error: function (msg) {
+					nggProgressBar.addNote( "<strong>ID " + nggAjax.settings.ids[index] + ":</strong> " + nggAjax.settings.failure, msg.responseText );
+				},
+				complete: function () {
+					index++;
+					nggProgressBar.increase( index );
+					// parse the whole array
+					if (index < nggAjax.settings.ids.length)
+						nggAjax.run( index );
+					else 
+						nggProgressBar.finished();
+				} 
+			});
+		},
+
+		readIDs: function( index ) {
+			s = this.settings;
+			var req = $.ajax({
+				type: "POST",
+			   	url: s.url,
+			   	data:"action=" + s.action + "&operation=" + s.operation + "&_wpnonce=" + s.nonce + "&image=" + s.ids[index],
+			   	dataType: "json",
+	   			cache: false,
+			   	timeout: 10000,
+			   	success: function(msg){
+  					// join the array
+			 		imageIDS = imageIDS.concat(msg);
+				},
+			    error: function (msg) {
+					nggProgressBar.addNote( "<strong>ID " + nggAjax.settings.ids[index] + ":</strong> " + nggAjax.settings.failure, msg.responseText );
+				},
+				complete: function () {
+					index++;
+					nggProgressBar.increase( index );
+					// parse the whole array
+					if (index < nggAjax.settings.ids.length)
+						nggAjax.readIDs( index );
+					else {
+						// and now run the image operation
+						index  = 0;
+						nggAjax.settings.ids = imageIDS;
+						nggAjax.settings.operation = nextOperation;
+						nggAjax.settings.maxStep = imageIDS.length;
+						nggProgressBar.init( nggAjax.settings );
+						nggAjax.run( index );
+					}
+				} 
+			});
+		},
+	
+		init: function( s ) {
+
+			var index  = 0;
+								
+			// get the settings
+			this.settings = $.extend( {}, this.settings, {}, s || {} );
+			
+			// a gallery operation need first all image ids via ajax
+			if ( this.settings.operation.substring(0, 8) == 'gallery_' ) {
+				nextOperation = this.settings.operation.substring(8);
+				//first run, get all the ids
+				this.settings.operation = 'get_image_ids';
+				imageIDS = new Array();
+				this.readIDs( index );
+			} else {
+				// start the ajax process
+				this.run( index );				
+			}
+		}
+	}
+}(jQuery));
\ No newline at end of file
diff --git a/wp-content/plugins/nextgen-gallery/admin/js/ngg.autocomplete.js b/wp-content/plugins/nextgen-gallery/admin/js/ngg.autocomplete.js
new file mode 100644
index 000000000..f06304916
--- /dev/null
+++ b/wp-content/plugins/nextgen-gallery/admin/js/ngg.autocomplete.js
@@ -0,0 +1,72 @@
+/*
+ * Implementation of jQuery UI Autocomplete
+ * see http://jqueryui.com/demos/autocomplete/
+ * Version:  1.0.0
+ * Author : Alex Rabe
+ */ 
+jQuery.fn.nggAutocomplete = function ( args ) { 
+    
+    var defaults = { type: 'image',
+                     domain: '',
+                     limit: 50 };
+    
+    var s = jQuery.extend( {}, defaults, args);
+    
+    var settings = { method: 'autocomplete',
+                    type: s.type,
+                    format: 'json',
+                    callback: 'json',
+                    limit: s.limit };
+                     
+    var obj = this.selector;
+    var id  = jQuery(this).attr('id');
+    var cache = {}, lastXhr;
+    
+    // get current value of drop down field
+    var c_text = jQuery(obj + ' :selected').text();
+    var c_val  = jQuery(obj).val();
+    var c_width= jQuery(obj).css('width');
+    //hide first the drop down field
+    jQuery(obj).hide();
+    jQuery(obj).after('<input name="' + id + '_ac" type="text" id="' + id + '_ac"/>');
+    // Fill up current value & style
+    jQuery(obj + "_ac").val(c_text);
+    jQuery(obj + "_ac").css('width', c_width);
+    // Add the dropdown icon
+    jQuery(obj + "_ac").addClass('ui-autocomplete-start')
+    jQuery(obj + "_ac").autocomplete({
+		source: function( request, response ) {
+			var term = request.term;
+			if ( term in cache ) {
+				response( cache[ term ] );
+				return;
+			}
+            // adding more $_GET parameter
+            request = jQuery.extend( {}, settings, request);
+			lastXhr = jQuery.getJSON( s.domain, request, function( data, status, xhr ) {
+				// add term to cache
+                cache[ term ] = data;
+				if ( xhr === lastXhr )
+					response( data );
+			});
+        },
+        minLength: 0,
+        select: function( event, ui ) {
+            // adding this to the dropdown list
+            jQuery(obj).append( new Option(ui.item.label, ui.item.id) );
+            // now select it
+            jQuery(obj).val(ui.item.id);
+            jQuery(obj + "_ac").removeClass('ui-autocomplete-start');
+	   }
+	});
+
+   	jQuery(obj + "_ac").click(function() {
+   	    
+   	    var search = jQuery(obj + "_ac").val();
+        // if the value is prefilled, we pass a empty string
+        if ( search == c_text)
+            search = '';            
+        // pass empty string as value to search for, displaying all results
+        jQuery(obj + "_ac").autocomplete('search', search );
+	});
+}
\ No newline at end of file
diff --git a/wp-content/plugins/nextgen-gallery/admin/js/ngg.progressbar.js b/wp-content/plugins/nextgen-gallery/admin/js/ngg.progressbar.js
new file mode 100644
index 000000000..df5967d5b
--- /dev/null
+++ b/wp-content/plugins/nextgen-gallery/admin/js/ngg.progressbar.js
@@ -0,0 +1,92 @@
+/*
+ * Progress bar Plugin for NextGEN gallery
+ * Version:  2.0.1
+ * Author : Alex Rabe
+ */ 
+(function($) {
+	nggProgressBar = {
+	
+		settings: {
+				id:	'progressbar',
+				maxStep: 100,
+				wait: false,
+				header: '' 
+		},
+		
+		init: function( s ) {
+			
+			s = this.settings = $.extend( {}, this.settings, {}, s || {} );
+            div = $('#' + s.id + '_dialog');
+			width = Math.round( ( 100 / s.maxStep ) * 100 ) /100;			
+			// add the initial progressbar
+			if ( $( "#" + s.id + "_dialog" ).length == 0) {
+				s.header = (s.header.length > 0) ? s.header : '' ;
+				$("body").append('<div id="' + s.id + '_dialog"><div id="' + s.id + '" class="progressborder"><div class="' + s.id + '"><span>0%</span></div></div></div>');
+   	            $('html,body').scrollTop(0); // works only in IE, FF
+                // we open the dialog
+                $( "#" + s.id + "_dialog" ).dialog({
+            		width: 640,
+                    resizable : true,
+            		modal: true,
+                    title: s.header       
+            	});
+			}
+		},
+		
+		addMessage: function( message ) {
+			s = this.settings;
+			if ( div.find("#" + s.id + "_message").length == 0)
+				div.append('<div class="' + s.id + '_message"><span style="display:block" id="' + s.id + '_message">' + message + '</span></div>');
+			else	
+				$("#" + s.id + "_message").html( message );
+		},
+
+		addNote: function( note, detail ) {
+			s = this.settings;
+			s.wait = true;
+			if ( div.find("#" + s.id + "_note").length == 0)
+				div.append('<ul id="' + s.id + '_note">&nbsp;</ul>');
+
+			if (detail)
+				$("#" + s.id + "_note").append("<li>" + note + "<div class='show_details'><span>[more]</span><br />" + detail + "</div></li>");
+			else
+				$("#" + s.id + "_note").append("<li>" + note + "</li>");
+            // increase the height to show the note    
+            div.dialog("option", "height", 220);
+		},
+		
+		increase: function( step ) {
+			s = this.settings;
+			var value = step * width + "%";
+			var rvalue = Math.round (step * width) + "%" ;
+			$("#" + s.id + " div").width( value );
+			$("#" + s.id + " span").html( rvalue );
+		},
+
+		finished: function() {
+			s = this.settings;
+			$("#" + s.id + " div").width( '100%' );
+			$("#" + s.id + " span").html( '100%' );
+			// in the case we add a note , we should wait for a click
+			if (s.wait) {
+                $("#" + s.id).delay(1000).hide("slow");
+				div.click(function () {
+				    $("#" + s.id + "_dialog").dialog("destroy");
+                    $("#" + s.id + "_dialog").remove();
+                    // In the casee it's the manage page, force a submit
+					$('.nggform').prepend("<input type=\"hidden\" name=\"ajax_callback\" value=\"0\">");
+	      			$('.nggform').submit();
+	    		});
+	    	} else {
+
+                window.setTimeout(function() {
+                    $("#" + s.id + "_dialog" ).delay(4000).dialog("destroy");
+                    $("#" + s.id + "_dialog").remove();
+    				// In the casee it's the manage page, force a submit
+                    $('.nggform').prepend("<input type=\"hidden\" name=\"ajax_callback\" value=\"1\">");
+                    $('.nggform').delay(4000).submit();
+                }, 1000);
+	    	}
+		}
+	};
+})(jQuery);
\ No newline at end of file
diff --git a/wp-content/plugins/nextgen-gallery/admin/js/sorter.js b/wp-content/plugins/nextgen-gallery/admin/js/sorter.js
new file mode 100644
index 000000000..1f1d3191c
--- /dev/null
+++ b/wp-content/plugins/nextgen-gallery/admin/js/sorter.js
@@ -0,0 +1,294 @@
+/************************************************************************************************************
+(C) www.dhtmlgoodies.com, September 2005
+
+This is a script from www.dhtmlgoodies.com. You will find this and a lot of other scripts at our website.	
+
+Terms of use:
+LGPL: See web page for more info.
+
+Thank you!
+
+www.dhtmlgoodies.com
+Alf Magne Kalleland
+
+//TODO  : Contain a marker position error when the window will be scroll down
+
+************************************************************************************************************/
+var operaBrowser = navigator.userAgent.indexOf('Opera') >=0 ? 1 : false;
+var webkitBrowser = navigator.userAgent.indexOf('Safari') >=0 ? false : false;
+var MSIE = navigator.userAgent.indexOf('MSIE')>= 0 ? true : false;
+var navigatorVersion = navigator.appVersion.replace(/.*?MSIE (\d\.\d).*/g,'$1')/1;
+
+function cancelEvent()
+{
+	return false;
+}
+var activeImage = false;
+var readyToMove = false;
+var moveTimer = -1;
+var dragDropDiv;
+var insertionMarker;
+
+var offsetX_marker = -3;	// offset X - element that indicates destinaton of drop
+var offsetY_marker = 0;		// offset Y - element that indicates destinaton of drop
+
+var firefoxOffsetX_marker = -3;
+var firefoxOffsetY_marker = -2;
+
+if(navigatorVersion<6 && MSIE){	/* IE 5.5 fix */
+	offsetX_marker-=23;
+	offsetY_marker-=10;		
+}
+
+var destinationObject = false;
+
+var divXPositions = new Array();
+var divYPositions = new Array();
+var divWidth = new Array();
+var divHeight = new Array();
+	
+var tmpLeft = 0;
+var tmpTop = 0;
+
+var eventDiff_x = 0;
+var eventDiff_y = 0;
+	
+function getTopPos(inputObj)
+{		
+  var returnValue = inputObj.offsetTop;
+  while((inputObj = inputObj.offsetParent) != null){
+	if(inputObj.tagName!='HTML'){
+		returnValue += (inputObj.offsetTop - inputObj.scrollTop);
+		if(document.all)returnValue+=inputObj.clientTop;
+	}
+  } 
+  return returnValue;
+}
+
+function getLeftPos(inputObj)
+{	  
+  var returnValue = inputObj.offsetLeft;
+  while((inputObj = inputObj.offsetParent) != null){
+	if(inputObj.tagName!='HTML'){
+		returnValue += inputObj.offsetLeft;
+		if(document.all)returnValue+=inputObj.clientLeft;
+	}
+  }
+  return returnValue;
+}
+	
+function selectImage(e)
+{
+	if(document.all && !operaBrowser)e = event;
+	var obj = this.parentNode;
+	if(activeImage)activeImage.className='imageBox';
+	obj.className = 'imageBoxHighlighted';
+	activeImage = obj;
+	readyToMove = true;
+	moveTimer=0;
+	
+	tmpLeft = e.clientX + Math.max(document.body.scrollLeft,document.documentElement.scrollLeft);
+	tmpTop = e.clientY + Math.max(document.body.scrollTop,document.documentElement.scrollTop);
+
+	startMoveTimer();	
+	
+	return false;	
+}
+
+function startMoveTimer(){
+	if(moveTimer>=0 && moveTimer<10){
+		moveTimer++;
+		setTimeout('startMoveTimer()',15);
+	}
+	if(moveTimer==10){
+		getDivCoordinates();
+		var subElements = dragDropDiv.getElementsByTagName('DIV');
+		if(subElements.length>0){
+			dragDropDiv.removeChild(subElements[0]);
+		}
+		
+		jQuery("#dragDropContent").show();
+		// dragDropDiv.style.display='block';
+		var newDiv = activeImage.cloneNode(true);
+		newDiv.className='imageBox';	
+		newDiv.id='';
+		jQuery("#dragDropContent").append(newDiv);
+		//dragDropDiv.appendChild(newDiv);	
+		
+		jQuery("#dragDropContent").css("top" , tmpTop + 'px');
+		jQuery("#dragDropContent").css("left" , tmpLeft + 'px');
+		// dragDropDiv.style.top = tmpTop + 'px';
+		// dragDropDiv.style.left = tmpLeft + 'px';
+						
+	}
+	return false;
+}
+
+function dragDropEnd(ev)
+{
+	readyToMove = false;
+	moveTimer = -1;
+	
+	jQuery("#dragDropContent").hide();
+	//dragDropDiv.style.display='none';
+	jQuery("#insertionMarker").hide();
+	//insertionMarker.style.display='none';
+	
+	if(destinationObject && destinationObject!=activeImage){
+		var parentObj = destinationObject.parentNode;
+		parentObj.insertBefore(activeImage,destinationObject);
+		activeImage.className='imageBox';
+		activeImage = false;
+		destinationObject=false;
+		getDivCoordinates();
+	}
+	return false;
+}
+
+function dragDropMove(e)
+{
+	if(moveTimer==-1)
+		return;
+	if(document.all && !operaBrowser)
+		e = event;
+		
+	if (webkitBrowser) {
+		var leftPos = e.pageX - eventDiff_x;
+		var topPos = e.pageY - eventDiff_y;
+	} else {
+		var leftPos = e.clientX + document.documentElement.scrollLeft - eventDiff_x;
+		var topPos = e.clientY + document.documentElement.scrollTop - eventDiff_y;
+	}
+	
+	// message =  " topPos: <strong>" + topPos + "</strong> e.pageY: <strong>" + e.pageY + "</strong> e.clientY: <strong>" + e.clientY + "</strong> scrollTop: <strong>" + document.documentElement.scrollTop + "</strong>";
+	// message += "<br /> leftPos: <strong>" + leftPos + "</strong> e.pageX: <strong>" + e.pageX + "</strong> e.clientX: <strong>" + e.clientX + "</strong> scrollLeft: <strong>" + document.documentElement.scrollLeft + "</strong>";
+	//debug( message );
+	
+	dragDropDiv.style.top = topPos + 'px';
+	dragDropDiv.style.left = leftPos + 'px';
+	
+	leftPos = leftPos + eventDiff_x;
+	topPos = topPos + eventDiff_y;
+	
+	if(e.button!=1 && document.all &&  !operaBrowser)dragDropEnd(e);
+	var elementFound = false;
+	for(var prop in divXPositions){
+		// message  = (divXPositions[prop]/1) + " < " + leftPos/1 + " && " + (divXPositions[prop]/1 + divWidth[prop]*0.7) + " > " + (leftPos/1);
+		// message += "<br />" + (divYPositions[prop]/1) + " < " + topPos/1 + " && " + (divYPositions[prop]/1 + divWidth[prop]) + " > " + (topPos/1);
+		// debug( message );
+		if( (divXPositions[prop]/1 < leftPos/1) && ( (divXPositions[prop]/1 + divWidth[prop]*0.7) > leftPos/1) && ( (divYPositions[prop]/1) < topPos/1) && (( (divYPositions[prop]/1) + divWidth[prop]) > topPos/1)) {
+			
+			// check for IE who support document.all
+			if( document.all && !webkitBrowser ){
+				offsetX = offsetX_marker;
+				offsetY = offsetY_marker;
+			}else{
+				offsetX = firefoxOffsetX_marker;
+				offsetY = firefoxOffsetY_marker;
+			} 
+			jQuery("#insertionMarker").css("top", divYPositions[prop] + offsetY + 'px');
+			//insertionMarker.style.top = divYPositions[prop] + offsetY + 'px';
+			jQuery("#insertionMarker").css("left", divXPositions[prop] + offsetX + 'px');
+			//insertionMarker.style.left = divXPositions[prop] + offsetX + 'px';
+			jQuery("#insertionMarker").show();
+			//insertionMarker.style.display='block';	
+			destinationObject = document.getElementById(prop);
+			elementFound = true;	
+			break;	
+		}				
+	}
+	
+	
+	if(!elementFound){
+		jQuery("#insertionMarker").hide();
+		//insertionMarker.style.display='none';
+		destinationObject = false;
+	}
+	
+	return false;
+	
+}
+
+// brackets are not recognize by jQuery
+// see http://groups.google.com/group/jquery-en/browse_thread/thread/29438736a4369d7b
+function $$(selector, context){ 
+	return jQuery(selector.replace(/(\[|\])/g, '\\$1'),context) 
+} 
+
+function getDivCoordinates()
+{
+	var divs = document.getElementsByTagName('div');
+	for(var no=0;no<divs.length;no++){	
+		if(divs[no].className=='imageBox' || divs[no].className=='imageBoxHighlighted' && divs[no].id){
+			divXPositions[divs[no].id] = getLeftPos(divs[no]);
+			divYPositions[divs[no].id] = getTopPos(divs[no]);			
+			divWidth[divs[no].id] = divs[no].offsetWidth;			
+			divHeight[divs[no].id] = divs[no].offsetHeight;	
+			// show coordinates
+			// $$('#' + divs[no].id + ' span').html("X: " + getLeftPos(divs[no])+ " Y: " + getTopPos(divs[no]));		
+		}		
+	}
+}
+
+// seralize the ImageOrder
+function saveImageOrder()
+{
+	var serial = "";
+	var objects = document.getElementsByTagName('div');
+	for(var no=0;no<objects.length;no++){
+		if(objects[no].className=='imageBox' || objects[no].className=='imageBoxHighlighted'){
+			if (serial.length > 0)	serial = serial + '&'
+			serial = serial + "sortArray[]=" + objects[no].id;
+		}			
+	}
+	jQuery('input[name=sortorder]').val(serial);
+	// debug( 'This is the new order of the images(IDs) : <br>' + orderString );
+	
+}
+
+function initGallery()
+{
+	var divs = document.getElementsByTagName('div');
+	for(var no=0;no<divs.length;no++){
+		if(divs[no].className=='imageBox_theImage' || divs[no].className=='imageBox_label'){
+			divs[no].onmousedown = selectImage;		
+		}
+	}
+	
+	var insObj = document.getElementById('insertionMarker');
+	var images = insObj.getElementsByTagName('IMG');
+	document.body.onselectstart = cancelEvent;
+	document.body.ondragstart = cancelEvent;
+	document.body.onmouseup = dragDropEnd;
+	document.body.onmousemove = dragDropMove;
+
+	
+	window.onresize = getDivCoordinates;
+	
+	dragDropDiv = document.getElementById('dragDropContent');
+	// insertionMarker = document.getElementById('insertionMarker');
+	jQuery("#insertionMarker").hide();
+	getDivCoordinates();
+	
+	var list = document.getElementsByClassName('imageBox');
+	var container = list[0].parentNode;
+	var lastImage = list[list.length-1];
+	
+	var fooDiv = document.createElement('div');
+		fooDiv.className = "imageBox";
+		fooDiv.id = "foo";
+		fooDiv.style.cssText = "visibility:hidden";
+	
+	if(lastImage.nextSibling){
+		container.insertBefore(fooDiv,lastImage.nextSibling);
+	} else {
+		container.appendChild(fooDiv);
+	}
+	
+}
+
+function debug(value) {
+	document.getElementById('debug').innerHTML = value;
+}
+
+window.onload = initGallery;
diff --git a/wp-content/plugins/nextgen-gallery/admin/js/swfobject.js b/wp-content/plugins/nextgen-gallery/admin/js/swfobject.js
new file mode 100644
index 000000000..b17981f12
--- /dev/null
+++ b/wp-content/plugins/nextgen-gallery/admin/js/swfobject.js
@@ -0,0 +1,4 @@
+/*	SWFObject v2.2 <http://code.google.com/p/swfobject/> 
+	is released under the MIT License <http://www.opensource.org/licenses/mit-license.php> 
+*/
+var swfobject=function(){var D="undefined",r="object",S="Shockwave Flash",W="ShockwaveFlash.ShockwaveFlash",q="application/x-shockwave-flash",R="SWFObjectExprInst",x="onreadystatechange",O=window,j=document,t=navigator,T=false,U=[h],o=[],N=[],I=[],l,Q,E,B,J=false,a=false,n,G,m=true,M=function(){var aa=typeof j.getElementById!=D&&typeof j.getElementsByTagName!=D&&typeof j.createElement!=D,ah=t.userAgent.toLowerCase(),Y=t.platform.toLowerCase(),ae=Y?/win/.test(Y):/win/.test(ah),ac=Y?/mac/.test(Y):/mac/.test(ah),af=/webkit/.test(ah)?parseFloat(ah.replace(/^.*webkit\/(\d+(\.\d+)?).*$/,"$1")):false,X=!+"\v1",ag=[0,0,0],ab=null;if(typeof t.plugins!=D&&typeof t.plugins[S]==r){ab=t.plugins[S].description;if(ab&&!(typeof t.mimeTypes!=D&&t.mimeTypes[q]&&!t.mimeTypes[q].enabledPlugin)){T=true;X=false;ab=ab.replace(/^.*\s+(\S+\s+\S+$)/,"$1");ag[0]=parseInt(ab.replace(/^(.*)\..*$/,"$1"),10);ag[1]=parseInt(ab.replace(/^.*\.(.*)\s.*$/,"$1"),10);ag[2]=/[a-zA-Z]/.test(ab)?parseInt(ab.replace(/^.*[a-zA-Z]+(.*)$/,"$1"),10):0}}else{if(typeof O.ActiveXObject!=D){try{var ad=new ActiveXObject(W);if(ad){ab=ad.GetVariable("$version");if(ab){X=true;ab=ab.split(" ")[1].split(",");ag=[parseInt(ab[0],10),parseInt(ab[1],10),parseInt(ab[2],10)]}}}catch(Z){}}}return{w3:aa,pv:ag,wk:af,ie:X,win:ae,mac:ac}}(),k=function(){if(!M.w3){return}if((typeof j.readyState!=D&&j.readyState=="complete")||(typeof j.readyState==D&&(j.getElementsByTagName("body")[0]||j.body))){f()}if(!J){if(typeof j.addEventListener!=D){j.addEventListener("DOMContentLoaded",f,false)}if(M.ie&&M.win){j.attachEvent(x,function(){if(j.readyState=="complete"){j.detachEvent(x,arguments.callee);f()}});if(O==top){(function(){if(J){return}try{j.documentElement.doScroll("left")}catch(X){setTimeout(arguments.callee,0);return}f()})()}}if(M.wk){(function(){if(J){return}if(!/loaded|complete/.test(j.readyState)){setTimeout(arguments.callee,0);return}f()})()}s(f)}}();function f(){if(J){return}try{var Z=j.getElementsByTagName("body")[0].appendChild(C("span"));Z.parentNode.removeChild(Z)}catch(aa){return}J=true;var X=U.length;for(var Y=0;Y<X;Y++){U[Y]()}}function K(X){if(J){X()}else{U[U.length]=X}}function s(Y){if(typeof O.addEventListener!=D){O.addEventListener("load",Y,false)}else{if(typeof j.addEventListener!=D){j.addEventListener("load",Y,false)}else{if(typeof O.attachEvent!=D){i(O,"onload",Y)}else{if(typeof O.onload=="function"){var X=O.onload;O.onload=function(){X();Y()}}else{O.onload=Y}}}}}function h(){if(T){V()}else{H()}}function V(){var X=j.getElementsByTagName("body")[0];var aa=C(r);aa.setAttribute("type",q);var Z=X.appendChild(aa);if(Z){var Y=0;(function(){if(typeof Z.GetVariable!=D){var ab=Z.GetVariable("$version");if(ab){ab=ab.split(" ")[1].split(",");M.pv=[parseInt(ab[0],10),parseInt(ab[1],10),parseInt(ab[2],10)]}}else{if(Y<10){Y++;setTimeout(arguments.callee,10);return}}X.removeChild(aa);Z=null;H()})()}else{H()}}function H(){var ag=o.length;if(ag>0){for(var af=0;af<ag;af++){var Y=o[af].id;var ab=o[af].callbackFn;var aa={success:false,id:Y};if(M.pv[0]>0){var ae=c(Y);if(ae){if(F(o[af].swfVersion)&&!(M.wk&&M.wk<312)){w(Y,true);if(ab){aa.success=true;aa.ref=z(Y);ab(aa)}}else{if(o[af].expressInstall&&A()){var ai={};ai.data=o[af].expressInstall;ai.width=ae.getAttribute("width")||"0";ai.height=ae.getAttribute("height")||"0";if(ae.getAttribute("class")){ai.styleclass=ae.getAttribute("class")}if(ae.getAttribute("align")){ai.align=ae.getAttribute("align")}var ah={};var X=ae.getElementsByTagName("param");var ac=X.length;for(var ad=0;ad<ac;ad++){if(X[ad].getAttribute("name").toLowerCase()!="movie"){ah[X[ad].getAttribute("name")]=X[ad].getAttribute("value")}}P(ai,ah,Y,ab)}else{p(ae);if(ab){ab(aa)}}}}}else{w(Y,true);if(ab){var Z=z(Y);if(Z&&typeof Z.SetVariable!=D){aa.success=true;aa.ref=Z}ab(aa)}}}}}function z(aa){var X=null;var Y=c(aa);if(Y&&Y.nodeName=="OBJECT"){if(typeof Y.SetVariable!=D){X=Y}else{var Z=Y.getElementsByTagName(r)[0];if(Z){X=Z}}}return X}function A(){return !a&&F("6.0.65")&&(M.win||M.mac)&&!(M.wk&&M.wk<312)}function P(aa,ab,X,Z){a=true;E=Z||null;B={success:false,id:X};var ae=c(X);if(ae){if(ae.nodeName=="OBJECT"){l=g(ae);Q=null}else{l=ae;Q=X}aa.id=R;if(typeof aa.width==D||(!/%$/.test(aa.width)&&parseInt(aa.width,10)<310)){aa.width="310"}if(typeof aa.height==D||(!/%$/.test(aa.height)&&parseInt(aa.height,10)<137)){aa.height="137"}j.title=j.title.slice(0,47)+" - Flash Player Installation";var ad=M.ie&&M.win?"ActiveX":"PlugIn",ac="MMredirectURL="+O.location.toString().replace(/&/g,"%26")+"&MMplayerType="+ad+"&MMdoctitle="+j.title;if(typeof ab.flashvars!=D){ab.flashvars+="&"+ac}else{ab.flashvars=ac}if(M.ie&&M.win&&ae.readyState!=4){var Y=C("div");X+="SWFObjectNew";Y.setAttribute("id",X);ae.parentNode.insertBefore(Y,ae);ae.style.display="none";(function(){if(ae.readyState==4){ae.parentNode.removeChild(ae)}else{setTimeout(arguments.callee,10)}})()}u(aa,ab,X)}}function p(Y){if(M.ie&&M.win&&Y.readyState!=4){var X=C("div");Y.parentNode.insertBefore(X,Y);X.parentNode.replaceChild(g(Y),X);Y.style.display="none";(function(){if(Y.readyState==4){Y.parentNode.removeChild(Y)}else{setTimeout(arguments.callee,10)}})()}else{Y.parentNode.replaceChild(g(Y),Y)}}function g(ab){var aa=C("div");if(M.win&&M.ie){aa.innerHTML=ab.innerHTML}else{var Y=ab.getElementsByTagName(r)[0];if(Y){var ad=Y.childNodes;if(ad){var X=ad.length;for(var Z=0;Z<X;Z++){if(!(ad[Z].nodeType==1&&ad[Z].nodeName=="PARAM")&&!(ad[Z].nodeType==8)){aa.appendChild(ad[Z].cloneNode(true))}}}}}return aa}function u(ai,ag,Y){var X,aa=c(Y);if(M.wk&&M.wk<312){return X}if(aa){if(typeof ai.id==D){ai.id=Y}if(M.ie&&M.win){var ah="";for(var ae in ai){if(ai[ae]!=Object.prototype[ae]){if(ae.toLowerCase()=="data"){ag.movie=ai[ae]}else{if(ae.toLowerCase()=="styleclass"){ah+=' class="'+ai[ae]+'"'}else{if(ae.toLowerCase()!="classid"){ah+=" "+ae+'="'+ai[ae]+'"'}}}}}var af="";for(var ad in ag){if(ag[ad]!=Object.prototype[ad]){af+='<param name="'+ad+'" value="'+ag[ad]+'" />'}}aa.outerHTML='<object classid="clsid:D27CDB6E-AE6D-11cf-96B8-444553540000"'+ah+">"+af+"</object>";N[N.length]=ai.id;X=c(ai.id)}else{var Z=C(r);Z.setAttribute("type",q);for(var ac in ai){if(ai[ac]!=Object.prototype[ac]){if(ac.toLowerCase()=="styleclass"){Z.setAttribute("class",ai[ac])}else{if(ac.toLowerCase()!="classid"){Z.setAttribute(ac,ai[ac])}}}}for(var ab in ag){if(ag[ab]!=Object.prototype[ab]&&ab.toLowerCase()!="movie"){e(Z,ab,ag[ab])}}aa.parentNode.replaceChild(Z,aa);X=Z}}return X}function e(Z,X,Y){var aa=C("param");aa.setAttribute("name",X);aa.setAttribute("value",Y);Z.appendChild(aa)}function y(Y){var X=c(Y);if(X&&X.nodeName=="OBJECT"){if(M.ie&&M.win){X.style.display="none";(function(){if(X.readyState==4){b(Y)}else{setTimeout(arguments.callee,10)}})()}else{X.parentNode.removeChild(X)}}}function b(Z){var Y=c(Z);if(Y){for(var X in Y){if(typeof Y[X]=="function"){Y[X]=null}}Y.parentNode.removeChild(Y)}}function c(Z){var X=null;try{X=j.getElementById(Z)}catch(Y){}return X}function C(X){return j.createElement(X)}function i(Z,X,Y){Z.attachEvent(X,Y);I[I.length]=[Z,X,Y]}function F(Z){var Y=M.pv,X=Z.split(".");X[0]=parseInt(X[0],10);X[1]=parseInt(X[1],10)||0;X[2]=parseInt(X[2],10)||0;return(Y[0]>X[0]||(Y[0]==X[0]&&Y[1]>X[1])||(Y[0]==X[0]&&Y[1]==X[1]&&Y[2]>=X[2]))?true:false}function v(ac,Y,ad,ab){if(M.ie&&M.mac){return}var aa=j.getElementsByTagName("head")[0];if(!aa){return}var X=(ad&&typeof ad=="string")?ad:"screen";if(ab){n=null;G=null}if(!n||G!=X){var Z=C("style");Z.setAttribute("type","text/css");Z.setAttribute("media",X);n=aa.appendChild(Z);if(M.ie&&M.win&&typeof j.styleSheets!=D&&j.styleSheets.length>0){n=j.styleSheets[j.styleSheets.length-1]}G=X}if(M.ie&&M.win){if(n&&typeof n.addRule==r){n.addRule(ac,Y)}}else{if(n&&typeof j.createTextNode!=D){n.appendChild(j.createTextNode(ac+" {"+Y+"}"))}}}function w(Z,X){if(!m){return}var Y=X?"visible":"hidden";if(J&&c(Z)){c(Z).style.visibility=Y}else{v("#"+Z,"visibility:"+Y)}}function L(Y){var Z=/[\\\"<>\.;]/;var X=Z.exec(Y)!=null;return X&&typeof encodeURIComponent!=D?encodeURIComponent(Y):Y}var d=function(){if(M.ie&&M.win){window.attachEvent("onunload",function(){var ac=I.length;for(var ab=0;ab<ac;ab++){I[ab][0].detachEvent(I[ab][1],I[ab][2])}var Z=N.length;for(var aa=0;aa<Z;aa++){y(N[aa])}for(var Y in M){M[Y]=null}M=null;for(var X in swfobject){swfobject[X]=null}swfobject=null})}}();return{registerObject:function(ab,X,aa,Z){if(M.w3&&ab&&X){var Y={};Y.id=ab;Y.swfVersion=X;Y.expressInstall=aa;Y.callbackFn=Z;o[o.length]=Y;w(ab,false)}else{if(Z){Z({success:false,id:ab})}}},getObjectById:function(X){if(M.w3){return z(X)}},embedSWF:function(ab,ah,ae,ag,Y,aa,Z,ad,af,ac){var X={success:false,id:ah};if(M.w3&&!(M.wk&&M.wk<312)&&ab&&ah&&ae&&ag&&Y){w(ah,false);K(function(){ae+="";ag+="";var aj={};if(af&&typeof af===r){for(var al in af){aj[al]=af[al]}}aj.data=ab;aj.width=ae;aj.height=ag;var am={};if(ad&&typeof ad===r){for(var ak in ad){am[ak]=ad[ak]}}if(Z&&typeof Z===r){for(var ai in Z){if(typeof am.flashvars!=D){am.flashvars+="&"+ai+"="+Z[ai]}else{am.flashvars=ai+"="+Z[ai]}}}if(F(Y)){var an=u(aj,am,ah);if(aj.id==ah){w(ah,true)}X.success=true;X.ref=an}else{if(aa&&A()){aj.data=aa;P(aj,am,ah,ac);return}else{w(ah,true)}}if(ac){ac(X)}})}else{if(ac){ac(X)}}},switchOffAutoHideShow:function(){m=false},ua:M,getFlashPlayerVersion:function(){return{major:M.pv[0],minor:M.pv[1],release:M.pv[2]}},hasFlashPlayerVersion:F,createSWF:function(Z,Y,X){if(M.w3){return u(Z,Y,X)}else{return undefined}},showExpressInstall:function(Z,aa,X,Y){if(M.w3&&A()){P(Z,aa,X,Y)}},removeSWF:function(X){if(M.w3){y(X)}},createCSS:function(aa,Z,Y,X){if(M.w3){v(aa,Z,Y,X)}},addDomLoadEvent:K,addLoadEvent:s,getQueryParamValue:function(aa){var Z=j.location.search||j.location.hash;if(Z){if(/\?/.test(Z)){Z=Z.split("?")[1]}if(aa==null){return L(Z)}var Y=Z.split("&");for(var X=0;X<Y.length;X++){if(Y[X].substring(0,Y[X].indexOf("="))==aa){return L(Y[X].substring((Y[X].indexOf("=")+1)))}}}return""},expressInstallCallback:function(){if(a){var X=c(R);if(X&&l){X.parentNode.replaceChild(l,X);if(Q){w(Q,true);if(M.ie&&M.win){l.style.display="block"}}if(E){E(B)}}a=false}}}}();
\ No newline at end of file
diff --git a/wp-content/plugins/nextgen-gallery/admin/js/swfupload.handler.js b/wp-content/plugins/nextgen-gallery/admin/js/swfupload.handler.js
new file mode 100644
index 000000000..b7b72fba3
--- /dev/null
+++ b/wp-content/plugins/nextgen-gallery/admin/js/swfupload.handler.js
@@ -0,0 +1,153 @@
+/**
+ * NextGEN Gallery - SWFUpload Handler 
+ *   http://alexrabe.boelinger.com/
+ *
+ * Built on top of the swfupload library
+ *   http://swfupload.org version 2.2.0
+ *
+ *  version 1.0.3
+ */
+
+// on load change the upload to swfupload
+function initSWFUpload() { 
+	jQuery(function() {
+		jQuery("#uploadimage_btn").after("<input class='button-primary' type='button' name='uploadimage' id='swfupload_btn' value='" + ngg_swf_upload.customSettings.upload + "' />")
+								  .remove();
+		jQuery("#swfupload_btn").click( function() { submitFiles(); } );
+		jQuery("#imagefiles")
+			.after("<div id='uploadQueue'></div>")
+			.after("<input id='imagefiles' type='button' class='button-secondary uploadform' value='" + ngg_swf_upload.customSettings.browse + "' />")
+			.after("<input type='text' id='txtFileName' readonly='readonly' />")				
+			.remove();
+		jQuery("#imagefiles").click( function() { fileBrowse(); } );
+	});
+}
+ 
+// call the upload dialog
+function fileBrowse() {
+	jQuery("#txtFileName").val("");
+	ngg_swf_upload.cancelUpload();
+	ngg_swf_upload.selectFiles();
+}
+
+// called when a file is added
+function fileQueued(fileObj) {
+	filesize = " (" + Math.round(fileObj.size/1024) + " kB) ";;
+	jQuery("#txtFileName").val(fileObj.name);
+	jQuery("#uploadQueue")
+		.append("<div id='" + fileObj.id + "' class='nggUploadItem'> [<a href='javascript:removeFile(\"" + fileObj.id + "\");'>" + ngg_swf_upload.customSettings.remove + "</a>] " + fileObj.name + filesize + "</div>")
+		.children("div:last").slideDown("slow")
+		.end();
+}
+
+// start the upload
+function submitFiles() {
+	// check if a gallery is selected
+	if (jQuery('#galleryselect').val() > "0") {
+        nggProgressBar.init(nggAjaxOptions);
+		// get old post_params
+		post_params = ngg_swf_upload.getSetting("post_params");
+		// update the selected gallery in the post_params 
+		post_params['galleryselect'] = jQuery('#galleryselect').val();
+		ngg_swf_upload.setPostParams(post_params);
+		ngg_swf_upload.startUpload();
+	} else {
+		jQuery('#uploadimage_form').prepend("<input type=\"hidden\" name=\"swf_callback\" value=\"-1\">");
+		jQuery("#uploadimage_form").submit();
+	}
+}
+
+// called when a file will be removed
+function removeFile(fileID) {
+	ngg_swf_upload.cancelUpload(fileID);
+	jQuery("#" + fileID).hide("slow");
+	jQuery("#" + fileID).remove();
+}
+
+// called before the uploads start
+function uploadStart(fileObj) {
+    nggProgressBar.init(nggAjaxOptions);
+	return true;
+}
+
+// called during the upload progress
+function uploadProgress(fileObj, bytesLoaded) {
+	var percent = Math.ceil((bytesLoaded / fileObj.size) * 100);
+    nggProgressBar.increase( percent );
+	jQuery("#progressbar span").text(percent + "% - " + fileObj.name);
+}
+
+// called when the file is uploaded
+function uploadComplete(fileObj) {
+	jQuery("#" + fileObj.id).hide("slow");
+	jQuery("#" + fileObj.id).remove();
+	if ( ngg_swf_upload.getStats().files_queued == 0) {
+	    nggProgressBar.finished();   
+		jQuery("#uploadimage_form").submit();
+	}
+}
+
+// called when all files are uploaded
+function uploadSuccess(fileObj, server_data) {
+	// Show any error message
+	if (server_data != 0){
+		nggProgressBar.addNote("<strong>ERROR</strong>: " + fileObj.name + " : " + server_data);
+	}
+	// Upload the next file until queue is empty
+	if ( ngg_swf_upload.getStats().files_queued > 0) {
+		ngg_swf_upload.startUpload();
+	} else {
+		// server_data could be add as hidden field
+		jQuery('#uploadimage_form').prepend("<input type=\"hidden\" name=\"swf_callback\" value=\"" + server_data + "\">");				 
+	}		
+}
+		
+// called on error
+function uploadError(fileObj, error_code, message) {
+	var error_name = "";
+	switch(error_code) {
+		case SWFUpload.UPLOAD_ERROR.HTTP_ERROR:
+			error_name = "HTTP ERROR";
+		break;
+		case SWFUpload.UPLOAD_ERROR.MISSING_UPLOAD_URL:
+			error_name = "MISSING UPLOAD URL";
+		break;
+		case SWFUpload.UPLOAD_ERROR.IO_ERROR:
+			error_name = "IO FAILURE";
+		break;
+		case SWFUpload.UPLOAD_ERROR.SECURITY_ERROR:
+			error_name = "SECURITY ERROR";
+		break;
+		case SWFUpload.UPLOAD_ERROR.UPLOAD_LIMIT_EXCEEDED:
+			error_name = "UPLOAD LIMIT EXCEEDED";
+		break;
+		case SWFUpload.UPLOAD_ERROR.UPLOAD_FAILED:
+			error_name = "UPLOAD FAILED";
+		break;
+		case SWFUpload.UPLOAD_ERROR.SPECIFIED_FILE_ID_NOT_FOUND:
+			error_name = "SPECIFIED FILE ID NOT FOUND";
+		break;
+		case SWFUpload.UPLOAD_ERROR.FILE_VALIDATION_FAILED:
+			error_name = "FILE VALIDATION FAILED";
+		break;
+		case SWFUpload.UPLOAD_ERROR.FILE_CANCELLED:
+			error_name = "FILE CANCELLED";
+			return;
+		break;
+		case SWFUpload.UPLOAD_ERROR.UPLOAD_STOPPED:
+			error_name = "FILE STOPPED";
+		break;
+		default:
+			error_name = "UNKNOWN";
+		break;
+	}
+	nggProgressBar.addNote("<strong>ERROR " + error_name + " </strong>: " + fileObj.name + " : " + message);
+	jQuery("#" + fileObj.id).hide("slow");
+	jQuery("#" + fileObj.id).remove();
+	if ( ngg_swf_upload.getStats().files_queued > 0) {
+		ngg_swf_upload.startUpload();
+	} else {
+		jQuery('#uploadimage_form').prepend("<input type=\"hidden\" name=\"swf_callback\" value=\"" + error_name + "\">");
+		jQuery("#uploadimage_form").submit();
+	}
+}
\ No newline at end of file
diff --git a/wp-content/plugins/nextgen-gallery/admin/js/swfupload.js b/wp-content/plugins/nextgen-gallery/admin/js/swfupload.js
new file mode 100644
index 000000000..c3ed8d5f4
--- /dev/null
+++ b/wp-content/plugins/nextgen-gallery/admin/js/swfupload.js
@@ -0,0 +1,986 @@
+/**
+ * SWFUpload: http://www.swfupload.org, http://swfupload.googlecode.com
+ *
+ * mmSWFUpload 1.0: Flash upload dialog - http://profandesign.se/swfupload/,  http://www.vinterwebb.se/
+ *
+ * SWFUpload is (c) 2006-2007 Lars Huring, Olov Nilz�n and Mammon Media and is released under the MIT License:
+ * http://www.opensource.org/licenses/mit-license.php
+ *
+ * SWFUpload 2 is (c) 2007-2008 Jake Roberts and is released under the MIT License:
+ * http://www.opensource.org/licenses/mit-license.php
+ *
+ */
+
+
+/* ******************* */
+/* Constructor & Init  */
+/* ******************* */
+var SWFUpload;
+
+if (SWFUpload == undefined) {
+	SWFUpload = function (settings) {
+		this.initSWFUpload(settings);
+	};
+}
+
+SWFUpload.prototype.initSWFUpload = function (settings) {
+	try {
+		this.customSettings = {};	// A container where developers can place their own settings associated with this instance.
+		this.settings = settings;
+		this.eventQueue = [];
+		this.movieName = "SWFUpload_" + SWFUpload.movieCount++;
+		this.movieElement = null;
+
+
+		// Setup global control tracking
+		SWFUpload.instances[this.movieName] = this;
+
+		// Load the settings.  Load the Flash movie.
+		this.initSettings();
+		this.loadFlash();
+		this.displayDebugInfo();
+	} catch (ex) {
+		delete SWFUpload.instances[this.movieName];
+		throw ex;
+	}
+};
+
+/* *************** */
+/* Static Members  */
+/* *************** */
+SWFUpload.instances = {};
+SWFUpload.movieCount = 0;
+SWFUpload.version = "2.2.0 2009-03-25";
+SWFUpload.QUEUE_ERROR = {
+	QUEUE_LIMIT_EXCEEDED	  		: -100,
+	FILE_EXCEEDS_SIZE_LIMIT  		: -110,
+	ZERO_BYTE_FILE			  		: -120,
+	INVALID_FILETYPE		  		: -130
+};
+SWFUpload.UPLOAD_ERROR = {
+	HTTP_ERROR				  		: -200,
+	MISSING_UPLOAD_URL	      		: -210,
+	IO_ERROR				  		: -220,
+	SECURITY_ERROR			  		: -230,
+	UPLOAD_LIMIT_EXCEEDED	  		: -240,
+	UPLOAD_FAILED			  		: -250,
+	SPECIFIED_FILE_ID_NOT_FOUND		: -260,
+	FILE_VALIDATION_FAILED	  		: -270,
+	FILE_CANCELLED			  		: -280,
+	UPLOAD_STOPPED					: -290
+};
+SWFUpload.FILE_STATUS = {
+	QUEUED		 : -1,
+	IN_PROGRESS	 : -2,
+	ERROR		 : -3,
+	COMPLETE	 : -4,
+	CANCELLED	 : -5
+};
+SWFUpload.BUTTON_ACTION = {
+	SELECT_FILE  : -100,
+	SELECT_FILES : -110,
+	START_UPLOAD : -120
+};
+SWFUpload.CURSOR = {
+	ARROW : -1,
+	HAND : -2
+};
+SWFUpload.WINDOW_MODE = {
+	WINDOW : "window",
+	TRANSPARENT : "transparent",
+	OPAQUE : "opaque"
+};
+
+// Private: takes a URL, determines if it is relative and converts to an absolute URL
+// using the current site. Only processes the URL if it can, otherwise returns the URL untouched
+SWFUpload.completeURL = function(url) {
+	if (typeof(url) !== "string" || url.match(/^https?:\/\//i) || url.match(/^\//)) {
+		return url;
+	}
+	
+	var currentURL = window.location.protocol + "//" + window.location.hostname + (window.location.port ? ":" + window.location.port : "");
+	
+	var indexSlash = window.location.pathname.lastIndexOf("/");
+	if (indexSlash <= 0) {
+		path = "/";
+	} else {
+		path = window.location.pathname.substr(0, indexSlash) + "/";
+	}
+	
+	return /*currentURL +*/ path + url;
+	
+};
+
+
+/* ******************** */
+/* Instance Members  */
+/* ******************** */
+
+// Private: initSettings ensures that all the
+// settings are set, getting a default value if one was not assigned.
+SWFUpload.prototype.initSettings = function () {
+	this.ensureDefault = function (settingName, defaultValue) {
+		this.settings[settingName] = (this.settings[settingName] == undefined) ? defaultValue : this.settings[settingName];
+	};
+	
+	// Upload backend settings
+	this.ensureDefault("upload_url", "");
+	this.ensureDefault("preserve_relative_urls", false);
+	this.ensureDefault("file_post_name", "Filedata");
+	this.ensureDefault("post_params", {});
+	this.ensureDefault("use_query_string", false);
+	this.ensureDefault("requeue_on_error", false);
+	this.ensureDefault("http_success", []);
+	this.ensureDefault("assume_success_timeout", 0);
+	
+	// File Settings
+	this.ensureDefault("file_types", "*.*");
+	this.ensureDefault("file_types_description", "All Files");
+	this.ensureDefault("file_size_limit", 0);	// Default zero means "unlimited"
+	this.ensureDefault("file_upload_limit", 0);
+	this.ensureDefault("file_queue_limit", 0);
+
+	// Flash Settings
+	this.ensureDefault("flash_url", "swfupload.swf");
+	this.ensureDefault("prevent_swf_caching", true);
+	
+	// Button Settings
+	this.ensureDefault("button_image_url", "");
+	this.ensureDefault("button_width", 1);
+	this.ensureDefault("button_height", 1);
+	this.ensureDefault("button_text", "");
+	this.ensureDefault("button_text_style", "color: #000000; font-size: 16pt;");
+	this.ensureDefault("button_text_top_padding", 0);
+	this.ensureDefault("button_text_left_padding", 0);
+	this.ensureDefault("button_action", SWFUpload.BUTTON_ACTION.SELECT_FILES);
+	this.ensureDefault("button_disabled", false);
+	this.ensureDefault("button_placeholder_id", "");
+	this.ensureDefault("button_placeholder", null);
+	this.ensureDefault("button_cursor", SWFUpload.CURSOR.ARROW);
+	this.ensureDefault("button_window_mode", SWFUpload.WINDOW_MODE.WINDOW);
+	
+	// Debug Settings
+	this.ensureDefault("debug", false);
+	this.settings.debug_enabled = this.settings.debug;	// Here to maintain v2 API
+	
+	// Event Handlers
+	this.settings.return_upload_start_handler = this.returnUploadStart;
+	this.ensureDefault("swfupload_loaded_handler", null);
+	this.ensureDefault("file_dialog_start_handler", null);
+	this.ensureDefault("file_queued_handler", null);
+	this.ensureDefault("file_queue_error_handler", null);
+	this.ensureDefault("file_dialog_complete_handler", null);
+	
+	this.ensureDefault("upload_start_handler", null);
+	this.ensureDefault("upload_progress_handler", null);
+	this.ensureDefault("upload_error_handler", null);
+	this.ensureDefault("upload_success_handler", null);
+	this.ensureDefault("upload_complete_handler", null);
+	
+	this.ensureDefault("debug_handler", this.debugMessage);
+
+	this.ensureDefault("custom_settings", {});
+
+	// Other settings
+	this.customSettings = this.settings.custom_settings;
+	
+	// Update the flash url if needed
+	if (!!this.settings.prevent_swf_caching) {
+		this.settings.flash_url = this.settings.flash_url + (this.settings.flash_url.indexOf("?") < 0 ? "?" : "&") + "preventswfcaching=" + new Date().getTime();
+	}
+	
+	if (!this.settings.preserve_relative_urls) {
+		//this.settings.flash_url = SWFUpload.completeURL(this.settings.flash_url);	// Don't need to do this one since flash doesn't look at it
+		this.settings.upload_url = SWFUpload.completeURL(this.settings.upload_url);
+		this.settings.button_image_url = SWFUpload.completeURL(this.settings.button_image_url);
+	}
+	
+	delete this.ensureDefault;
+};
+
+// Private: loadFlash replaces the button_placeholder element with the flash movie.
+SWFUpload.prototype.loadFlash = function () {
+	var targetElement, tempParent;
+
+	// Make sure an element with the ID we are going to use doesn't already exist
+	if (document.getElementById(this.movieName) !== null) {
+		throw "ID " + this.movieName + " is already in use. The Flash Object could not be added";
+	}
+
+	// Get the element where we will be placing the flash movie
+	targetElement = document.getElementById(this.settings.button_placeholder_id) || this.settings.button_placeholder;
+
+	if (targetElement == undefined) {
+		throw "Could not find the placeholder element: " + this.settings.button_placeholder_id;
+	}
+
+	// Append the container and load the flash
+	tempParent = document.createElement("div");
+	tempParent.innerHTML = this.getFlashHTML();	// Using innerHTML is non-standard but the only sensible way to dynamically add Flash in IE (and maybe other browsers)
+	targetElement.parentNode.replaceChild(tempParent.firstChild, targetElement);
+
+	// Fix IE Flash/Form bug
+	if (window[this.movieName] == undefined) {
+		window[this.movieName] = this.getMovieElement();
+	}
+	
+};
+
+// Private: getFlashHTML generates the object tag needed to embed the flash in to the document
+SWFUpload.prototype.getFlashHTML = function () {
+	// Flash Satay object syntax: http://www.alistapart.com/articles/flashsatay
+	return ['<object id="', this.movieName, '" type="application/x-shockwave-flash" data="', this.settings.flash_url, '" width="', this.settings.button_width, '" height="', this.settings.button_height, '" class="swfupload">',
+				'<param name="wmode" value="', this.settings.button_window_mode, '" />',
+				'<param name="movie" value="', this.settings.flash_url, '" />',
+				'<param name="quality" value="high" />',
+				'<param name="menu" value="false" />',
+				'<param name="allowScriptAccess" value="always" />',
+				'<param name="flashvars" value="' + this.getFlashVars() + '" />',
+				'</object>'].join("");
+};
+
+// Private: getFlashVars builds the parameter string that will be passed
+// to flash in the flashvars param.
+SWFUpload.prototype.getFlashVars = function () {
+	// Build a string from the post param object
+	var paramString = this.buildParamString();
+	var httpSuccessString = this.settings.http_success.join(",");
+	
+	// Build the parameter string
+	return ["movieName=", encodeURIComponent(this.movieName),
+			"&amp;uploadURL=", encodeURIComponent(this.settings.upload_url),
+			"&amp;useQueryString=", encodeURIComponent(this.settings.use_query_string),
+			"&amp;requeueOnError=", encodeURIComponent(this.settings.requeue_on_error),
+			"&amp;httpSuccess=", encodeURIComponent(httpSuccessString),
+			"&amp;assumeSuccessTimeout=", encodeURIComponent(this.settings.assume_success_timeout),
+			"&amp;params=", encodeURIComponent(paramString),
+			"&amp;filePostName=", encodeURIComponent(this.settings.file_post_name),
+			"&amp;fileTypes=", encodeURIComponent(this.settings.file_types),
+			"&amp;fileTypesDescription=", encodeURIComponent(this.settings.file_types_description),
+			"&amp;fileSizeLimit=", encodeURIComponent(this.settings.file_size_limit),
+			"&amp;fileUploadLimit=", encodeURIComponent(this.settings.file_upload_limit),
+			"&amp;fileQueueLimit=", encodeURIComponent(this.settings.file_queue_limit),
+			"&amp;debugEnabled=", encodeURIComponent(this.settings.debug_enabled),
+			"&amp;buttonImageURL=", encodeURIComponent(this.settings.button_image_url),
+			"&amp;buttonWidth=", encodeURIComponent(this.settings.button_width),
+			"&amp;buttonHeight=", encodeURIComponent(this.settings.button_height),
+			"&amp;buttonText=", encodeURIComponent(this.settings.button_text),
+			"&amp;buttonTextTopPadding=", encodeURIComponent(this.settings.button_text_top_padding),
+			"&amp;buttonTextLeftPadding=", encodeURIComponent(this.settings.button_text_left_padding),
+			"&amp;buttonTextStyle=", encodeURIComponent(this.settings.button_text_style),
+			"&amp;buttonAction=", encodeURIComponent(this.settings.button_action),
+			"&amp;buttonDisabled=", encodeURIComponent(this.settings.button_disabled),
+			"&amp;buttonCursor=", encodeURIComponent(this.settings.button_cursor)
+		].join("");
+};
+
+// Public: getMovieElement retrieves the DOM reference to the Flash element added by SWFUpload
+// The element is cached after the first lookup
+SWFUpload.prototype.getMovieElement = function () {
+	if (this.movieElement == undefined) {
+		this.movieElement = document.getElementById(this.movieName);
+	}
+
+	if (this.movieElement === null) {
+		throw "Could not find Flash element";
+	}
+	
+	return this.movieElement;
+};
+
+// Private: buildParamString takes the name/value pairs in the post_params setting object
+// and joins them up in to a string formatted "name=value&amp;name=value"
+SWFUpload.prototype.buildParamString = function () {
+	var postParams = this.settings.post_params; 
+	var paramStringPairs = [];
+
+	if (typeof(postParams) === "object") {
+		for (var name in postParams) {
+			if (postParams.hasOwnProperty(name)) {
+				paramStringPairs.push(encodeURIComponent(name.toString()) + "=" + encodeURIComponent(postParams[name].toString()));
+			}
+		}
+	}
+
+	return paramStringPairs.join("&amp;");
+};
+
+// Public: Used to remove a SWFUpload instance from the page. This method strives to remove
+// all references to the SWF, and other objects so memory is properly freed.
+// Returns true if everything was destroyed. Returns a false if a failure occurs leaving SWFUpload in an inconsistant state.
+// Credits: Major improvements provided by steffen
+SWFUpload.prototype.destroy = function () {
+	try {
+		// Make sure Flash is done before we try to remove it
+		this.cancelUpload(null, false);
+		
+
+		// Remove the SWFUpload DOM nodes
+		var movieElement = null;
+		movieElement = this.getMovieElement();
+		
+		if (movieElement && typeof(movieElement.CallFunction) === "unknown") { // We only want to do this in IE
+			// Loop through all the movie's properties and remove all function references (DOM/JS IE 6/7 memory leak workaround)
+			for (var i in movieElement) {
+				try {
+					if (typeof(movieElement[i]) === "function") {
+						movieElement[i] = null;
+					}
+				} catch (ex1) {}
+			}
+
+			// Remove the Movie Element from the page
+			try {
+				movieElement.parentNode.removeChild(movieElement);
+			} catch (ex) {}
+		}
+		
+		// Remove IE form fix reference
+		window[this.movieName] = null;
+
+		// Destroy other references
+		SWFUpload.instances[this.movieName] = null;
+		delete SWFUpload.instances[this.movieName];
+
+		this.movieElement = null;
+		this.settings = null;
+		this.customSettings = null;
+		this.eventQueue = null;
+		this.movieName = null;
+		
+		
+		return true;
+	} catch (ex2) {
+		return false;
+	}
+};
+
+
+// Public: displayDebugInfo prints out settings and configuration
+// information about this SWFUpload instance.
+// This function (and any references to it) can be deleted when placing
+// SWFUpload in production.
+SWFUpload.prototype.displayDebugInfo = function () {
+	this.debug(
+		[
+			"---SWFUpload Instance Info---\n",
+			"Version: ", SWFUpload.version, "\n",
+			"Movie Name: ", this.movieName, "\n",
+			"Settings:\n",
+			"\t", "upload_url:               ", this.settings.upload_url, "\n",
+			"\t", "flash_url:                ", this.settings.flash_url, "\n",
+			"\t", "use_query_string:         ", this.settings.use_query_string.toString(), "\n",
+			"\t", "requeue_on_error:         ", this.settings.requeue_on_error.toString(), "\n",
+			"\t", "http_success:             ", this.settings.http_success.join(", "), "\n",
+			"\t", "assume_success_timeout:   ", this.settings.assume_success_timeout, "\n",
+			"\t", "file_post_name:           ", this.settings.file_post_name, "\n",
+			"\t", "post_params:              ", this.settings.post_params.toString(), "\n",
+			"\t", "file_types:               ", this.settings.file_types, "\n",
+			"\t", "file_types_description:   ", this.settings.file_types_description, "\n",
+			"\t", "file_size_limit:          ", this.settings.file_size_limit, "\n",
+			"\t", "file_upload_limit:        ", this.settings.file_upload_limit, "\n",
+			"\t", "file_queue_limit:         ", this.settings.file_queue_limit, "\n",
+			"\t", "debug:                    ", this.settings.debug.toString(), "\n",
+
+			"\t", "prevent_swf_caching:      ", this.settings.prevent_swf_caching.toString(), "\n",
+
+			"\t", "button_placeholder_id:    ", this.settings.button_placeholder_id.toString(), "\n",
+			"\t", "button_placeholder:       ", (this.settings.button_placeholder ? "Set" : "Not Set"), "\n",
+			"\t", "button_image_url:         ", this.settings.button_image_url.toString(), "\n",
+			"\t", "button_width:             ", this.settings.button_width.toString(), "\n",
+			"\t", "button_height:            ", this.settings.button_height.toString(), "\n",
+			"\t", "button_text:              ", this.settings.button_text.toString(), "\n",
+			"\t", "button_text_style:        ", this.settings.button_text_style.toString(), "\n",
+			"\t", "button_text_top_padding:  ", this.settings.button_text_top_padding.toString(), "\n",
+			"\t", "button_text_left_padding: ", this.settings.button_text_left_padding.toString(), "\n",
+			"\t", "button_action:            ", this.settings.button_action.toString(), "\n",
+			"\t", "button_disabled:          ", this.settings.button_disabled.toString(), "\n",
+
+			"\t", "custom_settings:          ", this.settings.custom_settings.toString(), "\n",
+			"Event Handlers:\n",
+			"\t", "swfupload_loaded_handler assigned:  ", (typeof this.settings.swfupload_loaded_handler === "function").toString(), "\n",
+			"\t", "file_dialog_start_handler assigned: ", (typeof this.settings.file_dialog_start_handler === "function").toString(), "\n",
+			"\t", "file_queued_handler assigned:       ", (typeof this.settings.file_queued_handler === "function").toString(), "\n",
+			"\t", "file_queue_error_handler assigned:  ", (typeof this.settings.file_queue_error_handler === "function").toString(), "\n",
+			"\t", "upload_start_handler assigned:      ", (typeof this.settings.upload_start_handler === "function").toString(), "\n",
+			"\t", "upload_progress_handler assigned:   ", (typeof this.settings.upload_progress_handler === "function").toString(), "\n",
+			"\t", "upload_error_handler assigned:      ", (typeof this.settings.upload_error_handler === "function").toString(), "\n",
+			"\t", "upload_success_handler assigned:    ", (typeof this.settings.upload_success_handler === "function").toString(), "\n",
+			"\t", "upload_complete_handler assigned:   ", (typeof this.settings.upload_complete_handler === "function").toString(), "\n",
+			"\t", "debug_handler assigned:             ", (typeof this.settings.debug_handler === "function").toString(), "\n"
+		].join("")
+	);
+};
+
+/* Note: addSetting and getSetting are no longer used by SWFUpload but are included
+	the maintain v2 API compatibility
+*/
+// Public: (Deprecated) addSetting adds a setting value. If the value given is undefined or null then the default_value is used.
+SWFUpload.prototype.addSetting = function (name, value, default_value) {
+    if (value == undefined) {
+        return (this.settings[name] = default_value);
+    } else {
+        return (this.settings[name] = value);
+	}
+};
+
+// Public: (Deprecated) getSetting gets a setting. Returns an empty string if the setting was not found.
+SWFUpload.prototype.getSetting = function (name) {
+    if (this.settings[name] != undefined) {
+        return this.settings[name];
+	}
+
+    return "";
+};
+
+
+
+// Private: callFlash handles function calls made to the Flash element.
+// Calls are made with a setTimeout for some functions to work around
+// bugs in the ExternalInterface library.
+SWFUpload.prototype.callFlash = function (functionName, argumentArray) {
+	argumentArray = argumentArray || [];
+	
+	var movieElement = this.getMovieElement();
+	var returnValue, returnString;
+
+	// Flash's method if calling ExternalInterface methods (code adapted from MooTools).
+	try {
+		returnString = movieElement.CallFunction('<invoke name="' + functionName + '" returntype="javascript">' + __flash__argumentsToXML(argumentArray, 0) + '</invoke>');
+		returnValue = eval(returnString);
+	} catch (ex) {
+		throw "Call to " + functionName + " failed";
+	}
+	
+	// Unescape file post param values
+	if (returnValue != undefined && typeof returnValue.post === "object") {
+		returnValue = this.unescapeFilePostParams(returnValue);
+	}
+
+	return returnValue;
+};
+
+/* *****************************
+	-- Flash control methods --
+	Your UI should use these
+	to operate SWFUpload
+   ***************************** */
+
+// WARNING: this function does not work in Flash Player 10
+// Public: selectFile causes a File Selection Dialog window to appear.  This
+// dialog only allows 1 file to be selected.
+SWFUpload.prototype.selectFile = function () {
+	this.callFlash("SelectFile");
+};
+
+// WARNING: this function does not work in Flash Player 10
+// Public: selectFiles causes a File Selection Dialog window to appear/ This
+// dialog allows the user to select any number of files
+// Flash Bug Warning: Flash limits the number of selectable files based on the combined length of the file names.
+// If the selection name length is too long the dialog will fail in an unpredictable manner.  There is no work-around
+// for this bug.
+SWFUpload.prototype.selectFiles = function () {
+	this.callFlash("SelectFiles");
+};
+
+
+// Public: startUpload starts uploading the first file in the queue unless
+// the optional parameter 'fileID' specifies the ID 
+SWFUpload.prototype.startUpload = function (fileID) {
+	this.callFlash("StartUpload", [fileID]);
+};
+
+// Public: cancelUpload cancels any queued file.  The fileID parameter may be the file ID or index.
+// If you do not specify a fileID the current uploading file or first file in the queue is cancelled.
+// If you do not want the uploadError event to trigger you can specify false for the triggerErrorEvent parameter.
+SWFUpload.prototype.cancelUpload = function (fileID, triggerErrorEvent) {
+	if (triggerErrorEvent !== false) {
+		triggerErrorEvent = true;
+	}
+	this.callFlash("CancelUpload", [fileID, triggerErrorEvent]);
+};
+
+// Public: stopUpload stops the current upload and requeues the file at the beginning of the queue.
+// If nothing is currently uploading then nothing happens.
+SWFUpload.prototype.stopUpload = function () {
+	this.callFlash("StopUpload");
+};
+
+/* ************************
+ * Settings methods
+ *   These methods change the SWFUpload settings.
+ *   SWFUpload settings should not be changed directly on the settings object
+ *   since many of the settings need to be passed to Flash in order to take
+ *   effect.
+ * *********************** */
+
+// Public: getStats gets the file statistics object.
+SWFUpload.prototype.getStats = function () {
+	return this.callFlash("GetStats");
+};
+
+// Public: setStats changes the SWFUpload statistics.  You shouldn't need to 
+// change the statistics but you can.  Changing the statistics does not
+// affect SWFUpload accept for the successful_uploads count which is used
+// by the upload_limit setting to determine how many files the user may upload.
+SWFUpload.prototype.setStats = function (statsObject) {
+	this.callFlash("SetStats", [statsObject]);
+};
+
+// Public: getFile retrieves a File object by ID or Index.  If the file is
+// not found then 'null' is returned.
+SWFUpload.prototype.getFile = function (fileID) {
+	if (typeof(fileID) === "number") {
+		return this.callFlash("GetFileByIndex", [fileID]);
+	} else {
+		return this.callFlash("GetFile", [fileID]);
+	}
+};
+
+// Public: addFileParam sets a name/value pair that will be posted with the
+// file specified by the Files ID.  If the name already exists then the
+// exiting value will be overwritten.
+SWFUpload.prototype.addFileParam = function (fileID, name, value) {
+	return this.callFlash("AddFileParam", [fileID, name, value]);
+};
+
+// Public: removeFileParam removes a previously set (by addFileParam) name/value
+// pair from the specified file.
+SWFUpload.prototype.removeFileParam = function (fileID, name) {
+	this.callFlash("RemoveFileParam", [fileID, name]);
+};
+
+// Public: setUploadUrl changes the upload_url setting.
+SWFUpload.prototype.setUploadURL = function (url) {
+	this.settings.upload_url = url.toString();
+	this.callFlash("SetUploadURL", [url]);
+};
+
+// Public: setPostParams changes the post_params setting
+SWFUpload.prototype.setPostParams = function (paramsObject) {
+	this.settings.post_params = paramsObject;
+	this.callFlash("SetPostParams", [paramsObject]);
+};
+
+// Public: addPostParam adds post name/value pair.  Each name can have only one value.
+SWFUpload.prototype.addPostParam = function (name, value) {
+	this.settings.post_params[name] = value;
+	this.callFlash("SetPostParams", [this.settings.post_params]);
+};
+
+// Public: removePostParam deletes post name/value pair.
+SWFUpload.prototype.removePostParam = function (name) {
+	delete this.settings.post_params[name];
+	this.callFlash("SetPostParams", [this.settings.post_params]);
+};
+
+// Public: setFileTypes changes the file_types setting and the file_types_description setting
+SWFUpload.prototype.setFileTypes = function (types, description) {
+	this.settings.file_types = types;
+	this.settings.file_types_description = description;
+	this.callFlash("SetFileTypes", [types, description]);
+};
+
+// Public: setFileSizeLimit changes the file_size_limit setting
+SWFUpload.prototype.setFileSizeLimit = function (fileSizeLimit) {
+	this.settings.file_size_limit = fileSizeLimit;
+	this.callFlash("SetFileSizeLimit", [fileSizeLimit]);
+};
+
+// Public: setFileUploadLimit changes the file_upload_limit setting
+SWFUpload.prototype.setFileUploadLimit = function (fileUploadLimit) {
+	this.settings.file_upload_limit = fileUploadLimit;
+	this.callFlash("SetFileUploadLimit", [fileUploadLimit]);
+};
+
+// Public: setFileQueueLimit changes the file_queue_limit setting
+SWFUpload.prototype.setFileQueueLimit = function (fileQueueLimit) {
+	this.settings.file_queue_limit = fileQueueLimit;
+	this.callFlash("SetFileQueueLimit", [fileQueueLimit]);
+};
+
+// Public: setFilePostName changes the file_post_name setting
+SWFUpload.prototype.setFilePostName = function (filePostName) {
+	this.settings.file_post_name = filePostName;
+	this.callFlash("SetFilePostName", [filePostName]);
+};
+
+// Public: setUseQueryString changes the use_query_string setting
+SWFUpload.prototype.setUseQueryString = function (useQueryString) {
+	this.settings.use_query_string = useQueryString;
+	this.callFlash("SetUseQueryString", [useQueryString]);
+};
+
+// Public: setRequeueOnError changes the requeue_on_error setting
+SWFUpload.prototype.setRequeueOnError = function (requeueOnError) {
+	this.settings.requeue_on_error = requeueOnError;
+	this.callFlash("SetRequeueOnError", [requeueOnError]);
+};
+
+// Public: setHTTPSuccess changes the http_success setting
+SWFUpload.prototype.setHTTPSuccess = function (http_status_codes) {
+	if (typeof http_status_codes === "string") {
+		http_status_codes = http_status_codes.replace(" ", "").split(",");
+	}
+	
+	this.settings.http_success = http_status_codes;
+	this.callFlash("SetHTTPSuccess", [http_status_codes]);
+};
+
+// Public: setHTTPSuccess changes the http_success setting
+SWFUpload.prototype.setAssumeSuccessTimeout = function (timeout_seconds) {
+	this.settings.assume_success_timeout = timeout_seconds;
+	this.callFlash("SetAssumeSuccessTimeout", [timeout_seconds]);
+};
+
+// Public: setDebugEnabled changes the debug_enabled setting
+SWFUpload.prototype.setDebugEnabled = function (debugEnabled) {
+	this.settings.debug_enabled = debugEnabled;
+	this.callFlash("SetDebugEnabled", [debugEnabled]);
+};
+
+// Public: setButtonImageURL loads a button image sprite
+SWFUpload.prototype.setButtonImageURL = function (buttonImageURL) {
+	if (buttonImageURL == undefined) {
+		buttonImageURL = "";
+	}
+	
+	this.settings.button_image_url = buttonImageURL;
+	this.callFlash("SetButtonImageURL", [buttonImageURL]);
+};
+
+// Public: setButtonDimensions resizes the Flash Movie and button
+SWFUpload.prototype.setButtonDimensions = function (width, height) {
+	this.settings.button_width = width;
+	this.settings.button_height = height;
+	
+	var movie = this.getMovieElement();
+	if (movie != undefined) {
+		movie.style.width = width + "px";
+		movie.style.height = height + "px";
+	}
+	
+	this.callFlash("SetButtonDimensions", [width, height]);
+};
+// Public: setButtonText Changes the text overlaid on the button
+SWFUpload.prototype.setButtonText = function (html) {
+	this.settings.button_text = html;
+	this.callFlash("SetButtonText", [html]);
+};
+// Public: setButtonTextPadding changes the top and left padding of the text overlay
+SWFUpload.prototype.setButtonTextPadding = function (left, top) {
+	this.settings.button_text_top_padding = top;
+	this.settings.button_text_left_padding = left;
+	this.callFlash("SetButtonTextPadding", [left, top]);
+};
+
+// Public: setButtonTextStyle changes the CSS used to style the HTML/Text overlaid on the button
+SWFUpload.prototype.setButtonTextStyle = function (css) {
+	this.settings.button_text_style = css;
+	this.callFlash("SetButtonTextStyle", [css]);
+};
+// Public: setButtonDisabled disables/enables the button
+SWFUpload.prototype.setButtonDisabled = function (isDisabled) {
+	this.settings.button_disabled = isDisabled;
+	this.callFlash("SetButtonDisabled", [isDisabled]);
+};
+// Public: setButtonAction sets the action that occurs when the button is clicked
+SWFUpload.prototype.setButtonAction = function (buttonAction) {
+	this.settings.button_action = buttonAction;
+	this.callFlash("SetButtonAction", [buttonAction]);
+};
+
+// Public: setButtonCursor changes the mouse cursor displayed when hovering over the button
+SWFUpload.prototype.setButtonCursor = function (cursor) {
+	this.settings.button_cursor = cursor;
+	this.callFlash("SetButtonCursor", [cursor]);
+};
+
+/* *******************************
+	Flash Event Interfaces
+	These functions are used by Flash to trigger the various
+	events.
+	
+	All these functions a Private.
+	
+	Because the ExternalInterface library is buggy the event calls
+	are added to a queue and the queue then executed by a setTimeout.
+	This ensures that events are executed in a determinate order and that
+	the ExternalInterface bugs are avoided.
+******************************* */
+
+SWFUpload.prototype.queueEvent = function (handlerName, argumentArray) {
+	// Warning: Don't call this.debug inside here or you'll create an infinite loop
+	
+	if (argumentArray == undefined) {
+		argumentArray = [];
+	} else if (!(argumentArray instanceof Array)) {
+		argumentArray = [argumentArray];
+	}
+	
+	var self = this;
+	if (typeof this.settings[handlerName] === "function") {
+		// Queue the event
+		this.eventQueue.push(function () {
+			this.settings[handlerName].apply(this, argumentArray);
+		});
+		
+		// Execute the next queued event
+		setTimeout(function () {
+			self.executeNextEvent();
+		}, 0);
+		
+	} else if (this.settings[handlerName] !== null) {
+		throw "Event handler " + handlerName + " is unknown or is not a function";
+	}
+};
+
+// Private: Causes the next event in the queue to be executed.  Since events are queued using a setTimeout
+// we must queue them in order to garentee that they are executed in order.
+SWFUpload.prototype.executeNextEvent = function () {
+	// Warning: Don't call this.debug inside here or you'll create an infinite loop
+
+	var  f = this.eventQueue ? this.eventQueue.shift() : null;
+	if (typeof(f) === "function") {
+		f.apply(this);
+	}
+};
+
+// Private: unescapeFileParams is part of a workaround for a flash bug where objects passed through ExternalInterface cannot have
+// properties that contain characters that are not valid for JavaScript identifiers. To work around this
+// the Flash Component escapes the parameter names and we must unescape again before passing them along.
+SWFUpload.prototype.unescapeFilePostParams = function (file) {
+	var reg = /[$]([0-9a-f]{4})/i;
+	var unescapedPost = {};
+	var uk;
+
+	if (file != undefined) {
+		for (var k in file.post) {
+			if (file.post.hasOwnProperty(k)) {
+				uk = k;
+				var match;
+				while ((match = reg.exec(uk)) !== null) {
+					uk = uk.replace(match[0], String.fromCharCode(parseInt("0x" + match[1], 16)));
+				}
+				unescapedPost[uk] = file.post[k];
+			}
+		}
+
+		file.post = unescapedPost;
+	}
+
+	return file;
+};
+
+// Private: Called by Flash to see if JS can call in to Flash (test if External Interface is working)
+SWFUpload.prototype.testExternalInterface = function () {
+	try {
+		return this.callFlash("TestExternalInterface");
+	} catch (ex) {
+		return false;
+	}
+};
+
+// Private: This event is called by Flash when it has finished loading. Don't modify this.
+// Use the swfupload_loaded_handler event setting to execute custom code when SWFUpload has loaded.
+SWFUpload.prototype.flashReady = function () {
+	// Check that the movie element is loaded correctly with its ExternalInterface methods defined
+	var movieElement = this.getMovieElement();
+
+	if (!movieElement) {
+		this.debug("Flash called back ready but the flash movie can't be found.");
+		return;
+	}
+
+	this.cleanUp(movieElement);
+	
+	this.queueEvent("swfupload_loaded_handler");
+};
+
+// Private: removes Flash added fuctions to the DOM node to prevent memory leaks in IE.
+// This function is called by Flash each time the ExternalInterface functions are created.
+SWFUpload.prototype.cleanUp = function (movieElement) {
+	// Pro-actively unhook all the Flash functions
+	try {
+		if (this.movieElement && typeof(movieElement.CallFunction) === "unknown") { // We only want to do this in IE
+			this.debug("Removing Flash functions hooks (this should only run in IE and should prevent memory leaks)");
+			for (var key in movieElement) {
+				try {
+					if (typeof(movieElement[key]) === "function") {
+						movieElement[key] = null;
+					}
+				} catch (ex) {
+				}
+			}
+		}
+	} catch (ex1) {
+	
+	}
+
+	// Fix Flashes own cleanup code so if the SWFMovie was removed from the page
+	// it doesn't display errors.
+	window["__flash__removeCallback"] = function (instance, name) {
+		try {
+			if (instance) {
+				instance[name] = null;
+			}
+		} catch (flashEx) {
+		
+		}
+	};
+
+};
+
+
+/* This is a chance to do something before the browse window opens */
+SWFUpload.prototype.fileDialogStart = function () {
+	this.queueEvent("file_dialog_start_handler");
+};
+
+
+/* Called when a file is successfully added to the queue. */
+SWFUpload.prototype.fileQueued = function (file) {
+	file = this.unescapeFilePostParams(file);
+	this.queueEvent("file_queued_handler", file);
+};
+
+
+/* Handle errors that occur when an attempt to queue a file fails. */
+SWFUpload.prototype.fileQueueError = function (file, errorCode, message) {
+	file = this.unescapeFilePostParams(file);
+	this.queueEvent("file_queue_error_handler", [file, errorCode, message]);
+};
+
+/* Called after the file dialog has closed and the selected files have been queued.
+	You could call startUpload here if you want the queued files to begin uploading immediately. */
+SWFUpload.prototype.fileDialogComplete = function (numFilesSelected, numFilesQueued, numFilesInQueue) {
+	this.queueEvent("file_dialog_complete_handler", [numFilesSelected, numFilesQueued, numFilesInQueue]);
+};
+
+SWFUpload.prototype.uploadStart = function (file) {
+	file = this.unescapeFilePostParams(file);
+	this.queueEvent("return_upload_start_handler", file);
+};
+
+SWFUpload.prototype.returnUploadStart = function (file) {
+	var returnValue;
+	if (typeof this.settings.upload_start_handler === "function") {
+		file = this.unescapeFilePostParams(file);
+		returnValue = this.settings.upload_start_handler.call(this, file);
+	} else if (this.settings.upload_start_handler != undefined) {
+		throw "upload_start_handler must be a function";
+	}
+
+	// Convert undefined to true so if nothing is returned from the upload_start_handler it is
+	// interpretted as 'true'.
+	if (returnValue === undefined) {
+		returnValue = true;
+	}
+	
+	returnValue = !!returnValue;
+	
+	this.callFlash("ReturnUploadStart", [returnValue]);
+};
+
+
+
+SWFUpload.prototype.uploadProgress = function (file, bytesComplete, bytesTotal) {
+	file = this.unescapeFilePostParams(file);
+	this.queueEvent("upload_progress_handler", [file, bytesComplete, bytesTotal]);
+};
+
+SWFUpload.prototype.uploadError = function (file, errorCode, message) {
+	file = this.unescapeFilePostParams(file);
+	this.queueEvent("upload_error_handler", [file, errorCode, message]);
+};
+
+SWFUpload.prototype.uploadSuccess = function (file, serverData, responseReceived) {
+	file = this.unescapeFilePostParams(file);
+	this.queueEvent("upload_success_handler", [file, serverData, responseReceived]);
+};
+
+SWFUpload.prototype.uploadComplete = function (file) {
+	file = this.unescapeFilePostParams(file);
+	this.queueEvent("upload_complete_handler", file);
+};
+
+/* Called by SWFUpload JavaScript and Flash functions when debug is enabled. By default it writes messages to the
+   internal debug console.  You can override this event and have messages written where you want. */
+SWFUpload.prototype.debug = function (message) {
+	this.queueEvent("debug_handler", message);
+};
+
+
+/* **********************************
+	Debug Console
+	The debug console is a self contained, in page location
+	for debug message to be sent.  The Debug Console adds
+	itself to the body if necessary.
+
+	The console is automatically scrolled as messages appear.
+	
+	If you are using your own debug handler or when you deploy to production and
+	have debug disabled you can remove these functions to reduce the file size
+	and complexity.
+********************************** */
+   
+// Private: debugMessage is the default debug_handler.  If you want to print debug messages
+// call the debug() function.  When overriding the function your own function should
+// check to see if the debug setting is true before outputting debug information.
+SWFUpload.prototype.debugMessage = function (message) {
+	if (this.settings.debug) {
+		var exceptionMessage, exceptionValues = [];
+
+		// Check for an exception object and print it nicely
+		if (typeof message === "object" && typeof message.name === "string" && typeof message.message === "string") {
+			for (var key in message) {
+				if (message.hasOwnProperty(key)) {
+					exceptionValues.push(key + ": " + message[key]);
+				}
+			}
+			exceptionMessage = exceptionValues.join("\n") || "";
+			exceptionValues = exceptionMessage.split("\n");
+			exceptionMessage = "EXCEPTION: " + exceptionValues.join("\nEXCEPTION: ");
+			if (window.console)
+				console.log(exceptionMessage);
+			else	
+				SWFUpload.Console.writeLine(exceptionMessage);
+		} else {
+			if (window.console)
+				console.log(message);
+			else
+				SWFUpload.Console.writeLine(message);
+		}
+	}
+};
+
+SWFUpload.Console = {};
+SWFUpload.Console.writeLine = function (message) {
+	var console, documentForm;
+
+	try {
+		console = document.getElementById("SWFUpload_Console");
+
+		if (!console) {
+			documentForm = document.createElement("form");
+			document.getElementsByTagName("body")[0].appendChild(documentForm);
+
+			console = document.createElement("textarea");
+			console.id = "SWFUpload_Console";
+			console.style.fontFamily = "monospace";
+			console.setAttribute("wrap", "off");
+			console.wrap = "off";
+			console.style.overflow = "auto";
+			console.style.width = "99%";
+			console.style.height = "350px";
+			console.style.margin = "5px";
+			documentForm.appendChild(console);
+		}
+
+		console.value += message + "\n";
+
+		console.scrollTop = console.scrollHeight - console.clientHeight;
+	} catch (ex) {
+		alert("Exception: " + ex.name + " Message: " + ex.message);
+	}
+};
diff --git a/wp-content/plugins/nextgen-gallery/admin/js/swfupload.swf b/wp-content/plugins/nextgen-gallery/admin/js/swfupload.swf
new file mode 100644
index 0000000000000000000000000000000000000000..e3f767031ca8243a5f0b89bc0f154cc5962e01e9
GIT binary patch
literal 12787
zcmZ<`59WNIz`#&(>u617jr7r*|Ie*kGVzJ`q`9*XFsZdKwonUDP;0TU6KX%gWq0VM
zg?6U7*okS{CoL;7IU5T^xL7<i0uJ1nq8;;eS!>bs#hYR$$xXSZyVw6#(XYRD#=9rU
zsMp;4{{7!a<Jz+4Gb^9XOrKZzta9GWP^$$~Y*uQV&k5C<aY<y(GL2J}Q}Yd6Bj@x*
ze|_t#`|H`hl=@|IH#j#}Z@$_1i<R3f_g2X6mn&|CR2^<o7T1m1vLNqaQ!DrL=A^nb
z@A_*uZ1&q1|9GR?<T!a|=Tc$jn=Y&3)$epHW818LW?pV_@9|GQ>};1k4;sluC#apZ
z+iX8OvLNN{!~~K4tI;b<=1+`G;^9#dHf+A3d&9>5^6aj;dr#iTIJbS0+p_YHO-zbk
zPpWP5EcSG^5jFifZOP6^d#`+rFXC4wwRAjYb(}8ZdwIdVts6t`H#L@M*-13}h(&as
zI~v<@^gx2i%oAT`y;N=foBn;d*-1sNtuDgev)#;0=N($P_}h|;`x7tRNYKm76V9!S
zIgycaR&{mnmVF;?Y}mJ9UEV~I<}7jj8}7Huc*P1jFNsvdN3Stim7JWs{I}_v4eSdv
zdE;FF*p~jjAO0fZ<NIIMewi<&JeKwB`1E#_`ZY~1Em7^<FEib>7?+04<YP+~jbDB|
z{mYJ7a;GM1gxh%Vf0MM;Uv#{B{-Z+9t?{le?sM*K_L?8?vbO4u!;9lCp9F2~79L;z
zh2g{6=;?V!=X(e06=<&OUFotXWKH4PofCNu@3%6YVK{r`8!`WVI#a!7xz*pCRg&d=
z>r9Hv+Wp2C)0eqkyq=Q68~ACP%A~aHYi~Z6q+IU&$1AFBWqrLQrT5K(HzBvAGX0hZ
zZ;D=VxQBO{@J-!Tt#W6p+?<ati_&LqT(dlPgMQYs+MpeE#;@OJ#b3><E4*+fCAPWq
zUyfw&wY;dbTW|Vj?%UILI;Fot$#??G_C7|QB)Lm>?#X4o&+IWV{XXZ;)jL=3Y+hAb
znw{?dd1dd}v%Y72Lz@@rxA>-4OZBE0WgR(ZXVJZJmU;TwlKm5N-X6bgl$5s5QbhJl
zTJYcA=9fNNy6u`%LwOC2rg(KuU^=tR<yeQBF9-WVYoX^eRtwd3=0vv7jGcTc<+_AH
zt4~H`czXJhwaYiI-pjmcT}DRsstohrLDIgnRxX&CH`&CbY}=!&7x%2%xpDLIrKO?8
z$3-le)2Dt4a$4eIbnmkMmPp5_sLfiJE-cYs6B`j7&c)bK`Ft9qaj@DJ>kKc`U9-=;
zc+lpMyeeNIGwtj=QMY=V%w^3lHu{`dy_J7Adv;Lb=LMZx4lZim@+v8Cu3g=%68}Z^
zd3k!hJTw0K)vlCScU<L`59iOezJn1whkon0FT0egvUl$rMIWBqH;+t8Fl}L-cH*eq
z8MR50+gGgI(0fKQ<&uSUan|XlDsyl8-pWuB{wSxoyp#3)`Gmhliq&b8!q(i_!mQ`;
zv&eH#j<>e&mZl0_@8xExXTD@DuJ<mOvvr+U%BCP~CsxtQrC!NgC$_%nlw9C@C`YUF
zTZ&Sz_?h*Geez8%Z}~kZa;m3iuI@C`Z?iUTj?QVG?WHqI$jxYL;-0DOZzH+BB~99<
z`E>fdg>yo-bY@JfW|3>DGF-Xlikz8a{6ROF&ELxvJ{&n>@YJ=d^UG|}qRAyruXQ<%
zCBL6$J<Ig{sW!jw^X-mtt%s5)$epbdz7{N@@c8|SWo%2-PF=pVMEP&hSI_f@*3ACh
z8u7Hy>C@-cLTPVu6rz_e{FCA_r|-?QC6<z*&CJ3w%<nU7_wH0LnzXlSi~JI8Z9%T-
zLT7a@J$!YoukYHnr?y4z-xBnvM!8C_+{7B~w&P0O&n15^3-mwV>uC8zKrd`vxuuM`
znBiX6s`%UDYYl{@t2Q%MPyD=Y`KFBCUpdwK)4fX4-nF_;{(Q<uYt2Qi%T3$6jvuV&
zvM@<8YOY;oYnN;PL?QUoHm&lQdxD%_OWc%fPe)BZuMy;&efw5h=vv<-@zQzQmRY9c
zvpx|{zrE<jyGk49jYqq_J-ebbZ<|-N)Pc>JLC^pF`O$NzZAQY&rAOE8U3H?r`^Alx
zKS{Ta9JI1h&c0@1F1mfry*qs`=Uuz0qZaPUtu-xh-HL#q%*8jJ6v<6y?=~-pn{&7;
zLP*&<r}PWQ)Gm)@{!`NDb4>rf(sid#Wyu_E{mp;-zMNoPuktuDb5F)=mfIWIFa3>e
z-4MBD@=?8&Qrio27Hdj}@65M&os;o?%ToK2`<mR+nF1w6p?hVwRsP~;W>1>3s)YB6
zX}F%rl=wDH*7=%Et;w&Z9(^V;u}(MTJ)6Z!o0$cEZ<h()50XgaHJklKYwh2#E~Ql=
zTwg3BD;{u83%{A2vSPPn{>jg)W#s=zD;(6^=hz-Nb>sZrFs0|UUP|-cu07E+KVqq_
zO{<*yFU@TmtsR$IEZN@wdGgcvDGS~D=5ww)G?`~x<>t4VX`(MzC;JvBXM1OFzH`9#
z#)(|PmLneF(ZM?(v!^x%=k;<MFXWsow5X)_bJD?ej9!PQi*9@Hh0{-ce~+C@XN%{)
z%>utqJlQEbdo|azOEaZ5_+GmA+Qi-X?Zow&zoX)louiXKuL^x!UhZxjwtDMlliP7d
zK}y*MFE!RJI#KMh!DeZn=7m@7R>9i6y>9I{x{U%jSidfrD-f=<*?ysozRZ4&DZ0}w
z7r%LUcG;47ca-*O3Gx^zJ-wDNElcU0wf5!7LR<bd)|iLSpZG#Q_uP>l#>;(yuGTw!
z%+?%Bc_98qEKx$wis#18$-)|cE5pUUm#CbWIBk1RH-qY=xgPJ{8ZJGva2ltag~H^H
z3ja19A*&fGSNP9gxOp`&qLu69vW?<WosLTvCTUH)ZyqWVzSVSoQn{ejl#5$e>|MNi
z<Hntflf4RKv!l<?`gY<|*%kKg*GH2+M`TUdwplw_P4_lqU_`<44IkGO{dP%RUslk>
z{vq+9uxHVd&~2OZde+1>f4F{!S^j#${1Zme6YhSgoXaxp>XZXHL9=HCZK+yUqBT`F
zGw*dy-uukV{D`|U4VL}hT{cG6Up?0DOca&&dE!=KrXno;YcEH*?dn<4R(IJJK3%j_
zIZZ|I$)jc4buV4Mcw@t=o6}E*Z{_*c?I6&z)Ig9&<r`O}?fS<i-Y#((rcYZPdiQ$V
zzuUVyO4|R^`o5CVgu02rxAtthvGv%x?lrl2-)|mWcTOlW>gt^h+ji>AXYQ)KQxX+@
z_|-MHa50Za=X$fonG%v&pUh0wF0C}1DtYwk!J7YVjya+!_UpEJL~p*nVdJJ5g0D@b
zjZO>Qv`ap4-F(IoPo<0bRpv`CeGI;Itie9p<?V#$>gD?tdt3Xf7iAnfsHVI}XX`Xa
z^}-7G&r{--9Jt5(;@0er)SAFz=ccCGOVa+*vu`<`^__TCHFve**-dA2y6tCPUsm7H
zBeGj@uH}_|hMIS#nUu(EO-PKrYsmc~X1ec}@Lub8*G?B_eEo4s?dLS>y@K8BzYQ<9
z_oxdU>%2SVM#k<I$@zz$EO=zyT$NaMB`;;6uguOln=5h`$)~mF&ar&FVbkGV+1wwE
zU2gmk_M923TI;z%LbxvF(hj}8;~MU{7a!WraF_ibq972%#9H-oJ-4mQw74rBG3i=d
zzxOhKSbWgWG^Cbq_G>}yX@cSk9N}$Y!O@SiJ=97I6$(=?H!qu;WvRYMvr_iu+P|G^
z-u1kFmlJ#Uj^Aw4xuIvz?yFd(JN0erW}B2IfvQ_R3$(W|I`>V#khi&bQl_8c;`~EZ
zGpg#fR;QoI*?aEylHhXgSQ&M(b#e1oT&+^vsi*zbmqTx*Z`D7GDC^trEaEQznsZ{-
zvu!)e?q6G0b$4oGhU!J#fJFsjH=IM>`K0zP;ZFbASY&v2&-csUPjBy7xIQf2O~%D@
z!^-RGx91*v%KG(};x7gv9%H_joA-K5FPW+2m_3tmiNUgNu~!ocnV<cBc6{}v+qp#|
zNowERWW26uo?ms{*62djq_qESIr+V3yUNyF$lH5wrr9rJPv+ev&3c(%CARIByRv!Z
zN9Rv35=^|(!&fF7O`KJ@=%&ocy{AIr^(Spw6lQi}_qM9JSI^D8At@WByes(3cipvT
z!;|;ExKn$j?zdH7h7EhAXZZT**Kd72vLNpJB-cP0tI%f)cg<aJ_4(En>D9i8<&v>h
zfgzDEL*}pO=ia>fY9hlDnV|X3>(mc!-L|dFZ{ka_n3f5bpQ&w|XXieD_3YWn%OuYy
zJk=}^GQa4o{`kuC6~);{LwjNrt{+HPR{m_?na4+^tUoz8b93Fw()2bjDO|cFc*!c;
zkS!`ki!Q#n?kcgIGkEKQ6~ANVonvV^;CX6pc53sAf+*Q_lM?PdFKW?wKI7#Sy=}?4
zXOCEQNG|8~7jpN#Ew<tF^#A8?zFHw)p6YzIvu@$^TT6d0*YC;bsBL^H<1oRL{Y$LV
zjJjV&0@vBO#6k>=quxZ_wwrUS%JxCXNzwJ!!+j+jT_iS$Uk^WWIqhnrQJS*v`mp>P
z<&_&%U8nIhy#MBM^liAO@ipH$hhBeee!F#YdB!4d|BLPuE*yC_`QPzFYnRP=R-F3T
zWBFnB-^P16wXN&x``neRe!gMM*uO#g$~Cp$4hzap9Q){ZCvxf{J!5Y1lHzB6341GQ
zvZK9DaRqPGmzo^?MsG&S+Prr6Pb)r#ygl>x<UIL`s<rd%|61M2xpcDW#5|9AE50Sn
zj$iX)(z1?+i<pgDLV5UjmMrBJ-yJm3_^RKn^^@m@o$;4Dl*?7POv_}~QLmp9x@L(L
z?cCvh@4d3p#e=I<F5WjzVD~RvI%DGZGlgH@tXO{c&V@ad2e!XE<8yXr!>dU-S)x8l
zcQaCa=9x`=eAMUqF5}0a@6=8?S2^)kijRuyJC|i=GqmRl+kSuZVrT8eVsn@0n^xQs
z4>fn0dG1hNN_*#<g}o~ero{Z(S#hV&%jihw1@`30?SboUYOcR_?3(^<;?{N#qlJ&8
zs-0Xzr@C$_D?a9`#dU&bwYuZ>NZaO@OR9xqdn>Ar@~()F@hbf?D=o}#<;KN_=WAa1
zn)Z8ANrZ;<nHeH$pWMCwY0>KFO>VaxdQxUhil{KYdvWsym)Iw{DSd1q4OdPZwrx_f
zI}!VdE#&4TkMvF3TECxG&A+=o^M*3_^F9x^<I^m9SAJi5$xo$qYTxIH?WNzWX58I)
z{Y1l|H|L8jiuO0({M1>x<;8)?;(V1?>!da9xSRe=)ATykz4-Z_T9d5z@6Y^;P*smH
zO6p3=PgrTV@5*hpGn~@CJLI&d>Xq@$^}BW<J?G#Z^I1ioe!5I^>U&%sGi6WJT;=+o
zKTgZ8pS<wgn$oaEt81s~o$argeA9fw-5~47#kU>_s~I2noT_<^Hz1=cZ=zVrX2Eq%
zEDlE7kL>t)^;K1Sa?UrQ!>m~bzl$8FhVO9Sc5a?Q&E9$a4pmxed&E_@Kl-$NYv<3{
zza<m5Io{cH?3|mPw6VDFmT8M(FD701xV&tC&h<Cf&%KxvG=;lc)Q{UTbDf(}@~PaZ
z@t11kB7V0rf4^Jre{ps4{*5pHt9h=BF#3J2fBDnxr*1Lxro7hL#`@fShl{nvv<C@u
zMCY?9O;b0PX#F_lP{%c?mn?HxjT#Rfe}7f2&$#gVED!hP%l)S`pPsyO#YB-X_xbk=
z87vmcSlez|DKGh@VdlBKk24;9(^gp1w2oi)kZ`3_->I~n=e$&ZIh(Clnk6I?`gPf}
z)Y#LnOUtL7X;9s=?+lxH?39$WU(YYkpQnCFId*RLF00a2U;Rbz=YKxla_Ih*KcTsW
zx~3xAF8r9b(y8nttMl~l?Pb5Om_9j|dPx8F+_py_g3tKy_CF5$;<)5q-h$nVv3G)=
z|1O-l^w)B+bgrW+n;hkIkCo~QpPEws;OoDYzZ(B7QJQ^w7T*G&vOU$)E}9qAXygTb
zXs%Y;?e+C?zrm8T4w_RxMZerJ`#@K%UdE|ocb~GT-}&Qn?|<vW?m6qLp3Tf@{@+u2
z>`(ElXZo*RhMB9_ygui!adznLS0A4Df0cUacH;VkR9n4W#d@Oq4>y(-=9tBPIdT2M
z-MR((qW%%z`rBuHTdTljA8WBJ_~bm7J%@hwcG|^1n>6`mN-o!InOQceuTr)f{p6l}
z-RJJvWxwunO|Z@R)ITHoW86x=`8I#GN`LW{{<`|=OZJtQ*H>L;&P)B3XX5vL_i4+^
zR~#+~uUa#U#q6Gu*qmiQm-~O6W~6Je_{oBmKD$F7`#fFMy*lrlP0Z7nuSHjno7$(V
z#^^rHk_<n%ylFE-y5qZ5Pu6tpRx31{xqEq$UGL|YbIw2bqi`<0sLtSdd%?QmI*sS;
zg>@Fsug;M__%r9+^8&l+pQX+{FO+*$WA}XP9Q_A-`aUaL#-I2ZI7j~M-s1&zI?s<6
z?(6tmb*}$;jp1|kf_*K!{hrilKIfgI|9H>D&uZspTjoEkv3#y=k^i(t^|^ZCzOK(#
z=WH*Od$@11W&ZO$&7b|w?Y4+N{Zn(!{8K+O=gdF%Q*zGyla=PrUt7F?SY!K~?Rnt2
z<T=MJ%`LZE+&@sM|D5yO`A2_p&P|^4z3|@o%C66h=k}kdob{RKdE_~E%ljvOs+}`0
z-q-rM*y6wbx${r|c+aVy`T4WO{Zkh9@*8*y7#}ztC_CWV(9JlVL65bDwLtPg(SdNr
zaE5g(F|0QjcSsfRK8QNtcR=qzX~TNPb?kQ-b_jkbJ>c6gn{his8^d;{Jmx!mJD3a9
zALt#p+fdDLKjBWT{=M&v@7Qe^Dkc=>nm>M{c;Ik@J3~K{9CMBE2a5-s2PQWxm(Z`3
z`oMGQyiwdYnS1vS{k~mc&!6$^4eOqL%oTzkgdU`t>}RSFeY$gw?xQ!R1{Jb5${F(+
z?y>A)t&sj;>%eEgv(SxUu|~c8`*I2W``w@T8SGQ`JUU+SpXGzxgXInL8SD6dus)bR
z<H`CD|4bj4Yy1~`|DAC^^B=hn><8o->zV#Yeh@zp&sfj=NA?5%0ei{swGH3*GyHe^
zX<t##@q^=O|HpqUA2c5rACO2`ed^}VhTH~j263is%z8{QJUdtlG#_X;oMxELypL;#
z)7QHvXXL9dX#Xi@bbtDc_kL4<o^wB{c*gudjkCtl8SA@$_NDC8`23csPV94Rd-$B6
zI?sL^eLkDK&$}_7U1i35xjlL;F$@;HKhuovKRmNt^u*qTJzYOHohjGdz}8V~?^40=
zVF8!)f!~P-7O%?J)3xvNXPC!g!&)Krf#(71RQCNR(=ME1s%HIQ^<Z~{OhU-lzYeK3
zKb)uTu4DeQebxKfJg>i7^L(g&Q19~Ie&xRX0%z4%y;t0_k=sP>4&M%r0#2E0OB>c_
z?CUmpcAK$+b;~Wk-t65B*BSS<eS7_JALDyz#`x<y-mC4&XS>5B!8GA<HNyvm1oH=q
z2a+3(o8GTHQ!ez`)=}BMbJlXk^BMa@KG#nCDVC^lWBWIaBeinQdl)9hvFuq=c>Q!k
zxWgZ<2c}o{Hh!O7QO|F{bA$2E?-!r>68IDJKipsZkH6x7;Nw^GP2T-8exTp5f6=@A
zTRf$0&wdA7UZ8aLyU9KO6|>&o=gFPVV0X1<er82~=DxLhTN<CSYyC*-&$==B)=$0r
z$6q`y|Jo&=yNStQncRzoH$%D>b#3>4uqtDNd|p+>rxhB7t`}!qe;%}F&5{;F`>Rtg
zEH?31mrI>Am-oTzl7)p+ij)?*@9dWoO?dU`XFyo&mloe!EHA<jXn*2w-1Uin(PUn|
zo2$A!Pc>?5iL5_m^5?ir*rH1d^`5;-{qlU#zbj!6j~;g2-^zQVrZq^rqkp@?^okq%
zXNYnu9RJ{0C;mC~g3L?b<Y(EZn;n0)#eE9dbame5)9LyXTuz_z2!48MhyBGRKSW;G
zJXsxZC8>1k<U@b!E^U3Z`Q_GATJzmCcTVyRn!*)2+ebI}g<)vmswtT(LY7U|JhR}E
zqt8rhVOC%38Je5<9ZxQO=~A=8{o~oBcEhF53YN)4ot?5wc}9?Bx2F5~G_SWZ%Y0_8
z)=2f@4QBd$;q=;8&bj`v*)uQga0q-gMR}%CsbcUl*`rgIx(9z2pCM%D=25B>+-Knz
zD5m)}q~0djFG6R>90#6h2C0`ieP-^NqRGn}vav_=v-HXfEK2>?)@a<jbV+QP%>Fr=
z#^D-XE4FM24Ghy#H%xu1wM=HuEY0>UiG6kTEt>9Y7tT{RR=sg<imR-T=6ez6(utkx
zQcq0^ZYX*ivdF4e^R$2ZsWrwkik{4Dax~A(lns9N)!^xkuRfM15>6!suIe#NO`Kyj
z^T3{2t;_vyADE*5B`DRYr%-HO-P@dHQ&d-O>i_k1@~2>psTs@_)3V}Iyu4>=R<(I-
zO5$YusB_sY=%`v%j@X@T2B{w{ul(LWqv+AjkpHU7uGG)eJU&-lBDYmDbV_!I+Np=P
zCAP*Z%o7i?y)0lbWmWfzn1!)DpL)Dqw39k7{Smc!7Srbb@~O|6->WyB7j1gtrFLw8
zSKKK+o7Z06>)Aej$^Njyp(5~AnU~NJ?bM^CA$%F}&O5(WMb<aJDN$Y}RwLV=oOejM
zWb=bM?yl1UKc>8jKFYBDVWoBOI|Y>$cRklnD4YJI*xYmZ9p?Fu!q0{5dAd*NsK!sW
zU$ee1QeASVJ?TxI%_9B>g7pIY+1uxwa;~sFbLW<F(gk-(-T%oxzgFgNT5v2Z)aG2%
zLF0K2X*HiF>qOMO3f6h?zGfC{t?c;?2{$#*Z(6YZuccVY)>`f-tM{L6dUxWpj)cWu
zR<Sh}Z>@DAc71ad(|K9d$!eQ@?Ppxt2c^8XqRT4e(x%>8{bI*I(;cVUAKJ#JbJfoX
z&AiXLc%J!;M|CrNFWpPwy0drL-lHPd4_g>ysBiQV58idt_RP^6Y|mQHzf#qIa=EDV
zbnE2rziM{wx?_}@{nQ%7`z^^eYuV4g?dAK=X5HI(FU>mZ8&AJPzVZ53saHQ1S!^uL
z-<-v2s!+Oe)&2O5|EhI9l`eZ=Ds$7}YThb6cDvIrwo3=TF3d_7zh1Ozu2=0^8DZYd
zJ-Z_p-t~Sv`P1IC{_HQcaf{^-9)BNee@1CK=bj^Le?Gq-J8`x3(r0t6Ccli<{%!KJ
zXsz|S>Wimbz1|nTezp5_*fh<(Utd2vb?8p1`{_d$UmwbzdaqzzXypEka9;tt%6Gpe
z1amBSu<Q_r^GR**YZ{7k1oCR<zvVg@Gi`l+d+YtwiMBm6FFZ<+kKR9h?e#VC8<s{r
zY4<rBd7SaL;OWTl%}oE2A6&ojV|UJ9{~2H9jO$LZd@@e^J4bSV!p?WMZ+c18z0ZBH
zC*<xg?`!O@ZqN9ty=~u-U#41<S3Oa9{pVVK*Q<M}A@V<UJEtli<+!)%t6lV~Q~j%>
z_9uJab$#*vW{|(&FZOLy#2415c<-$Y+5GRwv|lW@_7*+$TDsjdee1ga#+&~g>e+9k
z^}jc=KK+=z%g^~|el<w`U-U`m@%>L<<*Uw`*-csB|KxS@&tES4?50kcZ)mwNY?lAJ
z-C3zqFIk(W`))mU<B#T5uawoRyw*gmT$yG%@pI_(Bg(f!SeHf~V|8Ir-hZJkfBE)+
z;}uhVMU@jc*LH`zPP)3w<?Y^?PY+pNtTC46dLPtYrLTEtJ@dT)hy83{T9~SAFH|t@
zWz5*raF3&;i1Dvgz}|*?EL*lW+~Y9`cF1SE72(j{uugNqcBZ*O4*ASgjvtrkg;uZE
zIJSS$w|P-5am&7)(|6JjKfHalvt{<bfFFDXw<4~52{mO}KX0=iuTtQd*7r(w*J?WN
z_{Oa1724_UYH#9N)_eJ#Xx0zuSG9^cTOt|XEWNq+Im?8lPhPdX_6yJYcIC?1*U39?
z?hRjIyw|`ee&PM8S>64v*ESwVnLW$$%2luTQzz|N<WM*DR?xvJVN316wNsJ|7I{7S
zy~?$A{j3Y+?Jufr)hcb*tiGaL9Um_drTuE3bIJA&tBt$WT=JZGs_w57*uy3=;Y9JS
z_YG%TH?F@IZkzt>>SL`H&$A3O7G5{~{VnVC_agDCSYyYP*SVI?JIEBAlhyCMH>~qb
z$jyDTZo1CuJi_&5&w|bqrNS@wyL~w-dYzliHY;J(*#prD0m3^S=PEqxbvhK;Dp>2+
zZs62nn<V(xx9Q($)~b5Jzh{M2_oT*iwzsszYk5Qj={#I3th&dy=SG~w#w{5~ZmaiI
zv`Zv#bNg(5d0OVzoYLh|JH5YYT)4mY{4KYrh=jJgTkpKQ^>)_XM@bW_)%d>i8s7QX
z`cRAO@ZHsJ?<U(S$==xbedWZgY27hhIuGP#yqPjBU4r|ehsp-;h$qoEPHe8y-@dq8
z`+98ok>7iwA|sc7(>oE#eXV-U@2gAeUPg$!$OTM&+IaVm@4UxP`B&|KCjasLih{M@
z3*TRk6DhjKzehgkVeWnTn);6m3l{zl`#-l%WZt*>^Y&h?_kSP%BR*w8f%D1Fs``Ns
z?@ro3wZ@_Kw0FMl-pwMd>E88$zofNl!m504mZoahM0`uSxjN)W<jwTd+ou9|to$?a
z)A5xLZmrdNr9bnNtxD9?QwEpTcs<QMb!keF%&I@`&tGu`^ULw|avrr&5lN2i^U0Ub
zm6#s9Dx_`kjQdkp&u(q@uoPO~H9y11(UD0oZtmu3?s7q)TIEmHg!=8YPG4Jk>h^(8
z`(>6Gr>`wL6<ri|OY{86$ad?e_vWNpq_U{Lu6dSF&MbW@S^deH<hh$BZuTob)&6u%
z^W0B-Uw(M)YoE87ujtg~;%kY1H_t@Ap7ZIW<!f%gO4oBy&!!x<%-$Bfk2fa&Oz~d9
z8(S-NW^F!Ka4P-jni;`yvo|aGRmPp0^>oVGIaeP~+1`A4y6h7th4`Wgmy5!72jA;z
z)8*TwmA=*DY1^FAJ;8p@*KA%XV^MOSL8Q*b^s35cxv+Mn{uMcv+d3k?aUa>FpFZ#R
z*7hy#SJ^{lJVNHzvl)H(V1CkrB~)mhQu^DJiPL9rUlUZA^wZ^&g_+ytuN=}v8Vlb%
zo0k9J#^Qj(d(Tw)^x9}!vEJ32|DTm@<C^?cS5GmE=uXIDd%(6Lt)SrihOa+b+Kyk`
zP@eMTpHz`}vHR+&H7>h^KBkv*xWAlJ%6xhG)RRt6IG=d!DrA=NkiD2-e?RQ(hJ`D+
z-rl(6zv^}Vrp;j&l7pWgI&XEE!+tqmFHh_KrF^}9GcKK2VLN#O_vQJXm;Z0`O6F;u
zAKoeTZ@J}}G<Ux%4k4Z{-Wz_G8SD+>*nU_rkDW7Ic6!ppweJ!RU4F9W?Y0=}mY4@Y
zOB=m4+l1CAtFKxy+okmBro0<fUQ@SDzAHEXzs;3Jo7eU}V*I{-@vIrAcXhw**tvM!
zirYK7EAPf#|4_C5E1R)g)7ct#Suw9l!B-iTQK4;z^e0xy98GD<-D-0-X6Ma`i%%5#
z6c*3_Z@OmFzNyD!Hh)i0{LZ%QvB#9nhZbKmPWZ9LO7`dRHMWghu99~Rca)3hUMqgJ
zM83bbw?!;y-q%$Nq`3C0ZMk*!sAcMnUt+8FuWh^O^-k&D&K265T3G$u`)AF#eQS^M
zv(8<M<&rmFe_ZNpI^$S$kyQSZ@bA8*9-HdC&z@)MTYfSwF>7(9+q^?9X(u^-RX3Y@
ztUr6r*~egQjA!z@gA+FR^ehkD6=HJl_Ro*|+#lQ8=dJ0EsN3-T>Z8VG7aiV8yePKd
ze{R|D^Q7i^qlJHXqCx7Rgucyj0m`pe7O}<dNt#_g{UG1z8`n13DsM>-mpH#-r=Vxi
zgxzPJ|KDgGZm#}pmT>Xw=)H#h`?lH~OFzD+IBDNa!+O0xwVwndQZ`;t;$O2$O<VY8
z;tBWYAC{#C52lwsan3v1#y7{uqUh%C8*4Z5P1Cp>_2J;HTQ^e!^1i-~yz*5b_xB3!
zT6NF3!0=2@!|Qts_?GG&On9%+8)Y@W=cVk_Q_c@<w=6we%`Mgae2wQWgV!gv&(!{)
zChWYM+28Q!^|!KpyAs!yd^r(Wd@x~Y_~Mt$omFe@@|1n+k@`Ae+xBVKkL>s=8@lGw
z-`!bB_X2E#i!x$Pu_fDS-8ppQ*bMtF+Y6mNGy9$e{y%mh>&)@yxb>Y|x4v3D??kuO
z+mk|P(%sjXL<#AdmKo)*+@6wh{K34KAMO$xZ(N_Jz}jJR{K|puglGKMguU<X2rruX
z++e1=P0>U7)vm?cQ=Wg=y=ulk))$;V&#XG1{&8}WSmf-Z)sv0}oqXgJR(j_7ryrSy
z{fx7ZpI7NW|NiIazhD2fzK|?^f8dep-7PmJ`~Aq#5&ySz?}z<bWs#n%q&2xxjblCX
z=A{_zJXzWv)+WNtd4TKpuE$BY71v9Y-%V7~4E#O8^pS_hb;-{Mw?r-U)=-&r?a$ke
z?bnVKmP&7L*87wF#YgPgddHNQYhCZAuZY{Sw#GB``lb`7wQl=!)W^4cm=^w^L$gh}
zML+#{%-J%-uG_CxpJ1*%mA&dv&8dSXt5?q`UjF63+FSW=+HVX0i)Y?G|7yO%YsD!(
zF<MG)KdnC`RHeFYoZNomwU(^LY-M%Bmuz#_I+flJm92OGTe8?v{Gai(KfQ%^hNd$A
zR)1-IxW6|)N2YI2$5h_`b91yD)USWAU%@f^f@a&@H$rv%e);;GrT5p(3J9=J{<Qya
zfv?nthp`KLAGe4G?NeH^WWkmjoL=3U8oe!9nKSC2&HcgtIA!nQnf^cGot`*!toT27
z`M-W2BaI7e`*`%_t61J1){RfOR2g<>k;dJ)Ps(}~>%{b%pDeD-ToI*y-!JKH%JmyX
z2lobSnWOP~h4JD*jru8NPdrw%J^2|RD|)GBOaGh2PM`XhK4H}SnKALsk`o73pO8(|
zv{Ot!J$qGB_fF$KE2CH+3%hV-Zi$n4lJ`>A{p;_h_5HoQucnGCrb{e;_&+|lai+{F
z#m7}_ZPw}fS>Jfx^VBc%<4+dUYAbXQ{rF;`6jx)hdn!+*g36%>F{hd@C>jV~EKINP
zncLU;&Tj2(^Pc4L)0sW9LS(wbdtO}j3!Wl4vuw}Fck4No9-Q6!@%qibik_+;uiw}b
zsi1dDMLDTEpliGF{6}v^H1DkuEn;xBTqE*)&*P%fhihkTD4JQF&wXIW>YLj>{FK^x
z>H~9+Qt6L9bGBOU(Mi|kQ<k1}{i);s!<yoId8|(GHgkPeQoSRub@Ysi-ld9HwjE!D
zT%JG8^y+wK<M>Ev(%I%?X#zUZ{u|afY^b;p!PB(sBTFf3Q)Tlpn>F5BUw!*&KFR*$
zyQ6&5qFXl2?kY-*RCfAX&D@*x{MFQ?z*#Gwd07ADkWmo|+d27!-B&Ljhu?;;oMsfd
z#$Iwz|J%^BiEG!DaE`@|ZhZ>9XWI0ScrH_Wp{}kN{(sh8MMsXD8D=k{wI-gwbmx<f
zp-!0GYE_o5T@%9YpT82RoiR0SwFmF==bavMInypqJW<=@*=0H9k!(|`Oz_636Ixqr
zOo}8pIc4V*9X=-d<mNM>n~nl`%Y9wjS0&22=s8|toh2pOnW)N}cIJGq#7}8|le3ri
z*!}+<k?Zy2(CsaIU*8WqES`1x#<lHNXJqeqTD@x1-?<N0XrGBHTGgerHNNNDv_w%!
zwQbA%nlDXrs8ThvxO=Rme??&VRwpmXz>Ohy7r*j2z2cPFsrBN@C2CVT@5&wgxJju`
z?%_;U_x`gN-7Q-Zw%5KFjNaR9XeYHVX7)Sf$!tOv605lDLqpEY_YzGFDQq>9Z9Y4{
zt?Q1*l>2FC4zwIzvVKB@kM-6X_AJi@sdigK-rX*;&0HBa^|^7z{-9M~L$2s8h|;@K
zrFLN#(=E0y9@CG<7w-0AtnUB85pu1aV|D&=f5-N`*Tpk)B4QGy61#RE%1qG+6BgSS
z)O=|F`c)5CZ<$u^p<8?5a2(gA+X<(;6HlvcdV2Bj_RHTV7nHL`ne1|M-sXAg#MRz_
zJAFIf9;n^w#!_~nOur=a;PYe0_UNq_yW!=0>BIF5iwVxT#hhEe-S~Y`!S=$Ao@22S
z<;6ceKXhFve0oR1HlB60sR_SNJkXl<Fj4bx(bXT15`H$n;=jrM#@X$AeD%?M>AD44
zv;2Q9^s;CFDY&WIC{;1{$jT)T7g@8uIq=Z&u~*cx#a!A2d>0m*PT#-iY$U@aGv6aO
zrffFjTs&2MqHmIWpwEW9<hzU^Yj`%C=r`<ih?`h_R3^<SOf0H|$tC4|m&<c*lLt;#
zo__r26!|U}T{FDAw?uV&jG+0)km7l3B3E<F7mIY=&T#xfq^|O|yVhH{Gd?7K6n$Z4
zrnHaAmp{~NW>HxA*X7%Lc@~;&Xj%2EJKAn@^bx_gd0}@<(#(IRTs;x$VDM$*6W&>^
zbHhE{i$s;fy$<zC+_hY7njU+!Xa0&sS915b&tLK>H2AI7@5|2%mo#!M{FGY~U6i+E
zZdj6Fuc3d){M&znOP~6OroQ&SYOCz>!T8jtDEFTErx~{yJ{DIA+siHY(cn^QcHWM(
z^@6frvz!#y?i5_G-RRI!mcH<}(o+(XcPSr#bm)>lb5)aCx#b1B6Fl{{pX(k^zf##L
zJ?U<Hu4Q^Zhv*iQhqq0<go_{E-kQku;-U4HhYNGJL_M_LntSQM`$hTc{JsAzjDl-o
zE_E68I@;E3SDO@^vi@{?v%1nT8K;TMEo`0QvQ4}HbcFb2<|&$gI?)o6=H95LE-SLJ
zPwxure8HK#U46<^n7Vd<`(Qg^m&df%GvxlYiL|L{30<w;dg$rAGdcH{TyZLyne%+r
zMD>CnA~!$R&N?&CzvS@Lz0b9FY$|$qY8%^;^tW&O^bc!<I?eswUAN_?(|SYe>Bll(
zhew=|s{A2jn)mv;#=Mvi=lT7`*Cx7}F1?l?5EBvNJb!ZWwK<EV&i>Nvau>OJ;cd{l
zC?)=~oztRPUCu^^8!UXbD%j)1p{eH%&nmuJz96_W(qj4piB{3#k{Yg^Pd+F+oo-C-
ze7pG2)u{K6XZ-Tb&Deiynv+oEIjhpLC*`Zec4W$jPv*7{ESRqJ@b}(VDmDAVH6Nai
zte@~*_?Wz*d!gVTb<;mn%v8GSkA3j_`Os<SQ+<nFx$5`-<}~h|aXNls@BWoXrfibP
z+Pr@DKfiZT+-rir73WB=pLR&nZ_b^0+V{kxk3N6%Vfzxxw*7PSvqk3bEX;{M*Y|hg
zuX$eSp4aUkygfa&{?O;&Q}`cb#GcwOz|C|j$ah)e&%p0DjCkL#;yg9?vf1x_7Y-V6
zi-hx4A1yp&DpeY|$Vaf>Z0%LE)n0cj-@a$jTJqn|@sOb6yhSDxx-I+kb|00sc;oTp
zpt#YKdgBxFR{|#4T+eg6n>Vp3Qtg(tpw;wDi{`qSOYEa&DJorGBkHoxbW1vmw^*Hb
z?oabgOZO(Sb#8p9{c^>J^wKS}c(?v>PgRoa-kEm%&Xh}4Pd0LUzP)&2^1OxoHG$!x
z-`=j75&dMV+>@>IR=D$-XO`sXylNBa%~Pq7&zRyp{q5E5mkWP5n?8HTw}vNSy2Ae7
z9$W3gdi^uXx7a95&6z8?NdCu#^}!cbMlJN-ye`*cv(f~GQ;X*{A5<5wi|yXkcIdw9
z>i0sG+qP6siM9)kd|~h;<?j5I2ke3+Co&dltjy{#YHz(Gyhpr}@q1Oq96_n2rFS&)
zEf@DZIWDo${la(SLnmDR@q7L|{6v7`P=2;<ves(3+rIZ~=UiU$x?Xx+y-39AuwGut
z_p2MzCtj~xvF?w+#-5O{CGAHatH}JUu?<Pcy;E{;LT|x+l`F-+eSXdO|8mJ`mE9AQ
z()7j73QXcZoNcp|FZt{2J06|y5`L>JEk4oD&0ptt;?(m6{+YVZvweat@ONxEpfmA*
zXSb5B%_>V*Ar9u?!s820KKsfk?y)wdBEP4%vv!MHMZ@wIE9Lu%MroqI_q@xM`nlqS
znQvNDuwKgaj%tIqOuiSjrf{2j?cA0<h0|>J15P~$k?Y&vbN+XzPPh2uY;oDSb+Pmz
zP1QfjzW<ILIasfAr=GDsT-aWw@WOls+o+hFr>pNRK4bMKc;}y=x8^S_OJ@9Qc|p?o
zVf>93`i*K_YxiGzp|`u?f0VS-rtRSpz1jlHM9X^R_Q*=F$#z-u)WquFKR4;ZHSJ7$
zFV8i4wms#Tjm$q?i>Ga=C3y=Mr!?Eh1ZzoJILVc|&zY=OsrIYz#)=)!7Ae0z!L_SS
zZe#zRof|j4GL$%8l(eOUY4Ohahcm7unp{s?(tMt4m+Q_+>;7-+Ue9y*;rHC&Ta$(T
zj#xz1I2*P6my(=%F57z1oX3pW8Relq%bbn-CO+OHpSpQNP3MD{UwW&xmhSQRG}ZF^
z#X#}5r5`o3T3BwInz6ZVt$NU)pML4<Mb`)4W>ou~x$J6}7qQ-F(x>`#?_J^dq_%Jh
zx-aDyG}^V%<cY3=vRU@e9F5Jtm3sMh2l}5rI_p-^#A7b3d~3EnSh3Kb`<v}y4bGDD
zHzbO3t!A%Z;!|q8sO!SI>wF3hPOo2jdj~!$>0HJqzTB7Zor*8tyCpt+?^Hn8{ea;=
zPp#y8H+NbEN5;o({};42?{7H6bVfb)kcailwTzF(=c}FwH(a*!$$P8t)vKOqoxJ#-
zy-hj(>IsqCF|(enni6`~f78Ti>XOdFy}}=Nn1+|`%bYSxMrhB*C6lJ*eYoDUyfnk@
zyL<Jg#`c{5@f%+Lh`&(wPk-5^(u9xK<aWHAqI7ke!`2%i%Y&{O-8flwfAPX1mqp?i
zzAz=<zQ_6CiRGSsKG*E}Z#{R-?Z`SUzx1=u_s1)0=VWQJ%~_UsM>65xHmQHR#s0N#
z^SS$L+phEq7KzwT4Npq8dlz2~TJ?F(th>Q$Q@&q1_KCOO>D<G>*Id0Rrt2=am8Wbx
ztoAo6r$=J`!?w763N=Q1?il>sv9eO$+{UTaovZfb{J(d;rN5|AOV-=Yelt*8_W7=t
z^7Sk-t99(Bo_({oohN55*Jo?H@a^wXf2DpnopU#v<My%aoV&Bv{4##*yX~EB*x!{O
z#iGBnt^RkUqIqp~YiNDWo<rC6o?B&a6sIm`tEW-Ks44XM|8lW^44>V_eq?=Qy}o}-
z>Y5#VpVltVbAR&c(En?P{$DI8+qUk?s;Sdfn}o?`+-wvG{Oh@u`*y4>)5e24Z}0cM
z^Y=*1r*{Waltnz;3;8lbi(<XrCx5b9^gZrl*kSoh=hu5nuKqQu=`Ozgche3=`B$|q
zPmiz`zISeldVRN7`B3nUWBnUGJg#_~_OO4e%+u`HsP~IkDD0Sij`7&lD7k7M({-8&
z^{Ka?^miT3nO&H>ux|M_-#G8`_lJ1G-(9*;6T9$d_V3Jnag#6FywciNCUkuAJ?Sko
zzkHlmWq+hcTJXm9KaGD~*}kn;UeZ2gwoAqS$i@5~fj5@TKKJcf@&>WTUcc_T`h;?q
zrpK;4>l%CKXzaU|ABVQM-`5km`7prxo3v%IN?@MSy*8DZ|5mz-oU*C-9k)tKv`{Q<
z=RNCNpJI<)$Zsh!+>+pEc+aWd`iI(?Np|nnOqhP5|KdMm(;LqfRb1-S7Flq6r61E}
zVw}0OiO1S}&so=Q=VKcVZhQJp(N}7-)#mHnnp46r*{{_6GykSO>$m%J?Sgp$Fv^0}

literal 0
HcmV?d00001

diff --git a/wp-content/plugins/nextgen-gallery/admin/manage-galleries.php b/wp-content/plugins/nextgen-gallery/admin/manage-galleries.php
new file mode 100644
index 000000000..34d8f6b11
--- /dev/null
+++ b/wp-content/plugins/nextgen-gallery/admin/manage-galleries.php
@@ -0,0 +1,382 @@
+<?php  
+
+if(preg_match('#' . basename(__FILE__) . '#', $_SERVER['PHP_SELF'])) { 	die('You are not allowed to call this page directly.'); }
+
+// *** show main gallery list
+function nggallery_manage_gallery_main() {
+
+	global $ngg, $nggdb, $wp_query;
+	
+	//Build the pagination for more than 25 galleries
+	if ( ! isset( $_GET['paged'] ) || $_GET['paged'] < 1 )
+		$_GET['paged'] = 1;
+	
+	$start = ( $_GET['paged'] - 1 ) * 25;
+	$gallerylist = $nggdb->find_all_galleries('gid', 'asc', TRUE, 25, $start, false);
+
+	$page_links = paginate_links( array(
+		'base' => add_query_arg( 'paged', '%#%' ),
+		'format' => '',
+		'prev_text' => __('&laquo;'),
+		'next_text' => __('&raquo;'),
+		'total' => $nggdb->paged['max_objects_per_page'],
+		'current' => $_GET['paged']
+	));
+
+	?>
+	<script type="text/javascript"> 
+	<!--
+	function checkAll(form)
+	{
+		for (i = 0, n = form.elements.length; i < n; i++) {
+			if(form.elements[i].type == "checkbox") {
+				if(form.elements[i].name == "doaction[]") {
+					if(form.elements[i].checked == true)
+						form.elements[i].checked = false;
+					else
+						form.elements[i].checked = true;
+				}
+			}
+		}
+	}
+	
+	function getNumChecked(form)
+	{
+		var num = 0;
+		for (i = 0, n = form.elements.length; i < n; i++) {
+			if(form.elements[i].type == "checkbox") {
+				if(form.elements[i].name == "doaction[]")
+					if(form.elements[i].checked == true)
+						num++;
+			}
+		}
+		return num;
+	}
+
+	// this function check for a the number of selected images, sumbmit false when no one selected
+	function checkSelected() {
+	
+		var numchecked = getNumChecked(document.getElementById('editgalleries'));
+		 
+		if(numchecked < 1) { 
+			alert('<?php echo esc_js(__('No images selected', 'nggallery')); ?>');
+			return false; 
+		} 
+		
+		actionId = jQuery('#bulkaction').val();
+		
+		switch (actionId) {
+			case "resize_images":
+                showDialog('resize_images', '<?php echo esc_js(__('Resize images','nggallery')); ?>');
+				return false;
+				break;
+			case "new_thumbnail":
+				showDialog('new_thumbnail', '<?php echo esc_js(__('Create new thumbnails','nggallery')); ?>');
+				return false;
+				break;
+		}
+		
+		return confirm('<?php echo sprintf(esc_js(__("You are about to start the bulk edit for %s galleries \n \n 'Cancel' to stop, 'OK' to proceed.",'nggallery')), "' + numchecked + '") ; ?>');
+	}
+
+	function showDialog( windowId, title ) {
+		var form = document.getElementById('editgalleries');
+		var elementlist = "";
+		for (i = 0, n = form.elements.length; i < n; i++) {
+			if(form.elements[i].type == "checkbox") {
+				if(form.elements[i].name == "doaction[]")
+					if(form.elements[i].checked == true)
+						if (elementlist == "")
+							elementlist = form.elements[i].value
+						else
+							elementlist += "," + form.elements[i].value ;
+			}
+		}
+		jQuery("#" + windowId + "_bulkaction").val(jQuery("#bulkaction").val());
+		jQuery("#" + windowId + "_imagelist").val(elementlist);
+        // now show the dialog
+    	jQuery( "#" + windowId ).dialog({
+    		width: 640,
+            resizable : false,
+    		modal: true,
+            title: title      
+    	});
+        jQuery("#" + windowId + ' .dialog-cancel').click(function() { jQuery( "#" + windowId ).dialog("close"); });
+	}
+	
+	function showAddGallery() {
+    	jQuery( "#addGallery").dialog({
+    		width: 640,
+            resizable : false,
+    		modal: true,
+            title: '<?php echo esc_js(__('Add new gallery','nggallery')); ?>'          
+    	});	   
+        jQuery("#addGallery .dialog-cancel").click(function() { jQuery( "#addGallery" ).dialog("close"); });
+	}
+	//-->
+	</script>
+	<div class="wrap">
+        <?php screen_icon( 'nextgen-gallery' ); ?>
+		<h2><?php echo _n( 'Gallery', 'Galleries', 2, 'nggallery'); ?></h2>
+		<form class="search-form" action="" method="get">
+		<p class="search-box">
+			<label class="hidden" for="media-search-input"><?php _e( 'Search Images', 'nggallery' ); ?>:</label>
+			<input type="hidden" id="page-name" name="page" value="nggallery-manage-gallery" />
+			<input type="text" id="media-search-input" name="s" value="<?php the_search_query(); ?>" />
+			<input type="submit" value="<?php _e( 'Search Images', 'nggallery' ); ?>" class="button" />
+		</p>
+		</form>
+		<form id="editgalleries" class="nggform" method="POST" action="<?php echo $ngg->manage_page->base_page . '&amp;paged=' . $_GET['paged']; ?>" accept-charset="utf-8">
+		<?php wp_nonce_field('ngg_bulkgallery') ?>
+		<input type="hidden" name="page" value="manage-galleries" />
+		
+		<div class="tablenav">
+			
+			<div class="alignleft actions">
+				<?php if ( function_exists('json_encode') ) : ?>
+				<select name="bulkaction" id="bulkaction">
+					<option value="no_action" ><?php _e("Bulk actions",'nggallery'); ?></option>
+					<option value="delete_gallery" ><?php _e("Delete",'nggallery'); ?></option>
+                    <option value="set_watermark" ><?php _e("Set watermark",'nggallery'); ?></option>
+					<option value="new_thumbnail" ><?php _e("Create new thumbnails",'nggallery'); ?></option>
+					<option value="resize_images" ><?php _e("Resize images",'nggallery'); ?></option>
+					<option value="import_meta" ><?php _e("Import metadata",'nggallery'); ?></option>
+					<option value="recover_images" ><?php _e("Recover from backup",'nggallery'); ?></option>
+				</select>
+				<input name="showThickbox" class="button-secondary" type="submit" value="<?php _e('Apply','nggallery'); ?>" onclick="if ( !checkSelected() ) return false;" />
+				<?php endif; ?>
+				<?php if ( current_user_can('NextGEN Upload images') && nggGallery::current_user_can( 'NextGEN Add new gallery' ) ) : ?>
+					<input name="doaction" class="button-secondary action" type="submit" onclick="showAddGallery(); return false;" value="<?php _e('Add new gallery', 'nggallery') ?>"/>
+				<?php endif; ?>
+			</div>
+			
+		<?php if ( $page_links ) : ?>
+			<div class="tablenav-pages"><?php $page_links_text = sprintf( '<span class="displaying-num">' . __( 'Displaying %s&#8211;%s of %s' ) . '</span>%s',
+				number_format_i18n( ( $_GET['paged'] - 1 ) * $nggdb->paged['objects_per_page'] + 1 ),
+				number_format_i18n( min( $_GET['paged'] * $nggdb->paged['objects_per_page'], $nggdb->paged['total_objects'] ) ),
+				number_format_i18n( $nggdb->paged['total_objects'] ),
+				$page_links
+			); echo $page_links_text; ?></div>
+		<?php endif; ?>
+		
+		</div>
+		<table class="widefat" cellspacing="0">
+			<thead>
+			<tr>
+<?php print_column_headers('nggallery-manage-galleries'); ?>
+			</tr>
+			</thead>
+			<tfoot>
+			<tr>
+<?php print_column_headers('nggallery-manage-galleries', false); ?>
+			</tr>
+			</tfoot>            
+			<tbody>
+<?php
+
+if($gallerylist) {
+    //get the columns
+	$gallery_columns = ngg_manage_gallery_columns();
+	$hidden_columns  = get_hidden_columns('nggallery-manage-images');
+	$num_columns     = count($gallery_columns) - count($hidden_columns);
+    
+	foreach($gallerylist as $gallery) {
+		$alternate = ( !isset($alternate) || $alternate == 'class="alternate"' ) ? '' : 'class="alternate"';
+		$gid = $gallery->gid;
+		$name = (empty($gallery->title) ) ? $gallery->name : $gallery->title;
+		$author_user = get_userdata( (int) $gallery->author );
+		?>
+		<tr id="gallery-<?php echo $gid ?>" <?php echo $alternate; ?> >
+		<?php 
+		foreach($gallery_columns as $gallery_column_key => $column_display_name) {
+			$class = "class=\"$gallery_column_key column-$gallery_column_key\"";
+	
+			$style = '';
+			if ( in_array($gallery_column_key, $hidden_columns) )
+				$style = ' style="display:none;"';
+	
+			$attributes = "$class$style";
+			
+			switch ($gallery_column_key) {
+				case 'cb' :
+					?>
+        			<th scope="row" class="cb column-cb">
+        				<?php if (nggAdmin::can_manage_this_gallery($gallery->author)) { ?>
+        					<input name="doaction[]" type="checkbox" value="<?php echo $gid ?>" />
+        				<?php } ?>
+        			</th>
+        			<?php 
+    			break;
+    			case 'id' :
+    			    ?>
+					<td <?php echo $attributes ?> scope="row"><?php echo $gid; ?></td>
+					<?php 
+    			break;
+    			case 'title' :
+    			    ?>
+        			<td>
+        				<?php if (nggAdmin::can_manage_this_gallery($gallery->author)) { ?>
+        					<a href="<?php echo wp_nonce_url( $ngg->manage_page->base_page . '&amp;mode=edit&amp;gid=' . $gid, 'ngg_editgallery')?>" class='edit' title="<?php _e('Edit'); ?>" >
+        						<?php echo nggGallery::i18n($name); ?>
+        					</a>
+        				<?php } else { ?>
+        					<?php echo nggGallery::i18n($gallery->title); ?>
+        				<?php } ?>
+        			</td>
+        			<?php 
+    			break;
+    			case 'description' :
+    			    ?>
+					<td <?php echo $attributes ?>><?php echo nggGallery::i18n($gallery->galdesc); ?>&nbsp;</td>
+					<?php 
+    			break;
+    			case 'author' :
+    			    ?>
+					<td <?php echo $attributes ?>><?php echo $author_user->display_name; ?></td>
+					<?php 
+    			break;
+    			case 'page_id' :
+    			    ?>
+        			<td <?php echo $attributes ?>><?php echo $gallery->pageid; ?></td>
+        			<?php 
+    			break;
+    			case 'quantity' :
+    			    ?>
+        			<td <?php echo $attributes ?>><?php echo $gallery->counter; ?></td>
+        			<?php 
+    			break;
+    			default : 
+					?>
+					<td <?php echo $attributes ?>><?php do_action('ngg_manage_gallery_custom_column', $gallery_column_key, $gid); ?></td>
+					<?php
+				break;
+				}
+	        } ?>
+		</tr>
+		<?php
+	}
+} else {
+	echo '<tr><td colspan="7" align="center"><strong>' . __('No entries found', 'nggallery') . '</strong></td></tr>';
+}
+?>			
+			</tbody>
+		</table>
+        <div class="tablenav">
+		<?php if ( $page_links ) : ?>
+			<div class="tablenav-pages"><?php $page_links_text = sprintf( '<span class="displaying-num">' . __( 'Displaying %s&#8211;%s of %s' ) . '</span>%s',
+				number_format_i18n( ( $_GET['paged'] - 1 ) * $nggdb->paged['objects_per_page'] + 1 ),
+				number_format_i18n( min( $_GET['paged'] * $nggdb->paged['objects_per_page'], $nggdb->paged['total_objects'] ) ),
+				number_format_i18n( $nggdb->paged['total_objects'] ),
+				$page_links
+			); echo $page_links_text; ?></div>
+		<?php endif; ?>
+        </div>
+		</form>
+	</div>
+	<!-- #addGallery -->
+	<div id="addGallery" style="display: none;" >
+		<form id="form-tags" method="POST" accept-charset="utf-8">
+		<?php wp_nonce_field('ngg_addgallery'); ?>
+		<input type="hidden" name="page" value="manage-galleries" />
+		<table width="100%" border="0" cellspacing="3" cellpadding="3" >
+		  	<tr>
+		    	<td>
+					<strong><?php _e('New Gallery', 'nggallery') ;?>:</strong> <input type="text" size="35" name="galleryname" value="" /><br />
+					<?php if(!is_multisite()) { ?>
+					<?php _e('Create a new , empty gallery below the folder', 'nggallery') ;?>  <strong><?php echo $ngg->options['gallerypath']; ?></strong><br />
+					<?php } ?>
+					<i>( <?php _e('Allowed characters for file and folder names are', 'nggallery') ;?>: a-z, A-Z, 0-9, -, _ )</i>
+				</td>
+		  	</tr>
+		  	<tr align="right">
+		    	<td class="submit">
+		    		<input class="button-primary" type="submit" name="addgallery" value="<?php _e('OK','nggallery'); ?>" />
+		    		&nbsp;
+		    		<input class="button-secondary dialog-cancel" type="reset" value="&nbsp;<?php _e('Cancel', 'nggallery'); ?>&nbsp;" />
+		    	</td>
+			</tr>
+		</table>
+		</form>
+	</div>
+	<!-- /#addGallery -->
+
+	<!-- #resize_images -->
+	<div id="resize_images" style="display: none;" >
+		<form id="form-resize-images" method="POST" accept-charset="utf-8">
+		<?php wp_nonce_field('ngg_thickbox_form') ?>
+		<input type="hidden" id="resize_images_imagelist" name="TB_imagelist" value="" />
+		<input type="hidden" id="resize_images_bulkaction" name="TB_bulkaction" value="" />
+		<input type="hidden" name="page" value="manage-galleries" />
+		<table width="100%" border="0" cellspacing="3" cellpadding="3" >
+			<tr valign="top">
+				<td>
+					<strong><?php _e('Resize Images to', 'nggallery'); ?>:</strong> 
+				</td>
+				<td>
+					<input type="text" size="5" name="imgWidth" value="<?php echo $ngg->options['imgWidth']; ?>" /> x <input type="text" size="5" name="imgHeight" value="<?php echo $ngg->options['imgHeight']; ?>" />
+					<br /><small><?php _e('Width x height (in pixel). NextGEN Gallery will keep ratio size','nggallery') ?></small>
+				</td>
+			</tr>
+		  	<tr align="right">
+		    	<td colspan="2" class="submit">
+		    		<input class="button-primary" type="submit" name="TB_ResizeImages" value="<?php _e('OK', 'nggallery'); ?>" />
+		    		&nbsp;
+		    		<input class="button-secondary dialog-cancel" type="reset" value="&nbsp;<?php _e('Cancel', 'nggallery'); ?>&nbsp;" />
+		    	</td>
+			</tr>
+		</table>
+		</form>
+	</div>
+	<!-- /#resize_images -->
+
+	<!-- #new_thumbnail -->
+	<div id="new_thumbnail" style="display: none;" >
+		<form id="form-new-thumbnail" method="POST" accept-charset="utf-8">
+		<?php wp_nonce_field('ngg_thickbox_form') ?>
+		<input type="hidden" id="new_thumbnail_imagelist" name="TB_imagelist" value="" />
+		<input type="hidden" id="new_thumbnail_bulkaction" name="TB_bulkaction" value="" />
+		<input type="hidden" name="page" value="manage-galleries" />
+		<table width="100%" border="0" cellspacing="3" cellpadding="3" >
+			<tr valign="top">
+				<th align="left"><?php _e('Width x height (in pixel)','nggallery') ?></th>
+				<td><input type="text" size="5" maxlength="5" name="thumbwidth" value="<?php echo $ngg->options['thumbwidth']; ?>" /> x <input type="text" size="5" maxlength="5" name="thumbheight" value="<?php echo $ngg->options['thumbheight']; ?>" />
+				<br /><small><?php _e('These values are maximum values ','nggallery') ?></small></td>
+			</tr>
+			<tr valign="top">
+				<th align="left"><?php _e('Set fix dimension','nggallery') ?></th>
+				<td><input type="checkbox" name="thumbfix" value="1" <?php checked('1', $ngg->options['thumbfix']); ?> />
+				<br /><small><?php _e('Ignore the aspect ratio, no portrait thumbnails','nggallery') ?></small></td>
+			</tr>
+		  	<tr align="right">
+		    	<td colspan="2" class="submit">
+		    		<input class="button-primary" type="submit" name="TB_NewThumbnail" value="<?php _e('OK', 'nggallery');?>" />
+		    		&nbsp;
+		    		<input class="button-secondary dialog-cancel" type="reset" value="&nbsp;<?php _e('Cancel', 'nggallery'); ?>&nbsp;" />
+		    	</td>
+			</tr>
+		</table>
+		</form>
+	</div>
+	<!-- /#new_thumbnail -->	
+
+<?php
+} 
+
+// define the columns to display, the syntax is 'internal name' => 'display name'
+function ngg_manage_gallery_columns() {
+	
+	$gallery_columns = array();
+	
+	$gallery_columns['cb'] = '<input name="checkall" type="checkbox" onclick="checkAll(document.getElementById(\'editgalleries\'));" />';
+	$gallery_columns['id'] = __('ID');
+	$gallery_columns['title'] = _n( 'Gallery', 'Galleries', 1, 'nggallery');
+	$gallery_columns['description'] = __('Description', 'nggallery');
+	$gallery_columns['author'] = __('Author', 'nggallery');
+	$gallery_columns['page_id'] = __('Page ID', 'nggallery');
+	$gallery_columns['quantity'] = _n( 'Image', 'Images', 2, 'nggallery' );
+
+	$gallery_columns = apply_filters('ngg_manage_gallery_columns', $gallery_columns);
+
+	return $gallery_columns;
+}
+?>
\ No newline at end of file
diff --git a/wp-content/plugins/nextgen-gallery/admin/manage-images.php b/wp-content/plugins/nextgen-gallery/admin/manage-images.php
new file mode 100644
index 000000000..c6601e3f6
--- /dev/null
+++ b/wp-content/plugins/nextgen-gallery/admin/manage-images.php
@@ -0,0 +1,673 @@
+<?php  
+
+if(preg_match('#' . basename(__FILE__) . '#', $_SERVER['PHP_SELF'])) {	die('You are not allowed to call this page directly.');}
+
+function nggallery_picturelist() {
+// *** show picture list
+	global $wpdb, $nggdb, $user_ID, $ngg;
+	
+	// Look if its a search result
+	$is_search = isset ($_GET['s']) ? true : false;
+	$counter	= 0;	
+	
+    if ($is_search) {
+
+		// fetch the imagelist 
+		$picturelist = $ngg->manage_page->search_result;
+		
+		// we didn't set a gallery or a pagination
+		$act_gid     = 0;
+		$_GET['paged'] = 1;
+		$page_links = false;
+		
+	} else {
+	
+		// GET variables
+		$act_gid    = $ngg->manage_page->gid;
+		
+		// Load the gallery metadata
+		$gallery = $nggdb->find_gallery($act_gid);
+	
+		if (!$gallery) {
+			nggGallery::show_error(__('Gallery not found.', 'nggallery'));
+			return;
+		}
+		
+		// Check if you have the correct capability
+		if (!nggAdmin::can_manage_this_gallery($gallery->author)) {
+			nggGallery::show_error(__('Sorry, you have no access here', 'nggallery'));
+			return;
+		}	
+		
+		// look for pagination	
+		if ( ! isset( $_GET['paged'] ) || $_GET['paged'] < 1 )
+			$_GET['paged'] = 1;
+		
+		$start = ( $_GET['paged'] - 1 ) * 50;
+		
+		// get picture values
+		$picturelist = $nggdb->get_gallery($act_gid, $ngg->options['galSort'], $ngg->options['galSortDir'], false, 50, $start );
+		
+		// build pagination
+		$page_links = paginate_links( array(
+			'base' => add_query_arg( 'paged', '%#%' ),
+			'format' => '',
+			'prev_text' => __('&laquo;'),
+			'next_text' => __('&raquo;'),
+			'total' => $nggdb->paged['max_objects_per_page'],
+			'current' => $_GET['paged']
+		));
+		
+		// get the current author
+		$act_author_user    = get_userdata( (int) $gallery->author );
+
+	}	
+		
+		// list all galleries
+		$gallerylist = $nggdb->find_all_galleries();
+
+		//get the columns
+		$image_columns = ngg_manage_image_columns();
+		$hidden_columns  = get_hidden_columns('nggallery-manage-images');
+		$num_columns     = count($image_columns) - count($hidden_columns);
+		
+		$attr = (nggGallery::current_user_can( 'NextGEN Edit gallery options' )) ? '' : 'disabled="disabled"';
+
+?>
+<script type="text/javascript"> 
+<!--
+function showDialog( windowId, title ) {
+	var form = document.getElementById('updategallery');
+	var elementlist = "";
+	for (i = 0, n = form.elements.length; i < n; i++) {
+		if(form.elements[i].type == "checkbox") {
+			if(form.elements[i].name == "doaction[]")
+				if(form.elements[i].checked == true)
+					if (elementlist == "")
+						elementlist = form.elements[i].value
+					else
+						elementlist += "," + form.elements[i].value ;
+		}
+	}
+	jQuery("#" + windowId + "_bulkaction").val(jQuery("#bulkaction").val());
+	jQuery("#" + windowId + "_imagelist").val(elementlist);
+    // now show the dialog
+	jQuery( "#" + windowId ).dialog({
+		width: 640,
+        resizable : false,
+		modal: true,
+        title: title        
+	});
+    jQuery("#" + windowId + ' .dialog-cancel').click(function() { jQuery( "#" + windowId ).dialog("close"); });
+}
+
+jQuery(function (){
+    // load a content via ajax
+    jQuery('a.ngg-dialog').click(function() {
+        if ( jQuery( "#spinner" ).length == 0)
+            jQuery("body").append('<div id="spinner"></div>');
+        var $this = jQuery(this);
+        var results = new RegExp('[\\?&]w=([^&#]*)').exec(this.href);
+	    var width  = ( results ) ? results[1] : 600;
+        var results = new RegExp('[\\?&]h=([^&#]*)').exec(this.href);
+	    var height = ( results ) ? results[1] : 440;
+        jQuery('#spinner').fadeIn();
+        var dialog = jQuery('<div style="display:hidden"></div>').appendTo('body');
+        // load the remote content
+        dialog.load(
+            this.href, 
+            {},
+            function () {
+                jQuery('#spinner').hide();
+                dialog.dialog({
+                    title: ($this.attr('title')) ? $this.attr('title') : '',
+                    width: width,
+                    height: height,
+                    modal: true,
+                    resizable: false,
+                    close: function() { dialog.remove(); }
+                }).width(width - 30).height(height - 30);
+            }
+        );
+        //prevent the browser to follow the link
+        return false;
+    });
+});
+
+function checkAll(form)
+{
+	for (i = 0, n = form.elements.length; i < n; i++) {
+		if(form.elements[i].type == "checkbox") {
+			if(form.elements[i].name == "doaction[]") {
+				if(form.elements[i].checked == true)
+					form.elements[i].checked = false;
+				else
+					form.elements[i].checked = true;
+			}
+		}
+	}
+}
+
+function getNumChecked(form)
+{
+	var num = 0;
+	for (i = 0, n = form.elements.length; i < n; i++) {
+		if(form.elements[i].type == "checkbox") {
+			if(form.elements[i].name == "doaction[]")
+				if(form.elements[i].checked == true)
+					num++;
+		}
+	}
+	return num;
+}
+
+// this function check for a the number of selected images, sumbmit false when no one selected
+function checkSelected() {
+
+	var numchecked = getNumChecked(document.getElementById('updategallery'));
+	 
+	if(numchecked < 1) { 
+		alert('<?php echo esc_js(__('No images selected', 'nggallery')); ?>');
+		return false; 
+	} 
+	
+	actionId = jQuery('#bulkaction').val();
+	
+	switch (actionId) {
+		case "copy_to":
+			showDialog('selectgallery', '<?php echo esc_js(__('Copy image to...','nggallery')); ?>');
+			return false;
+			break;
+		case "move_to":
+			showDialog('selectgallery', '<?php echo esc_js(__('Move image to...','nggallery')); ?>');
+			return false;
+			break;
+		case "add_tags":
+			showDialog('entertags', '<?php echo esc_js(__('Add new tags','nggallery')); ?>');
+			return false;
+			break;
+		case "delete_tags":
+			showDialog('entertags', '<?php echo esc_js(__('Delete tags','nggallery')); ?>');
+			return false;
+			break;
+		case "overwrite_tags":
+			showDialog('entertags', '<?php echo esc_js(__('Overwrite','nggallery')); ?>');
+			return false;
+			break;
+		case "resize_images":
+			showDialog('resize_images', '<?php echo esc_js(__('Resize images','nggallery')); ?>');
+			return false;
+			break;
+		case "new_thumbnail":
+			showDialog('new_thumbnail', '<?php echo esc_js(__('Create new thumbnails','nggallery')); ?>');
+			return false;
+			break;			
+	}
+	
+	return confirm('<?php echo sprintf(esc_js(__("You are about to start the bulk edit for %s images \n \n 'Cancel' to stop, 'OK' to proceed.",'nggallery')), "' + numchecked + '") ; ?>');
+}
+
+jQuery(document).ready( function() {
+	// close postboxes that should be closed
+	jQuery('.if-js-closed').removeClass('if-js-closed').addClass('closed');
+	postboxes.add_postbox_toggles('ngg-manage-gallery');
+
+});
+
+//-->
+</script>
+<div class="wrap">
+<?php screen_icon( 'nextgen-gallery' ); ?>
+<?php if ($is_search) :?>
+<h2><?php printf( __('Search results for &#8220;%s&#8221;', 'nggallery'), esc_html( get_search_query() ) ); ?></h2>
+<form class="search-form" action="" method="get">
+<p class="search-box">
+	<label class="hidden" for="media-search-input"><?php _e( 'Search Images', 'nggallery' ); ?>:</label>
+	<input type="hidden" id="page-name" name="page" value="nggallery-manage-gallery" />
+	<input type="text" id="media-search-input" name="s" value="<?php the_search_query(); ?>" />
+	<input type="submit" value="<?php _e( 'Search Images', 'nggallery' ); ?>" class="button" />
+</p>
+</form>
+
+<br style="clear: both;" />
+
+<form id="updategallery" class="nggform" method="POST" action="<?php echo $ngg->manage_page->base_page . '&amp;mode=edit&amp;s=' . $_GET['s']; ?>" accept-charset="utf-8">
+<?php wp_nonce_field('ngg_updategallery') ?>
+<input type="hidden" name="page" value="manage-images" />
+
+<?php else :?>
+<h2><?php echo _n( 'Gallery', 'Galleries', 1, 'nggallery' ); ?> : <?php echo nggGallery::i18n($gallery->title); ?></h2>
+
+<br style="clear: both;" />
+
+<form id="updategallery" class="nggform" method="POST" action="<?php echo $ngg->manage_page->base_page . '&amp;mode=edit&amp;gid=' . $act_gid . '&amp;paged=' . $_GET['paged']; ?>" accept-charset="utf-8">
+<?php wp_nonce_field('ngg_updategallery') ?>
+<input type="hidden" name="page" value="manage-images" />
+
+<?php if ( nggGallery::current_user_can( 'NextGEN Edit gallery options' )) : ?>
+<div id="poststuff">
+	<?php wp_nonce_field( 'closedpostboxes', 'closedpostboxesnonce', false ); ?>
+	<div id="gallerydiv" class="postbox <?php echo postbox_classes('gallerydiv', 'ngg-manage-gallery'); ?>" >
+		<h3><?php _e('Gallery settings', 'nggallery') ?><small> (<?php _e('Click here for more settings', 'nggallery') ?>)</small></h3>
+		<div class="inside">
+			<table class="form-table" >
+				<tr>
+					<th align="left"><?php _e('Title') ?>:</th>
+					<th align="left"><input <?php nggGallery::current_user_can_form( 'NextGEN Edit gallery title' ); ?> type="text" size="50" name="title" value="<?php echo $gallery->title; ?>"  /></th>
+					<th align="right"><?php _e('Page Link to', 'nggallery') ?>:</th>
+					<th align="left">
+					<select <?php nggGallery::current_user_can_form( 'NextGEN Edit gallery page id' ); ?>  name="pageid" style="width:95%">
+						<option value="0" ><?php _e('Not linked', 'nggallery') ?></option>
+						<?php parent_dropdown($gallery->pageid); ?>
+					</select>
+					</th>
+				</tr>
+				<tr>
+					<th align="left"><?php _e('Description') ?>:</th> 
+					<th align="left"><textarea  <?php nggGallery::current_user_can_form( 'NextGEN Edit gallery description' ); ?> name="gallerydesc" cols="30" rows="3" style="width: 95%" ><?php echo $gallery->galdesc; ?></textarea></th>
+					<th align="right"><?php _e('Preview image', 'nggallery') ?>:</th>
+					<th align="left">
+						<select <?php nggGallery::current_user_can_form( 'NextGEN Edit gallery preview pic' ); ?> name="previewpic" style="width:95%" >
+							<option value="0" ><?php _e('No Picture', 'nggallery') ?></option>
+							<?php
+								if(is_array($picturelist)) {
+									foreach($picturelist as $picture) {
+                                        if ($picture->exclude) continue;									   
+										$selected = ($picture->pid == $gallery->previewpic) ? 'selected="selected" ' : '';
+										echo '<option value="'.$picture->pid.'" '.$selected.'>'.$picture->pid.' - '.$picture->filename.'</option>'."\n";
+									}
+								}
+							?>
+						</select>
+					</th>
+				</tr>
+				<tr>
+					<th align="left"><?php _e('Path', 'nggallery') ?>:</th> 
+					<th align="left"><input <?php if ( is_multisite() ) echo 'readonly = "readonly"'; ?> <?php nggGallery::current_user_can_form( 'NextGEN Edit gallery path' ); ?> type="text" size="50" name="path" value="<?php echo $gallery->path; ?>"  /></th>
+					<th align="right"><?php _e('Author', 'nggallery'); ?>:</th>
+					<th align="left"> 
+					<?php
+						$editable_ids = $ngg->manage_page->get_editable_user_ids( $user_ID );
+						if ( $editable_ids && count( $editable_ids ) > 1 && nggGallery::current_user_can( 'NextGEN Edit gallery author')  )
+							wp_dropdown_users( array('include' => $editable_ids, 'name' => 'author', 'selected' => empty( $gallery->author ) ? 0 : $gallery->author ) ); 
+						else
+							echo $act_author_user->display_name;
+					?>
+					</th>
+				</tr>
+				<?php if(current_user_can( 'publish_pages' )) : ?>
+				<tr>
+					<th align="left">&nbsp;</th>
+					<th align="left">&nbsp;</th>				
+					<th align="right"><?php _e('Create new page', 'nggallery') ?>:</th>
+					<th align="left"> 
+					<select name="parent_id" style="width:95%">
+						<option value="0"><?php _e ('Main page (No parent)', 'nggallery'); ?></option>
+						<?php parent_dropdown (); ?>
+					</select>
+					<input class="button-secondary action" type="submit" name="addnewpage" value="<?php _e ('Add page', 'nggallery'); ?>" id="group"/>
+					</th>
+				</tr>
+				<?php endif; ?>
+                <?php do_action('ngg_manage_gallery_settings', $act_gid); ?>               
+                
+			</table>
+
+			<div class="submit">
+				<input type="submit" class="button-secondary" name="scanfolder" value="<?php _e("Scan Folder for new images",'nggallery'); ?> " />
+				<input type="submit" class="button-primary action" name="updatepictures" value="<?php _e("Save Changes",'nggallery'); ?>" />
+			</div>
+
+		</div>
+	</div>
+</div> <!-- poststuff -->
+<?php endif; ?>
+
+<?php endif; ?>
+
+<div class="tablenav ngg-tablenav">
+	<?php if ( $page_links ) : ?>
+	<div class="tablenav-pages"><?php $page_links_text = sprintf( '<span class="displaying-num">' . __( 'Displaying %s&#8211;%s of %s' ) . '</span>%s',
+		number_format_i18n( ( $_GET['paged'] - 1 ) * $nggdb->paged['objects_per_page'] + 1 ),
+		number_format_i18n( min( $_GET['paged'] * $nggdb->paged['objects_per_page'], $nggdb->paged['total_objects'] ) ),
+		number_format_i18n( $nggdb->paged['total_objects'] ),
+		$page_links
+	); echo $page_links_text; ?></div>
+	<?php endif; ?>
+	<div class="alignleft actions">
+	<select id="bulkaction" name="bulkaction">
+		<option value="no_action" ><?php _e("Bulk actions",'nggallery'); ?></option>
+		<option value="set_watermark" ><?php _e("Set watermark",'nggallery'); ?></option>
+		<option value="new_thumbnail" ><?php _e("Create new thumbnails",'nggallery'); ?></option>
+		<option value="resize_images" ><?php _e("Resize images",'nggallery'); ?></option>
+		<option value="recover_images" ><?php _e("Recover from backup",'nggallery'); ?></option>
+		<option value="delete_images" ><?php _e("Delete images",'nggallery'); ?></option>
+		<option value="import_meta" ><?php _e("Import metadata",'nggallery'); ?></option>
+		<option value="rotate_cw" ><?php _e("Rotate images clockwise",'nggallery'); ?></option>
+		<option value="rotate_ccw" ><?php _e("Rotate images counter-clockwise",'nggallery'); ?></option>
+		<option value="copy_to" ><?php _e("Copy to...",'nggallery'); ?></option>
+		<option value="move_to"><?php _e("Move to...",'nggallery'); ?></option>
+		<option value="add_tags" ><?php _e("Add tags",'nggallery'); ?></option>
+		<option value="delete_tags" ><?php _e("Delete tags",'nggallery'); ?></option>
+		<option value="overwrite_tags" ><?php _e("Overwrite tags",'nggallery'); ?></option>
+	</select>
+	<input class="button-secondary" type="submit" name="showThickbox" value="<?php _e('Apply', 'nggallery'); ?>" onclick="if ( !checkSelected() ) return false;" />
+	
+	<?php if (($ngg->options['galSort'] == "sortorder") && (!$is_search) ) { ?>
+		<input class="button-secondary" type="submit" name="sortGallery" value="<?php _e('Sort gallery', 'nggallery');?>" />
+	<?php } ?>
+	
+	<input type="submit" name="updatepictures" class="button-primary action"  value="<?php _e('Save Changes', 'nggallery');?>" />
+	</div>
+</div>
+
+<table id="ngg-listimages" class="widefat fixed" cellspacing="0" >
+
+	<thead>
+	<tr>
+<?php print_column_headers('nggallery-manage-images'); ?>
+	</tr>
+	</thead>
+	<tfoot>
+	<tr>
+<?php print_column_headers('nggallery-manage-images', false); ?>
+	</tr>
+	</tfoot>
+	<tbody>
+<?php
+if($picturelist) {
+	
+	$thumbsize 	= '';
+		
+	if ($ngg->options['thumbfix'])
+		$thumbsize = 'width="' . $ngg->options['thumbwidth'] . '" height="' . $ngg->options['thumbheight'] . '"';
+
+	foreach($picturelist as $picture) {
+		
+		//for search result we need to check the capatibiliy
+		if ( !nggAdmin::can_manage_this_gallery($picture->author) && $is_search )
+			continue;
+			
+		$counter++;
+		$pid       = (int) $picture->pid;
+		$alternate = ( !isset($alternate) || $alternate == 'alternate' ) ? '' : 'alternate';	
+		$exclude   = ( $picture->exclude ) ? 'checked="checked"' : '';
+		$date = mysql2date(get_option('date_format'), $picture->imagedate);
+		$time = mysql2date(get_option('time_format'), $picture->imagedate);
+				
+		?>
+		<tr id="picture-<?php echo $pid ?>" class="<?php echo $alternate ?> iedit"  valign="top">
+			<?php
+			foreach($image_columns as $image_column_key => $column_display_name) {
+				$class = "class=\"$image_column_key column-$image_column_key\"";
+		
+				$style = '';
+				if ( in_array($image_column_key, $hidden_columns) )
+					$style = ' style="display:none;"';
+		
+				$attributes = "$class$style";
+				
+				switch ($image_column_key) {
+					case 'cb' :
+						?> 
+						<th <?php echo $attributes ?> scope="row"><input name="doaction[]" type="checkbox" value="<?php echo $pid ?>" /></th>
+						<?php
+					break;
+					case 'id' :
+						?>
+						<td <?php echo $attributes ?> scope="row" style=""><?php echo $pid; ?>
+							<input type="hidden" name="pid[]" value="<?php echo $pid ?>" />
+						</td>
+						<?php
+					break;
+					case 'filename' :
+						?>
+						<td <?php echo $attributes ?>>
+							<strong><a href="<?php echo $picture->imageURL; ?>" class="thickbox" title="<?php echo $picture->filename ?>">
+								<?php echo ( empty($picture->alttext) ) ? $picture->filename : stripslashes(nggGallery::i18n($picture->alttext)); ?>
+							</a></strong>
+							<br /><?php echo $date; ?>
+							<?php if ( !empty($picture->meta_data) ): ?>
+							<br /><?php echo $picture->meta_data['width']; ?> x <?php echo $picture->meta_data['height']; ?> <?php _e('pixel', 'nggallery'); ?>
+							
+							<?php endif; ?>
+							<p>
+							<?php
+							$actions = array();
+							$actions['view']   = '<a class="thickbox" href="' . $picture->imageURL . '" title="' . esc_attr(sprintf(__('View "%s"'), $picture->filename)) . '">' . __('View', 'nggallery') . '</a>';
+							$actions['meta']   = '<a class="ngg-dialog" href="' . NGGALLERY_URLPATH . 'admin/showmeta.php?id=' . $pid . '" title="' . __('Show Meta data','nggallery') . '">' . __('Meta', 'nggallery') . '</a>';
+							$actions['custom_thumb']   = '<a class="ngg-dialog" href="' . NGGALLERY_URLPATH . 'admin/edit-thumbnail.php?id=' . $pid . '" title="' . __('Customize thumbnail','nggallery') . '">' . __('Edit thumb', 'nggallery') . '</a>';							
+							$actions['rotate'] = '<a class="ngg-dialog" href="' . NGGALLERY_URLPATH . 'admin/rotate.php?id=' . $pid . '" title="' . __('Rotate','nggallery') . '">' . __('Rotate', 'nggallery') . '</a>';
+							if ( current_user_can( 'publish_posts' ) )
+                                $actions['publish'] = '<a class="ngg-dialog" href="' . NGGALLERY_URLPATH . 'admin/publish.php?id=' . $pid . '&h=230" title="' . __('Publish this image','nggallery') . '">' . __('Publish', 'nggallery') . '</a>';
+							if ( file_exists( $picture->imagePath . '_backup' ) )	
+                                $actions['recover']   = '<a class="confirmrecover" href="' .wp_nonce_url("admin.php?page=nggallery-manage-gallery&amp;mode=recoverpic&amp;gid=" . $act_gid . "&amp;pid=" . $pid, 'ngg_recoverpicture'). '" title="' . __('Recover','nggallery') . '" onclick="javascript:check=confirm( \'' . esc_attr(sprintf(__('Recover "%s" ?' , 'nggallery'), $picture->filename)). '\');if(check==false) return false;">' . __('Recover', 'nggallery') . '</a>';
+							$actions['delete'] = '<a class="submitdelete" href="' . wp_nonce_url("admin.php?page=nggallery-manage-gallery&amp;mode=delpic&amp;gid=" . $act_gid . "&amp;pid=" . $pid, 'ngg_delpicture'). '" class="delete column-delete" onclick="javascript:check=confirm( \'' . esc_attr(sprintf(__('Delete "%s" ?' , 'nggallery'), $picture->filename)). '\');if(check==false) return false;">' . __('Delete') . '</a>';
+							$action_count = count($actions);
+							$i = 0;
+							echo '<div class="row-actions">';
+							foreach ( $actions as $action => $link ) {
+								++$i;
+								( $i == $action_count ) ? $sep = '' : $sep = ' | ';
+								echo "<span class='$action'>$link$sep</span>";
+							}
+							echo '</div>';
+							?></p>
+						</td>
+						<?php						
+					break;
+					case 'thumbnail' :
+     					// generate the thumbnail size if the meta data available
+     					if (is_array ($size = $picture->meta_data['thumbnail']) )
+							$thumbsize = 'width="' . $size['width'] . '" height="' . $size['height'] . '"';
+						?>
+						<td <?php echo $attributes ?>><a href="<?php echo $picture->imageURL; if(strpos($picture->imageURL, '?')) { echo '&'; } else { echo '?'; } echo mt_rand(); ?>" class="thickbox" title="<?php echo $picture->filename ?>">
+								<img class="thumb" src="<?php echo $picture->thumbURL; if(strpos($picture->thumbURL, '?')) { echo '&'; } else { echo '?'; } echo mt_rand(); ?>" <?php echo $thumbsize ?> id="thumb<?php echo $pid ?>" />
+							</a>
+						</td>
+						<?php						
+					break;
+					case 'alt_title_desc' :
+						?>
+						<td <?php echo $attributes ?>>
+							<input name="alttext[<?php echo $pid ?>]" type="text" style="width:95%; margin-bottom: 2px;" value="<?php echo stripslashes($picture->alttext) ?>" /><br/>
+							<textarea name="description[<?php echo $pid ?>]" style="width:95%; margin-top: 2px;" rows="2" ><?php echo stripslashes($picture->description) ?></textarea>
+						</td>
+						<?php						
+					break;
+					case 'exclude' :
+						?>
+						<td <?php echo $attributes ?>><input name="exclude[<?php echo $pid ?>]" type="checkbox" value="1" <?php echo $exclude ?> /></td>
+						<?php						
+					break;
+					case 'tags' :
+						$picture->tags = wp_get_object_terms($pid, 'ngg_tag', 'fields=names');
+						if (is_array ($picture->tags) ) $picture->tags = implode(', ', $picture->tags); 
+						?>
+						<td <?php echo $attributes ?>><textarea name="tags[<?php echo $pid ?>]" style="width:95%;" rows="2"><?php echo $picture->tags ?></textarea></td>
+						<?php						
+					break;
+					default : 
+						?>
+						<td <?php echo $attributes ?>><?php do_action('ngg_manage_image_custom_column', $image_column_key, $pid); ?></td>
+						<?php
+					break;
+				}
+			?>
+			<?php } ?>
+		</tr>
+		<?php
+	}
+}
+ 
+// In the case you have no capaptibility to see the search result
+if ( $counter == 0 )
+	echo '<tr><td colspan="' . $num_columns . '" align="center"><strong>'.__('No entries found','nggallery').'</strong></td></tr>';
+
+?>
+	
+		</tbody>
+	</table>
+    <div class="tablenav">
+    <input type="submit" class="button-primary action" name="updatepictures" value="<?php _e('Save Changes', 'nggallery'); ?>" />
+	<?php if ( $page_links ) : ?>
+	<div class="tablenav-pages"><?php $page_links_text = sprintf( '<span class="displaying-num">' . __( 'Displaying %s&#8211;%s of %s' ) . '</span>%s',
+		number_format_i18n( ( $_GET['paged'] - 1 ) * $nggdb->paged['objects_per_page'] + 1 ),
+		number_format_i18n( min( $_GET['paged'] * $nggdb->paged['objects_per_page'], $nggdb->paged['total_objects'] ) ),
+		number_format_i18n( $nggdb->paged['total_objects'] ),
+		$page_links
+	); echo $page_links_text; ?></div>
+	<?php endif; ?>
+    </div>
+	</form>	
+	<br class="clear"/>
+	</div><!-- /#wrap -->
+
+	<!-- #entertags -->
+	<div id="entertags" style="display: none;" >
+		<form id="form-tags" method="POST" accept-charset="utf-8">
+		<?php wp_nonce_field('ngg_thickbox_form') ?>
+		<input type="hidden" id="entertags_imagelist" name="TB_imagelist" value="" />
+		<input type="hidden" id="entertags_bulkaction" name="TB_bulkaction" value="" />
+		<input type="hidden" name="page" value="manage-images" />
+		<table width="100%" border="0" cellspacing="3" cellpadding="3" >
+		  	<tr>
+		    	<th><?php _e("Enter the tags",'nggallery'); ?> : <input name="taglist" type="text" style="width:90%" value="" /></th>
+		  	</tr>
+		  	<tr align="right">
+		    	<td class="submit">
+		    		<input class="button-primary" type="submit" name="TB_EditTags" value="<?php _e("OK",'nggallery'); ?>" />
+		    		&nbsp;
+		    		<input class="button-secondary dialog-cancel" type="reset" value="&nbsp;<?php _e("Cancel",'nggallery'); ?>&nbsp;" />
+		    	</td>
+			</tr>
+		</table>
+		</form>
+	</div>
+	<!-- /#entertags -->
+
+	<!-- #selectgallery -->
+	<div id="selectgallery" style="display: none;" >
+		<form id="form-select-gallery" method="POST" accept-charset="utf-8">
+		<?php wp_nonce_field('ngg_thickbox_form') ?>
+		<input type="hidden" id="selectgallery_imagelist" name="TB_imagelist" value="" />
+		<input type="hidden" id="selectgallery_bulkaction" name="TB_bulkaction" value="" />
+		<input type="hidden" name="page" value="manage-images" />
+		<table width="100%" border="0" cellspacing="3" cellpadding="3" >
+		  	<tr>
+		    	<th>
+		    		<?php _e('Select the destination gallery:', 'nggallery'); ?>&nbsp;
+		    		<select name="dest_gid" style="width:90%" >
+		    			<?php 
+		    				foreach ($gallerylist as $gallery) { 
+		    					if ($gallery->gid != $act_gid) { 
+		    			?>
+						<option value="<?php echo $gallery->gid; ?>" ><?php echo $gallery->gid; ?> - <?php echo stripslashes($gallery->title); ?></option>
+						<?php 
+		    					} 
+		    				}
+		    			?>
+		    		</select>
+		    	</th>
+		  	</tr>
+		  	<tr align="right">
+		    	<td class="submit">
+		    		<input type="submit" class="button-primary" name="TB_SelectGallery" value="<?php _e("OK",'nggallery'); ?>" />
+		    		&nbsp;
+		    		<input class="button-secondary dialog-cancel" type="reset" value="<?php _e("Cancel",'nggallery'); ?>" />
+		    	</td>
+			</tr>
+		</table>
+		</form>
+	</div>
+	<!-- /#selectgallery -->
+
+	<!-- #resize_images -->
+	<div id="resize_images" style="display: none;" >
+		<form id="form-resize-images" method="POST" accept-charset="utf-8">
+		<?php wp_nonce_field('ngg_thickbox_form') ?>
+		<input type="hidden" id="resize_images_imagelist" name="TB_imagelist" value="" />
+		<input type="hidden" id="resize_images_bulkaction" name="TB_bulkaction" value="" />
+		<input type="hidden" name="page" value="manage-images" />
+		<table width="100%" border="0" cellspacing="3" cellpadding="3" >
+			<tr valign="top">
+				<td>
+					<strong><?php _e('Resize Images to', 'nggallery'); ?>:</strong> 
+				</td>
+				<td>
+					<input type="text" size="5" name="imgWidth" value="<?php echo $ngg->options['imgWidth']; ?>" /> x <input type="text" size="5" name="imgHeight" value="<?php echo $ngg->options['imgHeight']; ?>" />
+					<br /><small><?php _e('Width x height (in pixel). NextGEN Gallery will keep ratio size','nggallery') ?></small>
+				</td>
+			</tr>
+		  	<tr align="right">
+		    	<td colspan="2" class="submit">
+		    		<input class="button-primary" type="submit" name="TB_ResizeImages" value="<?php _e('OK', 'nggallery'); ?>" />
+		    		&nbsp;
+		    		<input class="button-secondary dialog-cancel" type="reset" value="&nbsp;<?php _e('Cancel', 'nggallery'); ?>&nbsp;" />
+		    	</td>
+			</tr>
+		</table>
+		</form>
+	</div>
+	<!-- /#resize_images -->
+
+	<!-- #new_thumbnail -->
+	<div id="new_thumbnail" style="display: none;" >
+		<form id="form-new-thumbnail" method="POST" accept-charset="utf-8">
+		<?php wp_nonce_field('ngg_thickbox_form') ?>
+		<input type="hidden" id="new_thumbnail_imagelist" name="TB_imagelist" value="" />
+		<input type="hidden" id="new_thumbnail_bulkaction" name="TB_bulkaction" value="" />
+		<input type="hidden" name="page" value="manage-images" />
+        <table width="100%" border="0" cellspacing="3" cellpadding="3" >
+			<tr valign="top">
+				<th align="left"><?php _e('Width x height (in pixel)','nggallery') ?></th>
+				<td><input type="text" size="5" maxlength="5" name="thumbwidth" value="<?php echo $ngg->options['thumbwidth']; ?>" /> x <input type="text" size="5" maxlength="5" name="thumbheight" value="<?php echo $ngg->options['thumbheight']; ?>" />
+				<br /><small><?php _e('These values are maximum values ','nggallery') ?></small></td>
+			</tr>
+			<tr valign="top">
+				<th align="left"><?php _e('Set fix dimension','nggallery') ?></th>
+				<td><input type="checkbox" name="thumbfix" value="1" <?php checked('1', $ngg->options['thumbfix']); ?> />
+				<br /><small><?php _e('Ignore the aspect ratio, no portrait thumbnails','nggallery') ?></small></td>
+			</tr>
+		  	<tr align="right">
+		    	<td colspan="2" class="submit">
+		    		<input class="button-primary" type="submit" name="TB_NewThumbnail" value="<?php _e('OK', 'nggallery');?>" />
+		    		&nbsp;
+		    		<input class="button-secondary dialog-cancel" type="reset" value="&nbsp;<?php _e('Cancel', 'nggallery'); ?>&nbsp;" />
+		    	</td>
+			</tr>
+		</table>
+		</form>
+	</div>
+	<!-- /#new_thumbnail -->	
+
+	<script type="text/javascript">
+	/* <![CDATA[ */
+	jQuery(document).ready(function(){columns.init('nggallery-manage-images');});	
+	/* ]]> */
+	</script>
+	<?php
+}
+
+// define the columns to display, the syntax is 'internal name' => 'display name'
+function ngg_manage_image_columns() {
+	
+	$image_columns = array();
+	
+	$image_columns['cb'] = '<input name="checkall" type="checkbox" onclick="checkAll(document.getElementById(\'updategallery\'));" />';
+	$image_columns['id'] = __('ID');
+	$image_columns['thumbnail'] = __('Thumbnail', 'nggallery');
+	
+	$image_columns['filename'] = __('Filename', 'nggallery');
+	
+	$image_columns['alt_title_desc'] = __('Alt &amp; Title Text', 'nggallery') . ' / ' . __('Description', 'nggallery');
+	$image_columns['tags'] = __('Tags (comma separated list)', 'nggallery');
+
+	$image_columns['exclude'] = __('exclude', 'nggallery');
+	
+	$image_columns = apply_filters('ngg_manage_images_columns', $image_columns);
+
+	return $image_columns;
+}
+
+?>
\ No newline at end of file
diff --git a/wp-content/plugins/nextgen-gallery/admin/manage-sort.php b/wp-content/plugins/nextgen-gallery/admin/manage-sort.php
new file mode 100644
index 000000000..7bc38856c
--- /dev/null
+++ b/wp-content/plugins/nextgen-gallery/admin/manage-sort.php
@@ -0,0 +1,107 @@
+<?php
+
+/**
+ * @author Alex Rabe
+ * @copyright 2008-2010
+ */
+
+function nggallery_sortorder($galleryID = 0){
+	global $wpdb, $ngg, $nggdb;
+	
+	if ($galleryID == 0) return;
+
+	$galleryID = (int) $galleryID;
+	
+	if (isset ($_POST['updateSortorder']))  {
+		check_admin_referer('ngg_updatesortorder');
+		// get variable new sortorder 
+		parse_str($_POST['sortorder']);
+		if (is_array($sortArray)){ 
+			$neworder = array();
+			foreach($sortArray as $pid) {		
+				$pid = substr($pid, 4); // get id from "pid-x"
+				$neworder[] = (int) $pid;
+			}
+			$sortindex = 1;
+			foreach($neworder as $pic_id) {
+				$wpdb->query("UPDATE $wpdb->nggpictures SET sortorder = '$sortindex' WHERE pid = $pic_id");
+				$sortindex++;
+			}
+
+			do_action('ngg_gallery_sort', $galleryID);
+
+			nggGallery::show_message(__('Sort order changed','nggallery'));
+		} 
+	}
+	
+	// look for presort args	
+	$presort = isset($_GET['presort']) ? $_GET['presort'] : false;
+	$dir = ( isset($_GET['dir']) && $_GET['dir'] == 'DESC' ) ? 'DESC' : 'ASC';
+	$sortitems = array('pid', 'filename', 'alttext', 'imagedate');
+	// ensure that nobody added some evil sorting :-)
+	if (in_array( $presort, $sortitems) )
+		$picturelist = $nggdb->get_gallery($galleryID, $presort, $dir, false);
+	else	
+		$picturelist = $nggdb->get_gallery($galleryID, 'sortorder', $dir, false);
+		
+	//this is the url without any presort variable
+	$clean_url = 'admin.php?page=nggallery-manage-gallery&amp;mode=sort&amp;gid=' . $galleryID;
+	//if we go back , then the mode should be edit
+	$back_url  = 'admin.php?page=nggallery-manage-gallery&amp;mode=edit&amp;gid=' . $galleryID;
+	
+	// In the case somebody presort, then we take this url
+	if ( isset($_GET['dir']) || isset($_GET['presort']) )
+		$base_url = $_SERVER['REQUEST_URI'];
+	else		
+		$base_url = $clean_url;
+	
+?>
+	<script type='text/javascript' src='<?php echo NGGALLERY_URLPATH ?>admin/js/sorter.js'></script>
+	<div class="wrap">
+		<form id="sortGallery" method="POST" action="<?php echo $clean_url ?>" onsubmit="saveImageOrder()" accept-charset="utf-8">
+			<h2><?php _e('Sort Gallery', 'nggallery') ?></h2>
+			<div class="tablenav">
+				<div class="alignleft actions">
+					<?php wp_nonce_field('ngg_updatesortorder') ?>
+					<input class="button-primary action" type="submit" name="updateSortorder" onclick="saveImageOrder()" value="<?php _e('Update Sort Order', 'nggallery') ?>" />
+				</div>
+				<div class="alignright actions">
+					<a href="<?php echo $back_url; ?>" class="button"><?php _e('Back to gallery', 'nggallery'); ?></a>
+				</div>
+			</div>	
+			<input name="sortorder" type="hidden" />
+			<ul class="subsubsub">
+				<li><?php _e('Presort', 'nggallery') ?> :</li>
+				<li><a href="<?php echo esc_attr(remove_query_arg('presort', $base_url)); ?>" <?php if ($presort == '') echo 'class="current"'; ?>><?php _e('Unsorted', 'nggallery') ?></a> |</li>
+				<li><a href="<?php echo esc_attr(add_query_arg('presort', 'pid', $base_url)); ?>" <?php if ($presort == 'pid') echo 'class="current"'; ?>><?php _e('Image ID', 'nggallery') ?></a> |</li>
+				<li><a href="<?php echo esc_attr(add_query_arg('presort', 'filename', $base_url)); ?>" <?php if ($presort == 'filename') echo 'class="current"'; ?>><?php _e('Filename', 'nggallery') ?></a> |</li>
+				<li><a href="<?php echo esc_attr(add_query_arg('presort', 'alttext', $base_url)); ?>" <?php if ($presort == 'alttext') echo 'class="current"'; ?>><?php _e('Alt/Title text', 'nggallery') ?></a> |</li>
+				<li><a href="<?php echo esc_attr(add_query_arg('presort', 'imagedate', $base_url)); ?>" <?php if ($presort == 'imagedate') echo 'class="current"'; ?>><?php _e('Date/Time', 'nggallery') ?></a> |</li>
+				<li><a href="<?php echo esc_attr(add_query_arg('dir', 'ASC', $base_url)); ?>" <?php if ($dir == 'ASC') echo 'class="current"'; ?>><?php _e('Ascending', 'nggallery') ?></a> |</li>
+				<li><a href="<?php echo esc_attr(add_query_arg('dir', 'DESC', $base_url)); ?>" <?php if ($dir == 'DESC') echo 'class="current"'; ?>><?php _e('Descending', 'nggallery') ?></a></li>
+			</ul>
+		</form>
+		<div id="debug" style="clear:both"></div>
+		<?php 
+		if($picturelist) {
+			foreach($picturelist as $picture) {
+				?>
+				<div class="imageBox" id="pid-<?php echo $picture->pid ?>">
+					<div class="imageBox_theImage" style="background-image:url('<?php echo $picture->thumbURL; ?>')"></div>	
+					<div class="imageBox_label"><span><?php echo stripslashes($picture->alttext) ?></span></div>
+				</div>
+				<?php
+			}
+		}
+		?>
+		<div id="insertionMarker">
+			<img src="<?php echo NGGALLERY_URLPATH ?>admin/images/marker_top.gif"/>
+			<img src="<?php echo NGGALLERY_URLPATH ?>admin/images/marker_middle.gif" id="insertionMarkerLine"/>
+			<img src="<?php echo NGGALLERY_URLPATH ?>admin/images/marker_bottom.gif"/>
+		</div>
+		<div id="dragDropContent"></div>
+	</div>
+	
+<?php
+}
+?>
diff --git a/wp-content/plugins/nextgen-gallery/admin/manage.php b/wp-content/plugins/nextgen-gallery/admin/manage.php
new file mode 100644
index 000000000..54e3b98e4
--- /dev/null
+++ b/wp-content/plugins/nextgen-gallery/admin/manage.php
@@ -0,0 +1,551 @@
+<?php  
+
+if(preg_match('#' . basename(__FILE__) . '#', $_SERVER['PHP_SELF'])) { 	die('You are not allowed to call this page directly.'); }
+
+class nggManageGallery {
+
+	var $mode = 'main';
+	var $gid = false;
+	var $pid = false;
+	var $base_page = 'admin.php?page=nggallery-manage-gallery';
+	var $search_result = false;
+	
+	// initiate the manage page
+	function nggManageGallery() {
+
+		// GET variables
+		if( isset($_GET['gid']) )
+			$this->gid  = (int) $_GET['gid'];
+		if( isset($_GET['pid']) )
+			$this->pid  = (int) $_GET['pid'];	
+		if( isset($_GET['mode']) )
+			$this->mode = trim ($_GET['mode']);
+		// Should be only called via manage galleries overview
+		if ( isset($_POST['page']) && $_POST['page'] == 'manage-galleries' )
+			$this->post_processor_galleries();
+		// Should be only called via a edit single gallery page	
+		if ( isset($_POST['page']) && $_POST['page'] == 'manage-images' )
+			$this->post_processor_images();
+		// Should be called via a publish dialog	
+		if ( isset($_POST['page']) && $_POST['page'] == 'publish-post' )
+			$this->publish_post();
+		//Look for other POST process
+		if ( !empty($_POST) || !empty($_GET) )
+			$this->processor();
+	
+	}
+
+	function controller() {
+
+		switch($this->mode) {
+			case 'sort':
+				include_once (dirname (__FILE__) . '/manage-sort.php');
+				nggallery_sortorder($this->gid);
+			break;
+			case 'edit':
+				include_once (dirname (__FILE__) . '/manage-images.php');
+				nggallery_picturelist();	
+			break;
+			case 'main':
+			default:
+				include_once (dirname (__FILE__) . '/manage-galleries.php');
+				nggallery_manage_gallery_main();
+			break;
+		}
+	}
+
+	function processor() {
+	
+		global $wpdb, $ngg, $nggdb;
+		
+		// Delete a picture
+		if ($this->mode == 'delpic') {
+
+			//TODO:Remove also Tag reference
+			check_admin_referer('ngg_delpicture');
+			$image = $nggdb->find_image( $this->pid );
+			if ($image) {
+				if ($ngg->options['deleteImg']) {
+					@unlink($image->imagePath);
+					@unlink($image->thumbPath);	
+					@unlink($image->imagePath . "_backup" );
+				} 
+				$delete_pic = nggdb::delete_image ( $this->pid );
+            }
+                                
+			if($delete_pic)
+				nggGallery::show_message( __('Picture','nggallery').' \''.$this->pid.'\' '.__('deleted successfully','nggallery') );
+				
+		 	$this->mode = 'edit'; // show pictures
+	
+		}
+		
+		// Recover picture from backup
+		if ($this->mode == 'recoverpic') {
+
+			check_admin_referer('ngg_recoverpicture');
+			$image = $nggdb->find_image( $this->pid );
+            // bring back the old image
+			nggAdmin::recover_image($image);
+            nggAdmin::create_thumbnail($image);
+            
+            nggGallery::show_message(__('Operation successful. Please clear your browser cache.',"nggallery"));
+				
+		 	$this->mode = 'edit'; // show pictures
+	
+		}
+				
+		// will be called after a ajax operation
+		if (isset ($_POST['ajax_callback']))  {
+				if ($_POST['ajax_callback'] == 1)
+					nggGallery::show_message(__('Operation successful. Please clear your browser cache.',"nggallery"));
+		}
+		
+		// show sort order
+		if ( isset ($_POST['sortGallery']) )
+			$this->mode = 'sort';
+		
+		if ( isset ($_GET['s']) )	
+			$this->search_images();
+		
+	}
+	
+	function post_processor_galleries() {
+		global $wpdb, $ngg, $nggdb;
+		
+		// bulk update in a single gallery
+		if (isset ($_POST['bulkaction']) && isset ($_POST['doaction']))  {
+
+			check_admin_referer('ngg_bulkgallery');
+			
+			switch ($_POST['bulkaction']) {
+				case 'no_action';
+				// No action
+					break;
+				case 'recover_images':
+				// Recover images from backup
+					// A prefix 'gallery_' will first fetch all ids from the selected galleries
+					nggAdmin::do_ajax_operation( 'gallery_recover_image' , $_POST['doaction'], __('Recover from backup','nggallery') );
+					break;
+				case 'set_watermark':
+				// Set watermark
+					// A prefix 'gallery_' will first fetch all ids from the selected galleries
+					nggAdmin::do_ajax_operation( 'gallery_set_watermark' , $_POST['doaction'], __('Set watermark','nggallery') );
+					break;
+				case 'import_meta':
+				// Import Metadata
+					// A prefix 'gallery_' will first fetch all ids from the selected galleries
+					nggAdmin::do_ajax_operation( 'gallery_import_metadata' , $_POST['doaction'], __('Import metadata','nggallery') );
+					break;
+				case 'delete_gallery':
+				// Delete gallery
+					if ( is_array($_POST['doaction']) ) {
+                        $deleted = false;
+						foreach ( $_POST['doaction'] as $id ) {
+                			// get the path to the gallery
+                			$gallery = nggdb::find_gallery($id);
+                			if ($gallery){
+                				//TODO:Remove also Tag reference, look here for ids instead filename
+                				$imagelist = $wpdb->get_col("SELECT filename FROM $wpdb->nggpictures WHERE galleryid = '$gallery->gid' ");
+                				if ($ngg->options['deleteImg']) {
+                					if (is_array($imagelist)) {
+                						foreach ($imagelist as $filename) {
+                							@unlink(WINABSPATH . $gallery->path . '/thumbs/thumbs_' . $filename);
+                							@unlink(WINABSPATH . $gallery->path .'/'. $filename);
+                                            @unlink(WINABSPATH . $gallery->path .'/'. $filename . '_backup');
+                						}
+                					}
+                					// delete folder
+               						@rmdir( WINABSPATH . $gallery->path . '/thumbs' );
+               						@rmdir( WINABSPATH . $gallery->path );
+                				}
+                			}
+                	
+                			$deleted = nggdb::delete_gallery( $id );
+  						}
+                        
+						if($deleted)
+							nggGallery::show_message(__('Gallery deleted successfully ', 'nggallery'));
+					}
+					break;
+			}
+		}
+
+		if (isset ($_POST['addgallery']) && isset ($_POST['galleryname'])){
+			
+			check_admin_referer('ngg_addgallery');
+
+			if ( !nggGallery::current_user_can( 'NextGEN Add new gallery' ))
+				wp_die(__('Cheatin&#8217; uh?'));			
+
+			// get the default path for a new gallery
+			$defaultpath = $ngg->options['gallerypath'];
+			$newgallery = esc_attr( $_POST['galleryname']);
+			if ( !empty($newgallery) )
+				nggAdmin::create_gallery($newgallery, $defaultpath);
+		}
+
+		if (isset ($_POST['TB_bulkaction']) && isset ($_POST['TB_ResizeImages']))  {
+			
+			check_admin_referer('ngg_thickbox_form');
+			
+			//save the new values for the next operation
+			$ngg->options['imgWidth']  = (int) $_POST['imgWidth'];
+			$ngg->options['imgHeight'] = (int) $_POST['imgHeight'];
+			// What is in the case the user has no if cap 'NextGEN Change options' ? Check feedback
+			update_option('ngg_options', $ngg->options);
+			
+			$gallery_ids  = explode(',', $_POST['TB_imagelist']);
+			// A prefix 'gallery_' will first fetch all ids from the selected galleries
+			nggAdmin::do_ajax_operation( 'gallery_resize_image' , $gallery_ids, __('Resize images','nggallery') );
+		}
+
+		if (isset ($_POST['TB_bulkaction']) && isset ($_POST['TB_NewThumbnail']))  {
+			
+			check_admin_referer('ngg_thickbox_form');
+			
+			//save the new values for the next operation
+			$ngg->options['thumbwidth']  = (int)  $_POST['thumbwidth'];
+			$ngg->options['thumbheight'] = (int)  $_POST['thumbheight'];
+			$ngg->options['thumbfix']    = (bool) $_POST['thumbfix']; 
+			// What is in the case the user has no if cap 'NextGEN Change options' ? Check feedback
+			update_option('ngg_options', $ngg->options);
+			
+			$gallery_ids  = explode(',', $_POST['TB_imagelist']);
+			// A prefix 'gallery_' will first fetch all ids from the selected galleries
+			nggAdmin::do_ajax_operation( 'gallery_create_thumbnail' , $gallery_ids, __('Create new thumbnails','nggallery') );
+		}
+
+	}
+
+	function post_processor_images() {
+		global $wpdb, $ngg, $nggdb;
+		
+		// bulk update in a single gallery
+		if (isset ($_POST['bulkaction']) && isset ($_POST['doaction']))  {
+			
+			check_admin_referer('ngg_updategallery');
+			
+			switch ($_POST['bulkaction']) {
+				case 'no_action';
+					break;
+				case 'rotate_cw':
+					nggAdmin::do_ajax_operation( 'rotate_cw' , $_POST['doaction'], __('Rotate images', 'nggallery') );
+					break;
+				case 'rotate_ccw':
+					nggAdmin::do_ajax_operation( 'rotate_ccw' , $_POST['doaction'], __('Rotate images', 'nggallery') );
+					break;			
+				case 'recover_images':
+					nggAdmin::do_ajax_operation( 'recover_image' , $_POST['doaction'], __('Recover from backup', 'nggallery') );
+					break;
+				case 'set_watermark':
+					nggAdmin::do_ajax_operation( 'set_watermark' , $_POST['doaction'], __('Set watermark', 'nggallery') );
+					break;
+				case 'delete_images':
+					if ( is_array($_POST['doaction']) ) {
+						foreach ( $_POST['doaction'] as $imageID ) {
+							$image = $nggdb->find_image( $imageID );
+							if ($image) {
+								if ($ngg->options['deleteImg']) {
+									@unlink($image->imagePath);
+									@unlink($image->thumbPath);
+									@unlink($image->imagePath."_backup");	
+								} 
+								$delete_pic = nggdb::delete_image( $image->pid );
+							}
+						}
+						if($delete_pic)
+							nggGallery::show_message(__('Pictures deleted successfully ', 'nggallery'));
+					}
+					break;
+				case 'import_meta':
+					nggAdmin::do_ajax_operation( 'import_metadata' , $_POST['doaction'], __('Import metadata', 'nggallery') );
+					break;
+			}
+		}
+
+		if (isset ($_POST['TB_bulkaction']) && isset ($_POST['TB_ResizeImages']))  {
+			
+			check_admin_referer('ngg_thickbox_form');
+			
+			//save the new values for the next operation
+			$ngg->options['imgWidth']  = (int) $_POST['imgWidth'];
+			$ngg->options['imgHeight'] = (int) $_POST['imgHeight'];
+			
+			update_option('ngg_options', $ngg->options);
+			
+			$pic_ids  = explode(',', $_POST['TB_imagelist']);
+			nggAdmin::do_ajax_operation( 'resize_image' , $pic_ids, __('Resize images','nggallery') );
+		}
+
+		if (isset ($_POST['TB_bulkaction']) && isset ($_POST['TB_NewThumbnail']))  {
+			
+			check_admin_referer('ngg_thickbox_form');
+			
+			//save the new values for the next operation
+			$ngg->options['thumbwidth']  = (int)  $_POST['thumbwidth'];
+			$ngg->options['thumbheight'] = (int)  $_POST['thumbheight'];
+			$ngg->options['thumbfix']    = (bool) $_POST['thumbfix']; 
+			update_option('ngg_options', $ngg->options);
+			
+			$pic_ids  = explode(',', $_POST['TB_imagelist']);
+			nggAdmin::do_ajax_operation( 'create_thumbnail' , $pic_ids, __('Create new thumbnails','nggallery') );
+		}
+		
+		if (isset ($_POST['TB_bulkaction']) && isset ($_POST['TB_SelectGallery']))  {
+			
+			check_admin_referer('ngg_thickbox_form');
+			
+			$pic_ids  = explode(',', $_POST['TB_imagelist']);
+			$dest_gid = (int) $_POST['dest_gid'];
+			
+			switch ($_POST['TB_bulkaction']) {
+				case 'copy_to':
+				// Copy images
+					nggAdmin::copy_images( $pic_ids, $dest_gid );
+					break;
+				case 'move_to':
+				// Move images
+					nggAdmin::move_images( $pic_ids, $dest_gid );
+					break;
+			}
+		}
+		
+		if (isset ($_POST['TB_bulkaction']) && isset ($_POST['TB_EditTags']))  {
+			// do tags update
+	
+			check_admin_referer('ngg_thickbox_form');
+	
+			// get the images list		
+			$pic_ids = explode(',', $_POST['TB_imagelist']);
+			$taglist = explode(',', $_POST['taglist']);
+			$taglist = array_map('trim', $taglist);
+			
+			if (is_array($pic_ids)) {
+
+				foreach($pic_ids as $pic_id) {
+					
+					// which action should be performed ?
+					switch ($_POST['TB_bulkaction']) {
+						case 'no_action';
+						// No action
+							break;
+						case 'overwrite_tags':
+						// Overwrite tags
+							wp_set_object_terms($pic_id, $taglist, 'ngg_tag');
+							break;					
+						case 'add_tags':
+						// Add / append tags
+							wp_set_object_terms($pic_id, $taglist, 'ngg_tag', TRUE);
+							break;
+						case 'delete_tags':
+						// Delete tags
+							$oldtags = wp_get_object_terms($pic_id, 'ngg_tag', 'fields=names');
+							// get the slugs, to vaoid  case sensitive problems
+							$slugarray = array_map('sanitize_title', $taglist);
+							$oldtags = array_map('sanitize_title', $oldtags);
+							// compare them and return the diff
+							$newtags = array_diff($oldtags, $slugarray);
+							wp_set_object_terms($pic_id, $newtags, 'ngg_tag');
+							break;
+					}
+				}
+		
+				nggGallery::show_message( __('Tags changed', 'nggallery') );
+			}
+		}
+	
+		if (isset ($_POST['updatepictures']))  {
+		// Update pictures	
+		
+			check_admin_referer('ngg_updategallery');
+			
+			if ( nggGallery::current_user_can( 'NextGEN Edit gallery options' )) {
+				
+				if ( nggGallery::current_user_can( 'NextGEN Edit gallery title' )) {
+				    // don't forget to update the slug
+				    $slug = nggdb::get_unique_slug( sanitize_title( $_POST['title'] ), 'gallery' );
+				    $wpdb->query( $wpdb->prepare ("UPDATE $wpdb->nggallery SET title= '%s', slug= '%s' WHERE gid = %d", esc_attr($_POST['title']), $slug, $this->gid) );				    
+				}
+				if ( nggGallery::current_user_can( 'NextGEN Edit gallery path' ))
+					$wpdb->query( $wpdb->prepare ("UPDATE $wpdb->nggallery SET path= '%s' WHERE gid = %d", untrailingslashit ( str_replace('\\', '/', trim( stripslashes($_POST['path']) )) ), $this->gid ) );
+				if ( nggGallery::current_user_can( 'NextGEN Edit gallery description' ))
+					$wpdb->query( $wpdb->prepare ("UPDATE $wpdb->nggallery SET galdesc= '%s' WHERE gid = %d", esc_attr( $_POST['gallerydesc'] ), $this->gid) );
+				if ( nggGallery::current_user_can( 'NextGEN Edit gallery page id' ))	
+					$wpdb->query( $wpdb->prepare ("UPDATE $wpdb->nggallery SET pageid= '%d' WHERE gid = %d", (int) $_POST['pageid'], $this->gid) );
+				if ( nggGallery::current_user_can( 'NextGEN Edit gallery preview pic' ))
+					$wpdb->query( $wpdb->prepare ("UPDATE $wpdb->nggallery SET previewpic= '%d' WHERE gid = %d", (int) $_POST['previewpic'], $this->gid) );
+				if ( isset ($_POST['author']) && nggGallery::current_user_can( 'NextGEN Edit gallery author' ) ) 
+					$wpdb->query( $wpdb->prepare ("UPDATE $wpdb->nggallery SET author= '%d' WHERE gid = %d", (int) $_POST['author'], $this->gid) );
+                
+                wp_cache_delete($this->gid, 'ngg_gallery');                    
+		
+			}
+		
+			$this->update_pictures();
+	
+			//hook for other plugin to update the fields
+			do_action('ngg_update_gallery', $this->gid, $_POST);
+	
+			nggGallery::show_message(__('Update successful',"nggallery"));
+		}
+	
+		if (isset ($_POST['scanfolder']))  {
+		// Rescan folder
+			check_admin_referer('ngg_updategallery');
+		
+			$gallerypath = $wpdb->get_var("SELECT path FROM $wpdb->nggallery WHERE gid = '$this->gid' ");
+			nggAdmin::import_gallery($gallerypath);
+		}
+	
+		if (isset ($_POST['addnewpage']))  {
+		// Add a new page
+		
+			check_admin_referer('ngg_updategallery');
+			
+			$parent_id      = esc_attr($_POST['parent_id']);
+			$gallery_title  = esc_attr($_POST['title']);
+			$gallery_name   = $wpdb->get_var("SELECT name FROM $wpdb->nggallery WHERE gid = '$this->gid' ");
+			
+			// Create a WP page
+			global $user_ID;
+	
+			$page['post_type']    = 'page';
+			$page['post_content'] = '[nggallery id=' . $this->gid . ']';
+			$page['post_parent']  = $parent_id;
+			$page['post_author']  = $user_ID;
+			$page['post_status']  = 'publish';
+			$page['post_title']   = $gallery_title == '' ? $gallery_name : $gallery_title;
+			$page = apply_filters('ngg_add_new_page', $page, $this->gid);
+	
+			$gallery_pageid = wp_insert_post ($page);
+			if ($gallery_pageid != 0) {
+				$result = $wpdb->query("UPDATE $wpdb->nggallery SET title= '$gallery_title', pageid = '$gallery_pageid' WHERE gid = '$this->gid'");
+				wp_cache_delete($this->gid, 'ngg_gallery');
+                nggGallery::show_message( __('New gallery page ID','nggallery'). ' ' . $gallery_pageid . ' -> <strong>' . $gallery_title . '</strong> ' .__('created','nggallery') );
+			}
+		}
+	}
+    
+   	/**
+   	 * Publish a new post with the shortcode from the selected image
+     * 
+   	 * @since 1.7.0
+   	 * @return void
+   	 */
+   	function publish_post() {
+   	    
+   	    check_admin_referer('publish-post');
+
+		// Create a WP page
+		global $user_ID, $ngg;
+        
+		$ngg->options['publish_width']  = (int) $_POST['width'];
+		$ngg->options['publish_height'] = (int) $_POST['height'];
+		$ngg->options['publish_align'] = $_POST['align'];
+        $align = ( $ngg->options['publish_align'] == 'none') ? '' : 'float='.$ngg->options['publish_align']; 
+
+		//save the new values for the next operation
+		update_option('ngg_options', $ngg->options);
+
+		$post['post_type']    = 'post';
+		$post['post_content'] = '[singlepic id=' . intval($_POST['pid']) . ' w=' . $ngg->options['publish_width'] . ' h=' . $ngg->options['publish_height'] . ' ' . $align . ']';
+		$post['post_author']  = $user_ID;
+		$post['post_status']  = isset ( $_POST['publish'] ) ? 'publish' : 'draft';
+		$post['post_title']   = $_POST['post_title'];
+		$post = apply_filters('ngg_add_new_post', $post, $_POST['pid']);
+
+		$post_id = wp_insert_post ($post);
+        
+		if ($post_id != 0)
+            nggGallery::show_message( __('Published a new post','nggallery') );
+
+    }
+	
+	function update_pictures() {
+		global $wpdb, $nggdb;
+
+		//TODO:Error message when update failed
+		
+		$description = 	isset ( $_POST['description'] ) ? $_POST['description'] : array();
+		$alttext = 		isset ( $_POST['alttext'] ) ? $_POST['alttext'] : array();
+		$exclude = 		isset ( $_POST['exclude'] ) ? $_POST['exclude'] : false;
+		$taglist = 		isset ( $_POST['tags'] ) ? $_POST['tags'] : false;
+		$pictures = 	isset ( $_POST['pid'] ) ? $_POST['pid'] : false;
+
+		if ( is_array($pictures) ){
+			foreach( $pictures as $pid ){
+                $image = $nggdb->find_image( $pid );
+                if ($image) {
+                    // description field
+                    $image->description = $description[$image->pid];
+                    
+                    // only uptade this field if someone change the alttext
+                    if ( $image->alttext != $alttext[$image->pid] ) {
+                        $image->alttext = $alttext[$image->pid];
+                        $image->image_slug = nggdb::get_unique_slug( sanitize_title( $image->alttext ), 'image' );                        
+                    }
+                    
+                    // set exclude flag
+                    if ( is_array($exclude) )
+    					$image->exclude = ( array_key_exists($image->pid, $exclude) )? 1 : 0;
+    				else
+    					$image->exclude = 0;
+                        
+                    // update the database
+                    $wpdb->query( $wpdb->prepare ("UPDATE $wpdb->nggpictures SET image_slug = '%s', alttext = '%s', description = '%s', exclude = %d WHERE pid = %d", 
+                                                                                 $image->image_slug, $image->alttext, $image->description, $image->exclude, $image->pid) );    
+                    // remove from cache    
+                    wp_cache_delete($image->pid, 'ngg_image'); 
+                }
+                
+            }
+        }
+        
+        //TODO: This produce 300-400 queries !
+		if ( is_array($taglist) ){
+			foreach($taglist as $key=>$value) {
+				$tags = explode(',', $value);
+				wp_set_object_terms($key, $tags, 'ngg_tag');
+			}
+		}
+        
+		return;
+	}
+
+	// Check if user can select a author
+	function get_editable_user_ids( $user_id, $exclude_zeros = true ) {
+		global $wpdb;
+	
+		$user = new WP_User( $user_id );
+	
+		if ( ! $user->has_cap('NextGEN Manage others gallery') ) {
+			if ( $user->has_cap('NextGEN Manage gallery') || $exclude_zeros == false )
+				return array($user->id);
+			else
+				return false;
+		}
+	
+		$level_key = $wpdb->prefix . 'user_level';
+		$query = "SELECT user_id FROM $wpdb->usermeta WHERE meta_key = '$level_key'";
+		if ( $exclude_zeros )
+			$query .= " AND meta_value != '0'";
+	
+		return $wpdb->get_col( $query );
+	}
+
+	function search_images() {
+		global $nggdb;
+		
+		if ( empty($_GET['s']) )
+			return;
+		//on what ever reason I need to set again the query var
+		set_query_var('s', $_GET['s']);
+		$request = get_search_query();
+		// look now for the images
+	 	$this->search_result = array_merge( (array) $nggdb->search_for_images( $request ), (array) nggTags::find_images_for_tags( $request , 'ASC' ));
+		// show pictures page
+		$this->mode = 'edit'; 
+	}
+}
+?>
\ No newline at end of file
diff --git a/wp-content/plugins/nextgen-gallery/admin/media-upload.php b/wp-content/plugins/nextgen-gallery/admin/media-upload.php
new file mode 100644
index 000000000..1739167f5
--- /dev/null
+++ b/wp-content/plugins/nextgen-gallery/admin/media-upload.php
@@ -0,0 +1,282 @@
+<?php
+
+/**
+ * @title  Add action/filter for the upload tab 
+ * @author Alex Rabe
+ * @copyright 2008-2009
+ */
+
+function ngg_wp_upload_tabs ($tabs) {
+
+	$newtab = array('nextgen' => __('NextGEN Gallery','nggallery'));
+ 
+    return array_merge($tabs,$newtab);
+}
+	
+add_filter('media_upload_tabs', 'ngg_wp_upload_tabs');
+
+function media_upload_nextgen() {
+	
+    // Not in use
+    $errors = false;
+    
+	// Generate TinyMCE HTML output
+	if ( isset($_POST['send']) ) {
+		$keys = array_keys($_POST['send']);
+		$send_id = (int) array_shift($keys);
+		$image = $_POST['image'][$send_id];
+		$alttext = stripslashes( htmlspecialchars ($image['alttext'], ENT_QUOTES));
+		$description = stripslashes (htmlspecialchars($image['description'], ENT_QUOTES));
+		
+		// here is no new line allowed
+		$clean_description = preg_replace("/\n|\r\n|\r$/", " ", $description);
+		$img = nggdb::find_image($send_id);
+		$thumbcode = $img->get_thumbcode();
+		$class="ngg-singlepic ngg-{$image['align']}";
+		
+		// Build output
+		if ($image['size'] == "thumbnail") 
+			$html = "<img src='{$image['thumb']}' alt='$alttext' class='$class' />";
+		// Wrap the link to the fullsize image around	
+		$html = "<a $thumbcode href='{$image['url']}' title='$clean_description'>$html</a>";
+
+		if ($image['size'] == "full") 
+			$html = "<img src='{$image['url']}' alt='$alttext' class='$class' />";
+		
+		if ($image['size'] == "singlepic") 
+			$html = "[singlepic id=$send_id w=320 h=240 float={$image['align']}]";
+			
+		media_upload_nextgen_save_image();
+		
+		// Return it to TinyMCE
+		return media_send_to_editor($html);
+	}
+	
+	// Save button
+	if ( isset($_POST['save']) ) {
+		media_upload_nextgen_save_image();
+	}
+		
+	return wp_iframe( 'media_upload_nextgen_form', $errors );
+}
+
+add_action('media_upload_nextgen', 'media_upload_nextgen');
+
+function media_upload_nextgen_save_image() {
+		
+		global $wpdb;
+		
+		check_admin_referer('ngg-media-form');
+		
+		if ( !empty($_POST['image']) ) foreach ( $_POST['image'] as $image_id => $image ) {
+		
+    		// create a unique slug
+            $image_slug = nggdb::get_unique_slug( sanitize_title( $image['alttext'] ), 'image' ); 
+    		$wpdb->query( $wpdb->prepare ("UPDATE $wpdb->nggpictures SET image_slug= '%s', alttext= '%s', description = '%s' WHERE pid = %d", $image_slug, $image['alttext'], $image['description'], $image_id));
+            wp_cache_delete($image_id, 'ngg_image');
+	}
+}
+
+function media_upload_nextgen_form($errors) {
+
+	global $wpdb, $wp_query, $wp_locale, $type, $tab, $post_mime_types, $ngg;
+	
+	media_upload_header();
+
+	$post_id 	= intval($_REQUEST['post_id']);
+	$galleryID 	= 0;
+	$total 		= 1;
+	$picarray 	= array();
+	
+	$form_action_url = site_url( "wp-admin/media-upload.php?type={$GLOBALS['type']}&tab=nextgen&post_id=$post_id", 'admin');
+
+	// Get number of images in gallery	
+	if ( isset($_REQUEST['select_gal']) ){
+		$galleryID = (int) $_REQUEST['select_gal'];
+		$total = $wpdb->get_var("SELECT COUNT(*) FROM $wpdb->nggpictures WHERE galleryid = '$galleryID'");
+	}
+	
+	// Build navigation
+	$_GET['paged'] = isset($_GET['paged']) ? intval($_GET['paged']) : 0;
+	if ( $_GET['paged'] < 1 )
+		$_GET['paged'] = 1;
+	$start = ( $_GET['paged'] - 1 ) * 10;
+	if ( $start < 1 )
+		$start = 0;
+
+	// Get the images
+	if ( $galleryID != 0 )
+		$picarray = $wpdb->get_col("SELECT pid FROM $wpdb->nggpictures WHERE galleryid = '$galleryID' AND exclude != 1 ORDER BY {$ngg->options['galSort']} {$ngg->options['galSortDir']} LIMIT $start, 10 ");	
+
+	// WP-Core code for Post-thumbnail
+	$calling_post_id = 0;
+	if ( isset( $_GET['post_id'] ) )
+		$calling_post_id = $_GET['post_id'];
+		
+?>
+
+<script type="text/javascript"> 
+<!--
+	function NGGSetAsThumbnail(id){
+		var $link = jQuery('a#ngg-post-thumbnail-' + id);
+	
+		$link.text( setPostThumbnailL10n.saving );
+		jQuery.post(ajaxurl, {
+			action:"ngg_set_post_thumbnail", post_id: post_id, thumbnail_id: id, cookie: encodeURIComponent(document.cookie)
+		}, function(str){
+			var win = window.dialogArguments || opener || parent || top;
+			$link.text( setPostThumbnailL10n.setThumbnail );
+			if ( str == '0' ) {
+				alert( setPostThumbnailL10n.error );
+			} else {
+				jQuery('a.ngg-post-thumbnail').show();
+				$link.text( setPostThumbnailL10n.done );
+				$link.fadeOut( 2000 );
+				// set some id as meta input filed
+				win.WPSetThumbnailID('ngg-' + id);
+				// replace the meta box with the image
+				win.WPSetThumbnailHTML(str);
+			}
+		}
+		);
+	}
+//-->
+</script>
+
+<form id="filter" action="" method="get">
+<input type="hidden" name="type" value="<?php echo esc_attr( $GLOBALS['type'] ); ?>" />
+<input type="hidden" name="tab" value="<?php echo esc_attr( $GLOBALS['tab'] ); ?>" />
+<input type="hidden" name="post_id" value="<?php echo (int) $post_id; ?>" />
+
+<div class="tablenav">
+	<?php
+	$page_links = paginate_links( array(
+		'base' => add_query_arg( 'paged', '%#%' ),
+		'format' => '',
+		'total' => ceil($total / 10),
+		'current' => $_GET['paged']
+	));
+	
+	if ( $page_links )
+		echo "<div class='tablenav-pages'>$page_links</div>";
+	?>
+	
+	<div class="alignleft actions">
+		<select id="select_gal" name="select_gal" style="width:120px;">;
+			<option value="0" <?php selected('0', $galleryID); ?> ><?php esc_attr( _e('No gallery',"nggallery") ); ?></option>
+			<?php
+			// Show gallery selection
+			$gallerylist = $wpdb->get_results("SELECT * FROM $wpdb->nggallery ORDER BY gid ASC");
+			if(is_array($gallerylist)) {
+				foreach($gallerylist as $gallery) {
+					$selected = ($gallery->gid == $galleryID )?	' selected="selected"' : "";
+					echo '<option value="'.$gallery->gid.'"'.$selected.' >'.$gallery->title.'</option>'."\n";
+				}
+			}
+			?>
+		</select>
+		<input type="submit" id="show-gallery" value="<?php esc_attr( _e('Select &#187;','nggallery') ); ?>" class="button-secondary" />
+	</div>
+	<br style="clear:both;" />
+</div>
+</form>
+
+<form enctype="multipart/form-data" method="post" action="<?php echo esc_attr($form_action_url); ?>" class="media-upload-form" id="library-form">
+
+	<?php wp_nonce_field('ngg-media-form'); ?>
+
+	<script type="text/javascript">
+	<!--
+	jQuery(function($){
+		var preloaded = $(".media-item.preloaded");
+		if ( preloaded.length > 0 ) {
+			preloaded.each(function(){prepareMediaItem({id:this.id.replace(/[^0-9]/g, '')},'');});
+			updateMediaForm();
+		}
+	});
+	-->
+	</script>
+	
+	<div id="media-items">
+	<?php
+	if( is_array($picarray) ) {
+		foreach ($picarray as $picid) {
+			//TODO:Reduce SQL Queries
+			$picture = nggdb::find_image($picid);
+			?>
+			<div id='media-item-<?php echo $picid ?>' class='media-item preloaded'>
+			  <div class='filename'></div>
+			  <a class='toggle describe-toggle-on' href='#'><?php esc_attr( _e('Show', "nggallery") ); ?></a>
+			  <a class='toggle describe-toggle-off' href='#'><?php esc_attr( _e('Hide', "nggallery") );?></a>
+			  <div class='filename new'><?php echo ( empty($picture->alttext) ) ? wp_html_excerpt($picture->filename,60): stripslashes( wp_html_excerpt($picture->alttext,60) ); ?></div>
+			  <table class='slidetoggle describe startclosed'><tbody>
+				  <tr>
+					<td rowspan='4'><img class='thumbnail' alt='<?php echo esc_attr( $picture->alttext ); ?>' src='<?php echo esc_attr( $picture->thumbURL ); ?>'/></td>
+					<td><?php esc_attr( _e('Image ID:', "nggallery") ); ?><?php echo $picid ?></td>
+				  </tr>
+				  <tr><td><?php echo esc_attr( $picture->filename ); ?></td></tr>
+				  <tr><td><?php echo esc_attr( stripslashes($picture->alttext) ); ?></td></tr>
+				  <tr><td>&nbsp;</td></tr>
+				  <tr>
+					<td class="label"><label for="image[<?php echo $picid ?>][alttext]"><?php esc_attr_e('Alt/Title text', "nggallery") ;?></label></td>
+					<td class="field"><input id="image[<?php echo $picid ?>][alttext]" name="image[<?php echo $picid ?>][alttext]" value="<?php esc_attr_e( stripslashes($picture->alttext) ); ?>" type="text"/></td>
+				  </tr>	
+				  <tr>
+					<td class="label"><label for="image[<?php echo $picid ?>][description]"><?php esc_attr_e("Description","nggallery") ; ?></label></td>
+						<td class="field"><textarea name="image[<?php echo $picid ?>][description]" id="image[<?php echo $picid ?>][description]"><?php esc_attr_e( stripslashes($picture->description) ); ?></textarea></td>
+				  </tr>
+					<tr class="align">
+						<td class="label"><label for="image[<?php echo $picid ?>][align]"><?php esc_attr_e("Alignment"); ?></label></td>
+						<td class="field">
+							<input name="image[<?php echo $picid ?>][align]" id="image-align-none-<?php echo $picid ?>" checked="checked" value="none" type="radio" />
+							<label for="image-align-none-<?php echo $picid ?>" class="align image-align-none-label"><?php esc_attr_e("None") ;?></label>
+							<input name="image[<?php echo $picid ?>][align]" id="image-align-left-<?php echo $picid ?>" value="left" type="radio" />
+							<label for="image-align-left-<?php echo $picid ?>" class="align image-align-left-label"><?php esc_attr_e("Left") ;?></label>
+							<input name="image[<?php echo $picid ?>][align]" id="image-align-center-<?php echo $picid ?>" value="center" type="radio" />
+							<label for="image-align-center-<?php echo $picid ?>" class="align image-align-center-label"><?php esc_attr_e("Center") ;?></label>
+							<input name="image[<?php echo $picid ?>][align]" id="image-align-right-<?php echo $picid ?>" value="right" type="radio" />
+							<label for="image-align-right-<?php echo $picid ?>" class="align image-align-right-label"><?php esc_attr_e("Right") ;?></label>
+						</td>
+					</tr>
+					<tr class="image-size">
+						<th class="label"><label for="image[<?php echo $picid ?>][size]"><span class="alignleft"><?php esc_attr_e("Size") ; ?></span></label>
+						</th>
+						<td class="field">
+							<input name="image[<?php echo $picid ?>][size]" id="image-size-thumb-<?php echo $picid ?>" type="radio" checked="checked" value="thumbnail" />
+							<label for="image-size-thumb-<?php echo $picid ?>"><?php esc_attr_e("Thumbnail") ; ?></label>
+							<input name="image[<?php echo $picid ?>][size]" id="image-size-full-<?php echo $picid ?>" type="radio" value="full" />
+							<label for="image-size-full-<?php echo $picid ?>"><?php esc_attr_e("Full size") ; ?></label>
+							<input name="image[<?php echo $picid ?>][size]" id="image-size-singlepic-<?php echo $picid ?>" type="radio" value="singlepic" />
+							<label for="image-size-singlepic-<?php echo $picid ?>"><?php esc_attr_e("Singlepic", "nggallery") ; ?></label>
+						</td>
+					</tr>
+				   <tr class="submit">
+						<td>
+							<input type="hidden"  name="image[<?php echo $picid ?>][thumb]" value="<?php echo $picture->thumbURL ?>" />
+							<input type="hidden"  name="image[<?php echo $picid ?>][url]" value="<?php echo $picture->imageURL ?>" />
+						</td>
+						<td class="savesend">
+							<?php
+							if ( $calling_post_id && current_theme_supports( 'post-thumbnails', get_post_type( $calling_post_id ) ) )
+								echo "<a class='ngg-post-thumbnail' id='ngg-post-thumbnail-" . $picid . "' href='#' onclick='NGGSetAsThumbnail(\"$picid\");return false;'>" . esc_html__( 'Use as featured image' ) . "</a>";
+							?>
+							<button type="submit" class="button" value="1" name="send[<?php echo $picid ?>]"><?php esc_html_e( 'Insert into Post' ); ?></button>
+						</td>
+				   </tr>
+			  </tbody></table>
+			</div>
+		<?php		  
+		}
+	}
+	?>
+	</div>
+	<p class="ml-submit">
+		<input type="submit" class="button savebutton" name="save" value="<?php esc_attr( _e('Save all changes','nggallery') ); ?>" />
+	</p>
+	<input type="hidden" name="post_id" id="post_id" value="<?php echo (int) $post_id; ?>" />
+	<input type="hidden" name="select_gal" id="select_gal" value="<?php echo (int) $galleryID; ?>" />
+</form>
+
+<?php
+}
+?>
\ No newline at end of file
diff --git a/wp-content/plugins/nextgen-gallery/admin/overview.php b/wp-content/plugins/nextgen-gallery/admin/overview.php
new file mode 100644
index 000000000..cf0989a8a
--- /dev/null
+++ b/wp-content/plugins/nextgen-gallery/admin/overview.php
@@ -0,0 +1,850 @@
+<?php  
+if(preg_match('#' . basename(__FILE__) . '#', $_SERVER['PHP_SELF'])) { die('You are not allowed to call this page directly.'); }
+
+/**
+ * nggallery_admin_overview()
+ *
+ * Add the admin overview the dashboard style 
+ * @return mixed content
+ */
+function nggallery_admin_overview()  {
+	?>
+	<div class="wrap ngg-wrap">
+        <?php screen_icon( 'nextgen-gallery' ); ?>
+		<h2><?php _e('NextGEN Gallery Overview', 'nggallery') ?></h2>
+        <?php if (version_compare(PHP_VERSION, '5.0.0', '<')) ngg_check_for_PHP5(); ?>
+		<div id="dashboard-widgets-wrap" class="ngg-overview">
+		    <div id="dashboard-widgets" class="metabox-holder">
+				<div id="post-body">
+					<div id="dashboard-widgets-main-content">
+						<div class="postbox-container" style="width:75%;">
+							<?php do_meta_boxes('ngg_overview', 'left', ''); ?>
+						</div>
+			    		<div class="postbox-container" style="width:24%;">
+							<?php do_meta_boxes('ngg_overview', 'right', ''); ?>
+						</div>						
+					</div>
+				</div>
+		    </div>
+		</div>
+	</div>
+	<script type="text/javascript">
+		//<![CDATA[
+        var ajaxWidgets, ajaxPopulateWidgets;
+        
+        jQuery(document).ready( function($) {
+        	// These widgets are sometimes populated via ajax
+        	ajaxWidgets = [
+        		'ngg_lastdonators',
+        		'dashboard_primary',
+        		'ngg_locale',
+        		'dashboard_plugins'
+        	];
+        
+        	ajaxPopulateWidgets = function(el) {
+        		show = function(id, i) {
+        			var p, e = $('#' + id + ' div.inside:visible').find('.widget-loading');
+        			if ( e.length ) {
+        				p = e.parent();
+        				setTimeout( function(){
+        					p.load('admin-ajax.php?action=ngg_dashboard&jax=' + id, '', function() {
+        						p.hide().slideDown('normal', function(){
+        							$(this).css('display', '');
+        							if ( 'dashboard_plugins' == id && $.isFunction(tb_init) )
+        								tb_init('#dashboard_plugins a.thickbox');
+        						});
+        					});
+        				}, i * 500 );
+        			}
+        		}
+        		if ( el ) {
+        			el = el.toString();
+        			if ( $.inArray(el, ajaxWidgets) != -1 )
+        				show(el, 0);
+        		} else {
+        			$.each( ajaxWidgets, function(i) {
+        				show(this, i);
+        			});
+        		}
+        	};
+        	ajaxPopulateWidgets();
+        } );
+
+		jQuery(document).ready( function($) {
+			// postboxes setup
+			postboxes.add_postbox_toggles('ngg-overview');
+		});
+		//]]>
+	</script>
+	<?php
+}
+
+/**
+ * Load the meta boxes
+ *
+ */
+add_meta_box('dashboard_right_now', __('Welcome to NextGEN Gallery !', 'nggallery'), 'ngg_overview_right_now', 'ngg_overview', 'left', 'core');
+add_meta_box('ngg_meta_box', __('Do you like this Plugin?', 'nggallery'), 'ngg_likeThisMetaBox', 'ngg_overview', 'right', 'core');
+if ( !(get_locale() == 'en_US') )
+	add_meta_box('ngg_locale', __('Translation', 'nggallery'), 'ngg_widget_locale', 'ngg_overview', 'right', 'core');
+add_meta_box('dashboard_primary', __('Latest News', 'nggallery'), 'ngg_widget_overview_news', 'ngg_overview', 'left', 'core');
+add_meta_box('ngg_lastdonators', __('Recent donators', 'nggallery'), 'ngg_widget_overview_donators', 'ngg_overview', 'right', 'core');
+if ( !is_multisite() || is_super_admin() ) {			
+    add_meta_box('ngg_plugin_check', __('Plugin Check', 'nggallery'), 'ngg_plugin_check', 'ngg_overview', 'right', 'core');
+    add_meta_box('ngg_server', __('Server Settings', 'nggallery'), 'ngg_overview_server', 'ngg_overview', 'right', 'core');
+    add_meta_box('dashboard_plugins', __('Related plugins', 'nggallery'), 'ngg_widget_related_plugins', 'ngg_overview', 'left', 'core');
+}
+
+function ngg_likeThisMetaBox() {
+
+	echo '<p>';
+    echo sprintf(__('This plugin is primarily developed, maintained, supported and documented by <a href="%s">Alex Rabe</a> with a lot of love & effort. Any kind of contribution would be highly appreciated. Thanks!', 'nggallery'), 'http://alexrabe.de/');
+	echo '</p><ul>';
+
+	$url = 'http://wordpress.org/extend/plugins/nextgen-gallery/' ;
+	echo "<li style='padding-left: 38px; background:transparent url(" . NGGALLERY_URLPATH . "admin/images/icon-rating.png ) no-repeat scroll center left; background-position: 16px 50%; text-decoration: none;'><a href='{$url}' target='_blank'>";
+	_e('Give it a good rating on WordPress.org.', 'nggallery');
+	echo "</a></li>";
+
+	$url = 'http://alexrabe.de/donation/';
+	echo "<li style='padding-left: 38px; background:transparent url(" . NGGALLERY_URLPATH . "admin/images/icon-paypal.gif ) no-repeat scroll center left; background-position: 16px 50%; text-decoration: none;'><a href='{$url}' target='_blank'>";
+	_e("Donate the work via paypal.", 'nggallery');
+	echo "</a></li>";
+
+	$url = 'http://www.amazon.de/gp/registry/wishlist/28H3MATVSL17C';
+	echo "<li style='padding-left: 38px; background:transparent url(" . NGGALLERY_URLPATH . "admin/images/icon-amazon.gif ) no-repeat scroll center left; background-position: 16px 50%; text-decoration: none;'><a href='{$url}' target='_blank'>";
+	_e("Send a gift to show your appreciation.", 'nggallery');
+	echo "</a></li>";
+
+	$url = 'http://alexrabe.de/wordpress-plugins/wordtube/translation-of-plugins/';
+	echo "<li style='padding-left: 38px; background:transparent url(" . NGGALLERY_URLPATH . "admin/images/icon-translate.png ) no-repeat scroll center left; background-position: 16px 50%; text-decoration: none;'><a href='{$url}'>";
+	_e("Help translating it.", 'nggallery');
+	echo "</a></li>";
+
+	echo '</ul>';
+}
+
+/**
+ * Ajax Check for conflict with other plugins/themes
+ * 
+ * @return void
+ */
+function ngg_plugin_check() {
+    
+    global $ngg;
+?>
+<script type="text/javascript"> 
+(function($) {
+	nggPluginCheck = {
+	
+		settings: {
+				img_run:  '<img src="<?php echo esc_url( admin_url( 'images/wpspin_light.gif' ) ); ?>" class="icon" alt="started"/>',
+                img_ok:   '<img src="<?php echo esc_url( admin_url( 'images/yes.png' ) ); ?>" class="icon" alt="ok"/>',
+                img_fail: '<img src="<?php echo esc_url( admin_url( 'images/no.png' ) ); ?>" class="icon" alt="failed" />',
+                adminurl: '<?php echo esc_url( admin_url( 'admin-ajax.php' ) ); ?>',
+                domain:   '<?php echo esc_url( trailingslashit ( home_url() ) ); ?>'
+		},
+		
+        run: function( index, state ) {
+ 			ul = $('#plugin_check');
+            s = this.settings;
+            var step = 1; 
+            switch ( index ) {
+                case 1:
+                    this.check1();
+                    break;
+                case 2:
+                    this.check2( step );
+                    break;
+                case 3:
+                    this.check3();
+                    break;
+            }                      
+        },
+        
+        // this function check if the json API will work with your theme & plugins
+        check1 : function() {
+            this.start(1);
+			var req = $.ajax({
+                dataType: 'json',
+			   	url: s.domain,
+			   	data:'callback=json&format=json&method=version',
+			   	cache: false,
+			   	timeout: 10000,
+			   	success: function(msg){
+                    if (msg.version == '<?php echo $ngg->version; ?>')
+                        nggPluginCheck.success(1);
+                    else
+                        nggPluginCheck.failed(1);
+			    },
+			    error: function (msg) {
+                    nggPluginCheck.failed(1);                    
+				},
+                complete: function () {
+                    nggPluginCheck.run(2);
+                }
+			});
+            
+        },
+
+        // this function check if GD lib can create images & thumbnails
+        check2 : function( step ) {
+            if (step == 1) this.start(2);
+            var stop = false;
+			var req = $.ajax({
+                type: "POST",
+			   	url: s.adminurl,
+			   	data:"action=ngg_image_check&step=" + step,
+			   	cache: false,
+			   	timeout: 10000,
+			   	success: function(msg){
+                    if (msg.stat == 'ok') {
+                        nggPluginCheck.success(2, msg.message);
+                    } else {
+                        if (step == 1)
+                            nggPluginCheck.failed(2);
+                        stop = true;
+                    }
+                            
+			    },
+			    error: function (msg) {
+                    if (step == 1)
+                        nggPluginCheck.failed(2);
+                    stop = true;
+				},
+                complete: function () {
+                    step++;
+                    if (step <= 11 && stop == false)
+                        nggPluginCheck.check2(step);
+                    else
+                        nggPluginCheck.run(3);
+                }
+			});            
+        },
+
+        // this function check if wp_head / wp_footer is avaiable
+        check3 : function() {
+            this.start(3);
+			var req = $.ajax({
+                type: "POST",
+			   	url: s.adminurl,
+			   	data:"action=ngg_test_head_footer",
+			   	cache: false,
+			   	timeout: 10000,
+			   	success: function(msg){
+                    if (msg == 'success')
+                        nggPluginCheck.success(3);
+                    else
+                        nggPluginCheck.failed(3, msg);    
+			    },
+			    error: function (msg) {
+                    nggPluginCheck.failed(3);
+				}
+			});            
+        },
+        
+		start: function( id ) {
+            
+            s = this.settings;
+            var field = "#check" + id;
+
+            if ( ul.find(field + " img").length == 0)
+                $(field).prepend( s.img_run );
+			else
+			    $(field + " img").replaceWith( s.img_run );
+            
+            $(field + " .success").hide();
+            $(field + " .failed").hide();
+            $(field + " .default").replaceWith('<p class="default message"><?php echo esc_js( __('Running...', 'nggallery') ); ?></p> ');
+		},
+		
+		success: function( id, msg ) {
+            
+            s = this.settings;
+            var field = "#check" + id;
+
+            if ( ul.find(field + " img").length == 0)
+                $(field).prepend( s.img_ok );
+			else
+			    $(field + " img").replaceWith( s.img_ok );
+            
+            $(field + " .default").hide();
+            if (msg)
+                $(field + " .success").replaceWith('<p class="success message">' + msg +' </p> ');
+            else
+                $(field + " .success").show();	
+				
+		},
+
+		failed: function( id, msg ) {
+            
+            s = this.settings;
+            var field = "#check" + id; 
+
+            if ( ul.find(field + " img").length == 0)
+                $(field).prepend( s.img_fail );
+			else 
+			    $(field + " img").replaceWith( s.img_fail );
+                
+            $(field + " .default").hide();
+            if (msg)
+                $(field + " .failed").replaceWith('<p class="failed message">' + msg +' </p> ');
+            else
+                $(field + " .failed").show();	
+				
+		}
+
+	};
+})(jQuery);
+</script>
+<div class="dashboard-widget-holder wp_dashboard_empty">
+	<div class="ngg-dashboard-widget">
+	  	<div class="dashboard-widget-content">
+      		<ul id="plugin_check" class="settings">
+                <li id="check1">
+                    <strong><?php _e('Check plugin/theme conflict', 'nggallery'); ?></strong>
+                    <p class="default message"><?php _e('Not tested', 'nggallery'); ?></p>                   
+                    <p class="success message" style="display: none;"><?php _e('No conflict could be detected', 'nggallery'); ?></p>
+                    <p class="failed message" style="display: none;"><?php _e('Test failed, disable other plugins & switch to default theme', 'nggallery'); ?></p>
+                </li>
+                <li id="check2">
+                    <strong><?php _e('Test image function', 'nggallery'); ?></strong>
+                    <p class="default message"><?php _e('Not tested', 'nggallery'); ?></p>
+                    <p class="success message" style="display: none;"><?php _e('The plugin could create images', 'nggallery'); ?></p>
+                    <p class="failed message" style="display: none;"><?php _e('Couldn\'t create image, check your memory limit', 'nggallery'); ?></p>
+                </li>
+                <li id="check3">
+                    <strong><?php _e('Check theme compatibility', 'nggallery'); ?></strong>
+                    <p class="default message"><?php _e('Not tested', 'nggallery'); ?></p>
+                    <p class="success message" style="display: none;"><?php _e('Your theme should work fine with NextGEN Gallery', 'nggallery'); ?></p>
+                    <p class="failed message" style="display: none;"><?php _e('wp_head()/wp_footer() is missing, contact the theme author', 'nggallery'); ?></p>
+                </li>
+            </ul>
+ 			<p class="textright">
+                <input type="button" name="update" value="<?php _e('Check plugin', 'nggallery'); ?>" onclick="nggPluginCheck.run(1);" class="button-secondary" />
+			</p>
+		</div>
+    </div>
+</div>
+<?php	
+}
+
+/**
+ * Show the server settings in a dashboard widget
+ * 
+ * @return void
+ */
+function ngg_overview_server() {
+?>
+<div id="dashboard_server_settings" class="dashboard-widget-holder wp_dashboard_empty">
+	<div class="ngg-dashboard-widget">
+	  	<div class="dashboard-widget-content">
+      		<ul class="settings">
+      		<?php ngg_get_serverinfo(); ?>
+            </ul>
+            <p><strong><?php _e('Graphic Library', 'nggallery'); ?></strong></p>
+            <ul class="settings">
+            <?php ngg_gd_info(); ?>
+	   		</ul>
+		</div>
+    </div>
+</div>
+<?php	
+}
+
+/**
+ * Show the most recent donators
+ * 
+ * @return void
+ */
+function ngg_widget_overview_donators() { 
+    echo '<p class="widget-loading hide-if-no-js">' . __( 'Loading&#8230;' ) . '</p><p class="describe hide-if-js">' . __('This widget requires JavaScript.') . '</p>';
+}
+ 
+function ngg_overview_donators() {
+	global $ngg;
+	
+	$i = 0;
+	$list = '';
+	
+	$supporter = nggAdminPanel::get_remote_array($ngg->donators);
+
+	// Ensure that this is a array
+	if ( !is_array($supporter) )
+		return _e('Thanks to all donators...', 'nggallery');
+		
+	$supporter = array_reverse($supporter);
+	
+	foreach ($supporter as $name => $url) {
+		$i++;
+		if ($url)
+			$list .= "<li><a href=\"$url\">$name</a></li>\n";
+		else
+			$list .= "<li>$name</li>";
+		if ($i > 4)
+			break;
+	}
+
+?>
+<div id="dashboard_server_settings" class="dashboard-widget-holder">
+	<div class="ngg-dashboard-widget">
+	  	<div class="dashboard-widget-content">
+	  		<ul class="settings">
+			<?php echo $list; ?>
+			</ul>
+			<p class="textright">
+				<a class="button" href="admin.php?page=nggallery-about#donators"><?php _e('View all', 'nggallery'); ?></a>
+			</p>
+		</div>
+    </div>
+</div>
+<?php	
+}
+
+/**
+ * Show the latest NextGEN Gallery news
+ * 
+ * @return void
+ */
+function ngg_widget_overview_news() { 
+    echo '<p class="widget-loading hide-if-no-js">' . __( 'Loading&#8230;' ) . '</p><p class="describe hide-if-js">' . __('This widget requires JavaScript.') . '</p>';
+} 
+function ngg_overview_news(){
+
+?>
+<div class="rss-widget">
+    <?php
+    $rss = @fetch_feed( 'http://feeds.feedburner.com/alexrabe' );
+      
+    if ( is_object($rss) ) {
+
+        if ( is_wp_error($rss) ) {
+            echo '<p>' . sprintf(__('Newsfeed could not be loaded.  Check the <a href="%s">front page</a> to check for updates.', 'nggallery'), 'http://alexrabe.de/') . '</p>';
+    		return;
+        }
+        
+        echo '<ul>';
+		foreach ( $rss->get_items(0, 3) as $item ) {
+    		$link = $item->get_link();
+    		while ( stristr($link, 'http') != $link )
+    			$link = substr($link, 1);
+    		$link = esc_url(strip_tags($link));
+    		$title = esc_attr(strip_tags($item->get_title()));
+    		if ( empty($title) )
+    			$title = __('Untitled');
+    
+    		$desc = str_replace( array("\n", "\r"), ' ', esc_attr( strip_tags( @html_entity_decode( $item->get_description(), ENT_QUOTES, get_option('blog_charset') ) ) ) );
+    		$desc = wp_html_excerpt( $desc, 360 );
+    
+    		// Append ellipsis. Change existing [...] to [&hellip;].
+    		if ( '[...]' == substr( $desc, -5 ) )
+    			$desc = substr( $desc, 0, -5 ) . '[&hellip;]';
+    		elseif ( '[&hellip;]' != substr( $desc, -10 ) )
+    			$desc .= ' [&hellip;]';
+    
+    		$desc = esc_html( $desc );
+            
+			$date = $item->get_date();
+            $diff = '';
+            
+			if ( $date ) {
+			    
+                $diff = human_time_diff( strtotime($date, time()) );
+                 
+				if ( $date_stamp = strtotime( $date ) )
+					$date = ' <span class="rss-date">' . date_i18n( get_option( 'date_format' ), $date_stamp ) . '</span>';
+				else
+					$date = '';
+			}            
+        ?>
+          <li><a class="rsswidget" title="" href='<?php echo $link; ?>'><?php echo $title; ?></a>
+		  <span class="rss-date"><?php echo $date; ?></span> 
+          <div class="rssSummary"><strong><?php echo $diff; ?></strong> - <?php echo $desc; ?></div></li>
+        <?php
+        }
+        echo '</ul>';
+      }
+    ?>
+</div>
+<?php
+}
+
+/**
+ * Show a summary of the used images
+ * 
+ * @return void
+ */
+function ngg_overview_right_now() {
+	global $wpdb;
+	$images    = intval( $wpdb->get_var("SELECT COUNT(*) FROM $wpdb->nggpictures") );
+	$galleries = intval( $wpdb->get_var("SELECT COUNT(*) FROM $wpdb->nggallery") );
+	$albums    = intval( $wpdb->get_var("SELECT COUNT(*) FROM $wpdb->nggalbum") );
+?>
+<div class="table table_content">
+	<p class="sub"><?php _e('At a Glance', 'nggallery'); ?></p>
+	<table>
+		<tbody>
+			<tr class="first">
+				<td class="first b"><a href="admin.php?page=nggallery-add-gallery"><?php echo $images; ?></a></td>
+				<td class="t"><a href="admin.php?page=nggallery-add-gallery"><?php echo _n( 'Image', 'Images', $images, 'nggallery' ); ?></a></td>
+				<td class="b"></td>
+				<td class="last"></td>
+			</tr>
+			<tr>
+				<td class="first b"><a href="admin.php?page=nggallery-manage-gallery"><?php echo $galleries; ?></a></td>
+				<td class="t"><a href="admin.php?page=nggallery-manage-gallery"><?php echo _n( 'Gallery', 'Galleries', $galleries, 'nggallery' ); ?></a></td>
+				<td class="b"></td>
+				<td class="last"></td>
+			</tr>
+			<tr>
+				<td class="first b"><a href="admin.php?page=nggallery-manage-album"><?php echo $albums; ?></a></td>
+				<td class="t"><a href="admin.php?page=nggallery-manage-album"><?php echo _n( 'Album', 'Albums', $albums, 'nggallery' ); ?></a></td>
+				<td class="b"></td>
+				<td class="last"></td>
+			</tr>
+		</tbody>
+	</table>
+</div>
+<div class="versions" style="padding-top:14px">
+    <p>
+	<?php if(current_user_can('NextGEN Upload images')): ?><a class="button rbutton" href="admin.php?page=nggallery-add-gallery"><?php _e('Upload pictures', 'nggallery') ?></a><?php endif; ?>
+	<?php _e('Here you can control your images, galleries and albums.', 'nggallery') ?>
+	</p>
+<br class="clear" />
+</div>    
+<?php
+if ( is_multisite() )
+    ngg_dashboard_quota();
+}
+
+// Display File upload quota on dashboard
+function ngg_dashboard_quota() {
+    
+	if ( get_site_option( 'upload_space_check_disabled' ) )
+		return;
+        
+    if ( !wpmu_enable_function('wpmuQuotaCheck') )
+        return;    
+
+	$quota = get_space_allowed();
+	$used = get_dirsize( BLOGUPLOADDIR ) / 1024 / 1024;
+
+	if ( $used > $quota )
+		$percentused = '100';
+	else
+		$percentused = ( $used / $quota ) * 100;
+	$used_color = ( $percentused < 70 ) ? ( ( $percentused >= 40 ) ? 'waiting' : 'approved' ) : 'spam';
+	$used = round( $used, 2 );
+	$percentused = number_format( $percentused );
+
+	?>
+	<p class="sub musub" style="position:static" ><?php _e( 'Storage Space' ); ?></p>
+	<div class="table table_content musubtable">
+	<table>
+		<tr class="first">
+			<td class="first b b-posts"><?php printf( __( '<a href="%1$s" title="Manage Uploads" class="musublink">%2$sMB</a>' ), esc_url( admin_url( 'admin.php?page=nggallery-manage-gallery' ) ), $quota ); ?></td>
+			<td class="t posts"><?php _e( 'Space Allowed' ); ?></td>
+		</tr>
+	</table>
+	</div>
+	<div class="table table_discussion musubtable">
+	<table>
+		<tr class="first">
+			<td class="b b-comments"><?php printf( __( '<a href="%1$s" title="Manage Uploads" class="musublink">%2$sMB (%3$s%%)</a>' ), esc_url( admin_url( 'admin.php?page=nggallery-manage-gallery' ) ), $used, $percentused ); ?></td>
+			<td class="last t comments <?php echo $used_color;?>"><?php _e( 'Space Used' );?></td>
+		</tr>
+	</table>
+	</div>
+	<br class="clear" />
+	<?php
+}
+
+/**
+ * Looks up for translation file
+ * 
+ * @return void
+ */
+function ngg_widget_locale() {
+    
+	require_once(NGGALLERY_ABSPATH . '/lib/locale.php');
+	
+	$locale = new ngg_locale();
+	
+	$overview_url = admin_url() . 'admin.php?page=' . NGGFOLDER;
+	
+	// Check if someone would like to update the translation file
+	if ( isset($_GET['locale']) && $_GET['locale'] == 'update' ) {
+		check_admin_referer('ngg_update_locale');
+		
+		$result = $locale->download_locale();
+		
+		if ($result == true) {
+		?>
+		<p class="hint"><?php _e('Translation file successful updated. Please reload page.', 'nggallery'); ?></p>
+		<p class="textright">
+			<a class="button" href="<?php echo esc_url(strip_tags($overview_url)); ?>"><?php _e('Reload page', 'nggallery'); ?></a>
+		</p>
+		<?php
+		} else {
+		?>
+		<p class="hint"><?php _e('Translation file couldn\'t be updated', 'nggallery'); ?></p>
+		<?php		
+		}
+		
+		return;
+	}
+        
+    echo '<p class="widget-loading hide-if-no-js">' . __( 'Loading&#8230;' ) . '</p><p class="describe hide-if-js">' . __('This widget requires JavaScript.') . '</p>';
+} 
+
+function ngg_locale() {
+	global $ngg;
+	
+	require_once(NGGALLERY_ABSPATH . '/lib/locale.php');
+	
+	$locale = new ngg_locale();
+	$overview_url = admin_url() . 'admin.php?page=' . NGGFOLDER;
+    $result = $locale->check();
+	$update_url    = wp_nonce_url ( $overview_url . '&amp;locale=update', 'ngg_update_locale');
+
+	//Translators can change this text via gettext
+	if ($result == 'installed') {
+		echo $ngg->translator;
+		if ( !is_wp_error($locale->response) && $locale->response['response']['code'] == '200') {
+		?>
+		<p class="textright">
+			<a class="button" href="<?php echo esc_url( strip_tags($update_url) ); ?>"><?php _e('Update', 'nggallery'); ?></a>
+		</p>
+		<?php
+		}
+	}
+	
+	//Translators can change this text via gettext
+	if ($result == 'available') {
+		?>
+		<p><strong>Download now your language file !</strong></p>
+		<p class="textright">
+			<a class="button" href="<?php echo esc_url( strip_tags($update_url) ); ?>"><?php _e('Download', 'nggallery'); ?></a>
+		</p>
+		<?php
+	}
+
+	
+	if ($result == 'not_exist')
+		echo '<p class="hint">'. sprintf( '<strong>Would you like to help to translate this plugin ?</strong> <a target="_blank" href="%s">Download</a> the current pot file and read <a href="http://alexrabe.de/wordpress-plugins/wordtube/translation-of-plugins/">here</a> how you can translate the plugin.', NGGALLERY_URLPATH . 'lang/nggallery.pot').'</p>';
+
+}
+
+/**
+ * Show GD Library version information
+ * 
+ * @return void
+ */
+function ngg_gd_info() {
+	
+	if(function_exists("gd_info")){
+		$info = gd_info();
+		$keys = array_keys($info);
+		for($i=0; $i<count($keys); $i++) {
+			if(is_bool($info[$keys[$i]]))
+				echo "<li> " . $keys[$i] ." : <span>" . ngg_gd_yesNo($info[$keys[$i]]) . "</span></li>\n";
+			else
+				echo "<li> " . $keys[$i] ." : <span>" . $info[$keys[$i]] . "</span></li>\n";
+		}
+	}
+	else {
+		echo '<h4>'.__('No GD support', 'nggallery').'!</h4>';
+	}
+}
+
+/**
+ * Return localized Yes or no 
+ * 
+ * @param bool $bool
+ * @return return 'Yes' | 'No'
+ */
+function ngg_gd_yesNo( $bool ){
+	if($bool) 
+		return __('Yes', 'nggallery');
+	else 
+		return __('No', 'nggallery');
+}
+
+
+/**
+ * Show up some server infor's
+ * @author GamerZ (http://www.lesterchan.net)
+ * 
+ * @return void
+ */
+function ngg_get_serverinfo() {
+
+	global $wpdb, $ngg;
+	// Get MYSQL Version
+	$sqlversion = $wpdb->get_var("SELECT VERSION() AS version");
+	// GET SQL Mode
+	$mysqlinfo = $wpdb->get_results("SHOW VARIABLES LIKE 'sql_mode'");
+	if (is_array($mysqlinfo)) $sql_mode = $mysqlinfo[0]->Value;
+	if (empty($sql_mode)) $sql_mode = __('Not set', 'nggallery');
+	// Get PHP Safe Mode
+	if(ini_get('safe_mode')) $safe_mode = __('On', 'nggallery');
+	else $safe_mode = __('Off', 'nggallery');
+	// Get PHP allow_url_fopen
+	if(ini_get('allow_url_fopen')) $allow_url_fopen = __('On', 'nggallery');
+	else $allow_url_fopen = __('Off', 'nggallery'); 
+	// Get PHP Max Upload Size
+	if(ini_get('upload_max_filesize')) $upload_max = ini_get('upload_max_filesize');	
+	else $upload_max = __('N/A', 'nggallery');
+	// Get PHP Output buffer Size
+	if(ini_get('pcre.backtrack_limit')) $backtrack_limit = ini_get('pcre.backtrack_limit');	
+	else $backtrack_limit = __('N/A', 'nggallery');
+	// Get PHP Max Post Size
+	if(ini_get('post_max_size')) $post_max = ini_get('post_max_size');
+	else $post_max = __('N/A', 'nggallery');
+	// Get PHP Max execution time
+	if(ini_get('max_execution_time')) $max_execute = ini_get('max_execution_time');
+	else $max_execute = __('N/A', 'nggallery');
+	// Get PHP Memory Limit 
+	if(ini_get('memory_limit')) $memory_limit = $ngg->memory_limit . 'M';
+	else $memory_limit = __('N/A', 'nggallery');
+	// Get actual memory_get_usage
+	if (function_exists('memory_get_usage')) $memory_usage = round(memory_get_usage() / 1024 / 1024, 2) . __(' MByte', 'nggallery');
+	else $memory_usage = __('N/A', 'nggallery');
+	// required for EXIF read
+	if (is_callable('exif_read_data')) $exif = __('Yes', 'nggallery'). " ( V" . substr(phpversion('exif'),0,4) . ")" ;
+	else $exif = __('No', 'nggallery');
+	// required for meta data
+	if (is_callable('iptcparse')) $iptc = __('Yes', 'nggallery');
+	else $iptc = __('No', 'nggallery');
+	// required for meta data
+	if (is_callable('xml_parser_create')) $xml = __('Yes', 'nggallery');
+	else $xml = __('No', 'nggallery');
+	
+?>
+	<li><?php _e('Operating System', 'nggallery'); ?> : <span><?php echo PHP_OS; ?>&nbsp;(<?php echo (PHP_INT_SIZE * 8) ?>&nbsp;Bit)</span></li>
+	<li><?php _e('Server', 'nggallery'); ?> : <span><?php echo $_SERVER["SERVER_SOFTWARE"]; ?></span></li>
+	<li><?php _e('Memory usage', 'nggallery'); ?> : <span><?php echo $memory_usage; ?></span></li>
+	<li><?php _e('MYSQL Version', 'nggallery'); ?> : <span><?php echo $sqlversion; ?></span></li>
+	<li><?php _e('SQL Mode', 'nggallery'); ?> : <span><?php echo $sql_mode; ?></span></li>
+	<li><?php _e('PHP Version', 'nggallery'); ?> : <span><?php echo PHP_VERSION; ?></span></li>
+	<li><?php _e('PHP Safe Mode', 'nggallery'); ?> : <span><?php echo $safe_mode; ?></span></li>
+	<li><?php _e('PHP Allow URL fopen', 'nggallery'); ?> : <span><?php echo $allow_url_fopen; ?></span></li>
+	<li><?php _e('PHP Memory Limit', 'nggallery'); ?> : <span><?php echo $memory_limit; ?></span></li>
+	<li><?php _e('PHP Max Upload Size', 'nggallery'); ?> : <span><?php echo $upload_max; ?></span></li>
+	<li><?php _e('PHP Max Post Size', 'nggallery'); ?> : <span><?php echo $post_max; ?></span></li>
+	<li><?php _e('PCRE Backtracking Limit', 'nggallery'); ?> : <span><?php echo $backtrack_limit; ?></span></li>
+	<li><?php _e('PHP Max Script Execute Time', 'nggallery'); ?> : <span><?php echo $max_execute; ?>s</span></li>
+	<li><?php _e('PHP Exif support', 'nggallery'); ?> : <span><?php echo $exif; ?></span></li>
+	<li><?php _e('PHP IPTC support', 'nggallery'); ?> : <span><?php echo $iptc; ?></span></li>
+	<li><?php _e('PHP XML support', 'nggallery'); ?> : <span><?php echo $xml; ?></span></li>
+<?php
+}
+
+/**
+ * Inform about the end of PHP4
+ * 
+ * @return void
+ */
+function ngg_check_for_PHP5() {
+    ?>
+	<div class="updated">
+		<p><?php _e('NextGEN Gallery contains some functions which are only available under PHP 5.2. You are using the old PHP 4 version, upgrade now! It\'s no longer supported by the PHP group. Many shared hosting providers offer both PHP 4 and PHP 5, running simultaneously. Ask your provider if they can do this.', 'nggallery'); ?></p>
+	</div>
+    <?php
+}
+
+/**
+ * ngg_get_phpinfo() - Extract all of the data from phpinfo into a nested array
+ * 
+ * @author jon@sitewizard.ca
+ * @return array
+ */
+function ngg_get_phpinfo() {
+
+	ob_start();
+	phpinfo();
+	$phpinfo = array('phpinfo' => array());
+	
+	if ( preg_match_all('#(?:<h2>(?:<a name=".*?">)?(.*?)(?:</a>)?</h2>)|(?:<tr(?: class=".*?")?><t[hd](?: class=".*?")?>(.*?)\s*</t[hd]>(?:<t[hd](?: class=".*?")?>(.*?)\s*</t[hd]>(?:<t[hd](?: class=".*?")?>(.*?)\s*</t[hd]>)?)?</tr>)#s', ob_get_clean(), $matches, PREG_SET_ORDER) )
+	    foreach($matches as $match) {
+	        if(strlen($match[1]))
+	            $phpinfo[$match[1]] = array();
+	        elseif(isset($match[3]))
+	            $phpinfo[end(array_keys($phpinfo))][$match[2]] = isset($match[4]) ? array($match[3], $match[4]) : $match[3];
+	        else
+	            $phpinfo[end(array_keys($phpinfo))][] = $match[2];
+	    }
+	    
+	return $phpinfo;
+}
+
+/**
+ * Show NextGEN Gallery related plugins. Fetch plugins from wp.org which have added 'nextgen-gallery' as tag in readme.txt
+ * 
+ * @return postbox output
+ */
+function ngg_widget_related_plugins() { 
+    echo '<p class="widget-loading hide-if-no-js">' . __( 'Loading&#8230;' ) . '</p><p class="describe hide-if-js">' . __('This widget requires JavaScript.') . '</p>';
+}  
+function ngg_related_plugins() {
+	include(ABSPATH . 'wp-admin/includes/plugin-install.php');
+
+	// this api sucks , tags will not be used in the correct way : nextgen-gallery cannot be searched
+	$api = plugins_api('query_plugins', array('search' => 'nextgen') );
+	
+	if ( is_wp_error($api) )
+		return;
+	
+	// don't show my own plugin :-) and some other plugins, which come up with the search result
+	$blacklist = array(
+		'nextgen-gallery',
+		'galleria-wp',
+		'photosmash-galleries',
+		'flash-album-gallery',
+		'events-calendar',
+		'widgets',
+		'side-content',
+		'featurific-for-wordpress',
+		'smooth-gallery-replacement',
+		'livesig',
+		'wordpress-gallery-slideshow',
+		'nkmimagefield',
+		'nextgen-ajax',
+        'projectmanager'
+	);
+	
+	$i = 0; 
+	while ( $i < 4 ) {
+
+		// pick them randomly	
+		if ( 0 == count($api->plugins) )
+			return;
+			
+		$key = array_rand($api->plugins);
+		$plugin = $api->plugins[$key];
+
+		// don't forget to remove them
+		unset($api->plugins[$key]);
+		
+		if ( !isset($plugin->name) )
+			continue;
+			
+		if ( in_array($plugin->slug , $blacklist ) ) 
+			continue;
+
+		$link   = esc_url( $plugin->homepage );
+		$title  = esc_html( $plugin->name );
+			
+		$description = esc_html( strip_tags(@html_entity_decode($plugin->short_description, ENT_QUOTES, get_option('blog_charset'))) );
+	
+		$ilink = wp_nonce_url('plugin-install.php?tab=plugin-information&plugin=' . $plugin->slug, 'install-plugin_' . $plugin->slug) .
+							'&amp;TB_iframe=true&amp;width=600&amp;height=800';
+	
+		echo "<h5><a href='$link'>$title</a></h5>&nbsp;<span>(<a href='$ilink' class='thickbox' title='$title'>" . __( 'Install' ) . "</a>)</span>\n";
+		echo "<p>$description<strong> " . __( 'Author' ) . " : </strong>$plugin->author</p>\n";
+		
+		$i++;
+	}
+
+}
+?>
\ No newline at end of file
diff --git a/wp-content/plugins/nextgen-gallery/admin/publish.php b/wp-content/plugins/nextgen-gallery/admin/publish.php
new file mode 100644
index 000000000..60bff017e
--- /dev/null
+++ b/wp-content/plugins/nextgen-gallery/admin/publish.php
@@ -0,0 +1,74 @@
+<?php
+/**
+
+Custom thumbnail for NGG
+Author : Simone Fumagalli | simone@iliveinperego.com
+More info and update : http://www.iliveinperego.com/rotate_for_ngg/
+
+Credits:
+ NextGen Gallery : Alex Rabe | http://alexrabe.boelinger.com/wordpress-plugins/nextgen-gallery/
+ 
+**/
+
+require_once( dirname( dirname(__FILE__) ) . '/ngg-config.php');
+require_once( NGGALLERY_ABSPATH . '/lib/image.php' );
+
+if ( !is_user_logged_in() )
+	die(__('Cheatin&#8217; uh?'));
+	
+if ( !current_user_can('NextGEN Manage gallery') ) 
+	die(__('Cheatin&#8217; uh?'));
+
+if ( !current_user_can( 'publish_posts' ) )
+    die(__('Cheatin&#8217; uh?'));
+
+global $wpdb;
+
+$id = (int) $_GET['id'];
+
+// let's get the image data
+$picture = nggdb::find_image($id);
+
+// use defaults the first time
+$width  = empty ($ngg->options['publish_width'])  ? $ngg->options['thumbwidth'] : $ngg->options['publish_width'];
+$height = empty ($ngg->options['publish_height']) ? $ngg->options['thumbheight'] : $ngg->options['publish_height'];
+$align  = empty ($ngg->options['publish_align'])  ? 'none' : $ngg->options['publish_align'];
+
+?>
+
+<form id="form-publish-post" method="POST" accept-charset="utf-8">
+<?php wp_nonce_field('publish-post') ?>
+<input type="hidden" name="page" value="publish-post" />
+<input type="hidden" name="pid" value="<?php echo $picture->pid; ?>" />
+<table width="100%" border="0" cellspacing="3" cellpadding="3" >
+	<tr valign="top">
+		<th align="left"><?php _e('Post title','nggallery') ?></th>
+		<td><input type="text" size="70" name="post_title" value="<?php echo $picture->alttext; ?>" />
+		<br /><small><?php _e('Enter the post title ','nggallery') ?></small></td>
+	</tr>
+	<tr valign="top">
+		<th align="left"><?php _e('Width x height (in pixel)','nggallery') ?></th>
+		<td><input type="text" size="5" maxlength="5" name="width" value="<?php echo $width; ?>" /> x <input type="text" size="5" maxlength="5" name="height" value="<?php echo $height; ?>" />
+		<br /><small><?php _e('Size of the image','nggallery') ?></small></td>
+	</tr>
+	<tr valign="top">
+		<th align="left"><?php _e('Alignment','nggallery') ?></th>
+		<td><input type="radio" value="none" <?php checked('none', $align); ?> id="image-align-none" name="align"/>
+            <label class="align" for="image-align-none"><?php _e('None','nggallery'); ?></label>
+            <input type="radio" value="left" <?php checked('left', $align); ?> id="image-align-left" name="align"/>
+            <label class="align" for="image-align-left"><?php _e('Left','nggallery'); ?></label>
+            <input type="radio" value="center" <?php checked('center', $align); ?> id="image-align-center" name="align"/>
+            <label class="align" for="image-align-center"><?php _e('Center','nggallery'); ?></label>
+            <input type="radio" value="right" <?php checked('right', $align); ?> id="image-align-right" name="align"/>
+            <label class="align" for="image-align-right"><?php _e('Right','nggallery'); ?></label>
+        </td>
+	</tr>
+  	<tr align="right">
+    	<td colspan="2" class="submit">
+    		<input class="button-primary" type="submit" name="publish" value="<?php _e('Publish', 'nggallery');?>" />
+    		&nbsp;
+    		<input class="button-secondary" type="submit" name="draft" value="&nbsp;<?php _e('Draft', 'nggallery'); ?>&nbsp;" />
+    	</td>
+	</tr>
+</table>
+</form>
\ No newline at end of file
diff --git a/wp-content/plugins/nextgen-gallery/admin/roles.php b/wp-content/plugins/nextgen-gallery/admin/roles.php
new file mode 100644
index 000000000..bc405da5c
--- /dev/null
+++ b/wp-content/plugins/nextgen-gallery/admin/roles.php
@@ -0,0 +1,139 @@
+<?php
+
+if(preg_match('#' . basename(__FILE__) . '#', $_SERVER['PHP_SELF'])) { die('You are not allowed to call this page directly.'); }
+
+function nggallery_admin_roles()  {
+
+if ( isset($_POST['update_cap']) ) {	
+
+	check_admin_referer('ngg_addroles');
+
+	// now set or remove the capability
+	ngg_set_capability($_POST['general'],"NextGEN Gallery overview");
+	ngg_set_capability($_POST['tinymce'],"NextGEN Use TinyMCE");
+	ngg_set_capability($_POST['add_gallery'],"NextGEN Upload images");
+	ngg_set_capability($_POST['manage_gallery'],"NextGEN Manage gallery");
+	ngg_set_capability($_POST['manage_others'],"NextGEN Manage others gallery");
+	ngg_set_capability($_POST['manage_tags'],"NextGEN Manage tags");
+	ngg_set_capability($_POST['edit_album'],"NextGEN Edit album");
+	ngg_set_capability($_POST['change_style'],"NextGEN Change style");
+	ngg_set_capability($_POST['change_options'],"NextGEN Change options");
+	
+	nggGallery::show_message(__('Updated capabilities',"nggallery"));
+}
+	
+?>
+	<div class="wrap">
+    <?php screen_icon( 'nextgen-gallery' ); ?>    
+	<h2><?php _e('Roles / capabilities', 'nggallery') ;?></h2>
+	<p><?php _e('Select the lowest role which should be able to access the following capabilities. NextGEN Gallery supports the standard roles from WordPress.', 'nggallery') ?> <br />
+	   <?php _e('For a more flexible user management you can use the', 'nggallery') ?> <a href="http://wordpress.org/extend/plugins/capsman/" target="_blank">Capability Manager</a>.</p>
+	<form name="addroles" id="addroles" method="POST" accept-charset="utf-8" >
+		<?php wp_nonce_field('ngg_addroles') ?>
+			<table class="form-table"> 
+			<tr valign="top"> 
+				<th scope="row"><?php _e('Main NextGEN Gallery overview', 'nggallery') ;?>:</th> 
+				<td><label for="general"><select name="general" id="general"><?php wp_dropdown_roles( ngg_get_role('NextGEN Gallery overview') ); ?></select></label></td>
+			</tr>
+			<tr valign="top"> 
+				<th scope="row"><?php _e('Use TinyMCE Button / Upload tab', 'nggallery') ;?>:</th> 
+				<td><label for="tinymce"><select name="tinymce" id="tinymce"><?php wp_dropdown_roles( ngg_get_role('NextGEN Use TinyMCE') ); ?></select></label></td>
+			</tr>
+			<tr valign="top"> 
+				<th scope="row"><?php _e('Add gallery / Upload images', 'nggallery') ;?>:</th> 
+				<td><label for="add_gallery"><select name="add_gallery" id="add_gallery"><?php wp_dropdown_roles( ngg_get_role('NextGEN Upload images') ); ?></select></label></td>
+			</tr>
+			<tr valign="top"> 
+				<th scope="row"><?php _e('Manage gallery', 'nggallery') ;?>:</th> 
+				<td><label for="manage_gallery"><select name="manage_gallery" id="manage_gallery"><?php wp_dropdown_roles( ngg_get_role('NextGEN Manage gallery') ); ?></select></label></td>
+			</tr>
+			<tr valign="top"> 
+				<th scope="row"><?php _e('Manage others gallery', 'nggallery') ;?>:</th> 
+				<td><label for="manage_others"><select name="manage_others" id="manage_others"><?php wp_dropdown_roles( ngg_get_role('NextGEN Manage others gallery') ); ?></select></label></td>
+			</tr>
+			<tr valign="top"> 
+				<th scope="row"><?php _e('Manage tags', 'nggallery') ;?>:</th> 
+				<td><label for="manage_tags"><select name="manage_tags" id="manage_tags"><?php wp_dropdown_roles( ngg_get_role('NextGEN Manage tags') ); ?></select></label></td>
+			</tr>
+			<tr valign="top"> 
+				<th scope="row"><?php _e('Edit Album', 'nggallery') ;?>:</th> 
+				<td><label for="edit_album"><select name="edit_album" id="edit_album"><?php wp_dropdown_roles( ngg_get_role('NextGEN Edit album') ); ?></select></label></td>
+			</tr>
+			<tr valign="top"> 
+				<th scope="row"><?php _e('Change style', 'nggallery') ;?>:</th> 
+				<td><label for="change_style"><select name="change_style" id="change_style"><?php wp_dropdown_roles( ngg_get_role('NextGEN Change style') ); ?></select></label></td>
+			</tr>
+			<tr valign="top"> 
+				<th scope="row"><?php _e('Change options', 'nggallery') ;?>:</th> 
+				<td><label for="change_options"><select name="change_options" id="change_options"><?php wp_dropdown_roles( ngg_get_role('NextGEN Change options') ); ?></select></label></td>
+			</tr>
+			</table>
+			<div class="submit"><input type="submit" class="button-primary" name= "update_cap" value="<?php _e('Update capabilities', 'nggallery') ;?>"/></div>
+	</form>
+	</div>
+<?php 
+
+}
+
+function ngg_get_sorted_roles() {
+	// This function returns all roles, sorted by user level (lowest to highest)
+	global $wp_roles;
+	$roles = $wp_roles->role_objects;
+	$sorted = array();
+	
+	if( class_exists('RoleManager') ) {
+		foreach( $roles as $role_key => $role_name ) {
+			$role = get_role($role_key);
+			if( empty($role) ) continue;
+			$role_user_level = array_reduce(array_keys($role->capabilities), array('WP_User', 'level_reduction'), 0);
+			$sorted[$role_user_level] = $role;
+		}
+		$sorted = array_values($sorted);
+	} else {
+		$role_order = array("subscriber", "contributor", "author", "editor", "administrator");
+		foreach($role_order as $role_key) {
+			$sorted[$role_key] = get_role($role_key);
+		}
+	}
+	return $sorted;
+}
+
+function ngg_get_role($capability){
+	// This function return the lowest roles which has the capabilities
+	$check_order = ngg_get_sorted_roles();
+
+	$args = array_slice(func_get_args(), 1);
+	$args = array_merge(array($capability), $args);
+
+	foreach ($check_order as $check_role) {
+		if ( empty($check_role) )
+			return false;
+			
+		if (call_user_func_array(array(&$check_role, 'has_cap'), $args))
+			return $check_role->name;
+	}
+	return false;
+}
+
+function ngg_set_capability($lowest_role, $capability){
+	// This function set or remove the $capability
+	$check_order = ngg_get_sorted_roles();
+
+	$add_capability = false;
+	
+	foreach ($check_order as $the_role) {
+		$role = $the_role->name;
+
+		if ( $lowest_role == $role )
+			$add_capability = true;
+		
+		// If you rename the roles, then please use a role manager plugin
+		
+		if ( empty($the_role) )
+			continue;
+			
+		$add_capability ? $the_role->add_cap($capability) : $the_role->remove_cap($capability) ;
+	}
+}
+
+?>
\ No newline at end of file
diff --git a/wp-content/plugins/nextgen-gallery/admin/rotate.php b/wp-content/plugins/nextgen-gallery/admin/rotate.php
new file mode 100644
index 000000000..ad7f268c5
--- /dev/null
+++ b/wp-content/plugins/nextgen-gallery/admin/rotate.php
@@ -0,0 +1,95 @@
+<?php
+/**
+
+Custom thumbnail for NGG
+Author : Simone Fumagalli | simone@iliveinperego.com
+More info and update : http://www.iliveinperego.com/rotate_for_ngg/
+
+Credits:
+ NextGen Gallery : Alex Rabe | http://alexrabe.boelinger.com/wordpress-plugins/nextgen-gallery/
+ 
+**/
+
+require_once( dirname( dirname(__FILE__) ) . '/ngg-config.php');
+require_once( NGGALLERY_ABSPATH . '/lib/image.php' );
+
+if ( !is_user_logged_in() )
+	die(__('Cheatin&#8217; uh?'));
+	
+if ( !current_user_can('NextGEN Manage gallery') ) 
+	die(__('Cheatin&#8217; uh?'));
+
+global $wpdb;
+
+$id = (int) $_GET['id'];
+
+// let's get the image data
+$picture = nggdb::find_image($id);
+
+include_once( nggGallery::graphic_library() );
+$ngg_options = get_option('ngg_options');
+
+$thumb = new ngg_Thumbnail($picture->imagePath, TRUE);
+$thumb->resize(350,350);
+
+// we need the new dimension
+$resizedPreviewInfo = $thumb->newDimensions;
+$thumb->destruct();
+
+$preview_image		= home_url() . '/' . 'index.php?callback=image&amp;pid=' . $picture->pid . '&amp;width=350&amp;height=350';
+
+?>
+
+<script language="JavaScript">
+<!--
+	
+	function rotateImage() {
+		
+		var rotate_angle = jQuery('input[name=ra]:checked').val();
+		
+		jQuery.ajax({
+		  url: "admin-ajax.php",
+		  type : "POST",
+		  data:  {action: 'rotateImage', id: <?php echo $id ?>, ra: rotate_angle},
+		  cache: false,
+		  success: function (msg) { showMessage('<?php _e('Image rotated', 'nggallery'); ?>') },
+		  error: function (msg, status, errorThrown) { showMessage('<?php _e('Error rotating thumbnail', 'nggallery'); ?>') }
+		});
+
+	}
+	
+	function showMessage(message) {
+		jQuery('#thumbMsg').html(message);
+		jQuery('#thumbMsg').css({'display':'block'});
+		setTimeout(function(){ jQuery('#thumbMsg').fadeOut('slow'); }, 1500);
+		
+		var d = new Date();
+		newUrl = jQuery("#imageToEdit").attr("src") + "?" + d.getTime();
+		jQuery("#imageToEdit").attr("src" , newUrl);
+							
+	}
+	
+-->
+</script>
+
+<table width="98%" align="center" style="border:1px solid #DADADA">
+	<tr style="height : 360px;">
+		<td valign="middle" align="center" style="background-color:#DADADA; width : 370px;">
+			<img src="<?php echo $preview_image ?>" alt="" id="imageToEdit" />	
+		</td>
+		<td>
+			<input type="radio" name="ra" value="cw" /><?php _e('90&deg; clockwise', 'nggallery'); ?><br />
+			<input type="radio" name="ra" value="ccw" /><?php _e('90&deg; anticlockwise', 'nggallery'); ?><br />
+			<input type="radio" name="ra" value="fv" /><?php _e('Flip vertically', 'nggallery'); ?><br />
+			<input type="radio" name="ra" value="fh" /><?php _e('Flip horizontally', 'nggallery'); ?>
+		</td>		
+	</tr>
+	<tr style="background-color:#DADADA;">
+
+		<td colspan="2">
+			<input type="button" name="update" value="<?php _e('Update', 'nggallery'); ?>" onclick="rotateImage()" class="button-secondary" style="float:right; margin-left:4px;"/>
+			<div id="thumbMsg" style="color:#FF0000; display : none;font-size:11px; float:right; width:60%; height:2em; line-height:2em;"></div>
+			
+		</td>
+	</tr>
+</table>
\ No newline at end of file
diff --git a/wp-content/plugins/nextgen-gallery/admin/settings.php b/wp-content/plugins/nextgen-gallery/admin/settings.php
new file mode 100644
index 000000000..59c0dab59
--- /dev/null
+++ b/wp-content/plugins/nextgen-gallery/admin/settings.php
@@ -0,0 +1,836 @@
+<?php  
+if(preg_match('#' . basename(__FILE__) . '#', $_SERVER['PHP_SELF'])) { die('You are not allowed to call this page directly.'); }
+
+class nggOptions {
+
+    /**
+     * PHP4 compatibility layer for calling the PHP5 constructor.
+     * 
+     */
+    function nggOptions() {
+        return $this->__construct();        
+    }
+    
+    /**
+     * nggOptions::__construct()
+     * 
+     * @return void
+     */
+    function __construct() {
+        
+       	// same as $_SERVER['REQUEST_URI'], but should work under IIS 6.0
+	   $this->filepath    = admin_url() . 'admin.php?page=' . $_GET['page'];
+        
+  		//Look for POST updates
+		if ( !empty($_POST) )
+			$this->processor();
+    }
+
+	/**
+	 * Save/Load options and add a new hook for plugins
+	 * 
+	 * @return void
+	 */
+	function processor() {
+
+    	global $ngg, $nggRewrite;
+    	
+    	$old_state = $ngg->options['usePermalinks'];
+    
+    	if ( isset($_POST['irDetect']) ) {
+    		check_admin_referer('ngg_settings');
+    		$ngg->options['irURL'] = ngg_search_imagerotator();
+    		update_option('ngg_options', $ngg->options);
+    	}	
+    
+    	if ( isset($_POST['updateoption']) ) {	
+    		check_admin_referer('ngg_settings');
+    		// get the hidden option fields, taken from WP core
+    		if ( $_POST['page_options'] )	
+    			$options = explode(',', stripslashes($_POST['page_options']));
+
+    		if ($options) {
+    			foreach ($options as $option) {
+    				$option = trim($option);
+    				$value = isset($_POST[$option]) ? trim($_POST[$option]) : false;
+    		//		$value = sanitize_option($option, $value); // This does stripslashes on those that need it
+    				$ngg->options[$option] = $value;
+    			}
+
+        		// the path should always end with a slash	
+        		$ngg->options['gallerypath']    = trailingslashit($ngg->options['gallerypath']);
+        		$ngg->options['imageMagickDir'] = trailingslashit($ngg->options['imageMagickDir']);
+    
+        		// the custom sortorder must be ascending
+        		$ngg->options['galSortDir'] = ($ngg->options['galSort'] == 'sortorder') ? 'ASC' : $ngg->options['galSortDir'];
+    		}
+    		// Save options
+    		update_option('ngg_options', $ngg->options);
+    
+    		// Flush Rewrite rules
+    		if ( $old_state != $ngg->options['usePermalinks'] )
+    			$nggRewrite->flush();
+    		
+    	 	nggGallery::show_message(__('Update Successfully','nggallery'));
+    	}		
+    	
+    	if ( isset($_POST['clearcache']) ) {
+    		check_admin_referer('ngg_settings');
+            
+    		$path = WINABSPATH . $ngg->options['gallerypath'] . 'cache/';
+    		
+    		if (is_dir($path))
+    	    	if ($handle = opendir($path)) {
+    				while (false !== ($file = readdir($handle))) {
+    			    	if ($file != '.' && $file != '..') {
+    			          @unlink($path . '/' . $file);
+    	          		}
+    	        	}
+    	      		closedir($handle);
+    			}
+    
+    		nggGallery::show_message(__('Cache cleared','nggallery'));
+    	}
+
+    	if ( isset($_POST['createslugs']) ) {
+    		check_admin_referer('ngg_settings');
+            include_once (dirname (__FILE__) . '/upgrade.php');
+            ngg_rebuild_unique_slugs::start_rebuild();
+    	}
+        
+        do_action( 'ngg_update_options_page' );
+        
+    }
+
+    /**
+     * Render the page content
+     * 
+     * @return void
+     */
+    function controller() {
+
+        // get list of tabs
+        $tabs = $this->tabs_order();
+
+	?>
+	<script type="text/javascript">
+		jQuery(document).ready(function(){
+		    jQuery('html,body').scrollTop(0);
+			jQuery("a.switch-expert").hide();
+            /*
+            jQuery(".expert").hide();
+			jQuery("a.switch-expert").click(function(e) {
+				jQuery(".expert").toggle();
+				return false;
+			});
+            */
+			jQuery('#slider').tabs({ fxFade: true, fxSpeed: 'fast' });
+            /*
+			jQuery('.picker').ColorPicker({
+				onSubmit: function(hsb, hex, rgb, el) {
+					jQuery(el).val(hex);
+					jQuery(el).ColorPickerHide();
+				},
+				onBeforeShow: function () {
+					jQuery(this).ColorPickerSetColor(this.value);
+				}
+			})
+			.bind('keyup', function(){
+				jQuery(this).ColorPickerSetColor(this.value);
+			});
+            */
+		});
+	
+		function insertcode(value) {
+			var effectcode;
+			switch (value) {
+			  case "none":
+			    effectcode = "";
+			    jQuery('#tbImage').hide("slow");
+			    break;
+			  case "thickbox":
+			    effectcode = 'class="thickbox" rel="%GALLERY_NAME%"';
+			    jQuery('#tbImage').show("slow");
+			    break;
+			  case "lightbox":
+			    effectcode = 'rel="lightbox[%GALLERY_NAME%]"';
+			    jQuery('#tbImage').hide("slow");
+			    break;
+			  case "highslide":
+			    effectcode = 'class="highslide" onclick="return hs.expand(this, { slideshowGroup: %GALLERY_NAME% })"';
+			    jQuery('#tbImage').hide("slow");
+			    break;
+			  case "shutter":
+			    effectcode = 'class="shutterset_%GALLERY_NAME%"';
+			    jQuery('#tbImage').hide("slow");
+			    break;
+			  default:
+			    break;
+			}
+			jQuery("#thumbCode").val(effectcode);
+		};
+		
+		function setcolor(fileid, color) {
+			jQuery(fileid).css("background-color", '#' + color );
+		};
+	</script>
+	
+	<div id="slider" class="wrap">
+        <ul id="tabs">
+            <?php    
+        	foreach($tabs as $tab_key => $tab_name) {
+        	   echo "\n\t\t<li><a href='#$tab_key'>$tab_name</a></li>";
+            } 
+            ?>
+		</ul>
+        <?php    
+        foreach($tabs as $tab_key => $tab_name) {
+            echo "\n\t<div id='$tab_key'>\n";
+            // Looks for the internal class function, otherwise enable a hook for plugins
+            if ( method_exists( $this, "tab_$tab_key" ))
+                call_user_func( array( &$this , "tab_$tab_key") );
+            else
+                do_action( 'ngg_tab_content_' . $tab_key );
+             echo "\n\t</div>";
+        } 
+        ?>
+    </div>
+    <?php
+        
+    }
+
+    /**
+     * Create array for tabs and add a filter for other plugins to inject more tabs
+     * 
+     * @return array $tabs
+     */
+    function tabs_order() {
+     
+    	$tabs = array();
+    	
+    	$tabs['generaloptions'] = __('General Options', 'nggallery');
+    	$tabs['thumbnails'] = __('Thumbnails', 'nggallery');
+    	$tabs['images'] = __('Images', 'nggallery');
+    	$tabs['gallery'] = _n( 'Gallery', 'Galleries', 1, 'nggallery' );
+    	$tabs['effects'] = __('Effects', 'nggallery');
+    	$tabs['watermark'] = __('Watermark', 'nggallery');
+    	$tabs['slideshow'] = __('Slideshow', 'nggallery');
+    	
+    	$tabs = apply_filters('ngg_settings_tabs', $tabs);
+    
+    	return $tabs;
+        
+    }
+
+    function tab_generaloptions() {
+        global $ngg;    
+
+    ?>
+        <!-- General Options -->
+		<h2><?php _e('General Options','nggallery'); ?></h2>
+		<form name="generaloptions" method="post" action="<?php echo $this->filepath; ?>">
+		<?php wp_nonce_field('ngg_settings') ?>
+		<input type="hidden" name="page_options" value="gallerypath,deleteImg,useMediaRSS,usePicLens,usePermalinks,graphicLibrary,imageMagickDir,activateTags,appendType,maxImages" />
+			<table class="form-table ngg-options">
+				<tr valign="top">
+					<th align="left"><?php _e('Gallery path','nggallery'); ?></th>
+					<td><input <?php if (is_multisite()) echo 'readonly = "readonly"'; ?> type="text" size="35" name="gallerypath" value="<?php echo $ngg->options['gallerypath']; ?>" />
+					<span class="setting-description"><?php _e('This is the default path for all galleries','nggallery') ?></span></td>
+				</tr>
+				<tr class="expert" valign="top">
+					<th align="left"><?php _e('Delete image files','nggallery'); ?></th>
+					<td><input <?php if (is_multisite()) echo 'readonly = "readonly"'; ?> type="checkbox" name="deleteImg" value="1" <?php checked('1', $ngg->options['deleteImg']); ?> />
+					<?php _e('Delete files, when removing a gallery in the database','nggallery'); ?></td>
+				</tr>
+				<tr valign="top">
+					<th align="left"><?php _e('Activate permalinks','nggallery') ?></th>
+					<td><input type="checkbox" name="usePermalinks" value="1" <?php checked('1', $ngg->options['usePermalinks']); ?> />
+					<?php _e('When you activate this option, you need to update your permalink structure one time.','nggallery'); ?></td>
+				</tr>
+				<tr class="expert">
+					<th valign="top"><?php _e('Create new URL friendly image slugs','nggallery'); ?></th>
+					<td><input type="submit" name="createslugs" class="button-secondary"  value="<?php _e('Proceed now','nggallery') ;?> &raquo;"/>
+                    <?php _e('Currently not used, prepare database for upcoming version','nggallery'); ?></td>
+				</tr>                
+				<tr class="expert">
+					<th valign="top"><?php _e('Select graphic library','nggallery'); ?></th>
+					<td><label><input name="graphicLibrary" type="radio" value="gd" <?php checked('gd', $ngg->options['graphicLibrary']); ?> /> <?php _e('GD Library', 'nggallery') ;?></label><br />
+					<label><input name="graphicLibrary" type="radio" value="im" <?php checked('im', $ngg->options['graphicLibrary']); ?> /> <?php _e('ImageMagick (Experimental). Path to the library :', 'nggallery') ;?>&nbsp;
+					<input <?php if (is_multisite()) echo 'readonly = "readonly"'; ?> type="text" size="35" name="imageMagickDir" value="<?php echo $ngg->options['imageMagickDir']; ?>" /></label>
+					</td>
+				</tr>
+				<tr>
+					<th align="left"><?php _e('Activate Media RSS feed','nggallery'); ?></th>
+					<td><input type="checkbox" name="useMediaRSS" value="1" <?php checked('1', $ngg->options['useMediaRSS']); ?> />
+					<span class="setting-description"><?php _e('A RSS feed will be added to you blog header. Useful for CoolIris/PicLens','nggallery') ?></span></td>
+				</tr>
+				<tr>
+					<th align="left"><?php _e('Activate PicLens/CoolIris support','nggallery'); ?> (<a href="http://www.cooliris.com">CoolIris</a>)</th>
+					<td><input type="checkbox" name="usePicLens" value="1" <?php checked('1', $ngg->options['usePicLens']); ?> />
+					<span class="setting-description"><?php _e('When you activate this option, some javascript is added to your site footer. Make sure that wp_footer is called in your theme.','nggallery') ?></span></td>
+				</tr>
+			</table>
+			<h3 class="expert"><?php _e('Tags / Categories','nggallery'); ?></h3>
+			<table class="expert form-table ngg-options">
+				<tr>
+					<th valign="top"><?php _e('Activate related images','nggallery'); ?></th>
+					<td><input name="activateTags" type="checkbox" value="1" <?php checked('1', $ngg->options['activateTags']); ?> />
+					<?php _e('This option will append related images to every post','nggallery'); ?>
+					</td>
+				</tr>
+				<tr>
+					<th valign="top"><?php _e('Match with','nggallery'); ?></th>
+					<td><label><input name="appendType" type="radio" value="category" <?php checked('category', $ngg->options['appendType']); ?> /> <?php _e('Categories', 'nggallery') ;?></label><br />
+					<label><input name="appendType" type="radio" value="tags" <?php checked('tags', $ngg->options['appendType']); ?> /> <?php _e('Tags', 'nggallery') ;?></label>
+					</td>
+				</tr>
+				<tr>
+					<th valign="top"><?php _e('Max. number of images','nggallery'); ?></th>
+					<td><input type="text" name="maxImages" value="<?php echo $ngg->options['maxImages']; ?>" size="3" maxlength="3" />
+					<span class="setting-description"><?php _e('0 will show all images','nggallery'); ?></span>
+					</td>
+				</tr>
+			</table> 				
+		<div class="alignright"><a href="" class="switch-expert" >[<?php _e('More settings','nggallery'); ?>]</a></div>
+		<div class="submit"><input class="button-primary" type="submit" name="updateoption" value="<?php _e('Save Changes'); ?>"/></div>
+		</form>	
+    <?php        
+    }
+
+    function tab_thumbnails() {
+        global $ngg;
+    ?>
+	<!-- Thumbnail settings -->
+		<h2><?php _e('Thumbnail settings','nggallery'); ?></h2>
+		<form name="thumbnailsettings" method="POST" action="<?php echo $this->filepath.'#thumbnails'; ?>" >
+		<?php wp_nonce_field('ngg_settings') ?>
+		<input type="hidden" name="page_options" value="thumbwidth,thumbheight,thumbfix,thumbquality" />
+			<p><?php _e('Please note : If you change the settings, you need to recreate the thumbnails under -> Manage Gallery .', 'nggallery') ?></p>
+			<table class="form-table ngg-options">
+				<tr valign="top">
+					<th align="left"><?php _e('Width x height (in pixel)','nggallery'); ?></th>
+					<td><input type="text" size="4" maxlength="4" name="thumbwidth" value="<?php echo $ngg->options['thumbwidth']; ?>" /> x <input type="text" size="4" maxlength="4" name="thumbheight" value="<?php echo $ngg->options['thumbheight']; ?>" />
+					<span class="setting-description"><?php _e('These values are maximum values ','nggallery'); ?></span></td>
+				</tr>
+				<tr valign="top">
+					<th align="left"><?php _e('Set fix dimension','nggallery'); ?></th>
+					<td><input type="checkbox" name="thumbfix" value="1" <?php checked('1', $ngg->options['thumbfix']); ?> />
+					<?php _e('Ignore the aspect ratio, no portrait thumbnails','nggallery') ?></td>
+				</tr>
+				<tr class="expert" valign="top">
+					<th align="left"><?php _e('Thumbnail quality','nggallery'); ?></th>
+					<td><input type="text" size="3" maxlength="3" name="thumbquality" value="<?php echo $ngg->options['thumbquality']; ?>" /> %</td>
+				</tr>
+			</table>
+		<div class="alignright"><a href="" class="switch-expert" >[<?php _e('More settings','nggallery'); ?>]</a></div>
+		<div class="submit"><input class="button-primary" type="submit" name="updateoption" value="<?php _e('Save Changes') ;?>"/></div>
+		</form> 
+    <?php        
+    }
+    
+    function tab_images() {
+        global $ngg;
+    ?>
+		<!-- Image settings -->
+		<h2><?php _e('Image settings','nggallery'); ?></h2>
+		<form name="imagesettings" method="POST" action="<?php echo $this->filepath.'#images'; ?>" >
+		<?php wp_nonce_field('ngg_settings') ?>
+		<input type="hidden" name="page_options" value="imgResize,imgWidth,imgHeight,imgQuality,imgBackup,imgAutoResize,imgCacheSinglePic" />
+			<table class="form-table ngg-options">
+				<tr valign="top">
+					<th valign="top"><label for="fixratio"><?php _e('Resize Images','nggallery') ?></label></th>
+					<td><input type="text" size="5" name="imgWidth" value="<?php echo $ngg->options['imgWidth']; ?>" /> x <input type="text" size="5" name="imgHeight" value="<?php echo $ngg->options['imgHeight']; ?>" />
+					<span class="setting-description"><?php _e('Width x height (in pixel). NextGEN Gallery will keep ratio size','nggallery') ?></span></td>
+				</tr>
+				<tr valign="top">
+					<th valign="top"><?php _e('Image quality','nggallery'); ?></th>
+					<td><input type="text" size="3" maxlength="3" name="imgQuality" value="<?php echo $ngg->options['imgQuality']; ?>" /> %</td>
+				</tr>
+				<tr>
+					<th valign="top"><?php _e('Backup original images','nggallery'); ?></th>
+					<td><input type="checkbox" name="imgBackup" value="1"<?php echo ($ngg->options['imgBackup'] == 1) ? ' checked ="chechked"' : ''; ?>/>	
+					<span class="setting-description"><?php _e('Creates a backup for inserted images','nggallery'); ?></span></td>
+				</tr>
+				<tr>
+					<th valign="top"><?php _e('Automatically resize','nggallery'); ?></th>
+					<td><input type="checkbox" name="imgAutoResize" value="1"<?php echo ($ngg->options['imgAutoResize'] == 1) ? ' checked ="chechked"' : ''; ?>/>	
+					<span class="setting-description"><?php _e('Automatically resize images on upload.','nggallery') ?></span></td>
+				</tr>
+			</table>
+			<h3 class="expert"><?php _e('Single picture','nggallery') ?></h3>
+			<table class="expert form-table ngg-options">
+				<tr>
+					<th valign="top"><?php _e('Cache single pictures','nggallery'); ?></th>
+					<td><input <?php if (is_multisite()) echo 'readonly = "readonly"'; ?> type="checkbox" name="imgCacheSinglePic" value="1" <?php checked('1', $ngg->options['imgCacheSinglePic']); ?> />
+					<span class="setting-description"><?php _e('Creates a file for each singlepic settings. Reduce the CPU load','nggallery') ?></span></td>
+				</tr>
+				<tr>
+					<th valign="top"><?php _e('Clear cache folder','nggallery'); ?></th>
+					<td><input type="submit" name="clearcache" class="button-secondary"  value="<?php _e('Proceed now','nggallery') ;?> &raquo;"/></td>
+				</tr>
+			</table>
+		<div class="alignright"><a href="" class="switch-expert" >[<?php _e('More settings','nggallery'); ?>]</a></div>
+		<div class="submit"><input class="button-primary" type="submit" name="updateoption" value="<?php _e('Save Changes') ;?>"/></div>
+		</form>	
+    
+    <?php        
+    }
+    
+    function tab_gallery() {
+        global $ngg;
+    ?>
+		<!-- Gallery settings -->
+		<h2><?php _e('Gallery settings','nggallery'); ?></h2>
+		<form name="galleryform" method="POST" action="<?php echo $this->filepath.'#gallery'; ?>" >
+		<?php wp_nonce_field('ngg_settings') ?>
+		<input type="hidden" name="page_options" value="galNoPages,galImages,galColumns,galShowSlide,galTextSlide,galTextGallery,galShowOrder,galImgBrowser,galSort,galSortDir,galHiddenImg,galAjaxNav" />
+			<table class="form-table ngg-options">
+				<tr class="expert" >
+					<th valign="top"><?php _e('Deactivate gallery page link','nggallery') ?></th>
+					<td><input name="galNoPages" type="checkbox" value="1" <?php checked('1', $ngg->options['galNoPages']); ?> />
+					<?php _e('The album will not link to a gallery subpage. The gallery is shown on the same page.','nggallery') ?>
+					</td>
+				</tr>
+				<tr>
+					<th valign="top"><?php _e('Number of images per page','nggallery') ?></th>
+					<td><input type="text" name="galImages" value="<?php echo $ngg->options['galImages']; ?>" size="3" maxlength="3" />
+					<span class="setting-description"><?php _e('0 will disable pagination, all images on one page','nggallery') ?></span>
+					</td>
+				</tr>
+				<tr>
+					<th valign="top"><?php _e('Number of columns','nggallery'); ?></th>
+					<td><input type="text" name="galColumns" value="<?php echo $ngg->options['galColumns']; ?>" size="3" maxlength="3" />
+					<span class="setting-description"><?php _e('0 will display as much as possible based on the width of your theme. Setting normally only required for captions below the images','nggallery') ?></span>
+					</td>
+				</tr>
+				<tr>
+					<th valign="top"><?php _e('Integrate slideshow','nggallery'); ?></th>
+					<td><input name="galShowSlide" type="checkbox" value="1" <?php checked('1', $ngg->options['galShowSlide']); ?> />
+						<input type="text" name="galTextSlide" value="<?php echo $ngg->options['galTextSlide'] ?>" size="20" />
+						<input type="text" name="galTextGallery" value="<?php echo $ngg->options['galTextGallery'] ?>" size="20" />
+					</td>
+				</tr>
+				<tr class="expert" >
+					<th valign="top"><?php _e('Show first','nggallery'); ?></th>
+					<td><label><input name="galShowOrder" type="radio" value="gallery" <?php checked('gallery', $ngg->options['galShowOrder']); ?> /> <?php _e('Thumbnails', 'nggallery') ;?></label><br />
+					<label><input name="galShowOrder" type="radio" value="slide" <?php checked('slide', $ngg->options['galShowOrder']); ?> /> <?php _e('Slideshow', 'nggallery') ;?></label>
+					</td>
+				</tr>
+				<tr class="expert" >
+					<th valign="top"><?php _e('Show ImageBrowser','nggallery'); ?></th>
+					<td><input name="galImgBrowser" type="checkbox" value="1" <?php checked('1', $ngg->options['galImgBrowser']); ?> />
+					<?php _e('The gallery will open the ImageBrowser instead the effect.', 'nggallery'); ?>
+					</td>
+				</tr>
+				<tr class="expert" >
+					<th valign="top"><?php _e('Add hidden images','nggallery'); ?></th>
+					<td><input name="galHiddenImg" type="checkbox" value="1" <?php checked('1', $ngg->options['galHiddenImg']); ?> />
+					<?php _e('If pagination is used, this option will still show all images in the modal window (Thickbox, Lightbox etc.). Note : This increases the page load','nggallery'); ?>
+					</td>
+				</tr>
+				<tr class="expert" >
+					<th valign="top"><?php _e('Enable AJAX pagination','nggallery'); ?></th>
+					<td><input name="galAjaxNav" type="checkbox" value="1" <?php checked('1', $ngg->options['galAjaxNav']); ?> />
+					<?php _e('Browse images without reload the page. Note : Works only in combination with Shutter effect','nggallery'); ?>
+					</td>
+				</tr>
+			</table>
+			<h3 class="expert" ><?php _e('Sort options','nggallery') ?></h3>
+			<table class="expert form-table ngg-options">
+				<tr>
+					<th valign="top"><?php _e('Sort thumbnails','nggallery') ?></th>
+					<td>
+					<label><input name="galSort" type="radio" value="sortorder" <?php checked('sortorder', $ngg->options['galSort']); ?> /> <?php _e('Custom order', 'nggallery') ;?></label><br />
+					<label><input name="galSort" type="radio" value="pid" <?php checked('pid', $ngg->options['galSort']); ?> /> <?php _e('Image ID', 'nggallery') ;?></label><br />
+					<label><input name="galSort" type="radio" value="filename" <?php checked('filename', $ngg->options['galSort']); ?> /> <?php _e('File name', 'nggallery') ;?></label><br />
+					<label><input name="galSort" type="radio" value="alttext" <?php checked('alttext', $ngg->options['galSort']); ?> /> <?php _e('Alt / Title text', 'nggallery') ;?></label><br />
+					<label><input name="galSort" type="radio" value="imagedate" <?php checked('imagedate', $ngg->options['galSort']); ?> /> <?php _e('Date / Time', 'nggallery') ;?></label>
+					</td>
+				</tr>
+				<tr>
+					<th valign="top"><?php _e('Sort direction','nggallery') ?></th>
+					<td><label><input name="galSortDir" type="radio" value="ASC" <?php checked('ASC', $ngg->options['galSortDir']); ?> /> <?php _e('Ascending', 'nggallery') ;?></label><br />
+					<label><input name="galSortDir" type="radio" value="DESC" <?php checked('DESC', $ngg->options['galSortDir']); ?> /> <?php _e('Descending', 'nggallery') ;?></label>
+					</td>
+				</tr>
+			</table>
+		<div class="alignright"><a href="" class="switch-expert" >[<?php _e('More settings','nggallery'); ?>]</a></div>
+		<div class="submit"><input class="button-primary" type="submit" name="updateoption" value="<?php _e('Save Changes') ;?>"/></div>
+		</form>    
+    <?php        
+    }
+    
+    function tab_effects() {
+        global $ngg;
+    ?>
+		<!-- Effects settings -->
+		<h2><?php _e('Effects','nggallery'); ?></h2>
+		<form name="effectsform" method="POST" action="<?php echo $this->filepath.'#effects'; ?>" >
+		<?php wp_nonce_field('ngg_settings') ?>
+		<input type="hidden" name="page_options" value="thumbEffect,thumbCode" />
+		<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 Shutter and Thickbox effect will automatic added to your theme.','nggallery'); ?>
+		<?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>
+			<table class="form-table ngg-options">
+				<tr valign="top">
+					<th><?php _e('JavaScript Thumbnail effect','nggallery') ?></th>
+					<td>
+					<select size="1" id="thumbEffect" name="thumbEffect" onchange="insertcode(this.value)">
+						<option value="none" <?php selected('none', $ngg->options['thumbEffect']); ?> ><?php _e('None', 'nggallery') ;?></option>
+						<option value="thickbox" <?php selected('thickbox', $ngg->options['thumbEffect']); ?> ><?php _e('Thickbox', 'nggallery') ;?></option>
+						<option value="lightbox" <?php selected('lightbox', $ngg->options['thumbEffect']); ?> ><?php _e('Lightbox', 'nggallery') ;?></option>
+						<option value="highslide" <?php selected('highslide', $ngg->options['thumbEffect']); ?> ><?php _e('Highslide', 'nggallery') ;?></option>
+						<option value="shutter" <?php selected('shutter', $ngg->options['thumbEffect']); ?> ><?php _e('Shutter', 'nggallery') ;?></option>
+						<option value="custom" <?php selected('custom', $ngg->options['thumbEffect']); ?> ><?php _e('Custom', 'nggallery') ;?></option>
+					</select>
+					</td>
+				</tr>
+				<tr class="expert" valign="top">
+					<th><?php _e('Link Code line','nggallery') ?></th>
+					<td><textarea id="thumbCode" name="thumbCode" cols="50" rows="5"><?php echo htmlspecialchars(stripslashes($ngg->options['thumbCode'])); ?></textarea></td>
+				</tr>
+			</table>
+		<div class="alignright"><a href="" class="switch-expert" >[<?php _e('More settings','nggallery'); ?>]</a></div>
+		<div class="submit"><input class="button-primary" type="submit" name="updateoption" value="<?php _e('Save Changes') ;?>"/></div>
+		</form>	
+   
+    <?php        
+    }
+    
+    function tab_watermark() {
+
+        global $wpdb, $ngg;
+        
+        // take the first image as sample
+        $imageID  = $wpdb->get_var("SELECT MIN(pid) FROM $wpdb->nggpictures");
+        $imageURL = ($imageID) ? $imageURL = '<img src="'. home_url() . '/' . 'index.php?callback=image&amp;pid=' . intval ($imageID) . '&amp;mode=watermark&amp;width=300&amp;height=250" />' : '';
+
+	?>
+	<!-- Watermark settings -->
+		<h2><?php _e('Watermark','nggallery'); ?></h2>
+		<p><?php _e('Please note : You can only activate the watermark under -> Manage Gallery . This action cannot be undone.', 'nggallery') ?></p>
+		<form name="watermarkform" method="POST" action="<?php echo $this->filepath.'#watermark'; ?>" >
+		<?php wp_nonce_field('ngg_settings') ?>
+		<input type="hidden" name="page_options" value="wmPos,wmXpos,wmYpos,wmType,wmPath,wmFont,wmSize,wmColor,wmText,wmOpaque" />
+		<div id="wm-preview">
+			<h3><?php _e('Preview','nggallery') ?></h3>
+			<p style="text-align:center;"><?php echo $imageURL; ?></p>
+			<h3><?php _e('Position','nggallery') ?></h3>
+			<div>
+			    <table id="wm-position">
+				<tr>
+					<td valign="top">
+						<strong><?php _e('Position','nggallery') ?></strong>
+						<table border="1">
+							<tr>
+								<td><input type="radio" name="wmPos" value="topLeft" <?php checked('topLeft', $ngg->options['wmPos']); ?> /></td>
+								<td><input type="radio" name="wmPos" value="topCenter" <?php checked('topCenter', $ngg->options['wmPos']); ?> /></td>
+								<td><input type="radio" name="wmPos" value="topRight" <?php checked('topRight', $ngg->options['wmPos']); ?> /></td>
+							</tr>
+							<tr>
+								<td><input type="radio" name="wmPos" value="midLeft" <?php checked('midLeft', $ngg->options['wmPos']); ?> /></td>
+								<td><input type="radio" name="wmPos" value="midCenter" <?php checked('midCenter', $ngg->options['wmPos']); ?> /></td>
+								<td><input type="radio" name="wmPos" value="midRight" <?php checked('midRight', $ngg->options['wmPos']); ?> /></td>
+							</tr>
+							<tr>
+								<td><input type="radio" name="wmPos" value="botLeft" <?php checked('botLeft', $ngg->options['wmPos']); ?> /></td>
+								<td><input type="radio" name="wmPos" value="botCenter" <?php checked('botCenter', $ngg->options['wmPos']); ?> /></td>
+								<td><input type="radio" name="wmPos" value="botRight" <?php checked('botRight', $ngg->options['wmPos']); ?> /></td>
+							</tr>
+						</table>
+					</td>
+					<td valign="top">
+						<strong><?php _e('Offset','nggallery') ?></strong>
+						<table border="0">
+							<tr>
+								<td>x</td>
+								<td><input type="text" name="wmXpos" value="<?php echo $ngg->options['wmXpos'] ?>" size="4" /> px</td>
+							</tr>
+							<tr>
+								<td>y</td>
+								<td><input type="text" name="wmYpos" value="<?php echo $ngg->options['wmYpos'] ?>" size="4" /> px</td>
+							</tr>
+						</table>
+					</td>
+				</tr>
+				</table>
+			</div>
+		</div> 
+			<h3><label><input type="radio" name="wmType" value="image" <?php checked('image', $ngg->options['wmType']); ?> /> <?php _e('Use image as watermark','nggallery') ?></label></h3>
+			<table class="wm-table form-table">
+				<tr>
+					<th><?php _e('URL to file','nggallery') ?></th>
+					<td><input type="text" size="40" name="wmPath" value="<?php echo $ngg->options['wmPath']; ?>" /><br />
+					<?php if(!ini_get('allow_url_fopen')) _e('The accessing of URL files is disabled at your server (allow_url_fopen)','nggallery') ?> </td>
+				</tr>
+			</table>	
+			<h3><label><input type="radio" name="wmType" value="text" <?php checked('text', $ngg->options['wmType']); ?> /> <?php _e('Use text as watermark','nggallery') ?></label></h3>
+			<table class="wm-table form-table">	
+				<tr>
+					<th><?php _e('Font','nggallery') ?></th>
+					<td><select name="wmFont" size="1">	<?php 
+							$fontlist = ngg_get_TTFfont();
+							foreach ( $fontlist as $fontfile ) {
+								echo "\n".'<option value="'.$fontfile.'" '.ngg_input_selected($fontfile, $ngg->options['wmFont']).' >'.$fontfile.'</option>';
+							}
+							?>
+						</select><br /><span class="setting-description">
+						<?php if ( !function_exists('ImageTTFBBox') ) 
+								_e('This function will not work, cause you need the FreeType library','nggallery');
+							  else 
+							  	_e('You can upload more fonts in the folder <strong>nggallery/fonts</strong>','nggallery'); ?>
+                        </span>
+					</td>
+				</tr>
+				<tr>
+					<th><?php _e('Size','nggallery') ?></th>
+					<td><input type="text" name="wmSize" value="<?php echo $ngg->options['wmSize']; ?>" size="4" maxlength="2" /> px</td>
+				</tr>
+				<tr>
+					<th><?php _e('Color','nggallery') ?></th>
+					<td><input class="picker" type="text" size="6" maxlength="6" id="wmColor" name="wmColor" onchange="setcolor('#previewText', this.value)" value="<?php echo $ngg->options['wmColor'] ?>" />
+					<input type="text" size="1" readonly="readonly" id="previewText" style="background-color: #<?php echo $ngg->options['wmColor']; ?>" /> <?php _e('(hex w/o #)','nggallery') ?></td>
+				</tr>
+				<tr>
+					<th valign="top"><?php _e('Text','nggallery') ?></th>
+					<td><textarea name="wmText" cols="40" rows="4"><?php echo $ngg->options['wmText'] ?></textarea></td>
+				</tr>
+				<tr>
+					<th><?php _e('Opaque','nggallery') ?></th>
+					<td><input type="text" name="wmOpaque" value="<?php echo $ngg->options['wmOpaque'] ?>" size="3" maxlength="3" /> % </td>
+				</tr>
+			</table>
+		<div class="clear"> &nbsp; </div>
+		<div class="submit"><input class="button-primary" type="submit" name="updateoption" value="<?php _e('Save Changes') ;?>"/></div>
+		</form>	
+    <?php        
+    }
+
+    function tab_slideshow() {
+
+        global $ngg;
+    ?>
+    	<!-- Slideshow settings -->
+    	<form name="player_options" method="POST" action="<?php echo $this->filepath.'#slideshow'; ?>" >
+    	<?php wp_nonce_field('ngg_settings'); ?>
+    	<input type="hidden" name="page_options" value="slideFx,enableIR,irURL,irWidth,irHeight,irShuffle,irLinkfromdisplay,irShownavigation,irShowicons,irWatermark,irOverstretch,irRotatetime,irTransition,irKenburns,irBackcolor,irFrontcolor,irLightcolor,irScreencolor,irAudio,irXHTMLvalid" />
+    	<h2><?php _e('Slideshow','nggallery'); ?></h2>
+			<table class="form-table ngg-options">
+				<tr>
+					<th><?php _e('Default size (W x H)','nggallery') ?></th>
+					<td><input type="text" size="3" maxlength="4" name="irWidth" value="<?php echo $ngg->options['irWidth']; ?>" /> x
+					<input type="text" size="3" maxlength="4" name="irHeight" value="<?php echo $ngg->options['irHeight']; ?>" /></td>
+				</tr>
+				<tr>					
+					<th><?php _e('Duration time','nggallery') ?></th>
+					<td><input type="text" size="3" maxlength="3" name="irRotatetime" value="<?php echo $ngg->options['irRotatetime'] ?>" /> <?php _e('sec.', 'nggallery') ;?></td>
+				</tr>
+				<tr>					
+				    <th><?php _e('Transition / Fade effect','nggallery') ?></th>
+					<td>
+					<select size="1" name="slideFx">
+						<option value="fade" <?php selected('fade', $ngg->options['slideFx']); ?> ><?php _e('fade', 'nggallery') ;?></option>
+						<option value="blindX" <?php selected('blindX', $ngg->options['slideFx']); ?> ><?php _e('blindX', 'nggallery') ;?></option>
+						<option value="cover" <?php selected('cover', $ngg->options['slideFx']); ?> ><?php _e('cover', 'nggallery') ;?></option>
+						<option value="scrollUp" <?php selected('scrollUp', $ngg->options['slideFx']); ?> ><?php _e('scrollUp', 'nggallery') ;?></option>
+						<option value="scrollDown" <?php selected('scrollDown', $ngg->options['slideFx']); ?> ><?php _e('scrollDown', 'nggallery') ;?></option>
+						<option value="shuffle" <?php selected('shuffle', $ngg->options['slideFx']); ?> ><?php _e('shuffle', 'nggallery') ;?></option>
+						<option value="toss" <?php selected('toss', $ngg->options['slideFx']); ?> ><?php _e('toss', 'nggallery') ;?></option>
+						<option value="wipe" <?php selected('wipe', $ngg->options['slideFx']); ?> ><?php _e('wipe', 'nggallery') ;?></option>
+					</select>
+                    <span class="description"><?php _e('See here for more information about the effects :', 'nggallery') ?> <a href="http://jquery.malsup.com/cycle/browser.html" target="_blank" >jQuery Cycle</a></span>
+                    </td>
+				</tr>
+ 			    </table>
+    			<h3 class="expert" ><?php _e('Settings for the JW Image Rotator','nggallery') ?></h3>
+            	<p><?php _e('The settings are only used in the JW Image Rotator Version', 'nggallery') ?> 3.17 .
+            	   <?php _e('See more information for the Flash Player on the web page', 'nggallery') ?> <a href="http://www.longtailvideo.com/players/jw-image-rotator/" target="_blank" >JW Image Rotator from Jeroen Wijering</a>.
+            	</p>
+            	<?php if (empty($ngg->options['irURL']) && ($ngg->options['enableIR'] == '1')) { ?>
+        			<div id="message" class="error inline">
+        			<p>
+        				<?php _e('The path to imagerotator.swf is not defined, the slideshow will not work.','nggallery'); ?><br />
+        				<?php _e('If you would like to use the JW Image Rotatator, please download the player <a href="http://www.longtailvideo.com/players/jw-image-rotator/" target="_blank" >here</a> and upload it to your Upload folder (Default is wp-content/uploads).','nggallery'); ?>
+        			</p>
+        			</div>
+            	<?php }?>
+    			<table class="expert form-table ngg-options">
+				<tr>
+					<th><?php _e('Enable flash slideshow','nggallery') ?></th>
+					<td><input name="enableIR" type="checkbox" value="1" <?php checked('1', $ngg->options['enableIR']); ?> />
+                    <span class="setting-description"><?php _e('Integrate the flash based slideshow for all flash supported devices','nggallery') ?></span></td>
+				</tr>
+				<tr>
+					<th><?php _e('Path to the Imagerotator (URL)','nggallery') ?></th>
+					<td>
+						<input type="text" size="50" id="irURL" name="irURL" value="<?php echo $ngg->options['irURL']; ?>" />
+						<input type="submit" name="irDetect" class="button-secondary"  value="<?php _e('Search now','nggallery') ;?> &raquo;"/>
+						<br /><span class="setting-description"><?php _e('Press the button to search automatically for the imagerotator, if you uploaded it to wp-content/uploads or a subfolder','nggallery') ?></span>
+					</td>
+				</tr>					
+				<tr>
+					<th><?php _e('Shuffle mode','nggallery') ?></th>
+					<td><input name="irShuffle" type="checkbox" value="1" <?php checked('1', $ngg->options['irShuffle']); ?> /></td>
+				</tr>
+				<tr class="expert">
+					<th><?php _e('Show next image on click','nggallery') ?></th>
+					<td><input name="irLinkfromdisplay" type="checkbox" value="1" <?php checked('1', $ngg->options['irLinkfromdisplay']); ?> /></td>
+				</tr>					
+				<tr class="expert">
+					<th><?php _e('Show navigation bar','nggallery') ?></th>
+					<td><input name="irShownavigation" type="checkbox" value="1" <?php checked('1', $ngg->options['irShownavigation']); ?> /></td>
+				</tr>
+				<tr class="expert">
+					<th><?php _e('Show loading icon','nggallery') ?></th>
+					<td><input name="irShowicons" type="checkbox" value="1" <?php checked('1', $ngg->options['irShowicons']); ?> /></td>
+				</tr>
+				<tr class="expert">
+					<th><?php _e('Use watermark logo','nggallery') ?></th>
+					<td><input name="irWatermark" type="checkbox" value="1" <?php checked('1', $ngg->options['irWatermark']); ?> />
+					<span class="setting-description"><?php _e('You can change the logo at the watermark settings','nggallery') ?></span></td>
+				</tr>
+				<tr class="expert">
+					<th><?php _e('Stretch image','nggallery') ?></th>
+					<td>
+					<select size="1" name="irOverstretch">
+						<option value="true" <?php selected('true', $ngg->options['irOverstretch']); ?> ><?php _e('true', 'nggallery') ;?></option>
+						<option value="false" <?php selected('false', $ngg->options['irOverstretch']); ?> ><?php _e('false', 'nggallery') ;?></option>
+						<option value="fit" <?php selected('fit', $ngg->options['irOverstretch']); ?> ><?php _e('fit', 'nggallery') ;?></option>
+						<option value="none" <?php selected('none', $ngg->options['irOverstretch']); ?> ><?php _e('none', 'nggallery') ;?></option>
+					</select>
+					</td>
+				</tr>
+				<tr>					
+					<th><?php _e('Transition / Fade effect','nggallery') ?></th>
+					<td>
+					<select size="1" name="irTransition">
+						<option value="fade" <?php selected('fade', $ngg->options['irTransition']); ?> ><?php _e('fade', 'nggallery') ;?></option>
+						<option value="bgfade" <?php selected('bgfade', $ngg->options['irTransition']); ?> ><?php _e('bgfade', 'nggallery') ;?></option>
+						<option value="slowfade" <?php selected('slowfade', $ngg->options['irTransition']); ?> ><?php _e('slowfade', 'nggallery') ;?></option>
+						<option value="circles" <?php selected('circles', $ngg->options['irTransition']); ?> ><?php _e('circles', 'nggallery') ;?></option>
+						<option value="bubbles" <?php selected('bubbles', $ngg->options['irTransition']); ?> ><?php _e('bubbles', 'nggallery') ;?></option>
+						<option value="blocks" <?php selected('blocks', $ngg->options['irTransition']); ?> ><?php _e('blocks', 'nggallery') ;?></option>
+						<option value="fluids" <?php selected('fluids', $ngg->options['irTransition']); ?> ><?php _e('fluids', 'nggallery') ;?></option>
+						<option value="flash" <?php selected('flash', $ngg->options['irTransition']); ?> ><?php _e('flash', 'nggallery') ;?></option>
+						<option value="lines" <?php selected('lines', $ngg->options['irTransition']); ?> ><?php _e('lines', 'nggallery') ;?></option>
+						<option value="random" <?php selected('random', $ngg->options['irTransition']); ?> ><?php _e('random', 'nggallery') ;?></option>
+					</select>
+                    </td>
+				</tr>
+				<tr class="expert">
+					<th><?php _e('Use slow zooming effect','nggallery') ?></th>
+					<td><input name="irKenburns" type="checkbox" value="1" <?php checked('1', $ngg->options['irKenburns']); ?> /></td>
+				</tr>
+				<tr>
+					<th><?php _e('Background Color','nggallery') ?></th>
+					<td><input class="picker" type="text" size="6" maxlength="6" id="irBackcolor" name="irBackcolor" onchange="setcolor('#previewBack', this.value)" value="<?php echo $ngg->options['irBackcolor'] ?>" />
+					<input type="text" size="1" readonly="readonly" id="previewBack" style="background-color: #<?php echo $ngg->options['irBackcolor'] ?>" /></td>
+				</tr>
+				<tr>					
+					<th><?php _e('Texts / Buttons Color','nggallery') ?></th>
+					<td><input class="picker" type="text" size="6" maxlength="6" id="irFrontcolor" name="irFrontcolor" onchange="setcolor('#previewFront', this.value)" value="<?php echo $ngg->options['irFrontcolor'] ?>" />
+					<input type="text" size="1" readonly="readonly" id="previewFront" style="background-color: #<?php echo $ngg->options['irFrontcolor'] ?>" /></td>
+				</tr>
+				<tr class="expert">					
+					<th><?php _e('Rollover / Active Color','nggallery') ?></th>
+					<td><input class="picker" type="text" size="6" maxlength="6" id="irLightcolor" name="irLightcolor" onchange="setcolor('#previewLight', this.value)" value="<?php echo $ngg->options['irLightcolor'] ?>" />
+					<input type="text" size="1" readonly="readonly" id="previewLight" style="background-color: #<?php echo $ngg->options['irLightcolor'] ?>" /></td>
+				</tr>
+				<tr class="expert">					
+					<th><?php _e('Screen Color','nggallery') ?></th>
+					<td><input class="picker" type="text" size="6" maxlength="6" id="irScreencolor" name="irScreencolor" onchange="setcolor('#previewScreen', this.value)" value="<?php echo $ngg->options['irScreencolor'] ?>" />
+					<input type="text" size="1" readonly="readonly" id="previewScreen" style="background-color: #<?php echo $ngg->options['irScreencolor'] ?>" /></td>
+				</tr>
+				<tr class="expert">					
+					<th><?php _e('Background music (URL)','nggallery') ?></th>
+					<td><input type="text" size="50" id="irAudio" name="irAudio" value="<?php echo $ngg->options['irAudio'] ?>" /></td>
+				</tr>
+				<tr class="expert">
+					<th ><?php _e('Try XHTML validation (with CDATA)','nggallery') ?></th>
+					<td><input name="irXHTMLvalid" type="checkbox" value="1" <?php checked('1', $ngg->options['irXHTMLvalid']); ?> />
+					<span class="setting-description"><?php _e('Important : Could causes problem at some browser. Please recheck your page.','nggallery') ?></span></td>
+				</tr>
+				</table>
+			<div class="alignright"><a href="" class="switch-expert" >[<?php _e('More settings','nggallery'); ?>]</a></div>
+			<div class="submit"><input class="button-primary" type="submit" name="updateoption" value="<?php _e('Save Changes') ;?>"/></div>
+	</form>
+    <?php        
+    }
+}
+
+function ngg_get_TTFfont() {
+	
+	$ttf_fonts = array ();
+	
+	// Files in wp-content/plugins/nggallery/fonts directory
+	$plugin_root = NGGALLERY_ABSPATH . 'fonts';
+	
+	$plugins_dir = @ dir($plugin_root);
+	if ($plugins_dir) {
+		while (($file = $plugins_dir->read()) !== false) {
+			if (preg_match('|^\.+$|', $file))
+				continue;
+			if (is_dir($plugin_root.'/'.$file)) {
+				$plugins_subdir = @ dir($plugin_root.'/'.$file);
+				if ($plugins_subdir) {
+					while (($subfile = $plugins_subdir->read()) !== false) {
+						if (preg_match('|^\.+$|', $subfile))
+							continue;
+						if (preg_match('|\.ttf$|', $subfile))
+							$ttf_fonts[] = "$file/$subfile";
+					}
+				}
+			} else {
+				if (preg_match('|\.ttf$|', $file))
+					$ttf_fonts[] = $file;
+			}
+		}
+	}
+
+	return $ttf_fonts;
+}
+
+function ngg_search_imagerotator() {
+	global $wpdb;
+
+	$upload = wp_upload_dir();
+
+	// look first at the old place and move it to wp-content/uploads
+	if ( file_exists( NGGALLERY_ABSPATH . 'imagerotator.swf' ) )
+		@rename(NGGALLERY_ABSPATH . 'imagerotator.swf', $upload['basedir'] . '/imagerotator.swf');
+		
+	// This should be the new place	
+	if ( file_exists( $upload['basedir'] . '/imagerotator.swf' ) )
+		return $upload['baseurl'] . '/imagerotator.swf';
+
+	// Find the path to the imagerotator via the media library
+	if ( $path = $wpdb->get_var( "SELECT guid FROM {$wpdb->posts} WHERE guid LIKE '%imagerotator.swf%'" ) )
+		return $path;
+
+	// maybe it's located at wp-content
+	if ( file_exists( WP_CONTENT_DIR . '/imagerotator.swf' ) )
+		return WP_CONTENT_URL . '/imagerotator.swf';
+
+	// or in the plugin folder
+	if ( file_exists( WP_PLUGIN_DIR . '/imagerotator.swf' ) )
+		return WP_PLUGIN_URL . '/imagerotator.swf';
+		
+	// this is deprecated and will be ereased during a automatic upgrade
+	if ( file_exists( NGGALLERY_ABSPATH . 'imagerotator.swf' ) )
+		return NGGALLERY_URLPATH . 'imagerotator.swf';
+		
+	return '';
+}
+
+/**********************************************************/
+// taken from WP Core
+
+function ngg_input_selected( $selected, $current) {
+	if ( $selected == $current)
+		return ' selected="selected"';
+}
+	
+function ngg_input_checked( $checked, $current) {
+	if ( $checked == $current)
+		return ' checked="checked"';
+}
+?>
\ No newline at end of file
diff --git a/wp-content/plugins/nextgen-gallery/admin/setup.php b/wp-content/plugins/nextgen-gallery/admin/setup.php
new file mode 100644
index 000000000..ec4e43abe
--- /dev/null
+++ b/wp-content/plugins/nextgen-gallery/admin/setup.php
@@ -0,0 +1,58 @@
+<?php  
+if(preg_match('#' . basename(__FILE__) . '#', $_SERVER['PHP_SELF'])) { die('You are not allowed to call this page directly.'); }
+
+	function nggallery_admin_setup()  {	
+		global $wpdb, $ngg;
+				
+		if (isset($_POST['resetdefault'])) {	
+			check_admin_referer('ngg_uninstall');
+						
+			include_once ( dirname (__FILE__).  '/install.php');
+			
+			ngg_default_options();
+			$ngg->load_options();
+			
+			nggGallery::show_message(__('Reset all settings to default parameter','nggallery'));
+		}
+
+		if (isset($_POST['uninstall'])) {	
+			
+			check_admin_referer('ngg_uninstall');
+			
+			include_once ( dirname (__FILE__).  '/install.php');
+
+			nggallery_uninstall();
+				 	
+		 	nggGallery::show_message(__('Uninstall sucessful ! Now delete the plugin and enjoy your life ! Good luck !','nggallery'));
+		}
+	?>
+	<div class="wrap">
+	<h2><?php _e('Reset options', 'nggallery') ;?></h2>
+		<form name="resetsettings" method="post">
+			<?php wp_nonce_field('ngg_uninstall') ?>
+			<p><?php _e('Reset all options/settings to the default installation.', 'nggallery') ;?></p>
+			<div align="center"><input type="submit" class="button" name="resetdefault" value="<?php _e('Reset settings', 'nggallery') ;?>" onclick="javascript:check=confirm('<?php _e('Reset all options to default settings ?\n\nChoose [Cancel] to Stop, [OK] to proceed.\n','nggallery'); ?>');if(check==false) return false;" /></div>
+		</form>
+	</div>
+	<?php if ( !is_multisite() || wpmu_site_admin() ) : ?>
+	<div class="wrap">
+	<h2><?php _e('Uninstall plugin tables', 'nggallery') ;?></h2>
+		
+		<form name="resetsettings" method="post">
+		<div>
+			<?php wp_nonce_field('ngg_uninstall') ?>
+			<p><?php _e('You don\'t like NextGEN Gallery ?', 'nggallery') ;?></p>
+			<p><?php _e('No problem, before you deactivate this plugin press the Uninstall Button, because deactivating NextGEN Gallery does not remove any data that may have been created. ', 'nggallery') ;?>
+		</div>
+		<p><font color="red"><strong><?php _e('WARNING:', 'nggallery') ;?></strong><br />
+		<?php _e('Once uninstalled, this cannot be undone. You should use a Database Backup plugin of WordPress to backup all the tables first. NextGEN gallery is stored in the tables', 'nggallery') ;?> <strong><?php echo $wpdb->nggpictures; ?></strong>, <strong><?php echo $wpdb->nggalbum; ?></strong> <?php _e('and', 'nggallery') ;?> <strong><?php echo $wpdb->nggalbum; ?></strong>.</font></p>
+		<div align="center">
+			<input type="submit" name="uninstall" class="button delete" value="<?php _e('Uninstall plugin', 'nggallery') ?>" onclick="javascript:check=confirm('<?php _e('You are about to Uninstall this plugin from WordPress.\nThis action is not reversible.\n\nChoose [Cancel] to Stop, [OK] to Uninstall.\n','nggallery'); ?>');if(check==false) return false;"/>
+		</div>
+		</form>
+	</div>
+	<?php endif; ?>
+
+	<?php
+}
+?>
diff --git a/wp-content/plugins/nextgen-gallery/admin/showmeta.php b/wp-content/plugins/nextgen-gallery/admin/showmeta.php
new file mode 100644
index 000000000..74373b564
--- /dev/null
+++ b/wp-content/plugins/nextgen-gallery/admin/showmeta.php
@@ -0,0 +1,124 @@
+<?php
+
+// look up for the path
+require_once( dirname( dirname(__FILE__) ) . '/ngg-config.php');
+
+require_once(NGGALLERY_ABSPATH . '/lib/meta.php');
+require_once(NGGALLERY_ABSPATH . '/lib/image.php');
+
+if ( !is_user_logged_in() )
+	die(__('Cheatin&#8217; uh?'));
+	
+if ( !current_user_can('NextGEN Manage gallery') ) 
+	die(__('Cheatin&#8217; uh?'));
+
+global $wpdb;
+
+$id = (int) $_GET['id'];
+// let's get the meta data'
+$meta = new nggMeta($id);
+$dbdata = $meta->get_saved_meta();
+$exifdata = $meta->get_EXIF();
+$iptcdata = $meta->get_IPTC();
+$xmpdata = $meta->get_XMP();
+$class = '';
+
+?>
+	<!-- META DATA -->
+	<fieldset class="options nggallery">
+	<h3><?php _e('Meta Data','nggallery'); ?></h3>
+	<?php if ($dbdata) { ?>
+		<table id="the-list-x" width="100%" cellspacing="3" cellpadding="3">
+			<thead>
+				<tr>
+					<th scope="col"><?php _e('Tag','nggallery'); ?></th>
+					<th scope="col"><?php _e('Value','nggallery'); ?></th>
+				</tr>
+			</thead>
+	<?php 
+			foreach ($dbdata as $key => $value){
+				if ( is_array($value) ) continue;
+				$class = ( $class == 'class="alternate"' ) ? '' : 'class="alternate"';
+				echo '<tr '.$class.'>	
+						<td style="width:230px">'.$meta->i8n_name($key).'</td>
+						<td>'.$value.'</td>
+					</tr>';
+			}
+	?>
+		</table>
+	<?php  } else echo "<strong>" . __('No meta data saved','nggallery') . "</strong>"; ?>
+	</fieldset>
+	
+	<!-- EXIF DATA -->
+	<?php if ($exifdata) { ?>
+	<fieldset class="options nggallery">
+	<h3><?php _e('EXIF Data','nggallery'); ?></h3>
+	<?php if ($exifdata) { ?>
+		<table id="the-list-x" width="100%" cellspacing="3" cellpadding="3">
+			<thead>
+				<tr>
+					<th scope="col"><?php _e('Tag','nggallery'); ?></th>
+					<th scope="col"><?php _e('Value','nggallery'); ?></th>
+				</tr>
+			</thead>
+	<?php 
+			foreach ($exifdata as $key => $value){
+				$class = ( $class == 'class="alternate"' ) ? '' : 'class="alternate"';
+				echo '<tr '.$class.'>	
+						<td style="width:230px">'.$meta->i8n_name($key).'</td>
+						<td>'.$value.'</td>
+					</tr>';
+			}
+	?>
+		</table>
+	<?php  } else echo "<strong>". __('No exif data','nggallery'). "</strong>"; ?>
+	</fieldset>
+	<?php  } ?>
+	
+	<!-- IPTC DATA -->
+	<?php if ($iptcdata) { ?>
+	<fieldset class="options nggallery">
+	<h3><?php _e('IPTC Data','nggallery'); ?></h3>
+		<table id="the-list-x" width="100%" cellspacing="3" cellpadding="3">
+			<thead>
+				<tr>
+					<th scope="col"><?php _e('Tag','nggallery'); ?></th>
+					<th scope="col"><?php _e('Value','nggallery'); ?></th>
+				</tr>
+			</thead>
+	<?php 
+			foreach ($iptcdata as $key => $value){
+				$class = ( $class == 'class="alternate"' ) ? '' : 'class="alternate"';
+				echo '<tr '.$class.'>	
+						<td style="width:230px">'.$meta->i8n_name($key).'</td>
+						<td>'.$value.'</td>
+					</tr>';
+			}
+	?>
+		</table>
+	</fieldset>
+	<?php  } ?>
+
+	<!-- XMP DATA -->
+	<?php if ($xmpdata) { ?>
+	<fieldset class="options nggallery">
+	<h3><?php _e('XMP Data','nggallery'); ?></h3>
+		<table id="the-list-x" width="100%" cellspacing="3" cellpadding="3">
+			<thead>
+				<tr>
+					<th scope="col"><?php _e('Tag','nggallery'); ?></th>
+					<th scope="col"><?php _e('Value','nggallery'); ?></th>
+				</tr>
+			</thead>
+	<?php 
+			foreach ($xmpdata as $key => $value){
+				$class = ( $class == 'class="alternate"' ) ? '' : 'class="alternate"';
+				echo '<tr '.$class.'>	
+						<td style="width:230px">'.$meta->i8n_name($key).'</td>
+						<td>'.$value.'</td>
+					</tr>';
+			}
+	?>
+		</table>
+	</fieldset>
+	<?php  } ?>
\ No newline at end of file
diff --git a/wp-content/plugins/nextgen-gallery/admin/style.php b/wp-content/plugins/nextgen-gallery/admin/style.php
new file mode 100644
index 000000000..f6bd02fd9
--- /dev/null
+++ b/wp-content/plugins/nextgen-gallery/admin/style.php
@@ -0,0 +1,252 @@
+<?php  
+if(preg_match('#' . basename(__FILE__) . '#', $_SERVER['PHP_SELF'])) { die('You are not allowed to call this page directly.'); }
+
+function nggallery_admin_style()  {
+
+global $ngg;
+
+if ( $theme_css_exists = file_exists (TEMPLATEPATH . "/nggallery.css") ) {
+
+	$real_file = TEMPLATEPATH . "/nggallery.css";
+	$file_show = 'nggallery.css ' . __('(From the theme folder)','nggallery');
+	
+} else {
+
+	if (isset($_POST['css'])) {
+		check_admin_referer('ngg_style');
+		$act_cssfile = $_POST['css']; 
+		
+		if ( isset( $_POST['activate'] ) ) {
+			// save option now
+			$ngg->options['activateCSS'] = $_POST['activateCSS']; 
+			$ngg->options['CSSfile'] = $act_cssfile;
+			update_option('ngg_options', $ngg->options);
+			nggGallery::show_message(__('Update Successfully','nggallery'));
+		}
+	} else {
+		// get the options
+		if (isset($_POST['file']))
+			$act_cssfile = $_POST['file'];
+		else
+			$act_cssfile = $ngg->options['CSSfile'];	
+	}
+	
+	// set the path
+	$real_file = NGGALLERY_ABSPATH . "css/" . $act_cssfile;
+}
+
+if (isset($_POST['updatecss'])) {
+	
+	check_admin_referer('ngg_style');
+
+	if ( !current_user_can('edit_themes') )
+	wp_die('<p>'.__('You do not have sufficient permissions to edit templates for this blog.').'</p>');
+
+	$newcontent = stripslashes($_POST['newcontent']);
+
+	if (is_writeable($real_file)) {
+		$f = fopen($real_file, 'w+');
+		fwrite($f, $newcontent);
+
+		fclose($f);
+		nggGallery::show_message(__('CSS file successfully updated','nggallery'));
+	}
+}
+
+// get the content of the file
+//TODO: BUG : Read failed after write a file, maybe a Cache problem
+$error = ( !is_file($real_file) );
+
+if (!$error && filesize($real_file) > 0) {
+	$f = fopen($real_file, 'r');
+	$content = fread($f, filesize($real_file));
+	$content = htmlspecialchars($content); 
+}
+
+?>
+<script type="text/javascript">
+	jQuery(document).ready(function(){
+		jQuery('#colorSelector').ColorPicker({
+			color: '#0000ff',
+			onShow: function (colpkr) {
+				jQuery(colpkr).fadeIn(500);
+				return false;
+			},
+			onHide: function (colpkr) {
+				jQuery(colpkr).fadeOut(500);
+				return false;
+			},
+			onChange: function (hsb, hex, rgb) {
+				jQuery('#colorSelector div').css('backgroundColor', '#' + hex);
+			}
+		});
+	});
+</script>
+<div class="wrap">
+
+	<div class="bordertitle">
+        <?php screen_icon( 'nextgen-gallery' ); ?>
+		<h2><?php _e('Style Editor','nggallery') ?></h2>
+		<?php if (!$theme_css_exists) : ?>
+		<form id="themeselector" name="cssfiles" method="post">
+		<?php wp_nonce_field('ngg_style') ?>
+		<strong><?php _e('Activate and use style sheet:','nggallery') ?></strong>
+		<input type="checkbox" name="activateCSS" value="1" <?php checked('1', $ngg->options['activateCSS']); ?> /> 
+			<select name="css" id="theme" style="margin: 0pt; padding: 0pt;" onchange="this.form.submit();">
+			<?php
+				$csslist = ngg_get_cssfiles();
+				foreach ($csslist as $key =>$a_cssfile) {
+					$css_name = $a_cssfile['Name'];
+					if ($key == $act_cssfile) {
+						$file_show = $key;
+						$selected = " selected='selected'";
+						$act_css_description = $a_cssfile['Description'];
+						$act_css_author = $a_cssfile['Author'];
+						$act_css_version = $a_cssfile['Version'];
+					}
+					else $selected = '';
+					$css_name = esc_attr($css_name);
+					echo "\n\t<option value=\"$key\" $selected>$css_name</option>";
+				}
+			?>
+			</select>
+			<input class="button" type="submit" name="activate" value="<?php _e('Activate','nggallery') ?> &raquo;" class="button" />
+		</form>
+		<?php endif; ?>
+	</div>
+	<br style="clear: both;"/>
+	
+<?php if (!is_multisite() || wpmu_site_admin() ) { ?>
+	<div class="tablenav"> 
+	  <?php
+		if ( is_writeable($real_file) ) {
+			echo '<big>' . sprintf(__('Editing <strong>%s</strong>','nggallery'), $file_show) . '</big>';
+		} else {
+			echo '<big>' . sprintf(__('Browsing <strong>%s</strong>','nggallery'), $file_show) . '</big>';
+		}
+		?>
+	</div>
+	<br style="clear: both;"/>
+	
+	<div id="templateside">
+	<?php if (!$theme_css_exists) : ?>
+		<ul>
+			<li><strong><?php _e('Author','nggallery') ?> :</strong> <?php echo $act_css_author ?></li>
+			<li><strong><?php _e('Version','nggallery') ?> :</strong> <?php echo $act_css_version ?></li>
+			<li><strong><?php _e('Description','nggallery') ?> :<br /></strong> <?php echo $act_css_description ?></li>
+		</ul>
+		<p><?php _e('Tip : Copy your stylesheet (nggallery.css) to your theme folder, so it will be not lost during a upgrade','nggallery') ?></p>
+	<?php else: ?>
+		<p><?php _e('Your theme contain a NextGEN Gallery stylesheet (nggallery.css), this file will be used','nggallery') ?></p>
+	<?php endif; ?>
+    	<p><?php _e('Tip No. 2: Use the color picker below to help you find the right color scheme for your gallery!','nggallery') ?></p>
+    	<div id="colorSelector">
+        	<div></div>
+        </div>
+	</div>
+		<?php
+		if (!$error) {
+		?>
+		<form name="template" id="template" method="post">
+			 <?php wp_nonce_field('ngg_style') ?>
+			 <div><textarea cols="70" rows="25" name="newcontent" id="newcontent" tabindex="1"  class="codepress css"><?php echo $content ?></textarea>
+			 <input type="hidden" name="updatecss" value="updatecss" />
+			 <input type="hidden" name="file" value="<?php echo $file_show ?>" />
+			 </div>
+	<?php if ( is_writeable($real_file) ) : ?>
+		<p class="submit">
+			<input class="button-primary action" type="submit" name="submit" value="<?php _e('Update File','nggallery') ?>" tabindex="2" />
+		</p>
+	<?php else : ?>
+	<p><em><?php _e('If this file were writable you could edit it.','nggallery'); ?></em></p>
+	<?php endif; ?>
+		</form>
+		<?php
+		} else {
+			echo '<div class="error"><p>' . __('Oops, no such file exists! Double check the name and try again, merci.','nggallery') . '</p></div>';
+		}
+		?>
+	<div class="clear"> &nbsp; </div>
+</div> <!-- wrap-->
+	
+<?php
+	}
+	
+} // END nggallery_admin_style()
+
+/**********************************************************/
+// ### Code from wordpress plugin import
+// read in the css files
+function ngg_get_cssfiles() {
+	global $cssfiles;
+
+	if (isset ($cssfiles)) {
+		return $cssfiles;
+	}
+
+	$cssfiles = array ();
+	
+	// Files in wp-content/plugins/nggallery/css directory
+	$plugin_root = NGGALLERY_ABSPATH . "css";
+	
+	$plugins_dir = @ dir($plugin_root);
+	if ($plugins_dir) {
+		while (($file = $plugins_dir->read()) !== false) {
+			if (preg_match('|^\.+$|', $file))
+				continue;
+			if (is_dir($plugin_root.'/'.$file)) {
+				$plugins_subdir = @ dir($plugin_root.'/'.$file);
+				if ($plugins_subdir) {
+					while (($subfile = $plugins_subdir->read()) !== false) {
+						if (preg_match('|^\.+$|', $subfile))
+							continue;
+						if (preg_match('|\.css$|', $subfile))
+							$plugin_files[] = "$file/$subfile";
+					}
+				}
+			} else {
+				if (preg_match('|\.css$|', $file))
+					$plugin_files[] = $file;
+			}
+		}
+	}
+
+	if ( !$plugins_dir || !$plugin_files )
+		return $cssfiles;
+
+	foreach ( $plugin_files as $plugin_file ) {
+		if ( !is_readable("$plugin_root/$plugin_file"))
+			continue;
+
+		$plugin_data = ngg_get_cssfiles_data("$plugin_root/$plugin_file");
+
+		if ( empty ($plugin_data['Name']) )
+			continue;
+
+		$cssfiles[plugin_basename($plugin_file)] = $plugin_data;
+	}
+
+	uasort($cssfiles, create_function('$a, $b', 'return strnatcasecmp($a["Name"], $b["Name"]);'));
+
+	return $cssfiles;
+}
+
+// parse the Header information
+function ngg_get_cssfiles_data($plugin_file) {
+	$plugin_data = implode('', file($plugin_file));
+	preg_match("|CSS Name:(.*)|i", $plugin_data, $plugin_name);
+	preg_match("|Description:(.*)|i", $plugin_data, $description);
+	preg_match("|Author:(.*)|i", $plugin_data, $author_name);
+	if (preg_match("|Version:(.*)|i", $plugin_data, $version))
+		$version = trim($version[1]);
+	else
+		$version = '';
+
+	$description = wptexturize(trim($description[1]));
+
+	$name = trim($plugin_name[1]);
+	$author = trim($author_name[1]);
+
+	return array ('Name' => $name, 'Description' => $description, 'Author' => $author, 'Version' => $version );
+}
+?>
\ No newline at end of file
diff --git a/wp-content/plugins/nextgen-gallery/admin/tags.php b/wp-content/plugins/nextgen-gallery/admin/tags.php
new file mode 100644
index 000000000..2ff371841
--- /dev/null
+++ b/wp-content/plugins/nextgen-gallery/admin/tags.php
@@ -0,0 +1,288 @@
+<?php  
+/**
+* Tag management page. Inspired from the Simple Tags plugin by Amaury Balmer.
+* http://code.google.com/p/simple-tags/
+*/
+
+if(preg_match('#' . basename(__FILE__) . '#', $_SERVER['PHP_SELF'])) { 	die('You are not allowed to call this page directly.'); }
+
+$action_status = array('message' => '', 'status' => 'ok');
+
+if ( isset($_POST['tag_action']) ) {
+	//TODO:Include nonce field
+	if ( $_POST['tag_action'] == 'renametag' ) {
+		$oldtag = (isset($_POST['renametag_old'])) ? $_POST['renametag_old'] : '';
+		$newtag = (isset($_POST['renametag_new'])) ? $_POST['renametag_new'] : '';
+		$action_status = nggTags::rename_tags( $oldtag, $newtag );
+	} elseif ( $_POST['tag_action'] == 'deletetag' ) {
+		$todelete = (isset($_POST['deletetag_name'])) ? $_POST['deletetag_name'] : '';
+		$action_status = nggTags::delete_tags( $todelete );
+	} elseif ( $_POST['tag_action'] == 'editslug' ) {
+		$matchtag = (isset($_POST['tagname_match'])) ? $_POST['tagname_match'] : '';
+		$newslug   = (isset($_POST['tagslug_new'])) ? $_POST['tagslug_new'] : '';
+		$action_status = nggTags::edit_tag_slug( $matchtag, $newslug );
+	} 
+}
+
+// Som useful variables
+$admin_base_url = admin_url() . 'admin.php?page=';
+$nb_tags = 50; // Number of tags to show on a single page
+
+// Manage URL
+$sort_order = ( isset($_GET['tag_sortorder']) ) ? esc_attr(stripslashes($_GET['tag_sortorder'])) : 'desc';
+$search_url = ( isset($_GET['search']) ) ? '&amp;search=' . stripslashes($_GET['search']) : '';
+$action_url = $admin_base_url . esc_attr(stripslashes($_GET['page'])) . '&amp;tag_sortorder=' . $sort_order. $search_url;
+
+// Tags Filters
+$order_array = array(
+	'desc' => __('Most popular', 'nggallery'),
+	'asc' => __('Least used', 'nggallery'),
+	'natural' => __('Alphabetical', 'nggallery'));
+
+// Build Tags Param
+$param = 'hide_empty=false';
+switch ($sort_order) {
+	case 'natural' :
+		$param .= '&number='.$nb_tags.'&orderby=name&order=asc';
+		break;
+	case 'asc' :
+		$param .= '&number='.$nb_tags.'&orderby=count&order=asc';
+		break;
+	default :
+		$param .= '&number='.$nb_tags.'&orderby=count&order=desc';
+		break;
+}
+
+
+// Search
+if ( !empty($_GET['search']) ) {
+	$search = stripslashes($_GET['search']);
+	$param .= '&name__like=' . $search;
+}
+
+// Offset
+if ( !empty($_GET['offset']) ) {
+	$param .= '&offset=' . $_GET['offset'];
+}
+
+// Navigation urls
+if ( empty($_GET['offset']) ) {
+	$offset = 0;
+} else {
+	$offset = $_GET['offset'];
+}
+
+$tag_count = (int)wp_count_terms('ngg_tag', 'ignore_empty=true');
+
+if ($offset + $nb_tags < $tag_count) {
+	$next_offset = '' . min($offset + $nb_tags, $tag_count - $nb_tags);
+} else {
+	$next_offset = '';
+}
+
+if ($nb_tags < $tag_count && $offset>0) {
+	$prev_offset = '' . max($offset - $nb_tags, 0);
+} else {
+	$prev_offset = '';
+}
+
+?>
+<style>
+	.disabled, .disabled:hover { border-color: #E5E5E5; color: #999999; cursor: default; }
+</style>
+
+<div class="wrap ngg_wrap">
+    <?php screen_icon( 'nextgen-gallery' ); ?>
+	<h2><?php _e('Manage image tags', 'nggallery'); ?></h2>
+	
+	<?php if ($action_status['message']!='') : ?>
+	<div id="message" class="<?php echo ($action_status['status']=='ok' ? 'updated' : $action_status['status']); ?> fade">
+		<p><strong><?php echo $action_status['message']; ?></strong></p>
+	</div>
+	<?php endif; ?>
+	
+	<table>
+		<tr>
+			<td class="list_tags">
+				<fieldset class="options" id="taglist">
+					<h3><?php _e('Existing Tags', 'nggallery'); ?></h3>
+
+					<form method="get">
+						<p>
+							<label for="search"><?php _e('Search tags', 'nggallery'); ?></label><br />
+							<input type="hidden" name="page" value="<?php echo esc_attr(stripslashes($_GET['page'])); ?>" />
+							<input type="hidden" name="tag_sortorder" value="<?php echo $sort_order; ?>" />
+							<input type="text" name="search" id="search" size="10" value="<?php if (isset($_GET['search'])) echo stripslashes($_GET['search']); ?>" />
+							<input class="button" type="submit" value="<?php _e('Go', 'nggallery'); ?>" />
+						</p>
+					</form>
+
+					<div class="sort_order">
+						<h3><?php _e('Sort Order:', 'nggallery'); ?></h3>
+						<?php
+						$output = array();
+						foreach( $order_array as $sort => $title ) {
+							$output[] = ($sort == $sort_order) ? '<span style="color: red;">'.$title.'</span>' : '<a href="'.$admin_base_url.esc_attr(stripslashes($_GET['page'])).'&amp;tag_sortorder='.$sort.$search_url.'">'.$title.'</a>';
+						}
+						echo implode('<br />', $output);
+						$output = array();
+						unset($output);
+						?>
+					</div>
+
+					<div id="ajax_area_tagslist">
+						<ul>
+							<?php
+							$tags = (array) nggTags::find_tags($param, true);
+							foreach( $tags as $tag ) {
+                                //TODO:Tag link should be call a list of images in manage gallery
+                                //echo '<li><span>' . $tag->name . '</span>&nbsp;<a href="'.(ngg_get_tag_link( $tag->term_id )).'" title="'.sprintf(__('View all images tagged with %s', 'nggallery'), $tag->name).'">('.$tag->count.')</a></li>'."\n";
+                                echo '<li><span>' . $tag->name . '</span>&nbsp;'.'('.$tag->count.')</li>'."\n";
+
+							}
+							unset($tags);
+							?>
+						</ul>
+
+						<?php if ( $prev_offset!='' || $next_offset!='' ) : ?>
+						<div class="navigation">
+
+							<?php if ($prev_offset!='') { ?>
+							<form method="get" style="display: inline;">
+								<span>
+									<input type="hidden" name="page" value="<?php echo esc_attr(stripslashes($_GET['page'])); ?>" />
+									<input type="hidden" name="tag_sortorder" value="<?php echo $sort_order; ?>" />
+									<input type="hidden" name="offset" value="<?php echo $prev_offset; ?>" />
+									<input class="button" type="submit" value="&laquo; <?php _e('Previous tags', 'nggallery'); ?>" />
+								</span>
+							</form>	
+							<?php } else { ?> 
+								<span><span class="button disabled">&laquo; <?php _e('Previous tags', 'nggallery'); ?></span></span>
+							<?php } ?> 
+
+							<?php if ($next_offset!='') { ?>
+							<form method="get" style="display: inline;">
+								<span>
+									<input type="hidden" name="page" value="<?php echo esc_attr(stripslashes($_GET['page'])); ?>" />
+									<input type="hidden" name="tag_sortorder" value="<?php echo $sort_order; ?>" />
+									<input type="hidden" name="offset" value="<?php echo $next_offset; ?>" />
+									<input class="button" type="submit" value="<?php _e('Next tags', 'nggallery'); ?> &raquo;" />
+								</span>
+							</form>	
+							<?php } else { ?> 
+								<span><span class="button disabled"><?php _e('Previous tags', 'nggallery'); ?> &raquo;</span></span>
+							<?php } ?> 
+						</div>						
+						<?php endif; ?>
+					</div>
+				</fieldset>
+			</td>
+			<td class="forms_manage">
+				<h3><?php _e('Rename Tag', 'nggallery'); ?></h3>
+				<form action="<?php echo $action_url; ?>" method="post">
+					<input type="hidden" name="tag_action" value="renametag" />
+					<input type="hidden" name="tag_nonce" value="<?php echo wp_create_nonce('nggallery_admin'); ?>" />
+
+					<table class="form-table">
+						<tr valign="top">
+							<td colspan="2">
+								<p><?php _e('Enter the tag to rename and its new value.  You can use this feature to merge tags too. Click "Rename" and all posts which use this tag will be updated.', 'nggallery'); ?></p>
+								<p><?php _e('You can specify multiple tags to rename by separating them with commas.', 'nggallery'); ?></p>
+							</td>
+						</tr>	
+						<tr valign="top">
+							<th scope="row"><label for="renametag_old"><?php _e('Tag(s) to rename:', 'nggallery'); ?></label></th>
+							<td><input type="text" id="renametag_old" name="renametag_old" value="" size="40" /></td>
+						</tr>		
+						<tr valign="top">
+							<th scope="row"><label for="renametag_new"><?php _e('New tag name(s):', 'nggallery'); ?></label></th>
+							<td>
+								<input type="text" id="renametag_new" name="renametag_new" value="" size="40" />
+								<input class="button" type="submit" name="rename" value="<?php _e('Rename', 'nggallery'); ?>" />
+							</td>
+						</tr>	
+					</table>							
+				</form>
+
+				<h3><?php _e('Delete Tag', 'nggallery'); ?></h3>
+				<form action="<?php echo $action_url; ?>" method="post">
+					<input type="hidden" name="tag_action" value="deletetag" />
+					<input type="hidden" name="tag_nonce" value="<?php echo wp_create_nonce('nggallery_admin'); ?>" />
+
+					<table class="form-table">
+						<tr valign="top">
+							<td colspan="2">
+								<p><?php _e('Enter the name of the tag to delete.  This tag will be removed from all posts.', 'nggallery'); ?></p>
+								<p><?php _e('You can specify multiple tags to delete by separating them with commas', 'nggallery'); ?>.</p>
+							</td>
+						</tr>	
+						<tr valign="top">
+							<th scope="row"><label for="deletetag_name"><?php _e('Tag(s) to delete:', 'nggallery'); ?></label></th>
+							<td>
+								<input type="text" id="deletetag_name" name="deletetag_name" value="" size="40" />
+								<input class="button" type="submit" name="delete" value="<?php _e('Delete', 'nggallery'); ?>" />
+							</td>
+						</tr>
+					</table>
+				</form>				
+
+				<h3><?php _e('Edit Tag Slug', 'nggallery'); ?></h3>
+				<form action="<?php echo $action_url; ?>" method="post">
+					<input type="hidden" name="tag_action" value="editslug" />
+					<input type="hidden" name="tag_nonce" value="<?php echo wp_create_nonce('nggallery_admin'); ?>" />
+				
+					<table class="form-table">
+						<tr valign="top">
+							<td colspan="2">
+								<p><?php _e('Enter the tag name to edit and its new slug. <a href="http://codex.wordpress.org/Glossary#Slug">Slug definition</a>', 'nggallery'); ?></p>
+								<p><?php _e('You can specify multiple tags to rename by separating them with commas.', 'nggallery'); ?></p>
+							</td>
+						</tr>	
+						<tr valign="top">
+							<th scope="row"><label for="tagname_match"><?php _e('Tag(s) to match:', 'nggallery'); ?></label></th>
+							<td><input type="text" id="tagname_match" name="tagname_match" value="" size="40" /></td>
+						</tr>
+						<tr valign="top">
+							<th scope="row"><label for="tagslug_new"><?php _e('Slug(s) to set:', 'nggallery'); ?></label></th>
+							<td>
+								<input type="text" id="tagslug_new" name="tagslug_new" value="" size="40" />
+								<input class="button" type="submit" name="edit" value="<?php _e('Edit', 'nggallery'); ?>" />
+							</td>
+						</tr>
+					</table>
+				</form>
+			</td>
+		</tr>
+	</table>
+  	<script type="text/javascript">
+  	// <![CDATA[
+  		// Register onclick event
+  		function registerClick() {
+  			jQuery('#taglist ul li span').bind("click", function(){
+				addTag(this.innerHTML, "renametag_old");
+				addTag(this.innerHTML, "deletetag_name");
+				addTag(this.innerHTML, "tagname_match");
+			});
+  		}
+  		
+		// Register initial event
+ 		jQuery(document).ready(function() {
+			registerClick();
+		});
+		
+		// Add tag into input
+		function addTag( tag, name_element ) {
+			var input_element = document.getElementById( name_element );
+
+			if ( input_element.value.length > 0 && !input_element.value.match(/,\s*$/) )
+				input_element.value += ", ";
+
+			var re = new RegExp(tag + ",");
+			if ( !input_element.value.match(re) )
+				input_element.value += tag + ", ";
+
+			return true;
+		}
+	// ]]>
+	</script>
+</div>
\ No newline at end of file
diff --git a/wp-content/plugins/nextgen-gallery/admin/tinymce/editor_plugin.js b/wp-content/plugins/nextgen-gallery/admin/tinymce/editor_plugin.js
new file mode 100644
index 000000000..6c7056c38
--- /dev/null
+++ b/wp-content/plugins/nextgen-gallery/admin/tinymce/editor_plugin.js
@@ -0,0 +1,77 @@
+// Docu : http://wiki.moxiecode.com/index.php/TinyMCE:Create_plugin/3.x#Creating_your_own_plugins
+
+(function() {
+	// Load plugin specific language pack
+	tinymce.PluginManager.requireLangPack('NextGEN');
+	
+	tinymce.create('tinymce.plugins.NextGEN', {
+		/**
+		 * Initializes the plugin, this will be executed after the plugin has been created.
+		 * This call is done before the editor instance has finished it's initialization so use the onInit event
+		 * of the editor instance to intercept that event.
+		 *
+		 * @param {tinymce.Editor} ed Editor instance that the plugin is initialized in.
+		 * @param {string} url Absolute URL to where the plugin is located.
+		 */
+		init : function(ed, url) {
+			// Register the command so that it can be invoked by using tinyMCE.activeEditor.execCommand('mceExample');
+
+			ed.addCommand('mceNextGEN', function() {
+				ed.windowManager.open({
+				    // call content via admin-ajax, no need to know the full plugin path
+					file : ajaxurl + '?action=ngg_tinymce',
+					width : 360 + ed.getLang('NextGEN.delta_width', 0),
+					height : 210 + ed.getLang('NextGEN.delta_height', 0),
+					inline : 1
+				}, {
+					plugin_url : url // Plugin absolute URL
+				});
+			});
+
+			// Register example button
+			ed.addButton('NextGEN', {
+				title : 'NextGEN.desc',
+				cmd : 'mceNextGEN',
+				image : url + '/nextgen.gif'
+			});
+
+			// Add a node change handler, selects the button in the UI when a image is selected
+			ed.onNodeChange.add(function(ed, cm, n) {
+				cm.setActive('NextGEN', n.nodeName == 'IMG');
+			});
+		},
+
+		/**
+		 * Creates control instances based in the incomming name. This method is normally not
+		 * needed since the addButton method of the tinymce.Editor class is a more easy way of adding buttons
+		 * but you sometimes need to create more complex controls like listboxes, split buttons etc then this
+		 * method can be used to create those.
+		 *
+		 * @param {String} n Name of the control to create.
+		 * @param {tinymce.ControlManager} cm Control manager to use inorder to create new control.
+		 * @return {tinymce.ui.Control} New control instance or null if no control was created.
+		 */
+		createControl : function(n, cm) {
+			return null;
+		},
+
+		/**
+		 * Returns information about the plugin as a name/value array.
+		 * The current keys are longname, author, authorurl, infourl and version.
+		 *
+		 * @return {Object} Name/value array containing information about the plugin.
+		 */
+		getInfo : function() {
+			return {
+					longname  : 'NextGEN',
+					author 	  : 'Alex Rabe',
+					authorurl : 'http://alexrabe.de',
+					infourl   : 'http://alexrabe.de',
+					version   : "2.0"
+			};
+		}
+	});
+
+	// Register plugin
+	tinymce.PluginManager.add('NextGEN', tinymce.plugins.NextGEN);
+})();
\ No newline at end of file
diff --git a/wp-content/plugins/nextgen-gallery/admin/tinymce/langs/de.js b/wp-content/plugins/nextgen-gallery/admin/tinymce/langs/de.js
new file mode 100644
index 000000000..242806db2
--- /dev/null
+++ b/wp-content/plugins/nextgen-gallery/admin/tinymce/langs/de.js
@@ -0,0 +1,6 @@
+// German lang variables for WP2.5
+
+tinyMCE.addI18n({de:{
+NextGEN:{	
+desc : 'NextGEN Gallery hinzufuegen'
+}}});
diff --git a/wp-content/plugins/nextgen-gallery/admin/tinymce/langs/de_de.js b/wp-content/plugins/nextgen-gallery/admin/tinymce/langs/de_de.js
new file mode 100644
index 000000000..242806db2
--- /dev/null
+++ b/wp-content/plugins/nextgen-gallery/admin/tinymce/langs/de_de.js
@@ -0,0 +1,6 @@
+// German lang variables for WP2.5
+
+tinyMCE.addI18n({de:{
+NextGEN:{	
+desc : 'NextGEN Gallery hinzufuegen'
+}}});
diff --git a/wp-content/plugins/nextgen-gallery/admin/tinymce/langs/en.js b/wp-content/plugins/nextgen-gallery/admin/tinymce/langs/en.js
new file mode 100644
index 000000000..a2cf59ccb
--- /dev/null
+++ b/wp-content/plugins/nextgen-gallery/admin/tinymce/langs/en.js
@@ -0,0 +1,6 @@
+// English lang variables for WP2.5
+
+tinyMCE.addI18n({en:{
+NextGEN:{	
+desc : 'Add NextGEN Gallery'
+}}});
diff --git a/wp-content/plugins/nextgen-gallery/admin/tinymce/langs/en_US.js b/wp-content/plugins/nextgen-gallery/admin/tinymce/langs/en_US.js
new file mode 100644
index 000000000..3f6fffa50
--- /dev/null
+++ b/wp-content/plugins/nextgen-gallery/admin/tinymce/langs/en_US.js
@@ -0,0 +1,6 @@
+// English lang variables for WP2.5
+
+tinyMCE.addI18n({en_US:{
+NextGEN:{	
+desc : 'Add NextGEN Gallery'
+}}});
diff --git a/wp-content/plugins/nextgen-gallery/admin/tinymce/nextgen.gif b/wp-content/plugins/nextgen-gallery/admin/tinymce/nextgen.gif
new file mode 100644
index 0000000000000000000000000000000000000000..24d0f2b520d60a60a2ec82a6dd7b9bbe093c0389
GIT binary patch
literal 963
zcmZ?wbhEHb6k!ly_|Cw<!o;$s%cf`56dSjaGq>)9r0t1mN?EgRi%(e3n@?X-=H<i`
z9SMo+*|V%<&b~EIp1oOeY|Ecte`40<Oes=1v#rG?s3#_G&yiU!A#qdAoVxO76HCj!
zDLz3pcOJb7$=Z|BmE#lD^X1#0l4Uh1Wk=q;`ts-BpPX$qQ_4(2lBOKFbS8sAf`Nfy
zMh(L%28Ij<5ZJ+xwUU7$iy?=Bfg#|31LObKi3}19j0_A6Odx3pe&E2s3>If#nDE3X
z=j8)l#zYpza)vw88D1=5kVs-+DCeJH$&gdaz$?SgQXX)If$=v(BFHKR23d{*7AD>_
z29|P$8=V#A0Y2HOsSFGZ8vlCi|G&%rFTwDiq2iY;gBc4$QW`^fIm4$+2BW~lq*R7-
z1_lNf1_mnzh8O{ciV0s6bN1)*?k`{|E!e|g{gUyZ1jBv?hEh3(+vW_7Nem0h8NOR^
zFfhJ?+WTuhgINMYQWD6>qe~9dCs@fOrIwd7FcdN{)EF?xK+M0u!0-y>Uj~L54Cy(H
znY;{nEDXgAUv(Jvzh>Ak!BEP;@L)H?OM3>1;|vU?3}4e3_OD{t&(2WVRCDGZ<M028
z68{+({xis0Gq4<FNZZd)UK*fS$rybwF%{&th<^vz{##}LPi6Se5FqiH@ztV4iG2(V
zr8DBBS4lNw>|MZ6`W+I?iQsS!U|?WmWPq^44Hy_+F@U3sfx)PqVZSWH{;v$BMFA#^
zj0|8k2N;;X@-V!9%^)Gc#K5qFX9d&3R}B83K(7rr!@%&HfkC2{fuSa1H^XbF`+1Jt
zXV`y|VLux~Y15U0e=qm`m+%L<pLxz_h7*ez{6TK(H0cOnXiQ~rVmQE16LNszl@)^o
zD86bL7{I9l<j_ygzZ&g-owQ$~yp-WGWA}Q7{TvMYOBhOP80r}q8W<QBFfe_e!O*>m
zVSffVjy&|T7}5(rWqL5DF)03I0VOU59gsnwJi*SffPs-i#$&^RgUuYmS}`XK9(J%Q
zD>=1T9CC8vRyE4HvP0ovlaPpBzzc^>&Me(5feQ{CIOyELEu}Z*jldyiM;=KdnGX{b
zo}A#*R8Y|f5O8T@Q|FqX;CY~tgO$reK(#}`xq*{aF2_J|VRraRR>3714O1Q1H>b_?
xlZ{Y(-pEw&_*AU+hP4dL6`$oKCTz$(x4&Nd%UXvW8y>cG2y4gfF;HNz1^`qjMic-5

literal 0
HcmV?d00001

diff --git a/wp-content/plugins/nextgen-gallery/admin/tinymce/tinymce.js b/wp-content/plugins/nextgen-gallery/admin/tinymce/tinymce.js
new file mode 100644
index 000000000..65318809a
--- /dev/null
+++ b/wp-content/plugins/nextgen-gallery/admin/tinymce/tinymce.js
@@ -0,0 +1,76 @@
+function init() {
+	tinyMCEPopup.resizeToInnerSize();
+}
+
+function getCheckedValue(radioObj) {
+	if(!radioObj)
+		return "";
+	var radioLength = radioObj.length;
+	if(radioLength == undefined)
+		if(radioObj.checked)
+			return radioObj.value;
+		else
+			return "";
+	for(var i = 0; i < radioLength; i++) {
+		if(radioObj[i].checked) {
+			return radioObj[i].value;
+		}
+	}
+	return "";
+}
+
+function insertNGGLink() {
+	
+	var tagtext;
+	
+	var gallery = document.getElementById('gallery_panel');
+	var album = document.getElementById('album_panel');
+	var singlepic = document.getElementById('singlepic_panel');
+	
+	// who is active ?
+	if (gallery.className.indexOf('current') != -1) {
+		var galleryid = document.getElementById('gallerytag').value;
+		var showtype = getCheckedValue(document.getElementsByName('showtype'));
+		if (galleryid != 0 )
+			tagtext = "["+ showtype + " id=" + galleryid + "]";
+		else
+			tinyMCEPopup.close();
+	}
+
+	if (album.className.indexOf('current') != -1) {
+		var albumid = document.getElementById('albumtag').value;
+		var showtype = getCheckedValue(document.getElementsByName('albumtype'));
+		if (albumid != 0 )
+			tagtext = "[album id=" + albumid + " template=" + showtype + "]";
+		else
+			tinyMCEPopup.close();
+	}
+
+	if (singlepic.className.indexOf('current') != -1) {
+		var singlepicid = document.getElementById('singlepictag').value;
+		var imgWidth = document.getElementById('imgWidth').value;
+		var imgHeight = document.getElementById('imgHeight').value;
+		var imgeffect = document.getElementById('imgeffect').value;
+		var imgfloat = document.getElementById('imgfloat').value;
+
+		if (singlepicid != 0 ) {
+			if (imgeffect == "none")
+				tagtext = "[singlepic id=" + singlepicid + " w=" + imgWidth + " h=" + imgHeight + " float=" + imgfloat + "]";
+			else
+				tagtext = "[singlepic id=" + singlepicid + " w=" + imgWidth + " h=" + imgHeight + " mode=" + imgeffect + " float=" + imgfloat + "]";
+		} else {
+			tinyMCEPopup.close();
+		}
+	}
+	
+	if(window.tinyMCE) {
+		//TODO: For QTranslate we should use here 'qtrans_textarea_content' instead 'content'
+		window.tinyMCE.execInstanceCommand('content', 'mceInsertContent', false, tagtext);
+		//Peforms a clean up of the current editor HTML. 
+		//tinyMCEPopup.editor.execCommand('mceCleanup');
+		//Repaints the editor. Sometimes the browser has graphic glitches. 
+		tinyMCEPopup.editor.execCommand('mceRepaint');
+		tinyMCEPopup.close();
+	}
+	return;
+}
diff --git a/wp-content/plugins/nextgen-gallery/admin/tinymce/tinymce.php b/wp-content/plugins/nextgen-gallery/admin/tinymce/tinymce.php
new file mode 100644
index 000000000..6eb89f297
--- /dev/null
+++ b/wp-content/plugins/nextgen-gallery/admin/tinymce/tinymce.php
@@ -0,0 +1,101 @@
+<?php
+
+/**
+ * add_nextgen_button
+ * 
+ * @package NextGEN Gallery
+ * @title TinyMCE V3 Button Integration (for WP2.5 and higher)
+ * @author Alex Rabe
+ * @access public
+ */
+class add_nextgen_button {
+	
+	var $pluginname = 'NextGEN';
+	var $path = '';
+	var $internalVersion = 200;
+	
+	/**
+	 * add_nextgen_button::add_nextgen_button()
+	 * the constructor
+	 * 
+	 * @return void
+	 */
+	function add_nextgen_button()  {
+		
+		// Set path to editor_plugin.js
+		$this->path = NGGALLERY_URLPATH . 'admin/tinymce/';		
+		
+		// Modify the version when tinyMCE plugins are changed.
+		add_filter('tiny_mce_version', array (&$this, 'change_tinymce_version') );
+
+		// init process for button control
+		add_action('init', array (&$this, 'addbuttons') );
+	}
+
+	/**
+	 * add_nextgen_button::addbuttons()
+	 * 
+	 * @return void
+	 */
+	function addbuttons() {
+	
+		// Don't bother doing this stuff if the current user lacks permissions
+		if ( !current_user_can('edit_posts') && !current_user_can('edit_pages') ) 
+			return;
+
+		// Check for NextGEN capability
+		if ( !current_user_can('NextGEN Use TinyMCE') ) 
+			return;
+		
+		// Add only in Rich Editor mode
+		if ( get_user_option('rich_editing') == 'true') {
+		 
+			// add the button for wp2.5 in a new way
+			add_filter("mce_external_plugins", array (&$this, 'add_tinymce_plugin' ), 5);
+			add_filter('mce_buttons', array (&$this, 'register_button' ), 5);
+		}
+	}
+	
+	/**
+	 * add_nextgen_button::register_button()
+	 * used to insert button in wordpress 2.5x editor
+	 * 
+	 * @return $buttons
+	 */
+	function register_button($buttons) {
+	
+		array_push($buttons, 'separator', $this->pluginname );
+	
+		return $buttons;
+	}
+	
+	/**
+	 * add_nextgen_button::add_tinymce_plugin()
+	 * Load the TinyMCE plugin : editor_plugin.js
+	 * 
+	 * @return $plugin_array
+	 */
+	function add_tinymce_plugin($plugin_array) {    
+	
+		$plugin_array[$this->pluginname] =  $this->path . 'editor_plugin.js';
+		
+		return $plugin_array;
+	}
+	
+	/**
+	 * add_nextgen_button::change_tinymce_version()
+	 * A different version will rebuild the cache
+	 * 
+	 * @return $versio
+	 */
+	function change_tinymce_version($version) {
+			$version = $version + $this->internalVersion;
+		return $version;
+	}
+	
+}
+
+// Call it now
+$tinymce_button = new add_nextgen_button ();
+
+?>
\ No newline at end of file
diff --git a/wp-content/plugins/nextgen-gallery/admin/tinymce/window.php b/wp-content/plugins/nextgen-gallery/admin/tinymce/window.php
new file mode 100644
index 000000000..4fa3b6863
--- /dev/null
+++ b/wp-content/plugins/nextgen-gallery/admin/tinymce/window.php
@@ -0,0 +1,143 @@
+<?php
+
+if ( !defined('ABSPATH') )
+    die('You are not allowed to call this page directly.');
+    
+global $wpdb, $nggdb;
+
+@header('Content-Type: ' . get_option('html_type') . '; charset=' . get_option('blog_charset'));
+?>
+<html xmlns="http://www.w3.org/1999/xhtml">
+<head>
+	<title>NextGEN Gallery</title>
+	<meta http-equiv="Content-Type" content="<?php bloginfo('html_type'); ?>; charset=<?php echo get_option('blog_charset'); ?>" />
+	<script language="javascript" type="text/javascript" src="<?php echo site_url(); ?>/wp-includes/js/tinymce/tiny_mce_popup.js"></script>
+	<script language="javascript" type="text/javascript" src="<?php echo site_url(); ?>/wp-includes/js/tinymce/utils/mctabs.js"></script>
+	<script language="javascript" type="text/javascript" src="<?php echo site_url(); ?>/wp-includes/js/tinymce/utils/form_utils.js"></script>
+	<script language="javascript" type="text/javascript" src="<?php echo site_url(); ?>/wp-includes/js/jquery/jquery.js"></script>
+    <script language="javascript" type="text/javascript" src="<?php echo NGGALLERY_URLPATH ?>admin/js/jquery-ui-1.8.6.min.js"></script>
+    <script language="javascript" type="text/javascript" src="<?php echo NGGALLERY_URLPATH ?>admin/js/ngg.autocomplete.js"></script>
+	<script language="javascript" type="text/javascript" src="<?php echo NGGALLERY_URLPATH ?>admin/tinymce/tinymce.js"></script>
+    <link rel="stylesheet" type="text/css" href="<?php echo NGGALLERY_URLPATH ?>admin/css/jquery.ui.css" media="all" />
+    <base target="_self" />
+</head>
+<script type="text/javascript">
+jQuery(document).ready(function(){ 
+    jQuery("#gallerytag").nggAutocomplete( {
+        type: 'gallery',domain: "<?php echo site_url(); ?>/"
+    });
+    jQuery("#albumtag").nggAutocomplete( {
+        type: 'album',domain: "<?php echo site_url(); ?>/"
+    });
+    jQuery("#singlepictag").nggAutocomplete( {
+        type: 'image',domain: "<?php echo site_url(); ?>/"
+    });
+});
+</script>
+<body id="link" onload="tinyMCEPopup.executeOnLoad('init();');document.body.style.display='';document.getElementById('gallerytag').focus();" style="display: none">
+<!-- <form onsubmit="insertLink();return false;" action="#"> -->
+	<form name="NextGEN" action="#">
+	<div class="tabs">
+		<ul>
+			<li id="gallery_tab" class="current"><span><a href="javascript:mcTabs.displayTab('gallery_tab','gallery_panel');" onmousedown="return false;"><?php echo _n( 'Gallery', 'Galleries', 1, 'nggallery' ) ?></a></span></li>
+			<li id="album_tab"><span><a href="javascript:mcTabs.displayTab('album_tab','album_panel');" onmousedown="return false;"><?php echo _n( 'Album', 'Albums', 1, 'nggallery' ) ?></a></span></li>
+			<li id="singlepic_tab"><span><a href="javascript:mcTabs.displayTab('singlepic_tab','singlepic_panel');" onmousedown="return false;"><?php _e('Picture', 'nggallery'); ?></a></span></li>
+		</ul>
+	</div>
+	
+	<div class="panel_wrapper">
+		<!-- gallery panel -->
+		<div id="gallery_panel" class="panel current">
+		<br />
+		<table border="0" cellpadding="4" cellspacing="0">
+         <tr>
+            <td nowrap="nowrap"><label for="gallerytag"><?php _e("Gallery", 'nggallery'); ?></label></td>
+            <td><select id="gallerytag" name="gallerytag" style="width: 200px">
+                <option value="0" selected="selected"><?php _e("Select or enter gallery", 'nggallery'); ?></option>
+                </select>
+            </td>
+          </tr>
+          <tr>
+            <td nowrap="nowrap" valign="top"><label for="showtype"><?php _e("Show as", 'nggallery'); ?></label></td>
+            <td><label><input name="showtype" type="radio" value="nggallery" checked="checked" /> <?php _e('Image list', 'nggallery') ;?></label><br />
+			<label><input name="showtype" type="radio" value="slideshow"  /> <?php _e('Slideshow', 'nggallery') ;?></label><br />
+			<label><input name="showtype" type="radio" value="imagebrowser"  /> <?php _e('Imagebrowser', 'nggallery') ;?></label></td>
+          </tr>
+        </table>
+		</div>
+		<!-- gallery panel -->
+		
+		<!-- album panel -->
+		<div id="album_panel" class="panel">
+		<br />
+		<table border="0" cellpadding="4" cellspacing="0">
+         <tr>
+            <td nowrap="nowrap"><label for="albumtag"><?php _e("Album", 'nggallery'); ?></label></td>
+            <td><select id="albumtag" name="albumtag" style="width: 200px">
+                    <option value="0" selected="selected"><?php _e("Select or enter album", 'nggallery'); ?></option>
+                </select>
+            </td>
+          </tr>
+          <tr>
+            <td nowrap="nowrap" valign="top"><label for="showtype"><?php _e("Show as", 'nggallery'); ?></label></td>
+            <td><label><input name="albumtype" type="radio" value="extend" checked="checked" /> <?php _e('Extended version', 'nggallery') ;?></label><br />
+			<label><input name="albumtype" type="radio" value="compact"  /> <?php _e('Compact version', 'nggallery') ;?></label></td>
+          </tr>
+        </table>
+		</div>
+		<!-- album panel -->
+		
+		<!-- single pic panel -->
+		<div id="singlepic_panel" class="panel">
+		<br />
+		<table border="0" cellpadding="4" cellspacing="0">
+         <tr>
+            <td nowrap="nowrap"><label for="singlepictag"><?php _e("Picture", 'nggallery'); ?></label></td>
+            <td><select id="singlepictag" name="singlepictag" style="width: 200px">
+                <option value="0" selected="selected"><?php _e("Select or enter picture", 'nggallery'); ?></option>
+                </select>
+            </td>
+          </tr>
+          <tr>
+            <td nowrap="nowrap"><?php _e("Width x Height", 'nggallery'); ?></td>
+            <td><input type="text" size="5" id="imgWidth" name="imgWidth" value="320" /> x <input type="text" size="5" id="imgHeight" name="imgHeight" value="240" /></td>
+          </tr>
+          <tr>
+            <td nowrap="nowrap" valign="top"><?php _e("Effect", 'nggallery'); ?></td>
+            <td>
+				<label><select id="imgeffect" name="imgeffect">
+					<option value="none"><?php _e("No effect", 'nggallery'); ?></option>
+					<option value="watermark"><?php _e("Watermark", 'nggallery'); ?></option>
+					<option value="web20"><?php _e("Web 2.0", 'nggallery'); ?></option>
+				</select></label>
+			</td>
+          </tr>
+          <tr>
+            <td nowrap="nowrap" valign="top"><?php _e("Float", 'nggallery'); ?></td>
+            <td>
+				<label><select id="imgfloat" name="imgfloat">
+					<option value=""><?php _e("No float", 'nggallery'); ?></option>
+					<option value="left"><?php _e("Left", 'nggallery'); ?></option>
+					<option value="center"><?php _e("Center", 'nggallery'); ?></option>
+					<option value="right"><?php _e("Right", 'nggallery'); ?></option>
+				</select></label>
+			</td>
+          </tr>
+
+        </table>
+		</div>
+		<!-- single pic panel -->
+	</div>
+
+	<div class="mceActionPanel">
+		<div style="float: left">
+			<input type="button" id="cancel" name="cancel" value="<?php _e("Cancel", 'nggallery'); ?>" onclick="tinyMCEPopup.close();" />
+		</div>
+
+		<div style="float: right">
+			<input type="submit" id="insert" name="insert" value="<?php _e("Insert", 'nggallery'); ?>" onclick="insertNGGLink();" />
+		</div>
+	</div>
+</form>
+</body>
+</html>
\ No newline at end of file
diff --git a/wp-content/plugins/nextgen-gallery/admin/upgrade.php b/wp-content/plugins/nextgen-gallery/admin/upgrade.php
new file mode 100644
index 000000000..434630de2
--- /dev/null
+++ b/wp-content/plugins/nextgen-gallery/admin/upgrade.php
@@ -0,0 +1,472 @@
+<?php
+/**
+ * ngg_upgrade() - update routine for older version
+ * 
+ * @return Success message
+ */
+function ngg_upgrade() {
+	
+	global $wpdb, $user_ID, $nggRewrite;
+
+	// get the current user ID
+	get_currentuserinfo();
+    
+    // in multisite environment the pointer $wpdb->nggpictures need to be set again
+	$wpdb->nggpictures					= $wpdb->prefix . 'ngg_pictures';
+	$wpdb->nggallery					= $wpdb->prefix . 'ngg_gallery';
+	$wpdb->nggalbum						= $wpdb->prefix . 'ngg_album';
+    
+    // Be sure that the tables exist, avoid case sensitive : http://dev.mysql.com/doc/refman/5.1/en/identifier-case-sensitivity.html
+	if( $wpdb->get_var( "SHOW TABLES LIKE '$wpdb->nggpictures'" ) ) {
+
+		echo __('Upgrade database structure...', 'nggallery');
+		$wpdb->show_errors();
+
+		$installed_ver = get_option( 'ngg_db_version' );
+		
+		// 0.9.7 is smaller that 0.97, my fault :-)
+		if ( $installed_ver == '0.9.7' ) $installed_ver = '0.97';
+
+		// v0.33 -> v.071
+		if (version_compare($installed_ver, '0.71', '<')) {
+			$wpdb->query("ALTER TABLE $wpdb->nggpictures CHANGE pid pid BIGINT(20) NOT NULL AUTO_INCREMENT ");
+			$wpdb->query("ALTER TABLE $wpdb->nggpictures CHANGE galleryid galleryid BIGINT(20) NOT NULL ");
+			$wpdb->query("ALTER TABLE $wpdb->nggallery CHANGE gid gid BIGINT(20) NOT NULL AUTO_INCREMENT ");
+			$wpdb->query("ALTER TABLE $wpdb->nggallery CHANGE pageid pageid BIGINT(20) NULL DEFAULT '0'");
+			$wpdb->query("ALTER TABLE $wpdb->nggallery CHANGE previewpic previewpic BIGINT(20) NULL DEFAULT '0'");
+			$wpdb->query("ALTER TABLE $wpdb->nggallery CHANGE gid gid BIGINT(20) NOT NULL AUTO_INCREMENT ");
+			$wpdb->query("ALTER TABLE $wpdb->nggallery CHANGE description galdesc MEDIUMTEXT NULL");
+		}
+		
+		// v0.71 -> v0.84
+		if (version_compare($installed_ver, '0.84', '<')) {
+			ngg_maybe_add_column( $wpdb->nggpictures, 'sortorder', "BIGINT(20) DEFAULT '0' NOT NULL AFTER exclude");
+		}
+
+		// v0.84 -> v0.95
+		if (version_compare($installed_ver, '0.95', '<')) {
+			// first add the author field and set it to the current administrator
+			ngg_maybe_add_column( $wpdb->nggallery, 'author', "BIGINT(20) NOT NULL DEFAULT '$user_ID' AFTER previewpic");
+			// switch back to zero
+			$wpdb->query("ALTER TABLE $wpdb->nggallery CHANGE author author BIGINT(20) NOT NULL DEFAULT '0'");
+		}
+
+		// v0.95 -> v0.97 
+		if (version_compare($installed_ver, '0.96', '<')) {
+			// Convert into WordPress Core taxonomy scheme
+			ngg_convert_tags();
+			// Drop tables, we don't need them anymore
+			$wpdb->query("DROP TABLE IF EXISTS " . $wpdb->prefix . "ngg_tags");
+			$wpdb->query("DROP TABLE IF EXISTS " . $wpdb->prefix . "ngg_pic2tags");
+			
+			// New capability for administrator role
+			$role = get_role('administrator');
+			$role->add_cap('NextGEN Manage tags');
+			
+			// Add new option
+			$ngg_options = get_option('ngg_options');
+			$ngg_options['graphicLibrary']  = 'gd';
+			update_option('ngg_options', $ngg_options);	
+			
+		}
+		
+		// v0.97 -> v1.00
+		if (version_compare($installed_ver, '0.97', '<')) {
+			ngg_maybe_add_column( $wpdb->nggpictures, 'imagedate', "DATETIME NOT NULL DEFAULT '0000-00-00 00:00:00' AFTER alttext");
+		}
+		
+		// v0.97 -> v1.3.0
+		if (version_compare($installed_ver, '1.3.0', '<')) {
+			ngg_maybe_add_column( $wpdb->nggpictures, 'post_id', "BIGINT(20) DEFAULT '0' NOT NULL AFTER pid");
+			ngg_maybe_add_column( $wpdb->nggpictures, 'meta_data', "LONGTEXT AFTER sortorder");
+			$wpdb->query("ALTER TABLE " . $wpdb->nggpictures . " ADD INDEX post_id ( post_id )");
+		}
+		
+		// v1.3.0 -> v1.3.1
+		if (version_compare($installed_ver, '1.3.1', '<')) {
+			// add description and previewpic for the album itself
+			ngg_maybe_add_column( $wpdb->nggalbum, 'previewpic', "BIGINT(20) DEFAULT '0' NOT NULL AFTER name");
+			ngg_maybe_add_column( $wpdb->nggalbum, 'albumdesc', "MEDIUMTEXT NULL AFTER previewpic");
+		}		
+		
+		 // v1.3.5 -> v1.4.0
+        if (version_compare($installed_ver, '1.4.0', '<')) {
+            // add link from album to a page
+            ngg_maybe_add_column( $wpdb->nggalbum, 'pageid', "BIGINT(20) DEFAULT '0' NOT NULL AFTER sortorder");
+        }   
+
+		 // v1.4.0 -> v1.7.0
+        if (version_compare($installed_ver, '1.7.0', '<')) {
+            // add slug fields 
+            ngg_maybe_add_column( $wpdb->nggpictures, 'image_slug', "VARCHAR(255) NOT NULL AFTER pid");
+            ngg_maybe_add_column( $wpdb->nggalbum, 'slug', "VARCHAR(255) NOT NULL AFTER name");
+            ngg_maybe_add_column( $wpdb->nggallery, 'slug', "VARCHAR(255) NOT NULL AFTER name");
+        }   
+      
+		// update now the database
+		update_option( "ngg_db_version", NGG_DBVERSION );
+		echo __('finished', 'nggallery') . "<br />\n";
+
+        // better to flush rewrite rules after upgrades
+        $nggRewrite->flush();
+
+		$wpdb->hide_errors();
+		
+		// *** From here we start file operation which could failed sometimes,
+		// *** ensure that the DB changes are not performed two times...
+		
+		// Change all thumbnail folders to "thumbs"
+		if (version_compare($installed_ver, '0.96', '<')) {
+			echo __('Update file structure...', 'nggallery');
+			ngg_convert_filestructure();
+			echo __('finished', 'nggallery') . "<br />\n";
+		}
+		
+		// On some reason the import / date sometimes failed, due to the memory limit
+		if (version_compare($installed_ver, '0.97', '<')) {
+			echo __('Import date and time information...', 'nggallery');
+			ngg_import_date_time();
+			echo __('finished', 'nggallery') . "<br />\n";
+		}		
+
+		// Move imagerotator outside the plugin folder
+		if (version_compare($installed_ver, '1.1.0', '<')) {
+			$ngg_options = get_option('ngg_options');
+			echo __('Move imagerotator to new location...', 'nggallery');
+			$ngg_options['irURL'] = ngg_move_imagerotator();
+			$ngg_options['galPagedGalleries'] = 0;
+			$ngg_options['galColumns'] = 0;
+			update_option('ngg_options', $ngg_options);
+			echo __('finished', 'nggallery') . "<br />\n";				
+		}
+
+		// Remove thumbcrop setting, thumbfix and quare size do the same
+		if (version_compare($installed_ver, '1.4.0', '<')) {
+			$ngg_options = get_option('ngg_options');
+			echo __('Update settings...', 'nggallery');
+			if ( $ngg_options['thumpcrop'] ) {
+				$ngg_options['thumbfix'] = true;
+				$ngg_options['thumbheight'] = $ngg_options['thumbwidth'] ;
+				$ngg_options['galAjaxNav'] = true;
+			}
+			$ngg_options['galHiddenImg'] = false;
+			update_option('ngg_options', $ngg_options);
+			echo __('finished', 'nggallery') . "<br />\n";				
+		}
+        
+        // Remove the old widget options
+        if (version_compare($installed_ver, '1.4.4', '<')) {
+            delete_option( 'ngg_widget' );
+            echo __('Updated widget structure. If you used NextGEN Widgets, you need to setup them again...', 'nggallery');
+        }
+		
+        if (version_compare($installed_ver, '1.6.0', '<')) {
+            $ngg_options = get_option('ngg_options');
+            $ngg_options['enableIR'] = '1';
+            $ngg_options['slideFx']  = 'fade';
+            update_option('ngg_options', $ngg_options);
+            echo __('Updated options.', 'nggallery');
+        }
+        
+        if (version_compare($installed_ver, '1.7.0', '<')) {
+            // Network blogs need to call this manually
+            if ( !is_multisite() ) {
+        	   ?>
+               <h2><?php _e('Create unique slug', 'nggallery') ;?></h2>
+        	   <p><?php _e('One of the upcomming features are a reworked permalinks structure.', 'nggallery') ;?>
+        	   <?php _e('Therefore it\'s needed to have a unique identifier for each image, gallery and album.', 'nggallery'); ?><br />
+               <?php _e('Depend on the amount of database entries this will take a while, don\'t reload this page.', 'nggallery') ;?></p>
+               <?php
+               ngg_rebuild_unique_slugs::start_rebuild();
+            }
+                
+        }
+		return;
+	}
+    
+    echo __('Could not find NextGEN Gallery database tables, upgrade failed !', 'nggallery');
+    
+    return;
+}
+
+/**
+ * ngg_convert_tags() - Import the tags into the wp tables (only required for pre V1.00 versions)
+ * 
+ * @return Success Message
+ */
+function ngg_convert_tags() {
+	global $wpdb, $wp_taxonomies;
+		
+	// get the obsolete tables
+	$wpdb->nggtags						= $wpdb->prefix . 'ngg_tags';
+	$wpdb->nggpic2tags					= $wpdb->prefix . 'ngg_pic2tags';
+	
+	$picturelist = $wpdb->get_col("SELECT pid FROM $wpdb->nggpictures");
+	if ( is_array($picturelist) ) {
+		foreach($picturelist as $id) {
+			$tags = array();
+			$tagarray = $wpdb->get_results("SELECT t.*, tt.* FROM $wpdb->nggpic2tags AS t INNER JOIN $wpdb->nggtags AS tt ON t.tagid = tt.id WHERE t.picid = '$id' ORDER BY tt.slug ASC ");
+			if (!empty($tagarray)){
+				foreach($tagarray as $element) {
+					$tags[$element->id] = $element->name;
+				}
+				wp_set_object_terms($id, $tags, 'ngg_tag');
+			}
+		}
+	}
+}
+
+/**
+ * ngg_convert_filestructure() - converter for old thumnail folder structure
+ * 
+ * @return void
+ */
+function ngg_convert_filestructure() {
+	global $wpdb;
+	
+	$gallerylist = $wpdb->get_results("SELECT * FROM $wpdb->nggallery ORDER BY gid ASC", OBJECT_K);
+	if ( is_array($gallerylist) ) {
+		$errors = array();
+		foreach($gallerylist as $gallery) {
+			$gallerypath = WINABSPATH.$gallery->path;
+
+			// old mygallery check, convert the wrong folder/ file name now
+			if (@is_dir($gallerypath . '/tumbs')) {
+				if ( !@rename($gallerypath . '/tumbs' , $gallerypath .'/thumbs') )
+					$errors[] = $gallery->path . '/thumbs';
+				// read list of images
+				$imageslist = nggAdmin::scandir($gallerypath . '/thumbs');
+				if ( !empty($imageslist)) {
+					foreach($imageslist as $image) {
+						$purename = substr($image, 4);
+						if ( !@rename($gallerypath . '/thumbs/' . $image, $gallerypath . '/thumbs/thumbs_' . $purename ))
+							$errors[] = $gallery->path . '/thumbs/thumbs_' . $purename ;
+					}
+				}
+			}
+		}
+		
+		if (!empty($errors)) {
+			echo "<div class='error_inline'><p>". __('Some folders/files could not renamed, please recheck the permission and rescan the folder in the manage gallery section.', 'nggallery') ."</p>";
+			foreach($errors as $value) {
+				echo __('Rename failed', 'nggallery') . ' : <strong>' . $value . "</strong><br />\n";
+			}
+			echo '</div>';
+		}
+	}
+}
+
+/**
+ * Move the imagerotator outside the plugin folder, as we remove it from the REPO with the next update
+ * 
+ * @return string $path URL to the imagerotator
+ */
+function ngg_move_imagerotator() {
+	
+	$upload = wp_upload_dir();
+	
+	// look first at the old place and move it
+	if ( file_exists( NGGALLERY_ABSPATH . 'imagerotator.swf' ) )
+		@rename(NGGALLERY_ABSPATH . 'imagerotator.swf', $upload['basedir'] . '/imagerotator.swf');
+		
+	// If it's successful then we return the new path
+	if ( file_exists( $upload['basedir'] . '/imagerotator.swf' ) )
+		return $upload['baseurl'] . '/imagerotator.swf';
+
+	//In some worse case it's still at the old place
+	if ( file_exists( NGGALLERY_ABSPATH . 'imagerotator.swf' ) )
+		return NGGALLERY_URLPATH . 'imagerotator.swf';
+	
+	// if something failed, we must return a empty string
+	return '';	
+}
+
+/**
+ * ngg_import_date_time() - Read the timestamp from exif and insert it into the database
+ * 
+ * @return void
+ */
+function ngg_import_date_time() {
+	global $wpdb;
+	
+	$imagelist = $wpdb->get_results("SELECT t.*, tt.* FROM $wpdb->nggallery AS t INNER JOIN $wpdb->nggpictures AS tt ON t.gid = tt.galleryid ORDER BY tt.pid ASC");
+	if ( is_array($imagelist) ) {
+		foreach ($imagelist as $image) {
+			$picture = new nggImage($image);
+			$meta = new nggMeta($picture->pid, true);
+			$date = $meta->get_date_time();
+			$wpdb->query("UPDATE $wpdb->nggpictures SET imagedate = '$date' WHERE pid = '$picture->pid'");
+		}		
+	}	
+}
+
+/**
+ * Adding a new column if needed
+ * Example : ngg_maybe_add_column( $wpdb->nggpictures, 'imagedate', "DATETIME NOT NULL DEFAULT '0000-00-00 00:00:00' AFTER alttext");
+ * 
+ * @param string $table_name Database table name.
+ * @param string $column_name Database column name to create.
+ * @param string $create_ddl SQL statement to create column
+ * @return bool True, when done with execution.
+ */
+function ngg_maybe_add_column($table_name, $column_name, $create_ddl) {
+	global $wpdb;
+	
+	foreach ($wpdb->get_col("SHOW COLUMNS FROM $table_name") as $column ) {
+		if ($column == $column_name)
+			return true;
+	}
+	
+	//didn't find it try to create it.
+	$wpdb->query("ALTER TABLE $table_name ADD $column_name " . $create_ddl);
+	
+	// we cannot directly tell that whether this succeeded!
+	foreach ($wpdb->get_col("SHOW COLUMNS FROM $table_name") as $column ) {
+		if ($column == $column_name)
+			return true;
+	}
+	
+	echo("Could not add column $column_name in table $table_name<br />\n");
+	return false;
+}
+
+/**
+ * nggallery_upgrade_page() - This page showsup , when the database version doesn't fir to the script NGG_DBVERSION constant.
+ * 
+ * @return Upgrade Message
+ */
+function nggallery_upgrade_page()  {
+    
+	$filepath    = admin_url() . 'admin.php?page=' . $_GET['page'];
+	
+	if ( isset($_GET['upgrade']) && $_GET['upgrade'] == 'now') {
+		nggallery_start_upgrade($filepath);
+		return;
+	}
+?>
+<div class="wrap">
+	<h2><?php _e('Upgrade NextGEN Gallery', 'nggallery') ;?></h2>
+	<p><?php _e('The script detect that you upgrade from a older version.', 'nggallery') ;?>
+	   <?php _e('Your database tables for NextGEN Gallery is out-of-date, and must be upgraded before you can continue.', 'nggallery'); ?>
+       <?php _e('If you would like to downgrade later, please make first a complete backup of your database and the images.', 'nggallery') ;?></p>
+	<p><?php _e('The upgrade process may take a while, so please be patient.', 'nggallery'); ?></p>
+	<h3><a href="<?php echo $filepath;?>&amp;upgrade=now"><?php _e('Start upgrade now', 'nggallery'); ?>...</a></h3>      
+</div>
+<?php
+}
+
+/**
+ * nggallery_start_upgrade() - Proceed the upgrade routine
+ * 
+ * @param mixed $filepath
+ * @return void
+ */
+function nggallery_start_upgrade($filepath) {
+?>
+<div class="wrap">
+	<h2><?php _e('Upgrade NextGEN Gallery', 'nggallery') ;?></h2>
+	<p><?php ngg_upgrade();?></p>
+	<p class="finished"><?php _e('Upgrade finished...', 'nggallery') ;?></p>
+	<h3><a class="finished" href="<?php echo $filepath;?>"><?php _e('Continue', 'nggallery'); ?>...</a></h3>
+</div>
+<?php
+}
+
+/**
+ * Rebuild slugs for albums, galleries and images via AJAX request
+ * 
+ * @sine 1.7.0
+ * @access internal
+ */
+class ngg_rebuild_unique_slugs {
+
+	function start_rebuild() {
+        global $wpdb;
+        
+        $total = array();
+        // get the total number of images
+		$total['images'] = intval( $wpdb->get_var("SELECT COUNT(*) FROM $wpdb->nggpictures") );
+        $total['gallery'] = intval( $wpdb->get_var("SELECT COUNT(*) FROM $wpdb->nggallery") );
+        $total['album'] = intval( $wpdb->get_var("SELECT COUNT(*) FROM $wpdb->nggalbum") );
+        
+		$messages = array(
+			'images' => __( 'Rebuild image structure : %s / %s images', 'nggallery' ),
+			'gallery' => __( 'Rebuild gallery structure : %s / %s galleries', 'nggallery' ),
+            'album' => __( 'Rebuild album structure : %s / %s albums', 'nggallery' ),
+		);
+
+?>
+<?php
+        
+        foreach ( array_keys( $messages ) as $key ) {
+                       
+    		$message = sprintf( $messages[ $key ] ,
+    			"<span class='ngg-count-current'>0</span>",
+    			"<span class='ngg-count-total'>" . $total[ $key ] . "</span>"
+    		);
+    
+    		echo "<div class='$key updated'><p class='ngg'>$message</p></div>";
+        }
+        
+		$ajax_url = add_query_arg( 'action', 'ngg_rebuild_unique_slugs', admin_url( 'admin-ajax.php' ) );
+?>
+<script type="text/javascript">
+jQuery(document).ready(function($) {
+	var ajax_url = '<?php echo $ajax_url; ?>',
+		_action = 'images',
+		images = <?php echo $total['images']; ?>,
+		gallery = <?php echo $total['gallery']; ?>,
+        album = <?php echo $total['album']; ?>,
+        total = 0,
+        offset = 0,
+		count = 50;
+
+	var $display = $('.ngg-count-current');
+    $('.finished, .gallery, .album').hide();
+    total = images;
+        
+	function call_again() {
+		if ( offset > total ) {
+		    offset = 0;
+            // 1st run finished 
+            if (_action == 'images') {
+                _action = 'gallery';
+                total = gallery;
+                $('.images, .gallery').toggle();
+                $display.html(offset);
+                call_again();
+                return;
+            }  
+            // 2nd run finished
+            if (_action == 'gallery') {
+                _action = 'album';
+                total = album;
+                $('.gallery, .album').toggle();
+                $display.html(offset);
+                call_again();
+                return;
+            } 
+            // 3rd run finished, exit now
+            if (_action == 'album') {
+    			$('.ngg')
+    				.html('<?php _e( 'Done.', 'nggallery' ); ?>')
+    				.parent('div').hide();
+                $('.finished').show();    
+    			return;
+            }
+		}
+
+		$.post(ajax_url, {'_action': _action, 'offset': offset}, function(response) {
+			$display.html(offset);
+
+			offset += count;
+			call_again();
+		});
+	}
+
+	call_again();
+});
+</script>
+<?php
+	}
+}
\ No newline at end of file
diff --git a/wp-content/plugins/nextgen-gallery/admin/upload.php b/wp-content/plugins/nextgen-gallery/admin/upload.php
new file mode 100644
index 000000000..52c7fa3d5
--- /dev/null
+++ b/wp-content/plugins/nextgen-gallery/admin/upload.php
@@ -0,0 +1,52 @@
+<?php
+/**
+ * Accepts file uploads from swfupload.
+ *
+ * @package NextGEN-Gallery
+ * @subpackage Administration
+ */
+
+define('WP_ADMIN', true);
+
+// look up for the path
+require_once( dirname( dirname(__FILE__) ) . '/ngg-config.php');
+
+// Flash often fails to send cookies with the POST or upload, so we need to pass it in GET or POST instead
+if ( is_ssl() && empty($_COOKIE[SECURE_AUTH_COOKIE]) && !empty($_REQUEST['auth_cookie']) )
+	$_COOKIE[SECURE_AUTH_COOKIE] = $_REQUEST['auth_cookie'];
+elseif ( empty($_COOKIE[AUTH_COOKIE]) && !empty($_REQUEST['auth_cookie']) )
+	$_COOKIE[AUTH_COOKIE] = $_REQUEST['auth_cookie'];
+if ( empty($_COOKIE[LOGGED_IN_COOKIE]) && !empty($_REQUEST['logged_in_cookie']) )
+	$_COOKIE[LOGGED_IN_COOKIE] = $_REQUEST['logged_in_cookie'];
+    
+// don't ask me why, sometimes needed, taken from wp core
+unset($current_user);
+
+// admin.php require a proper login cookie
+require_once(ABSPATH . '/wp-admin/admin.php');
+
+header('Content-Type: text/plain; charset=' . get_option('blog_charset'));
+
+//check for correct capability
+if ( !is_user_logged_in() )
+	die('Login failure. -1');
+
+//check for correct capability
+if ( !current_user_can('NextGEN Upload images') ) 
+	die('You do not have permission to upload files. -2');
+
+//check for correct nonce 
+check_admin_referer('ngg_swfupload');
+
+//check for nggallery
+if ( !defined('NGGALLERY_ABSPATH') )
+	die('NextGEN Gallery not available. -3');
+	
+include_once (NGGALLERY_ABSPATH. 'admin/functions.php');
+
+// get the gallery
+$galleryID = (int) $_POST['galleryselect'];
+
+echo nggAdmin::swfupload_image($galleryID);
+
+?>
\ No newline at end of file
diff --git a/wp-content/plugins/nextgen-gallery/admin/wpmu.php b/wp-content/plugins/nextgen-gallery/admin/wpmu.php
new file mode 100644
index 000000000..b6db89b2e
--- /dev/null
+++ b/wp-content/plugins/nextgen-gallery/admin/wpmu.php
@@ -0,0 +1,131 @@
+<?php  
+if(preg_match('#' . basename(__FILE__) . '#', $_SERVER['PHP_SELF'])) { die('You are not allowed to call this page directly.'); }
+
+	function nggallery_wpmu_setup()  {	
+	
+	//to be sure
+	if ( !is_super_admin() )
+ 		die('You are not allowed to call this page.');
+
+    $messagetext = '';
+
+	// get the options
+	$ngg_options = get_site_option('ngg_options');
+
+	if ( isset($_POST['updateoption']) ) {	
+		check_admin_referer('ngg_wpmu_settings');
+		// get the hidden option fields, taken from WP core
+		if ( $_POST['page_options'] )	
+			$options = explode(',', stripslashes($_POST['page_options']));
+		if ($options) {
+			foreach ($options as $option) {
+				$option = trim($option);
+				$value = isset($_POST[$option]) ? trim($_POST[$option]) : false;
+		//		$value = sanitize_option($option, $value); // This does strip slashes on those that need it
+				$ngg_options[$option] = $value;
+			}
+		}
+
+        // the path should always end with a slash	
+        $ngg_options['gallerypath']    = trailingslashit($ngg_options['gallerypath']);
+		update_site_option('ngg_options', $ngg_options);
+        
+	 	$messagetext = __('Update successfully','nggallery');
+	}		
+
+    // Show donation message only one time.
+    if (isset ( $_GET['hideSupportInfo']) ) {
+    	$ngg_options['hideSupportInfo'] = true;
+    	update_site_option('ngg_options', $ngg_options);			
+    }
+    
+    if( !isset ( $ngg_options['hideSupportInfo']) ||  $ngg_options['hideSupportInfo'] !== true ) {
+    	?>	
+    		<div id="donator_message">
+    			<p><?php echo str_replace('%s', 'http://alexrabe.de/donation', __('Thanks for using this plugin, NextGEN Gallery is initially developed for self hosted blogs. A multisite setup is possible, but cannot currently fully supported, as it can have several special condition ( i.e. Domain mapping).<br /> If you would like to support the further development, please consider a <strong><a href="%s">donation</a></strong>! If you still need some help, please post your questions <a href="http://wordpress.org/tags/nextgen-gallery?forum_id=10">here</a> .', 'nggallery')); ?>
+    				<span>
+    					<a href="<?php echo add_query_arg( array( 'hideSupportInfo' => 'true') ); ?>" >
+    						<small><?php _e('OK, hide this message now !', 'nggallery'); ?></small>
+    					</a>
+    				<span>
+    			</p>
+    		</div>
+    	<?php
+    }
+	
+	// message windows
+	if( !empty($messagetext) ) { echo '<!-- Last Action --><div id="message" class="updated fade"><p>'.$messagetext.'</p></div>'; }
+	
+	?>
+
+	<div class="wrap">
+		<h2><?php _e('Network Options','nggallery'); ?></h2>
+		<form name="generaloptions" method="post">
+		<?php wp_nonce_field('ngg_wpmu_settings') ?>
+		<input type="hidden" name="page_options" value="gallerypath,wpmuQuotaCheck,wpmuZipUpload,wpmuImportFolder,wpmuStyle,wpmuRoles,wpmuCSSfile" />
+			<table class="form-table">
+				<tr valign="top">
+					<th align="left"><?php _e('Gallery path','nggallery') ?></th>
+					<td><input type="text" size="50" name="gallerypath" value="<?php echo $ngg_options['gallerypath']; ?>" /><br />
+					<?php _e('This is the default path for all blogs. With the placeholder %BLOG_ID% you can organize the folder structure better.','nggallery') ?>
+                    <?php echo str_replace('%s', '<code>wp-content/blogs.dir/%BLOG_ID%/files/</code>', __('The default setting should be %s', 'nggallery')); ?>
+                    </td>
+				</tr>
+				<tr>
+					<th valign="top"><?php _e('Enable upload quota check','nggallery') ?>:</th>
+					<td><input name="wpmuQuotaCheck" type="checkbox" value="1" <?php checked('1', $ngg_options['wpmuQuotaCheck']); ?> />
+					<?php _e('Should work if the gallery is bellow the blog.dir','nggallery') ?>
+					</td>
+				</tr>
+				<tr>
+					<th valign="top"><?php _e('Enable zip upload option','nggallery') ?>:</th>
+					<td><input name="wpmuZipUpload" type="checkbox" value="1" <?php checked('1', $ngg_options['wpmuZipUpload']); ?> />
+					<?php _e('Allow users to upload zip folders.','nggallery') ?>
+					</td>
+				</tr>
+				<tr>
+					<th valign="top"><?php _e('Enable import function','nggallery') ?>:</th>
+					<td><input name="wpmuImportFolder" type="checkbox" value="1" <?php checked('1', $ngg_options['wpmuImportFolder']); ?> />
+					<?php _e('Allow users to import images folders from the server.','nggallery') ?>
+					</td>
+				</tr>
+				<tr>
+					<th valign="top"><?php _e('Enable style selection','nggallery') ?>:</th>
+					<td><input name="wpmuStyle" type="checkbox" value="1" <?php checked('1', $ngg_options['wpmuStyle']); ?> />
+					<?php _e('Allow users to choose a style for the gallery.','nggallery') ?>
+					</td>
+				</tr>
+				<tr>
+					<th valign="top"><?php _e('Enable roles/capabilities','nggallery') ?>:</th>
+					<td><input name="wpmuRoles" type="checkbox" value="1" <?php checked('1', $ngg_options['wpmuRoles']); ?> />
+					<?php _e('Allow users to change the roles for other blog authors.','nggallery') ?>
+					</td>
+				</tr>
+				<tr>
+					<th valign="top"><?php _e('Default style','nggallery') ?>:</th>
+					<td>
+					<select name="wpmuCSSfile">
+					<?php
+						$csslist = ngg_get_cssfiles();
+						foreach ($csslist as $key =>$a_cssfile) {
+							$css_name = $a_cssfile['Name'];
+							if ($key == $ngg_options['wpmuCSSfile']) {
+								$file_show = $key;
+								$selected = " selected='selected'";
+							}
+							else $selected = '';
+							$css_name = esc_attr($css_name);
+							echo "\n\t<option value=\"$key\" $selected>$css_name</option>";
+						}
+					?>
+					</select><br />
+					<?php _e('Choose the default style for the galleries.','nggallery') ?>
+					</td>
+				</tr>
+			</table> 				
+			<div class="submit"><input type="submit" name="updateoption" value="<?php _e('Update') ;?>"/></div>
+		</form>	
+	</div>	
+
+	<?php
+}
diff --git a/wp-content/plugins/nextgen-gallery/changelog.txt b/wp-content/plugins/nextgen-gallery/changelog.txt
new file mode 100644
index 000000000..423e7db66
--- /dev/null
+++ b/wp-content/plugins/nextgen-gallery/changelog.txt
@@ -0,0 +1,643 @@
+NextGEN Gallery
+by Alex Rabe & NextGEN DEV Team
+
+= V1.8.0 - sometimes =
+* TODO : Adding Google Sitemaps for Images (see http://wordpress.org/extend/plugins/google-image-sitemap/ , http://wordpress.org/support/topic/plugin-google-xml-sitemap-for-images-how-to-include-galleries)
+* TODO : Facebook connector
+* TODO : Switch to Plupload (http://www.plupload.com/)
+
+= V1.7.4 - 15.02.2011 =
+* Bugfix : Disallow direct call of ajax file to avoid path disclosure (THX to High-Tech Bridge SA)
+* Bugfix : Rework jQuery Cycle slideshow for IE compat reason (THX to Justin Dickenson)
+* Bugfix : Resize only larger images in slideshow
+* Bugfix : Improved image format detection in gd.thumbnail class (THX to Kupar.b)
+
+= V1.7.3 - 20.01.2011 =
+* NEW : Introduce plugin health check for conflicts with other plugins/themes
+* NEW : Adding new XMLRPC method ngg.deleteImage
+* NEW : Adding new XMLRPC method ngg.editImage
+* Changed : Rework register script for autocomplete feature
+* Bugfix : Bugfix for Multisite setup and flash upload
+* Bugfix : WP3.1 compat issue, show site admin page only on Multisite installation
+
+= V1.7.2 - 13.12.2010 =
+* Bugfix : Adding images to database require slug
+
+= V1.7.1 - 13.12.2010 =
+* Changed : Disable upgrade for PHP4 user
+* Changed : Disable colorpicker for option page
+* Bugfix : Compat fix for upgrade
+
+= V1.7.0 - 11.12.2010 =
+* NEW : Publish a new post direct from the gallery admin page
+* NEW : Added filter hook 'ngg_get_image_metadata' to add more exif/iptc information
+* NEW : Adding Autocomplete field to TinyMCE Popup and Album page
+* NEW : More methods for XMLRPC interface
+* Changed : New hooks for gallery table (THX to Alexander Schneider)
+* Changed : Introduce jQuery dialog as new UI element
+* Changed : Call TinyMCE window via admin-ajax
+* Bugfix : Better support for SSL blogs
+* Bugfix : Install/Upgrade failed when table prefix contain captial letters
+* Bugfix : Fix validation issues in Media-RSS
+* Bugfix : Empty tags in XMP Meta causes PHP error
+* Bugfix : Rework load mechanism for slideshow
+* Bugfix : Copy meta data when image is copied
+* Bugfix : Icon Support for Ozh' Admin Drop Down Menu
+* Bugfix : Use correct sort order in slideshow
+
+= V1.6.2 - 19.09.2010 =
+* NEW : Added constant NGG_SKIP_LOAD_SCRIPTS to avoid script load
+* Bugfix : Load Tags library with core files
+* Bugfix : Slideshow script failed in IE7, load script now in header
+* Bugfix : Load slideshow widget always
+* Changed : New admin notice for database upgrade
+* Changed : Rework crop feature for featured images
+* Changed : Use site_url() instead get_option ('siteurl'), required for SSL support
+
+= V1.6.1 - 08.09.2010 =
+* Bugfix : Script load of swfobject.js failed
+* Bugfix : Show sideshow also with 1 or 2 images
+* Bugfix : Rework null byte check in zip upload
+
+= V1.6.0 - 07.09.2010 =
+* NEW : Wordpress 3.0 Network (Multi-Site) support
+* NEW : Integrate jQuery Cycle as NON-Flash slideshow 
+* NEW : Adding jQuery File Tree for import folder (THX to Sergey Pasyuk )
+* NEW : Added action hook 'ngg_show_imagebrowser_first' on custom request
+* NEW : Added filter hook 'ngg_slideshow_size' to resize sildeshow for mobile browser plugins
+* Changed : Reorder tabs for upload
+* Changed : New menu icon and screen icon (THX to Ben Dunkle)
+* Changed : Load frontend libs always
+* Changed : Rework of overview page
+* Bugfix : Security bugfix for Zip-Upload (THX to Dominic Szablewski)
+* Bugfix : Allow JPG, PNG, GIF extension
+* Bugfix : New German translation (THX to Martin Kramarz)
+* Bugfix : Copy/Move also backup file
+* Bugfix : Calculate correct ratio for fix thumbnail size (THX to Alekz Keck)
+
+= V1.5.5 - 14.06.2010 =
+* Bugfix : Compat issue for post thumbnails with WP2.9
+* NEW : Adding more hooks for custom fields plugin
+
+= V1.5.4 - 14.06.2010 =
+* Bugfix : No resize of smaller images
+* Bugfix : Compat issues for Post Thumbnails under WP3.0
+* Bugfix : Esc_URL in Media RSS
+
+= V1.5.3 - 11.04.2010 =
+* New : Adding pagination to footer
+* Changed : Prepare new filter to replace slideshow
+* Bugfix : Remove non-breaking space from navigation
+* Bugfix : Pagination of galleries
+* Bugfix : Fixed brackets position for old shortcode query 
+* Bugfix : Slideshow option 'Show next image on click" has wrong default value 
+
+= V1.5.2 - 25.03.2010 =
+* Bugfix : XSS security vulnerability (THX to Core Security Advisories Team , Pedro Varangot) 
+* Bugfix : Missing $wpdb in shortcodes.php
+
+= V1.5.1 - 23.03.2010 =
+* Bugfix : PHP4 compat issue for Add gallery & options page
+* Bugfix : Gallery widget can now have a empty title
+* Bugfix : Adding correct stripslash for gallery title
+
+= V1.5.0 - 18.03.2010 =
+* NEW : Support for Post thumbnail feature
+* NEW : Backup and Recover function for images (THX to Simone Fumagalli)
+* NEW : Resize images after upload (THX to Simone Fumagalli)
+* NEW : Added a JSON class for fetching galleries in a RESTful way (see xml/json.php)
+* NEW : Adding various new capabilities for user roles
+* NEW : Auto downloader for translation file
+* Changed : Rename query var from slideshow to callback for compat reason with other plugin
+* Changed : Convert widget function to new WP structure
+* Changed : Include lookup for tags into the backend search 
+* Changed : Restructure addgallery and settings page to enable custom tabs
+* Bugfix : Select album preview from gallery preview pics instead random list
+* Bugfix : Keep fix dimension in edit thumbnail operation
+* Bugfix : Import meta data didn't work correct for existing images
+* Bugfix : Fix onload bug for Chrome 4 in Shutter script
+* Bugfix : Remove various PHP notices for a better world
+* Removed : Canonical link is now part of Wordpress 2.9
+
+= V1.4.3 - 16.11.2009 =
+* Bugfix : Urlencode XML file path for sildeshow
+
+= V1.4.2 - 16.11.2009 =
+* Changed : Load sildeshow XML not longer via relative path
+* Bugfix : No imagebrowser in carousel mode
+* Bugfix : JS Effect navigation based on wrong array structure
+* Bugfix : Remove whitespaces from meta import
+* Bugfix : Capability check for upgrade notice
+* Removed : Hide "more settings" for now, causes problems with IE and jQuery UI tabs
+
+= V1.4.1 - 10.11.2009 =
+* Bugfix : Capabilites could not be saved
+* Bugfix : Ajax pagination option not saved
+* Bugfix : echo nggSlideshowWidget() for compat reason
+
+= V1.4.0 - 08.11.2009 =
+* NEW : Automatic rotate images during upload or via manage gallery page (THX to Simone Fumagalli)
+* NEW : Include Bulkupdate for gallery overview, require PHP 5.2
+* NEW : XMLRPC support with 4 new methods : see xmlrpc.php for more information
+* NEW : Recent and random images can be taken from a specific gallery using the id=x parameter in the shortcode (THX to Prollius)
+* NEW : Recent images can be recent by exif date (instead of database id) by using the mode=recentdate parameter in the shortcode  (THX to Prollius)
+* NEW : Introduce the WP_Object_cache and meta_data
+* NEW : Various new hooks and filters
+* Added : Better support for role manager plugin (THX to Mattias Buelens)
+* Added : New option to add hidden images. Needed to show all images in a modal window (Thickbox, Lightbox et.)
+* Added : New link parameter for the singlepic shortcode : [singlepic id=x w=x h=x link="http://google.com"]
+* Added : New template gallery-carousel
+* Added : New id parameter for recent and random shortcodes : [random max="7" template="filename" id="2"] takes only pictures from the gallery with id=2
+* Added : New mode parameter for recent shortcode : [recent max="7" template="filename" id="3" mode="date" /] where mode can be one of (id, date, sort). Recent pictures are delivered by addition to database (id), exif date (date) or user sort order (sort).
+* Added : Enable/Disable Ajax navigation via settings
+* Added : New filter hook 'ngg_render_template' to render templates with a other plugin
+* Changed : Added option to link an album with a page id
+* Changed : Support templates for child themes, use STYLESHEETPATH instead TEMPLATEPATH (THX to Prollius)
+* Changed : Rework of Media RSS Widget
+* Bugfix : Check capability to create a new page
+* Bugfix : Fix double call of filter name , changed to ngg_picturelist_object (THX to Prollius)
+* Bugfix : Check for a deleted gallery in a album
+
+= V1.3.6 - 20.09.2009 =
+* Changed : Just change the feed link
+
+= V1.3.5 - 17.07.2009 =
+* Bugfix : Fixed XSS issue for Page title
+
+= V1.3.4 - 07.07.2009 =
+* Added : New filter ngg_gallery_object and ngg_image_object
+* Bugfix : Fix double rendering of a gallery if two album shortcodes are used
+* Bugfix : Fix for custom field ngg_gal_sort
+* Bugfix : Changed capability check for upload 
+* Bugfix : Check for correct version OR memory limit
+
+= V1.3.3 - 11.06.2009 =
+* Changed : Load Thickbox images via wp_footer()
+* Bugfix  : Widget setting couldnot be saved
+
+= V1.3.2 - 10.06.2009 =
+* Changed  : Resize maximum to 1280 x 1280 with nggshow (THX to onezero)
+* Bugfix : Bugfix for Multifile upload
+* Bugfix : Bugfix for sortorder under jQuery 1.3
+* Bugfix : Workaround for more albums per page, need more rework
+* Bugfix : AJAX reload didn't work if slideshow is shown by default
+* Bugfix : Redirect links didn't work if permalinks are deactivates
+* Bugfix : Add new gallery in manage-overview didn't use defaultpath
+
+= V1.3.1 - 07.06.2009 =
+* Bugfix : Fixed ZIP upload, wrong variable used
+* Bugfix : Check for array before foreach in album missing
+
+= V1.3.0 - 07.06.2009 =
+* NEW : Subalbum support
+* NEW : Search for images in the admin tab
+* NEW : Add new gallery also in manage tab
+* NEW : AJAX support for Imagebrowser and gallery navigation (THX to Anty)
+* NEW : Added zip upload via URL (THX to Juan Jose Galvez)
+* Added : jQuery Multiple File Upload Plugin v1.44
+* Added : SWFUpload V2.2.0
+* Changed : Remove extension for Alttext during first import
+* Changed : Meta tag added via wp_head hook (THX to Viper)
+* Bugfix : Correct various PHP notice messages
+* Bugfix : Typo fix in custom fields for ngg_gal_ImageBrowser
+* Bugfix : Avoid upload of images in gallery without correct capability  
+
+= V1.2.1 - 22.03.2009 =
+* NEW : Support for IE8 Web Slices in widgets
+* NEW : Add filter ngg_image_object
+* Changed : Descending order in add gallery menu
+* Bugfix : Exclude option didnT work for multi pages
+* Bugfix : Check for correct capability in manage gallery
+
+= V1.2.0 - 09.03.2009 =
+* NEW : Support for image tag cloud with shortcode [tagcloud]
+* NEW : Adding shortcode [recent max="7" template="filename" /] & [random max="7" template="filename" /] to show the most recent/random pictures (THX to Bernhard)
+* NEW : Crop thumbnails manually (THX to Simone Fumagalli)
+* NEW : Support for i18n with polyglot or qtrans plugin (THX to Boris Glumpler)
+* NEW : Canonical meta link support
+* Added : SWFUpload V2.2.0 B5
+* Added : New memory limit check in upload screen
+* Bugfix : Language typo fixes
+* Bugfix : Admin Pagination fix
+* Bugfix : Typo fix in widgets
+* Bugfix : Init column script after document is ready
+* Bugfix : htmlspecialchars() instead htmlentities() for links in the a href title description
+* Bugfix : Upgrade routine didn't add sortorder to correct table (THX to Uwe)
+* Bugfix : Correct shotcode in media upload tab
+
+= V1.1.0 - 26.01.2009 =
+* NEW : Pagination for album page via custom fields ('ngg_paged_Galleries')
+* NEW : Support for fixed number of columns inside the gallery
+* NEW : Added pagination for galleries and images in admin section
+* NEW : New action hook after image is added to database, called 'ngg_added_new_image' 
+* NEW : New template for caption below images, called via [nggallery id=x template=caption]
+* Added : SWFUpload V2.2.0 B4
+* Changed : Rework of Manage image tables
+* Changed : Move imagerotator.swf to wp-content/uploads
+* Changed : Added a URL field to setup the path to the Imagerotator
+* Changed : Add additional parameter to gallery object
+* Changed : Load donators list external
+* Bugfix : Style fixes for tables in IE7
+* Bugfix : All albums code couldn't use the slideshow, query is empty for 0
+* Bugfix : Htmlentities() for links in the a href title description
+* Bugfix : Clean up mode for singlepic
+* Bugfix : Typo in widget settings
+
+= V1.0.2 - 19.12.2008 =
+* Added : Option to enable/disable the MediaRSS Feed
+* Added : For flash under FF3/WIN we should use outline: none; 
+* Added : Use sort order also for Media RSS
+* Changed : Descending order for TinyMCE Editor
+* Changed : Added screencolor flashvar as bgcolor for the flash slideshow
+* Changed : Remove link to gallery in sidebar widget
+* Bugfix : Check for empty gallery title and show name instead
+* Bugfix : Album id=all / Album id=0 didn't show content
+* Bugfix : Check for a empty description and alttext
+* Bugfix : Remove HTML tags from slideshow 
+* Bugfix : Load SWFobject always when the imagerotator exist
+* Bugfix : Zip-Upload in existing gallery failed
+* Bugifx : Typo in functions.php (THX to David Horat)
+
+= V1.0.1 - 11.12.2008 =
+* Bugfix : Change upgrade routine, import_date_time could cause a memory problem
+* Bugfix : Help pages will not show up in non-english enviroment
+* Bugfix : Show gallery name if title is empty
+
+= V1.0.0 - 11.12.2008 =
+* NEW : Adding some rewrite rules for the Blog title for a better SEO (Will be continued...)
+* NEW : Added ImageMagick support (currently a bit experimental) (THX to Frederic de Ranter) 
+* NEW : Automatic unistall via register_uninstall_hook()
+* NEW : Added a presort option to sort easier the images
+* NEW : Lookup for a nggallery.css in the theme folder
+* NEW : Added Date/Time field to database and import it from EXIF, new sort option
+* NEW : Multi Widgets to show links to Media RSS feeds (THX to Vincent Prat) 
+* NEW : PicLens support for galleries (THX to Vincent Prat) 
+* NEW : Copy/Move images between galleries (THX to Vincent Prat) 
+* NEW : Media RSS feeds (either for galleries, albums or global) (THX to Vincent Prat) 
+* NEW : Image tag management (THX to Vincent Prat) 
+* NEW : Convert all shortcodes to WP shortcodes API
+* NEW : AJAX based thumbnail generator
+* NEW : Create output via template files, more flexible and support for multiple templates
+* NEW : Extended role system. Each gallery has now a author
+* NEW : [thumb id="4,5,12,..."] shortcode. You can now insert thumbnails for one or more images (that are not necessarly inside the same gallery).
+* Changed : Add swfupload 2.2.0. Support for Adobe Flash 10 upload      
+* Changed : Update all Admin pages for Wordpress 2.7 Admin UI       
+* Changed : New icon for TinyMCE and WP2.7 Menue from http://www.pinvoke.com/
+* Changed : Move update message to admin.php
+* Changed : Widgets are now core and doesn't need to be activate, rework as Multi Widgets       
+* Changed : Improved the gallery management page.
+* Changed : Rename the filter 'ngg_create_gallery_thumbcode' to 'ngg_get_thumbcode'.
+* Changed : Convert tags to WP-Taxonomy tables, no more need for ngg_tags, ngg_pic2tags
+* Changed : Arrange manage fields in a new way
+* Changed : Support now SSL 
+* Changed : Use JQuery UI instead of interface lib
+* Changed : Updated to swfobject 2.1
+* Changed : Rework of database queries and new central nggdb class 
+* Bugfix : Changed CSS for singlepic padding to margin
+* Bugfix : Check for zero in Exif Focal Length
+* Bugfix : Round instead inval for square thumbnails
+* Removed : Do not longer check for myGallery folders
+* Removed : Use now PclZip from WP Core
+* Removed : Wordpress 2.1 - 2.3 files deleted
+
+= V0.99 - 27.09.2008 =
+* Changed : Included swfobject version 2.1 
+* Bugfix : Recognize the zip better
+* Bugfix : Limit the length of the title in the media-upload
+* Bugfix : Round instead inval for square thumbnails
+
+= V0.98 - 15.07.2008 =
+* Bugfix : Removed all whitespaces at EOF
+
+= V0.97 - 10.07.2008 =
+* Changed : Get new path contstant from WP2.6
+* Changed : Minor updates for WP2.6
+* Changed : Added new filters (THX to Vincent Prat) 
+* Removed : Revert singlepic wrapper, breaks validation
+
+= V0.96 - 18.05.2008 =
+* Changed : Use postbox for gallery settings 
+* Added : New filter function to add custom columns
+* Bugfix : Fixed width for Thickbox in Manage gallery
+* Bugfix : fixed width for media upload select box
+* Bugfix : Remove <p> tag in singlepic regex
+* Bugfix : Correct format of shutter speed 
+* Bugfix : Album name in Short code not useable  
+
+= V0.95 - 25.04.2008 =
+* Bugfix : Correction in media-upload to fit with Wordpress 2.5.1
+* Bugfix : Attribute_escape all objects in media-upload
+* Bugfix : Correct sortorder for albums
+* Bugfix : Typo correction (THX to Momo-I)
+
+= V0.94 - 20.04.2008 =
+* Added : New filter option ngg_create_gallery_link
+* Changed : Reduce amount of DB queries in albums (Big THX to Alexandr Kindras)
+* Changed : Revert wpautop priority change. Doesn't good for other plugins
+
+= V0.93 - 12.04.2008 =
+* Added : Select Full-Size or Singlepic in Media Upload
+* Added : Check for minimum 8 MB Memory
+* Changed : Priority from wpautop must be before gallery
+* Bugfix : Added Screencolor to Widgets
+* Bugfix : Clean CSS class in setup.php
+* Bugfix : Change PHP short tag (Thx to Archedition)
+* Bugfix : Remove tab.png from CSS (Thx to Frisco)
+* Bugfix : Remove newline and encode quotes in Media-Upload (THX to Trip Mellinger)
+
+= V0.92 - 30.03.2008 =
+* Changed : Higher priority for filter in WP2.5 final
+* Changed : Do not increase memory_limit with ini_set
+* Added : Read EXIF field ImageDescription
+
+= V0.91 - 24.03.2008 =
+* Changed : Resample mode back to 3
+* Changed : Add DIV "ngg-singlepic-wrapper" for SingelPic (THX to Travel-Junkie)
+* Changed : Increase Tweakfactor for Memory Check
+* Bugfix : Use admin.css only on NextGEN pages (THX tp Oliver)
+* Bugfix : Updates widgets (V1.21) for ImageRotator 3.15
+* Bugfix : Change order of rewrite rules for WP 2.5
+* Bugfix : Include Dashboard CSS also for page "nextgen-gallery"
+
+= V0.90 - 18.03.2008 =
+* NEW : Sort order for images
+* NEW : Updated style for Wp 2.5
+* NEW : Media upload tab integration for WP 2.5
+* Added   : Change wp shortcode filter 
+* Added   : TinyMCE V3 Button for WordPress 2.5
+* Added   : Singlepic center class 
+* Changed : New default parameter for ImageRotator 3.15
+* Changed : By default enable metadata import
+* Changed : Moved disable/enable flash setting to add gallery
+* Changed : wpdb->escape gallerytag in nggfunctions
+* Changed : Sort files after scan folder
+* Changed : Check for filename during upload
+* Changed : Remove jQuery plugin for navigation
+* Changed : Remove myGallery import
+* Changed : Resample mode default set to 5, causes problems at PHP 4.4.8 /PHP 5.2.4
+* Bugfix  : nggextractXML missing stripslashes
+* Bugfix  : P tags not closed in manage.php
+* Bugfix  : Remove " from singlepic class
+* Bugfix  : Rewrite rule for ImageBrowser added
+
+= V0.83 - 14.02.2008 =
+* Changed : New Interfaces.js from WP Core 2.5, for sortable bug under IE7
+* Changed : Update to jQuery V1.2.2, deregister older version from WP
+* Changed : Add ini_set 128MB for memory-limit
+* Bugfix : SWFUpload Cookie Post_Params are overwritten , no upload possible
+* Bugfix : WPMU options are not saved after installation
+* Bugfix : Remove Flush rewrite rules during install 
+
+= V0.82 - 09.02.2008 =
+* Bugfix : add_filter (searchnggallerytags) not proper included for some other plugins
+
+= V0.81 - 04.02.2008 =
+* Changed : Use stristr first to reduce CPU cycles (THX to Alakhnor)
+* Changed : Flush Rewrites rules after option update
+* Changed : Rework for folder check under Safe-Mode 
+* Bugfix : Check for array in get_option() (THX to Alessandro)
+* Bugfix : Add Cookie to SWFUpload, show Error code included
+* Bugfix : galShowOrder = Sildeshow at first didn't work
+* Bugfix : Remove reference from ngg_getOnlyImages 
+
+= V0.80 - 02.02.2008 =
+* NEW : SWFUpload integrated : Show upload progress and select multiple files in the file browser dialog. 
+* NEW : Progress bar for resize, watermark and thumbnail operation
+* NEW : Import Meta data from images
+* NEW : Show Meta data information
+* NEW : Cache option for SinglePic
+* NEW : Permalink support
+* NEW : Custom fields support - Change the settings for each post/page
+* Changed : Up to 10 Widgets, exclude galleries from random/recent images. 
+* Changed : Refactor permission check for Safe-Mode Check and mkdir/chmod
+* Changed : Admin CSS in new folder/file for better structure
+* Changed : Clean up folder structure
+* Changed : Clean up code in manage.php, functions.php
+* Changed : Moved several functions into nggAdmin Class (functions.php)
+* Changed : Update to jQuery V1.1.4 (v1.2.1 causes problems with interface.js)
+* Changed : Hide used galleries in album admin page 
+* Changed : Remove float in singlepic code and added class ngg-left , ngg-right (THX to Nathan Sylvain)
+* Changed : Edit style setting (added new class .desc , THX to Sebastian) 
+* Changed : Check for galleryfolder instead name (THX to Luke Poland)
+* Changed : Delete images per default
+* Changed : Change CSS (ngg-album-compact) , remove width & height setting from code
+* Bugfix : Fixed static front page problem
+* Bugfix : Missing stripslashes & html_entity_decode
+* Bugfix : Change Album CSS (THX to Thomas-DK)
+* Bugfix : Watermark for GIF not correct supported
+* Bugfix : Missing wp_nonce at setup page
+* Bugfix : Add DIV in Slideshow link (for Safari & Opera)
+* Added : Screencolor flashvar for JW Image Rotator 3.13 or higher
+* Added : Set WP-CHARSET / COLLATE during installation
+* Added : Updated to Pclzip.lib.php v2.6
+* Added : CSS ID field for gallery & images
+* WPMU : New site admin page (wpmu.php)
+* WPMU : Integrated quota check
+* WPMU : No update check
+* WPMU : Remove edit style (THX to Kristin)
+* WPMU : Remove uninstall button
+* WPMU : Remove server settings
+* WPMU : Gallery path set to blog.dir
+* Added : Support for WPMU
+
+= V0.74 - 01.12.2007 =
+* NEW : Added meta reader class, first step to integrated meta data import
+
+= V0.73 - 20.10.2007 =
+* Added : Support for Shutter Reloaded
+* Update to jQuery Tabs 2.7.4
+* Changed : Remove $_SERVER['REQUEST_URI'] for IIS compatibility
+* Bugfix : Option Sildeshow didn't jump to overview
+
+= V0.72 - 13.09.2007 =
+* Added : Missing overflow:hidden in ngg-album.css
+* Added : New experimental stylesheet hovereffect.css
+* Changed : Better check for memory limit in zip-files
+* Bugfix : Missing stripslashes for alttext (THX to Lawrence)
+* Bugfix : Navigation didn't highlight page 1 (THX to Brot)
+* Bugfix : Albums automatic minimize if more than 4 galleries
+* Bugfix : Missing check_admin_referer in style (THX again to Christopher)
+
+= V0.71 - 07.09.2007 =
+* Added  : Add defer="defer" to Slideshow to avoid IE crash (THX to Simbo)
+* Bugfix : Bugfix for slideshow to show all pictures
+* Bugfix : Wrong check_admin_referer in albums (THX to Christopher)
+* Bugfix : No exclude check in counter and widgets (THX to Christopher)
+* Bugfix : Check for existing role (THX to Lost in Network)
+* Bugfix : Label in roles are wrong (THX to Joern)
+
+= V0.70 - 06.09.2007 =
+* NEW : Add role manager page and capabilities
+* NEW : Show gallery with [tags=list of tags]
+* NEW : Show album with [albumtags=list of tags]
+* NEW : Tag system for all images
+* NEW : Option for append related images
+* NEW : Option to show description below thumbnail
+* NEW : Option to show ImageBrowser instead JS effect
+* Added : Add Full size link to thickbox
+* Added  : Check for page/postid in tag processing
+* Added  : Sildeshow widget can now contain all images
+* Added  : Minimize/Maximize option for albums 
+* Added  : Deregister jQuery V1.1.2 for WP2.2 (to use V1.1.3.1)
+* Added  : Integrate wp_nonce_field at all admin pages
+* Changed : Update to Thickbox 3.1 + mods for NextGEN gallery
+* Changed : Moved "clear:both" into class "ngg-clear" (THX to Gero)
+* Changed : Switched from jQuery Interface to jQuery Tabs from Klaus Hartl 
+* Remove : Remove option for singlepic link
+* Remove : Remove options for imagebrowser
+* Bugfix : Most Recent image in Widget are wrong
+* Bugfix : More XHTML valid , htmlspecialchars() after add_query_arg()
+* Bugfix : Sanitize file name before upload
+* Bugfix : Sanitize folder name (THX to Tom Fowler)
+* Bugfix : Show title/alt in jQuery plugin (THX to Gregory Green)
+* Bugfix : i18n support for Gallery tab
+* Bugfix : Reduce memory-needs for plugin
+* Bugfix : Typo/spelling correction
+* Bugfix : Removed myGallery author from contribute list
+
+= V0.64 - 31.07.2007 =
+* Bugfix : Remove arrows in image browser text
+* Bugfix : Include nggadmintab.php with dirname 
+* Bugfix : Zip-Upload under Mac > look for basename
+
+= V0.63 - 10.07.2007 =
+* NEW : You can now upload a zip file into a existing gallery
+* Added : Remove subfolder in Zip-files
+* Added : Show required memory for thumbnail creation
+* Added : Updated to jQuery.multifile 1.22
+* Added : Install-Upgrade for WordPress 2.3
+* Bugfix : Supress unlink error message for thumbs
+* Bugfix : Support upload of zip files from MAC
+* Bugfix : Add Stripslash for image description
+* Bugfix : Use for Singlepic not rel="Gallery name"
+* Bugfix : Moved RSS/Snoopy includes into function
+
+= V0.62 - 06.07.2007 =
+* NEW : Import for myGallery
+* Added : Updated to jQuery 1.1.3.1
+* Bugfix : Check for memory_limit setting, otherwise pass the test
+* Bugfix : Thumbcode not insert for nggDisplayRandomImages and nggDisplayRecentImages
+
+= V0.61 - 29.06.2007 =
+* Added : Forgot the file jquery.nextgen.pack.js and jquery.nextgen.js
+
+= V0.60 - 27.06.2007 =
+* NEW : Select a image from the Upload Tab
+* NEW : Tag [imagebrowser=id] for a Inline Gallery Browser
+* NEW : Show gallery without Subpages
+* NEW : Manage gallery : Function "Add a new page"
+* NEW : Manage gallery : Show/Hide thumbnails
+* Added : Slideshow option : Watermark / Background music 
+* Added : Check for memory limit 
+* Added : Show actual memory usage in overview
+* Added : Include function check in widget
+* Added : Latest Sidebar widget from KeViN
+* Added : Check for capability during installation
+* Changed : Remove P Tag around gallery tags ( THX to the work from John Godley )
+* Bugfix : Delete picture, check for pid
+* Bugfix : admin/settings.php line #172: typos corrected (this=these,maxium=maximum). (THX to Helene D.) 
+* Bugfix : admin/settings.php line #311: missing </td> added. (THX to Helene D.) 
+
+= V0.52 - 31.05.2007 =
+* Changed : Create better thubmnails in square mode (THX to Kees de Bruin) 
+* Changed : Again , fixed ratio create better thumbnails (Also for widescreen photos)
+* Removed : Option "Resize image before cropping" removed and included in Create square thumbnail
+* Bugfix : Scan folder for new picture didn't set exclude = 0
+* Bugfix : If no option is checked in thumbnails, resize failed (THK to Joern Kretzschmar)
+
+= V0.51 - 28.05.2007 =
+* Bugfix : Thumbnail permission not set correct
+* Bugfix : Folder permission check wrong
+* Bugfix : Remove echo in album (THX to Lazy)
+
+= V0.50 - 28.05.2007 =
+* NEW : Select multiple files for upload (THX to Diego A., http://www.fyneworks.com)
+* NEW : Sidebar widget contain now Slideshow, recent images and random images
+* Added : New Option for Imagerotator 3.8 (Slow zoom effect)
+* Added : Option for CDATA wrapper (not working proper)
+* Added : Option for Thickbox Loading Image
+* Added : CSS file for dKret2 (THK to Joern)
+* Added : Better file permission check
+* Changed : Fixed ratio create better thumbnails in portrait mode
+* Changed : All jQuery scripts are now in "No Conflict" mode
+* Changed : Script loading now via wp_enqueue_script
+* Changed : Add constant values for folder/file permission
+* Changed : Use description in <A href title>
+* Bugfix : Remove wrong DIV tag in slideshow
+* Bugfix : Tag [Slideshow=id,width,height] didn't work proper
+* Bugfix : Name conflict in Album script (serialize) (THX to Die-Andis)
+* Bugfix : Changed check for CSS activation
+* Bugfix : Changed check for safe-mode (Don't ask)
+
+= V0.43 - 20.05.2007 =
+* Changed : Rename Thumbnail class to avoid php name collision
+* Bugfix : Missing translation flag in setup
+* Bugfix : Changed check for safe-mode
+* Bugfix : Changed check for Zip-File
+
+= V0.42 - 17.05.2007 =
+* Bugfix : Float function for singlepic not integrated, sorry !
+* Bugfix : Remove clear:both in widget
+
+= V0.41 - 17.05.2007 =
+* NEW : Sidebar widget from KeViN
+* Update : Better album management for more galleries
+* Update : Thickbox v3 integrated
+* Added : Float selection for singlepic
+* Added : CSS class for widget
+* Added : CSS file for K2 theme
+* Added : German translation (THX to Lazy)
+* Added : Better check for safe-mode
+* Added : CSS Class for single-pic : class="ngg-singlepic"
+* Added : Option to resize image before cropping it (Setting reset of prior versions needed! Setup -> Reset Settings)
+* Changed : Image quality by default 85% (THX to ArizonaGroovejet)
+* Bugfix : Update wrong file when select other style
+* Bugfix : Fixed Permalink in album (THX to Helene D.)
+* Bugfix : Scan folder in empty gallery
+* Bugfix : Swfobjects only added with Thickbox effect
+* Bugfix : Umlauts are now handled correctly
+
+= V0.40 - 29.04.2007 =
+* NEW : TinyMCE Button integration
+* Removed : CSS Style : remove width/height in album
+
+= V0.39 - 28.04.2007 =
+* Added : Set ORDER BY for gallery
+* Bugfix : check now for Exclude != 1
+* Bugfix : DB Query in function wrong
+* Bugfix : DB exlude = DEFAULT '0'
+* Bugfix : Scan folder in empty gallery
+
+= V0.38 - 28.04.2007 =
+* Bugfix : One time more remove get_settings :-)
+* Bugfix : $_GET in Manage gallery
+* Bugfix : exclude option
+
+= V0.37 - 28.04.2007 =
+* Bugfix : $_GET in Manage gallery
+* Bugfix : update DB installation routine
+
+= V0.36 - 26.04.2007 =
+* Bugfix : Stupid PHP beginner failure in album management
+
+= V0.35 - 26.04.2007 =
+* Rework : Folder name can be flexible
+* New option : Fullsize pic for Singlepic mode
+* New option : Select show order
+* Added : Check for WP2.1
+* Added : Check for permission for default folder
+* Bugfix : Remove get_settings
+* Bugfix : Correction for Safe-Mode ON
+* Bugfix : Set Default '0' for table album.sortorder
+* Bugfix : Update sort order
+
+= V0.34 - 24.04.2007 =
+* Added : Add fix ration setting
+* Added : Add language file file
+* Bugfix : Change link in Album to get_bloginfo('wpurl')
+* Bugfix : Album CSS file not loaded
+
+= V0.33 - 23.04.2007 =
+* NEW : Overview Page
+* NEW : Core function
+* NEW : Slideshow
\ No newline at end of file
diff --git a/wp-content/plugins/nextgen-gallery/css/Black_Minimalism.css b/wp-content/plugins/nextgen-gallery/css/Black_Minimalism.css
new file mode 100644
index 000000000..aeaf40a28
--- /dev/null
+++ b/wp-content/plugins/nextgen-gallery/css/Black_Minimalism.css
@@ -0,0 +1,375 @@
+/*
+CSS Name: Black Minimalism Theme
+Description: For Black Minimalism Theme 
+Author: Alex Rabe
+Version: 1.60
+   
+This is a template stylesheet that can be used with NextGEN Gallery. I tested the
+styles with a default theme Kubrick. Modify it when your theme struggle with it,
+it's only a template design
+
+*/
+
+/* ----------- Album Styles Extend -------------*/
+
+.ngg-albumoverview {
+	margin-top: 10px;
+	width: 100%;
+	clear:both; 
+	display:block !important;
+}
+
+.ngg-album {
+	/*height: 130px;*/
+	overflow:hidden;
+	padding: 5px;
+	margin-bottom: 5px;
+	border: 1px solid #cccccc;
+}
+
+.ngg-albumtitle {
+	text-align: left;
+ 	font-weight: bold;
+	margin:0px;
+	padding:0px;
+	font-size: 1.4em;
+	margin-bottom: 10px;
+}
+
+.ngg-thumbnail {
+	float: left;
+	margin: 0pt !important;
+	margin-right: 12px !important;
+}
+
+.ngg-thumbnail img {
+	background-color:#FFFFFF;
+	border:1px solid #A9A9A9;
+	margin:4px 0px 4px 5px;
+	padding:4px;
+	position:relative;
+}
+
+.ngg-thumbnail img:hover {
+	background-color: #A9A9A9;
+}
+
+.ngg-description {
+	text-align: left;
+}
+
+/* ----------- Album Styles Compact -------------*/
+
+.ngg-album-compact {
+	float:left;
+	height:180px;
+	padding-right:6px !important;
+	margin:0px !important; 
+	text-align:left;
+	width:120px;	
+}
+
+.ngg-album-compactbox {
+	background:transparent url(albumset.gif) no-repeat scroll 0%;
+	height:86px;
+	margin:0pt 0pt 6px !important;
+	padding:12px 0pt 0pt 7px !important;
+	width:120px;
+}
+
+
+.ngg-album-compactbox .Thumb {
+	border:1px solid #000000;
+	margin:0px !important;
+	padding:0px !important;
+	width:91px; 
+	height:68px;
+}
+
+.ngg-album-compact h4 {
+	font-size:15px;
+	font-weight:bold;
+	margin-bottom:0px;
+	margin-top:0px;
+	width:110px;
+}
+
+.ngg-album-compact p {
+	font-size:11px;
+	margin-top:2px;
+}
+
+/* ----------- Gallery style -------------*/
+
+.ngg-galleryoverview {
+	overflow: hidden;
+	margin-top: 10px;
+	width: 100%;
+	clear:both; 
+	display:block !important;
+}
+
+.ngg-gallery-thumbnail-box {
+	float: left;
+	width: 20%;
+}
+
+.ngg-gallery-thumbnail {
+	float: left; 
+	background: url(shadowAlpha.png) no-repeat bottom right !important;
+	background: url(shadow.gif) no-repeat bottom right;
+	margin: 10px 0 0 10px !important;
+}
+
+.ngg-gallery-thumbnail img {
+	margin: -6px 6px 6px -6px;
+	background-color:#FFFFFF;
+	border:1px solid #A9A9A9;
+	display:block; 
+	padding:4px;
+	position:relative;
+}
+
+.ngg-gallery-thumbnail img:hover {
+	background-color: #A9A9A9;
+} 
+
+.ngg-gallery-thumbnail span {
+	/* Images description */
+	font-size:90%;
+	padding-left:5px;
+	display:block;
+}
+
+.ngg-clear {
+	clear: both;
+}
+
+/* ----------- Gallery navigation -------------*/
+
+.ngg-navigation {
+	font-size:0.9em !important;
+	clear:both !important;
+	display:block !important;
+	padding-top:15px;
+	text-align:center;
+}
+
+.ngg-navigation span {
+	font-weight:bold;
+	margin:0pt 6px;
+}
+
+.ngg-navigation a.page-numbers,
+.ngg-navigation a.next,
+.ngg-navigation a.prev, 
+.ngg-navigation span.page-numbers,
+.ngg-navigation span.next,
+.ngg-navigation span.prev {
+	border:1px solid #660000;
+	margin-right:3px;
+	padding:3px 7px;
+}
+
+.ngg-navigation a.page-numbers:hover,
+.ngg-navigation a.next:hover,
+.ngg-navigation a.prev:hover, 
+.ngg-navigation span.page-numbers:hover,
+.ngg-navigation span.next:hover,
+.ngg-navigation span.prev:hover {
+	background-color: #660000;
+	color: #FFFFFF;
+	text-decoration: none;
+}
+
+/* ----------- Image browser style -------------*/
+
+.ngg-imagebrowser {
+	
+}
+
+.ngg-imagebrowser h3 {
+	text-align:center;
+}
+
+.ngg-imagebrowser img {
+	border:1px solid #A9A9A9;
+	margin-top: 10px; 
+	margin-bottom: 10px; 
+	width: 100%;
+	display:block !important;
+	padding:5px;
+}
+
+.ngg-imagebrowser-nav {
+	padding:5px;
+	margin-left:10px;	
+}
+
+.ngg-imagebrowser-nav .back {
+	float:left;
+	border:1px solid #DDDDDD;
+	margin-right:3px;
+	padding:3px 7px;
+}
+
+.ngg-imagebrowser-nav .next {
+	float:right;
+	border:1px solid #DDDDDD;
+	margin-right:3px;
+	padding:3px 7px;
+}
+
+.ngg-imagebrowser-nav .counter {
+	text-align:center;
+	font-size:0.9em !important;
+}
+
+.exif-data {
+  	margin-left: auto !important;
+    margin-right: auto !important;	
+}
+
+/* ----------- Slideshow -------------*/
+.slideshow {
+	margin-left: auto; 
+	margin-right: auto;
+	text-align:center;
+	outline: none;	
+}
+
+.slideshowlink {
+	
+}
+
+/* ----------- JS Slideshow -------------*/
+.ngg-slideshow {
+    overflow:hidden;
+    position: relative;
+}
+
+.ngg-slideshow * {
+    vertical-align:middle;
+}
+
+/* See also : http://www.brunildo.org/test/img_center.html */
+.ngg-slideshow-loader{
+    display: table-cell;
+    text-align: center;
+    vertical-align:middle;
+}
+
+.ngg-slideshow-loader img{
+    background: none !important; 
+    border: 0 none !important;
+    margin:auto !important; 
+}
+
+/* ----------- Single picture -------------*/
+.ngg-singlepic {
+	display:block;  
+	padding:4px;
+}
+
+.ngg-left {
+	float: left;
+	margin-right:10px;
+}
+
+.ngg-right {
+	float: right;
+	margin-left:10px;
+}
+
+.ngg-center {
+  	margin-left: auto !important;
+    margin-right: auto !important;
+}
+
+/* ----------- Sidebar widget -------------*/
+.ngg-widget,
+.ngg-widget-slideshow {
+	overflow: hidden;
+	margin:0pt;
+	padding:5px 0px 0px 0pt;
+}
+
+.ngg-widget img {
+	border:2px solid #A9A9A9;
+	margin:0pt 2px 2px 0px; 
+	padding:1px; 
+}
+
+/* ----------- Related images -------------*/
+.ngg-related-gallery {
+	background:#F9F9F9;
+	border:1px solid #E0E0E0;
+	overflow:hidden;
+	margin-bottom:1em;
+	margin-top:1em;
+	padding:5px;
+}
+.ngg-related-gallery img {
+	border: 1px solid #DDDDDD;
+	float: left;
+	margin: 0pt 2px;
+	padding: 2px;
+	height: 50px;
+	width:  50px;
+}
+
+.ngg-related-gallery img:hover {
+	border: 1px solid #000000;
+} 
+
+/* ----------- Gallery list -------------*/
+
+.ngg-galleryoverview ul li:before {
+	content: '' !important;
+}
+
+.ngg-gallery-list {
+	list-style-type:none;
+	padding: 0px !important;
+	text-indent:0px !important;	
+}
+
+.ngg-galleryoverview div.pic img{
+	width: 100%;	
+}
+
+.ngg-gallery-list li {
+	float:left;
+	margin:0 2px 0px 2px !important;
+	overflow:hidden;
+}
+
+.ngg-gallery-list li a {
+	border:1px solid #CCCCCC;
+	display:block;
+	padding:2px;
+}
+
+.ngg-gallery-list li.selected a{
+	-moz-background-clip:border;
+	-moz-background-inline-policy:continuous;
+	-moz-background-origin:padding;
+	background:#000000 none repeat scroll 0 0;
+}
+
+.ngg-gallery-list li img {
+	height:40px;
+	width:40px;	
+}
+
+li.ngg-next, li.ngg-prev {
+	height:40px;
+	width:40px;	
+	font-size:3.5em;
+}
+
+li.ngg-next a, li.ngg-prev a  {
+	padding-top: 10px;
+	border: none;
+	text-decoration: none;
+}
\ No newline at end of file
diff --git a/wp-content/plugins/nextgen-gallery/css/albumset.gif b/wp-content/plugins/nextgen-gallery/css/albumset.gif
new file mode 100644
index 0000000000000000000000000000000000000000..8dc3d4ed8f486f8fe0082bc38145a638eb528e68
GIT binary patch
literal 814
zcmZ?wbhEHb%w~vS*v!wcckkXickaA-^XA>VcduT(dhz1L!-o&QeEIVI`}eP3zaBVn
zVE_L8`}XZ)U|{$U28usf7#SG&8FUyJ7#KiiFtGgp;K`;D+;#EjH1?^>8MxXD=Pj?D
z+p$(RVNv&-)Q6LDqdbFl-}1Zsv)5vh%He}KR`V~cDDhewwf>50P~+RG{SP(-?-rPS
z{>29Mvw6E`%cv(QEV%x@=~sgP^Y8y_D=Vri8yZ{dnw!eHdfNM{TA4WfrTo}g*%)Wf
znLBU(f`y9~FIl>jjde=0w=X9P?}m+=HgDOwZTpU$yLN8~P@T@on}7I--ywgM1ILe^
z$vs_=>dUeI?A6TkKH`4sZd|(;dw1H}EBBv12zcbfaq!vOu!jsqPu_hAxGOsS^Vi>e
z4=?(#fBCq$Tt80O=Pui<&)a<$9BSS7&(c9b;h}T>-K-Od<rnYThWY##3VHKFaIQ<9
z%I#E^mkJAxPB|K8R>N6*!&dKc#<h~qh0pwYUhpuL{J5NUp~k9v(aUeIA9yT1b7-Rr
zhpCp;G>z3l$yy~!?rZZ?wpDRWdw#Lm<@Bt^<vwd~s!J8`DrHmUyS1cv{T-KC-)DJN
zR{Rb+Sz)v`K}WKXkGICc>(RE}!vfEwC3`|nP2JnUn`yCm%5nDnRo9}+vz}k{SG(`p
zD={~TJu)(!ac{&o>v$baBe}J^w!J;Lbo<1=Z-2bcdNjXT-aT*qI+s;vX4_}JvfgE=
zadKL8dQs%>Z})WlZ{L%t+n)YG>1?{1e0BByUF&bx@7Ic{eOj<Sc2~Yr-2Z>yr;4P-
z-%k0?@k730b&S!Sn#)hsrJDVg7*DL&)VTdzLvLyL-0Ce`w=5{Nl`Ub=SDBXasB^bQ
z`2x{fYcg76^@1E7dqM>q7mMgxC|vC2JF>W`&niQpiPfbgz;U9ifTuI3^OlCD$=WiR
zj2t0ho~o=t>l&OmJzoVJ<aD~W;4By4h9k+6Ts8+-ImAyaXyQ{(P)O%gdU1eJP(~*6
z={%b)4(VL#I~Z1Q*DWh><Z631a|zF_C6<i+f@+42vvrR+99bGHHj{Zy;i;ER%aszM
bmU2y<mGE*>e3JpwbQOhDD|kFz7#OSpD^8AG

literal 0
HcmV?d00001

diff --git a/wp-content/plugins/nextgen-gallery/css/hovereffect.css b/wp-content/plugins/nextgen-gallery/css/hovereffect.css
new file mode 100644
index 000000000..098503ef9
--- /dev/null
+++ b/wp-content/plugins/nextgen-gallery/css/hovereffect.css
@@ -0,0 +1,425 @@
+/*
+CSS Name: Hovereffect Styles
+Description: Hover Stylesheet based on the idea of Hoverbox from http://host.sonspring.com/hoverbox/
+Author: Alex Rabe - Orginal by Nathan Smith
+Version: 1.60
+
+This is a template stylesheet which doesn't support description below the thumbnails. It's a experimental version.
+
+*/
+
+/* ----------- Album Styles Extend -------------*/
+
+.ngg-albumoverview {
+	margin-top: 10px;
+	width: 100%;
+	clear:both; 
+	display:block !important;
+}
+
+.ngg-album {
+	overflow: hidden;
+	padding: 5px;
+	margin-bottom: 5px;
+}
+
+.ngg-albumtitle {
+	border-bottom:1px dashed #AAAAAA;
+	text-align: left;
+ 	font-weight: bold;
+	margin:0px;
+	padding-bottom: 3px;
+	font-size: 1.4em;
+	margin-bottom: 10px;
+}
+
+.ngg-thumbnail {
+	float: left;
+	margin-right: 12px;
+	background:#EEEEEE none repeat scroll 0% 50%;
+	border-color:#DDDDDD rgb(187, 187, 187) rgb(170, 170, 170) rgb(204, 204, 204);
+	border-style:solid;
+	border-width:1px;
+	color:inherit;
+	margin-right: 5px;
+	padding:5px;
+}
+
+.ngg-thumbnail img {
+	filter: alpha(opacity=100);
+	-moz-opacity: .99;
+	opacity: .99;
+	background:#FFFFFF none repeat scroll 0%;
+	border-color:#AAAAAA rgb(204, 204, 204) rgb(221, 221, 221) rgb(187, 187, 187);
+	border-style:solid;
+	border-width:1px;
+	color:inherit;
+	padding:2px;
+	vertical-align:top;
+}
+
+.ngg-thumbnail img:hover {
+	filter: alpha(opacity=90);
+	-moz-opacity: .9;
+    opacity: .9;
+	border-color:#000000;
+}
+
+.ngg-description {
+	text-align: left;
+}
+
+/* ----------- Album Styles Compact -------------*/
+
+.ngg-album-compact {
+	float:left;
+	height:180px;
+	padding-right:6px !important;
+	margin:0px !important; 
+	text-align:left;
+	width:120px;	
+}
+
+.ngg-album-compactbox {
+	background:transparent url(albumset.gif) no-repeat scroll 0%;
+	height:86px;
+	margin:0pt 0pt 6px !important;
+	padding:12px 0pt 0pt 7px !important;
+	width:120px;
+}
+
+
+.ngg-album-compactbox .Thumb {
+	border:1px solid #000000;
+	margin:0px !important;
+	padding:0px !important;
+	width:91px; 
+	height:68px;
+}
+
+.ngg-album-compact h4 {
+	font-size:15px;
+	font-weight:bold;
+	margin-bottom:0px;
+	margin-top:0px;
+	width:110px;
+}
+
+.ngg-album-compact p {
+	font-size:11px;
+	margin-top:2px;
+}
+
+/* ----------- Gallery style -------------*/
+
+.ngg-galleryoverview {
+	overflow: hidden;
+	margin-top: 10px;
+	width: 100%;
+	clear:both; 
+	display:block !important;
+}
+
+.ngg-gallery-thumbnail-box {
+	float: left;
+	background:#EEEEEE none repeat scroll 0% 50%;
+	border-color:#DDDDDD rgb(187, 187, 187) rgb(170, 170, 170) rgb(204, 204, 204);
+	border-style:solid;
+	border-width:1px;
+	color:inherit;
+	display:inline;
+	margin:3px;
+	padding:5px;
+	position:relative;
+}
+
+.ngg-gallery-thumbnail {
+	float: left;
+}
+
+.ngg-gallery-thumbnail img {
+	filter: alpha(opacity=100);
+	-moz-opacity: .99;
+	opacity: .99;
+	background:#FFFFFF none repeat scroll 0%;
+	border-color:#AAAAAA rgb(204, 204, 204) rgb(221, 221, 221) rgb(187, 187, 187);
+	border-style:solid;
+	border-width:1px;
+	color:inherit;
+	padding:2px;
+	vertical-align:top;
+}
+
+.ngg-gallery-thumbnail img:hover {
+	filter: alpha(opacity=90);
+	-moz-opacity: .9;
+    opacity: .9;
+	border-color:#000000;
+} 
+
+.ngg-gallery-thumbnail span {
+	/* Images description */
+	font-size:90%;
+	padding-left:5px;
+	display:block;
+}
+
+.ngg-clear {
+	clear: both;
+}
+
+/* ----------- Gallery navigation -------------*/
+
+.ngg-navigation {
+	font-size:0.9em !important;
+	clear:both !important;
+	display:block !important;
+	padding-top:15px;
+	text-align:center;
+	
+}
+
+.ngg-navigation span {
+	font-weight:bold;
+	margin:0pt 6px;
+}
+
+.ngg-navigation a.page-numbers,
+.ngg-navigation a.next,
+.ngg-navigation a.prev, 
+.ngg-navigation span.page-numbers,
+.ngg-navigation span.next,
+.ngg-navigation span.prev {
+	border:1px solid #DDDDDD;
+	margin-right:3px;
+	padding:3px 7px;
+}
+
+.ngg-navigation a.page-numbers:hover,
+.ngg-navigation a.next:hover,
+.ngg-navigation a.prev:hover, 
+.ngg-navigation span.page-numbers:hover,
+.ngg-navigation span.next:hover,
+.ngg-navigation span.prev:hover {
+	background-color: #0066CC;
+	color: #FFFFFF !important;
+	text-decoration: none !important;
+}
+
+/* ----------- Image browser style -------------*/
+
+.ngg-imagebrowser {
+	
+}
+
+.ngg-imagebrowser h3 {
+	text-align:center;
+	padding-bottom:10px;
+}
+
+.ngg-imagebrowser .pic {
+	background:#EEEEEE none repeat scroll 0% 50%;
+	border-color:#DDDDDD rgb(187, 187, 187) rgb(170, 170, 170) rgb(204, 204, 204);
+	border-style:solid;
+	border-width:1px;
+	color:inherit;
+	display:block;
+	padding:10px;
+}
+
+.ngg-imagebrowser img {
+	width: 100%;
+	margin: -3px;
+	background:#FFFFFF none repeat scroll 0%;
+	border-color:#AAAAAA rgb(204, 204, 204) rgb(221, 221, 221) rgb(187, 187, 187);
+	border-style:solid;
+	border-width:1px;
+	color:inherit;
+	padding:2px;
+	vertical-align:top;
+}
+
+.ngg-imagebrowser-nav {
+	padding:10px;
+	margin-left:10px;
+	
+}
+
+.ngg-imagebrowser-nav .back {
+	float:left;
+	border:1px solid #DDDDDD;
+	margin-right:3px;
+	padding:3px 7px;
+}
+
+.ngg-imagebrowser-nav .next {
+	float:right;
+	border:1px solid #DDDDDD;
+	margin-right:3px;
+	padding:3px 7px;
+}
+
+.ngg-imagebrowser-nav .back:hover,
+.ngg-imagebrowser-nav .next:hover {
+	border:1px solid #000000;
+}
+
+.ngg-imagebrowser-nav .back a:hover,
+.ngg-imagebrowser-nav .next a:hover {
+	text-decoration: none !important;
+}
+
+.ngg-imagebrowser-nav .counter {
+	text-align:center;
+	font-size:0.9em !important;
+}
+
+.exif-data {
+  	margin-left: auto !important;
+    margin-right: auto !important;	
+}
+
+/* ----------- Slideshow -------------*/
+.slideshow {
+	margin-left: auto; 
+	margin-right: auto;
+	text-align:center;
+	outline: none;	
+}
+
+.slideshowlink {
+	
+}
+
+/* ----------- JS Slideshow -------------*/
+.ngg-slideshow {
+    overflow:hidden;
+    position: relative;
+}
+
+.ngg-slideshow * {
+    vertical-align:middle;
+}
+
+/* See also : http://www.brunildo.org/test/img_center.html */
+.ngg-slideshow-loader{
+    display: table-cell;
+    text-align: center;
+    vertical-align:middle;
+}
+
+.ngg-slideshow-loader img{
+    background: none !important; 
+    border: 0 none !important;
+    margin:auto !important; 
+}
+
+/* ----------- Single picture -------------*/
+.ngg-singlepic {
+	background-color:#FFFFFF;
+	display:block;  
+	padding:4px;
+}
+
+.ngg-left {
+	float: left;
+	margin-right:10px;
+}
+
+.ngg-right {
+	float: right;
+	margin-left:10px;
+}
+
+.ngg-center {
+  	margin-left: auto !important;
+    margin-right: auto !important;
+}
+
+/* ----------- Sidebar widget -------------*/
+.ngg-widget,
+.ngg-widget-slideshow {
+	overflow: hidden;
+	margin:0pt;
+	padding:5px 0px 0px 0pt;
+}
+
+.ngg-widget img {
+	border:2px solid #A9A9A9;
+	margin:0pt 2px 2px 0px; 
+	padding:1px; 
+}
+
+/* ----------- Related images -------------*/
+.ngg-related-gallery {
+	background:#F9F9F9;
+	border:1px solid #E0E0E0;
+	overflow:hidden;
+	margin-bottom:1em;
+	margin-top:1em;
+	padding:5px;
+}
+.ngg-related-gallery img {
+	border: 1px solid #DDDDDD;
+	float: left;
+	margin: 0pt 3px;
+	padding: 2px;
+	height: 50px;
+	width:  50px;
+}
+
+.ngg-related-gallery img:hover {
+	border: 1px solid #000000;
+}
+
+/* ----------- Gallery list -------------*/
+
+.ngg-galleryoverview ul li:before {
+	content: '' !important;
+}
+
+.ngg-gallery-list {
+	list-style-type:none;
+	padding: 0px !important;
+	text-indent:0px !important;	
+}
+
+.ngg-galleryoverview div.pic img{
+	width: 100%;	
+}
+
+.ngg-gallery-list li {
+	float:left;
+	margin:0 2px 0px 2px !important;
+	overflow:hidden;
+}
+
+.ngg-gallery-list li a {
+	border:1px solid #CCCCCC;
+	display:block;
+	padding:2px;
+}
+
+.ngg-gallery-list li.selected a{
+	-moz-background-clip:border;
+	-moz-background-inline-policy:continuous;
+	-moz-background-origin:padding;
+	background:#000000 none repeat scroll 0 0;
+}
+
+.ngg-gallery-list li img {
+	height:40px;
+	width:40px;	
+}
+
+li.ngg-next, li.ngg-prev {
+	height:40px;
+	width:40px;	
+	font-size:3.5em;
+}
+
+li.ngg-next a, li.ngg-prev a  {
+	padding-top: 10px;
+	border: none;
+	text-decoration: none;
+}
\ No newline at end of file
diff --git a/wp-content/plugins/nextgen-gallery/css/ngg_dkret3.css b/wp-content/plugins/nextgen-gallery/css/ngg_dkret3.css
new file mode 100644
index 000000000..c32cf311b
--- /dev/null
+++ b/wp-content/plugins/nextgen-gallery/css/ngg_dkret3.css
@@ -0,0 +1,318 @@
+/*
+CSS Name: dkret3 Theme
+Description: NextGEN dkret3 style with a shadow effect
+Author: Jörn Kretzschmar (based on Alex Rabes Default Style)
+Version: 1.3
+   
+This is a template stylesheet that can be used with NextGEN Gallery. I tested the
+styles with the theme dkret3. Modify it when your theme struggle with it,
+it's only a template design
+
+*/
+
+/* ----------- Album Styles Extend -------------*/
+
+.ngg-albumoverview {
+	margin-top: 10px;
+	width: 100%;
+	clear:both; 
+	display:block !important;
+}
+
+.ngg-album {
+	height: 100%;
+	padding: 5px;
+	margin-bottom: 5px;
+	border: 1px solid #cccccc;
+	overflow:hidden;
+}
+
+.ngg-albumtitle {
+	text-align: left;
+ 	font-weight: bold;
+	margin:0px;
+	padding:0px;
+	font-size: 1.4em;
+	margin-bottom: 10px;
+}
+
+.ngg-thumbnail {
+	float: left;
+	margin-right: 12px;
+}
+
+.ngg-thumbnail img {
+	background-color:#FFFFFF;
+	border:1px solid #A9A9A9;
+	margin:4px 0px 4px 5px;
+	padding:4px;
+	position:relative;
+}
+
+.ngg-thumbnail img:hover {
+	background-color: #A9A9A9;
+}
+
+.ngg-description {
+	text-align: left;
+}
+
+/* ----------- Album Styles Compact -------------*/
+
+.ngg-album-compact {
+	float:left;
+	height:180px;
+	padding-right:6px !important;
+	margin:0px !important; 
+	text-align:left;
+	width:120px;	
+}
+
+.ngg-album-compactbox {
+	background:transparent url(albumset.gif) no-repeat scroll 0%;
+	height:86px;
+	margin:0pt 0pt 6px !important;
+	padding:12px 0pt 0pt 7px !important;
+	width:120px;
+}
+
+
+.ngg-album-compactbox .Thumb {
+	border:1px solid #000000;
+	margin:0px !important;
+	padding:0px !important;
+	width:91px; 
+	height:68px;
+}
+
+.ngg-album-compact h4 {
+	font-size:15px;
+	font-weight:bold;
+	margin-bottom:0px;
+	margin-top:0px;
+	width:110px;
+}
+
+.ngg-album-compact p {
+	font-size:11px;
+	margin-top:2px;
+}
+
+/* ----------- Gallery style -------------*/
+
+.ngg-galleryoverview {
+	margin-top: 10px;
+	width: 100%;
+	clear:both; 
+	display:block !important;
+}
+
+.ngg-gallery-thumbnail-box {
+	float: left;
+}
+
+.ngg-gallery-thumbnail {
+	float: left; 
+	background: url(shadowAlpha.png) no-repeat bottom right !important;
+	background: url(shadow.gif) no-repeat bottom right;
+	margin: 10px 0 0 10px !important;
+}
+
+.ngg-gallery-thumbnail img {
+	margin: -6px 6px 6px -6px;
+	background-color:#FFFFFF;
+	border:1px solid #A9A9A9;
+	display:block; 
+	padding:4px;
+	position:relative;
+}
+
+.ngg-gallery-thumbnail img:hover {
+	background-color: #A9A9A9;
+} 
+
+.ngg-gallery-thumbnail span {
+	display:none;
+}
+
+.ngg-clear {
+	clear: both;
+}
+
+/* ----------- Gallery navigation -------------*/
+
+.ngg-navigation {
+	font-size:0.9em !important;
+	clear:both !important;
+	display:block !important;
+	padding-top:15px;
+	text-align:center;
+}
+
+.ngg-navigation span {
+	font-weight:bold;
+	margin:0pt 6px;
+}
+
+.ngg-navigation a.page-numbers,
+.ngg-navigation a.next,
+.ngg-navigation a.prev, 
+.ngg-navigation span.page-numbers,
+.ngg-navigation span.next,
+.ngg-navigation span.prev {
+	border:1px solid #DDDDDD;
+	margin-right:3px;
+	padding:3px 7px;
+}
+
+.ngg-navigation a.page-numbers:hover,
+.ngg-navigation a.next:hover,
+.ngg-navigation a.prev:hover, 
+.ngg-navigation span.page-numbers:hover,
+.ngg-navigation span.next:hover,
+.ngg-navigation span.prev:hover {
+	background-color: #0066CC;
+	color: #FFFFFF !important;
+	text-decoration: none !important;
+}
+
+/* ----------- Image browser style -------------*/
+
+.ngg-imagebrowser {
+	
+}
+
+.ngg-imagebrowser h3 {
+	text-align:center;
+}
+
+.ngg-imagebrowser img {
+	border:1px solid #A9A9A9;
+	margin-top: 10px; 
+	margin-bottom: 10px; 
+	width: 100%;
+	display:block !important;
+	padding:5px;
+}
+
+.ngg-imagebrowser-nav {
+	padding:5px;
+	margin-left:10px;	
+}
+
+.ngg-imagebrowser-nav .back {
+	float:left;
+	border:1px solid #DDDDDD;
+	margin-right:3px;
+	padding:3px 7px;
+}
+
+.ngg-imagebrowser-nav .next {
+	float:right;
+	border:1px solid #DDDDDD;
+	margin-right:3px;
+	padding:3px 7px;
+}
+
+.ngg-imagebrowser-nav .counter {
+	text-align:center;
+	font-size:0.9em !important;
+}
+
+.exif-data {
+  	margin-left: auto !important;
+    margin-right: auto !important;	
+}
+
+/* ----------- Slideshow -------------*/
+.slideshow {
+	margin-left: auto; 
+	margin-right: auto;
+	text-align:center;
+	outline: none;	
+}
+
+.slideshowlink {
+	
+}
+
+/* ----------- JS Slideshow -------------*/
+.ngg-slideshow {
+    overflow:hidden;
+    position: relative;
+}
+
+.ngg-slideshow * {
+    vertical-align:middle;
+}
+
+/* See also : http://www.brunildo.org/test/img_center.html */
+.ngg-slideshow-loader{
+    display: table-cell;
+    text-align: center;
+    vertical-align:middle;
+}
+
+.ngg-slideshow-loader img{
+    background: none !important; 
+    border: 0 none !important;
+    margin:auto !important; 
+}
+
+/* ----------- Single picture -------------*/
+.ngg-singlepic {
+	background-color:#FFFFFF;
+	display:block;  
+	padding:4px;
+}
+
+.ngg-left {
+	float: left;
+}
+
+.ngg-right {
+	float: right;
+}
+
+.ngg-center {
+  	margin-left: auto;
+    margin-right: auto;
+}
+
+/* ----------- Sidebar widget -------------*/
+
+.ngg-widget,
+.ngg-widget-slideshow {
+	overflow: hidden;
+	margin:0pt;
+	padding:5px 0px 0px 0pt;
+  text-align: center;
+}
+
+.ngg-widget img {
+	border:2px solid #A9A9A9;
+	margin:0pt 2px 2px 0px; 
+	padding:1px; 
+}
+
+/* ----------- Related images -------------*/
+.ngg-related-gallery {
+	background:#F9F9F9;
+	border:1px solid #E0E0E0;
+	overflow:hidden;
+	margin-bottom:1em;
+	margin-top:1em;
+	padding:5px;
+}
+.ngg-related-gallery img {
+	border: 1px solid #DDDDDD;
+	float: left;
+	margin: 0pt 3px;
+	padding: 2px;
+	height: 50px;
+	width:  50px;
+}
+
+.ngg-related-gallery img:hover {
+	border: 1px solid #000000;
+} 
diff --git a/wp-content/plugins/nextgen-gallery/css/ngg_k2.css b/wp-content/plugins/nextgen-gallery/css/ngg_k2.css
new file mode 100644
index 000000000..8e4baa181
--- /dev/null
+++ b/wp-content/plugins/nextgen-gallery/css/ngg_k2.css
@@ -0,0 +1,330 @@
+/*
+CSS Name: K2 Theme
+Description: NextGEN Style for K2 Theme
+Author: Alex Rabe
+Version: 1.60
+   
+This is a template stylesheet that can be used with NextGEN Gallery. I tested the
+styles with a default theme Kubrick. Modify it when your theme struggle with it,
+it's only a template design
+
+*/
+
+/* ----------- Album Styles Extend -------------*/
+
+.ngg-albumoverview {
+	margin: 10px 0px 0px 0px !important;
+	width: 100%;
+	clear:both; 
+	display:block !important;
+}
+
+.ngg-album {
+	/*height: 130px;*/
+	overflow:hidden;
+	margin: 0px 0px 5px !important;
+	padding: 5px;
+	border: 1px solid #cccccc;
+}
+
+.ngg-albumtitle {
+	text-align: left;
+ 	font-weight: bold;
+	padding:0px;
+	font-size: 1.4em;
+	margin: 0px 0px 10px 0px !important;
+}
+
+.ngg-albumcontent {
+	margin: 0px !important;
+}
+
+.ngg-thumbnail {
+	margin:0px 12px 0px 0px !important;
+	float: left;
+}
+
+.ngg-thumbnail img {
+	background-color:#FFFFFF;
+	border:1px solid #A9A9A9;
+	margin:4px 0px 4px 5px !important;
+	padding:4px;
+	position:relative;
+}
+
+.ngg-thumbnail img:hover {
+	background-color: #A9A9A9;
+}
+
+.ngg-description {
+	text-align: left;
+}
+
+/* ----------- Album Styles Compact -------------*/
+
+.ngg-album-compact {
+	float:left;
+	height:180px;
+	padding-right:6px !important;
+	margin:0px !important; 
+	text-align:left;
+	width:120px;	
+}
+
+.ngg-album-compactbox {
+	background:transparent url(albumset.gif) no-repeat scroll 0%;
+	height:86px;
+	margin:0pt 0pt 6px !important;
+	padding:12px 0pt 0pt 7px !important;
+	width:120px;
+}
+
+.ngg-album-link {
+	margin:0px !important;
+}
+
+.ngg-album-compactbox .Thumb {
+	border:1px solid #000000;
+	margin:0px !important;
+	padding:0px !important;
+	width:91px; 
+	height:68px;
+}
+
+.ngg-album-compact h4 {
+	font-size:15px;
+	font-weight:bold;
+	margin-bottom:0px !important;
+	margin-top:0px !important;
+	width:110px;
+	padding:0px !important;
+}
+
+.ngg-album-compact p {
+	font-size:11px;
+	margin-top:2px;
+}
+
+/* ----------- Gallery style -------------*/
+
+.ngg-galleryoverview {
+	margin-top: 10px;
+	width: 100%;
+	clear:both; 
+	display:block !important;
+}
+
+.ngg-gallery-thumbnail-box {
+	margin:0px !important;
+	float: left;
+}
+
+.ngg-gallery-thumbnail {
+	float: left; 
+	background: url(shadowAlpha.png) no-repeat bottom right !important;
+	background: url(shadow.gif) no-repeat bottom right;
+	margin: 10px 0 0 10px !important;
+}
+
+.ngg-gallery-thumbnail img {
+	margin: -6px 6px 6px -6px !important;
+	background-color:#FFFFFF;
+	border:1px solid #A9A9A9;
+	display:block; 
+	padding:4px;
+	position:relative;
+}
+
+.ngg-gallery-thumbnail img:hover {
+	background-color: #A9A9A9;
+}
+
+.ngg-gallery-thumbnail span {
+	/* Images description */
+	font-size:90%;
+	padding-left:5px;
+	display:block;
+} 
+
+.ngg-clear {
+	clear: both;
+}
+
+/* ----------- Gallery navigation -------------*/
+
+.ngg-navigation {
+	font-size:0.9em !important;
+	clear:both !important;
+	display:block !important;
+	padding-top:15px;
+	text-align:center;
+}
+
+.ngg-navigation span {
+	font-weight:bold;
+	margin:0pt 6px;
+}
+
+.ngg-navigation a.page-numbers,
+.ngg-navigation a.next,
+.ngg-navigation a.prev, 
+.ngg-navigation span.page-numbers,
+.ngg-navigation span.next,
+.ngg-navigation span.prev {
+	border:1px solid #DDDDDD;
+	margin-right:3px;
+	padding:3px 7px;
+}
+
+.ngg-navigation a.page-numbers:hover,
+.ngg-navigation a.next:hover,
+.ngg-navigation a.prev:hover, 
+.ngg-navigation span.page-numbers:hover,
+.ngg-navigation span.next:hover,
+.ngg-navigation span.prev:hover {
+	background-color: #0066CC;
+	color: #FFFFFF;
+	text-decoration: none;
+}
+
+/* ----------- Image browser style -------------*/
+
+.ngg-imagebrowser {
+	
+}
+
+.ngg-imagebrowser h3 {
+	text-align:center;
+}
+
+.ngg-imagebrowser img {
+	border:1px solid #A9A9A9;
+	margin-top: 10px; 
+	margin-bottom: 10px; 
+	width: 100%;
+	display:block !important;
+	padding:5px;
+}
+
+.ngg-imagebrowser-nav {
+	padding:5px;
+	margin-left:10px;	
+}
+
+.ngg-imagebrowser-nav .back {
+	float:left;
+	border:1px solid #DDDDDD;
+	margin-right:3px;
+	padding:3px 7px;
+}
+
+.ngg-imagebrowser-nav .next {
+	float:right;
+	border:1px solid #DDDDDD;
+	margin-right:3px;
+	padding:3px 7px;
+}
+
+.ngg-imagebrowser-nav .counter {
+	text-align:center;
+	font-size:0.9em !important;
+}
+
+.exif-data {
+  	margin-left: auto !important;
+    margin-right: auto !important;	
+}
+
+/* ----------- Slideshow -------------*/
+.slideshow {
+	margin-left: auto; 
+	margin-right: auto;
+	text-align:center;
+	outline: none;	
+}
+
+.slideshowlink {
+	
+}
+
+/* ----------- JS Slideshow -------------*/
+.ngg-slideshow {
+    overflow:hidden;
+    position: relative;
+}
+
+.ngg-slideshow * {
+    vertical-align:middle;
+}
+
+/* See also : http://www.brunildo.org/test/img_center.html */
+.ngg-slideshow-loader{
+    display: table-cell;
+    text-align: center;
+    vertical-align:middle;
+}
+
+.ngg-slideshow-loader img{
+    background: none !important; 
+    border: 0 none !important;
+    margin:auto !important; 
+}
+
+/* ----------- Single picture -------------*/
+.ngg-singlepic {
+	background-color:#FFFFFF;
+	display:block;  
+	padding:4px;
+}
+
+.ngg-left {
+	float: left;
+	margin-right:10px;
+}
+
+.ngg-right {
+	float: right;
+	margin-left:10px;
+}
+
+.ngg-center {
+  	margin-left: auto !important;
+    margin-right: auto !important;
+}
+
+/* ----------- Sidebar widget -------------*/
+.ngg-widget,
+.ngg-widget-slideshow {
+	overflow: hidden;
+	margin:0pt;
+	padding:5px 0px 0px 0pt;
+	text-align:left;
+}
+
+.ngg-widget img {
+	border:2px solid #A9A9A9;
+	margin:0pt 2px 2px 0px; 
+	padding:1px; 
+}
+
+/* ----------- Related images -------------*/
+.ngg-related-gallery {
+	background:#F9F9F9;
+	border:1px solid #E0E0E0;
+	overflow:hidden;
+	margin-bottom:1em;
+	margin-top:1em;
+	padding:5px;
+}
+.ngg-related-gallery img {
+	border: 1px solid #DDDDDD;
+	float: left;
+	margin: 0pt 2px;
+	padding: 2px;
+	height: 50px;
+	width:  50px;
+}
+
+.ngg-related-gallery img:hover {
+	border: 1px solid #000000;
+} 
diff --git a/wp-content/plugins/nextgen-gallery/css/ngg_shadow.css b/wp-content/plugins/nextgen-gallery/css/ngg_shadow.css
new file mode 100644
index 000000000..23c50648a
--- /dev/null
+++ b/wp-content/plugins/nextgen-gallery/css/ngg_shadow.css
@@ -0,0 +1,371 @@
+/*
+CSS Name: Shadow Effect
+Description: NextGEN Default Style with a Shadow effect
+Author: Alex Rabe
+Version: 1.60
+   
+This is a template stylesheet that can be used with NextGEN Gallery. I tested the
+styles with a default theme Kubrick. Modify it when your theme struggle with it,
+it's only a template design
+
+*/
+
+/* ----------- Album Styles Extend -------------*/
+
+.ngg-albumoverview {
+	margin-top: 10px;
+	width: 100%;
+	clear:both; 
+	display:block !important;
+}
+
+.ngg-album {
+	/*height: 130px;*/
+	padding: 5px;
+	margin-bottom: 5px;
+	border: 1px solid #cccccc;
+	overflow:hidden;
+}
+
+.ngg-albumtitle {
+	text-align: left;
+ 	font-weight: bold;
+	margin:0px;
+	padding:0px;
+	font-size: 1.4em;
+	margin-bottom: 10px;
+}
+
+.ngg-thumbnail {
+	float: left;
+	margin-right: 12px;
+}
+
+.ngg-thumbnail img {
+	background-color:#FFFFFF;
+	border:1px solid #A9A9A9;
+	margin:4px 0px 4px 5px;
+	padding:4px;
+	position:relative;
+}
+
+.ngg-thumbnail img:hover {
+	background-color: #A9A9A9;
+}
+
+.ngg-description {
+	text-align: left;
+}
+
+/* ----------- Album Styles Compact -------------*/
+
+.ngg-album-compact {
+	float:left;
+	height:180px;
+	padding-right:6px !important;
+	margin:0px !important; 
+	text-align:left;
+	width:120px;	
+}
+
+.ngg-album-compactbox {
+	background:transparent url(albumset.gif) no-repeat scroll 0%;
+	height:86px;
+	margin:0pt 0pt 6px !important;
+	padding:12px 0pt 0pt 7px !important;
+	width:120px;
+}
+
+
+.ngg-album-compactbox .Thumb {
+	border:1px solid #000000;
+	margin:0px !important;
+	padding:0px !important;
+	width:91px; 
+	height:68px;
+}
+
+.ngg-album-compact h4 {
+	font-size:15px;
+	font-weight:bold;
+	margin-bottom:0px;
+	margin-top:0px;
+	width:110px;
+}
+
+.ngg-album-compact p {
+	font-size:11px;
+	margin-top:2px;
+}
+
+/* ----------- Gallery style -------------*/
+
+.ngg-galleryoverview {
+	margin-top: 10px;
+	width: 100%;
+	clear:both; 
+	display:block !important;
+}
+
+.ngg-gallery-thumbnail-box {
+	float: left;
+}
+
+.ngg-gallery-thumbnail {
+	float: left; 
+	background: url(shadowAlpha.png) no-repeat bottom right !important;
+	background: url(shadow.gif) no-repeat bottom right;
+	margin: 10px 0 0 10px !important;
+}
+
+.ngg-gallery-thumbnail img {
+	margin: -6px 6px 6px -6px;
+	background-color:#FFFFFF;
+	border:1px solid #A9A9A9;
+	display:block; 
+	padding:4px;
+	position:relative;
+}
+
+.ngg-gallery-thumbnail img:hover {
+	background-color: #A9A9A9;
+} 
+
+.ngg-gallery-thumbnail span {
+	display:none;
+}
+
+.ngg-clear {
+	clear: both;
+}
+
+/* ----------- Gallery navigation -------------*/
+
+.ngg-navigation {
+	font-size:0.9em !important;
+	clear:both !important;
+	display:block !important;
+	padding-top:15px;
+	text-align:center;
+}
+
+.ngg-navigation span {
+	font-weight:bold;
+	margin:0pt 6px;
+}
+
+.ngg-navigation a.page-numbers,
+.ngg-navigation a.next,
+.ngg-navigation a.prev,
+.ngg-navigation span.page-numbers,
+.ngg-navigation span.next,
+.ngg-navigation span.prev {
+	border:1px solid #DDDDDD;
+	margin-right:3px;
+	padding:3px 7px;
+}
+
+.ngg-navigation a.page-numbers:hover,
+.ngg-navigation a.next:hover,
+.ngg-navigation a.prev:hover, 
+.ngg-navigation span.page-numbers:hover,
+.ngg-navigation span.next:hover,
+.ngg-navigation span.prev:hover {
+	background-color: #0066CC;
+	color: #FFFFFF !important;
+	text-decoration: none !important;
+}
+
+/* ----------- Image browser style -------------*/
+
+.ngg-imagebrowser {
+	
+}
+
+.ngg-imagebrowser h3 {
+	text-align:center;
+}
+
+.ngg-imagebrowser img {
+	border:1px solid #A9A9A9;
+	margin-top: 10px; 
+	margin-bottom: 10px; 
+	width: 100%;
+	display:block !important;
+	padding:5px;
+}
+
+.ngg-imagebrowser-nav {
+	padding:5px;
+	margin-left:10px;	
+}
+
+.ngg-imagebrowser-nav .back {
+	float:left;
+	border:1px solid #DDDDDD;
+	margin-right:3px;
+	padding:3px 7px;
+}
+
+.ngg-imagebrowser-nav .next {
+	float:right;
+	border:1px solid #DDDDDD;
+	margin-right:3px;
+	padding:3px 7px;
+}
+
+.ngg-imagebrowser-nav .counter {
+	text-align:center;
+	font-size:0.9em !important;
+}
+
+.exif-data {
+  	margin-left: auto !important;
+    margin-right: auto !important;	
+}
+
+/* ----------- Slideshow -------------*/
+.slideshow {
+	margin-left: auto; 
+	margin-right: auto;
+	text-align:center;
+	outline: none;	
+}
+
+.slideshowlink {
+	
+}
+
+/* ----------- JS Slideshow -------------*/
+.ngg-slideshow {
+    overflow:hidden;
+    position: relative;
+}
+
+.ngg-slideshow * {
+    vertical-align:middle;
+}
+
+/* See also : http://www.brunildo.org/test/img_center.html */
+.ngg-slideshow-loader{
+    display: table-cell;
+    text-align: center;
+    vertical-align:middle;
+}
+
+.ngg-slideshow-loader img{
+    background: none !important; 
+    border: 0 none !important;
+    margin:auto !important; 
+}
+
+/* ----------- Single picture -------------*/
+.ngg-singlepic {
+	background-color:#FFFFFF;
+	display:block;  
+	padding:4px;
+}
+
+.ngg-left {
+	float: left;
+	margin-right:10px;
+}
+
+.ngg-right {
+	float: right;
+	margin-left:10px;
+}
+
+.ngg-center {
+  	margin-left: auto !important;
+    margin-right: auto !important;
+}
+
+/* ----------- Sidebar widget -------------*/
+
+.ngg-widget,
+.ngg-widget-slideshow {
+	overflow: hidden;
+	margin:0pt;
+	padding:5px 0px 0px 0pt;
+}
+
+.ngg-widget img {
+	border:2px solid #A9A9A9;
+	margin:0pt 2px 2px 0px; 
+	padding:1px; 
+}
+
+/* ----------- Related images -------------*/
+.ngg-related-gallery {
+	background:#F9F9F9;
+	border:1px solid #E0E0E0;
+	overflow:hidden;
+	margin-bottom:1em;
+	margin-top:1em;
+	padding:5px;
+}
+.ngg-related-gallery img {
+	border: 1px solid #DDDDDD;
+	float: left;
+	margin: 0pt 3px;
+	padding: 2px;
+	height: 50px;
+	width:  50px;
+}
+
+.ngg-related-gallery img:hover {
+	border: 1px solid #000000;
+} 
+
+/* ----------- Gallery list -------------*/
+
+.ngg-galleryoverview ul li:before {
+	content: '' !important;
+}
+
+.ngg-gallery-list {
+	list-style-type:none;
+	padding: 0px !important;
+	text-indent:0px !important;	
+}
+
+.ngg-galleryoverview div.pic img{
+	width: 100%;	
+}
+
+.ngg-gallery-list li {
+	float:left;
+	margin:0 2px 0px 2px !important;
+	overflow:hidden;
+}
+
+.ngg-gallery-list li a {
+	border:1px solid #CCCCCC;
+	display:block;
+	padding:2px;
+}
+
+.ngg-gallery-list li.selected a{
+	-moz-background-clip:border;
+	-moz-background-inline-policy:continuous;
+	-moz-background-origin:padding;
+	background:#000000 none repeat scroll 0 0;
+}
+
+.ngg-gallery-list li img {
+	height:40px;
+	width:40px;	
+}
+
+li.ngg-next, li.ngg-prev {
+	height:40px;
+	width:40px;	
+	font-size:3.5em;
+}
+
+li.ngg-next a, li.ngg-prev a  {
+	padding-top: 10px;
+	border: none;
+	text-decoration: none;
+}
\ No newline at end of file
diff --git a/wp-content/plugins/nextgen-gallery/css/ngg_shadow2.css b/wp-content/plugins/nextgen-gallery/css/ngg_shadow2.css
new file mode 100644
index 000000000..84ce1bf6d
--- /dev/null
+++ b/wp-content/plugins/nextgen-gallery/css/ngg_shadow2.css
@@ -0,0 +1,379 @@
+/*
+CSS Name: Shadow Effect with Description text
+Description: NextGEN Default Style with a Shadow effect and description text below the thumbnail
+Author: Alex Rabe
+Version: 1.60
+   
+This is a template stylesheet that can be used with NextGEN Gallery. I tested the
+styles with a default theme Kubrick. Modify it when your theme struggle with it,
+it's only a template design
+
+*/
+
+/* ----------- Album Styles Extend -------------*/
+
+.ngg-albumoverview {
+	margin-top: 10px;
+	width: 100%;
+	clear:both; 
+	display:block !important;
+}
+
+.ngg-album {
+	/*height: 130px;*/
+	padding: 5px;
+	margin-bottom: 5px;
+	border: 1px solid #cccccc;
+	overflow:hidden;
+}
+
+.ngg-albumtitle {
+	text-align: left;
+ 	font-weight: bold;
+	margin:0px;
+	padding:0px;
+	font-size: 1.4em;
+	margin-bottom: 10px;
+}
+
+.ngg-thumbnail {
+	float: left;
+	margin-right: 12px;
+}
+
+.ngg-thumbnail img {
+	background-color:#FFFFFF;
+	border:1px solid #A9A9A9;
+	margin:4px 0px 4px 5px;
+	padding:4px;
+	position:relative;
+}
+
+.ngg-thumbnail img:hover {
+	background-color: #A9A9A9;
+}
+
+.ngg-description {
+	text-align: left;
+}
+
+/* ----------- Album Styles Compact -------------*/
+
+.ngg-album-compact {
+	float:left;
+	height:180px;
+	padding-right:6px !important;
+	margin:0px !important; 
+	text-align:left;
+	width:120px;	
+}
+
+.ngg-album-compactbox {
+	background:transparent url(albumset.gif) no-repeat scroll 0%;
+	height:86px;
+	margin:0pt 0pt 6px !important;
+	padding:12px 0pt 0pt 7px !important;
+	width:120px;
+}
+
+
+.ngg-album-compactbox .Thumb {
+	border:1px solid #000000;
+	margin:0px !important;
+	padding:0px !important;
+	width:91px; 
+	height:68px;
+}
+
+.ngg-album-compact h4 {
+	font-size:15px;
+	font-weight:bold;
+	margin-bottom:0px;
+	margin-top:0px;
+	width:110px;
+}
+
+.ngg-album-compact p {
+	font-size:11px;
+	margin-top:2px;
+}
+
+/* ----------- Gallery style -------------*/
+
+.ngg-galleryoverview {
+	margin-top: 10px;
+	width: 100%;
+	clear:both; 
+	display:block !important;
+}
+
+.ngg-gallery-thumbnail-box {
+	float: left;
+}
+
+.ngg-gallery-thumbnail {
+	float: left; 
+	background: url(shadowAlpha.png) no-repeat bottom right !important;
+	background: url(shadow.gif) no-repeat bottom right;
+	margin: 10px 0 0 10px !important;
+	padding:10px 15px 10px 15px;
+	border-color:#EEEEEE;
+	border-style:solid none none solid;
+	border-width:1px medium medium 1px;
+}
+
+.ngg-gallery-thumbnail img {
+	margin: -6px 6px 6px -6px;
+	background-color:#FFFFFF;
+	border:1px solid #A9A9A9;
+	display:block; 
+	padding:4px;
+	position:relative;
+}
+
+.ngg-gallery-thumbnail img:hover {
+	background-color: #A9A9A9;
+} 
+
+.ngg-gallery-thumbnail span {
+	margin: -6px 6px 6px -6px;
+	text-align:center;
+	font-size:90%;
+	color:#808080;
+	display:block;
+}
+
+.ngg-clear {
+	clear: both;
+}
+
+/* ----------- Gallery navigation -------------*/
+
+.ngg-navigation {
+	font-size:0.9em !important;
+	clear:both !important;
+	display:block !important;
+	padding-top:15px;
+	text-align:center;
+}
+
+.ngg-navigation span {
+	font-weight:bold;
+	margin:0pt 6px;
+}
+
+.ngg-navigation a.page-numbers,
+.ngg-navigation a.next,
+.ngg-navigation a.prev, 
+.ngg-navigation span.page-numbers,
+.ngg-navigation span.next,
+.ngg-navigation span.prev {
+	border:1px solid #DDDDDD;
+	margin-right:3px;
+	padding:3px 7px;
+}
+
+.ngg-navigation a.page-numbers:hover,
+.ngg-navigation a.next:hover,
+.ngg-navigation a.prev:hover, 
+.ngg-navigation span.page-numbers:hover,
+.ngg-navigation span.next:hover,
+.ngg-navigation span.prev:hover {
+	background-color: #0066CC;
+	color: #FFFFFF !important;
+	text-decoration: none !important;
+}
+
+/* ----------- Image browser style -------------*/
+
+.ngg-imagebrowser {
+	
+}
+
+.ngg-imagebrowser h3 {
+	text-align:center;
+}
+
+.ngg-imagebrowser img {
+	border:1px solid #A9A9A9;
+	margin-top: 10px; 
+	margin-bottom: 10px; 
+	width: 100%;
+	display:block !important;
+	padding:5px;
+}
+
+.ngg-imagebrowser-nav {
+	padding:5px;
+	margin-left:10px;	
+}
+
+.ngg-imagebrowser-nav .back {
+	float:left;
+	border:1px solid #DDDDDD;
+	margin-right:3px;
+	padding:3px 7px;
+}
+
+.ngg-imagebrowser-nav .next {
+	float:right;
+	border:1px solid #DDDDDD;
+	margin-right:3px;
+	padding:3px 7px;
+}
+
+.ngg-imagebrowser-nav .counter {
+	text-align:center;
+	font-size:0.9em !important;
+}
+
+.exif-data {
+  	margin-left: auto !important;
+    margin-right: auto !important;	
+}
+
+/* ----------- Slideshow -------------*/
+.slideshow {
+	margin-left: auto; 
+	margin-right: auto;
+	text-align:center;
+	outline: none;	
+}
+
+.slideshowlink {
+	
+}
+
+/* ----------- JS Slideshow -------------*/
+.ngg-slideshow {
+    overflow:hidden;
+    position: relative;
+}
+
+.ngg-slideshow * {
+    vertical-align:middle;
+}
+
+/* See also : http://www.brunildo.org/test/img_center.html */
+.ngg-slideshow-loader{
+    display: table-cell;
+    text-align: center;
+    vertical-align:middle;
+}
+
+.ngg-slideshow-loader img{
+    background: none !important; 
+    border: 0 none !important;
+    margin:auto !important; 
+}
+
+/* ----------- Single picture -------------*/
+.ngg-singlepic {
+	background-color:#FFFFFF;
+	display:block;  
+	padding:4px;
+}
+
+.ngg-left {
+	float: left;
+	margin-right:10px;
+}
+
+.ngg-right {
+	float: right;
+	margin-left:10px;
+}
+
+.ngg-center {
+  	margin-left: auto !important;
+    margin-right: auto !important;
+}
+
+/* ----------- Sidebar widget -------------*/
+
+.ngg-widget,
+.ngg-widget-slideshow {
+	overflow: hidden;
+	margin:0pt;
+	padding:5px 0px 0px 0pt;
+}
+
+.ngg-widget img {
+	border:2px solid #A9A9A9;
+	margin:0pt 2px 2px 0px; 
+	padding:1px; 
+}
+
+/* ----------- Related images -------------*/
+.ngg-related-gallery {
+	background:#F9F9F9;
+	border:1px solid #E0E0E0;
+	overflow:hidden;
+	margin-bottom:1em;
+	margin-top:1em;
+	padding:5px;
+}
+.ngg-related-gallery img {
+	border: 1px solid #DDDDDD;
+	float: left;
+	margin: 0pt 3px;
+	padding: 2px;
+	height: 50px;
+	width:  50px;
+}
+
+.ngg-related-gallery img:hover {
+	border: 1px solid #000000;
+} 
+
+/* ----------- Gallery list -------------*/
+
+.ngg-galleryoverview ul li:before {
+	content: '' !important;
+}
+
+.ngg-gallery-list {
+	list-style-type:none;
+	padding: 0px !important;
+	text-indent:0px !important;	
+}
+
+.ngg-galleryoverview div.pic img{
+	width: 100%;	
+}
+
+.ngg-gallery-list li {
+	float:left;
+	margin:0 2px 0px 2px !important;
+	overflow:hidden;
+}
+
+.ngg-gallery-list li a {
+	border:1px solid #CCCCCC;
+	display:block;
+	padding:2px;
+}
+
+.ngg-gallery-list li.selected a{
+	-moz-background-clip:border;
+	-moz-background-inline-policy:continuous;
+	-moz-background-origin:padding;
+	background:#000000 none repeat scroll 0 0;
+}
+
+.ngg-gallery-list li img {
+	height:40px;
+	width:40px;	
+}
+
+li.ngg-next, li.ngg-prev {
+	height:40px;
+	width:40px;	
+	font-size:3.5em;
+}
+
+li.ngg-next a, li.ngg-prev a  {
+	padding-top: 10px;
+	border: none;
+	text-decoration: none;
+}
\ No newline at end of file
diff --git a/wp-content/plugins/nextgen-gallery/css/nggallery.css b/wp-content/plugins/nextgen-gallery/css/nggallery.css
new file mode 100644
index 000000000..de9c4b413
--- /dev/null
+++ b/wp-content/plugins/nextgen-gallery/css/nggallery.css
@@ -0,0 +1,396 @@
+/*
+CSS Name: Default Styles
+Description: NextGEN Default Gallery Stylesheet
+Author: Alex Rabe
+Version: 2.10
+
+This is a template stylesheet that can be used with NextGEN Gallery. I tested the
+styles with a default theme Kubrick. Modify it when your theme struggle with it,
+it's only a template design
+
+*/
+
+/* ----------- Album Styles Extend -------------*/
+
+.ngg-albumoverview {
+	margin-top: 10px;
+	width: 100%;
+	clear:both; 
+	display:block !important;
+}
+
+.ngg-album {
+    height: 100%;
+    padding: 5px;
+    margin-bottom: 5px;
+    border: 1px solid #fff;
+}
+
+/* IE6 will ignore this , again I hate IE6 */
+/* See also http://www.sitepoint.com/article/browser-specific-css-hacks */
+html>body .ngg-album {
+    overflow:hidden;
+    padding: 5px;
+    margin-bottom: 5px;
+    border: 1px solid #cccccc;
+} 
+
+.ngg-album {
+	overflow: hidden;
+	padding: 5px;
+	margin-bottom: 5px;
+	border: 1px solid #cccccc;
+}
+
+.ngg-albumtitle {
+	text-align: left;
+ 	font-weight: bold;
+	margin:0px;
+	padding:0px;
+	font-size: 1.4em;
+	margin-bottom: 10px;
+}
+
+.ngg-thumbnail {
+	float: left;
+	margin-right: 12px;
+}
+
+.ngg-thumbnail img {
+	background-color:#FFFFFF;
+	border:1px solid #A9A9A9;
+	margin:4px 0px 4px 5px;
+	padding:4px;
+	position:relative;
+}
+
+.ngg-thumbnail img:hover {
+	background-color: #A9A9A9;
+}
+
+.ngg-description {
+	text-align: left;
+}
+
+/* ----------- Album Styles Compact -------------*/
+
+.ngg-album-compact {
+	float:left;
+	height:180px;
+	padding-right:6px !important;
+	margin:0px !important; 
+	text-align:left;
+	width:120px;	
+}
+
+.ngg-album-compactbox {
+	background:transparent url(albumset.gif) no-repeat scroll 0%;
+	height:86px;
+	margin:0pt 0pt 6px !important;
+	padding:12px 0pt 0pt 7px !important;
+	width:120px;
+}
+
+
+.ngg-album-compactbox .Thumb {
+	border:1px solid #000000;
+	margin:0px !important;
+	padding:0px !important;
+	width:91px; 
+	height:68px;
+}
+
+.ngg-album-compact h4 {
+	font-size:15px;
+	font-weight:bold;
+	margin-bottom:0px;
+	margin-top:0px;
+	width:110px;
+}
+
+.ngg-album-compact p {
+	font-size:11px;
+	margin-top:2px;
+}
+
+/* ----------- Gallery style -------------*/
+
+.ngg-galleryoverview {
+	overflow: hidden;
+	margin-top: 10px;
+	width: 100%;
+	clear:both; 
+	display:block !important;
+}
+
+.ngg-galleryoverview .desc {
+/* required for description */
+   margin:0px 10px 10px 0px;
+   padding:5px;
+}
+
+.ngg-gallery-thumbnail-box {
+	float: left;
+}
+
+.ngg-gallery-thumbnail {
+	float: left;
+	margin-right: 5px;
+	text-align: center;
+}
+
+.ngg-gallery-thumbnail img {
+	background-color:#FFFFFF;
+	border:1px solid #A9A9A9;
+	display:block;  
+	margin:4px 0px 4px 5px;
+	padding:4px;
+	position:relative;
+}
+
+.ngg-gallery-thumbnail img:hover {
+	background-color: #A9A9A9;
+} 
+
+.ngg-gallery-thumbnail span {
+	/* Images description */
+	font-size:90%;
+	padding-left:5px;
+	display:block;
+}
+
+.ngg-clear {
+	clear: both;
+}
+
+/* ----------- Gallery navigation -------------*/
+
+.ngg-navigation {
+	font-size:0.9em !important;
+	clear:both !important;
+	display:block !important;
+	padding-top:15px;
+	text-align:center;
+	
+}
+
+.ngg-navigation span {
+	font-weight:bold;
+	margin:0pt 6px;
+}
+
+.ngg-navigation a.page-numbers,
+.ngg-navigation a.next,
+.ngg-navigation a.prev, 
+.ngg-navigation span.page-numbers,
+.ngg-navigation span.next,
+.ngg-navigation span.prev {
+	border:1px solid #DDDDDD;
+	margin-right:3px;
+	padding:3px 7px;
+}
+
+.ngg-navigation a.page-numbers:hover,
+.ngg-navigation a.next:hover,
+.ngg-navigation a.prev:hover, 
+.ngg-navigation span.page-numbers:hover,
+.ngg-navigation span.next:hover,
+.ngg-navigation span.prev:hover {
+	background-color: #0066CC;
+	color: #FFFFFF !important;
+	text-decoration: none !important;
+}
+
+/* ----------- Image browser style -------------*/
+
+.ngg-imagebrowser {
+	
+}
+
+.ngg-imagebrowser h3 {
+	text-align:center;
+}
+
+.ngg-imagebrowser img {
+	border:1px solid #A9A9A9;
+	margin-top: 10px; 
+	margin-bottom: 10px; 
+	width: 100%;
+	display:block !important;
+	padding:5px;
+}
+
+.ngg-imagebrowser-nav {
+	padding:5px;
+	margin-left:10px;	
+}
+
+.ngg-imagebrowser-nav .back {
+	float:left;
+	border:1px solid #DDDDDD;
+	margin-right:3px;
+	padding:3px 7px;
+}
+
+.ngg-imagebrowser-nav .next {
+	float:right;
+	border:1px solid #DDDDDD;
+	margin-right:3px;
+	padding:3px 7px;
+}
+
+.ngg-imagebrowser-nav .counter {
+	text-align:center;
+	font-size:0.9em !important;
+}
+
+.exif-data {
+  	margin-left: auto !important;
+    margin-right: auto !important;	
+}
+
+/* ----------- Slideshow -------------*/
+.slideshow {
+	margin-left: auto; 
+	margin-right: auto;
+	text-align:center;
+	outline: none;	
+}
+
+.slideshowlink {
+	
+}
+
+/* ----------- JS Slideshow -------------*/
+.ngg-slideshow {
+    overflow:hidden;
+    position: relative;
+}
+
+.ngg-slideshow * {
+    vertical-align:middle;
+}
+
+/* See also : http://www.brunildo.org/test/img_center.html */
+.ngg-slideshow-loader{
+    display: table-cell;
+    text-align: center;
+    vertical-align:middle;
+}
+
+.ngg-slideshow-loader img{
+    background: none !important; 
+    border: 0 none !important;
+    margin:auto !important; 
+}
+
+/* ----------- Single picture -------------*/
+.ngg-singlepic {
+	background-color:#FFFFFF;
+	display:block;  
+	padding:4px;
+}
+
+.ngg-left {
+	float: left;
+	margin-right:10px;
+}
+
+.ngg-right {
+	float: right;
+	margin-left:10px;
+}
+
+.ngg-center {
+  	margin-left: auto !important;
+    margin-right: auto !important;
+}
+
+/* ----------- Sidebar widget -------------*/
+.ngg-widget,
+.ngg-widget-slideshow {
+	overflow: hidden;
+	margin:0pt;
+	padding:5px 0px 0px 0pt;
+	text-align:left;
+}
+
+.ngg-widget img {
+	border:2px solid #A9A9A9;
+	margin:0pt 2px 2px 0px; 
+	padding:1px; 
+}
+
+/* ----------- Related images -------------*/
+.ngg-related-gallery {
+	background:#F9F9F9;
+	border:1px solid #E0E0E0;
+	overflow:hidden;
+	margin-bottom:1em;
+	margin-top:1em;
+	padding:5px;
+}
+.ngg-related-gallery img {
+	border: 1px solid #DDDDDD;
+	float: left;
+	margin: 0pt 3px;
+	padding: 2px;
+	height: 50px;
+	width:  50px;
+}
+
+.ngg-related-gallery img:hover {
+	border: 1px solid #000000;
+} 
+
+/* ----------- Gallery list -------------*/
+
+.ngg-galleryoverview ul li:before {
+	content: '' !important;
+}
+
+.ngg-gallery-list {
+	list-style-type:none;
+	padding: 0px !important;
+	text-indent:0px !important;	
+}
+
+.ngg-galleryoverview div.pic img{
+	width: 100%;	
+}
+
+.ngg-gallery-list li {
+	float:left;
+	margin:0 2px 0px 2px !important;
+	overflow:hidden;
+}
+
+.ngg-gallery-list li a {
+	border:1px solid #CCCCCC;
+	display:block;
+	padding:2px;
+}
+
+.ngg-gallery-list li.selected a{
+	-moz-background-clip:border;
+	-moz-background-inline-policy:continuous;
+	-moz-background-origin:padding;
+	background:#000000 none repeat scroll 0 0;
+}
+
+.ngg-gallery-list li img {
+	height:40px;
+	width:40px;	
+}
+
+li.ngg-next, li.ngg-prev {
+	height:40px;
+	width:40px;	
+	font-size:3.5em;
+}
+
+li.ngg-next a, li.ngg-prev a  {
+	padding-top: 10px;
+	border: none;
+	text-decoration: none;
+}
\ No newline at end of file
diff --git a/wp-content/plugins/nextgen-gallery/css/shadow.gif b/wp-content/plugins/nextgen-gallery/css/shadow.gif
new file mode 100644
index 0000000000000000000000000000000000000000..af7f537e391f08327e417c7be6323c917d5d3788
GIT binary patch
literal 4364
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
H1A{dH{6&{^

literal 0
HcmV?d00001

diff --git a/wp-content/plugins/nextgen-gallery/css/shadowAlpha.png b/wp-content/plugins/nextgen-gallery/css/shadowAlpha.png
new file mode 100644
index 0000000000000000000000000000000000000000..a2561df971728d988424100c74c817916eca1979
GIT binary patch
literal 3403
zcmeAS@N?(olHy`uVBq!ia0y~yV76gkV0PtTVPIeoxn!8bz`&qg;u=xnT$Gwvl9`{U
z5R#dj$`F!Ks$i<%mYSqsWME*TU}$J%WN2k%q@ZhHW?)d1Ws}Chz`$PO>FdgVg^5*A
zRDQipX)Xf;180FpWHAE+w-5+3Ub<WNhk=2CCEd~2k%3`jKlh(RRt5&1#hxyXAr-gY
z-U`gR?I7ZC@%fDwCytW;*1Udi`cj<D1@1ajpIhMgZTdgG{28Aa4qQA}9QFDq7lZq6
zQ~m6-UFTyf7%c9+-}&a@&a+jF4U6}le_nG&Y~Jn<3<Z0(?_BqH*V{wP2R_E7YoDt-
z`rzsE{j3fD50q_vP`Tb0r0?bX(yWJ!3aT~?OIp|)rhH(SASA~Sbcor(tAfFUlb=Cz
zRB|*BMpMFQb{H)aMhnK#+F`Vc9Bn6zHkL*kg#*wswzyXtzx(u@=cV_a)!MGtc3wXJ
zpBckH%kMkae)Tz@TK{v_`JLxD_!-!594d}o`t#PT;>h|t*ZTW!DwPPyG3>i*_9$oR
z&zPe()#t6Ry|wdPC8$?We!K66TzYo)vztzvWjD;d{&*21gZs|6&F5<K`Z=E$9!a~!
i_(0=(rOeK=@;{H-t@#n4yOx20fx*+&&t;ucLK6UaaOyz-

literal 0
HcmV?d00001

diff --git a/wp-content/plugins/nextgen-gallery/fonts/arial.ttf b/wp-content/plugins/nextgen-gallery/fonts/arial.ttf
new file mode 100644
index 0000000000000000000000000000000000000000..886789b85b4b4e662519fcb7fe4d88ddf2205c5b
GIT binary patch
literal 311636
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
I4-*Ck0G4pU_W%F@

literal 0
HcmV?d00001

diff --git a/wp-content/plugins/nextgen-gallery/images/ajax-loader.gif b/wp-content/plugins/nextgen-gallery/images/ajax-loader.gif
new file mode 100644
index 0000000000000000000000000000000000000000..d0bce1542342e912da81a2c260562df172f30d73
GIT binary patch
literal 673
zcmZ?wbhEHb6krfw_{6~Q|Nnmm28Kh24mmkFF)%PBB_%aAHBFi{N%23opKD04vtxj(
zk)8oFBLf42;y)?pqSVBa)D(sC%#sX+#H_@MoczQTz0AC{d<MmzESy{n3=BF93=9k)
z!x@;3Id<LoXK>0hTR54+ibHY^yWfm7PS=fwhjxj~Jh)9S;mD!F3%bz~mUox2TT1Y-
zdu2cOV8CXM3CJA39z_M|7M|T3o^`ntIt7L#7)mN6__#((t*DXNT6+I&q6B+`!gYy9
zZO)RLR8_Quuo+~=vCBwV`;_B}31_B+>9e&a%kX`X^!w=PlsIE`fy@W4Gn@Cy99yBy
z6!}*C4`cITexsEsQuFt-U^B{?V^@-@_9>&biErkF#kY1Z<7`#rVKH=RPm~c{<<_*}
zqC9g_Q0!-0c>@a_ss0m7iY$Gw`pt-ASCP85*YgyS4-%h!8hO;p4kyGUg-mH}*(sM1
z>7;r7l!E}X+)Eqz!)jo2f+k@##+YN5!l4P4;*U$7@3}S4K=QcE14TWjZF5hBuUTZs
z!^SOAoVa^~>G!FOjRqSyJ9p2|)%3z@ju9xRKX3}(oD&*5i}Bs9!h)#@9d{Gw+%=ij
z>gaaVKx9I~>}`y^EQcHfW*asfx^`|NZet8id9F@%x-v)ex*P|`VTHcqg?ucA1}jf(
gSQj91C{cnv?AB5yh0-L6rg_nV6Brn*K?w(p0qpM50{{R3

literal 0
HcmV?d00001

diff --git a/wp-content/plugins/nextgen-gallery/images/loader.gif b/wp-content/plugins/nextgen-gallery/images/loader.gif
new file mode 100644
index 0000000000000000000000000000000000000000..0ca7ada960568fff04400cda966fbdcb106abfa2
GIT binary patch
literal 6820
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

literal 0
HcmV?d00001

diff --git a/wp-content/plugins/nextgen-gallery/images/mrss-icon.gif b/wp-content/plugins/nextgen-gallery/images/mrss-icon.gif
new file mode 100644
index 0000000000000000000000000000000000000000..e022fbdab42036d584eeffde8895035d81f880b8
GIT binary patch
literal 1040
zcmZ?wbhEHbRA*3NIF`b|UjL7w<sZZ3|MI=RKL;|1&iMB&ky&}(U$K?{zh^L5%>Ayr
z_^-mc|0)~*{4Zg$SpDx$1?#7BJ)P~p^|t-D-t^sP<=@|R9FCj+`>gw;c=Z3*MiaG@
z|J-)|``^R-zuw2@@c$p3w((p3+8+P=zs=j{!2gK7|C~<!Pu=q`@c93~lidq<|BpNR
z|L;t<khA}O%#Dt?@IUY9|D-ej|1R|YyCCGp;^_R-|I;r2`?)lu>G=QuYh8*i{jWa%
z@5h?5&ucnLuK%mM^#9lToW3*v>aP9ky!x;H_Macy8)shp_j6b0;!FSg?*CtW?eE-M
z|EE6q^XtIO?}rx7zyEjLoqsDI{NMQW|IhPV4nO*L;Mu?3FaQ0%vG32#qrdN6`t$tS
z-H-nszyJ65)q}TR|NZ&=>hsUv-~aso|NGa!|9}3|04V-sVdP?{XV76_U|;~n2?P7T
z1~n@udu#jljt=MU9%q;S3H_cfcJ<Sy*J}g?*_&F=U$AgNhttw!PA-9=o-?LvczatL
z8f-Bz-M(Xo)$Toe?fe7RtgTnk*0xtYse0_p8N>4zE}oxaHubQ~jhi=ARBqqVc<}I%
z?vtnbhwFv;`9(y;--(O2sff#e`=<8u*YBUYFL)W4+2$yu`b?FTSJT*Ye8R#GezgmR
zGdw0HH8&+63R(HlvFSLkf^*j$1t!_1$r^!19Y)Ji-L%cD(j+W5J=rkDB79egB-^w0
znI?|6a$1d5nN_XJn<ff9b`F@N*1gDOR!O>qny^jQ*B^?jLRh?4y?e5V$$?>W1~box
zu1yS0O#fJWI%FRo?O@u>`017H>1(<%JBlW^H3l)hzqglR(ZARj1&<&tMK+mvXTGaF
zKH3+Zcd+omhDdH%r*1jfTL<TFpZ?Hl-EW76=L}*+A~S7&cf7srUZmnM*NR1mhn0n6
z{+)#!{hGmjXCnL-Tk<NnD}3;ijrsB6@X_uaBF3y8#Ztyy9`*qY7GGbj+bGUx#Cm%A
zw4_-k@o`5On}pTn=4_u=mtQD(`fP!VxUT6&8Sby54a|JpZ_;H8U1b#8#QZASUA^5m
zOkfh=6e&2s{A8&bL)G=CR~vJ0i#i?_P3|yc=5UZ`IM-u5&w^RNcaJ)ofYF}oEIme-
zG@huMnX$8U$G7BPU&LlEVDMzJ`lSi2VxRVwvv4H!7&=Y%=c{}qsGF(iES#Lc$kc6H
za8tEcooV7z5gi7@HZiG&$`)?Fb(V`+-5D5J_@$Z(nz;ol3=VNrys}JY+H~=mx`4UM
cE2f2&T2?)bd?~XWnAij!yj<?b#>8L^0HfV1=l}o!

literal 0
HcmV?d00001

diff --git a/wp-content/plugins/nextgen-gallery/images/piclens.gif b/wp-content/plugins/nextgen-gallery/images/piclens.gif
new file mode 100644
index 0000000000000000000000000000000000000000..c96671f45d8e101a943fe77f3d3bb4497ff3c030
GIT binary patch
literal 1443
zcmZ?wbh9u|RA7)`_|L%b@Be?s#{Vp>{~7B4i!J;wIP*VS$A6J||0Ndvmst9rv-dyW
z)c-<r{s~O`&pqM4){*}lUH`QX{by<T&olAA_>%v+NB=Xm{MSABUv1BS!H)lYGyhv0
z`!BcRzt+0{73cm-uK3?_?SI~d|4o<v2c7zFdE&pziT?>_{?}al@3HH@$$|gXSN^wL
z`QLEqzr~jSL1+F4p7@`A>VM>c|8lGT=U@6?e&&DDh5yaB|FiY|ciZvb?d1Qglm9c1
z|5x4hKl8+Yw^RQuHvdmN_doaC|G+c<<4^tXd+^_K+kb(!|C;;$J0AMa)$(8c!2fT5
z{`(yG@3rTD)RF(r$NtA0`|o$;f7Ids=12Zp9Qj{);eXYo|5|JR^UwP)yzqbB#s4ig
z|4YpKudwoe^|k*6m;b9S`CoqSzuC<HvP=Iv?EWve;J??B|0%owi*)?g-~V5K_kZJk
z|E+ib7w`LTw)nrtp8xjy{<|*vZ@Tw?@}B=Td;atH{5M|y-+k|YjYa=uy8nwz`=7ey
zzvztrR_p$o&iSvg?tj77|0di1Yi;=Nz43p_`v2-1{;SRWZ?xrq;=2Dn>;7Br{I59a
zztoiff|LI%topCi_upmb|Cm+(t+xHQ+wot0%74qb|K-;F*W3ADbM61Q9sfP||8KnY
zzvb5dxwrl|-uyrN=KqB^|2N<Jzvlk`qKE&N-2UHq_y3B!|7TwLzwpZc;%oo2FaOWG
z^1tEA|DqfJYi|7CeB*!9wf}Rk{ja$Gzv<!sBX9oSe)s>uyZ^gi{y*^Y|B2WCzyALJ
z<In%kfB(P!`v2{>{~vz;pZn<l#z+4*J^DZ6;s1>f|93t5f9l!)O)vg$fBApu<Nw>9
z{9p0(|I|zWO^^Q%IR3x!`2W-+|HF>{PdoO1(ux0ZC;z*i`fq#Uf9#3>jVJz_9s2Kg
z=zrv)|33Twn;rabfAD|s;r}K_{yQD{AAjh7?V<lJhyUlC{@-~1f9-|;jTipMpZ}k9
z{(t8A|7n;0mt6W^dFlVe3;$y;{;#_D-}TJ@kTd^t&ipSu{lEP5|Cy)%=bigseeVC1
zbN{=}{O>#aKj7Sd1~AY8k)XW5!115q<kse+TK6n<qarj!4i>aJ3kW#o+&px$?P$=#
zuCr2KeI*P_zP`CAA$hF%q*myi$c>8@Efv>S_uJ9+Qd3e_>7rHbDfQgreR8%XFB%-T
z$m~^cbkg88T>Nsn{^}IQXtx$llfq|78F$rOyM)yP7Q`$zOX=v`tk%E~7{1tTm+#7u
ztxC<z>?$G^fhL)sp7p7z-CE>Q_-)aLj>F0^J7%c6bZ}QR*8R!2xX6Rs(^aif;GnOd
zw8gy%3Y_1ccy?Y^Eqb!z*<ttnPBYfUymZ*zyukSs!xJv&=aXicYVJy%ZPdy&mG^}C
zgc}Oyh1#FXq?{;FdF*e%z)<$^kb3*^iOS-Ky8o{)Xslt)mKRzPKL4Myc;JnV`a8Gk
zv9hTOetO;iVS#-oKZlCIgDTFFM6a5UFPnI*A3T^IUoT+i(A2;YknpfoW<rxf(|(y?
zXJgTj4-FlPVFrp!8p}Eu7?T?|J#5><GntKF;z~v`mx#cE#eLdB4Guc`N*UY=o;(VU
z3_=o;3{sZwJPt7W7ZrL<VE9qgFX73z;OR8xlnYNL`^zb)8SCqP?2>fNl4O{kowi`{
zi~_lU1B~x;GS0~5vMhK$k9p0@<+BTo6fziDKM2R`K9*2wU}e&&dNMCNi*v<-W}&D9
zb_`z@^-FU}JXp!d<e|_oPfTHFI$LDGsfMMjCKEWdI!!u?4)bz3Jjh(UIO@ZSl`Di+
zF|Ot{InXZ0C$idM?fgepSt};)iewXSj*xo8#O;%?mif3-g7%6X)1(?C`Xx4UFcr^9
zJkBJ=a+_i6^`z+6+wPb}Wywtx5Mmd*VbjdM^>WzlyluDcty;tCreNf&8qsi(U1ERM
c1ih`?76y$Qx$ZEmKOlDHA-if13k!oa09k}3z5oCK

literal 0
HcmV?d00001

diff --git a/wp-content/plugins/nextgen-gallery/index.html b/wp-content/plugins/nextgen-gallery/index.html
new file mode 100644
index 000000000..e69de29bb
diff --git a/wp-content/plugins/nextgen-gallery/js/jquery.cycle.all.js b/wp-content/plugins/nextgen-gallery/js/jquery.cycle.all.js
new file mode 100644
index 000000000..edc3fc2ab
--- /dev/null
+++ b/wp-content/plugins/nextgen-gallery/js/jquery.cycle.all.js
@@ -0,0 +1,1331 @@
+/*!
+ * jQuery Cycle Plugin (with Transition Definitions)
+ * Examples and documentation at: http://jquery.malsup.com/cycle/
+ * Copyright (c) 2007-2010 M. Alsup
+ * Version: 2.88 (08-JUN-2010)
+ * Dual licensed under the MIT and GPL licenses.
+ * http://jquery.malsup.com/license.html
+ * Requires: jQuery v1.2.6 or later
+ */
+;(function($) {
+
+var ver = '2.88';
+
+// if $.support is not defined (pre jQuery 1.3) add what I need
+if ($.support == undefined) {
+	$.support = {
+		opacity: !($.browser.msie)
+	};
+}
+
+function debug(s) {
+	if ($.fn.cycle.debug)
+		log(s);
+}		
+function log() {
+	if (window.console && window.console.log)
+		window.console.log('[cycle] ' + Array.prototype.join.call(arguments,' '));
+};
+
+// the options arg can be...
+//   a number  - indicates an immediate transition should occur to the given slide index
+//   a string  - 'pause', 'resume', 'toggle', 'next', 'prev', 'stop', 'destroy' or the name of a transition effect (ie, 'fade', 'zoom', etc)
+//   an object - properties to control the slideshow
+//
+// the arg2 arg can be...
+//   the name of an fx (only used in conjunction with a numeric value for 'options')
+//   the value true (only used in first arg == 'resume') and indicates
+//	 that the resume should occur immediately (not wait for next timeout)
+
+$.fn.cycle = function(options, arg2) {
+	var o = { s: this.selector, c: this.context };
+
+	// in 1.3+ we can fix mistakes with the ready state
+	if (this.length === 0 && options != 'stop') {
+		if (!$.isReady && o.s) {
+			log('DOM not ready, queuing slideshow');
+			$(function() {
+				$(o.s,o.c).cycle(options,arg2);
+			});
+			return this;
+		}
+		// is your DOM ready?  http://docs.jquery.com/Tutorials:Introducing_$(document).ready()
+		log('terminating; zero elements found by selector' + ($.isReady ? '' : ' (DOM not ready)'));
+		return this;
+	}
+
+	// iterate the matched nodeset
+	return this.each(function() {
+		var opts = handleArguments(this, options, arg2);
+		if (opts === false)
+			return;
+
+		opts.updateActivePagerLink = opts.updateActivePagerLink || $.fn.cycle.updateActivePagerLink;
+		
+		// stop existing slideshow for this container (if there is one)
+		if (this.cycleTimeout)
+			clearTimeout(this.cycleTimeout);
+		this.cycleTimeout = this.cyclePause = 0;
+
+		var $cont = $(this);
+		var $slides = opts.slideExpr ? $(opts.slideExpr, this) : $cont.children();
+		var els = $slides.get();
+		if (els.length < 2) {
+			log('terminating; too few slides: ' + els.length);
+			return;
+		}
+
+		var opts2 = buildOptions($cont, $slides, els, opts, o);
+		if (opts2 === false)
+			return;
+
+		var startTime = opts2.continuous ? 10 : getTimeout(els[opts2.currSlide], els[opts2.nextSlide], opts2, !opts2.rev);
+
+		// if it's an auto slideshow, kick it off
+		if (startTime) {
+			startTime += (opts2.delay || 0);
+			if (startTime < 10)
+				startTime = 10;
+			debug('first timeout: ' + startTime);
+			this.cycleTimeout = setTimeout(function(){go(els,opts2,0,(!opts2.rev && !opts.backwards))}, startTime);
+		}
+	});
+};
+
+// process the args that were passed to the plugin fn
+function handleArguments(cont, options, arg2) {
+	if (cont.cycleStop == undefined)
+		cont.cycleStop = 0;
+	if (options === undefined || options === null)
+		options = {};
+	if (options.constructor == String) {
+		switch(options) {
+		case 'destroy':
+		case 'stop':
+			var opts = $(cont).data('cycle.opts');
+			if (!opts)
+				return false;
+			cont.cycleStop++; // callbacks look for change
+			if (cont.cycleTimeout)
+				clearTimeout(cont.cycleTimeout);
+			cont.cycleTimeout = 0;
+			$(cont).removeData('cycle.opts');
+			if (options == 'destroy')
+				destroy(opts);
+			return false;
+		case 'toggle':
+			cont.cyclePause = (cont.cyclePause === 1) ? 0 : 1;
+			checkInstantResume(cont.cyclePause, arg2, cont);
+			return false;
+		case 'pause':
+			cont.cyclePause = 1;
+			return false;
+		case 'resume':
+			cont.cyclePause = 0;
+			checkInstantResume(false, arg2, cont);
+			return false;
+		case 'prev':
+		case 'next':
+			var opts = $(cont).data('cycle.opts');
+			if (!opts) {
+				log('options not found, "prev/next" ignored');
+				return false;
+			}
+			$.fn.cycle[options](opts);
+			return false;
+		default:
+			options = { fx: options };
+		};
+		return options;
+	}
+	else if (options.constructor == Number) {
+		// go to the requested slide
+		var num = options;
+		options = $(cont).data('cycle.opts');
+		if (!options) {
+			log('options not found, can not advance slide');
+			return false;
+		}
+		if (num < 0 || num >= options.elements.length) {
+			log('invalid slide index: ' + num);
+			return false;
+		}
+		options.nextSlide = num;
+		if (cont.cycleTimeout) {
+			clearTimeout(cont.cycleTimeout);
+			cont.cycleTimeout = 0;
+		}
+		if (typeof arg2 == 'string')
+			options.oneTimeFx = arg2;
+		go(options.elements, options, 1, num >= options.currSlide);
+		return false;
+	}
+	return options;
+	
+	function checkInstantResume(isPaused, arg2, cont) {
+		if (!isPaused && arg2 === true) { // resume now!
+			var options = $(cont).data('cycle.opts');
+			if (!options) {
+				log('options not found, can not resume');
+				return false;
+			}
+			if (cont.cycleTimeout) {
+				clearTimeout(cont.cycleTimeout);
+				cont.cycleTimeout = 0;
+			}
+			go(options.elements, options, 1, (!opts.rev && !opts.backwards));
+		}
+	}
+};
+
+function removeFilter(el, opts) {
+	if (!$.support.opacity && opts.cleartype && el.style.filter) {
+		try { el.style.removeAttribute('filter'); }
+		catch(smother) {} // handle old opera versions
+	}
+};
+
+// unbind event handlers
+function destroy(opts) {
+	if (opts.next)
+		$(opts.next).unbind(opts.prevNextEvent);
+	if (opts.prev)
+		$(opts.prev).unbind(opts.prevNextEvent);
+	
+	if (opts.pager || opts.pagerAnchorBuilder)
+		$.each(opts.pagerAnchors || [], function() {
+			this.unbind().remove();
+		});
+	opts.pagerAnchors = null;
+	if (opts.destroy) // callback
+		opts.destroy(opts);
+};
+
+// one-time initialization
+function buildOptions($cont, $slides, els, options, o) {
+	// support metadata plugin (v1.0 and v2.0)
+	var opts = $.extend({}, $.fn.cycle.defaults, options || {}, $.metadata ? $cont.metadata() : $.meta ? $cont.data() : {});
+	if (opts.autostop)
+		opts.countdown = opts.autostopCount || els.length;
+
+	var cont = $cont[0];
+	$cont.data('cycle.opts', opts);
+	opts.$cont = $cont;
+	opts.stopCount = cont.cycleStop;
+	opts.elements = els;
+	opts.before = opts.before ? [opts.before] : [];
+	opts.after = opts.after ? [opts.after] : [];
+	opts.after.unshift(function(){ opts.busy=0; });
+
+	// push some after callbacks
+	if (!$.support.opacity && opts.cleartype)
+		opts.after.push(function() { removeFilter(this, opts); });
+	if (opts.continuous)
+		opts.after.push(function() { go(els,opts,0,(!opts.rev && !opts.backwards)); });
+
+	saveOriginalOpts(opts);
+
+	// clearType corrections
+	if (!$.support.opacity && opts.cleartype && !opts.cleartypeNoBg)
+		clearTypeFix($slides);
+
+	// container requires non-static position so that slides can be position within
+	if ($cont.css('position') == 'static')
+		$cont.css('position', 'relative');
+	if (opts.width)
+		$cont.width(opts.width);
+	if (opts.height && opts.height != 'auto')
+		$cont.height(opts.height);
+
+	if (opts.startingSlide)
+		opts.startingSlide = parseInt(opts.startingSlide);
+	else if (opts.backwards)
+		opts.startingSlide = els.length - 1;
+
+	// if random, mix up the slide array
+	if (opts.random) {
+		opts.randomMap = [];
+		for (var i = 0; i < els.length; i++)
+			opts.randomMap.push(i);
+		opts.randomMap.sort(function(a,b) {return Math.random() - 0.5;});
+		opts.randomIndex = 1;
+		opts.startingSlide = opts.randomMap[1];
+	}
+	else if (opts.startingSlide >= els.length)
+		opts.startingSlide = 0; // catch bogus input
+	opts.currSlide = opts.startingSlide || 0;
+	var first = opts.startingSlide;
+
+	// set position and zIndex on all the slides
+	$slides.css({position: 'absolute', top:0, left:0}).hide().each(function(i) {
+		var z;
+		if (opts.backwards)
+			z = first ? i <= first ? els.length + (i-first) : first-i : els.length-i;
+		else
+			z = first ? i >= first ? els.length - (i-first) : first-i : els.length-i;
+		$(this).css('z-index', z)
+	});
+
+	// make sure first slide is visible
+	$(els[first]).css('opacity',1).show(); // opacity bit needed to handle restart use case
+	removeFilter(els[first], opts);
+
+	// stretch slides
+	if (opts.fit && opts.width)
+		$slides.width(opts.width);
+	if (opts.fit && opts.height && opts.height != 'auto')
+		$slides.height(opts.height);
+
+	// stretch container
+	var reshape = opts.containerResize && !$cont.innerHeight();
+	if (reshape) { // do this only if container has no size http://tinyurl.com/da2oa9
+		var maxw = 0, maxh = 0;
+		for(var j=0; j < els.length; j++) {
+			var $e = $(els[j]), e = $e[0], w = $e.outerWidth(), h = $e.outerHeight();
+			if (!w) w = e.offsetWidth || e.width || $e.attr('width')
+			if (!h) h = e.offsetHeight || e.height || $e.attr('height');
+			maxw = w > maxw ? w : maxw;
+			maxh = h > maxh ? h : maxh;
+		}
+		if (maxw > 0 && maxh > 0)
+			$cont.css({width:maxw+'px',height:maxh+'px'});
+	}
+
+	if (opts.pause)
+		$cont.hover(function(){this.cyclePause++;},function(){this.cyclePause--;});
+
+	if (supportMultiTransitions(opts) === false)
+		return false;
+
+	// apparently a lot of people use image slideshows without height/width attributes on the images.
+	// Cycle 2.50+ requires the sizing info for every slide; this block tries to deal with that.
+	var requeue = false;
+	options.requeueAttempts = options.requeueAttempts || 0;
+	$slides.each(function() {
+		// try to get height/width of each slide
+		var $el = $(this);
+		this.cycleH = (opts.fit && opts.height) ? opts.height : ($el.height() || this.offsetHeight || this.height || $el.attr('height') || 0);
+		this.cycleW = (opts.fit && opts.width) ? opts.width : ($el.width() || this.offsetWidth || this.width || $el.attr('width') || 0);
+
+		if ( $el.is('img') ) {
+			// sigh..  sniffing, hacking, shrugging...  this crappy hack tries to account for what browsers do when
+			// an image is being downloaded and the markup did not include sizing info (height/width attributes);
+			// there seems to be some "default" sizes used in this situation
+			var loadingIE	= ($.browser.msie  && this.cycleW == 28 && this.cycleH == 30 && !this.complete);
+			var loadingFF	= ($.browser.mozilla && this.cycleW == 34 && this.cycleH == 19 && !this.complete);
+			var loadingOp	= ($.browser.opera && ((this.cycleW == 42 && this.cycleH == 19) || (this.cycleW == 37 && this.cycleH == 17)) && !this.complete);
+			var loadingOther = (this.cycleH == 0 && this.cycleW == 0 && !this.complete);
+			// don't requeue for images that are still loading but have a valid size
+			if (loadingIE || loadingFF || loadingOp || loadingOther) {
+				if (o.s && opts.requeueOnImageNotLoaded && ++options.requeueAttempts < 100) { // track retry count so we don't loop forever
+					log(options.requeueAttempts,' - img slide not loaded, requeuing slideshow: ', this.src, this.cycleW, this.cycleH);
+					setTimeout(function() {$(o.s,o.c).cycle(options)}, opts.requeueTimeout);
+					requeue = true;
+					return false; // break each loop
+				}
+				else {
+					log('could not determine size of image: '+this.src, this.cycleW, this.cycleH);
+				}
+			}
+		}
+		return true;
+	});
+
+	if (requeue)
+		return false;
+
+	opts.cssBefore = opts.cssBefore || {};
+	opts.animIn = opts.animIn || {};
+	opts.animOut = opts.animOut || {};
+
+	$slides.not(':eq('+first+')').css(opts.cssBefore);
+	if (opts.cssFirst)
+		$($slides[first]).css(opts.cssFirst);
+
+	if (opts.timeout) {
+		opts.timeout = parseInt(opts.timeout);
+		// ensure that timeout and speed settings are sane
+		if (opts.speed.constructor == String)
+			opts.speed = $.fx.speeds[opts.speed] || parseInt(opts.speed);
+		if (!opts.sync)
+			opts.speed = opts.speed / 2;
+		
+		var buffer = opts.fx == 'shuffle' ? 500 : 250;
+		while((opts.timeout - opts.speed) < buffer) // sanitize timeout
+			opts.timeout += opts.speed;
+	}
+	if (opts.easing)
+		opts.easeIn = opts.easeOut = opts.easing;
+	if (!opts.speedIn)
+		opts.speedIn = opts.speed;
+	if (!opts.speedOut)
+		opts.speedOut = opts.speed;
+
+	opts.slideCount = els.length;
+	opts.currSlide = opts.lastSlide = first;
+	if (opts.random) {
+		if (++opts.randomIndex == els.length)
+			opts.randomIndex = 0;
+		opts.nextSlide = opts.randomMap[opts.randomIndex];
+	}
+	else if (opts.backwards)
+		opts.nextSlide = opts.startingSlide == 0 ? (els.length-1) : opts.startingSlide-1;
+	else
+		opts.nextSlide = opts.startingSlide >= (els.length-1) ? 0 : opts.startingSlide+1;
+
+	// run transition init fn
+	if (!opts.multiFx) {
+		var init = $.fn.cycle.transitions[opts.fx];
+		if ($.isFunction(init))
+			init($cont, $slides, opts);
+		else if (opts.fx != 'custom' && !opts.multiFx) {
+			log('unknown transition: ' + opts.fx,'; slideshow terminating');
+			return false;
+		}
+	}
+
+	// fire artificial events
+	var e0 = $slides[first];
+	if (opts.before.length)
+		opts.before[0].apply(e0, [e0, e0, opts, true]);
+	if (opts.after.length > 1)
+		opts.after[1].apply(e0, [e0, e0, opts, true]);
+
+	if (opts.next)
+		$(opts.next).bind(opts.prevNextEvent,function(){return advance(opts,opts.rev?-1:1)});
+	if (opts.prev)
+		$(opts.prev).bind(opts.prevNextEvent,function(){return advance(opts,opts.rev?1:-1)});
+	if (opts.pager || opts.pagerAnchorBuilder)
+		buildPager(els,opts);
+
+	exposeAddSlide(opts, els);
+
+	return opts;
+};
+
+// save off original opts so we can restore after clearing state
+function saveOriginalOpts(opts) {
+	opts.original = { before: [], after: [] };
+	opts.original.cssBefore = $.extend({}, opts.cssBefore);
+	opts.original.cssAfter  = $.extend({}, opts.cssAfter);
+	opts.original.animIn	= $.extend({}, opts.animIn);
+	opts.original.animOut   = $.extend({}, opts.animOut);
+	$.each(opts.before, function() { opts.original.before.push(this); });
+	$.each(opts.after,  function() { opts.original.after.push(this); });
+};
+
+function supportMultiTransitions(opts) {
+	var i, tx, txs = $.fn.cycle.transitions;
+	// look for multiple effects
+	if (opts.fx.indexOf(',') > 0) {
+		opts.multiFx = true;
+		opts.fxs = opts.fx.replace(/\s*/g,'').split(',');
+		// discard any bogus effect names
+		for (i=0; i < opts.fxs.length; i++) {
+			var fx = opts.fxs[i];
+			tx = txs[fx];
+			if (!tx || !txs.hasOwnProperty(fx) || !$.isFunction(tx)) {
+				log('discarding unknown transition: ',fx);
+				opts.fxs.splice(i,1);
+				i--;
+			}
+		}
+		// if we have an empty list then we threw everything away!
+		if (!opts.fxs.length) {
+			log('No valid transitions named; slideshow terminating.');
+			return false;
+		}
+	}
+	else if (opts.fx == 'all') {  // auto-gen the list of transitions
+		opts.multiFx = true;
+		opts.fxs = [];
+		for (p in txs) {
+			tx = txs[p];
+			if (txs.hasOwnProperty(p) && $.isFunction(tx))
+				opts.fxs.push(p);
+		}
+	}
+	if (opts.multiFx && opts.randomizeEffects) {
+		// munge the fxs array to make effect selection random
+		var r1 = Math.floor(Math.random() * 20) + 30;
+		for (i = 0; i < r1; i++) {
+			var r2 = Math.floor(Math.random() * opts.fxs.length);
+			opts.fxs.push(opts.fxs.splice(r2,1)[0]);
+		}
+		debug('randomized fx sequence: ',opts.fxs);
+	}
+	return true;
+};
+
+// provide a mechanism for adding slides after the slideshow has started
+function exposeAddSlide(opts, els) {
+	opts.addSlide = function(newSlide, prepend) {
+		var $s = $(newSlide), s = $s[0];
+		if (!opts.autostopCount)
+			opts.countdown++;
+		els[prepend?'unshift':'push'](s);
+		if (opts.els)
+			opts.els[prepend?'unshift':'push'](s); // shuffle needs this
+		opts.slideCount = els.length;
+
+		$s.css('position','absolute');
+		$s[prepend?'prependTo':'appendTo'](opts.$cont);
+
+		if (prepend) {
+			opts.currSlide++;
+			opts.nextSlide++;
+		}
+
+		if (!$.support.opacity && opts.cleartype && !opts.cleartypeNoBg)
+			clearTypeFix($s);
+
+		if (opts.fit && opts.width)
+			$s.width(opts.width);
+		if (opts.fit && opts.height && opts.height != 'auto')
+			$s.height(opts.height);
+		s.cycleH = (opts.fit && opts.height) ? opts.height : $s.height();
+		s.cycleW = (opts.fit && opts.width) ? opts.width : $s.width();
+
+		$s.css(opts.cssBefore);
+
+		if (opts.pager || opts.pagerAnchorBuilder)
+			$.fn.cycle.createPagerAnchor(els.length-1, s, $(opts.pager), els, opts);
+
+		if ($.isFunction(opts.onAddSlide))
+			opts.onAddSlide($s);
+		else
+			$s.hide(); // default behavior
+	};
+}
+
+// reset internal state; we do this on every pass in order to support multiple effects
+$.fn.cycle.resetState = function(opts, fx) {
+	fx = fx || opts.fx;
+	opts.before = []; opts.after = [];
+	opts.cssBefore = $.extend({}, opts.original.cssBefore);
+	opts.cssAfter  = $.extend({}, opts.original.cssAfter);
+	opts.animIn	= $.extend({}, opts.original.animIn);
+	opts.animOut   = $.extend({}, opts.original.animOut);
+	opts.fxFn = null;
+	$.each(opts.original.before, function() { opts.before.push(this); });
+	$.each(opts.original.after,  function() { opts.after.push(this); });
+
+	// re-init
+	var init = $.fn.cycle.transitions[fx];
+	if ($.isFunction(init))
+		init(opts.$cont, $(opts.elements), opts);
+};
+
+// this is the main engine fn, it handles the timeouts, callbacks and slide index mgmt
+function go(els, opts, manual, fwd) {
+	// opts.busy is true if we're in the middle of an animation
+	if (manual && opts.busy && opts.manualTrump) {
+		// let manual transitions requests trump active ones
+		debug('manualTrump in go(), stopping active transition');
+		$(els).stop(true,true);
+		opts.busy = false;
+	}
+	// don't begin another timeout-based transition if there is one active
+	if (opts.busy) {
+		debug('transition active, ignoring new tx request');
+		return;
+	}
+
+	var p = opts.$cont[0], curr = els[opts.currSlide], next = els[opts.nextSlide];
+
+	// stop cycling if we have an outstanding stop request
+	if (p.cycleStop != opts.stopCount || p.cycleTimeout === 0 && !manual)
+		return;
+
+	// check to see if we should stop cycling based on autostop options
+	if (!manual && !p.cyclePause && !opts.bounce &&
+		((opts.autostop && (--opts.countdown <= 0)) ||
+		(opts.nowrap && !opts.random && opts.nextSlide < opts.currSlide))) {
+		if (opts.end)
+			opts.end(opts);
+		return;
+	}
+
+	// if slideshow is paused, only transition on a manual trigger
+	var changed = false;
+	if ((manual || !p.cyclePause) && (opts.nextSlide != opts.currSlide)) {
+		changed = true;
+		var fx = opts.fx;
+		// keep trying to get the slide size if we don't have it yet
+		curr.cycleH = curr.cycleH || $(curr).height();
+		curr.cycleW = curr.cycleW || $(curr).width();
+		next.cycleH = next.cycleH || $(next).height();
+		next.cycleW = next.cycleW || $(next).width();
+
+		// support multiple transition types
+		if (opts.multiFx) {
+			if (opts.lastFx == undefined || ++opts.lastFx >= opts.fxs.length)
+				opts.lastFx = 0;
+			fx = opts.fxs[opts.lastFx];
+			opts.currFx = fx;
+		}
+
+		// one-time fx overrides apply to:  $('div').cycle(3,'zoom');
+		if (opts.oneTimeFx) {
+			fx = opts.oneTimeFx;
+			opts.oneTimeFx = null;
+		}
+
+		$.fn.cycle.resetState(opts, fx);
+
+		// run the before callbacks
+		if (opts.before.length)
+			$.each(opts.before, function(i,o) {
+				if (p.cycleStop != opts.stopCount) return;
+				o.apply(next, [curr, next, opts, fwd]);
+			});
+
+		// stage the after callacks
+		var after = function() {
+			$.each(opts.after, function(i,o) {
+				if (p.cycleStop != opts.stopCount) return;
+				o.apply(next, [curr, next, opts, fwd]);
+			});
+		};
+
+		debug('tx firing; currSlide: ' + opts.currSlide + '; nextSlide: ' + opts.nextSlide);
+		
+		// get ready to perform the transition
+		opts.busy = 1;
+		if (opts.fxFn) // fx function provided?
+			opts.fxFn(curr, next, opts, after, fwd, manual && opts.fastOnEvent);
+		else if ($.isFunction($.fn.cycle[opts.fx])) // fx plugin ?
+			$.fn.cycle[opts.fx](curr, next, opts, after, fwd, manual && opts.fastOnEvent);
+		else
+			$.fn.cycle.custom(curr, next, opts, after, fwd, manual && opts.fastOnEvent);
+	}
+
+	if (changed || opts.nextSlide == opts.currSlide) {
+		// calculate the next slide
+		opts.lastSlide = opts.currSlide;
+		if (opts.random) {
+			opts.currSlide = opts.nextSlide;
+			if (++opts.randomIndex == els.length)
+				opts.randomIndex = 0;
+			opts.nextSlide = opts.randomMap[opts.randomIndex];
+			if (opts.nextSlide == opts.currSlide)
+				opts.nextSlide = (opts.currSlide == opts.slideCount - 1) ? 0 : opts.currSlide + 1;
+		}
+		else if (opts.backwards) {
+			var roll = (opts.nextSlide - 1) < 0;
+			if (roll && opts.bounce) {
+				opts.backwards = !opts.backwards;
+				opts.nextSlide = 1;
+				opts.currSlide = 0;
+			}
+			else {
+				opts.nextSlide = roll ? (els.length-1) : opts.nextSlide-1;
+				opts.currSlide = roll ? 0 : opts.nextSlide+1;
+			}
+		}
+		else { // sequence
+			var roll = (opts.nextSlide + 1) == els.length;
+			if (roll && opts.bounce) {
+				opts.backwards = !opts.backwards;
+				opts.nextSlide = els.length-2;
+				opts.currSlide = els.length-1;
+			}
+			else {
+				opts.nextSlide = roll ? 0 : opts.nextSlide+1;
+				opts.currSlide = roll ? els.length-1 : opts.nextSlide-1;
+			}
+		}
+	}
+	if (changed && opts.pager)
+		opts.updateActivePagerLink(opts.pager, opts.currSlide, opts.activePagerClass);
+	
+	// stage the next transition
+	var ms = 0;
+	if (opts.timeout && !opts.continuous)
+		ms = getTimeout(els[opts.currSlide], els[opts.nextSlide], opts, fwd);
+	else if (opts.continuous && p.cyclePause) // continuous shows work off an after callback, not this timer logic
+		ms = 10;
+	if (ms > 0)
+		p.cycleTimeout = setTimeout(function(){ go(els, opts, 0, (!opts.rev && !opts.backwards)) }, ms);
+};
+
+// invoked after transition
+$.fn.cycle.updateActivePagerLink = function(pager, currSlide, clsName) {
+   $(pager).each(function() {
+       $(this).children().removeClass(clsName).eq(currSlide).addClass(clsName);
+   });
+};
+
+// calculate timeout value for current transition
+function getTimeout(curr, next, opts, fwd) {
+	if (opts.timeoutFn) {
+		// call user provided calc fn
+		var t = opts.timeoutFn.call(curr,curr,next,opts,fwd);
+		while ((t - opts.speed) < 250) // sanitize timeout
+			t += opts.speed;
+		debug('calculated timeout: ' + t + '; speed: ' + opts.speed);
+		if (t !== false)
+			return t;
+	}
+	return opts.timeout;
+};
+
+// expose next/prev function, caller must pass in state
+$.fn.cycle.next = function(opts) { advance(opts, opts.rev?-1:1); };
+$.fn.cycle.prev = function(opts) { advance(opts, opts.rev?1:-1);};
+
+// advance slide forward or back
+function advance(opts, val) {
+	var els = opts.elements;
+	var p = opts.$cont[0], timeout = p.cycleTimeout;
+	if (timeout) {
+		clearTimeout(timeout);
+		p.cycleTimeout = 0;
+	}
+	if (opts.random && val < 0) {
+		// move back to the previously display slide
+		opts.randomIndex--;
+		if (--opts.randomIndex == -2)
+			opts.randomIndex = els.length-2;
+		else if (opts.randomIndex == -1)
+			opts.randomIndex = els.length-1;
+		opts.nextSlide = opts.randomMap[opts.randomIndex];
+	}
+	else if (opts.random) {
+		opts.nextSlide = opts.randomMap[opts.randomIndex];
+	}
+	else {
+		opts.nextSlide = opts.currSlide + val;
+		if (opts.nextSlide < 0) {
+			if (opts.nowrap) return false;
+			opts.nextSlide = els.length - 1;
+		}
+		else if (opts.nextSlide >= els.length) {
+			if (opts.nowrap) return false;
+			opts.nextSlide = 0;
+		}
+	}
+
+	var cb = opts.onPrevNextEvent || opts.prevNextClick; // prevNextClick is deprecated
+	if ($.isFunction(cb))
+		cb(val > 0, opts.nextSlide, els[opts.nextSlide]);
+	go(els, opts, 1, val>=0);
+	return false;
+};
+
+function buildPager(els, opts) {
+	var $p = $(opts.pager);
+	$.each(els, function(i,o) {
+		$.fn.cycle.createPagerAnchor(i,o,$p,els,opts);
+	});
+	opts.updateActivePagerLink(opts.pager, opts.startingSlide, opts.activePagerClass);
+};
+
+$.fn.cycle.createPagerAnchor = function(i, el, $p, els, opts) {
+	var a;
+	if ($.isFunction(opts.pagerAnchorBuilder)) {
+		a = opts.pagerAnchorBuilder(i,el);
+		debug('pagerAnchorBuilder('+i+', el) returned: ' + a);
+	}
+	else
+		a = '<a href="#">'+(i+1)+'</a>';
+		
+	if (!a)
+		return;
+	var $a = $(a);
+	// don't reparent if anchor is in the dom
+	if ($a.parents('body').length === 0) {
+		var arr = [];
+		if ($p.length > 1) {
+			$p.each(function() {
+				var $clone = $a.clone(true);
+				$(this).append($clone);
+				arr.push($clone[0]);
+			});
+			$a = $(arr);
+		}
+		else {
+			$a.appendTo($p);
+		}
+	}
+
+	opts.pagerAnchors =  opts.pagerAnchors || [];
+	opts.pagerAnchors.push($a);
+	$a.bind(opts.pagerEvent, function(e) {
+		e.preventDefault();
+		opts.nextSlide = i;
+		var p = opts.$cont[0], timeout = p.cycleTimeout;
+		if (timeout) {
+			clearTimeout(timeout);
+			p.cycleTimeout = 0;
+		}
+		var cb = opts.onPagerEvent || opts.pagerClick; // pagerClick is deprecated
+		if ($.isFunction(cb))
+			cb(opts.nextSlide, els[opts.nextSlide]);
+		go(els,opts,1,opts.currSlide < i); // trigger the trans
+//		return false; // <== allow bubble
+	});
+	
+	if ( ! /^click/.test(opts.pagerEvent) && !opts.allowPagerClickBubble)
+		$a.bind('click.cycle', function(){return false;}); // suppress click
+	
+	if (opts.pauseOnPagerHover)
+		$a.hover(function() { opts.$cont[0].cyclePause++; }, function() { opts.$cont[0].cyclePause--; } );
+};
+
+// helper fn to calculate the number of slides between the current and the next
+$.fn.cycle.hopsFromLast = function(opts, fwd) {
+	var hops, l = opts.lastSlide, c = opts.currSlide;
+	if (fwd)
+		hops = c > l ? c - l : opts.slideCount - l;
+	else
+		hops = c < l ? l - c : l + opts.slideCount - c;
+	return hops;
+};
+
+// fix clearType problems in ie6 by setting an explicit bg color
+// (otherwise text slides look horrible during a fade transition)
+function clearTypeFix($slides) {
+	debug('applying clearType background-color hack');
+	function hex(s) {
+		s = parseInt(s).toString(16);
+		return s.length < 2 ? '0'+s : s;
+	};
+	function getBg(e) {
+		for ( ; e && e.nodeName.toLowerCase() != 'html'; e = e.parentNode) {
+			var v = $.css(e,'background-color');
+			if (v.indexOf('rgb') >= 0 ) {
+				var rgb = v.match(/\d+/g);
+				return '#'+ hex(rgb[0]) + hex(rgb[1]) + hex(rgb[2]);
+			}
+			if (v && v != 'transparent')
+				return v;
+		}
+		return '#ffffff';
+	};
+	$slides.each(function() { $(this).css('background-color', getBg(this)); });
+};
+
+// reset common props before the next transition
+$.fn.cycle.commonReset = function(curr,next,opts,w,h,rev) {
+	$(opts.elements).not(curr).hide();
+	opts.cssBefore.opacity = 1;
+	opts.cssBefore.display = 'block';
+	if (w !== false && next.cycleW > 0)
+		opts.cssBefore.width = next.cycleW;
+	if (h !== false && next.cycleH > 0)
+		opts.cssBefore.height = next.cycleH;
+	opts.cssAfter = opts.cssAfter || {};
+	opts.cssAfter.display = 'none';
+	$(curr).css('zIndex',opts.slideCount + (rev === true ? 1 : 0));
+	$(next).css('zIndex',opts.slideCount + (rev === true ? 0 : 1));
+};
+
+// the actual fn for effecting a transition
+$.fn.cycle.custom = function(curr, next, opts, cb, fwd, speedOverride) {
+	var $l = $(curr), $n = $(next);
+	var speedIn = opts.speedIn, speedOut = opts.speedOut, easeIn = opts.easeIn, easeOut = opts.easeOut;
+	$n.css(opts.cssBefore);
+	if (speedOverride) {
+		if (typeof speedOverride == 'number')
+			speedIn = speedOut = speedOverride;
+		else
+			speedIn = speedOut = 1;
+		easeIn = easeOut = null;
+	}
+	var fn = function() {$n.animate(opts.animIn, speedIn, easeIn, cb)};
+	$l.animate(opts.animOut, speedOut, easeOut, function() {
+		if (opts.cssAfter) $l.css(opts.cssAfter);
+		if (!opts.sync) fn();
+	});
+	if (opts.sync) fn();
+};
+
+// transition definitions - only fade is defined here, transition pack defines the rest
+$.fn.cycle.transitions = {
+	fade: function($cont, $slides, opts) {
+		$slides.not(':eq('+opts.currSlide+')').css('opacity',0);
+		opts.before.push(function(curr,next,opts) {
+			$.fn.cycle.commonReset(curr,next,opts);
+			opts.cssBefore.opacity = 0;
+		});
+		opts.animIn	   = { opacity: 1 };
+		opts.animOut   = { opacity: 0 };
+		opts.cssBefore = { top: 0, left: 0 };
+	}
+};
+
+$.fn.cycle.ver = function() { return ver; };
+
+// override these globally if you like (they are all optional)
+$.fn.cycle.defaults = {
+	fx:			  'fade', // name of transition effect (or comma separated names, ex: 'fade,scrollUp,shuffle')
+	timeout:	   4000,  // milliseconds between slide transitions (0 to disable auto advance)
+	timeoutFn:     null,  // callback for determining per-slide timeout value:  function(currSlideElement, nextSlideElement, options, forwardFlag)
+	continuous:	   0,	  // true to start next transition immediately after current one completes
+	speed:		   1000,  // speed of the transition (any valid fx speed value)
+	speedIn:	   null,  // speed of the 'in' transition
+	speedOut:	   null,  // speed of the 'out' transition
+	next:		   null,  // selector for element to use as event trigger for next slide
+	prev:		   null,  // selector for element to use as event trigger for previous slide
+//	prevNextClick: null,  // @deprecated; please use onPrevNextEvent instead
+	onPrevNextEvent: null,  // callback fn for prev/next events: function(isNext, zeroBasedSlideIndex, slideElement)
+	prevNextEvent:'click.cycle',// event which drives the manual transition to the previous or next slide
+	pager:		   null,  // selector for element to use as pager container
+	//pagerClick   null,  // @deprecated; please use onPagerEvent instead
+	onPagerEvent:  null,  // callback fn for pager events: function(zeroBasedSlideIndex, slideElement)
+	pagerEvent:	  'click.cycle', // name of event which drives the pager navigation
+	allowPagerClickBubble: false, // allows or prevents click event on pager anchors from bubbling
+	pagerAnchorBuilder: null, // callback fn for building anchor links:  function(index, DOMelement)
+	before:		   null,  // transition callback (scope set to element to be shown):	 function(currSlideElement, nextSlideElement, options, forwardFlag)
+	after:		   null,  // transition callback (scope set to element that was shown):  function(currSlideElement, nextSlideElement, options, forwardFlag)
+	end:		   null,  // callback invoked when the slideshow terminates (use with autostop or nowrap options): function(options)
+	easing:		   null,  // easing method for both in and out transitions
+	easeIn:		   null,  // easing for "in" transition
+	easeOut:	   null,  // easing for "out" transition
+	shuffle:	   null,  // coords for shuffle animation, ex: { top:15, left: 200 }
+	animIn:		   null,  // properties that define how the slide animates in
+	animOut:	   null,  // properties that define how the slide animates out
+	cssBefore:	   null,  // properties that define the initial state of the slide before transitioning in
+	cssAfter:	   null,  // properties that defined the state of the slide after transitioning out
+	fxFn:		   null,  // function used to control the transition: function(currSlideElement, nextSlideElement, options, afterCalback, forwardFlag)
+	height:		  'auto', // container height
+	startingSlide: 0,	  // zero-based index of the first slide to be displayed
+	sync:		   1,	  // true if in/out transitions should occur simultaneously
+	random:		   0,	  // true for random, false for sequence (not applicable to shuffle fx)
+	fit:		   0,	  // force slides to fit container
+	containerResize: 1,	  // resize container to fit largest slide
+	pause:		   0,	  // true to enable "pause on hover"
+	pauseOnPagerHover: 0, // true to pause when hovering over pager link
+	autostop:	   0,	  // true to end slideshow after X transitions (where X == slide count)
+	autostopCount: 0,	  // number of transitions (optionally used with autostop to define X)
+	delay:		   0,	  // additional delay (in ms) for first transition (hint: can be negative)
+	slideExpr:	   null,  // expression for selecting slides (if something other than all children is required)
+	cleartype:	   !$.support.opacity,  // true if clearType corrections should be applied (for IE)
+	cleartypeNoBg: false, // set to true to disable extra cleartype fixing (leave false to force background color setting on slides)
+	nowrap:		   0,	  // true to prevent slideshow from wrapping
+	fastOnEvent:   0,	  // force fast transitions when triggered manually (via pager or prev/next); value == time in ms
+	randomizeEffects: 1,  // valid when multiple effects are used; true to make the effect sequence random
+	rev:		   0,	 // causes animations to transition in reverse
+	manualTrump:   true,  // causes manual transition to stop an active transition instead of being ignored
+	requeueOnImageNotLoaded: true, // requeue the slideshow if any image slides are not yet loaded
+	requeueTimeout: 250,  // ms delay for requeue
+	activePagerClass: 'activeSlide', // class name used for the active pager link
+	updateActivePagerLink: null, // callback fn invoked to update the active pager link (adds/removes activePagerClass style)
+	backwards:     false  // true to start slideshow at last slide and move backwards through the stack
+};
+
+})(jQuery);
+
+
+/*!
+ * jQuery Cycle Plugin Transition Definitions
+ * This script is a plugin for the jQuery Cycle Plugin
+ * Examples and documentation at: http://malsup.com/jquery/cycle/
+ * Copyright (c) 2007-2010 M. Alsup
+ * Version:	 2.72
+ * Dual licensed under the MIT and GPL licenses:
+ * http://www.opensource.org/licenses/mit-license.php
+ * http://www.gnu.org/licenses/gpl.html
+ */
+(function($) {
+
+//
+// These functions define one-time slide initialization for the named
+// transitions. To save file size feel free to remove any of these that you
+// don't need.
+//
+$.fn.cycle.transitions.none = function($cont, $slides, opts) {
+	opts.fxFn = function(curr,next,opts,after){
+		$(next).show();
+		$(curr).hide();
+		after();
+	};
+}
+
+// scrollUp/Down/Left/Right
+$.fn.cycle.transitions.scrollUp = function($cont, $slides, opts) {
+	$cont.css('overflow','hidden');
+	opts.before.push($.fn.cycle.commonReset);
+	var h = $cont.height();
+	opts.cssBefore ={ top: h, left: 0 };
+	opts.cssFirst = { top: 0 };
+	opts.animIn	  = { top: 0 };
+	opts.animOut  = { top: -h };
+};
+$.fn.cycle.transitions.scrollDown = function($cont, $slides, opts) {
+	$cont.css('overflow','hidden');
+	opts.before.push($.fn.cycle.commonReset);
+	var h = $cont.height();
+	opts.cssFirst = { top: 0 };
+	opts.cssBefore= { top: -h, left: 0 };
+	opts.animIn	  = { top: 0 };
+	opts.animOut  = { top: h };
+};
+$.fn.cycle.transitions.scrollLeft = function($cont, $slides, opts) {
+	$cont.css('overflow','hidden');
+	opts.before.push($.fn.cycle.commonReset);
+	var w = $cont.width();
+	opts.cssFirst = { left: 0 };
+	opts.cssBefore= { left: w, top: 0 };
+	opts.animIn	  = { left: 0 };
+	opts.animOut  = { left: 0-w };
+};
+$.fn.cycle.transitions.scrollRight = function($cont, $slides, opts) {
+	$cont.css('overflow','hidden');
+	opts.before.push($.fn.cycle.commonReset);
+	var w = $cont.width();
+	opts.cssFirst = { left: 0 };
+	opts.cssBefore= { left: -w, top: 0 };
+	opts.animIn	  = { left: 0 };
+	opts.animOut  = { left: w };
+};
+$.fn.cycle.transitions.scrollHorz = function($cont, $slides, opts) {
+	$cont.css('overflow','hidden').width();
+	opts.before.push(function(curr, next, opts, fwd) {
+		$.fn.cycle.commonReset(curr,next,opts);
+		opts.cssBefore.left = fwd ? (next.cycleW-1) : (1-next.cycleW);
+		opts.animOut.left = fwd ? -curr.cycleW : curr.cycleW;
+	});
+	opts.cssFirst = { left: 0 };
+	opts.cssBefore= { top: 0 };
+	opts.animIn   = { left: 0 };
+	opts.animOut  = { top: 0 };
+};
+$.fn.cycle.transitions.scrollVert = function($cont, $slides, opts) {
+	$cont.css('overflow','hidden');
+	opts.before.push(function(curr, next, opts, fwd) {
+		$.fn.cycle.commonReset(curr,next,opts);
+		opts.cssBefore.top = fwd ? (1-next.cycleH) : (next.cycleH-1);
+		opts.animOut.top = fwd ? curr.cycleH : -curr.cycleH;
+	});
+	opts.cssFirst = { top: 0 };
+	opts.cssBefore= { left: 0 };
+	opts.animIn   = { top: 0 };
+	opts.animOut  = { left: 0 };
+};
+
+// slideX/slideY
+$.fn.cycle.transitions.slideX = function($cont, $slides, opts) {
+	opts.before.push(function(curr, next, opts) {
+		$(opts.elements).not(curr).hide();
+		$.fn.cycle.commonReset(curr,next,opts,false,true);
+		opts.animIn.width = next.cycleW;
+	});
+	opts.cssBefore = { left: 0, top: 0, width: 0 };
+	opts.animIn	 = { width: 'show' };
+	opts.animOut = { width: 0 };
+};
+$.fn.cycle.transitions.slideY = function($cont, $slides, opts) {
+	opts.before.push(function(curr, next, opts) {
+		$(opts.elements).not(curr).hide();
+		$.fn.cycle.commonReset(curr,next,opts,true,false);
+		opts.animIn.height = next.cycleH;
+	});
+	opts.cssBefore = { left: 0, top: 0, height: 0 };
+	opts.animIn	 = { height: 'show' };
+	opts.animOut = { height: 0 };
+};
+
+// shuffle
+$.fn.cycle.transitions.shuffle = function($cont, $slides, opts) {
+	var i, w = $cont.css('overflow', 'visible').width();
+	$slides.css({left: 0, top: 0});
+	opts.before.push(function(curr,next,opts) {
+		$.fn.cycle.commonReset(curr,next,opts,true,true,true);
+	});
+	// only adjust speed once!
+	if (!opts.speedAdjusted) {
+		opts.speed = opts.speed / 2; // shuffle has 2 transitions
+		opts.speedAdjusted = true;
+	}
+	opts.random = 0;
+	opts.shuffle = opts.shuffle || {left:-w, top:15};
+	opts.els = [];
+	for (i=0; i < $slides.length; i++)
+		opts.els.push($slides[i]);
+
+	for (i=0; i < opts.currSlide; i++)
+		opts.els.push(opts.els.shift());
+
+	// custom transition fn (hat tip to Benjamin Sterling for this bit of sweetness!)
+	opts.fxFn = function(curr, next, opts, cb, fwd) {
+		var $el = fwd ? $(curr) : $(next);
+		$(next).css(opts.cssBefore);
+		var count = opts.slideCount;
+		$el.animate(opts.shuffle, opts.speedIn, opts.easeIn, function() {
+			var hops = $.fn.cycle.hopsFromLast(opts, fwd);
+			for (var k=0; k < hops; k++)
+				fwd ? opts.els.push(opts.els.shift()) : opts.els.unshift(opts.els.pop());
+			if (fwd) {
+				for (var i=0, len=opts.els.length; i < len; i++)
+					$(opts.els[i]).css('z-index', len-i+count);
+			}
+			else {
+				var z = $(curr).css('z-index');
+				$el.css('z-index', parseInt(z)+1+count);
+			}
+			$el.animate({left:0, top:0}, opts.speedOut, opts.easeOut, function() {
+				$(fwd ? this : curr).hide();
+				if (cb) cb();
+			});
+		});
+	};
+	opts.cssBefore = { display: 'block', opacity: 1, top: 0, left: 0 };
+};
+
+// turnUp/Down/Left/Right
+$.fn.cycle.transitions.turnUp = function($cont, $slides, opts) {
+	opts.before.push(function(curr, next, opts) {
+		$.fn.cycle.commonReset(curr,next,opts,true,false);
+		opts.cssBefore.top = next.cycleH;
+		opts.animIn.height = next.cycleH;
+	});
+	opts.cssFirst  = { top: 0 };
+	opts.cssBefore = { left: 0, height: 0 };
+	opts.animIn	   = { top: 0 };
+	opts.animOut   = { height: 0 };
+};
+$.fn.cycle.transitions.turnDown = function($cont, $slides, opts) {
+	opts.before.push(function(curr, next, opts) {
+		$.fn.cycle.commonReset(curr,next,opts,true,false);
+		opts.animIn.height = next.cycleH;
+		opts.animOut.top   = curr.cycleH;
+	});
+	opts.cssFirst  = { top: 0 };
+	opts.cssBefore = { left: 0, top: 0, height: 0 };
+	opts.animOut   = { height: 0 };
+};
+$.fn.cycle.transitions.turnLeft = function($cont, $slides, opts) {
+	opts.before.push(function(curr, next, opts) {
+		$.fn.cycle.commonReset(curr,next,opts,false,true);
+		opts.cssBefore.left = next.cycleW;
+		opts.animIn.width = next.cycleW;
+	});
+	opts.cssBefore = { top: 0, width: 0  };
+	opts.animIn	   = { left: 0 };
+	opts.animOut   = { width: 0 };
+};
+$.fn.cycle.transitions.turnRight = function($cont, $slides, opts) {
+	opts.before.push(function(curr, next, opts) {
+		$.fn.cycle.commonReset(curr,next,opts,false,true);
+		opts.animIn.width = next.cycleW;
+		opts.animOut.left = curr.cycleW;
+	});
+	opts.cssBefore = { top: 0, left: 0, width: 0 };
+	opts.animIn	   = { left: 0 };
+	opts.animOut   = { width: 0 };
+};
+
+// zoom
+$.fn.cycle.transitions.zoom = function($cont, $slides, opts) {
+	opts.before.push(function(curr, next, opts) {
+		$.fn.cycle.commonReset(curr,next,opts,false,false,true);
+		opts.cssBefore.top = next.cycleH/2;
+		opts.cssBefore.left = next.cycleW/2;
+		opts.animIn	   = { top: 0, left: 0, width: next.cycleW, height: next.cycleH };
+		opts.animOut   = { width: 0, height: 0, top: curr.cycleH/2, left: curr.cycleW/2 };
+	});
+	opts.cssFirst = { top:0, left: 0 };
+	opts.cssBefore = { width: 0, height: 0 };
+};
+
+// fadeZoom
+$.fn.cycle.transitions.fadeZoom = function($cont, $slides, opts) {
+	opts.before.push(function(curr, next, opts) {
+		$.fn.cycle.commonReset(curr,next,opts,false,false);
+		opts.cssBefore.left = next.cycleW/2;
+		opts.cssBefore.top = next.cycleH/2;
+		opts.animIn	= { top: 0, left: 0, width: next.cycleW, height: next.cycleH };
+	});
+	opts.cssBefore = { width: 0, height: 0 };
+	opts.animOut  = { opacity: 0 };
+};
+
+// blindX
+$.fn.cycle.transitions.blindX = function($cont, $slides, opts) {
+	var w = $cont.css('overflow','hidden').width();
+	opts.before.push(function(curr, next, opts) {
+		$.fn.cycle.commonReset(curr,next,opts);
+		opts.animIn.width = next.cycleW;
+		opts.animOut.left   = curr.cycleW;
+	});
+	opts.cssBefore = { left: w, top: 0 };
+	opts.animIn = { left: 0 };
+	opts.animOut  = { left: w };
+};
+// blindY
+$.fn.cycle.transitions.blindY = function($cont, $slides, opts) {
+	var h = $cont.css('overflow','hidden').height();
+	opts.before.push(function(curr, next, opts) {
+		$.fn.cycle.commonReset(curr,next,opts);
+		opts.animIn.height = next.cycleH;
+		opts.animOut.top   = curr.cycleH;
+	});
+	opts.cssBefore = { top: h, left: 0 };
+	opts.animIn = { top: 0 };
+	opts.animOut  = { top: h };
+};
+// blindZ
+$.fn.cycle.transitions.blindZ = function($cont, $slides, opts) {
+	var h = $cont.css('overflow','hidden').height();
+	var w = $cont.width();
+	opts.before.push(function(curr, next, opts) {
+		$.fn.cycle.commonReset(curr,next,opts);
+		opts.animIn.height = next.cycleH;
+		opts.animOut.top   = curr.cycleH;
+	});
+	opts.cssBefore = { top: h, left: w };
+	opts.animIn = { top: 0, left: 0 };
+	opts.animOut  = { top: h, left: w };
+};
+
+// growX - grow horizontally from centered 0 width
+$.fn.cycle.transitions.growX = function($cont, $slides, opts) {
+	opts.before.push(function(curr, next, opts) {
+		$.fn.cycle.commonReset(curr,next,opts,false,true);
+		opts.cssBefore.left = this.cycleW/2;
+		opts.animIn = { left: 0, width: this.cycleW };
+		opts.animOut = { left: 0 };
+	});
+	opts.cssBefore = { width: 0, top: 0 };
+};
+// growY - grow vertically from centered 0 height
+$.fn.cycle.transitions.growY = function($cont, $slides, opts) {
+	opts.before.push(function(curr, next, opts) {
+		$.fn.cycle.commonReset(curr,next,opts,true,false);
+		opts.cssBefore.top = this.cycleH/2;
+		opts.animIn = { top: 0, height: this.cycleH };
+		opts.animOut = { top: 0 };
+	});
+	opts.cssBefore = { height: 0, left: 0 };
+};
+
+// curtainX - squeeze in both edges horizontally
+$.fn.cycle.transitions.curtainX = function($cont, $slides, opts) {
+	opts.before.push(function(curr, next, opts) {
+		$.fn.cycle.commonReset(curr,next,opts,false,true,true);
+		opts.cssBefore.left = next.cycleW/2;
+		opts.animIn = { left: 0, width: this.cycleW };
+		opts.animOut = { left: curr.cycleW/2, width: 0 };
+	});
+	opts.cssBefore = { top: 0, width: 0 };
+};
+// curtainY - squeeze in both edges vertically
+$.fn.cycle.transitions.curtainY = function($cont, $slides, opts) {
+	opts.before.push(function(curr, next, opts) {
+		$.fn.cycle.commonReset(curr,next,opts,true,false,true);
+		opts.cssBefore.top = next.cycleH/2;
+		opts.animIn = { top: 0, height: next.cycleH };
+		opts.animOut = { top: curr.cycleH/2, height: 0 };
+	});
+	opts.cssBefore = { left: 0, height: 0 };
+};
+
+// cover - curr slide covered by next slide
+$.fn.cycle.transitions.cover = function($cont, $slides, opts) {
+	var d = opts.direction || 'left';
+	var w = $cont.css('overflow','hidden').width();
+	var h = $cont.height();
+	opts.before.push(function(curr, next, opts) {
+		$.fn.cycle.commonReset(curr,next,opts);
+		if (d == 'right')
+			opts.cssBefore.left = -w;
+		else if (d == 'up')
+			opts.cssBefore.top = h;
+		else if (d == 'down')
+			opts.cssBefore.top = -h;
+		else
+			opts.cssBefore.left = w;
+	});
+	opts.animIn = { left: 0, top: 0};
+	opts.animOut = { opacity: 1 };
+	opts.cssBefore = { top: 0, left: 0 };
+};
+
+// uncover - curr slide moves off next slide
+$.fn.cycle.transitions.uncover = function($cont, $slides, opts) {
+	var d = opts.direction || 'left';
+	var w = $cont.css('overflow','hidden').width();
+	var h = $cont.height();
+	opts.before.push(function(curr, next, opts) {
+		$.fn.cycle.commonReset(curr,next,opts,true,true,true);
+		if (d == 'right')
+			opts.animOut.left = w;
+		else if (d == 'up')
+			opts.animOut.top = -h;
+		else if (d == 'down')
+			opts.animOut.top = h;
+		else
+			opts.animOut.left = -w;
+	});
+	opts.animIn = { left: 0, top: 0 };
+	opts.animOut = { opacity: 1 };
+	opts.cssBefore = { top: 0, left: 0 };
+};
+
+// toss - move top slide and fade away
+$.fn.cycle.transitions.toss = function($cont, $slides, opts) {
+	var w = $cont.css('overflow','visible').width();
+	var h = $cont.height();
+	opts.before.push(function(curr, next, opts) {
+		$.fn.cycle.commonReset(curr,next,opts,true,true,true);
+		// provide default toss settings if animOut not provided
+		if (!opts.animOut.left && !opts.animOut.top)
+			opts.animOut = { left: w*2, top: -h/2, opacity: 0 };
+		else
+			opts.animOut.opacity = 0;
+	});
+	opts.cssBefore = { left: 0, top: 0 };
+	opts.animIn = { left: 0 };
+};
+
+// wipe - clip animation
+$.fn.cycle.transitions.wipe = function($cont, $slides, opts) {
+	var w = $cont.css('overflow','hidden').width();
+	var h = $cont.height();
+	opts.cssBefore = opts.cssBefore || {};
+	var clip;
+	if (opts.clip) {
+		if (/l2r/.test(opts.clip))
+			clip = 'rect(0px 0px '+h+'px 0px)';
+		else if (/r2l/.test(opts.clip))
+			clip = 'rect(0px '+w+'px '+h+'px '+w+'px)';
+		else if (/t2b/.test(opts.clip))
+			clip = 'rect(0px '+w+'px 0px 0px)';
+		else if (/b2t/.test(opts.clip))
+			clip = 'rect('+h+'px '+w+'px '+h+'px 0px)';
+		else if (/zoom/.test(opts.clip)) {
+			var top = parseInt(h/2);
+			var left = parseInt(w/2);
+			clip = 'rect('+top+'px '+left+'px '+top+'px '+left+'px)';
+		}
+	}
+
+	opts.cssBefore.clip = opts.cssBefore.clip || clip || 'rect(0px 0px 0px 0px)';
+
+	var d = opts.cssBefore.clip.match(/(\d+)/g);
+	var t = parseInt(d[0]), r = parseInt(d[1]), b = parseInt(d[2]), l = parseInt(d[3]);
+
+	opts.before.push(function(curr, next, opts) {
+		if (curr == next) return;
+		var $curr = $(curr), $next = $(next);
+		$.fn.cycle.commonReset(curr,next,opts,true,true,false);
+		opts.cssAfter.display = 'block';
+
+		var step = 1, count = parseInt((opts.speedIn / 13)) - 1;
+		(function f() {
+			var tt = t ? t - parseInt(step * (t/count)) : 0;
+			var ll = l ? l - parseInt(step * (l/count)) : 0;
+			var bb = b < h ? b + parseInt(step * ((h-b)/count || 1)) : h;
+			var rr = r < w ? r + parseInt(step * ((w-r)/count || 1)) : w;
+			$next.css({ clip: 'rect('+tt+'px '+rr+'px '+bb+'px '+ll+'px)' });
+			(step++ <= count) ? setTimeout(f, 13) : $curr.css('display', 'none');
+		})();
+	});
+	opts.cssBefore = { display: 'block', opacity: 1, top: 0, left: 0 };
+	opts.animIn	   = { left: 0 };
+	opts.animOut   = { left: 0 };
+};
+
+})(jQuery);
diff --git a/wp-content/plugins/nextgen-gallery/js/jquery.cycle.all.min.js b/wp-content/plugins/nextgen-gallery/js/jquery.cycle.all.min.js
new file mode 100644
index 000000000..7fdb17abf
--- /dev/null
+++ b/wp-content/plugins/nextgen-gallery/js/jquery.cycle.all.min.js
@@ -0,0 +1,21 @@
+/*
+ * jQuery Cycle Plugin (with Transition Definitions)
+ * Examples and documentation at: http://jquery.malsup.com/cycle/
+ * Copyright (c) 2007-2010 M. Alsup
+ * Version: 2.88 (08-JUN-2010)
+ * Dual licensed under the MIT and GPL licenses.
+ * http://jquery.malsup.com/license.html
+ * Requires: jQuery v1.2.6 or later
+ */
+(function($){var ver="2.88";if($.support==undefined){$.support={opacity:!($.browser.msie)};}function debug(s){if($.fn.cycle.debug){log(s);}}function log(){if(window.console&&window.console.log){window.console.log("[cycle] "+Array.prototype.join.call(arguments," "));}}$.fn.cycle=function(options,arg2){var o={s:this.selector,c:this.context};if(this.length===0&&options!="stop"){if(!$.isReady&&o.s){log("DOM not ready, queuing slideshow");$(function(){$(o.s,o.c).cycle(options,arg2);});return this;}log("terminating; zero elements found by selector"+($.isReady?"":" (DOM not ready)"));return this;}return this.each(function(){var opts=handleArguments(this,options,arg2);if(opts===false){return;}opts.updateActivePagerLink=opts.updateActivePagerLink||$.fn.cycle.updateActivePagerLink;if(this.cycleTimeout){clearTimeout(this.cycleTimeout);}this.cycleTimeout=this.cyclePause=0;var $cont=$(this);var $slides=opts.slideExpr?$(opts.slideExpr,this):$cont.children();var els=$slides.get();if(els.length<2){log("terminating; too few slides: "+els.length);return;}var opts2=buildOptions($cont,$slides,els,opts,o);if(opts2===false){return;}var startTime=opts2.continuous?10:getTimeout(els[opts2.currSlide],els[opts2.nextSlide],opts2,!opts2.rev);if(startTime){startTime+=(opts2.delay||0);if(startTime<10){startTime=10;}debug("first timeout: "+startTime);this.cycleTimeout=setTimeout(function(){go(els,opts2,0,(!opts2.rev&&!opts.backwards));},startTime);}});};function handleArguments(cont,options,arg2){if(cont.cycleStop==undefined){cont.cycleStop=0;}if(options===undefined||options===null){options={};}if(options.constructor==String){switch(options){case"destroy":case"stop":var opts=$(cont).data("cycle.opts");if(!opts){return false;}cont.cycleStop++;if(cont.cycleTimeout){clearTimeout(cont.cycleTimeout);}cont.cycleTimeout=0;$(cont).removeData("cycle.opts");if(options=="destroy"){destroy(opts);}return false;case"toggle":cont.cyclePause=(cont.cyclePause===1)?0:1;checkInstantResume(cont.cyclePause,arg2,cont);return false;case"pause":cont.cyclePause=1;return false;case"resume":cont.cyclePause=0;checkInstantResume(false,arg2,cont);return false;case"prev":case"next":var opts=$(cont).data("cycle.opts");if(!opts){log('options not found, "prev/next" ignored');return false;}$.fn.cycle[options](opts);return false;default:options={fx:options};}return options;}else{if(options.constructor==Number){var num=options;options=$(cont).data("cycle.opts");if(!options){log("options not found, can not advance slide");return false;}if(num<0||num>=options.elements.length){log("invalid slide index: "+num);return false;}options.nextSlide=num;if(cont.cycleTimeout){clearTimeout(cont.cycleTimeout);cont.cycleTimeout=0;}if(typeof arg2=="string"){options.oneTimeFx=arg2;}go(options.elements,options,1,num>=options.currSlide);return false;}}return options;function checkInstantResume(isPaused,arg2,cont){if(!isPaused&&arg2===true){var options=$(cont).data("cycle.opts");if(!options){log("options not found, can not resume");return false;}if(cont.cycleTimeout){clearTimeout(cont.cycleTimeout);cont.cycleTimeout=0;}go(options.elements,options,1,(!opts.rev&&!opts.backwards));}}}function removeFilter(el,opts){if(!$.support.opacity&&opts.cleartype&&el.style.filter){try{el.style.removeAttribute("filter");}catch(smother){}}}function destroy(opts){if(opts.next){$(opts.next).unbind(opts.prevNextEvent);}if(opts.prev){$(opts.prev).unbind(opts.prevNextEvent);}if(opts.pager||opts.pagerAnchorBuilder){$.each(opts.pagerAnchors||[],function(){this.unbind().remove();});}opts.pagerAnchors=null;if(opts.destroy){opts.destroy(opts);}}function buildOptions($cont,$slides,els,options,o){var opts=$.extend({},$.fn.cycle.defaults,options||{},$.metadata?$cont.metadata():$.meta?$cont.data():{});if(opts.autostop){opts.countdown=opts.autostopCount||els.length;}var cont=$cont[0];$cont.data("cycle.opts",opts);opts.$cont=$cont;opts.stopCount=cont.cycleStop;opts.elements=els;opts.before=opts.before?[opts.before]:[];opts.after=opts.after?[opts.after]:[];opts.after.unshift(function(){opts.busy=0;});if(!$.support.opacity&&opts.cleartype){opts.after.push(function(){removeFilter(this,opts);});}if(opts.continuous){opts.after.push(function(){go(els,opts,0,(!opts.rev&&!opts.backwards));});}saveOriginalOpts(opts);if(!$.support.opacity&&opts.cleartype&&!opts.cleartypeNoBg){clearTypeFix($slides);}if($cont.css("position")=="static"){$cont.css("position","relative");}if(opts.width){$cont.width(opts.width);}if(opts.height&&opts.height!="auto"){$cont.height(opts.height);}if(opts.startingSlide){opts.startingSlide=parseInt(opts.startingSlide);}else{if(opts.backwards){opts.startingSlide=els.length-1;}}if(opts.random){opts.randomMap=[];for(var i=0;i<els.length;i++){opts.randomMap.push(i);}opts.randomMap.sort(function(a,b){return Math.random()-0.5;});opts.randomIndex=1;opts.startingSlide=opts.randomMap[1];}else{if(opts.startingSlide>=els.length){opts.startingSlide=0;}}opts.currSlide=opts.startingSlide||0;var first=opts.startingSlide;$slides.css({position:"absolute",top:0,left:0}).hide().each(function(i){var z;if(opts.backwards){z=first?i<=first?els.length+(i-first):first-i:els.length-i;}else{z=first?i>=first?els.length-(i-first):first-i:els.length-i;}$(this).css("z-index",z);});$(els[first]).css("opacity",1).show();removeFilter(els[first],opts);if(opts.fit&&opts.width){$slides.width(opts.width);}if(opts.fit&&opts.height&&opts.height!="auto"){$slides.height(opts.height);}var reshape=opts.containerResize&&!$cont.innerHeight();if(reshape){var maxw=0,maxh=0;for(var j=0;j<els.length;j++){var $e=$(els[j]),e=$e[0],w=$e.outerWidth(),h=$e.outerHeight();if(!w){w=e.offsetWidth||e.width||$e.attr("width");}if(!h){h=e.offsetHeight||e.height||$e.attr("height");}maxw=w>maxw?w:maxw;maxh=h>maxh?h:maxh;}if(maxw>0&&maxh>0){$cont.css({width:maxw+"px",height:maxh+"px"});}}if(opts.pause){$cont.hover(function(){this.cyclePause++;},function(){this.cyclePause--;});}if(supportMultiTransitions(opts)===false){return false;}var requeue=false;options.requeueAttempts=options.requeueAttempts||0;$slides.each(function(){var $el=$(this);this.cycleH=(opts.fit&&opts.height)?opts.height:($el.height()||this.offsetHeight||this.height||$el.attr("height")||0);this.cycleW=(opts.fit&&opts.width)?opts.width:($el.width()||this.offsetWidth||this.width||$el.attr("width")||0);if($el.is("img")){var loadingIE=($.browser.msie&&this.cycleW==28&&this.cycleH==30&&!this.complete);var loadingFF=($.browser.mozilla&&this.cycleW==34&&this.cycleH==19&&!this.complete);var loadingOp=($.browser.opera&&((this.cycleW==42&&this.cycleH==19)||(this.cycleW==37&&this.cycleH==17))&&!this.complete);var loadingOther=(this.cycleH==0&&this.cycleW==0&&!this.complete);if(loadingIE||loadingFF||loadingOp||loadingOther){if(o.s&&opts.requeueOnImageNotLoaded&&++options.requeueAttempts<100){log(options.requeueAttempts," - img slide not loaded, requeuing slideshow: ",this.src,this.cycleW,this.cycleH);setTimeout(function(){$(o.s,o.c).cycle(options);},opts.requeueTimeout);requeue=true;return false;}else{log("could not determine size of image: "+this.src,this.cycleW,this.cycleH);}}}return true;});if(requeue){return false;}opts.cssBefore=opts.cssBefore||{};opts.animIn=opts.animIn||{};opts.animOut=opts.animOut||{};$slides.not(":eq("+first+")").css(opts.cssBefore);if(opts.cssFirst){$($slides[first]).css(opts.cssFirst);}if(opts.timeout){opts.timeout=parseInt(opts.timeout);if(opts.speed.constructor==String){opts.speed=$.fx.speeds[opts.speed]||parseInt(opts.speed);}if(!opts.sync){opts.speed=opts.speed/2;}var buffer=opts.fx=="shuffle"?500:250;while((opts.timeout-opts.speed)<buffer){opts.timeout+=opts.speed;}}if(opts.easing){opts.easeIn=opts.easeOut=opts.easing;}if(!opts.speedIn){opts.speedIn=opts.speed;}if(!opts.speedOut){opts.speedOut=opts.speed;}opts.slideCount=els.length;opts.currSlide=opts.lastSlide=first;if(opts.random){if(++opts.randomIndex==els.length){opts.randomIndex=0;}opts.nextSlide=opts.randomMap[opts.randomIndex];}else{if(opts.backwards){opts.nextSlide=opts.startingSlide==0?(els.length-1):opts.startingSlide-1;}else{opts.nextSlide=opts.startingSlide>=(els.length-1)?0:opts.startingSlide+1;}}if(!opts.multiFx){var init=$.fn.cycle.transitions[opts.fx];if($.isFunction(init)){init($cont,$slides,opts);}else{if(opts.fx!="custom"&&!opts.multiFx){log("unknown transition: "+opts.fx,"; slideshow terminating");return false;}}}var e0=$slides[first];if(opts.before.length){opts.before[0].apply(e0,[e0,e0,opts,true]);}if(opts.after.length>1){opts.after[1].apply(e0,[e0,e0,opts,true]);}if(opts.next){$(opts.next).bind(opts.prevNextEvent,function(){return advance(opts,opts.rev?-1:1);});}if(opts.prev){$(opts.prev).bind(opts.prevNextEvent,function(){return advance(opts,opts.rev?1:-1);});}if(opts.pager||opts.pagerAnchorBuilder){buildPager(els,opts);}exposeAddSlide(opts,els);return opts;}function saveOriginalOpts(opts){opts.original={before:[],after:[]};opts.original.cssBefore=$.extend({},opts.cssBefore);opts.original.cssAfter=$.extend({},opts.cssAfter);opts.original.animIn=$.extend({},opts.animIn);opts.original.animOut=$.extend({},opts.animOut);$.each(opts.before,function(){opts.original.before.push(this);});$.each(opts.after,function(){opts.original.after.push(this);});}function supportMultiTransitions(opts){var i,tx,txs=$.fn.cycle.transitions;if(opts.fx.indexOf(",")>0){opts.multiFx=true;opts.fxs=opts.fx.replace(/\s*/g,"").split(",");for(i=0;i<opts.fxs.length;i++){var fx=opts.fxs[i];tx=txs[fx];if(!tx||!txs.hasOwnProperty(fx)||!$.isFunction(tx)){log("discarding unknown transition: ",fx);opts.fxs.splice(i,1);i--;}}if(!opts.fxs.length){log("No valid transitions named; slideshow terminating.");return false;}}else{if(opts.fx=="all"){opts.multiFx=true;opts.fxs=[];for(p in txs){tx=txs[p];if(txs.hasOwnProperty(p)&&$.isFunction(tx)){opts.fxs.push(p);}}}}if(opts.multiFx&&opts.randomizeEffects){var r1=Math.floor(Math.random()*20)+30;for(i=0;i<r1;i++){var r2=Math.floor(Math.random()*opts.fxs.length);opts.fxs.push(opts.fxs.splice(r2,1)[0]);}debug("randomized fx sequence: ",opts.fxs);}return true;}function exposeAddSlide(opts,els){opts.addSlide=function(newSlide,prepend){var $s=$(newSlide),s=$s[0];if(!opts.autostopCount){opts.countdown++;}els[prepend?"unshift":"push"](s);if(opts.els){opts.els[prepend?"unshift":"push"](s);}opts.slideCount=els.length;$s.css("position","absolute");$s[prepend?"prependTo":"appendTo"](opts.$cont);if(prepend){opts.currSlide++;opts.nextSlide++;}if(!$.support.opacity&&opts.cleartype&&!opts.cleartypeNoBg){clearTypeFix($s);}if(opts.fit&&opts.width){$s.width(opts.width);}if(opts.fit&&opts.height&&opts.height!="auto"){$slides.height(opts.height);}s.cycleH=(opts.fit&&opts.height)?opts.height:$s.height();s.cycleW=(opts.fit&&opts.width)?opts.width:$s.width();$s.css(opts.cssBefore);if(opts.pager||opts.pagerAnchorBuilder){$.fn.cycle.createPagerAnchor(els.length-1,s,$(opts.pager),els,opts);}if($.isFunction(opts.onAddSlide)){opts.onAddSlide($s);}else{$s.hide();}};}$.fn.cycle.resetState=function(opts,fx){fx=fx||opts.fx;opts.before=[];opts.after=[];opts.cssBefore=$.extend({},opts.original.cssBefore);opts.cssAfter=$.extend({},opts.original.cssAfter);opts.animIn=$.extend({},opts.original.animIn);opts.animOut=$.extend({},opts.original.animOut);opts.fxFn=null;$.each(opts.original.before,function(){opts.before.push(this);});$.each(opts.original.after,function(){opts.after.push(this);});var init=$.fn.cycle.transitions[fx];if($.isFunction(init)){init(opts.$cont,$(opts.elements),opts);}};function go(els,opts,manual,fwd){if(manual&&opts.busy&&opts.manualTrump){debug("manualTrump in go(), stopping active transition");$(els).stop(true,true);opts.busy=false;}if(opts.busy){debug("transition active, ignoring new tx request");return;}var p=opts.$cont[0],curr=els[opts.currSlide],next=els[opts.nextSlide];if(p.cycleStop!=opts.stopCount||p.cycleTimeout===0&&!manual){return;}if(!manual&&!p.cyclePause&&!opts.bounce&&((opts.autostop&&(--opts.countdown<=0))||(opts.nowrap&&!opts.random&&opts.nextSlide<opts.currSlide))){if(opts.end){opts.end(opts);}return;}var changed=false;if((manual||!p.cyclePause)&&(opts.nextSlide!=opts.currSlide)){changed=true;var fx=opts.fx;curr.cycleH=curr.cycleH||$(curr).height();curr.cycleW=curr.cycleW||$(curr).width();next.cycleH=next.cycleH||$(next).height();next.cycleW=next.cycleW||$(next).width();if(opts.multiFx){if(opts.lastFx==undefined||++opts.lastFx>=opts.fxs.length){opts.lastFx=0;}fx=opts.fxs[opts.lastFx];opts.currFx=fx;}if(opts.oneTimeFx){fx=opts.oneTimeFx;opts.oneTimeFx=null;}$.fn.cycle.resetState(opts,fx);if(opts.before.length){$.each(opts.before,function(i,o){if(p.cycleStop!=opts.stopCount){return;}o.apply(next,[curr,next,opts,fwd]);});}var after=function(){$.each(opts.after,function(i,o){if(p.cycleStop!=opts.stopCount){return;}o.apply(next,[curr,next,opts,fwd]);});};debug("tx firing; currSlide: "+opts.currSlide+"; nextSlide: "+opts.nextSlide);opts.busy=1;if(opts.fxFn){opts.fxFn(curr,next,opts,after,fwd,manual&&opts.fastOnEvent);}else{if($.isFunction($.fn.cycle[opts.fx])){$.fn.cycle[opts.fx](curr,next,opts,after,fwd,manual&&opts.fastOnEvent);}else{$.fn.cycle.custom(curr,next,opts,after,fwd,manual&&opts.fastOnEvent);}}}if(changed||opts.nextSlide==opts.currSlide){opts.lastSlide=opts.currSlide;if(opts.random){opts.currSlide=opts.nextSlide;if(++opts.randomIndex==els.length){opts.randomIndex=0;}opts.nextSlide=opts.randomMap[opts.randomIndex];if(opts.nextSlide==opts.currSlide){opts.nextSlide=(opts.currSlide==opts.slideCount-1)?0:opts.currSlide+1;}}else{if(opts.backwards){var roll=(opts.nextSlide-1)<0;if(roll&&opts.bounce){opts.backwards=!opts.backwards;opts.nextSlide=1;opts.currSlide=0;}else{opts.nextSlide=roll?(els.length-1):opts.nextSlide-1;opts.currSlide=roll?0:opts.nextSlide+1;}}else{var roll=(opts.nextSlide+1)==els.length;if(roll&&opts.bounce){opts.backwards=!opts.backwards;opts.nextSlide=els.length-2;opts.currSlide=els.length-1;}else{opts.nextSlide=roll?0:opts.nextSlide+1;opts.currSlide=roll?els.length-1:opts.nextSlide-1;}}}}if(changed&&opts.pager){opts.updateActivePagerLink(opts.pager,opts.currSlide,opts.activePagerClass);}var ms=0;if(opts.timeout&&!opts.continuous){ms=getTimeout(els[opts.currSlide],els[opts.nextSlide],opts,fwd);}else{if(opts.continuous&&p.cyclePause){ms=10;}}if(ms>0){p.cycleTimeout=setTimeout(function(){go(els,opts,0,(!opts.rev&&!opts.backwards));},ms);}}$.fn.cycle.updateActivePagerLink=function(pager,currSlide,clsName){$(pager).each(function(){$(this).children().removeClass(clsName).eq(currSlide).addClass(clsName);});};function getTimeout(curr,next,opts,fwd){if(opts.timeoutFn){var t=opts.timeoutFn.call(curr,curr,next,opts,fwd);while((t-opts.speed)<250){t+=opts.speed;}debug("calculated timeout: "+t+"; speed: "+opts.speed);if(t!==false){return t;}}return opts.timeout;}$.fn.cycle.next=function(opts){advance(opts,opts.rev?-1:1);};$.fn.cycle.prev=function(opts){advance(opts,opts.rev?1:-1);};function advance(opts,val){var els=opts.elements;var p=opts.$cont[0],timeout=p.cycleTimeout;if(timeout){clearTimeout(timeout);p.cycleTimeout=0;}if(opts.random&&val<0){opts.randomIndex--;if(--opts.randomIndex==-2){opts.randomIndex=els.length-2;}else{if(opts.randomIndex==-1){opts.randomIndex=els.length-1;}}opts.nextSlide=opts.randomMap[opts.randomIndex];}else{if(opts.random){opts.nextSlide=opts.randomMap[opts.randomIndex];}else{opts.nextSlide=opts.currSlide+val;if(opts.nextSlide<0){if(opts.nowrap){return false;}opts.nextSlide=els.length-1;}else{if(opts.nextSlide>=els.length){if(opts.nowrap){return false;}opts.nextSlide=0;}}}}var cb=opts.onPrevNextEvent||opts.prevNextClick;if($.isFunction(cb)){cb(val>0,opts.nextSlide,els[opts.nextSlide]);}go(els,opts,1,val>=0);return false;}function buildPager(els,opts){var $p=$(opts.pager);$.each(els,function(i,o){$.fn.cycle.createPagerAnchor(i,o,$p,els,opts);});opts.updateActivePagerLink(opts.pager,opts.startingSlide,opts.activePagerClass);}$.fn.cycle.createPagerAnchor=function(i,el,$p,els,opts){var a;if($.isFunction(opts.pagerAnchorBuilder)){a=opts.pagerAnchorBuilder(i,el);debug("pagerAnchorBuilder("+i+", el) returned: "+a);}else{a='<a href="#">'+(i+1)+"</a>";}if(!a){return;}var $a=$(a);if($a.parents("body").length===0){var arr=[];if($p.length>1){$p.each(function(){var $clone=$a.clone(true);$(this).append($clone);arr.push($clone[0]);});$a=$(arr);}else{$a.appendTo($p);}}opts.pagerAnchors=opts.pagerAnchors||[];opts.pagerAnchors.push($a);$a.bind(opts.pagerEvent,function(e){e.preventDefault();opts.nextSlide=i;var p=opts.$cont[0],timeout=p.cycleTimeout;if(timeout){clearTimeout(timeout);p.cycleTimeout=0;}var cb=opts.onPagerEvent||opts.pagerClick;if($.isFunction(cb)){cb(opts.nextSlide,els[opts.nextSlide]);}go(els,opts,1,opts.currSlide<i);});if(!/^click/.test(opts.pagerEvent)&&!opts.allowPagerClickBubble){$a.bind("click.cycle",function(){return false;});}if(opts.pauseOnPagerHover){$a.hover(function(){opts.$cont[0].cyclePause++;},function(){opts.$cont[0].cyclePause--;});}};$.fn.cycle.hopsFromLast=function(opts,fwd){var hops,l=opts.lastSlide,c=opts.currSlide;if(fwd){hops=c>l?c-l:opts.slideCount-l;}else{hops=c<l?l-c:l+opts.slideCount-c;}return hops;};function clearTypeFix($slides){debug("applying clearType background-color hack");function hex(s){s=parseInt(s).toString(16);return s.length<2?"0"+s:s;}function getBg(e){for(;e&&e.nodeName.toLowerCase()!="html";e=e.parentNode){var v=$.css(e,"background-color");if(v.indexOf("rgb")>=0){var rgb=v.match(/\d+/g);return"#"+hex(rgb[0])+hex(rgb[1])+hex(rgb[2]);}if(v&&v!="transparent"){return v;}}return"#ffffff";}$slides.each(function(){$(this).css("background-color",getBg(this));});}$.fn.cycle.commonReset=function(curr,next,opts,w,h,rev){$(opts.elements).not(curr).hide();opts.cssBefore.opacity=1;opts.cssBefore.display="block";if(w!==false&&next.cycleW>0){opts.cssBefore.width=next.cycleW;}if(h!==false&&next.cycleH>0){opts.cssBefore.height=next.cycleH;}opts.cssAfter=opts.cssAfter||{};opts.cssAfter.display="none";$(curr).css("zIndex",opts.slideCount+(rev===true?1:0));$(next).css("zIndex",opts.slideCount+(rev===true?0:1));};$.fn.cycle.custom=function(curr,next,opts,cb,fwd,speedOverride){var $l=$(curr),$n=$(next);var speedIn=opts.speedIn,speedOut=opts.speedOut,easeIn=opts.easeIn,easeOut=opts.easeOut;$n.css(opts.cssBefore);if(speedOverride){if(typeof speedOverride=="number"){speedIn=speedOut=speedOverride;}else{speedIn=speedOut=1;}easeIn=easeOut=null;}var fn=function(){$n.animate(opts.animIn,speedIn,easeIn,cb);};$l.animate(opts.animOut,speedOut,easeOut,function(){if(opts.cssAfter){$l.css(opts.cssAfter);}if(!opts.sync){fn();}});if(opts.sync){fn();}};$.fn.cycle.transitions={fade:function($cont,$slides,opts){$slides.not(":eq("+opts.currSlide+")").css("opacity",0);opts.before.push(function(curr,next,opts){$.fn.cycle.commonReset(curr,next,opts);opts.cssBefore.opacity=0;});opts.animIn={opacity:1};opts.animOut={opacity:0};opts.cssBefore={top:0,left:0};}};$.fn.cycle.ver=function(){return ver;};$.fn.cycle.defaults={fx:"fade",timeout:4000,timeoutFn:null,continuous:0,speed:1000,speedIn:null,speedOut:null,next:null,prev:null,onPrevNextEvent:null,prevNextEvent:"click.cycle",pager:null,onPagerEvent:null,pagerEvent:"click.cycle",allowPagerClickBubble:false,pagerAnchorBuilder:null,before:null,after:null,end:null,easing:null,easeIn:null,easeOut:null,shuffle:null,animIn:null,animOut:null,cssBefore:null,cssAfter:null,fxFn:null,height:"auto",startingSlide:0,sync:1,random:0,fit:0,containerResize:1,pause:0,pauseOnPagerHover:0,autostop:0,autostopCount:0,delay:0,slideExpr:null,cleartype:!$.support.opacity,cleartypeNoBg:false,nowrap:0,fastOnEvent:0,randomizeEffects:1,rev:0,manualTrump:true,requeueOnImageNotLoaded:true,requeueTimeout:250,activePagerClass:"activeSlide",updateActivePagerLink:null,backwards:false};})(jQuery);
+/*
+ * jQuery Cycle Plugin Transition Definitions
+ * This script is a plugin for the jQuery Cycle Plugin
+ * Examples and documentation at: http://malsup.com/jquery/cycle/
+ * Copyright (c) 2007-2010 M. Alsup
+ * Version:	 2.72
+ * Dual licensed under the MIT and GPL licenses:
+ * http://www.opensource.org/licenses/mit-license.php
+ * http://www.gnu.org/licenses/gpl.html
+ */
+(function($){$.fn.cycle.transitions.none=function($cont,$slides,opts){opts.fxFn=function(curr,next,opts,after){$(next).show();$(curr).hide();after();};};$.fn.cycle.transitions.scrollUp=function($cont,$slides,opts){$cont.css("overflow","hidden");opts.before.push($.fn.cycle.commonReset);var h=$cont.height();opts.cssBefore={top:h,left:0};opts.cssFirst={top:0};opts.animIn={top:0};opts.animOut={top:-h};};$.fn.cycle.transitions.scrollDown=function($cont,$slides,opts){$cont.css("overflow","hidden");opts.before.push($.fn.cycle.commonReset);var h=$cont.height();opts.cssFirst={top:0};opts.cssBefore={top:-h,left:0};opts.animIn={top:0};opts.animOut={top:h};};$.fn.cycle.transitions.scrollLeft=function($cont,$slides,opts){$cont.css("overflow","hidden");opts.before.push($.fn.cycle.commonReset);var w=$cont.width();opts.cssFirst={left:0};opts.cssBefore={left:w,top:0};opts.animIn={left:0};opts.animOut={left:0-w};};$.fn.cycle.transitions.scrollRight=function($cont,$slides,opts){$cont.css("overflow","hidden");opts.before.push($.fn.cycle.commonReset);var w=$cont.width();opts.cssFirst={left:0};opts.cssBefore={left:-w,top:0};opts.animIn={left:0};opts.animOut={left:w};};$.fn.cycle.transitions.scrollHorz=function($cont,$slides,opts){$cont.css("overflow","hidden").width();opts.before.push(function(curr,next,opts,fwd){$.fn.cycle.commonReset(curr,next,opts);opts.cssBefore.left=fwd?(next.cycleW-1):(1-next.cycleW);opts.animOut.left=fwd?-curr.cycleW:curr.cycleW;});opts.cssFirst={left:0};opts.cssBefore={top:0};opts.animIn={left:0};opts.animOut={top:0};};$.fn.cycle.transitions.scrollVert=function($cont,$slides,opts){$cont.css("overflow","hidden");opts.before.push(function(curr,next,opts,fwd){$.fn.cycle.commonReset(curr,next,opts);opts.cssBefore.top=fwd?(1-next.cycleH):(next.cycleH-1);opts.animOut.top=fwd?curr.cycleH:-curr.cycleH;});opts.cssFirst={top:0};opts.cssBefore={left:0};opts.animIn={top:0};opts.animOut={left:0};};$.fn.cycle.transitions.slideX=function($cont,$slides,opts){opts.before.push(function(curr,next,opts){$(opts.elements).not(curr).hide();$.fn.cycle.commonReset(curr,next,opts,false,true);opts.animIn.width=next.cycleW;});opts.cssBefore={left:0,top:0,width:0};opts.animIn={width:"show"};opts.animOut={width:0};};$.fn.cycle.transitions.slideY=function($cont,$slides,opts){opts.before.push(function(curr,next,opts){$(opts.elements).not(curr).hide();$.fn.cycle.commonReset(curr,next,opts,true,false);opts.animIn.height=next.cycleH;});opts.cssBefore={left:0,top:0,height:0};opts.animIn={height:"show"};opts.animOut={height:0};};$.fn.cycle.transitions.shuffle=function($cont,$slides,opts){var i,w=$cont.css("overflow","visible").width();$slides.css({left:0,top:0});opts.before.push(function(curr,next,opts){$.fn.cycle.commonReset(curr,next,opts,true,true,true);});if(!opts.speedAdjusted){opts.speed=opts.speed/2;opts.speedAdjusted=true;}opts.random=0;opts.shuffle=opts.shuffle||{left:-w,top:15};opts.els=[];for(i=0;i<$slides.length;i++){opts.els.push($slides[i]);}for(i=0;i<opts.currSlide;i++){opts.els.push(opts.els.shift());}opts.fxFn=function(curr,next,opts,cb,fwd){var $el=fwd?$(curr):$(next);$(next).css(opts.cssBefore);var count=opts.slideCount;$el.animate(opts.shuffle,opts.speedIn,opts.easeIn,function(){var hops=$.fn.cycle.hopsFromLast(opts,fwd);for(var k=0;k<hops;k++){fwd?opts.els.push(opts.els.shift()):opts.els.unshift(opts.els.pop());}if(fwd){for(var i=0,len=opts.els.length;i<len;i++){$(opts.els[i]).css("z-index",len-i+count);}}else{var z=$(curr).css("z-index");$el.css("z-index",parseInt(z)+1+count);}$el.animate({left:0,top:0},opts.speedOut,opts.easeOut,function(){$(fwd?this:curr).hide();if(cb){cb();}});});};opts.cssBefore={display:"block",opacity:1,top:0,left:0};};$.fn.cycle.transitions.turnUp=function($cont,$slides,opts){opts.before.push(function(curr,next,opts){$.fn.cycle.commonReset(curr,next,opts,true,false);opts.cssBefore.top=next.cycleH;opts.animIn.height=next.cycleH;});opts.cssFirst={top:0};opts.cssBefore={left:0,height:0};opts.animIn={top:0};opts.animOut={height:0};};$.fn.cycle.transitions.turnDown=function($cont,$slides,opts){opts.before.push(function(curr,next,opts){$.fn.cycle.commonReset(curr,next,opts,true,false);opts.animIn.height=next.cycleH;opts.animOut.top=curr.cycleH;});opts.cssFirst={top:0};opts.cssBefore={left:0,top:0,height:0};opts.animOut={height:0};};$.fn.cycle.transitions.turnLeft=function($cont,$slides,opts){opts.before.push(function(curr,next,opts){$.fn.cycle.commonReset(curr,next,opts,false,true);opts.cssBefore.left=next.cycleW;opts.animIn.width=next.cycleW;});opts.cssBefore={top:0,width:0};opts.animIn={left:0};opts.animOut={width:0};};$.fn.cycle.transitions.turnRight=function($cont,$slides,opts){opts.before.push(function(curr,next,opts){$.fn.cycle.commonReset(curr,next,opts,false,true);opts.animIn.width=next.cycleW;opts.animOut.left=curr.cycleW;});opts.cssBefore={top:0,left:0,width:0};opts.animIn={left:0};opts.animOut={width:0};};$.fn.cycle.transitions.zoom=function($cont,$slides,opts){opts.before.push(function(curr,next,opts){$.fn.cycle.commonReset(curr,next,opts,false,false,true);opts.cssBefore.top=next.cycleH/2;opts.cssBefore.left=next.cycleW/2;opts.animIn={top:0,left:0,width:next.cycleW,height:next.cycleH};opts.animOut={width:0,height:0,top:curr.cycleH/2,left:curr.cycleW/2};});opts.cssFirst={top:0,left:0};opts.cssBefore={width:0,height:0};};$.fn.cycle.transitions.fadeZoom=function($cont,$slides,opts){opts.before.push(function(curr,next,opts){$.fn.cycle.commonReset(curr,next,opts,false,false);opts.cssBefore.left=next.cycleW/2;opts.cssBefore.top=next.cycleH/2;opts.animIn={top:0,left:0,width:next.cycleW,height:next.cycleH};});opts.cssBefore={width:0,height:0};opts.animOut={opacity:0};};$.fn.cycle.transitions.blindX=function($cont,$slides,opts){var w=$cont.css("overflow","hidden").width();opts.before.push(function(curr,next,opts){$.fn.cycle.commonReset(curr,next,opts);opts.animIn.width=next.cycleW;opts.animOut.left=curr.cycleW;});opts.cssBefore={left:w,top:0};opts.animIn={left:0};opts.animOut={left:w};};$.fn.cycle.transitions.blindY=function($cont,$slides,opts){var h=$cont.css("overflow","hidden").height();opts.before.push(function(curr,next,opts){$.fn.cycle.commonReset(curr,next,opts);opts.animIn.height=next.cycleH;opts.animOut.top=curr.cycleH;});opts.cssBefore={top:h,left:0};opts.animIn={top:0};opts.animOut={top:h};};$.fn.cycle.transitions.blindZ=function($cont,$slides,opts){var h=$cont.css("overflow","hidden").height();var w=$cont.width();opts.before.push(function(curr,next,opts){$.fn.cycle.commonReset(curr,next,opts);opts.animIn.height=next.cycleH;opts.animOut.top=curr.cycleH;});opts.cssBefore={top:h,left:w};opts.animIn={top:0,left:0};opts.animOut={top:h,left:w};};$.fn.cycle.transitions.growX=function($cont,$slides,opts){opts.before.push(function(curr,next,opts){$.fn.cycle.commonReset(curr,next,opts,false,true);opts.cssBefore.left=this.cycleW/2;opts.animIn={left:0,width:this.cycleW};opts.animOut={left:0};});opts.cssBefore={width:0,top:0};};$.fn.cycle.transitions.growY=function($cont,$slides,opts){opts.before.push(function(curr,next,opts){$.fn.cycle.commonReset(curr,next,opts,true,false);opts.cssBefore.top=this.cycleH/2;opts.animIn={top:0,height:this.cycleH};opts.animOut={top:0};});opts.cssBefore={height:0,left:0};};$.fn.cycle.transitions.curtainX=function($cont,$slides,opts){opts.before.push(function(curr,next,opts){$.fn.cycle.commonReset(curr,next,opts,false,true,true);opts.cssBefore.left=next.cycleW/2;opts.animIn={left:0,width:this.cycleW};opts.animOut={left:curr.cycleW/2,width:0};});opts.cssBefore={top:0,width:0};};$.fn.cycle.transitions.curtainY=function($cont,$slides,opts){opts.before.push(function(curr,next,opts){$.fn.cycle.commonReset(curr,next,opts,true,false,true);opts.cssBefore.top=next.cycleH/2;opts.animIn={top:0,height:next.cycleH};opts.animOut={top:curr.cycleH/2,height:0};});opts.cssBefore={left:0,height:0};};$.fn.cycle.transitions.cover=function($cont,$slides,opts){var d=opts.direction||"left";var w=$cont.css("overflow","hidden").width();var h=$cont.height();opts.before.push(function(curr,next,opts){$.fn.cycle.commonReset(curr,next,opts);if(d=="right"){opts.cssBefore.left=-w;}else{if(d=="up"){opts.cssBefore.top=h;}else{if(d=="down"){opts.cssBefore.top=-h;}else{opts.cssBefore.left=w;}}}});opts.animIn={left:0,top:0};opts.animOut={opacity:1};opts.cssBefore={top:0,left:0};};$.fn.cycle.transitions.uncover=function($cont,$slides,opts){var d=opts.direction||"left";var w=$cont.css("overflow","hidden").width();var h=$cont.height();opts.before.push(function(curr,next,opts){$.fn.cycle.commonReset(curr,next,opts,true,true,true);if(d=="right"){opts.animOut.left=w;}else{if(d=="up"){opts.animOut.top=-h;}else{if(d=="down"){opts.animOut.top=h;}else{opts.animOut.left=-w;}}}});opts.animIn={left:0,top:0};opts.animOut={opacity:1};opts.cssBefore={top:0,left:0};};$.fn.cycle.transitions.toss=function($cont,$slides,opts){var w=$cont.css("overflow","visible").width();var h=$cont.height();opts.before.push(function(curr,next,opts){$.fn.cycle.commonReset(curr,next,opts,true,true,true);if(!opts.animOut.left&&!opts.animOut.top){opts.animOut={left:w*2,top:-h/2,opacity:0};}else{opts.animOut.opacity=0;}});opts.cssBefore={left:0,top:0};opts.animIn={left:0};};$.fn.cycle.transitions.wipe=function($cont,$slides,opts){var w=$cont.css("overflow","hidden").width();var h=$cont.height();opts.cssBefore=opts.cssBefore||{};var clip;if(opts.clip){if(/l2r/.test(opts.clip)){clip="rect(0px 0px "+h+"px 0px)";}else{if(/r2l/.test(opts.clip)){clip="rect(0px "+w+"px "+h+"px "+w+"px)";}else{if(/t2b/.test(opts.clip)){clip="rect(0px "+w+"px 0px 0px)";}else{if(/b2t/.test(opts.clip)){clip="rect("+h+"px "+w+"px "+h+"px 0px)";}else{if(/zoom/.test(opts.clip)){var top=parseInt(h/2);var left=parseInt(w/2);clip="rect("+top+"px "+left+"px "+top+"px "+left+"px)";}}}}}}opts.cssBefore.clip=opts.cssBefore.clip||clip||"rect(0px 0px 0px 0px)";var d=opts.cssBefore.clip.match(/(\d+)/g);var t=parseInt(d[0]),r=parseInt(d[1]),b=parseInt(d[2]),l=parseInt(d[3]);opts.before.push(function(curr,next,opts){if(curr==next){return;}var $curr=$(curr),$next=$(next);$.fn.cycle.commonReset(curr,next,opts,true,true,false);opts.cssAfter.display="block";var step=1,count=parseInt((opts.speedIn/13))-1;(function f(){var tt=t?t-parseInt(step*(t/count)):0;var ll=l?l-parseInt(step*(l/count)):0;var bb=b<h?b+parseInt(step*((h-b)/count||1)):h;var rr=r<w?r+parseInt(step*((w-r)/count||1)):w;$next.css({clip:"rect("+tt+"px "+rr+"px "+bb+"px "+ll+"px)"});(step++<=count)?setTimeout(f,13):$curr.css("display","none");})();});opts.cssBefore={display:"block",opacity:1,top:0,left:0};opts.animIn={left:0};opts.animOut={left:0};};})(jQuery);
\ No newline at end of file
diff --git a/wp-content/plugins/nextgen-gallery/js/ngg.js b/wp-content/plugins/nextgen-gallery/js/ngg.js
new file mode 100644
index 000000000..14459c947
--- /dev/null
+++ b/wp-content/plugins/nextgen-gallery/js/ngg.js
@@ -0,0 +1,188 @@
+jQuery("document").ready(function(){
+	// register ajax gallery-navigation listeners
+	jQuery("a.page-numbers").click(function(e) {
+		return ngg_ajax_navigation(e, this);
+	});
+	jQuery("a.prev").click(function(e) {
+		return ngg_ajax_navigation(e, this);
+	});
+	jQuery("a.next").click(function(e) {
+		return ngg_ajax_navigation(e, this);
+	});
+	
+	// register ajax browser-navigation listeners
+	jQuery("a.ngg-browser-next").click(function(e) {
+		return ngg_ajax_browser_navigation(e, this);
+	});
+	jQuery("a.ngg-browser-prev").click(function(e) {
+		return ngg_ajax_browser_navigation(e, this);
+	});
+});
+
+function ngg_ajax_navigation(e, obj) {
+	// try to find page number
+	var pageNumber = 0;
+	if (jQuery(obj).hasClass("page-numbers")) {
+		pageNumber = jQuery(obj).contents()[0].data;
+	} else if (jQuery(obj).hasClass("prev")) {
+		pageNumber = jQuery(obj).attr("id").substr(9);
+	} else if (jQuery(obj).hasClass("next")) {
+		pageNumber = jQuery(obj).attr("id").substr(9);
+	}
+	
+	// try to find gallery number by checking the parents ID until we find a matching one
+	var currentNode = obj;
+	while (null != currentNode.parentNode && !jQuery.nodeName(currentNode.parentNode, "body") && "ngg-gallery-" != jQuery(currentNode.parentNode).attr("id").substring(0, 12)) {
+		currentNode = currentNode.parentNode;
+	}
+	
+	if (jQuery(currentNode.parentNode).attr("id")) {
+		var gallery = jQuery(currentNode.parentNode);
+
+		// we found a gallery, let's extract the post id & gallery id
+		var payload = gallery.attr("id").substring(12);
+		var separatorPosition = parseInt(payload.indexOf("-"));
+		
+		var galleryId = payload.substr(0, separatorPosition);
+		var postId = payload.substr(separatorPosition + 1);
+
+		if ( (galleryId.length == 0) || (postId.length == 0) ) {
+			return true;
+		}
+				
+		ngg_show_loading(e);
+		
+		// load gallery content
+		jQuery.get(ngg_ajax.callback, {p: postId, galleryid: galleryId, nggpage: pageNumber, type: "gallery"}, function (data, textStatus) {
+			
+			// delete old content
+			gallery.children().remove();
+			
+			// add new content
+			gallery.replaceWith(data);
+			
+			// add ajax-navigation, again
+			jQuery("document").ready(function(){
+				// remove old listeners to avoid double-clicks
+				jQuery("a.page-numbers").unbind("click");
+				jQuery("a.prev").unbind("click");
+				jQuery("a.next").unbind("click");
+				
+				// add shutter-listeners again
+				shutterReloaded.init('sh');
+				
+				jQuery("a.page-numbers").click(function(e) {
+					return ngg_ajax_navigation(e, this);
+				});
+				jQuery("a.prev").click(function(e) {
+					return ngg_ajax_navigation(e, this);
+				});
+				jQuery("a.next").click(function(e) {
+					return ngg_ajax_navigation(e, this);
+				});
+				
+				ngg_remove_loading();
+			});
+		});
+		
+		// deactivate HTML link
+		return false;
+	}
+	
+	// an error occurred, use traditional HTML link
+	return true;
+};
+
+function ngg_ajax_browser_navigation(e, obj) {
+	
+
+	// try to find gallery number
+	if ("ngg-prev-" == jQuery(obj).attr("id").substr(0, 9) || "ngg-next-" == jQuery(obj).attr("id").substr(0, 9)) {
+		
+		// extract the image-id
+		var imageNumber = jQuery(obj).attr("id").substr(9);
+
+		// find the image-browser-container
+		var currentNode = obj;
+		while (null != currentNode.parentNode && !jQuery.nodeName(currentNode.parentNode, "body") && !jQuery(currentNode.parentNode).hasClass("ngg-imagebrowser")) {
+			currentNode = currentNode.parentNode;
+		}
+		
+		if (jQuery(currentNode.parentNode).hasClass("ngg-imagebrowser")) {
+			var gallery = jQuery(currentNode.parentNode);
+
+			// let's extract the post id & gallery id
+			var payload = gallery.attr("id").substring(17);
+			var separatorPosition = parseInt(payload.indexOf("-"));
+			
+			var galleryId = payload.substr(0, separatorPosition);
+			var postId = payload.substr(separatorPosition + 1);
+			
+			if ( (galleryId.length == 0) || (postId.length == 0) ) {
+				return true;
+			}
+			
+			ngg_show_loading(e);
+			
+			// get content
+			jQuery.get(ngg_ajax.callback, {p: postId, galleryid: galleryId, pid: imageNumber, type: "browser"}, function (data, textStatus) {
+				// delete old content
+				gallery.children().remove();
+				
+				// add new content
+				gallery.replaceWith(data);
+				
+				// add ajax-navigation, again
+				jQuery("document").ready(function(){
+					// remove old listeners to avoid double-clicks
+					jQuery("a.ngg-browser-next").unbind("click");
+					jQuery("a.ngg-browser-prev").unbind("click");
+					
+					// add shutter-listeners again
+					shutterReloaded.init('sh');
+					
+					// register ajax browser-navigation listeners
+					jQuery("a.ngg-browser-next").click(function(e) {
+						return ngg_ajax_browser_navigation(e, this);
+					});
+					jQuery("a.ngg-browser-prev").click(function(e) {
+						return ngg_ajax_browser_navigation(e, this);
+					});
+					
+					ngg_remove_loading();
+				});
+			});
+	
+			// deactivate HTML link
+			return false;
+		}
+	}
+	
+	return true;
+}
+
+var loadingImage;
+function ngg_show_loading(obj) {
+	loadingImage = jQuery(document.createElement("img")).attr("src", ngg_ajax.path + "images/ajax-loader.gif").attr("alt", ngg_ajax.loading);
+
+	jQuery("body").append(loadingImage);
+	
+	jQuery(loadingImage).css({
+		position: "absolute",
+		top: (obj.pageY + 15) + "px",
+		left: (obj.pageX + 15) + "px"
+	});
+	
+	jQuery(document).mousemove(function(e) {
+		loadingImage.css({
+			top: (e.pageY + 15) + "px",
+			left: (e.pageX + 15) + "px"
+		});
+	});
+}
+
+function ngg_remove_loading() {
+	jQuery(document).unbind("mousemove");
+	
+	jQuery(loadingImage).remove();
+}
\ No newline at end of file
diff --git a/wp-content/plugins/nextgen-gallery/js/ngg.slideshow.js b/wp-content/plugins/nextgen-gallery/js/ngg.slideshow.js
new file mode 100644
index 000000000..b2e1da1e2
--- /dev/null
+++ b/wp-content/plugins/nextgen-gallery/js/ngg.slideshow.js
@@ -0,0 +1,135 @@
+/*!
+ * NextGEN Slideshow based on jQuery Cycle Plugin
+ * Copyright (c) 2010-2011 Alex Rabe
+ * Version: 1.0.5
+ * Requires: jQuery v1.2.6 or later
+ */
+jQuery.fn.nggSlideshow = function ( args ) { 
+    
+    var defaults = { id:    1,
+                     width: 320,
+                     height: 240,
+                     fx: 	'fade',
+                     domain: '',
+                     timeout: 5000 };
+                     
+    var s = jQuery.extend( {}, defaults, args);
+    
+    var obj = this.selector;
+    var stack = [];
+    var url = s.domain + 'index.php?callback=json&api_key=true&format=json&method=gallery&id=' + s.id;
+	/*  
+		the stackLength var will store stack length for ref - it is quicker to ref memory than make a call to find an obj property
+		stack length is first collected in jQuery.getJSON(); stack length is auto-decremented in loadImage() + jCycle_onBefore()
+	*/
+	var stackLength = 0; 
+
+	jQuery.getJSON(url, function(r){
+		
+		if (r.stat == "ok"){
+            
+            for (img in r.images) {
+				var photo = r.images[img];
+                //populate images into an array
+                stack.push( decodeURI( photo['imageURL'] ) );
+            }
+			stackLength = stack.length; 
+			// init loading first 3 images (param 1 in func is first pass)
+			loadImage(1); 
+		}
+	});
+	
+	// load image and bind appendImage() to the img load - here we are making sure the loads do not get displaced
+	function loadImage(num){
+         // check that stack is not empty and we haven't alreay loaded 3 images	   
+         if(stackLength > 0 && num <= 3) { 
+            var img = new Image(); 
+            img.src = stack.shift();
+			stackLength--;
+			// wait to append image until the load is complete
+            jQuery( img ).bind('load', function() { appendImage(img, num); }); 
+         }
+	}
+	
+	// append image to obj
+	function appendImage(img, num){
+	     // Hide them first, Cycle plugin will show them
+         jQuery( img ).hide();
+         // Add the image now and resize after loaded 
+		 jQuery( obj ).append( imageResize(img, s.width , s.height) );
+         // start slideshow with third image, load next image if not
+		 if (num == 3 || stackLength == 0 ) { 
+         	startSlideshow(); 
+		 } else {
+		 	loadImage(++num); // increase index and load next image
+         }
+		 
+	}
+
+    function startSlideshow() {
+
+        // hide the loader icon
+    	jQuery( obj + '-loader' ).empty().remove();
+        // Start the slideshow
+        jQuery(obj + ' img:first').fadeIn(1000, function() {
+       	    // Start the cycle plugin
+        	jQuery( obj ).cycle( {
+        		fx: 	s.fx,
+                containerResize: 1,
+                fit: 1,
+                timeout: s.timeout,
+                next:   obj,
+                before: jCycle_onBefore
+        	});
+        });
+        
+    }
+
+    //Resize Image and keep ratio on client side, better move to server side later
+    function imageResize(img, maxWidth , maxHeight) {
+
+        // we need to wait until the image is loaded
+        if ( !img.complete )
+            jQuery( img ).bind('load', function() { imageResize(img, maxWidth , maxHeight) });
+
+        // in some cases the image is not loaded, we can't resize them
+        if (img.height == 0 || img.width == 0)
+            return img;
+ 
+        var width, height;
+
+        if (img.width * maxHeight > img.height * maxWidth) {
+            // img has a wider ratio than target size, make width fit
+    		if (img.width > maxWidth) {
+    			width = maxWidth;
+    			height = Math.round(img.height / img.width * maxWidth);
+    		}
+        } else {
+            // img has a less wide ratio than target size, make height fit
+    		if (img.height > maxHeight) {
+    			height = maxHeight;
+    			width = Math.round(img.width / img.height * maxHeight);
+    		}
+        }
+  
+        jQuery( img ).css({
+          'height': height,
+          'width': width
+        });
+                
+        return img;
+	};
+
+    // add images to slideshow step by step
+    function jCycle_onBefore(curr, next, opts) {
+        if (opts.addSlide)
+            if (stackLength > 0){ // check that stack is not empty
+                var img = new Image(); 
+                img.src = stack.shift();
+				stackLength--;
+                jQuery( img ).bind('load', function() {
+                    opts.addSlide( imageResize(this, s.width , s.height) );                     
+                });
+            }
+    }; 
+}
\ No newline at end of file
diff --git a/wp-content/plugins/nextgen-gallery/js/ngg.slideshow.min.js b/wp-content/plugins/nextgen-gallery/js/ngg.slideshow.min.js
new file mode 100644
index 000000000..fa33b9abc
--- /dev/null
+++ b/wp-content/plugins/nextgen-gallery/js/ngg.slideshow.min.js
@@ -0,0 +1,9 @@
+jQuery.fn.nggSlideshow=function(args){var defaults={id:1,width:320,height:240,fx:'fade',domain:'',timeout:5000};var s=jQuery.extend({},defaults,args);var obj=this.selector;var stack=[];var url=s.domain+'index.php?callback=json&api_key=true&format=json&method=gallery&id='+s.id;var stackLength=0;jQuery.getJSON(url,function(r){if(r.stat=="ok"){for(img in r.images){var photo=r.images[img];stack.push(decodeURI(photo['imageURL']));}
+stackLength=stack.length;loadImage(1);}});function loadImage(num){if(stackLength>0&&num<=3){var img=new Image();img.src=stack.shift();stackLength--;jQuery(img).bind('load',function(){appendImage(img,num);});}}
+function appendImage(img,num){jQuery(img).hide();jQuery(obj).append(imageResize(img,s.width,s.height));if(num==3||stackLength==0){startSlideshow();}else{loadImage(++num);}}
+function startSlideshow(){jQuery(obj+'-loader').empty().remove();jQuery(obj+' img:first').fadeIn(1000,function(){jQuery(obj).cycle({fx:s.fx,containerResize:1,fit:1,timeout:s.timeout,next:obj,before:jCycle_onBefore});});}
+function imageResize(img,maxWidth,maxHeight){if(!img.complete)
+jQuery(img).bind('load',function(){imageResize(img,maxWidth,maxHeight)});if(img.height==0||img.width==0)
+return img;var width,height;if(img.width*maxHeight>img.height*maxWidth){if(img.width>maxWidth){width=maxWidth;height=Math.round(img.height/img.width*maxWidth);}}else{if(img.height>maxHeight){height=maxHeight;width=Math.round(img.width/img.height*maxHeight);}}
+jQuery(img).css({'height':height,'width':width});return img;};function jCycle_onBefore(curr,next,opts){if(opts.addSlide)
+if(stackLength>0){var img=new Image();img.src=stack.shift();stackLength--;jQuery(img).bind('load',function(){opts.addSlide(imageResize(this,s.width,s.height));});}};}
\ No newline at end of file
diff --git a/wp-content/plugins/nextgen-gallery/lang/nggallery-de_DE.mo b/wp-content/plugins/nextgen-gallery/lang/nggallery-de_DE.mo
new file mode 100644
index 0000000000000000000000000000000000000000..acda08f7f9c1e57b70a9265c90f086ad92bee4bb
GIT binary patch
literal 71717
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

literal 0
HcmV?d00001

diff --git a/wp-content/plugins/nextgen-gallery/lang/nggallery-de_DE.po b/wp-content/plugins/nextgen-gallery/lang/nggallery-de_DE.po
new file mode 100644
index 000000000..529bdbba5
--- /dev/null
+++ b/wp-content/plugins/nextgen-gallery/lang/nggallery-de_DE.po
@@ -0,0 +1,3838 @@
+msgid ""
+msgstr ""
+"Project-Id-Version: NextGEN Gallery\n"
+"Report-Msgid-Bugs-To: \n"
+"POT-Creation-Date: 2011-01-16 22:13+0100\n"
+"PO-Revision-Date: 2011-01-16 22:14+0100\n"
+"Last-Translator: Alex Rabe\n"
+"Language-Team: Alex Rabe\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+"X-Poedit-KeywordsList: __;_e;_n:1,2;esc_html_e;esc_attr_e\n"
+"X-Poedit-Basepath: .\n"
+"X-Poedit-Country: GERMANY\n"
+"X-Poedit-SourceCharset: utf-8\n"
+"Plural-Forms: nplurals=2; plural=n != 1;\n"
+"X-Poedit-Language: German\n"
+"X-Poedit-SearchPath-0: .\n"
+"X-Poedit-SearchPath-1: ..\n"
+
+#: ../nggallery.php:97
+msgid "<strong>Translation by : </strong><a target=\"_blank\" href=\"http://alexrabe.de/wordpress-plugins/nextgen-gallery/languages/\">See here</a>"
+msgstr "<strong>Übersetzt von : </strong><a target=\"_blank\" href=\"http://alexrabe.de/wordpress-plugins/wordtube/translation-of-plugins/\">Alex Rabe</a>"
+
+#: ../nggallery.php:98
+msgid "<strong>This translation is not yet updated for Version 1.7.3</strong>. If you would like to help with translation, download the current po from the plugin folder and read <a href=\"http://alexrabe.de/wordpress-plugins/wordtube/translation-of-plugins/\">here</a> how you can translate the plugin."
+msgstr "Sollten jemand Rechtschreibfehler, Deppenapostrophe oder andere deutsche Ungereimtheiten finden, freue ich mich jederzeit über einen kurzen Hinweis</p>"
+
+#: ../nggallery.php:197
+msgid "Sorry, NextGEN Gallery works only with a Memory Limit of 16 MB or higher"
+msgstr "Tut mir leid, aber NextGEN-Galerie benötigt minimum 16MB Speicher (Memory Limit) oder mehr"
+
+#: ../nggallery.php:215
+msgid "Please update the database of NextGEN Gallery."
+msgstr "Bitte aktualisiere die Datenbank von NextGEN Gallery."
+
+#: ../nggallery.php:215
+msgid "Click here to proceed."
+msgstr "Hier klicken um fortzufahren."
+
+#: ../nggallery.php:238
+msgid "Picture tag"
+msgstr "Bilder-Stichwort"
+
+#: ../nggallery.php:239
+msgid "Picture tag: %2$l."
+msgstr "Bilder-Stichwort: %2$l."
+
+#: ../nggallery.php:240
+msgid "Separate picture tags with commas."
+msgstr "Trenne Stichwörter mittels Komma"
+
+#: ../nggallery.php:339
+msgid "L O A D I N G"
+msgstr "B I T T E &nbsp;&nbsp;W A R T E N"
+
+#: ../nggallery.php:340
+msgid "Click to Close"
+msgstr "Klicken zum Schliessen "
+
+#: ../nggallery.php:361
+msgid "loading"
+msgstr "lade..."
+
+#: ../nggallery.php:501
+#: ../nggfunctions.php:920
+#: ../admin/admin.php:32
+msgid "Overview"
+msgstr "Übersicht"
+
+#: ../nggallery.php:502
+msgid "Get help"
+msgstr "Hilfe"
+
+#: ../nggallery.php:503
+msgid "Contribute"
+msgstr "Mithelfen"
+
+#: ../nggallery.php:504
+msgid "Donate"
+msgstr "Spenden"
+
+#: ../nggfunctions.php:42
+msgid "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."
+msgstr "Es wird der <a href=\"http://www.macromedia.com/go/getflashplayer\">Adobe Flash Player</a>  benötigt und <a href=\"http://www.mozilla.com/firefox/\">im Browser muss Javascript</a> aktiviert sein."
+
+#: ../nggfunctions.php:164
+#: ../nggfunctions.php:630
+msgid "[Gallery not found]"
+msgstr "[Galerie nicht gefunden]"
+
+#: ../nggfunctions.php:437
+msgid "[Album not found]"
+msgstr "[Album nicht gefunden]"
+
+#: ../nggfunctions.php:747
+msgid "[SinglePic not found]"
+msgstr "[Bild nicht gefunden]"
+
+#: ../nggfunctions.php:885
+msgid "Related images for"
+msgstr "Verwandte Bilder von"
+
+#: ../admin/about.php:10
+msgid "Copyright notes / Credits"
+msgstr "Copyright Hinweise / Credits"
+
+#: ../admin/about.php:13
+msgid "NextGEN DEV Team"
+msgstr "NextGEN-DEV-Team"
+
+#: ../admin/about.php:15
+msgid "This plugin is primarily developed, maintained, supported, documented by"
+msgstr "Dieses Plugin wird hauptsächlich entwickelt, dokumentiert und supported von"
+
+#: ../admin/about.php:15
+msgid "There are many other folks who have made contributions to this project :"
+msgstr "Folgende Personen haben die Entwicklung unterstützt :"
+
+#: ../admin/about.php:20
+msgid "Contributors / Tribute to"
+msgstr "Anerkennung / Hinweise"
+
+#: ../admin/about.php:22
+msgid "If you study the code of this plugin, you will find out that we mixed a lot of good already existing code and ideas together."
+msgstr "Falls Du Dir den Sourcecode dieses Plugins ansiehst, wirst Du merken, dass wir verschiedene gute Scripte sowie Ideen verwendet haben."
+
+#: ../admin/about.php:23
+msgid "So, we would like to thank the following people for their pioneer work (without this work it's impossible to create such a plugin so fast)"
+msgstr "Wir möchten folgenden Menschen für Ihre Pionier-Arbeit danken (ohne diese Vorleistung wäre es unmöglich, ein Plugin so schnell zu entwickeln)"
+
+#: ../admin/about.php:25
+msgid "for their great documented code"
+msgstr "für ihren großartig dokumentierten Code"
+
+#: ../admin/about.php:26
+msgid "for jQuery, which is the best Web2.0 framework"
+msgstr "für jQuery, das Beste Web 2.0 Framework"
+
+#: ../admin/about.php:27
+msgid "for the fantastic PHP Thumbnail Class"
+msgstr "für die fantastische PHP-Thumbnail-Klasse"
+
+#: ../admin/about.php:28
+msgid "for a lot of very useful plugins and ideas"
+msgstr "für viele nützliche Plugins und Ideen"
+
+#: ../admin/about.php:29
+msgid "for Shutter Reloaded, a real lightweight image effect"
+msgstr "für Shutter Reloaded, ein wirklich smarten Bildeffekt"
+
+#: ../admin/about.php:30
+msgid "for the best Media Flash Scripts on earth"
+msgstr "für die besten Media-Flash-Scripte"
+
+#: ../admin/about.php:31
+msgid "for the Gallery Icon"
+msgstr "für das Galerie Icon"
+
+#: ../admin/about.php:32
+msgid "for the Watermark plugin"
+msgstr "für das Wasserzeichen-Plugin"
+
+#: ../admin/about.php:34
+msgid "If you didn't find your name on this list and there is some code which I integrate in my plugin, don't hesitate to send me a mail."
+msgstr "Falls Du Deinen Namen nicht auf dieser Liste findest und es aber Code gibt, den ich in meinem Plugin verwendet habe, so schicken mir bitte sofort eine E-Mail."
+
+#: ../admin/about.php:38
+msgid "How to support ?"
+msgstr "Unterstützung / Hilfe"
+
+#: ../admin/about.php:40
+msgid "There exist several ways to contribute, help or support us in this work. Non of them are mandatory."
+msgstr "Es existieren verschiedene Möglichkeiten, diese Arbeit zu unterstützen."
+
+#: ../admin/about.php:42
+msgid "Send us bugfixes / code changes"
+msgstr "Schicke uns Verbesserungen / Bugfixes"
+
+#: ../admin/about.php:42
+msgid "The most motivated support for this plugin are your ideas and brain work"
+msgstr "Der beste Support für dieses Plugin sind Deine Ideen und Gedanken"
+
+#: ../admin/about.php:43
+msgid "Translate the plugin"
+msgstr "Übersetze das Plugin"
+
+#: ../admin/about.php:43
+msgid "To help people to work with this plugin, I would like to have it in all available languages"
+msgstr "Um jedem das Arbeiten mit diesem Plugin zu vereinfachen, würde ich es gerne in allen möglichen Sprachen anbieten"
+
+#: ../admin/about.php:44
+msgid "Donate the work via paypal"
+msgstr "Zeig Dich für diese Arbeit per PayPal dankbar"
+
+#: ../admin/about.php:57
+msgid "No doubt a very useful and easy motivation :-)"
+msgstr "Kein Zweifel, eine schöne und einfache Motivationshilfe"
+
+#: ../admin/about.php:59
+msgid "Place a link to the plugin in your blog/webpage"
+msgstr "Setze einen Link zu diesem Plugin auf Deinen Blog"
+
+#: ../admin/about.php:59
+msgid "Yes, share and trackback is also a good support for this work "
+msgstr "Natürlich sind Trackbacks und Links auch ein guter Support für diese Arbeit"
+
+#: ../admin/about.php:64
+msgid "Thanks!"
+msgstr "Vielen Dank!"
+
+#: ../admin/about.php:66
+msgid "We would like to thank this people which support us in the work :"
+msgstr "Ich möchte mich bei diesen Menschen für Ihre Unterstützung bedanken:"
+
+#: ../admin/about.php:166
+msgid "and all donators..."
+msgstr "und allen anderen Spendern..."
+
+#: ../admin/addgallery.php:46
+#: ../admin/addgallery.php:57
+#: ../admin/addgallery.php:69
+#: ../admin/addgallery.php:80
+#: ../admin/album.php:96
+#: ../admin/album.php:124
+#: ../admin/album.php:142
+#: ../admin/edit-thumbnail.php:19
+#: ../admin/edit-thumbnail.php:22
+#: ../admin/manage.php:179
+msgid "Cheatin&#8217; uh?"
+msgstr "Cheatin&#8217; uh?"
+
+#: ../admin/addgallery.php:62
+msgid "Upload failed!"
+msgstr "Upload fehlgeschlagen!"
+
+#: ../admin/addgallery.php:85
+msgid "Upload failed! "
+msgstr "Upload fehlgeschlagen!"
+
+#: ../admin/addgallery.php:90
+#: ../admin/functions.php:930
+#: ../admin/functions.php:1030
+msgid "No gallery selected !"
+msgstr "Keine Galerie ausgewählt !"
+
+#: ../admin/addgallery.php:159
+msgid "Image Files"
+msgstr "Bilder"
+
+#: ../admin/addgallery.php:180
+#: ../admin/addgallery.php:208
+msgid "remove"
+msgstr "Entfernen"
+
+#: ../admin/addgallery.php:181
+#: ../admin/addgallery.php:361
+msgid "Browse..."
+msgstr "Durchsuche..."
+
+#: ../admin/addgallery.php:182
+#: ../admin/addgallery.php:194
+#: ../admin/addgallery.php:411
+msgid "Upload images"
+msgstr "Bilder hochladen"
+
+#: ../admin/addgallery.php:271
+#: ../admin/addgallery.php:377
+msgid "Upload Images"
+msgstr "Bilder hochladen"
+
+#: ../admin/addgallery.php:274
+#: ../admin/addgallery.php:291
+#: ../admin/manage-galleries.php:112
+#: ../admin/manage-galleries.php:149
+msgid "Add new gallery"
+msgstr "Neue Galerie erstellen"
+
+#: ../admin/addgallery.php:277
+#: ../admin/addgallery.php:313
+msgid "Upload a Zip-File"
+msgstr "Zip-Datei hochladen"
+
+#: ../admin/addgallery.php:280
+#: ../admin/addgallery.php:355
+msgid "Import image folder"
+msgstr "Bilder-Verzeichnis importieren"
+
+#: ../admin/addgallery.php:296
+#: ../admin/manage-galleries.php:284
+msgid "New Gallery"
+msgstr "Neue Galerie"
+
+#: ../admin/addgallery.php:299
+#: ../admin/manage-galleries.php:286
+msgid "Create a new , empty gallery below the folder"
+msgstr "Erstelle eine neue, leere Galerie unter dem Verzeichnis"
+
+#: ../admin/addgallery.php:301
+#: ../admin/manage-galleries.php:288
+msgid "Allowed characters for file and folder names are"
+msgstr "Erlaubte Zeichen für die Datei- und Verzeichnisnamen sind"
+
+#: ../admin/addgallery.php:305
+msgid "Add gallery"
+msgstr "Galerie hinzufügen"
+
+#: ../admin/addgallery.php:318
+msgid "Select Zip-File"
+msgstr "Wähle Zip-Datei"
+
+#: ../admin/addgallery.php:320
+msgid "Upload a zip file with images"
+msgstr "Lade eine Zip-Datei mit Bildern hoch"
+
+#: ../admin/addgallery.php:324
+msgid "or enter a Zip-File URL"
+msgstr "oder gib eine URL zur ZIP-Datei an"
+
+#: ../admin/addgallery.php:326
+msgid "Import a zip file with images from a url"
+msgstr "Lade eine Zip-Datei mit Bildern über ein URL hoch"
+
+#: ../admin/addgallery.php:330
+#: ../admin/addgallery.php:386
+msgid "in to"
+msgstr "in"
+
+#: ../admin/addgallery.php:332
+msgid "a new gallery"
+msgstr "eine neue Galerie"
+
+#: ../admin/addgallery.php:343
+msgid "Note : The upload limit on your server is "
+msgstr "Hinweis : Das Upload-Limit auf dem Server beträgt "
+
+#: ../admin/addgallery.php:347
+msgid "Start upload"
+msgstr "Upload starten"
+
+#: ../admin/addgallery.php:360
+msgid "Import from Server path:"
+msgstr "Importieren aus Server-Pfad:"
+
+#: ../admin/addgallery.php:363
+msgid "Note : Change the default path in the gallery settings"
+msgstr "Hinweis : Der Default-Pfad kann in den Einstellungen angepasst werden"
+
+#: ../admin/addgallery.php:365
+msgid " Please note : For safe-mode = ON you need to add the subfolder thumbs manually"
+msgstr "Achtung : Da der Safe-Mode (PHP.INI) eingeschaltet ist, mußt Du das Unterverzeichnis für die Vorschaubilder (\"thumbs\") manuell (per FTP) anlegen"
+
+#: ../admin/addgallery.php:368
+msgid "Import folder"
+msgstr "Verzeichnis importieren"
+
+#: ../admin/addgallery.php:382
+msgid "Upload image"
+msgstr "Bild hochladen"
+
+#: ../admin/addgallery.php:388
+msgid "Choose gallery"
+msgstr "Wähle Galerie"
+
+#: ../admin/addgallery.php:407
+msgid "The batch upload requires Adobe Flash 10, disable it if you have problems"
+msgstr "Das Batch-Upload benötigt Adbode Flash 10, wenn es Probleme gibt deaktiviere es besser."
+
+#: ../admin/addgallery.php:407
+msgid "Disable flash upload"
+msgstr "Deaktiviere Batch-Upload"
+
+#: ../admin/addgallery.php:409
+msgid "Upload multiple files at once by ctrl/shift-selecting in dialog"
+msgstr "Wähle im Dialog mit Ctrl/Shift mehrere Bilder gleichzeitig aus."
+
+#: ../admin/addgallery.php:409
+msgid "Enable flash based upload"
+msgstr "Aktiviere Flash Batch Upload"
+
+#: ../admin/admin.php:31
+#: ../admin/admin.php:57
+#: ../admin/admin.php:287
+#: ../admin/admin.php:355
+#: ../admin/functions.php:178
+#: ../admin/manage-galleries.php:120
+#: ../admin/manage-galleries.php:372
+#: ../admin/manage-images.php:239
+msgid "Gallery"
+msgid_plural "Galleries"
+msgstr[0] "Galerie"
+msgstr[1] "Galerien"
+
+#: ../admin/admin.php:33
+msgid "Add Gallery / Images"
+msgstr "Galerie / Bilder hinzufügen"
+
+#: ../admin/admin.php:34
+msgid "Manage Gallery"
+msgstr "Galerie verwalten"
+
+#: ../admin/admin.php:35
+msgid "Album"
+msgid_plural "Albums"
+msgstr[0] "Album"
+msgstr[1] "Alben"
+
+#: ../admin/admin.php:36
+msgid "Tags"
+msgstr "Stichwörter"
+
+#: ../admin/admin.php:37
+msgid "Options"
+msgstr "Optionen"
+
+#: ../admin/admin.php:39
+msgid "Style"
+msgstr "Style"
+
+#: ../admin/admin.php:41
+msgid "Roles"
+msgstr "Zugriff"
+
+#: ../admin/admin.php:42
+msgid "About this Gallery"
+msgstr "Über diese Galerie"
+
+#: ../admin/admin.php:42
+msgid "About"
+msgstr "Über"
+
+#: ../admin/admin.php:45
+msgid "NextGEN Gallery"
+msgstr "NextGEN Gallery"
+
+#: ../admin/admin.php:48
+#: ../admin/admin.php:59
+msgid "Reset / Uninstall"
+msgstr "Rücksetzen"
+
+#: ../admin/admin.php:58
+msgid "Network settings"
+msgstr "Netzwerk Einstellungen"
+
+#: ../admin/admin.php:98
+#, php-format
+msgid "Thanks for using this plugin, I hope you are satisfied ! If you would like to support the further development, please consider a <strong><a href=\"%s\">donation</a></strong>! If you still need some help, please post your questions <a href=\"http://wordpress.org/tags/nextgen-gallery?forum_id=10\">here</a> ."
+msgstr "Vielen Dank, dass Du dieses Plugin nutzt. Ich hoffe, Du bist soweit zufrieden! Wenn Du die Weiterentwicklung unterstützen möchtest, würde ich mich über eine kleine <strong><a href=\"%s\">Spende</a></strong> freuen! Wenn Du Fragen oder Problem hast, schreib sie doch <a href=\"http://wordpress.org/tags/nextgen-gallery?forum_id=10\">hier</a>  ins Forum."
+
+#: ../admin/admin.php:101
+msgid "OK, hide this message now !"
+msgstr "OK, danke für die Info !"
+
+#: ../admin/admin.php:186
+msgid "You do not have the correct permission"
+msgstr "Du hast keine Zugriffsrechte"
+
+#: ../admin/admin.php:187
+msgid "Unexpected Error"
+msgstr "Unerwarteter Fehler"
+
+#: ../admin/admin.php:188
+msgid "A failure occurred"
+msgstr "Ein Fehler ist aufgetreten"
+
+#: ../admin/admin.php:291
+msgid "<a href=\"http://dpotter.net/Technical/2008/03/nextgen-gallery-review-introduction/\" target=\"_blank\">Introduction</a>"
+msgstr "<a href=\"http://www.curlyrob.de/curlyrob/?page_id=129\" target=\"_blank\">Einführung</a>"
+
+#: ../admin/admin.php:294
+msgid "<a href=\"http://dpotter.net/Technical/2008/03/nextgen-gallery-review-introduction/\" target=\"_blank\">Setup</a>"
+msgstr "<a href=\"http://www.curlyrob.de/curlyrob/?page_id=129\" target=\"_blank\">Setup</a>"
+
+#: ../admin/admin.php:297
+msgid "<a href=\"http://alexrabe.de/wordpress-plugins/nextgen-gallery/languages/\" target=\"_blank\">Translation by alex rabe</a>"
+msgstr "<a href=\"http://alexrabe.de/wordpress-plugins/nextgen-gallery/languages/\" target=\"_blank\">Unterstütze bei der Übersetzung</a>"
+
+#: ../admin/admin.php:300
+msgid "<a href=\"http://dpotter.net/Technical/2008/03/nextgen-gallery-review-introduction/\" target=\"_blank\">Roles / Capabilities</a>"
+msgstr "<a href=\"http://www.curlyrob.de/curlyrob/?page_id=129\" target=\"_blank\">Einführung</a>"
+
+#: ../admin/admin.php:303
+msgid "<a href=\"http://dpotter.net/Technical/2008/03/nextgen-gallery-review-introduction/\" target=\"_blank\">Styles</a>"
+msgstr "<a href=\"http://www.curlyrob.de/curlyrob/?page_id=129\" target=\"_blank\">Einführung</a>"
+
+#: ../admin/admin.php:304
+msgid "Templates"
+msgstr "Vorlagen"
+
+#: ../admin/admin.php:307
+#: ../admin/admin.php:313
+msgid "<a href=\"http://dpotter.net/Technical/2008/03/nextgen-gallery-review-introduction/\" target=\"_blank\">Gallery management</a>"
+msgstr "<a href=\"http://www.curlyrob.de/curlyrob/?page_id=129\" target=\"_blank\">Einführung</a>"
+
+#: ../admin/admin.php:308
+msgid "Gallery example"
+msgstr "Galerie Beispiel"
+
+#: ../admin/admin.php:314
+#: ../admin/admin.php:324
+msgid "Gallery tags"
+msgstr "Galerie Stichwörter"
+
+#: ../admin/admin.php:317
+msgid "<a href=\"http://dpotter.net/Technical/2008/03/nextgen-gallery-review-introduction/\" target=\"_blank\">Album management</a>"
+msgstr "<a href=\"http://www.curlyrob.de/curlyrob/?page_id=129\" target=\"_blank\">Einführung</a>"
+
+#: ../admin/admin.php:318
+msgid "Album example"
+msgstr "Album Beispiel"
+
+#: ../admin/admin.php:319
+#: ../admin/admin.php:325
+msgid "Album tags"
+msgstr "Album Stichwörter"
+
+#: ../admin/admin.php:322
+msgid "<a href=\"http://dpotter.net/Technical/2008/03/nextgen-gallery-review-introduction/\" target=\"_blank\">Gallery tags</a>"
+msgstr "<a href=\"http://www.curlyrob.de/curlyrob/?page_id=129\" target=\"_blank\">Einführung</a>"
+
+#: ../admin/admin.php:323
+msgid "Related images"
+msgstr "Verwandte Bilder"
+
+#: ../admin/admin.php:328
+msgid "<a href=\"http://dpotter.net/Technical/2008/03/nextgen-gallery-review-image-management/\" target=\"_blank\">Image management</a>"
+msgstr "<a href=\"http://dpotter.net/Technical/2008/03/nextgen-gallery-review-image-management/\" target=\"_blank\">Bilderverwaltung (englisch)</a>"
+
+#: ../admin/admin.php:329
+msgid "Custom fields"
+msgstr "Spezialfelder"
+
+#: ../admin/admin.php:334
+msgid "Get help with NextGEN Gallery"
+msgstr "Weitere Hilfe zu NextGEN Gallery"
+
+#: ../admin/admin.php:338
+msgid "More Help & Info"
+msgstr "Weitere Hilfe & Informationen"
+
+#: ../admin/admin.php:340
+msgid "<a href=\"http://wordpress.org/tags/nextgen-gallery?forum_id=10\" target=\"_blank\">Support Forums</a>"
+msgstr "<a href=\"http://wordpress.org/tags/nextgen-gallery?forum_id=10\" target=\"_blank\">Support Forum (englisch)</a>"
+
+#: ../admin/admin.php:341
+msgid "FAQ"
+msgstr "FAQ (englisch)"
+
+#: ../admin/admin.php:342
+msgid "Feature request"
+msgstr "Wünsch Dir was"
+
+#: ../admin/admin.php:343
+msgid "Get your language pack"
+msgstr "Lade Deine Sprachdatei"
+
+#: ../admin/admin.php:344
+msgid "Contribute development"
+msgstr "Entwicklung helfen"
+
+#: ../admin/admin.php:345
+msgid "Download latest version"
+msgstr "Aktuelle Version downloaden"
+
+#: ../admin/ajax.php:312
+msgid "You are not allowed to be here"
+msgstr "Keine Zugangsberechtigung"
+
+#: ../admin/ajax.php:406
+#, php-format
+msgid "Could create image with %s x %s pixel"
+msgstr "Konnte ein Bild mit %s x %s Pixel erstellen"
+
+#: ../admin/album.php:102
+#: ../admin/album.php:117
+#: ../admin/album.php:158
+msgid "Update Successfully"
+msgstr "Update erfolgreich"
+
+#: ../admin/album.php:131
+msgid "Album deleted"
+msgstr "Album gelöscht"
+
+#: ../admin/album.php:269
+msgid "Edit Album"
+msgstr "Album erstellen"
+
+#: ../admin/album.php:278
+msgid "Manage Albums"
+msgstr "Verwalte Alben"
+
+#: ../admin/album.php:284
+#: ../admin/album.php:333
+msgid "Select album"
+msgstr "Wähle Album"
+
+#: ../admin/album.php:286
+msgid "No album selected"
+msgstr "Kein Album ausgewählt"
+
+#: ../admin/album.php:297
+#: ../admin/edit-thumbnail.php:157
+msgid "Update"
+msgstr "Aktualisiere"
+
+#: ../admin/album.php:299
+msgid "Edit album"
+msgstr "Album ändern"
+
+#: ../admin/album.php:302
+#: ../admin/manage-galleries.php:139
+#: ../admin/manage-images.php:445
+msgid "Delete"
+msgstr "Lösche"
+
+#: ../admin/album.php:306
+msgid "Add new album"
+msgstr "Album hinzufügen"
+
+#: ../admin/album.php:308
+msgid "Add"
+msgstr "Hinzufügen"
+
+#: ../admin/album.php:319
+msgid "Show / hide used galleries"
+msgstr "Zeige / Verstecke verwendete Galerien"
+
+#: ../admin/album.php:319
+msgid "[Show all]"
+msgstr "[Alle zeigen]"
+
+#: ../admin/album.php:320
+msgid "Maximize the widget content"
+msgstr "Maximiere die Widgets"
+
+#: ../admin/album.php:320
+msgid "[Maximize]"
+msgstr "[Vergrößern]"
+
+#: ../admin/album.php:321
+msgid "Minimize the widget content"
+msgstr "Minimiere die Widgets"
+
+#: ../admin/album.php:321
+msgid "[Minimize]"
+msgstr "[Verkleinern]"
+
+#: ../admin/album.php:323
+msgid "After you create and select a album, you can drag and drop a gallery or another album into your new album below"
+msgstr "Nachdem Du ein Album erstellt und ausgewählt hast, kannst Du per Drag & Drop eine Galerie oder ein anderes Album in das neue Album ziehen"
+
+#: ../admin/album.php:349
+msgid "Select gallery"
+msgstr "Wähle Galerie"
+
+#: ../admin/album.php:378
+msgid "Album ID"
+msgstr "Album ID"
+
+#: ../admin/album.php:391
+msgid "No album selected!"
+msgstr "Kein Album ausgewählt"
+
+#: ../admin/album.php:411
+msgid "Album name:"
+msgstr "Album Name :"
+
+#: ../admin/album.php:417
+msgid "Album description:"
+msgstr "Beschreibung:"
+
+#: ../admin/album.php:423
+msgid "Select a preview image:"
+msgstr "Wähle Vorschaubild:"
+
+#: ../admin/album.php:426
+#: ../admin/album.php:429
+msgid "No picture"
+msgstr "Kein Bild"
+
+#: ../admin/album.php:440
+#: ../admin/manage-images.php:257
+msgid "Page Link to"
+msgstr "Seite verlinkt zu"
+
+#: ../admin/album.php:442
+#: ../admin/manage-images.php:260
+msgid "Not linked"
+msgstr "Nicht verlinkt"
+
+#: ../admin/album.php:455
+#: ../admin/manage-galleries.php:293
+#: ../admin/manage-galleries.php:322
+#: ../admin/manage-galleries.php:352
+#: ../admin/manage-images.php:539
+#: ../admin/manage-images.php:575
+#: ../admin/manage-images.php:604
+#: ../admin/manage-images.php:634
+msgid "OK"
+msgstr "OK"
+
+#: ../admin/album.php:457
+#: ../admin/manage-galleries.php:295
+#: ../admin/manage-galleries.php:324
+#: ../admin/manage-galleries.php:354
+#: ../admin/manage-images.php:541
+#: ../admin/manage-images.php:577
+#: ../admin/manage-images.php:606
+#: ../admin/manage-images.php:636
+msgid "Cancel"
+msgstr "Abbrechen"
+
+#: ../admin/album.php:541
+msgid "Name"
+msgstr "Name"
+
+#: ../admin/album.php:542
+#: ../admin/manage-images.php:255
+msgid "Title"
+msgstr "Titel"
+
+#: ../admin/album.php:543
+msgid "Page"
+msgstr "Seite"
+
+#: ../admin/edit-thumbnail.php:106
+msgid "Select with the mouse the area for the new thumbnail"
+msgstr "Wähle mit der Maus den Bereich für das neue Thumbnail"
+
+#: ../admin/edit-thumbnail.php:120
+msgid "Thumbnail updated"
+msgstr "Thumbnail geändert"
+
+#: ../admin/edit-thumbnail.php:125
+msgid "Error updating thumbnail"
+msgstr "Konnte Vorschaubild nicht erzeugen"
+
+#: ../admin/edit-thumbnail.php:142
+msgid "Select the area for the thumbnail from the picture on the left."
+msgstr "Wähle den Ausschnitt für das Vorschaubild innerhalb des Bildes"
+
+#: ../admin/functions.php:39
+msgid "No valid gallery name!"
+msgstr "Kein gültiger Galerie-Name!"
+
+#: ../admin/functions.php:46
+#: ../admin/functions.php:55
+#: ../admin/functions.php:80
+#: ../admin/functions.php:149
+#: ../admin/functions.php:157
+msgid "Directory"
+msgstr "Verzeichnis"
+
+#: ../admin/functions.php:46
+msgid "didn't exist. Please create first the main gallery folder "
+msgstr "nicht gefunden. Bitte erstelle zuerst das Hauptverzeichnis."
+
+#: ../admin/functions.php:47
+#: ../admin/functions.php:56
+msgid "Check this link, if you didn't know how to set the permission :"
+msgstr "Dieser Link zeigt Dir, wie man Verzeichnisrechte ändert :"
+
+#: ../admin/functions.php:55
+#: ../admin/functions.php:80
+msgid "is not writeable !"
+msgstr "ist schreibgeschützt !"
+
+#: ../admin/functions.php:76
+#: ../admin/functions.php:85
+#: ../admin/functions.php:889
+msgid "Unable to create directory "
+msgstr "Kann Verzeichnis nicht erstellen "
+
+#: ../admin/functions.php:89
+msgid "The server setting Safe-Mode is on !"
+msgstr "Auf dem Server ist Safe-Mode aktiviert (PHP.INI)"
+
+#: ../admin/functions.php:90
+msgid "If you have problems, please create directory"
+msgstr "Wenn Probleme auftreten, erstelle bitte das Verzeichnis"
+
+#: ../admin/functions.php:91
+msgid "and the thumbnails directory"
+msgstr "und das Thumbnails-Verzeichnis"
+
+#: ../admin/functions.php:91
+msgid "with permission 777 manually !"
+msgstr "mit den Berechtigungen 777 manuell !"
+
+#: ../admin/functions.php:116
+#, php-format
+msgid "Gallery ID %1$s successfully created. You can show this gallery in your post or page with the shortcode %2$s.<br/>"
+msgstr "Galerie ID %1$s erstellt..<br/>Du kannst diese Galerie jetzt mit dem Stichwort %2$s in einen Artikel einbinden.<br/>"
+
+#: ../admin/functions.php:119
+msgid "Edit gallery"
+msgstr "Galerie ändern"
+
+#: ../admin/functions.php:149
+msgid "doesn&#96;t exist!"
+msgstr "gibt es nicht !"
+
+#: ../admin/functions.php:157
+msgid "contains no pictures"
+msgstr "enthält keine Bilder"
+
+#: ../admin/functions.php:175
+msgid "Database error. Could not add gallery!"
+msgstr "Datenbank-Fehler. Kann Galerie nicht hinzufügen!"
+
+#: ../admin/functions.php:178
+msgid "successfully created!"
+msgstr "erfolgreich erstellt!"
+
+#: ../admin/functions.php:207
+#: ../admin/functions.php:1006
+#: ../admin/manage-galleries.php:74
+#: ../admin/manage-galleries.php:141
+#: ../admin/manage-images.php:202
+#: ../admin/manage-images.php:341
+#: ../admin/manage.php:216
+#: ../admin/manage.php:292
+msgid "Create new thumbnails"
+msgstr "Neue Vorschaubilder erstellen"
+
+#: ../admin/functions.php:210
+msgid " picture(s) successfully added"
+msgstr " Bild(er) erfolgreich hinzugefügt"
+
+#: ../admin/functions.php:260
+#: ../admin/functions.php:340
+#: ../admin/functions.php:395
+#: ../admin/functions.php:492
+#: ../admin/functions.php:546
+msgid "Object didn't contain correct data"
+msgstr "Das Objekt enhält nicht die notwendigen Daten"
+
+#: ../admin/functions.php:268
+msgid " is not writeable "
+msgstr "ist schreibgeschützt !"
+
+#: ../admin/functions.php:350
+#: ../admin/functions.php:398
+#: ../admin/functions.php:498
+#: ../admin/functions.php:549
+msgid " is not writeable"
+msgstr "ist schreibgeschützt !"
+
+#: ../admin/functions.php:552
+msgid "File do not exists"
+msgstr "Datei existiert nicht"
+
+#: ../admin/functions.php:556
+msgid "Couldn't restore original image"
+msgstr "Konnte Originalbild nicht wiederherstellen"
+
+#: ../admin/functions.php:669
+msgid "(Error : Couldn't not update data base)"
+msgstr "(Fehler : Konnte Datenbank nicht updaten)"
+
+#: ../admin/functions.php:676
+msgid "(Error : Couldn't not update meta data)"
+msgstr "(Fehler : Konnte Metadaten nicht speichern)"
+
+#: ../admin/functions.php:685
+msgid "(Error : Couldn't not find image)"
+msgstr "(Fehler : Konnte das Bild nicht finden)"
+
+#: ../admin/functions.php:823
+msgid "No valid URL path "
+msgstr "Kein gültiger URL-Pfad"
+
+#: ../admin/functions.php:839
+msgid "Import via cURL failed."
+msgstr "Import via cURL abgebrochen"
+
+#: ../admin/functions.php:856
+msgid "Uploaded file was no or a faulty zip file ! The server recognized : "
+msgstr "Die hochgeladene Datei war keine korrekte Zip-Datei. Servermeldung :"
+
+#: ../admin/functions.php:873
+msgid "Could not get a valid foldername"
+msgstr "Konnte keinen gültigen Verzeichnisnamen finden"
+
+#: ../admin/functions.php:884
+#, php-format
+msgid "Unable to create directory %s. Is its parent directory writable by the server?"
+msgstr "Kann das Verzeichnis %s nicht erstellen. Ist das Hauptverzeichnis vielleicht schreibgeschützt ?"
+
+#: ../admin/functions.php:899
+msgid "Zip-File successfully unpacked"
+msgstr "Zip-Datei erfolgreich entpackt"
+
+#: ../admin/functions.php:938
+#: ../admin/functions.php:1055
+msgid "Failure in database, no gallery path set !"
+msgstr "Datenbankfehler! Kein Galerie-Pfad gesetzt !"
+
+#: ../admin/functions.php:962
+#: ../admin/functions.php:1049
+msgid "is no valid image file!"
+msgstr "ist keine zulässige Bilddatei !"
+
+#: ../admin/functions.php:976
+#: ../admin/functions.php:1175
+#: ../admin/functions.php:1252
+#, php-format
+msgid "Unable to write to directory %s. Is this directory writable by the server?"
+msgstr "Kann das Verzeichnis %s nicht erstellen. Ist das Hauptverzeichnis vielleicht schreibgeschützt ?"
+
+#: ../admin/functions.php:983
+#: ../admin/functions.php:1072
+msgid "Error, the file could not be moved to : "
+msgstr "Fehler: Diese Datei kann nicht verschoben werden zu :"
+
+#: ../admin/functions.php:988
+#: ../admin/functions.php:1076
+msgid "Error, the file permissions could not be set"
+msgstr "Fehler: Die Berechtigungen für diese Datei können nicht gesetzt werden"
+
+#: ../admin/functions.php:1011
+msgid " Image(s) successfully added"
+msgstr " Bild(er) erfolgreich hinzugefügt"
+
+#: ../admin/functions.php:1038
+msgid "Invalid upload. Error Code : "
+msgstr "Ungültiger Upload. Fehler Code :"
+
+#: ../admin/functions.php:1115
+#, php-format
+msgid "SAFE MODE Restriction in effect! You need to create the folder <strong>%s</strong> manually"
+msgstr "SAFE MODE Einschränkungen ist aktiv. Du musst das Verzeichnis <strong>%s</strong> manuell anlegen."
+
+#: ../admin/functions.php:1116
+#, php-format
+msgid "When safe_mode is on, PHP checks to see if the owner (%s) of the current script matches the owner (%s) of the file to be operated on by a file function or its directory"
+msgstr "Wenn der Safe-Mode eingeschaltet ist, überprüft PHP, ob der Besitzer (%s) des Skript mit dem Besitzer (%s) der Datei/Verzeichnis übereinstimmt."
+
+#: ../admin/functions.php:1169
+#: ../admin/functions.php:1246
+msgid "The destination gallery does not exist"
+msgstr "Die ausgewählte Galerie existiert nicht"
+
+#: ../admin/functions.php:1200
+#, php-format
+msgid "Failed to move image %1$s to %2$s"
+msgstr "Konnte das Bild %1$s nicht nach %2$s verschieben"
+
+#: ../admin/functions.php:1220
+#, php-format
+msgid "Moved %1$s picture(s) to gallery : %2$s ."
+msgstr " %1$s Bild(er) in Galerie : %2$s verschoben."
+
+#: ../admin/functions.php:1279
+#, php-format
+msgid "Failed to copy image %1$s to %2$s"
+msgstr "Konnte das Bild %1$s nicht nach %2$s kopieren"
+
+#: ../admin/functions.php:1293
+#, php-format
+msgid "Failed to copy database row for picture %s"
+msgstr "Fehler bei der Datenbank-Operation für Bild %s"
+
+#: ../admin/functions.php:1305
+#, php-format
+msgid "Image %1$s (%2$s) copied as image %3$s (%4$s) &raquo; The file already existed in the destination gallery."
+msgstr "Bild %1$s (%2$s) als Bild %3$s (%4$s) kopiert &raquo; Die Datei existierte bereits."
+
+#: ../admin/functions.php:1308
+#, php-format
+msgid "Image %1$s (%2$s) copied as image %3$s (%4$s)"
+msgstr "Bild %1$s (%2$s) kopiert als Bild %3$s (%4$s)"
+
+#: ../admin/functions.php:1317
+#, php-format
+msgid "Copied %1$s picture(s) to gallery: %2$s ."
+msgstr "Kopiere %1$s Bild(er) in die Galerie : %2$s ."
+
+#: ../admin/functions.php:1425
+msgid "The uploaded file exceeds the upload_max_filesize directive in php.ini"
+msgstr "Die Datei überschreitet die erlaubte Grösse (upload_max_filesize) in der php.ini"
+
+#: ../admin/functions.php:1428
+msgid "The uploaded file exceeds the MAX_FILE_SIZE directive that was specified in the HTML form"
+msgstr "Die Datei ist zu gross"
+
+#: ../admin/functions.php:1431
+msgid "The uploaded file was only partially uploaded"
+msgstr "Die Datei wurde nur teilweise hochgeladen"
+
+#: ../admin/functions.php:1434
+msgid "No file was uploaded"
+msgstr "Keinen Datei wurde geladen"
+
+#: ../admin/functions.php:1437
+msgid "Missing a temporary folder"
+msgstr "Konnte temporäres Verzeichnis nicht finden"
+
+#: ../admin/functions.php:1440
+msgid "Failed to write file to disk"
+msgstr "Konnte Datei nicht speichern"
+
+#: ../admin/functions.php:1443
+msgid "File upload stopped by extension"
+msgstr "Upload dieser Dateierweiterung nicht erlaubt"
+
+#: ../admin/functions.php:1446
+msgid "Unknown upload error"
+msgstr "Unbekannter Uploadfehler"
+
+#: ../admin/install.php:23
+msgid "Sorry, NextGEN Gallery works only with a role called administrator"
+msgstr "Tut mir leid, aber NextGEN Gallery benötigt zwingend die Rolle \"Administrator\""
+
+#: ../admin/install.php:112
+msgid "NextGEN Gallery : Tables could not created, please check your database settings"
+msgstr "NextGEN Gallery : Tabellen konnten nicht erstellt werden, überprüfe Deine Datenbank"
+
+#: ../admin/install.php:170
+msgid "[Show as slideshow]"
+msgstr "[Zeige als Diashow]"
+
+#: ../admin/install.php:171
+msgid "[Show picture list]"
+msgstr "[Zeige Bilder-Liste]"
+
+#: ../admin/manage-galleries.php:20
+#: ../admin/manage-images.php:55
+msgid "&laquo;"
+msgstr "&laquo;"
+
+#: ../admin/manage-galleries.php:21
+#: ../admin/manage-images.php:56
+msgid "&raquo;"
+msgstr "&raquo;"
+
+#: ../admin/manage-galleries.php:62
+#: ../admin/manage-images.php:170
+msgid "No images selected"
+msgstr "Keine Bilder ausgewählt"
+
+#: ../admin/manage-galleries.php:70
+#: ../admin/manage-galleries.php:142
+#: ../admin/manage-images.php:198
+#: ../admin/manage-images.php:342
+#: ../admin/manage.php:200
+#: ../admin/manage.php:278
+msgid "Resize images"
+msgstr "Bilder verkleinern"
+
+#: ../admin/manage-galleries.php:79
+#, php-format
+msgid ""
+"You are about to start the bulk edit for %s galleries \n"
+" \n"
+" 'Cancel' to stop, 'OK' to proceed."
+msgstr ""
+"Du startest die Bearbeitung von %s Galerien \n"
+" \n"
+" 'Abbrechen' um zu stoppen, 'OK' um die Bearbeitung durchzuführen."
+
+#: ../admin/manage-galleries.php:123
+#: ../admin/manage-galleries.php:126
+#: ../admin/manage-images.php:225
+#: ../admin/manage-images.php:228
+msgid "Search Images"
+msgstr "Suche Bilder"
+
+#: ../admin/manage-galleries.php:138
+#: ../admin/manage-images.php:339
+msgid "Bulk actions"
+msgstr "Aktion wählen"
+
+#: ../admin/manage-galleries.php:140
+#: ../admin/manage-images.php:340
+#: ../admin/manage.php:133
+#: ../admin/manage.php:242
+msgid "Set watermark"
+msgstr "Wasserzeichen setzen"
+
+#: ../admin/manage-galleries.php:143
+#: ../admin/manage-images.php:345
+#: ../admin/manage.php:138
+#: ../admin/manage.php:262
+msgid "Import metadata"
+msgstr "Metadaten importieren"
+
+#: ../admin/manage-galleries.php:144
+#: ../admin/manage-images.php:343
+#: ../admin/manage.php:128
+#: ../admin/manage.php:239
+msgid "Recover from backup"
+msgstr "Original wiederherstellen"
+
+#: ../admin/manage-galleries.php:146
+#: ../admin/manage-images.php:354
+msgid "Apply"
+msgstr "Übernehmen"
+
+#: ../admin/manage-galleries.php:154
+#: ../admin/manage-galleries.php:266
+#: ../admin/manage-images.php:330
+#: ../admin/manage-images.php:514
+#, php-format
+msgid "Displaying %s&#8211;%s of %s"
+msgstr "Zeige %s&#8211;%s von %s"
+
+#: ../admin/manage-galleries.php:219
+msgid "Edit"
+msgstr "Bearbeiten"
+
+#: ../admin/manage-galleries.php:259
+#: ../admin/manage-images.php:505
+msgid "No entries found"
+msgstr "Keine Einträge gefunden"
+
+#: ../admin/manage-galleries.php:313
+#: ../admin/manage-images.php:595
+msgid "Resize Images to"
+msgstr "Verkleiner Bilder auf"
+
+#: ../admin/manage-galleries.php:317
+#: ../admin/manage-images.php:599
+msgid "Width x height (in pixel). NextGEN Gallery will keep ratio size"
+msgstr "Breite x Höhe (in Pixel). Das Seitenverhältnis wird berücksichtigt."
+
+#: ../admin/manage-galleries.php:341
+#: ../admin/manage-images.php:623
+msgid "Width x height (in pixel)"
+msgstr "Breite x Höhe (in Pixel)"
+
+#: ../admin/manage-galleries.php:343
+#: ../admin/manage-images.php:625
+msgid "These values are maximum values "
+msgstr "Diese Angaben sind maximale Angaben."
+
+#: ../admin/manage-galleries.php:346
+#: ../admin/manage-images.php:628
+msgid "Set fix dimension"
+msgstr "Setze feste Größe"
+
+#: ../admin/manage-galleries.php:348
+#: ../admin/manage-images.php:630
+msgid "Ignore the aspect ratio, no portrait thumbnails"
+msgstr "Ignoriere Bildseitenverhältnis"
+
+#: ../admin/manage-galleries.php:371
+#: ../admin/manage-images.php:658
+msgid "ID"
+msgstr "ID"
+
+#: ../admin/manage-galleries.php:373
+#: ../admin/manage-images.php:266
+#: ../admin/manage-images.php:663
+msgid "Description"
+msgstr "Beschreibung"
+
+#: ../admin/manage-galleries.php:374
+#: ../admin/manage-images.php:287
+msgid "Author"
+msgstr "Autor"
+
+#: ../admin/manage-galleries.php:375
+msgid "Page ID"
+msgstr "Seiten-ID"
+
+#: ../admin/manage-galleries.php:376
+msgid "Image"
+msgid_plural "Images"
+msgstr[0] "Bild"
+msgstr[1] "Bilder"
+
+#: ../admin/manage-images.php:32
+msgid "Gallery not found."
+msgstr "Galerie nicht gefunden"
+
+#: ../admin/manage-images.php:38
+msgid "Sorry, you have no access here"
+msgstr "Sorry, Du hast nicht genügend Rechte"
+
+#: ../admin/manage-images.php:178
+msgid "Copy image to..."
+msgstr "Kopiere nach..."
+
+#: ../admin/manage-images.php:182
+msgid "Move image to..."
+msgstr "Verschiebe nach..."
+
+#: ../admin/manage-images.php:186
+msgid "Add new tags"
+msgstr "Stichwörter hinzufügen"
+
+#: ../admin/manage-images.php:190
+#: ../admin/manage-images.php:351
+msgid "Delete tags"
+msgstr "Stichwörter löschen"
+
+#: ../admin/manage-images.php:194
+msgid "Overwrite"
+msgstr "Überschreiben"
+
+#: ../admin/manage-images.php:207
+#, php-format
+msgid ""
+"You are about to start the bulk edit for %s images \n"
+" \n"
+" 'Cancel' to stop, 'OK' to proceed."
+msgstr ""
+"Du startest die Bearbeitung von %s Bildern \n"
+" \n"
+" 'Abbrechen' um zu stoppen, 'OK' um die Bearbeitung durchzuführen."
+
+#: ../admin/manage-images.php:222
+#, php-format
+msgid "Search results for &#8220;%s&#8221;"
+msgstr "Suchergebinsse für &#8220;%s&#8221;"
+
+#: ../admin/manage-images.php:251
+msgid "Gallery settings"
+msgstr "Galerie Einstellungen"
+
+#: ../admin/manage-images.php:251
+msgid "Click here for more settings"
+msgstr "Hier klicken für weitere Einstellungen"
+
+#: ../admin/manage-images.php:268
+msgid "Preview image"
+msgstr "Vorschau-Bild"
+
+#: ../admin/manage-images.php:271
+msgid "No Picture"
+msgstr "Kein Bild"
+
+#: ../admin/manage-images.php:285
+msgid "Path"
+msgstr "Pfad"
+
+#: ../admin/manage-images.php:302
+msgid "Create new page"
+msgstr "Neue Seite erstellen"
+
+#: ../admin/manage-images.php:305
+msgid "Main page (No parent)"
+msgstr "Hauptseite (keine Unterseite)"
+
+#: ../admin/manage-images.php:308
+msgid "Add page"
+msgstr "Seite hinzufügen"
+
+#: ../admin/manage-images.php:317
+msgid "Scan Folder for new images"
+msgstr "Überprüfe Verzeichnis nach neuen Bildern"
+
+#: ../admin/manage-images.php:318
+#: ../admin/manage-images.php:360
+#: ../admin/manage-images.php:512
+msgid "Save Changes"
+msgstr "Änderungen speichern"
+
+#: ../admin/manage-images.php:344
+msgid "Delete images"
+msgstr "Bilder löschen"
+
+#: ../admin/manage-images.php:346
+msgid "Rotate images clockwise"
+msgstr "Rechts drehen"
+
+#: ../admin/manage-images.php:347
+msgid "Rotate images counter-clockwise"
+msgstr "Links drehen"
+
+#: ../admin/manage-images.php:348
+msgid "Copy to..."
+msgstr "Kopiere nach..."
+
+#: ../admin/manage-images.php:349
+msgid "Move to..."
+msgstr "Verschiebe nach..."
+
+#: ../admin/manage-images.php:350
+msgid "Add tags"
+msgstr "Stichwörter hinzufügen"
+
+#: ../admin/manage-images.php:352
+msgid "Overwrite tags"
+msgstr "Stichwörter überschreiben"
+
+#: ../admin/manage-images.php:357
+msgid "Sort gallery"
+msgstr "Sortiere Bilder"
+
+#: ../admin/manage-images.php:431
+msgid "pixel"
+msgstr "pixel"
+
+#: ../admin/manage-images.php:437
+#, php-format
+msgid "View \"%s\""
+msgstr "Anzeigen \"%s\""
+
+#: ../admin/manage-images.php:437
+msgid "View"
+msgstr "Ansehen"
+
+#: ../admin/manage-images.php:438
+msgid "Show Meta data"
+msgstr "Zeige Metadaten"
+
+#: ../admin/manage-images.php:438
+msgid "Meta"
+msgstr "Meta"
+
+#: ../admin/manage-images.php:439
+msgid "Customize thumbnail"
+msgstr "Thumbnails anpassen"
+
+#: ../admin/manage-images.php:439
+msgid "Edit thumb"
+msgstr "Thumbnail ändern"
+
+#: ../admin/manage-images.php:440
+msgid "Rotate"
+msgstr "Drehen"
+
+#: ../admin/manage-images.php:442
+msgid "Publish this image"
+msgstr "Bild veröffentlichen"
+
+#: ../admin/manage-images.php:442
+msgid "Publish"
+msgstr "Veröffentlichen"
+
+#: ../admin/manage-images.php:444
+msgid "Recover"
+msgstr "Rücksetzen"
+
+#: ../admin/manage-images.php:444
+#, php-format
+msgid "Recover \"%s\" ?"
+msgstr " \"%s\" wiederherstellen ?"
+
+#: ../admin/manage-images.php:445
+#, php-format
+msgid "Delete \"%s\" ?"
+msgstr "Lösche \"%s\" ?"
+
+#: ../admin/manage-images.php:535
+msgid "Enter the tags"
+msgstr "Stichwörter angeben"
+
+#: ../admin/manage-images.php:559
+msgid "Select the destination gallery:"
+msgstr "Galerie auswählen:"
+
+#: ../admin/manage-images.php:659
+msgid "Thumbnail"
+msgstr "Thumbnail"
+
+#: ../admin/manage-images.php:661
+#: ../admin/manage-sort.php:77
+msgid "Filename"
+msgstr "Dateiname"
+
+#: ../admin/manage-images.php:663
+msgid "Alt &amp; Title Text"
+msgstr "Alt &amp; Titel Text"
+
+#: ../admin/manage-images.php:664
+msgid "Tags (comma separated list)"
+msgstr "Stichwörter (Tags)"
+
+#: ../admin/manage-images.php:666
+msgid "exclude"
+msgstr "ausschließen"
+
+#: ../admin/manage-sort.php:33
+msgid "Sort order changed"
+msgstr "Reihenfolge aktualisiert"
+
+#: ../admin/manage-sort.php:62
+msgid "Sort Gallery"
+msgstr "Sortiere Bilder"
+
+#: ../admin/manage-sort.php:66
+msgid "Update Sort Order"
+msgstr "Sortierung speichern"
+
+#: ../admin/manage-sort.php:69
+msgid "Back to gallery"
+msgstr "Zurück zur Galerie"
+
+#: ../admin/manage-sort.php:74
+msgid "Presort"
+msgstr "Vorsortieren"
+
+#: ../admin/manage-sort.php:75
+msgid "Unsorted"
+msgstr "Unsortiert"
+
+#: ../admin/manage-sort.php:76
+msgid "Image ID"
+msgstr "Bilder ID"
+
+#: ../admin/manage-sort.php:78
+msgid "Alt/Title text"
+msgstr "Alt / Titel Text"
+
+#: ../admin/manage-sort.php:79
+msgid "Date/Time"
+msgstr "Datum/Zeit"
+
+#: ../admin/manage-sort.php:80
+msgid "Ascending"
+msgstr "Aufsteigend"
+
+#: ../admin/manage-sort.php:81
+msgid "Descending"
+msgstr "Absteigend"
+
+#: ../admin/manage.php:77
+msgid "Picture"
+msgstr "Bild"
+
+#: ../admin/manage.php:77
+msgid "deleted successfully"
+msgstr "erfolgreich gelöscht"
+
+#: ../admin/manage.php:92
+#: ../admin/manage.php:101
+msgid "Operation successful. Please clear your browser cache."
+msgstr "Thumbnails erfolgreich erstellt. Bitte Browser-Cache löschen."
+
+#: ../admin/manage.php:168
+msgid "Gallery deleted successfully "
+msgstr "Galerie gelöscht"
+
+#: ../admin/manage.php:233
+#: ../admin/manage.php:236
+msgid "Rotate images"
+msgstr "Bild drehen"
+
+#: ../admin/manage.php:258
+msgid "Pictures deleted successfully "
+msgstr "Bilder erfolgreich gelöscht"
+
+#: ../admin/manage.php:354
+msgid "Tags changed"
+msgstr "Stichwörter geändert"
+
+#: ../admin/manage.php:390
+msgid "Update successful"
+msgstr "Aktualisierung erfolgreich"
+
+#: ../admin/manage.php:425
+msgid "New gallery page ID"
+msgstr "Neue Galerie Seiten ID"
+
+#: ../admin/manage.php:425
+msgid "created"
+msgstr "erstellt"
+
+#: ../admin/manage.php:461
+msgid "Published a new post"
+msgstr "Verföffentliche einen neuen Beitrag"
+
+#: ../admin/media-upload.php:166
+msgid "No gallery"
+msgstr "Keine Galerie"
+
+#: ../admin/media-upload.php:178
+msgid "Select &#187;"
+msgstr "Wähle &#187;"
+
+#: ../admin/media-upload.php:209
+msgid "Show"
+msgstr "Zeige"
+
+#: ../admin/media-upload.php:210
+msgid "Hide"
+msgstr "Verstecke"
+
+#: ../admin/media-upload.php:215
+msgid "Image ID:"
+msgstr "Bild ID:"
+
+#: ../admin/media-upload.php:229
+#: ../admin/publish.php:55
+msgid "Alignment"
+msgstr "Ausrichtung"
+
+#: ../admin/media-upload.php:232
+#: ../admin/publish.php:57
+#: ../admin/settings.php:478
+msgid "None"
+msgstr "Keiner"
+
+#: ../admin/media-upload.php:234
+#: ../admin/publish.php:59
+#: ../admin/tinymce/window.php:120
+msgid "Left"
+msgstr "Links"
+
+#: ../admin/media-upload.php:236
+#: ../admin/publish.php:61
+#: ../admin/tinymce/window.php:121
+msgid "Center"
+msgstr "Zentrieren"
+
+#: ../admin/media-upload.php:238
+#: ../admin/publish.php:63
+#: ../admin/tinymce/window.php:122
+msgid "Right"
+msgstr "Rechts"
+
+#: ../admin/media-upload.php:242
+#: ../admin/settings.php:585
+msgid "Size"
+msgstr "Größe"
+
+#: ../admin/media-upload.php:248
+msgid "Full size"
+msgstr "Volle Größe"
+
+#: ../admin/media-upload.php:250
+msgid "Singlepic"
+msgstr "Einzelbilder"
+
+#: ../admin/media-upload.php:263
+msgid "Insert into Post"
+msgstr "In den Beitrag einfügen"
+
+#: ../admin/media-upload.php:274
+msgid "Save all changes"
+msgstr "Änderungen speichern"
+
+#: ../admin/overview.php:14
+msgid "NextGEN Gallery Overview"
+msgstr "NextGEN Gallery Übersicht"
+
+#: ../admin/overview.php:86
+msgid "Welcome to NextGEN Gallery !"
+msgstr "Willkomen bei NextGEN Gallery"
+
+#: ../admin/overview.php:87
+msgid "Do you like this Plugin?"
+msgstr "Bist Du mit dem Plugin zufrieden ?"
+
+#: ../admin/overview.php:89
+msgid "Translation"
+msgstr "Übersetzung"
+
+#: ../admin/overview.php:90
+msgid "Latest News"
+msgstr "Letzte Informationen"
+
+#: ../admin/overview.php:91
+msgid "Recent donators"
+msgstr "Neueste Spender"
+
+#: ../admin/overview.php:93
+msgid "Plugin Check"
+msgstr "Plugin prüfen"
+
+#: ../admin/overview.php:94
+msgid "Server Settings"
+msgstr "Server- Einstellungen"
+
+#: ../admin/overview.php:95
+msgid "Related plugins"
+msgstr "Verwandte Plugins"
+
+#: ../admin/overview.php:101
+#, php-format
+msgid "This plugin is primarily developed, maintained, supported and documented by <a href=\"%s\">Alex Rabe</a> with a lot of love & effort. Any kind of contribution would be highly appreciated. Thanks!"
+msgstr "Dieses Plugin wird mit viel Mühe & Leidenschaft entwickelt, dokumentiert und supported von <a href=\"%s\">Alex Rabe</a>. Vielleicht möchtest Du dich ja dankbar zeigen. "
+
+#: ../admin/overview.php:106
+msgid "Give it a good rating on WordPress.org."
+msgstr "Bitte bewerte das Plugin bei WordPress.org."
+
+#: ../admin/overview.php:111
+msgid "Donate the work via paypal."
+msgstr "Zeig Dich für diese Arbeit per PayPal dankbar"
+
+#: ../admin/overview.php:116
+msgid "Send a gift to show your appreciation."
+msgstr "Schau doch einfach auf meinen Wunschzettel."
+
+#: ../admin/overview.php:121
+msgid "Help translating it."
+msgstr "Hilf das Plugin zu übersetzen."
+
+#: ../admin/overview.php:258
+msgid "Running..."
+msgstr "Läuft... Bitte warten"
+
+#: ../admin/overview.php:305
+msgid "Check plugin/theme conflict"
+msgstr "Plugin/Theme Konflikt prüfen"
+
+#: ../admin/overview.php:306
+#: ../admin/overview.php:312
+#: ../admin/overview.php:318
+msgid "Not tested"
+msgstr "Nicht getested"
+
+#: ../admin/overview.php:307
+msgid "No conflict could be detected"
+msgstr "Es konnte kein Konflikt festgestellt werden"
+
+#: ../admin/overview.php:308
+msgid "Test failed, disable other plugins & switch to default theme"
+msgstr "Test fehlgeschlagen, deaktiviere andere Plugins & aktiviere das Default Theme"
+
+#: ../admin/overview.php:311
+msgid "Test image function"
+msgstr "Teste Bildbearbeitung"
+
+#: ../admin/overview.php:313
+msgid "The plugin could create images"
+msgstr "Es konnte ein Bild erstellt werden"
+
+#: ../admin/overview.php:314
+msgid "Couldn't create image, check your memory limit"
+msgstr "Konne kein Bild erzeugen, überprüfe dein Speicherlimit (Server)"
+
+#: ../admin/overview.php:317
+msgid "Check theme compatibility"
+msgstr "Theme Kompatibilität prüfen"
+
+#: ../admin/overview.php:319
+msgid "Your theme should work fine with NextGEN Gallery"
+msgstr "Dein Theme sollte mit NextGEN Gallery funktionieren"
+
+#: ../admin/overview.php:320
+msgid "wp_head()/wp_footer() is missing, contact the theme author"
+msgstr "wp_head()/wp_footer() wurde nicht gefunden, kontaktiere den Theme Author"
+
+#: ../admin/overview.php:324
+msgid "Check plugin"
+msgstr "Plugin prüfen"
+
+#: ../admin/overview.php:345
+msgid "Graphic Library"
+msgstr "Grafik-Bibliothek"
+
+#: ../admin/overview.php:361
+#: ../admin/overview.php:410
+#: ../admin/overview.php:597
+#: ../admin/overview.php:787
+msgid "Loading&#8230;"
+msgstr "Lade&#8230;"
+
+#: ../admin/overview.php:361
+#: ../admin/overview.php:410
+#: ../admin/overview.php:597
+#: ../admin/overview.php:787
+msgid "This widget requires JavaScript."
+msgstr "Dieses Widget braucht JavaScript."
+
+#: ../admin/overview.php:374
+msgid "Thanks to all donators..."
+msgstr "Danke an alle Spender..."
+
+#: ../admin/overview.php:396
+msgid "View all"
+msgstr "Alle ansehen"
+
+#: ../admin/overview.php:422
+#, php-format
+msgid "Newsfeed could not be loaded.  Check the <a href=\"%s\">front page</a> to check for updates."
+msgstr "Der Newsfeed kann nicht geladen werden. Schaue auf die <a href=\"%s\">Hauptseite</a>, um Updates mitzubekommen."
+
+#: ../admin/overview.php:434
+msgid "Untitled"
+msgstr "Kein Titel"
+
+#: ../admin/overview.php:484
+msgid "At a Glance"
+msgstr "Übersicht"
+
+#: ../admin/overview.php:510
+msgid "Upload pictures"
+msgstr "Bilder hochladen"
+
+#: ../admin/overview.php:511
+msgid "Here you can control your images, galleries and albums."
+msgstr "Hier kannst Du die  Bilder, Galerien und Alben verwalten."
+
+#: ../admin/overview.php:541
+msgid "Storage Space"
+msgstr "Speicherplatz"
+
+#: ../admin/overview.php:545
+#, php-format
+msgid "<a href=\"%1$s\" title=\"Manage Uploads\" class=\"musublink\">%2$sMB</a>"
+msgstr "<a href=\"%1$s\" title=\"Verwalte Uploads\" class=\"musublink\">%2$sMB</a>"
+
+#: ../admin/overview.php:546
+msgid "Space Allowed"
+msgstr "Speicher verfügbar"
+
+#: ../admin/overview.php:553
+#, php-format
+msgid "<a href=\"%1$s\" title=\"Manage Uploads\" class=\"musublink\">%2$sMB (%3$s%%)</a>"
+msgstr "<a href=\"%1$s\" title=\"Verwalte Uploads\" class=\"musublink\">%2$sMB (%3$s%%)</a>"
+
+#: ../admin/overview.php:554
+msgid "Space Used"
+msgstr "Verbrauchter Uploadspeicher"
+
+#: ../admin/overview.php:583
+msgid "Translation file successful updated. Please reload page."
+msgstr "Übersetzungsdatei aktualisiert. Bitte Seite neu laden."
+
+#: ../admin/overview.php:585
+msgid "Reload page"
+msgstr "Seite neu laden"
+
+#: ../admin/overview.php:590
+msgid "Translation file couldn't be updated"
+msgstr "Übersetzung konnte nicht aktualisiert werden"
+
+#: ../admin/overview.php:627
+msgid "Download"
+msgstr "Jetzt updaten"
+
+#: ../admin/overview.php:656
+msgid "No GD support"
+msgstr "Keine GD Unterstützung"
+
+#: ../admin/overview.php:668
+#: ../admin/overview.php:714
+#: ../admin/overview.php:717
+#: ../admin/overview.php:720
+msgid "Yes"
+msgstr "Ja"
+
+#: ../admin/overview.php:670
+#: ../admin/overview.php:715
+#: ../admin/overview.php:718
+#: ../admin/overview.php:721
+msgid "No"
+msgstr "Nein"
+
+#: ../admin/overview.php:688
+msgid "Not set"
+msgstr "Nicht gesetzt"
+
+#: ../admin/overview.php:690
+#: ../admin/overview.php:693
+msgid "On"
+msgstr "An"
+
+#: ../admin/overview.php:691
+#: ../admin/overview.php:694
+msgid "Off"
+msgstr "Aus"
+
+#: ../admin/overview.php:697
+#: ../admin/overview.php:700
+#: ../admin/overview.php:703
+#: ../admin/overview.php:706
+#: ../admin/overview.php:709
+#: ../admin/overview.php:712
+msgid "N/A"
+msgstr "N/A"
+
+#: ../admin/overview.php:711
+msgid " MByte"
+msgstr " MByte"
+
+#: ../admin/overview.php:724
+msgid "Operating System"
+msgstr "Betriebssystem"
+
+#: ../admin/overview.php:725
+msgid "Server"
+msgstr "Server"
+
+#: ../admin/overview.php:726
+msgid "Memory usage"
+msgstr "Speicherverbrauch"
+
+#: ../admin/overview.php:727
+msgid "MYSQL Version"
+msgstr "MySQL Version"
+
+#: ../admin/overview.php:728
+msgid "SQL Mode"
+msgstr "SQL Modus"
+
+#: ../admin/overview.php:729
+msgid "PHP Version"
+msgstr "PHP Version"
+
+#: ../admin/overview.php:730
+msgid "PHP Safe Mode"
+msgstr "PHP Safe Mode"
+
+#: ../admin/overview.php:731
+msgid "PHP Allow URL fopen"
+msgstr "PHP Allow URL fopen"
+
+#: ../admin/overview.php:732
+msgid "PHP Memory Limit"
+msgstr "PHP Memory Limit"
+
+#: ../admin/overview.php:733
+msgid "PHP Max Upload Size"
+msgstr "PHP Max Upload Größe"
+
+#: ../admin/overview.php:734
+msgid "PHP Max Post Size"
+msgstr "PHP Max Post Größe"
+
+#: ../admin/overview.php:735
+msgid "PCRE Backtracking Limit"
+msgstr "PCRE Backtracking Limit"
+
+#: ../admin/overview.php:736
+msgid "PHP Max Script Execute Time"
+msgstr "PHP Max Script Execute Time"
+
+#: ../admin/overview.php:737
+msgid "PHP Exif support"
+msgstr "PHP Exif Modul"
+
+#: ../admin/overview.php:738
+msgid "PHP IPTC support"
+msgstr "PHP IPTC Modul"
+
+#: ../admin/overview.php:739
+msgid "PHP XML support"
+msgstr "PHP XML Modul"
+
+#: ../admin/overview.php:751
+msgid "NextGEN Gallery contains some functions which are only available under PHP 5.2. You are using the old PHP 4 version, upgrade now! It's no longer supported by the PHP group. Many shared hosting providers offer both PHP 4 and PHP 5, running simultaneously. Ask your provider if they can do this."
+msgstr "NextGEN Gallery enthält einige Funktionen, die nur unter PHP 5.2 verfügbar sind. Du nutzt immer noch die alte PHP 4 Version. Bitte aktualisiere so bald wie möglich diese Version, sie wird nicht mehr gepflegt und weiterentwicklelt. Die meisten Hoster bieten bereits PHP5 an. Bitte kontaktiere Deinen Provider und frag kurz nach, ob sie ein Update durchführen können."
+
+#: ../admin/overview.php:843
+msgid "Install"
+msgstr "Installieren"
+
+#: ../admin/publish.php:45
+msgid "Post title"
+msgstr "Beitragstitel"
+
+#: ../admin/publish.php:47
+msgid "Enter the post title "
+msgstr "Artikelüberschrift "
+
+#: ../admin/publish.php:52
+msgid "Size of the image"
+msgstr "Größe des Bildes"
+
+#: ../admin/publish.php:70
+msgid "Draft"
+msgstr "Entwurf"
+
+#: ../admin/roles.php:22
+msgid "Updated capabilities"
+msgstr "Zugriffsrechte geändert"
+
+#: ../admin/roles.php:28
+msgid "Roles / capabilities"
+msgstr "Rollen / Zugriffsrechte"
+
+#: ../admin/roles.php:29
+msgid "Select the lowest role which should be able to access the following capabilities. NextGEN Gallery supports the standard roles from WordPress."
+msgstr "Wähle die niedrigste Rolle aus, die Zugriff haben soll. NextGEN Gallery unterstützt nur die Standard-Wordpress-Rollen-Fähigkeiten von WordPress."
+
+#: ../admin/roles.php:30
+msgid "For a more flexible user management you can use the"
+msgstr "Nutze für eine flexiblere Rechteverwaltung den "
+
+#: ../admin/roles.php:35
+msgid "Main NextGEN Gallery overview"
+msgstr "NextGEN Galerie Übersicht"
+
+#: ../admin/roles.php:39
+msgid "Use TinyMCE Button / Upload tab"
+msgstr "TinyMCE Button / Upload Tab"
+
+#: ../admin/roles.php:43
+msgid "Add gallery / Upload images"
+msgstr "Galerie einrichten / Bilder hochladen"
+
+#: ../admin/roles.php:47
+msgid "Manage gallery"
+msgstr "Galerie verwalten"
+
+#: ../admin/roles.php:51
+msgid "Manage others gallery"
+msgstr "Alle Galerien verwalten"
+
+#: ../admin/roles.php:55
+msgid "Manage tags"
+msgstr "Verwalte Stichwörter"
+
+#: ../admin/roles.php:63
+msgid "Change style"
+msgstr "Style anpassen"
+
+#: ../admin/roles.php:67
+msgid "Change options"
+msgstr "Optionen änderen"
+
+#: ../admin/roles.php:71
+msgid "Update capabilities"
+msgstr "Rechte aktualisieren"
+
+#: ../admin/rotate.php:55
+msgid "Image rotated"
+msgstr "Bild gedreht"
+
+#: ../admin/rotate.php:56
+msgid "Error rotating thumbnail"
+msgstr "Konnte Bild nicht bearbeiten"
+
+#: ../admin/rotate.php:81
+msgid "90&deg; clockwise"
+msgstr "90° rechts drehen"
+
+#: ../admin/rotate.php:82
+msgid "90&deg; anticlockwise"
+msgstr "90° links drehen"
+
+#: ../admin/rotate.php:83
+msgid "Flip vertically"
+msgstr "Vertikal spiegeln"
+
+#: ../admin/rotate.php:84
+msgid "Flip horizontally"
+msgstr "Horizontal spiegeln"
+
+#: ../admin/settings.php:92
+msgid "Cache cleared"
+msgstr "Cache löschen"
+
+#: ../admin/settings.php:211
+#: ../admin/settings.php:230
+msgid "General Options"
+msgstr "Allg. Optionen"
+
+#: ../admin/settings.php:212
+#: ../admin/settings.php:415
+msgid "Thumbnails"
+msgstr "Thumbnails"
+
+#: ../admin/settings.php:213
+msgid "Images"
+msgstr "Bilder"
+
+#: ../admin/settings.php:215
+#: ../admin/settings.php:467
+msgid "Effects"
+msgstr "Effekte"
+
+#: ../admin/settings.php:216
+#: ../admin/settings.php:509
+#: ../admin/tinymce/window.php:110
+msgid "Watermark"
+msgstr "Wasserzeichen"
+
+#: ../admin/settings.php:217
+#: ../admin/settings.php:416
+#: ../admin/settings.php:616
+#: ../admin/tinymce/window.php:63
+msgid "Slideshow"
+msgstr "Slideshow"
+
+#: ../admin/settings.php:236
+#: ../admin/wpmu.php:68
+msgid "Gallery path"
+msgstr "Galerie-Pfad"
+
+#: ../admin/settings.php:238
+msgid "This is the default path for all galleries"
+msgstr "Dies ist der Standard-Pfad für alle Galerien"
+
+#: ../admin/settings.php:241
+msgid "Delete image files"
+msgstr "Lösche Bilddateien"
+
+#: ../admin/settings.php:243
+msgid "Delete files, when removing a gallery in the database"
+msgstr "Löscht auch die Dateien, falls die Galerie aus der Datenbank entfernt wird"
+
+#: ../admin/settings.php:246
+msgid "Activate permalinks"
+msgstr "Aktiviere Permalinks"
+
+#: ../admin/settings.php:248
+msgid "When you activate this option, you need to update your permalink structure one time."
+msgstr "Wenn Du diese Option aktivierst, muss Du einmal die Permalink Struktur aktualisieren."
+
+#: ../admin/settings.php:251
+msgid "Create new URL friendly image slugs"
+msgstr "Erstelle neue URL lesbare Schlagwörter "
+
+#: ../admin/settings.php:252
+#: ../admin/settings.php:369
+msgid "Proceed now"
+msgstr "Jetzt durchführen"
+
+#: ../admin/settings.php:253
+msgid "Currently not used, prepare database for upcoming version"
+msgstr "Derzeit nicht genutzt, Vorbereitung für kommende Versionen"
+
+#: ../admin/settings.php:256
+msgid "Select graphic library"
+msgstr "Wähle Grafik-Bibliothek"
+
+#: ../admin/settings.php:257
+msgid "GD Library"
+msgstr "GD Bibliothek"
+
+#: ../admin/settings.php:258
+msgid "ImageMagick (Experimental). Path to the library :"
+msgstr "ImageMagick (Experimental). Pfad zur Bibliothek :"
+
+#: ../admin/settings.php:263
+msgid "Activate Media RSS feed"
+msgstr "Aktiviere Media-RSS-Feed"
+
+#: ../admin/settings.php:265
+msgid "A RSS feed will be added to you blog header. Useful for CoolIris/PicLens"
+msgstr "Ein Bilder-RSS Feed wird zum Blog hinzugefügt"
+
+#: ../admin/settings.php:268
+msgid "Activate PicLens/CoolIris support"
+msgstr "Aktiviere PicLens/CoolIris"
+
+#: ../admin/settings.php:270
+msgid "When you activate this option, some javascript is added to your site footer. Make sure that wp_footer is called in your theme."
+msgstr "Dieser Effekt fügt ein neues Javascript zu Deinem Theme hinzu. Beachte, dass wp_footer() in Deinen Vorlagen aufgerufen wird."
+
+#: ../admin/settings.php:273
+msgid "Tags / Categories"
+msgstr "Stichwörter /  Kategorien"
+
+#: ../admin/settings.php:276
+msgid "Activate related images"
+msgstr "Verwandte Bilder anzeigen"
+
+#: ../admin/settings.php:278
+msgid "This option will append related images to every post"
+msgstr "Diese Option hängt verwandte Bilder an jeden Beitrag"
+
+#: ../admin/settings.php:282
+msgid "Match with"
+msgstr "Vergleiche mit"
+
+#: ../admin/settings.php:283
+msgid "Categories"
+msgstr "Kategorien"
+
+#: ../admin/settings.php:288
+msgid "Max. number of images"
+msgstr "Max. Anzahl der Bilder"
+
+#: ../admin/settings.php:290
+msgid "0 will show all images"
+msgstr "0 zeige alle verwandten Bilder"
+
+#: ../admin/settings.php:294
+#: ../admin/settings.php:325
+#: ../admin/settings.php:372
+#: ../admin/settings.php:457
+#: ../admin/settings.php:492
+#: ../admin/settings.php:753
+msgid "More settings"
+msgstr "Mehr Einstellungen"
+
+#: ../admin/settings.php:304
+msgid "Thumbnail settings"
+msgstr "Thumbnail-Einstellungen"
+
+#: ../admin/settings.php:308
+msgid "Please note : If you change the settings, you need to recreate the thumbnails under -> Manage Gallery ."
+msgstr "Bitte beachten : Änderungen der Einstellungen werden erst übernommen, wenn Du neue Thumbnails unter -> \"Gallery verwalten\" erstellst"
+
+#: ../admin/settings.php:321
+msgid "Thumbnail quality"
+msgstr "Thumbnail Qualität"
+
+#: ../admin/settings.php:335
+msgid "Image settings"
+msgstr "Bild-Einstellungen"
+
+#: ../admin/settings.php:341
+msgid "Resize Images"
+msgstr "Bilder verkleinern"
+
+#: ../admin/settings.php:346
+msgid "Image quality"
+msgstr "Bild Qualität"
+
+#: ../admin/settings.php:350
+msgid "Backup original images"
+msgstr "Backup von Original-Bildern "
+
+#: ../admin/settings.php:352
+msgid "Creates a backup for inserted images"
+msgstr "Backup der Bilder anlegen"
+
+#: ../admin/settings.php:355
+msgid "Automatically resize"
+msgstr "Grösse automatisch anpassen"
+
+#: ../admin/settings.php:357
+msgid "Automatically resize images on upload."
+msgstr "Passt die Grösse automatisch beim Upload an"
+
+#: ../admin/settings.php:360
+msgid "Single picture"
+msgstr "Einzelbilder"
+
+#: ../admin/settings.php:363
+msgid "Cache single pictures"
+msgstr "Nutze Cache für Einzelbilder"
+
+#: ../admin/settings.php:365
+msgid "Creates a file for each singlepic settings. Reduce the CPU load"
+msgstr "Erstellt ein Cache-Bild für jedes Einzelbild (singlepic). Reduziert die CPU Belastung."
+
+#: ../admin/settings.php:368
+msgid "Clear cache folder"
+msgstr "Lösche Cache-Verzeichnis"
+
+#: ../admin/settings.php:389
+msgid "Deactivate gallery page link"
+msgstr "Keine Seitenverzweigung"
+
+#: ../admin/settings.php:391
+msgid "The album will not link to a gallery subpage. The gallery is shown on the same page."
+msgstr "Ein Album benötigt dann keinen Link zur Seite. Die Galerie wird direkt angezeigt."
+
+#: ../admin/settings.php:395
+msgid "Number of images per page"
+msgstr "Anzahl der Bilder pro Seite"
+
+#: ../admin/settings.php:397
+msgid "0 will disable pagination, all images on one page"
+msgstr "0 schaltet Blätterfunktion ab ( = alle Bilder auf einer Seite )"
+
+#: ../admin/settings.php:401
+msgid "Number of columns"
+msgstr "Anzahl der Spalten"
+
+#: ../admin/settings.php:403
+msgid "0 will display as much as possible based on the width of your theme. Setting normally only required for captions below the images"
+msgstr "Mit \"0\" werden soviele Bilder wie möglich in einer Reihe dargestellt. Die Einstellung ist normalerweise nur für Beschriftungen unterhalb der Bilder sinnvoll."
+
+#: ../admin/settings.php:407
+msgid "Integrate slideshow"
+msgstr "Slideshow verwenden"
+
+#: ../admin/settings.php:414
+msgid "Show first"
+msgstr "Zeige als Erstes"
+
+#: ../admin/settings.php:420
+msgid "Show ImageBrowser"
+msgstr "Zeige Bilder-Browser"
+
+#: ../admin/settings.php:422
+msgid "The gallery will open the ImageBrowser instead the effect."
+msgstr "Es wird der Bilder-Browser angezeigt (Kein JavaScript Effekt)"
+
+#: ../admin/settings.php:426
+msgid "Add hidden images"
+msgstr "Versteckte Bilder hinzufügen"
+
+#: ../admin/settings.php:428
+msgid "If pagination is used, this option will still show all images in the modal window (Thickbox, Lightbox etc.). Note : This increases the page load"
+msgstr "Wenn Du die Blätterfunktion nutzt, dann kannst Du mit dieser Option alle Bilder im Modal-Fenster (Thickbox,Lightbox etc.) anzeigen. Berücksichtige, dass die Ladezeit der Seite erhöht wird."
+
+#: ../admin/settings.php:432
+msgid "Enable AJAX pagination"
+msgstr "Aktiviere AJAX-Navigation"
+
+#: ../admin/settings.php:434
+msgid "Browse images without reload the page. Note : Works only in combination with Shutter effect"
+msgstr "Ermöglicht das Blättern zwischen den Bildern ohne die Seite neu zu laden. Hinweis : Funktioniert nur mit dem Shutter-Effekt."
+
+#: ../admin/settings.php:438
+msgid "Sort options"
+msgstr "Sortierung"
+
+#: ../admin/settings.php:441
+msgid "Sort thumbnails"
+msgstr "Thumbnails sortieren"
+
+#: ../admin/settings.php:443
+msgid "Custom order"
+msgstr "Benutzerdefiniert"
+
+#: ../admin/settings.php:445
+msgid "File name"
+msgstr "Dateiname"
+
+#: ../admin/settings.php:446
+msgid "Alt / Title text"
+msgstr "Alt / Titel Text"
+
+#: ../admin/settings.php:447
+msgid "Date / Time"
+msgstr "Datum/Zeit"
+
+#: ../admin/settings.php:451
+msgid "Sort direction"
+msgstr "Sortierreihenfolge"
+
+#: ../admin/settings.php:471
+msgid "Here you can select the thumbnail effect, NextGEN Gallery will integrate the required HTML code in the images. Please note that only the Shutter and Thickbox effect will automatic added to your theme."
+msgstr "Hier kannst Du den Effekt für die Thumbnails auswählen. NextGEN Galerie wird den benötigten HTML-Code verwenden. Bitte beachte, dass nur Shutter und der Thickbox Effekt automatisch in Dein Theme von Wordpress integriert wird. Alle anderen Effekte mußt Du selbst in die header.php eintragen (JS)."
+
+#: ../admin/settings.php:472
+msgid "With the placeholder"
+msgstr "Mit Platzhalter"
+
+#: ../admin/settings.php:472
+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."
+msgstr "Du kannst eine Navigation durch die Bilder aktivieren (hängt vom Effekt ab). Ändere nur die Codezeile, falls Du einen anderen Effekt für die Thumbnails verwendest oder einfach weißt, was Du tust."
+
+#: ../admin/settings.php:475
+msgid "JavaScript Thumbnail effect"
+msgstr "JavaScript Thumbnail Effekt"
+
+#: ../admin/settings.php:479
+msgid "Thickbox"
+msgstr "Thickbox"
+
+#: ../admin/settings.php:480
+msgid "Lightbox"
+msgstr "Lightbox"
+
+#: ../admin/settings.php:481
+msgid "Highslide"
+msgstr "Highslide"
+
+#: ../admin/settings.php:482
+msgid "Shutter"
+msgstr "Shutter"
+
+#: ../admin/settings.php:483
+msgid "Custom"
+msgstr "Eigener"
+
+#: ../admin/settings.php:488
+msgid "Link Code line"
+msgstr "Link-Code-Zeile"
+
+#: ../admin/settings.php:510
+msgid "Please note : You can only activate the watermark under -> Manage Gallery . This action cannot be undone."
+msgstr "Bitte beachten : Das Wasserzeichen kann nur unter der Galerieverwaltung gesetzt werden. "
+
+#: ../admin/settings.php:515
+msgid "Preview"
+msgstr "Vorschau"
+
+#: ../admin/settings.php:517
+#: ../admin/settings.php:522
+msgid "Position"
+msgstr "Position"
+
+#: ../admin/settings.php:542
+msgid "Offset"
+msgstr "Abstand"
+
+#: ../admin/settings.php:558
+msgid "Use image as watermark"
+msgstr "Benutze das Bild als Wasserzeichen"
+
+#: ../admin/settings.php:561
+msgid "URL to file"
+msgstr "URL zur Datei"
+
+#: ../admin/settings.php:563
+msgid "The accessing of URL files is disabled at your server (allow_url_fopen)"
+msgstr "Der Dateizugriff von URLs ist auf diesem Server deaktiviert (allow_url_fopen)"
+
+#: ../admin/settings.php:566
+msgid "Use text as watermark"
+msgstr "Benutze Text als Wasserzeichen"
+
+#: ../admin/settings.php:569
+msgid "Font"
+msgstr "Schriftart"
+
+#: ../admin/settings.php:578
+msgid "This function will not work, cause you need the FreeType library"
+msgstr "Diese Funktion benötigt die FreeType-Bibliothek"
+
+#: ../admin/settings.php:580
+msgid "You can upload more fonts in the folder <strong>nggallery/fonts</strong>"
+msgstr "Du kannst mehr Schriftarten in das Verzeichniss <strong>nggallery/fonts</strong> hochladen."
+
+#: ../admin/settings.php:589
+msgid "Color"
+msgstr "Farbe"
+
+#: ../admin/settings.php:591
+msgid "(hex w/o #)"
+msgstr "(hex w/o #)"
+
+#: ../admin/settings.php:594
+msgid "Text"
+msgstr "Text"
+
+#: ../admin/settings.php:598
+msgid "Opaque"
+msgstr "Transparenz"
+
+#: ../admin/settings.php:619
+msgid "Default size (W x H)"
+msgstr "Standard Größe (B x H)"
+
+#: ../admin/settings.php:624
+msgid "Duration time"
+msgstr "Dauer"
+
+#: ../admin/settings.php:625
+msgid "sec."
+msgstr "Sek."
+
+#: ../admin/settings.php:628
+#: ../admin/settings.php:703
+msgid "Transition / Fade effect"
+msgstr "Fade Effekt"
+
+#: ../admin/settings.php:631
+#: ../admin/settings.php:706
+msgid "fade"
+msgstr "Fade"
+
+#: ../admin/settings.php:632
+msgid "blindX"
+msgstr "blindX"
+
+#: ../admin/settings.php:633
+msgid "cover"
+msgstr "Blenden"
+
+#: ../admin/settings.php:634
+msgid "scrollUp"
+msgstr "ScrollUp"
+
+#: ../admin/settings.php:635
+msgid "scrollDown"
+msgstr "ScrollDown"
+
+#: ../admin/settings.php:636
+msgid "shuffle"
+msgstr "Shuffle"
+
+#: ../admin/settings.php:637
+msgid "toss"
+msgstr "Schüttel"
+
+#: ../admin/settings.php:638
+msgid "wipe"
+msgstr "wischen"
+
+#: ../admin/settings.php:640
+msgid "See here for more information about the effects :"
+msgstr "Hier bekommst du mehr Informationen über die Effekte :"
+
+#: ../admin/settings.php:644
+msgid "Settings for the JW Image Rotator"
+msgstr "JW-Image-Rotator Einstellungen"
+
+#: ../admin/settings.php:645
+msgid "The settings are only used in the JW Image Rotator Version"
+msgstr "Die Einstellungen werden im JW-Image-Rotator benutzt, in der Version"
+
+#: ../admin/settings.php:646
+msgid "See more information for the Flash Player on the web page"
+msgstr "Weitere Informationen auf der Flash-Player-Homepage"
+
+#: ../admin/settings.php:651
+msgid "The path to imagerotator.swf is not defined, the slideshow will not work."
+msgstr "Der Pfad zu imagerotator.swf ist nicht gesetzt, die Flash-Diaschau kann dann nicht angezeigt werden"
+
+#: ../admin/settings.php:652
+msgid "If you would like to use the JW Image Rotatator, please download the player <a href=\"http://www.longtailvideo.com/players/jw-image-rotator/\" target=\"_blank\" >here</a> and upload it to your Upload folder (Default is wp-content/uploads)."
+msgstr "Wenn Du den JW-Image-Rotator (Slideshow) nutzen möchtest, lade Dir die aktuelle Version <a href=\"http://www.longtailvideo.com/players/jw-image-rotator/\" target=\"_blank\" >hier</a> herunter und übertrage sie dann in Dein WordPress-Upload-Verzeichnis (normalerweise wp-content/uploads),"
+
+#: ../admin/settings.php:658
+msgid "Enable flash slideshow"
+msgstr "Aktiviere Flash Slideshow"
+
+#: ../admin/settings.php:660
+msgid "Integrate the flash based slideshow for all flash supported devices"
+msgstr "Verwende die Flash Slideshow für alle Flash-unterstützte Geräte"
+
+#: ../admin/settings.php:663
+msgid "Path to the Imagerotator (URL)"
+msgstr "Pfad zum JW-Image-Rotator (URL)"
+
+#: ../admin/settings.php:666
+msgid "Search now"
+msgstr "Suche jetzt"
+
+#: ../admin/settings.php:667
+msgid "Press the button to search automatically for the imagerotator, if you uploaded it to wp-content/uploads or a subfolder"
+msgstr "Drücke 'Suche jetzt' um automatisch den Pfad zum Image-Rotator zu ermitteln, sofern Du den Player in wp-content/uploads oder ein Unterverzeichnis hochgeladen hast."
+
+#: ../admin/settings.php:671
+msgid "Shuffle mode"
+msgstr "Shuffle Modus"
+
+#: ../admin/settings.php:675
+msgid "Show next image on click"
+msgstr "Zeige nächstes Bild bei Klick"
+
+#: ../admin/settings.php:679
+msgid "Show navigation bar"
+msgstr "Zeige Navigations-Leiste"
+
+#: ../admin/settings.php:683
+msgid "Show loading icon"
+msgstr "Zeige Lade-Bildchen"
+
+#: ../admin/settings.php:687
+msgid "Use watermark logo"
+msgstr "Wasserzeichen anzeigen"
+
+#: ../admin/settings.php:689
+msgid "You can change the logo at the watermark settings"
+msgstr "Du kannst den Pfad in Einstellungen für das Wasserzeichen angeben"
+
+#: ../admin/settings.php:692
+msgid "Stretch image"
+msgstr "Bild dehnen"
+
+#: ../admin/settings.php:695
+msgid "true"
+msgstr "Ja"
+
+#: ../admin/settings.php:696
+msgid "false"
+msgstr "Nein"
+
+#: ../admin/settings.php:697
+msgid "fit"
+msgstr "Passend"
+
+#: ../admin/settings.php:698
+msgid "none"
+msgstr "keiner"
+
+#: ../admin/settings.php:707
+msgid "bgfade"
+msgstr "BGFade"
+
+#: ../admin/settings.php:708
+msgid "slowfade"
+msgstr "Slowfade"
+
+#: ../admin/settings.php:709
+msgid "circles"
+msgstr "Kreise"
+
+#: ../admin/settings.php:710
+msgid "bubbles"
+msgstr "Blasen"
+
+#: ../admin/settings.php:711
+msgid "blocks"
+msgstr "Blöcke"
+
+#: ../admin/settings.php:712
+msgid "fluids"
+msgstr "Fluids"
+
+#: ../admin/settings.php:713
+msgid "flash"
+msgstr "Flash"
+
+#: ../admin/settings.php:714
+msgid "lines"
+msgstr "Linien"
+
+#: ../admin/settings.php:715
+msgid "random"
+msgstr "Zufall"
+
+#: ../admin/settings.php:720
+msgid "Use slow zooming effect"
+msgstr "nutze Zoom-Effekt"
+
+#: ../admin/settings.php:724
+msgid "Background Color"
+msgstr "Hintergrund (BG) Farbe"
+
+#: ../admin/settings.php:729
+msgid "Texts / Buttons Color"
+msgstr "Text- / Button Farbe"
+
+#: ../admin/settings.php:734
+msgid "Rollover / Active Color"
+msgstr "Rollover / Aktiv (Link) Farbe"
+
+#: ../admin/settings.php:739
+msgid "Screen Color"
+msgstr "Seiten-Farbe"
+
+#: ../admin/settings.php:744
+msgid "Background music (URL)"
+msgstr "Hintergrundmusik (URL)"
+
+#: ../admin/settings.php:748
+msgid "Try XHTML validation (with CDATA)"
+msgstr "Integriere XHTML-Validierung (mittels CDATA)"
+
+#: ../admin/settings.php:750
+msgid "Important : Could causes problem at some browser. Please recheck your page."
+msgstr "Wichtig : Es könnten Probleme bei einigen Browser entstehen. Unbedingt Seite danach prüfen."
+
+#: ../admin/setup.php:15
+msgid "Reset all settings to default parameter"
+msgstr "Stelle alle Einstellungen auf Anfangswerte zurück"
+
+#: ../admin/setup.php:26
+msgid "Uninstall sucessful ! Now delete the plugin and enjoy your life ! Good luck !"
+msgstr "Deinstallation erfolgreich! Nun kannst Du das Plugin löschen und Dein Leben weiterhin genießen! Stay geeky! Viel Glück!"
+
+#: ../admin/setup.php:30
+msgid "Reset options"
+msgstr "Optionen zurücksetzen"
+
+#: ../admin/setup.php:33
+msgid "Reset all options/settings to the default installation."
+msgstr "Alle Optionen/Einstellungen zurücksetzen"
+
+#: ../admin/setup.php:34
+msgid "Reset settings"
+msgstr "Einstellungen zurücksetzen"
+
+#: ../admin/setup.php:34
+msgid ""
+"Reset all options to default settings ?\\n"
+"\\n"
+"Choose [Cancel] to Stop, [OK] to proceed.\\n"
+msgstr ""
+"Alle Optionen zu Standard zurücksetzen ?\\n"
+"\\n"
+"Wähle [Cancel] um abzubrechen, [OK] zum Fortfahren.\\n"
+
+#: ../admin/setup.php:39
+msgid "Uninstall plugin tables"
+msgstr "Plugin Tabellen (DB) entfernen"
+
+#: ../admin/setup.php:44
+msgid "You don't like NextGEN Gallery ?"
+msgstr "Du magst die NextGEN Gallery nicht ?"
+
+#: ../admin/setup.php:45
+msgid "No problem, before you deactivate this plugin press the Uninstall Button, because deactivating NextGEN Gallery does not remove any data that may have been created. "
+msgstr "Null Problemo. Einfach nur vor dem Deaktivieren dieses Plugins den Uninstall-Button betätigen, damit alle Tabellen der Galerie entfernt werden."
+
+#: ../admin/setup.php:47
+msgid "WARNING:"
+msgstr "WARNUNG:"
+
+#: ../admin/setup.php:48
+msgid "Once uninstalled, this cannot be undone. You should use a Database Backup plugin of WordPress to backup all the tables first. NextGEN gallery is stored in the tables"
+msgstr "Eine einmalig durchgeführte Deinstallation kann nicht mehr rückgängig gemacht werden, da alle Tabellen der Galerie aus der Datenbank entfernt werden und KEIN Backup dieser Galerie-Tabellen angelegt wird."
+
+#: ../admin/setup.php:48
+msgid "and"
+msgstr "und"
+
+#: ../admin/setup.php:50
+msgid "Uninstall plugin"
+msgstr "Plugin deinstallieren"
+
+#: ../admin/setup.php:50
+msgid ""
+"You are about to Uninstall this plugin from WordPress.\\n"
+"This action is not reversible.\\n"
+"\\n"
+"Choose [Cancel] to Stop, [OK] to Uninstall.\\n"
+msgstr ""
+"Du bist dabei, das Plugin zu deinstallieren.\\n"
+"Diese Aktion kann NICHT rückgängig gemacht werden.\\n"
+"\\n"
+"Wähle [Cancel] zum Abbrechen, [OK] zum Deinstallieren.\\n"
+
+#: ../admin/showmeta.php:29
+msgid "Meta Data"
+msgstr "Metadaten"
+
+#: ../admin/showmeta.php:34
+#: ../admin/showmeta.php:60
+#: ../admin/showmeta.php:85
+#: ../admin/showmeta.php:109
+msgid "Tag"
+msgstr "Stichwort"
+
+#: ../admin/showmeta.php:35
+#: ../admin/showmeta.php:61
+#: ../admin/showmeta.php:86
+#: ../admin/showmeta.php:110
+msgid "Value"
+msgstr "Wert"
+
+#: ../admin/showmeta.php:49
+msgid "No meta data saved"
+msgstr "Keine Metadaten gespeichert"
+
+#: ../admin/showmeta.php:55
+msgid "EXIF Data"
+msgstr "EXIF-Daten"
+
+#: ../admin/showmeta.php:74
+msgid "No exif data"
+msgstr "Keine Exif-Daten"
+
+#: ../admin/showmeta.php:81
+msgid "IPTC Data"
+msgstr "IPTC-Daten"
+
+#: ../admin/showmeta.php:105
+msgid "XMP Data"
+msgstr "XMP-Daten"
+
+#: ../admin/style.php:11
+msgid "(From the theme folder)"
+msgstr "(Aus dem Theme Verzeichnis)"
+
+#: ../admin/style.php:43
+msgid "You do not have sufficient permissions to edit templates for this blog."
+msgstr "Du hast nicht die benötigten Rechte, um Vorlagen in diesem Blog zu bearbeiten."
+
+#: ../admin/style.php:52
+msgid "CSS file successfully updated"
+msgstr "CSS-Datei erfolgreich aktualisiert"
+
+#: ../admin/style.php:89
+msgid "Style Editor"
+msgstr "CSS-Editor"
+
+#: ../admin/style.php:93
+msgid "Activate and use style sheet:"
+msgstr "Aktiviere und nutze Stylesheet:"
+
+#: ../admin/style.php:113
+msgid "Activate"
+msgstr "Aktiviere"
+
+#: ../admin/style.php:123
+#, php-format
+msgid "Editing <strong>%s</strong>"
+msgstr "Bearbeite <strong>%s</strong>"
+
+#: ../admin/style.php:125
+#, php-format
+msgid "Browsing <strong>%s</strong>"
+msgstr "Durchsuche <strong>%s</strong>"
+
+#: ../admin/style.php:135
+msgid "Version"
+msgstr "Version"
+
+#: ../admin/style.php:138
+msgid "Tip : Copy your stylesheet (nggallery.css) to your theme folder, so it will be not lost during a upgrade"
+msgstr "Kleiner Tipp: Kopiere das Stylesheet (nggallery.css) in Dein Theme-Verzeichnis, dadurch wird es beim nächsten Update nicht überschrieben."
+
+#: ../admin/style.php:140
+msgid "Your theme contain a NextGEN Gallery stylesheet (nggallery.css), this file will be used"
+msgstr "Dein Theme-Paket enthält ein NextGEN-Gallery-Stylesheet (nggallery.css), dieses Sheet wird automatisch eingebunden"
+
+#: ../admin/style.php:142
+msgid "Tip No. 2: Use the color picker below to help you find the right color scheme for your gallery!"
+msgstr "2.Tipp : Benutze die Farbauswahl, um den zugehörigen HTML-Farbcode zu erhalten"
+
+#: ../admin/style.php:158
+msgid "Update File"
+msgstr "Datei aktualisieren"
+
+#: ../admin/style.php:161
+msgid "If this file were writable you could edit it."
+msgstr "Wenn diese Datei beschreibbar wäre, könntest Du sie bearbeiten."
+
+#: ../admin/style.php:166
+msgid "Oops, no such file exists! Double check the name and try again, merci."
+msgstr "Oha, eine solche Datei existiert nicht! Bitte überprüfe den Namen und probiere es erneut. Danke."
+
+#: ../admin/tags.php:38
+msgid "Most popular"
+msgstr "Beliebteste Stichwörter"
+
+#: ../admin/tags.php:39
+msgid "Least used"
+msgstr "Zuletzt benutzt"
+
+#: ../admin/tags.php:40
+msgid "Alphabetical"
+msgstr "Alphabetisch"
+
+#: ../admin/tags.php:96
+msgid "Manage image tags"
+msgstr "Verwalte Bilder-Stichwörter"
+
+#: ../admin/tags.php:108
+msgid "Existing Tags"
+msgstr "Vorhandene Stichwörter"
+
+#: ../admin/tags.php:112
+msgid "Search tags"
+msgstr "Suche nach Stichwörter"
+
+#: ../admin/tags.php:116
+msgid "Go"
+msgstr "Start"
+
+#: ../admin/tags.php:121
+msgid "Sort Order:"
+msgstr "Sortierung :"
+
+#: ../admin/tags.php:156
+#: ../admin/tags.php:160
+#: ../admin/tags.php:173
+msgid "Previous tags"
+msgstr "Vorheriges Stichwort"
+
+#: ../admin/tags.php:169
+msgid "Next tags"
+msgstr "Nächstes Stichwörter"
+
+#: ../admin/tags.php:181
+msgid "Rename Tag"
+msgstr "Schlagwort umbenennen"
+
+#: ../admin/tags.php:189
+msgid "Enter the tag to rename and its new value.  You can use this feature to merge tags too. Click \"Rename\" and all posts which use this tag will be updated."
+msgstr "Trage das Stichwort ein, das Du umbenennen willst und seinen neuen Wert/Namen. Du kannst diese Funktion auch nutzen, um Stichwörter zusammenzuführen. Klicke auf \"Umbenennen\" und alle Bilder, die das Stichwort verwenden, werden aktualisiert."
+
+#: ../admin/tags.php:190
+#: ../admin/tags.php:238
+msgid "You can specify multiple tags to rename by separating them with commas."
+msgstr "Mehrere Stichwörter zum Umbenennen durch Komma trennen"
+
+#: ../admin/tags.php:194
+msgid "Tag(s) to rename:"
+msgstr "Stichwörter umbennenen:"
+
+#: ../admin/tags.php:198
+msgid "New tag name(s):"
+msgstr "Neuer Name für das Stichwort"
+
+#: ../admin/tags.php:201
+msgid "Rename"
+msgstr "Umbenennen"
+
+#: ../admin/tags.php:207
+msgid "Delete Tag"
+msgstr "Stichwort löschen"
+
+#: ../admin/tags.php:215
+msgid "Enter the name of the tag to delete.  This tag will be removed from all posts."
+msgstr "Trage das zu löschende Stichwort ein. Das Stichwort wird aus allen Bildern entfernt."
+
+#: ../admin/tags.php:216
+msgid "You can specify multiple tags to delete by separating them with commas"
+msgstr "Du kannst mehrere Stichwörter zum Löschen markieren, indem Du sie mit Kommas trennst"
+
+#: ../admin/tags.php:220
+msgid "Tag(s) to delete:"
+msgstr "Folgede Stichwörter löschen:"
+
+#: ../admin/tags.php:229
+msgid "Edit Tag Slug"
+msgstr "Ändere Schlagwort"
+
+#: ../admin/tags.php:237
+msgid "Enter the tag name to edit and its new slug. <a href=\"http://codex.wordpress.org/Glossary#Slug\">Slug definition</a>"
+msgstr "Trage den Namen des zu ändernden Stichworts und seinen neuen \"Slug\" ein. <a href=\"http://codex.wordpress.org/Glossary#Slug\">Was ist ein Slug?</a>"
+
+#: ../admin/tags.php:242
+msgid "Tag(s) to match:"
+msgstr "Stichwörter vergleichen :"
+
+#: ../admin/tags.php:246
+msgid "Slug(s) to set:"
+msgstr "Schlagwörter setzen:"
+
+#: ../admin/upgrade.php:22
+msgid "Upgrade database structure..."
+msgstr "Aktualisiere die Datenbank-Struturen..."
+
+#: ../admin/upgrade.php:108
+#: ../admin/upgrade.php:122
+#: ../admin/upgrade.php:129
+#: ../admin/upgrade.php:140
+#: ../admin/upgrade.php:154
+msgid "finished"
+msgstr "beendet"
+
+#: ../admin/upgrade.php:120
+msgid "Update file structure..."
+msgstr "Aktualisiere Verzeichnisse..."
+
+#: ../admin/upgrade.php:127
+msgid "Import date and time information..."
+msgstr "Importiere Datum/Uhrzeit..."
+
+#: ../admin/upgrade.php:135
+msgid "Move imagerotator to new location..."
+msgstr "Verschiebe den Image-Rotator in ein neues Verzeichnis..."
+
+#: ../admin/upgrade.php:146
+msgid "Update settings..."
+msgstr "Einstellungen gespeichert..."
+
+#: ../admin/upgrade.php:160
+msgid "Updated widget structure. If you used NextGEN Widgets, you need to setup them again..."
+msgstr "Die Widgets wurden überarbeitet. Wenn Du NextGEN Widgets nutzt, musst du Sie nun neu einfügen..."
+
+#: ../admin/upgrade.php:168
+msgid "Updated options."
+msgstr "Einstellungen gespeichert."
+
+#: ../admin/upgrade.php:175
+msgid "Create unique slug"
+msgstr "Permalinks erstellen"
+
+#: ../admin/upgrade.php:176
+msgid "One of the upcomming features are a reworked permalinks structure."
+msgstr "Die Permalinkstruktur wird in einer kommenden Version überarbeitet."
+
+#: ../admin/upgrade.php:177
+msgid "Therefore it's needed to have a unique identifier for each image, gallery and album."
+msgstr "Deshalb ist es notwendig ein eindeutiges Schlagwort für jedes Bild, Galerie und Album zu erzeugen."
+
+#: ../admin/upgrade.php:178
+msgid "Depend on the amount of database entries this will take a while, don't reload this page."
+msgstr "Diese Operation kann je nach Anzahl der Bilder eine Weile daueren, bitte die Seite nicht neu laden."
+
+#: ../admin/upgrade.php:187
+msgid "Could not find NextGEN Gallery database tables, upgrade failed !"
+msgstr "Konnte die NextGEN Gallery Tabellen nicht finden, Upgrade fehlgeschlagen !"
+
+#: ../admin/upgrade.php:250
+msgid "Some folders/files could not renamed, please recheck the permission and rescan the folder in the manage gallery section."
+msgstr "Einige Verzeichnisse / Bilder konnten nicht umbenannt werden, bitte überprüfe die Zugriffsrechte und scanne dann das Verzeichnis neu ein."
+
+#: ../admin/upgrade.php:252
+msgid "Rename failed"
+msgstr "Konnte nicht umbenannt werden"
+
+#: ../admin/upgrade.php:348
+#: ../admin/upgrade.php:367
+msgid "Upgrade NextGEN Gallery"
+msgstr "NextGEN-Gallery aktualisieren"
+
+#: ../admin/upgrade.php:349
+msgid "The script detect that you upgrade from a older version."
+msgstr "Es wurde eine ältere NextGEN-Datenbank erkannt."
+
+#: ../admin/upgrade.php:350
+msgid "Your database tables for NextGEN Gallery is out-of-date, and must be upgraded before you can continue."
+msgstr "Deine Datenbanktabellen für NextGEN-Gallery sind nicht auf dem aktuellen Stand, sie müssen jetzt aktualisiert werden."
+
+#: ../admin/upgrade.php:351
+msgid "If you would like to downgrade later, please make first a complete backup of your database and the images."
+msgstr "Wenn Du wieder auf eine ältere Version zurückgehen möchtest, solltest Du vorher die Datenbank sichern."
+
+#: ../admin/upgrade.php:352
+msgid "The upgrade process may take a while, so please be patient."
+msgstr "Der Upgrade-Prozess kann etwas dauern, bitte sei geduldig..."
+
+#: ../admin/upgrade.php:353
+msgid "Start upgrade now"
+msgstr "Aktualisierung  starten"
+
+#: ../admin/upgrade.php:369
+msgid "Upgrade finished..."
+msgstr "Upgrade beendet..."
+
+#: ../admin/upgrade.php:370
+msgid "Continue"
+msgstr "Weiter"
+
+#: ../admin/upgrade.php:393
+#, php-format
+msgid "Rebuild image structure : %s / %s images"
+msgstr "Erzeuge Permalinks für Bilder : %s / %s Bilder"
+
+#: ../admin/upgrade.php:394
+#, php-format
+msgid "Rebuild gallery structure : %s / %s galleries"
+msgstr "Erzeuge Permalinks für Galerien : %s / %s Galerien"
+
+#: ../admin/upgrade.php:395
+#, php-format
+msgid "Rebuild album structure : %s / %s albums"
+msgstr "Erzeuge Permalinks für Alben : %s / %s Alben"
+
+#: ../admin/upgrade.php:452
+msgid "Done."
+msgstr "Fertig."
+
+#: ../admin/wpmu.php:33
+msgid "Update successfully"
+msgstr "Aktualisierung erfolgreich"
+
+#: ../admin/wpmu.php:45
+#, php-format
+msgid "Thanks for using this plugin, NextGEN Gallery is initially developed for self hosted blogs. A multisite setup is possible, but cannot currently fully supported, as it can have several special condition ( i.e. Domain mapping).<br /> If you would like to support the further development, please consider a <strong><a href=\"%s\">donation</a></strong>! If you still need some help, please post your questions <a href=\"http://wordpress.org/tags/nextgen-gallery?forum_id=10\">here</a> ."
+msgstr "Vielen Dank, dass Du dieses Plugin nutzt. NextGEN Gallery wurde für einfache Blogs entwickelt. Die Nutzung im Netzwerk (Multisite) ist möglich, aber wird nicht vollständig unterstützt (z.B. Domain Mapping).<br /> Wenn Du die Weiterentwicklung unterstützen möchtest, würde ich mich über eine kleine <strong><a href=\"%s\">Spende</a></strong> freuen! Wenn Du Fragen oder Problem hast, schreib sie doch <a href=\"http://wordpress.org/tags/nextgen-gallery?forum_id=10\">hier</a>  ins Forum."
+
+#: ../admin/wpmu.php:62
+msgid "Network Options"
+msgstr "Netzwerk Optionen"
+
+#: ../admin/wpmu.php:70
+msgid "This is the default path for all blogs. With the placeholder %BLOG_ID% you can organize the folder structure better."
+msgstr "Dieses ist der Default-Pfad für alle Blogs. Mit dem Platzhalter %BLOG_ID% wird die Ordnerstruktur gesteuert. Der Pfad muss mit / enden."
+
+#: ../admin/wpmu.php:71
+#, php-format
+msgid "The default setting should be %s"
+msgstr "Grundeinstellung ist %s"
+
+#: ../admin/wpmu.php:75
+msgid "Enable upload quota check"
+msgstr "Schalte die Uploadbegrenzung ein"
+
+#: ../admin/wpmu.php:77
+msgid "Should work if the gallery is bellow the blog.dir"
+msgstr "Sollte funktionieren, wenn die Galerien sich unterhalb blog.dir befinden"
+
+#: ../admin/wpmu.php:81
+msgid "Enable zip upload option"
+msgstr "Erlaube ZIP-Upload"
+
+#: ../admin/wpmu.php:83
+msgid "Allow users to upload zip folders."
+msgstr "Erlaubt die Nutzung des ZIP-Upload"
+
+#: ../admin/wpmu.php:87
+msgid "Enable import function"
+msgstr "Erlaube Import Funktion"
+
+#: ../admin/wpmu.php:89
+msgid "Allow users to import images folders from the server."
+msgstr "Erlaube dem User Bilder direkt aus den Server Verzeichnissen zu importieren."
+
+#: ../admin/wpmu.php:93
+msgid "Enable style selection"
+msgstr "Freie CSS-Style-Auswahl"
+
+#: ../admin/wpmu.php:95
+msgid "Allow users to choose a style for the gallery."
+msgstr "Erlaube dem User, ein CSS für die Galerie zu wählen"
+
+#: ../admin/wpmu.php:99
+msgid "Enable roles/capabilities"
+msgstr "Rollen / Zugriffsrechte freischalten"
+
+#: ../admin/wpmu.php:101
+msgid "Allow users to change the roles for other blog authors."
+msgstr "Erlaube dem User die Anpassung der Zugangsberechtigung"
+
+#: ../admin/wpmu.php:105
+msgid "Default style"
+msgstr "Standard-CSS-Style"
+
+#: ../admin/wpmu.php:122
+msgid "Choose the default style for the galleries."
+msgstr "Wähle das Default-Stylesheet für die Galerien"
+
+#: ../admin/tinymce/window.php:56
+msgid "Select or enter gallery"
+msgstr "Wähle oder Suche Galerie"
+
+#: ../admin/tinymce/window.php:61
+#: ../admin/tinymce/window.php:82
+msgid "Show as"
+msgstr "Zeige als"
+
+#: ../admin/tinymce/window.php:62
+msgid "Image list"
+msgstr "Bilder-Liste"
+
+#: ../admin/tinymce/window.php:64
+msgid "Imagebrowser"
+msgstr "Bilder-Browser"
+
+#: ../admin/tinymce/window.php:77
+msgid "Select or enter album"
+msgstr "Wähle oder Suche Album"
+
+#: ../admin/tinymce/window.php:83
+msgid "Extended version"
+msgstr "Erweiterte Version"
+
+#: ../admin/tinymce/window.php:84
+msgid "Compact version"
+msgstr "Kompakte Version"
+
+#: ../admin/tinymce/window.php:97
+msgid "Select or enter picture"
+msgstr "Wähle oder Suche Bild"
+
+#: ../admin/tinymce/window.php:102
+msgid "Width x Height"
+msgstr "Breite x Höhe"
+
+#: ../admin/tinymce/window.php:106
+msgid "Effect"
+msgstr "Effekt"
+
+#: ../admin/tinymce/window.php:109
+msgid "No effect"
+msgstr "Kein Effekt"
+
+#: ../admin/tinymce/window.php:111
+msgid "Web 2.0"
+msgstr "Web 2.0"
+
+#: ../admin/tinymce/window.php:116
+msgid "Float"
+msgstr "Float"
+
+#: ../admin/tinymce/window.php:119
+msgid "No float"
+msgstr "Kein Float"
+
+#: ../admin/tinymce/window.php:138
+msgid "Insert"
+msgstr "Einfügen"
+
+#: ../lib/core.php:379
+#, php-format
+msgid "Note : Based on your server memory limit you should not upload larger images then <strong>%d x %d</strong> pixel"
+msgstr "Hinweis: Basierend auf der Speicherbegrenzung auf dem Server, solltest Du keine Bilder grösser als <strong>%d x %d</strong> Pixel hochladen"
+
+#: ../lib/locale.php:120
+msgid "Invalid URL Provided."
+msgstr "Ungültige URL"
+
+#: ../lib/locale.php:124
+#: ../lib/locale.php:128
+msgid "Could not create Temporary file."
+msgstr "Konnte temporäre Datei nicht erstellen"
+
+#: ../lib/meta.php:124
+msgid " mm"
+msgstr " mm"
+
+#: ../lib/meta.php:130
+msgid " sec"
+msgstr " Sek."
+
+#: ../lib/meta.php:134
+msgid "Fired"
+msgstr "ausgelöst"
+
+#: ../lib/meta.php:134
+msgid "Not fired"
+msgstr "Nicht ausgelöst"
+
+#: ../lib/meta.php:426
+msgid "Aperture"
+msgstr "Blende"
+
+#: ../lib/meta.php:427
+#: ../lib/meta.php:452
+msgid "Credit"
+msgstr "Autor"
+
+#: ../lib/meta.php:428
+msgid "Camera"
+msgstr "Kamera"
+
+#: ../lib/meta.php:429
+msgid "Caption"
+msgstr "Beschreibung"
+
+#: ../lib/meta.php:431
+msgid "Copyright"
+msgstr "Rechte"
+
+#: ../lib/meta.php:432
+msgid "Focal length"
+msgstr "Brennweite"
+
+#: ../lib/meta.php:433
+msgid "ISO"
+msgstr "ISO"
+
+#: ../lib/meta.php:434
+msgid "Shutter speed"
+msgstr "Belichtungszeit"
+
+#: ../lib/meta.php:438
+msgid "Subject"
+msgstr "Betreff"
+
+#: ../lib/meta.php:439
+msgid "Make"
+msgstr "Hersteller"
+
+#: ../lib/meta.php:440
+msgid "Edit Status"
+msgstr "Ändere Status"
+
+#: ../lib/meta.php:441
+msgid "Category"
+msgstr "Kategorie"
+
+#: ../lib/meta.php:442
+msgid "Keywords"
+msgstr "Schlüsselwörter"
+
+#: ../lib/meta.php:443
+msgid "Date Created"
+msgstr "erstellt (Datum)"
+
+#: ../lib/meta.php:444
+msgid "Time Created"
+msgstr "erstellt (Zeit)"
+
+#: ../lib/meta.php:445
+msgid "Author Position"
+msgstr "Autor Position"
+
+#: ../lib/meta.php:446
+msgid "City"
+msgstr "Stadt"
+
+#: ../lib/meta.php:447
+msgid "Location"
+msgstr "Ort"
+
+#: ../lib/meta.php:448
+msgid "Province/State"
+msgstr "Staat / PLZ"
+
+#: ../lib/meta.php:449
+msgid "Country code"
+msgstr "Landescode"
+
+#: ../lib/meta.php:450
+msgid "Country"
+msgstr "Land"
+
+#: ../lib/meta.php:451
+msgid "Headline"
+msgstr "Kopfzeile"
+
+#: ../lib/meta.php:453
+msgid "Source"
+msgstr "Quelle"
+
+#: ../lib/meta.php:454
+msgid "Copyright Notice"
+msgstr "Copyright Hinweise / Credits"
+
+#: ../lib/meta.php:455
+msgid "Contact"
+msgstr "Kontakt"
+
+#: ../lib/meta.php:456
+msgid "Last modified"
+msgstr "Zuletzt geändert"
+
+#: ../lib/meta.php:457
+msgid "Program tool"
+msgstr "Programm"
+
+#: ../lib/meta.php:458
+msgid "Format"
+msgstr "Format"
+
+#: ../lib/meta.php:459
+msgid "Image Width"
+msgstr "Breite"
+
+#: ../lib/meta.php:460
+msgid "Image Height"
+msgstr "Höhe"
+
+#: ../lib/meta.php:461
+msgid "Flash"
+msgstr "Blitz"
+
+#: ../lib/multisite.php:23
+msgid "Sorry, you have used your space allocation. Please delete some files to upload more files."
+msgstr "Schade, Dein freier Speicher scheint aufgebraucht zu sein. Bitte lösche zuerst ein paar Bilder."
+
+#: ../lib/ngg-db.php:330
+#: ../lib/ngg-db.php:331
+msgid "Album overview"
+msgstr "Album Übersicht"
+
+#: ../lib/shortcodes.php:298
+msgid "[Pictures not found]"
+msgstr "[Bilder nicht gefunden]"
+
+#: ../lib/tags.php:35
+msgid "No new tag specified!"
+msgstr "Kein neues Stichwort definiert!"
+
+#: ../lib/tags.php:50
+msgid "No new/old valid tag specified!"
+msgstr "Kein neues Stichwort definiert!"
+
+#: ../lib/tags.php:86
+msgid "No tag renamed."
+msgstr "Kein Stichwort umbenannt."
+
+#: ../lib/tags.php:88
+#, php-format
+msgid "Renamed tag(s) &laquo;%1$s&raquo; to &laquo;%2$s&raquo;"
+msgstr "Es wurden die Stichwörter &laquo;%1$s&raquo; bis &laquo;%2$s&raquo; umbenannt"
+
+#: ../lib/tags.php:95
+msgid "No valid new tag."
+msgstr "Kein gültiges Stichwort"
+
+#: ../lib/tags.php:112
+msgid "No objects (post/page) found for specified old tags."
+msgstr "Keine Objekte (Seite/Beitrag) enthält das ausgewählte Stichwort"
+
+#: ../lib/tags.php:141
+msgid "No tag merged."
+msgstr "Keine Stichwörter zusammengeführt."
+
+#: ../lib/tags.php:143
+#, php-format
+msgid "Merge tag(s) &laquo;%1$s&raquo; to &laquo;%2$s&raquo;. %3$s objects edited."
+msgstr "Stichwörter &laquo;%1$s&raquo; bis &laquo;%2$s&raquo; zusammengeführt. %3$s Objekte geändert."
+
+#: ../lib/tags.php:146
+msgid "Error. No enough tags for rename. Too for merge. Choose !"
+msgstr "Fehler. Es wurden nicht genug Stichwörter ausgewählt."
+
+#: ../lib/tags.php:163
+msgid "No tag specified!"
+msgstr "Kein Stichwort angegeben"
+
+#: ../lib/tags.php:186
+msgid "No tag deleted."
+msgstr "Kein Stichwort gelöscht"
+
+#: ../lib/tags.php:188
+#, php-format
+msgid "%1s tag(s) deleted."
+msgstr "%1s Stichwörter gelöscht"
+
+#: ../lib/tags.php:202
+msgid "No new slug(s) specified!"
+msgstr "Keine neuen Stichwörter ausgewählt"
+
+#: ../lib/tags.php:214
+msgid "Tags number and slugs number isn't the same!"
+msgstr "Stichwort und Schlagwort ist nicht das Gleiche!"
+
+#: ../lib/tags.php:241
+msgid "No slug edited."
+msgstr "Kein Stichwort geändert"
+
+#: ../lib/tags.php:243
+#, php-format
+msgid "%s slug(s) edited."
+msgstr "%s Stichwörter geändert"
+
+#: ../lib/xmlrpc.php:66
+#, php-format
+msgid "XML-RPC services are disabled on this blog.  An admin user can enable them at %s"
+msgstr "XML-RPC Service ist ausgeschaltet. Der Administrator kann es hier %s einschalten"
+
+#: ../lib/xmlrpc.php:73
+msgid "Bad login/pass combination."
+msgstr "Username/Password falsch"
+
+#: ../lib/xmlrpc.php:129
+msgid "You are not allowed to upload files to this site."
+msgstr "Du hast keine Berechtigung, Bilder hochzuladen"
+
+#: ../lib/xmlrpc.php:135
+#: ../lib/xmlrpc.php:680
+msgid "Could not find gallery "
+msgstr "Konnte Galerie nicht finden"
+
+#: ../lib/xmlrpc.php:140
+#: ../lib/xmlrpc.php:685
+msgid "You are not allowed to upload files to this gallery."
+msgstr "Du hast keine Berechtigung, Bilder in diese Galerie zuladen"
+
+#: ../lib/xmlrpc.php:152
+msgid "This is no valid image file."
+msgstr "Das ist keine zulässige Bilddatei!"
+
+#: ../lib/xmlrpc.php:164
+msgid "Could not find image id "
+msgstr "Konnte die Bild-ID nicht finden"
+
+#: ../lib/xmlrpc.php:171
+#, php-format
+msgid "Failed to delete image %1$s "
+msgstr "Konnte das Bild %1$s nicht löschen"
+
+#: ../lib/xmlrpc.php:180
+#, php-format
+msgid "Could not write file %1$s (%2$s)"
+msgstr "Konnte die Datei %1$s (%2$s) nicht schreiben "
+
+#: ../lib/xmlrpc.php:247
+#: ../lib/xmlrpc.php:299
+msgid "Invalid image ID"
+msgstr "Keine gültige Bilder ID"
+
+#: ../lib/xmlrpc.php:250
+#: ../lib/xmlrpc.php:302
+msgid "Sorry, you must be able to edit this image"
+msgstr "Sorry, Du hast nicht das Recht, dieses Bild zu bearbeiten"
+
+#: ../lib/xmlrpc.php:308
+msgid "Sorry, could not update the image"
+msgstr "Konnte das Bild nicht aktualisieren"
+
+#: ../lib/xmlrpc.php:344
+#: ../lib/xmlrpc.php:576
+#: ../lib/xmlrpc.php:642
+msgid "Sorry, you must be able to manage galleries"
+msgstr "Sorry, Du hast nicht das Recht, diese Galerie zu bearbeiten"
+
+#: ../lib/xmlrpc.php:350
+msgid "Sorry, could not create the gallery"
+msgstr "Konnte die Galerie nicht anlegen"
+
+#: ../lib/xmlrpc.php:393
+#: ../lib/xmlrpc.php:573
+msgid "Invalid gallery ID"
+msgstr "Keine gültige Galerie ID"
+
+#: ../lib/xmlrpc.php:396
+msgid "Sorry, you must be able to manage this gallery"
+msgstr "Sorry, Du hast nicht das Recht, diese Galerie zu bearbeiten"
+
+#: ../lib/xmlrpc.php:402
+msgid "Sorry, could not update the gallery"
+msgstr "Konnte die Galerie nicht aktualisieren"
+
+#: ../lib/xmlrpc.php:442
+#: ../lib/xmlrpc.php:494
+#: ../lib/xmlrpc.php:536
+#: ../lib/xmlrpc.php:609
+msgid "Sorry, you must be able to manage albums"
+msgstr "Sorry, Du hast nicht das Recht, dieses Album zu bearbeiten"
+
+#: ../lib/xmlrpc.php:448
+msgid "Sorry, could not create the album"
+msgstr "Konnte das Album nicht anlegen"
+
+#: ../lib/xmlrpc.php:491
+#: ../lib/xmlrpc.php:533
+msgid "Invalid album ID"
+msgstr "Ungültige Album ID"
+
+#: ../lib/xmlrpc.php:500
+msgid "Sorry, could not update the album"
+msgstr "Konnte das Album nicht aktualisieren"
+
+#: ../view/album-compact.php:32
+msgid "Photos"
+msgstr "Fotos"
+
+#: ../view/gallery-caption.php:32
+#: ../view/gallery-fuchs.php:32
+#: ../view/gallery.php:32
+#: ../widgets/media-rss-widget.php:122
+msgid "[View with PicLens]"
+msgstr "[Mit PicLens anzeigen]"
+
+#: ../view/imagebrowser-caption.php:26
+#: ../view/imagebrowser-exif.php:30
+#: ../view/imagebrowser-fuchs.php:26
+#: ../view/imagebrowser.php:26
+msgid "Back"
+msgstr "Zurück"
+
+#: ../view/imagebrowser-caption.php:29
+#: ../view/imagebrowser-exif.php:33
+#: ../view/imagebrowser-fuchs.php:29
+#: ../view/imagebrowser.php:29
+msgid "Next"
+msgstr "Vor"
+
+#: ../view/imagebrowser-caption.php:31
+#: ../view/imagebrowser-exif.php:35
+#: ../view/imagebrowser-fuchs.php:31
+#: ../view/imagebrowser.php:31
+msgid "of"
+msgstr "von"
+
+#: ../view/imagebrowser-exif.php:38
+msgid "Meta data"
+msgstr "Metadaten"
+
+#: ../view/imagebrowser-exif.php:42
+msgid "Camera / Type"
+msgstr "Kameratyp"
+
+#: ../view/imagebrowser-exif.php:50
+msgid "Focal Length"
+msgstr "Brennweite"
+
+#: ../widgets/media-rss-widget.php:19
+msgid "Widget that displays Media RSS links for NextGEN Gallery."
+msgstr "Hiermit können NextGEN-Bilder als Media RSS eingebunden werden"
+
+#: ../widgets/media-rss-widget.php:20
+msgid "NextGEN Media RSS"
+msgstr "NextGEN Media RSS"
+
+#: ../widgets/media-rss-widget.php:68
+msgid "Media RSS"
+msgstr "Media RSS"
+
+#: ../widgets/media-rss-widget.php:69
+msgid "Link to the main image feed"
+msgstr "Link zum Bilder-Feed"
+
+#: ../widgets/media-rss-widget.php:79
+#: ../widgets/widgets.php:201
+msgid "Title :"
+msgstr "Titel :"
+
+#: ../widgets/media-rss-widget.php:87
+msgid "Show Media RSS icon"
+msgstr "Zeige Media RSS Icon"
+
+#: ../widgets/media-rss-widget.php:93
+msgid "Show the Media RSS link"
+msgstr "Zeige den globalen Media RSS Link"
+
+#: ../widgets/media-rss-widget.php:98
+msgid "Text for Media RSS link:"
+msgstr "Text für den globalen Media RSS Link:"
+
+#: ../widgets/media-rss-widget.php:104
+msgid "Tooltip text for Media RSS link:"
+msgstr "Tooltipp-Text für den globalen Media RSS Link."
+
+#: ../widgets/widgets.php:22
+msgid "Show a NextGEN Gallery Slideshow"
+msgstr "Binde eine NextGEN-Gallery-Slideshow ein"
+
+#: ../widgets/widgets.php:23
+msgid "NextGEN Slideshow"
+msgstr "NextGEN-Diashow"
+
+#: ../widgets/widgets.php:64
+msgid "<a href=\"http://www.macromedia.com/go/getflashplayer\">Get the Flash Player</a> to see the slideshow."
+msgstr "<a href=\"http://www.macromedia.com/go/getflashplayer\">Lade Dir den Flash Player</a>, um die Diashow zu sehen."
+
+#: ../widgets/widgets.php:121
+msgid "Title:"
+msgstr "Titel:"
+
+#: ../widgets/widgets.php:123
+msgid "Select Gallery:"
+msgstr "Wähle Galerie"
+
+#: ../widgets/widgets.php:125
+msgid "All images"
+msgstr "Alle Bilder"
+
+#: ../widgets/widgets.php:137
+msgid "Height:"
+msgstr "Höhe:"
+
+#: ../widgets/widgets.php:138
+msgid "Width:"
+msgstr "Breite:"
+
+#: ../widgets/widgets.php:160
+msgid "Add recent or random images from the galleries"
+msgstr "Füge die neusten Bilder oder Zufallsbilder aus NextGEN-Gallery ein"
+
+#: ../widgets/widgets.php:161
+msgid "NextGEN Widget"
+msgstr "NextGEN-Widget"
+
+#: ../widgets/widgets.php:207
+msgid "Show :"
+msgstr "Zeige als :"
+
+#: ../widgets/widgets.php:213
+msgid "Original images"
+msgstr "Original Bilder"
+
+#: ../widgets/widgets.php:222
+msgid "recent added "
+msgstr "zuletzt hinzugefügt"
+
+#: ../widgets/widgets.php:228
+msgid "Enable IE8 Web Slices"
+msgstr "IE8 Web Slices aktivieren"
+
+#: ../widgets/widgets.php:233
+msgid "Width x Height :"
+msgstr "Breite x Höhe :"
+
+#: ../widgets/widgets.php:239
+msgid "Select :"
+msgstr "Wähle :"
+
+#: ../widgets/widgets.php:241
+msgid "All galleries"
+msgstr "Alle Galerien"
+
+#: ../widgets/widgets.php:242
+msgid "Only which are not listed"
+msgstr "Nur ungelistete"
+
+#: ../widgets/widgets.php:243
+msgid "Only which are listed"
+msgstr "Nur gelistete"
+
+#: ../widgets/widgets.php:249
+msgid "Gallery ID :"
+msgstr "Galerie-ID :"
+
+#: ../widgets/widgets.php:251
+msgid "Gallery IDs, separated by commas."
+msgstr "Galerie-IDs, mit Kommas getrennt"
+
+#: ../xml/media-rss.php:50
+msgid "No galleries have been yet created."
+msgstr "Keine Galerie wurde derzeit erstellt."
+
+#: ../xml/media-rss.php:69
+#, php-format
+msgid "The gallery ID=%s does not exist."
+msgstr "Die Galerie ID=%s existiert nicht."
+
+#: ../xml/media-rss.php:100
+msgid "No album ID has been provided as parameter"
+msgstr "Es wurde kein Album als Parameter übergeben"
+
+#: ../xml/media-rss.php:108
+#, php-format
+msgid "The album ID=%s does not exist."
+msgstr "Album-ID  %s existiert nicht"
+
+#: ../xml/media-rss.php:115
+msgid "Invalid MediaRSS command"
+msgstr "Ungültiger Media-RSS-Befehl"
+
+#~ msgid "Delete album ?"
+#~ msgstr "Album löschen ?"
+
+#~ msgid "A new version of NextGEN Gallery is available !"
+#~ msgstr "Eine neue Version von NextGEN Gallery ist jetzt verfügbar"
+
+#~ msgid "Download here"
+#~ msgstr "Hier downloaden"
+
+#~ msgid "already exists"
+#~ msgstr "gibt es bereits"
+
+#~ msgid "Gallery Overview"
+#~ msgstr "Galerie Übersicht"
+
+#~ msgid "Quantity"
+#~ msgstr "Anzahl"
+
+#~ msgid "Action"
+#~ msgstr "Aktion"
+
+#~ msgid "Delete this gallery ?"
+#~ msgstr "Diese Galerie löschen ?"
+
+#~ msgid "General WordPress MU Settings"
+#~ msgstr "WordPress-MU-Einstellungen"
+
+#~ msgid "No album"
+#~ msgstr "Kein Album"
+
+#~ msgid "for the Fugue Iconset"
+#~ msgstr "für das Fugue-Iconset"
+
+#~ msgid "Gallery Administrator"
+#~ msgstr "Galerie-Administrator"
+
+#~ msgid "Gallery Editor"
+#~ msgstr "Galerie-Mitarbeiter"
+
+#~ msgid "You currently have %s rights."
+#~ msgstr "Du hast derzeit %s Rechte."
+
+#~ msgid "Upload Space Remaining:"
+#~ msgstr "Verbleibender Speicher:"
+
+#~ msgid "View all images tagged with %s"
+#~ msgstr "Zeige alle Bilder, die mit dem Stichwort %s markiert sind"
+
+#~ msgid "Upgrade sucessful"
+#~ msgstr "Aktualisierung erfolgreich"
+
+#~ msgid ""
+#~ "<strong>Would you like to help to translate this plugin ?</strong> <a "
+#~ "target=\"_blank\" href=\"%s\">Download</a> the current pot file and read "
+#~ "<a href=\"http://alexrabe.de/wordpress-plugins/wordtube/translation-of-"
+#~ "plugins/\">here</a> how you can translate the plugin."
+#~ msgstr ""
+#~ "<strong>Would you like to help to translate this plugin ?</strong> <a "
+#~ "target=\"_blank\" href=\"%s\">Download</a> the current pot file and read "
+#~ "<a href=\"http://alexrabe.de/wordpress-plugins/wordtube/translation-of-"
+#~ "plugins/\">here</a> how you can translate the plugin."
+
+#~ msgid ""
+#~ "<strong>Translation by : </strong><a target=\"_blank\" href=\"\">N/A</a>"
+#~ msgstr ""
+#~ "<strong>Übersetzt von : </strong><a target=\"_blank\" href=\"\">Alex "
+#~ "Rabe</a>"
+
+#~ msgid "Setup Gallery"
+#~ msgstr "Galerie Setup"
+
+#~ msgid "Setup"
+#~ msgstr "Setup"
+
+#~ msgid "PHP Output Buffer Size"
+#~ msgstr "PHP Output Buffer Größe"
+
+#~ msgid "for PclZip , a PHP library that manage ZIP archives"
+#~ msgstr "für PclZip, eine ZIP PHP Library"
+
+#~ msgid "Crop square thumbnail from image"
+#~ msgstr "Mittige Thumbnails aus Bildern ausschneiden"
+
+#~ msgid "Create square thumbnails, use only the width setting :"
+#~ msgstr "Erstellt viereckige Thumbnails, nutzt nur den Wert der Breite :"
+
+#, fuzzy
+#~ msgid "Search Media"
+#~ msgstr "Suche nach Stichwörter"
+
+#~ msgid "Select Gallery"
+#~ msgstr "Wähle Galerie"
+
+#~ msgid "Album Page ID"
+#~ msgstr "Album Seiten ID (Page ID)"
+
+#~ msgid "Import a folder with all images."
+#~ msgstr "Importiere ein Verzeichnis mit Bildern."
+
+#~ msgid "Show tags"
+#~ msgstr "Zeige Tags"
+
+#~ msgid "Hide tags"
+#~ msgstr "Verstecke Tags"
+
+#~ msgid "Delete this file ?"
+#~ msgstr "Diese Datei löschen ?"
+
+#~ msgid ""
+#~ "You are about to copy or move %s images \n"
+#~ " \n"
+#~ " 'Cancel' to stop, 'OK' to proceed."
+#~ msgstr ""
+#~ "Willst du wirklich %s Bild(er) verschieben \n"
+#~ " \n"
+#~ " 'Abbrechen' um zu stoppen, 'OK' um die Bearbeitung durchzuführen."
+
+#~ msgid "Show thumbnails "
+#~ msgstr "Thumbnails zeigen"
+
+#~ msgid "Add Gallery"
+#~ msgstr "Bilder/Galerie hinzufügen"
+
+#~ msgid "Manage galleries"
+#~ msgstr "Galerie verwalten"
+
+#~ msgid ""
+#~ "There are totally %1$s pictures in %2$s galleries, which are spread "
+#~ "across %3$s albums."
+#~ msgstr ""
+#~ "Es gibt insgesamt %1$s Bilder in %2$s Galerien - verteilt in %3$s Alben."
+
+#~ msgid "GD support"
+#~ msgstr "GD Unterstützung"
+
+#~ msgid "ImageMagick"
+#~ msgstr "ImageMagick"
+
+#~ msgid "Add Metadata :"
+#~ msgstr "Metadaten hinzufügen :"
+
+#~ msgid "Import EXIF, IPTC or XMP data (if available)"
+#~ msgstr "EXIF, IPTC oder XMP Daten importieren (wenn verfügbar)"
+
+#~ msgid "New Version available"
+#~ msgstr "Neue Version verfügbar !!"
+
+#~ msgid ""
+#~ "The server reports that a new NextGEN Gallery Version is now available. "
+#~ "Please visit the plugin homepage for more information."
+#~ msgstr ""
+#~ "Der Server benachrichtigt Dich über eine neu verfügbare Version der "
+#~ "NextGEN Galerie. Bitte besuche die Plugin Homepage um weitere "
+#~ "Informationen zu erhalten."
+
+#~ msgid "Resample Mode"
+#~ msgstr "Resample Modus"
+
+#~ msgid "Value between 1-5 (higher value, more CPU load)"
+#~ msgstr "Wähle zwischen 1-5 (je höhere desto länger braucht der Server)"
+
+#~ msgid "NextGEN Gallery %d"
+#~ msgstr "NextGEN Gallery %d"
+
+#~ msgid "How many NextGEN Gallery widgets would you like?"
+#~ msgstr "Wie viele NextGEN Gallery Widgets möchtest du haben ?"
+
+#~ msgid "Save"
+#~ msgstr "Speichern"
+
+#~ msgid "for Simple:Press Forum, it saved me a lot of time"
+#~ msgstr "für das  Simple:Press Forum, welches mir viel Zeit sparte"
+
+#~ msgid "Sorry, NextGEN Gallery works only under WordPress 2.5 or higher"
+#~ msgstr ""
+#~ "Tut mir leid aber NextGEN Galerie arbeitet nur ab WordPress 2.5 und "
+#~ "aufwärts"
+
+#~ msgid "Watch gallery"
+#~ msgstr "Galerie ansehen"
+
+#~ msgid "from"
+#~ msgstr "von"
+
+#~ msgid " : Image resized..."
+#~ msgstr " : Bild angepasst..."
+
+#~ msgid "Some pictures are not writeable :"
+#~ msgstr "Einige Bilder sind schreibgeschützt :"
+
+#~ msgid " : Watermark created..."
+#~ msgstr " : Wasserzeichen gesetzt..."
+
+#~ msgid " : Thumbnail created..."
+#~ msgstr ": Thumbnail erstellt..."
+
+#~ msgid "Follow thumbnails could not created."
+#~ msgstr "Folgende Thumbnails konnten nicht erstellt werden  :"
+
+#~ msgid "Some thumbnails are not writeable :"
+#~ msgstr "Einige Thumbnails sind schreibgeschützt :"
+
+#~ msgid "Watermark successfully added"
+#~ msgstr "Wasserzeichen erfolgreich erstellt"
+
+#~ msgid "Images successfully resized"
+#~ msgstr "Bilder erfolgreich verkleinert"
+
+#~ msgid " (require WordPress 2.3 or higher)"
+#~ msgstr " (benötigt WordPress 2.3 oder höher)"
+
+#~ msgid "Show thumbnail description"
+#~ msgstr "Zeige Bildbeschreibung"
+
+#~ msgid "Description text"
+#~ msgstr "Beschreibung"
+
+#~ msgid "Import a folder with images. Please note :"
+#~ msgstr "Importiere ein Verzeichniss mit Bildern. Bitte beachte:"
+
+#~ msgid "For safe-mode = ON you need to add the subfolder thumbs manually"
+#~ msgstr ""
+#~ "Da der Safe-Mode  (PHP.INI) eingeschaltet ist, mußt Du das "
+#~ "Unterverzeichnis für die Vorschaubilder (\"thumbs\") manuell (per FTP) "
+#~ "anlegen"
+
+#~ msgid "The Zip-file is too large. Exceed Memory limit !"
+#~ msgstr "Das Zip-File ist zu groß. Speicherlimit überschritten !"
+
+#~ msgid "Summary"
+#~ msgstr "Zusammenfassung"
+
+#~ msgid "Welcome"
+#~ msgstr "Willkommen"
+
+#~ msgid ""
+#~ "Welcome to NextGEN Gallery. Here you can control your images, galleries "
+#~ "and albums. You currently have %s rights."
+#~ msgstr ""
+#~ "Willkommen zur NextGEN Galerie. Hier kannst Du Deine Bilder, Galerien und "
+#~ "Alben verwalten. Du hast im Moment %s Rechte."
+
+#~ msgid "Add a new gallery or import pictures"
+#~ msgstr "Neue Galerie erstellen oder Bilder importieren"
+
+#~ msgid "Manage galleries and images"
+#~ msgstr "Verwalte Galerien und Bilder"
+
+#~ msgid "URL"
+#~ msgstr "URL"
+
+#~ msgid "Delete File"
+#~ msgstr "Datei löschen"
+
+#~ msgid "Delete image ?"
+#~ msgstr "Bilder löschen ?"
+
+#~ msgid "Browse your files"
+#~ msgstr "Durchsuche deine Dateien"
+
+#~ msgid "Direct link to file"
+#~ msgstr "Link zur Datei"
+
+#~ msgid "Show:"
+#~ msgstr "Zeige als:"
+
+#~ msgid "Link to:"
+#~ msgstr "Link zu:"
+
+#~ msgid "Send to editor &raquo;"
+#~ msgstr "Zum  Editor schicken &raquo;"
+
+#~ msgid ""
+#~ "Are you sure you want to delete the file '%s'?\n"
+#~ "Click ok to delete or cancel to go back."
+#~ msgstr "Bist du sicher das Du diese Datei '%s' löschen willst ?"
+
+#~ msgid "Alt/Titel text"
+#~ msgstr "Alt / Titel Text"
diff --git a/wp-content/plugins/nextgen-gallery/lang/nggallery.pot b/wp-content/plugins/nextgen-gallery/lang/nggallery.pot
new file mode 100644
index 000000000..a7c890ae6
--- /dev/null
+++ b/wp-content/plugins/nextgen-gallery/lang/nggallery.pot
@@ -0,0 +1,3545 @@
+msgid ""
+msgstr ""
+"Project-Id-Version: NextGEN Gallery\n"
+"Report-Msgid-Bugs-To: \n"
+"POT-Creation-Date: 2011-01-16 22:14+0100\n"
+"PO-Revision-Date: 2011-01-16 22:14+0100\n"
+"Last-Translator: Alex Rabe\n"
+"Language-Team: Alex Rabe\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+"X-Poedit-KeywordsList: _n:1,2;__;_e;esc_attr_e;esc_html_e\n"
+"X-Poedit-Basepath: .\n"
+"X-Poedit-Country: GERMANY\n"
+"X-Poedit-SourceCharset: utf-8\n"
+"Plural-Forms: nplurals=2; plural=n != 1;\n"
+"X-Poedit-SearchPath-0: .\n"
+"X-Poedit-SearchPath-1: ..\n"
+
+#: ../nggallery.php:97
+msgid "<strong>Translation by : </strong><a target=\"_blank\" href=\"http://alexrabe.de/wordpress-plugins/nextgen-gallery/languages/\">See here</a>"
+msgstr ""
+
+#: ../nggallery.php:98
+msgid "<strong>This translation is not yet updated for Version 1.7.3</strong>. If you would like to help with translation, download the current po from the plugin folder and read <a href=\"http://alexrabe.de/wordpress-plugins/wordtube/translation-of-plugins/\">here</a> how you can translate the plugin."
+msgstr ""
+
+#: ../nggallery.php:197
+msgid "Sorry, NextGEN Gallery works only with a Memory Limit of 16 MB or higher"
+msgstr ""
+
+#: ../nggallery.php:215
+msgid "Please update the database of NextGEN Gallery."
+msgstr ""
+
+#: ../nggallery.php:215
+msgid "Click here to proceed."
+msgstr ""
+
+#: ../nggallery.php:238
+msgid "Picture tag"
+msgstr ""
+
+#: ../nggallery.php:239
+msgid "Picture tag: %2$l."
+msgstr ""
+
+#: ../nggallery.php:240
+msgid "Separate picture tags with commas."
+msgstr ""
+
+#: ../nggallery.php:339
+msgid "L O A D I N G"
+msgstr ""
+
+#: ../nggallery.php:340
+msgid "Click to Close"
+msgstr ""
+
+#: ../nggallery.php:361
+msgid "loading"
+msgstr ""
+
+#: ../nggallery.php:501
+#: ../nggfunctions.php:920
+#: ../admin/admin.php:32
+msgid "Overview"
+msgstr ""
+
+#: ../nggallery.php:502
+msgid "Get help"
+msgstr ""
+
+#: ../nggallery.php:503
+msgid "Contribute"
+msgstr ""
+
+#: ../nggallery.php:504
+msgid "Donate"
+msgstr ""
+
+#: ../nggfunctions.php:42
+msgid "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."
+msgstr ""
+
+#: ../nggfunctions.php:164
+#: ../nggfunctions.php:630
+msgid "[Gallery not found]"
+msgstr ""
+
+#: ../nggfunctions.php:437
+msgid "[Album not found]"
+msgstr ""
+
+#: ../nggfunctions.php:747
+msgid "[SinglePic not found]"
+msgstr ""
+
+#: ../nggfunctions.php:885
+msgid "Related images for"
+msgstr ""
+
+#: ../admin/about.php:10
+msgid "Copyright notes / Credits"
+msgstr ""
+
+#: ../admin/about.php:13
+msgid "NextGEN DEV Team"
+msgstr ""
+
+#: ../admin/about.php:15
+msgid "This plugin is primarily developed, maintained, supported, documented by"
+msgstr ""
+
+#: ../admin/about.php:15
+msgid "There are many other folks who have made contributions to this project :"
+msgstr ""
+
+#: ../admin/about.php:20
+msgid "Contributors / Tribute to"
+msgstr ""
+
+#: ../admin/about.php:22
+msgid "If you study the code of this plugin, you will find out that we mixed a lot of good already existing code and ideas together."
+msgstr ""
+
+#: ../admin/about.php:23
+msgid "So, we would like to thank the following people for their pioneer work (without this work it's impossible to create such a plugin so fast)"
+msgstr ""
+
+#: ../admin/about.php:25
+msgid "for their great documented code"
+msgstr ""
+
+#: ../admin/about.php:26
+msgid "for jQuery, which is the best Web2.0 framework"
+msgstr ""
+
+#: ../admin/about.php:27
+msgid "for the fantastic PHP Thumbnail Class"
+msgstr ""
+
+#: ../admin/about.php:28
+msgid "for a lot of very useful plugins and ideas"
+msgstr ""
+
+#: ../admin/about.php:29
+msgid "for Shutter Reloaded, a real lightweight image effect"
+msgstr ""
+
+#: ../admin/about.php:30
+msgid "for the best Media Flash Scripts on earth"
+msgstr ""
+
+#: ../admin/about.php:31
+msgid "for the Gallery Icon"
+msgstr ""
+
+#: ../admin/about.php:32
+msgid "for the Watermark plugin"
+msgstr ""
+
+#: ../admin/about.php:34
+msgid "If you didn't find your name on this list and there is some code which I integrate in my plugin, don't hesitate to send me a mail."
+msgstr ""
+
+#: ../admin/about.php:38
+msgid "How to support ?"
+msgstr ""
+
+#: ../admin/about.php:40
+msgid "There exist several ways to contribute, help or support us in this work. Non of them are mandatory."
+msgstr ""
+
+#: ../admin/about.php:42
+msgid "Send us bugfixes / code changes"
+msgstr ""
+
+#: ../admin/about.php:42
+msgid "The most motivated support for this plugin are your ideas and brain work"
+msgstr ""
+
+#: ../admin/about.php:43
+msgid "Translate the plugin"
+msgstr ""
+
+#: ../admin/about.php:43
+msgid "To help people to work with this plugin, I would like to have it in all available languages"
+msgstr ""
+
+#: ../admin/about.php:44
+msgid "Donate the work via paypal"
+msgstr ""
+
+#: ../admin/about.php:57
+msgid "No doubt a very useful and easy motivation :-)"
+msgstr ""
+
+#: ../admin/about.php:59
+msgid "Place a link to the plugin in your blog/webpage"
+msgstr ""
+
+#: ../admin/about.php:59
+msgid "Yes, share and trackback is also a good support for this work "
+msgstr ""
+
+#: ../admin/about.php:64
+msgid "Thanks!"
+msgstr ""
+
+#: ../admin/about.php:66
+msgid "We would like to thank this people which support us in the work :"
+msgstr ""
+
+#: ../admin/about.php:166
+msgid "and all donators..."
+msgstr ""
+
+#: ../admin/addgallery.php:46
+#: ../admin/addgallery.php:57
+#: ../admin/addgallery.php:69
+#: ../admin/addgallery.php:80
+#: ../admin/album.php:96
+#: ../admin/album.php:124
+#: ../admin/album.php:142
+#: ../admin/edit-thumbnail.php:19
+#: ../admin/edit-thumbnail.php:22
+#: ../admin/manage.php:179
+msgid "Cheatin&#8217; uh?"
+msgstr ""
+
+#: ../admin/addgallery.php:62
+msgid "Upload failed!"
+msgstr ""
+
+#: ../admin/addgallery.php:85
+msgid "Upload failed! "
+msgstr ""
+
+#: ../admin/addgallery.php:90
+#: ../admin/functions.php:930
+#: ../admin/functions.php:1030
+msgid "No gallery selected !"
+msgstr ""
+
+#: ../admin/addgallery.php:159
+msgid "Image Files"
+msgstr ""
+
+#: ../admin/addgallery.php:180
+#: ../admin/addgallery.php:208
+msgid "remove"
+msgstr ""
+
+#: ../admin/addgallery.php:181
+#: ../admin/addgallery.php:361
+msgid "Browse..."
+msgstr ""
+
+#: ../admin/addgallery.php:182
+#: ../admin/addgallery.php:194
+#: ../admin/addgallery.php:411
+msgid "Upload images"
+msgstr ""
+
+#: ../admin/addgallery.php:271
+#: ../admin/addgallery.php:377
+msgid "Upload Images"
+msgstr ""
+
+#: ../admin/addgallery.php:274
+#: ../admin/addgallery.php:291
+#: ../admin/manage-galleries.php:112
+#: ../admin/manage-galleries.php:149
+msgid "Add new gallery"
+msgstr ""
+
+#: ../admin/addgallery.php:277
+#: ../admin/addgallery.php:313
+msgid "Upload a Zip-File"
+msgstr ""
+
+#: ../admin/addgallery.php:280
+#: ../admin/addgallery.php:355
+msgid "Import image folder"
+msgstr ""
+
+#: ../admin/addgallery.php:296
+#: ../admin/manage-galleries.php:284
+msgid "New Gallery"
+msgstr ""
+
+#: ../admin/addgallery.php:299
+#: ../admin/manage-galleries.php:286
+msgid "Create a new , empty gallery below the folder"
+msgstr ""
+
+#: ../admin/addgallery.php:301
+#: ../admin/manage-galleries.php:288
+msgid "Allowed characters for file and folder names are"
+msgstr ""
+
+#: ../admin/addgallery.php:305
+msgid "Add gallery"
+msgstr ""
+
+#: ../admin/addgallery.php:318
+msgid "Select Zip-File"
+msgstr ""
+
+#: ../admin/addgallery.php:320
+msgid "Upload a zip file with images"
+msgstr ""
+
+#: ../admin/addgallery.php:324
+msgid "or enter a Zip-File URL"
+msgstr ""
+
+#: ../admin/addgallery.php:326
+msgid "Import a zip file with images from a url"
+msgstr ""
+
+#: ../admin/addgallery.php:330
+#: ../admin/addgallery.php:386
+msgid "in to"
+msgstr ""
+
+#: ../admin/addgallery.php:332
+msgid "a new gallery"
+msgstr ""
+
+#: ../admin/addgallery.php:343
+msgid "Note : The upload limit on your server is "
+msgstr ""
+
+#: ../admin/addgallery.php:347
+msgid "Start upload"
+msgstr ""
+
+#: ../admin/addgallery.php:360
+msgid "Import from Server path:"
+msgstr ""
+
+#: ../admin/addgallery.php:363
+msgid "Note : Change the default path in the gallery settings"
+msgstr ""
+
+#: ../admin/addgallery.php:365
+msgid " Please note : For safe-mode = ON you need to add the subfolder thumbs manually"
+msgstr ""
+
+#: ../admin/addgallery.php:368
+msgid "Import folder"
+msgstr ""
+
+#: ../admin/addgallery.php:382
+msgid "Upload image"
+msgstr ""
+
+#: ../admin/addgallery.php:388
+msgid "Choose gallery"
+msgstr ""
+
+#: ../admin/addgallery.php:407
+msgid "The batch upload requires Adobe Flash 10, disable it if you have problems"
+msgstr ""
+
+#: ../admin/addgallery.php:407
+msgid "Disable flash upload"
+msgstr ""
+
+#: ../admin/addgallery.php:409
+msgid "Upload multiple files at once by ctrl/shift-selecting in dialog"
+msgstr ""
+
+#: ../admin/addgallery.php:409
+msgid "Enable flash based upload"
+msgstr ""
+
+#: ../admin/admin.php:31
+#: ../admin/admin.php:57
+#: ../admin/admin.php:287
+#: ../admin/admin.php:355
+#: ../admin/functions.php:178
+#: ../admin/manage-galleries.php:120
+#: ../admin/manage-galleries.php:372
+#: ../admin/manage-images.php:239
+msgid "Gallery"
+msgid_plural "Galleries"
+msgstr[0] ""
+msgstr[1] ""
+
+#: ../admin/admin.php:33
+msgid "Add Gallery / Images"
+msgstr ""
+
+#: ../admin/admin.php:34
+msgid "Manage Gallery"
+msgstr ""
+
+#: ../admin/admin.php:35
+msgid "Album"
+msgid_plural "Albums"
+msgstr[0] ""
+msgstr[1] ""
+
+#: ../admin/admin.php:36
+msgid "Tags"
+msgstr ""
+
+#: ../admin/admin.php:37
+msgid "Options"
+msgstr ""
+
+#: ../admin/admin.php:39
+msgid "Style"
+msgstr ""
+
+#: ../admin/admin.php:41
+msgid "Roles"
+msgstr ""
+
+#: ../admin/admin.php:42
+msgid "About this Gallery"
+msgstr ""
+
+#: ../admin/admin.php:42
+msgid "About"
+msgstr ""
+
+#: ../admin/admin.php:45
+msgid "NextGEN Gallery"
+msgstr ""
+
+#: ../admin/admin.php:48
+#: ../admin/admin.php:59
+msgid "Reset / Uninstall"
+msgstr ""
+
+#: ../admin/admin.php:58
+msgid "Network settings"
+msgstr ""
+
+#: ../admin/admin.php:98
+#, php-format
+msgid "Thanks for using this plugin, I hope you are satisfied ! If you would like to support the further development, please consider a <strong><a href=\"%s\">donation</a></strong>! If you still need some help, please post your questions <a href=\"http://wordpress.org/tags/nextgen-gallery?forum_id=10\">here</a> ."
+msgstr ""
+
+#: ../admin/admin.php:101
+msgid "OK, hide this message now !"
+msgstr ""
+
+#: ../admin/admin.php:186
+msgid "You do not have the correct permission"
+msgstr ""
+
+#: ../admin/admin.php:187
+msgid "Unexpected Error"
+msgstr ""
+
+#: ../admin/admin.php:188
+msgid "A failure occurred"
+msgstr ""
+
+#: ../admin/admin.php:291
+msgid "<a href=\"http://dpotter.net/Technical/2008/03/nextgen-gallery-review-introduction/\" target=\"_blank\">Introduction</a>"
+msgstr ""
+
+#: ../admin/admin.php:294
+msgid "<a href=\"http://dpotter.net/Technical/2008/03/nextgen-gallery-review-introduction/\" target=\"_blank\">Setup</a>"
+msgstr ""
+
+#: ../admin/admin.php:297
+msgid "<a href=\"http://alexrabe.de/wordpress-plugins/nextgen-gallery/languages/\" target=\"_blank\">Translation by alex rabe</a>"
+msgstr ""
+
+#: ../admin/admin.php:300
+msgid "<a href=\"http://dpotter.net/Technical/2008/03/nextgen-gallery-review-introduction/\" target=\"_blank\">Roles / Capabilities</a>"
+msgstr ""
+
+#: ../admin/admin.php:303
+msgid "<a href=\"http://dpotter.net/Technical/2008/03/nextgen-gallery-review-introduction/\" target=\"_blank\">Styles</a>"
+msgstr ""
+
+#: ../admin/admin.php:304
+msgid "Templates"
+msgstr ""
+
+#: ../admin/admin.php:307
+#: ../admin/admin.php:313
+msgid "<a href=\"http://dpotter.net/Technical/2008/03/nextgen-gallery-review-introduction/\" target=\"_blank\">Gallery management</a>"
+msgstr ""
+
+#: ../admin/admin.php:308
+msgid "Gallery example"
+msgstr ""
+
+#: ../admin/admin.php:314
+#: ../admin/admin.php:324
+msgid "Gallery tags"
+msgstr ""
+
+#: ../admin/admin.php:317
+msgid "<a href=\"http://dpotter.net/Technical/2008/03/nextgen-gallery-review-introduction/\" target=\"_blank\">Album management</a>"
+msgstr ""
+
+#: ../admin/admin.php:318
+msgid "Album example"
+msgstr ""
+
+#: ../admin/admin.php:319
+#: ../admin/admin.php:325
+msgid "Album tags"
+msgstr ""
+
+#: ../admin/admin.php:322
+msgid "<a href=\"http://dpotter.net/Technical/2008/03/nextgen-gallery-review-introduction/\" target=\"_blank\">Gallery tags</a>"
+msgstr ""
+
+#: ../admin/admin.php:323
+msgid "Related images"
+msgstr ""
+
+#: ../admin/admin.php:328
+msgid "<a href=\"http://dpotter.net/Technical/2008/03/nextgen-gallery-review-image-management/\" target=\"_blank\">Image management</a>"
+msgstr ""
+
+#: ../admin/admin.php:329
+msgid "Custom fields"
+msgstr ""
+
+#: ../admin/admin.php:334
+msgid "Get help with NextGEN Gallery"
+msgstr ""
+
+#: ../admin/admin.php:338
+msgid "More Help & Info"
+msgstr ""
+
+#: ../admin/admin.php:340
+msgid "<a href=\"http://wordpress.org/tags/nextgen-gallery?forum_id=10\" target=\"_blank\">Support Forums</a>"
+msgstr ""
+
+#: ../admin/admin.php:341
+msgid "FAQ"
+msgstr ""
+
+#: ../admin/admin.php:342
+msgid "Feature request"
+msgstr ""
+
+#: ../admin/admin.php:343
+msgid "Get your language pack"
+msgstr ""
+
+#: ../admin/admin.php:344
+msgid "Contribute development"
+msgstr ""
+
+#: ../admin/admin.php:345
+msgid "Download latest version"
+msgstr ""
+
+#: ../admin/ajax.php:312
+msgid "You are not allowed to be here"
+msgstr ""
+
+#: ../admin/ajax.php:406
+#, php-format
+msgid "Could create image with %s x %s pixel"
+msgstr ""
+
+#: ../admin/album.php:102
+#: ../admin/album.php:117
+#: ../admin/album.php:158
+msgid "Update Successfully"
+msgstr ""
+
+#: ../admin/album.php:131
+msgid "Album deleted"
+msgstr ""
+
+#: ../admin/album.php:269
+msgid "Edit Album"
+msgstr ""
+
+#: ../admin/album.php:278
+msgid "Manage Albums"
+msgstr ""
+
+#: ../admin/album.php:284
+#: ../admin/album.php:333
+msgid "Select album"
+msgstr ""
+
+#: ../admin/album.php:286
+msgid "No album selected"
+msgstr ""
+
+#: ../admin/album.php:297
+#: ../admin/edit-thumbnail.php:157
+msgid "Update"
+msgstr ""
+
+#: ../admin/album.php:299
+msgid "Edit album"
+msgstr ""
+
+#: ../admin/album.php:302
+#: ../admin/manage-galleries.php:139
+#: ../admin/manage-images.php:445
+msgid "Delete"
+msgstr ""
+
+#: ../admin/album.php:306
+msgid "Add new album"
+msgstr ""
+
+#: ../admin/album.php:308
+msgid "Add"
+msgstr ""
+
+#: ../admin/album.php:319
+msgid "Show / hide used galleries"
+msgstr ""
+
+#: ../admin/album.php:319
+msgid "[Show all]"
+msgstr ""
+
+#: ../admin/album.php:320
+msgid "Maximize the widget content"
+msgstr ""
+
+#: ../admin/album.php:320
+msgid "[Maximize]"
+msgstr ""
+
+#: ../admin/album.php:321
+msgid "Minimize the widget content"
+msgstr ""
+
+#: ../admin/album.php:321
+msgid "[Minimize]"
+msgstr ""
+
+#: ../admin/album.php:323
+msgid "After you create and select a album, you can drag and drop a gallery or another album into your new album below"
+msgstr ""
+
+#: ../admin/album.php:349
+msgid "Select gallery"
+msgstr ""
+
+#: ../admin/album.php:378
+msgid "Album ID"
+msgstr ""
+
+#: ../admin/album.php:391
+msgid "No album selected!"
+msgstr ""
+
+#: ../admin/album.php:411
+msgid "Album name:"
+msgstr ""
+
+#: ../admin/album.php:417
+msgid "Album description:"
+msgstr ""
+
+#: ../admin/album.php:423
+msgid "Select a preview image:"
+msgstr ""
+
+#: ../admin/album.php:426
+#: ../admin/album.php:429
+msgid "No picture"
+msgstr ""
+
+#: ../admin/album.php:440
+#: ../admin/manage-images.php:257
+msgid "Page Link to"
+msgstr ""
+
+#: ../admin/album.php:442
+#: ../admin/manage-images.php:260
+msgid "Not linked"
+msgstr ""
+
+#: ../admin/album.php:455
+#: ../admin/manage-galleries.php:293
+#: ../admin/manage-galleries.php:322
+#: ../admin/manage-galleries.php:352
+#: ../admin/manage-images.php:539
+#: ../admin/manage-images.php:575
+#: ../admin/manage-images.php:604
+#: ../admin/manage-images.php:634
+msgid "OK"
+msgstr ""
+
+#: ../admin/album.php:457
+#: ../admin/manage-galleries.php:295
+#: ../admin/manage-galleries.php:324
+#: ../admin/manage-galleries.php:354
+#: ../admin/manage-images.php:541
+#: ../admin/manage-images.php:577
+#: ../admin/manage-images.php:606
+#: ../admin/manage-images.php:636
+msgid "Cancel"
+msgstr ""
+
+#: ../admin/album.php:541
+msgid "Name"
+msgstr ""
+
+#: ../admin/album.php:542
+#: ../admin/manage-images.php:255
+msgid "Title"
+msgstr ""
+
+#: ../admin/album.php:543
+msgid "Page"
+msgstr ""
+
+#: ../admin/edit-thumbnail.php:106
+msgid "Select with the mouse the area for the new thumbnail"
+msgstr ""
+
+#: ../admin/edit-thumbnail.php:120
+msgid "Thumbnail updated"
+msgstr ""
+
+#: ../admin/edit-thumbnail.php:125
+msgid "Error updating thumbnail"
+msgstr ""
+
+#: ../admin/edit-thumbnail.php:142
+msgid "Select the area for the thumbnail from the picture on the left."
+msgstr ""
+
+#: ../admin/functions.php:39
+msgid "No valid gallery name!"
+msgstr ""
+
+#: ../admin/functions.php:46
+#: ../admin/functions.php:55
+#: ../admin/functions.php:80
+#: ../admin/functions.php:149
+#: ../admin/functions.php:157
+msgid "Directory"
+msgstr ""
+
+#: ../admin/functions.php:46
+msgid "didn't exist. Please create first the main gallery folder "
+msgstr ""
+
+#: ../admin/functions.php:47
+#: ../admin/functions.php:56
+msgid "Check this link, if you didn't know how to set the permission :"
+msgstr ""
+
+#: ../admin/functions.php:55
+#: ../admin/functions.php:80
+msgid "is not writeable !"
+msgstr ""
+
+#: ../admin/functions.php:76
+#: ../admin/functions.php:85
+#: ../admin/functions.php:889
+msgid "Unable to create directory "
+msgstr ""
+
+#: ../admin/functions.php:89
+msgid "The server setting Safe-Mode is on !"
+msgstr ""
+
+#: ../admin/functions.php:90
+msgid "If you have problems, please create directory"
+msgstr ""
+
+#: ../admin/functions.php:91
+msgid "and the thumbnails directory"
+msgstr ""
+
+#: ../admin/functions.php:91
+msgid "with permission 777 manually !"
+msgstr ""
+
+#: ../admin/functions.php:116
+#, php-format
+msgid "Gallery ID %1$s successfully created. You can show this gallery in your post or page with the shortcode %2$s.<br/>"
+msgstr ""
+
+#: ../admin/functions.php:119
+msgid "Edit gallery"
+msgstr ""
+
+#: ../admin/functions.php:149
+msgid "doesn&#96;t exist!"
+msgstr ""
+
+#: ../admin/functions.php:157
+msgid "contains no pictures"
+msgstr ""
+
+#: ../admin/functions.php:175
+msgid "Database error. Could not add gallery!"
+msgstr ""
+
+#: ../admin/functions.php:178
+msgid "successfully created!"
+msgstr ""
+
+#: ../admin/functions.php:207
+#: ../admin/functions.php:1006
+#: ../admin/manage-galleries.php:74
+#: ../admin/manage-galleries.php:141
+#: ../admin/manage-images.php:202
+#: ../admin/manage-images.php:341
+#: ../admin/manage.php:216
+#: ../admin/manage.php:292
+msgid "Create new thumbnails"
+msgstr ""
+
+#: ../admin/functions.php:210
+msgid " picture(s) successfully added"
+msgstr ""
+
+#: ../admin/functions.php:260
+#: ../admin/functions.php:340
+#: ../admin/functions.php:395
+#: ../admin/functions.php:492
+#: ../admin/functions.php:546
+msgid "Object didn't contain correct data"
+msgstr ""
+
+#: ../admin/functions.php:268
+msgid " is not writeable "
+msgstr ""
+
+#: ../admin/functions.php:350
+#: ../admin/functions.php:398
+#: ../admin/functions.php:498
+#: ../admin/functions.php:549
+msgid " is not writeable"
+msgstr ""
+
+#: ../admin/functions.php:552
+msgid "File do not exists"
+msgstr ""
+
+#: ../admin/functions.php:556
+msgid "Couldn't restore original image"
+msgstr ""
+
+#: ../admin/functions.php:669
+msgid "(Error : Couldn't not update data base)"
+msgstr ""
+
+#: ../admin/functions.php:676
+msgid "(Error : Couldn't not update meta data)"
+msgstr ""
+
+#: ../admin/functions.php:685
+msgid "(Error : Couldn't not find image)"
+msgstr ""
+
+#: ../admin/functions.php:823
+msgid "No valid URL path "
+msgstr ""
+
+#: ../admin/functions.php:839
+msgid "Import via cURL failed."
+msgstr ""
+
+#: ../admin/functions.php:856
+msgid "Uploaded file was no or a faulty zip file ! The server recognized : "
+msgstr ""
+
+#: ../admin/functions.php:873
+msgid "Could not get a valid foldername"
+msgstr ""
+
+#: ../admin/functions.php:884
+#, php-format
+msgid "Unable to create directory %s. Is its parent directory writable by the server?"
+msgstr ""
+
+#: ../admin/functions.php:899
+msgid "Zip-File successfully unpacked"
+msgstr ""
+
+#: ../admin/functions.php:938
+#: ../admin/functions.php:1055
+msgid "Failure in database, no gallery path set !"
+msgstr ""
+
+#: ../admin/functions.php:962
+#: ../admin/functions.php:1049
+msgid "is no valid image file!"
+msgstr ""
+
+#: ../admin/functions.php:976
+#: ../admin/functions.php:1175
+#: ../admin/functions.php:1252
+#, php-format
+msgid "Unable to write to directory %s. Is this directory writable by the server?"
+msgstr ""
+
+#: ../admin/functions.php:983
+#: ../admin/functions.php:1072
+msgid "Error, the file could not be moved to : "
+msgstr ""
+
+#: ../admin/functions.php:988
+#: ../admin/functions.php:1076
+msgid "Error, the file permissions could not be set"
+msgstr ""
+
+#: ../admin/functions.php:1011
+msgid " Image(s) successfully added"
+msgstr ""
+
+#: ../admin/functions.php:1038
+msgid "Invalid upload. Error Code : "
+msgstr ""
+
+#: ../admin/functions.php:1115
+#, php-format
+msgid "SAFE MODE Restriction in effect! You need to create the folder <strong>%s</strong> manually"
+msgstr ""
+
+#: ../admin/functions.php:1116
+#, php-format
+msgid "When safe_mode is on, PHP checks to see if the owner (%s) of the current script matches the owner (%s) of the file to be operated on by a file function or its directory"
+msgstr ""
+
+#: ../admin/functions.php:1169
+#: ../admin/functions.php:1246
+msgid "The destination gallery does not exist"
+msgstr ""
+
+#: ../admin/functions.php:1200
+#, php-format
+msgid "Failed to move image %1$s to %2$s"
+msgstr ""
+
+#: ../admin/functions.php:1220
+#, php-format
+msgid "Moved %1$s picture(s) to gallery : %2$s ."
+msgstr ""
+
+#: ../admin/functions.php:1279
+#, php-format
+msgid "Failed to copy image %1$s to %2$s"
+msgstr ""
+
+#: ../admin/functions.php:1293
+#, php-format
+msgid "Failed to copy database row for picture %s"
+msgstr ""
+
+#: ../admin/functions.php:1305
+#, php-format
+msgid "Image %1$s (%2$s) copied as image %3$s (%4$s) &raquo; The file already existed in the destination gallery."
+msgstr ""
+
+#: ../admin/functions.php:1308
+#, php-format
+msgid "Image %1$s (%2$s) copied as image %3$s (%4$s)"
+msgstr ""
+
+#: ../admin/functions.php:1317
+#, php-format
+msgid "Copied %1$s picture(s) to gallery: %2$s ."
+msgstr ""
+
+#: ../admin/functions.php:1425
+msgid "The uploaded file exceeds the upload_max_filesize directive in php.ini"
+msgstr ""
+
+#: ../admin/functions.php:1428
+msgid "The uploaded file exceeds the MAX_FILE_SIZE directive that was specified in the HTML form"
+msgstr ""
+
+#: ../admin/functions.php:1431
+msgid "The uploaded file was only partially uploaded"
+msgstr ""
+
+#: ../admin/functions.php:1434
+msgid "No file was uploaded"
+msgstr ""
+
+#: ../admin/functions.php:1437
+msgid "Missing a temporary folder"
+msgstr ""
+
+#: ../admin/functions.php:1440
+msgid "Failed to write file to disk"
+msgstr ""
+
+#: ../admin/functions.php:1443
+msgid "File upload stopped by extension"
+msgstr ""
+
+#: ../admin/functions.php:1446
+msgid "Unknown upload error"
+msgstr ""
+
+#: ../admin/install.php:23
+msgid "Sorry, NextGEN Gallery works only with a role called administrator"
+msgstr ""
+
+#: ../admin/install.php:112
+msgid "NextGEN Gallery : Tables could not created, please check your database settings"
+msgstr ""
+
+#: ../admin/install.php:170
+msgid "[Show as slideshow]"
+msgstr ""
+
+#: ../admin/install.php:171
+msgid "[Show picture list]"
+msgstr ""
+
+#: ../admin/manage-galleries.php:20
+#: ../admin/manage-images.php:55
+msgid "&laquo;"
+msgstr ""
+
+#: ../admin/manage-galleries.php:21
+#: ../admin/manage-images.php:56
+msgid "&raquo;"
+msgstr ""
+
+#: ../admin/manage-galleries.php:62
+#: ../admin/manage-images.php:170
+msgid "No images selected"
+msgstr ""
+
+#: ../admin/manage-galleries.php:70
+#: ../admin/manage-galleries.php:142
+#: ../admin/manage-images.php:198
+#: ../admin/manage-images.php:342
+#: ../admin/manage.php:200
+#: ../admin/manage.php:278
+msgid "Resize images"
+msgstr ""
+
+#: ../admin/manage-galleries.php:79
+#, php-format
+msgid ""
+"You are about to start the bulk edit for %s galleries \n"
+" \n"
+" 'Cancel' to stop, 'OK' to proceed."
+msgstr ""
+
+#: ../admin/manage-galleries.php:123
+#: ../admin/manage-galleries.php:126
+#: ../admin/manage-images.php:225
+#: ../admin/manage-images.php:228
+msgid "Search Images"
+msgstr ""
+
+#: ../admin/manage-galleries.php:138
+#: ../admin/manage-images.php:339
+msgid "Bulk actions"
+msgstr ""
+
+#: ../admin/manage-galleries.php:140
+#: ../admin/manage-images.php:340
+#: ../admin/manage.php:133
+#: ../admin/manage.php:242
+msgid "Set watermark"
+msgstr ""
+
+#: ../admin/manage-galleries.php:143
+#: ../admin/manage-images.php:345
+#: ../admin/manage.php:138
+#: ../admin/manage.php:262
+msgid "Import metadata"
+msgstr ""
+
+#: ../admin/manage-galleries.php:144
+#: ../admin/manage-images.php:343
+#: ../admin/manage.php:128
+#: ../admin/manage.php:239
+msgid "Recover from backup"
+msgstr ""
+
+#: ../admin/manage-galleries.php:146
+#: ../admin/manage-images.php:354
+msgid "Apply"
+msgstr ""
+
+#: ../admin/manage-galleries.php:154
+#: ../admin/manage-galleries.php:266
+#: ../admin/manage-images.php:330
+#: ../admin/manage-images.php:514
+#, php-format
+msgid "Displaying %s&#8211;%s of %s"
+msgstr ""
+
+#: ../admin/manage-galleries.php:219
+msgid "Edit"
+msgstr ""
+
+#: ../admin/manage-galleries.php:259
+#: ../admin/manage-images.php:505
+msgid "No entries found"
+msgstr ""
+
+#: ../admin/manage-galleries.php:313
+#: ../admin/manage-images.php:595
+msgid "Resize Images to"
+msgstr ""
+
+#: ../admin/manage-galleries.php:317
+#: ../admin/manage-images.php:599
+msgid "Width x height (in pixel). NextGEN Gallery will keep ratio size"
+msgstr ""
+
+#: ../admin/manage-galleries.php:341
+#: ../admin/manage-images.php:623
+msgid "Width x height (in pixel)"
+msgstr ""
+
+#: ../admin/manage-galleries.php:343
+#: ../admin/manage-images.php:625
+msgid "These values are maximum values "
+msgstr ""
+
+#: ../admin/manage-galleries.php:346
+#: ../admin/manage-images.php:628
+msgid "Set fix dimension"
+msgstr ""
+
+#: ../admin/manage-galleries.php:348
+#: ../admin/manage-images.php:630
+msgid "Ignore the aspect ratio, no portrait thumbnails"
+msgstr ""
+
+#: ../admin/manage-galleries.php:371
+#: ../admin/manage-images.php:658
+msgid "ID"
+msgstr ""
+
+#: ../admin/manage-galleries.php:373
+#: ../admin/manage-images.php:266
+#: ../admin/manage-images.php:663
+msgid "Description"
+msgstr ""
+
+#: ../admin/manage-galleries.php:374
+#: ../admin/manage-images.php:287
+msgid "Author"
+msgstr ""
+
+#: ../admin/manage-galleries.php:375
+msgid "Page ID"
+msgstr ""
+
+#: ../admin/manage-galleries.php:376
+msgid "Image"
+msgid_plural "Images"
+msgstr[0] ""
+msgstr[1] ""
+
+#: ../admin/manage-images.php:32
+msgid "Gallery not found."
+msgstr ""
+
+#: ../admin/manage-images.php:38
+msgid "Sorry, you have no access here"
+msgstr ""
+
+#: ../admin/manage-images.php:178
+msgid "Copy image to..."
+msgstr ""
+
+#: ../admin/manage-images.php:182
+msgid "Move image to..."
+msgstr ""
+
+#: ../admin/manage-images.php:186
+msgid "Add new tags"
+msgstr ""
+
+#: ../admin/manage-images.php:190
+#: ../admin/manage-images.php:351
+msgid "Delete tags"
+msgstr ""
+
+#: ../admin/manage-images.php:194
+msgid "Overwrite"
+msgstr ""
+
+#: ../admin/manage-images.php:207
+#, php-format
+msgid ""
+"You are about to start the bulk edit for %s images \n"
+" \n"
+" 'Cancel' to stop, 'OK' to proceed."
+msgstr ""
+
+#: ../admin/manage-images.php:222
+#, php-format
+msgid "Search results for &#8220;%s&#8221;"
+msgstr ""
+
+#: ../admin/manage-images.php:251
+msgid "Gallery settings"
+msgstr ""
+
+#: ../admin/manage-images.php:251
+msgid "Click here for more settings"
+msgstr ""
+
+#: ../admin/manage-images.php:268
+msgid "Preview image"
+msgstr ""
+
+#: ../admin/manage-images.php:271
+msgid "No Picture"
+msgstr ""
+
+#: ../admin/manage-images.php:285
+msgid "Path"
+msgstr ""
+
+#: ../admin/manage-images.php:302
+msgid "Create new page"
+msgstr ""
+
+#: ../admin/manage-images.php:305
+msgid "Main page (No parent)"
+msgstr ""
+
+#: ../admin/manage-images.php:308
+msgid "Add page"
+msgstr ""
+
+#: ../admin/manage-images.php:317
+msgid "Scan Folder for new images"
+msgstr ""
+
+#: ../admin/manage-images.php:318
+#: ../admin/manage-images.php:360
+#: ../admin/manage-images.php:512
+msgid "Save Changes"
+msgstr ""
+
+#: ../admin/manage-images.php:344
+msgid "Delete images"
+msgstr ""
+
+#: ../admin/manage-images.php:346
+msgid "Rotate images clockwise"
+msgstr ""
+
+#: ../admin/manage-images.php:347
+msgid "Rotate images counter-clockwise"
+msgstr ""
+
+#: ../admin/manage-images.php:348
+msgid "Copy to..."
+msgstr ""
+
+#: ../admin/manage-images.php:349
+msgid "Move to..."
+msgstr ""
+
+#: ../admin/manage-images.php:350
+msgid "Add tags"
+msgstr ""
+
+#: ../admin/manage-images.php:352
+msgid "Overwrite tags"
+msgstr ""
+
+#: ../admin/manage-images.php:357
+msgid "Sort gallery"
+msgstr ""
+
+#: ../admin/manage-images.php:431
+msgid "pixel"
+msgstr ""
+
+#: ../admin/manage-images.php:437
+#, php-format
+msgid "View \"%s\""
+msgstr ""
+
+#: ../admin/manage-images.php:437
+msgid "View"
+msgstr ""
+
+#: ../admin/manage-images.php:438
+msgid "Show Meta data"
+msgstr ""
+
+#: ../admin/manage-images.php:438
+msgid "Meta"
+msgstr ""
+
+#: ../admin/manage-images.php:439
+msgid "Customize thumbnail"
+msgstr ""
+
+#: ../admin/manage-images.php:439
+msgid "Edit thumb"
+msgstr ""
+
+#: ../admin/manage-images.php:440
+msgid "Rotate"
+msgstr ""
+
+#: ../admin/manage-images.php:442
+msgid "Publish this image"
+msgstr ""
+
+#: ../admin/manage-images.php:442
+msgid "Publish"
+msgstr ""
+
+#: ../admin/manage-images.php:444
+msgid "Recover"
+msgstr ""
+
+#: ../admin/manage-images.php:444
+#, php-format
+msgid "Recover \"%s\" ?"
+msgstr ""
+
+#: ../admin/manage-images.php:445
+#, php-format
+msgid "Delete \"%s\" ?"
+msgstr ""
+
+#: ../admin/manage-images.php:535
+msgid "Enter the tags"
+msgstr ""
+
+#: ../admin/manage-images.php:559
+msgid "Select the destination gallery:"
+msgstr ""
+
+#: ../admin/manage-images.php:659
+msgid "Thumbnail"
+msgstr ""
+
+#: ../admin/manage-images.php:661
+#: ../admin/manage-sort.php:77
+msgid "Filename"
+msgstr ""
+
+#: ../admin/manage-images.php:663
+msgid "Alt &amp; Title Text"
+msgstr ""
+
+#: ../admin/manage-images.php:664
+msgid "Tags (comma separated list)"
+msgstr ""
+
+#: ../admin/manage-images.php:666
+msgid "exclude"
+msgstr ""
+
+#: ../admin/manage-sort.php:33
+msgid "Sort order changed"
+msgstr ""
+
+#: ../admin/manage-sort.php:62
+msgid "Sort Gallery"
+msgstr ""
+
+#: ../admin/manage-sort.php:66
+msgid "Update Sort Order"
+msgstr ""
+
+#: ../admin/manage-sort.php:69
+msgid "Back to gallery"
+msgstr ""
+
+#: ../admin/manage-sort.php:74
+msgid "Presort"
+msgstr ""
+
+#: ../admin/manage-sort.php:75
+msgid "Unsorted"
+msgstr ""
+
+#: ../admin/manage-sort.php:76
+msgid "Image ID"
+msgstr ""
+
+#: ../admin/manage-sort.php:78
+msgid "Alt/Title text"
+msgstr ""
+
+#: ../admin/manage-sort.php:79
+msgid "Date/Time"
+msgstr ""
+
+#: ../admin/manage-sort.php:80
+msgid "Ascending"
+msgstr ""
+
+#: ../admin/manage-sort.php:81
+msgid "Descending"
+msgstr ""
+
+#: ../admin/manage.php:77
+msgid "Picture"
+msgstr ""
+
+#: ../admin/manage.php:77
+msgid "deleted successfully"
+msgstr ""
+
+#: ../admin/manage.php:92
+#: ../admin/manage.php:101
+msgid "Operation successful. Please clear your browser cache."
+msgstr ""
+
+#: ../admin/manage.php:168
+msgid "Gallery deleted successfully "
+msgstr ""
+
+#: ../admin/manage.php:233
+#: ../admin/manage.php:236
+msgid "Rotate images"
+msgstr ""
+
+#: ../admin/manage.php:258
+msgid "Pictures deleted successfully "
+msgstr ""
+
+#: ../admin/manage.php:354
+msgid "Tags changed"
+msgstr ""
+
+#: ../admin/manage.php:390
+msgid "Update successful"
+msgstr ""
+
+#: ../admin/manage.php:425
+msgid "New gallery page ID"
+msgstr ""
+
+#: ../admin/manage.php:425
+msgid "created"
+msgstr ""
+
+#: ../admin/manage.php:461
+msgid "Published a new post"
+msgstr ""
+
+#: ../admin/media-upload.php:166
+msgid "No gallery"
+msgstr ""
+
+#: ../admin/media-upload.php:178
+msgid "Select &#187;"
+msgstr ""
+
+#: ../admin/media-upload.php:209
+msgid "Show"
+msgstr ""
+
+#: ../admin/media-upload.php:210
+msgid "Hide"
+msgstr ""
+
+#: ../admin/media-upload.php:215
+msgid "Image ID:"
+msgstr ""
+
+#: ../admin/media-upload.php:229
+#: ../admin/publish.php:55
+msgid "Alignment"
+msgstr ""
+
+#: ../admin/media-upload.php:232
+#: ../admin/publish.php:57
+#: ../admin/settings.php:478
+msgid "None"
+msgstr ""
+
+#: ../admin/media-upload.php:234
+#: ../admin/publish.php:59
+#: ../admin/tinymce/window.php:120
+msgid "Left"
+msgstr ""
+
+#: ../admin/media-upload.php:236
+#: ../admin/publish.php:61
+#: ../admin/tinymce/window.php:121
+msgid "Center"
+msgstr ""
+
+#: ../admin/media-upload.php:238
+#: ../admin/publish.php:63
+#: ../admin/tinymce/window.php:122
+msgid "Right"
+msgstr ""
+
+#: ../admin/media-upload.php:242
+#: ../admin/settings.php:585
+msgid "Size"
+msgstr ""
+
+#: ../admin/media-upload.php:248
+msgid "Full size"
+msgstr ""
+
+#: ../admin/media-upload.php:250
+msgid "Singlepic"
+msgstr ""
+
+#: ../admin/media-upload.php:263
+msgid "Insert into Post"
+msgstr ""
+
+#: ../admin/media-upload.php:274
+msgid "Save all changes"
+msgstr ""
+
+#: ../admin/overview.php:14
+msgid "NextGEN Gallery Overview"
+msgstr ""
+
+#: ../admin/overview.php:86
+msgid "Welcome to NextGEN Gallery !"
+msgstr ""
+
+#: ../admin/overview.php:87
+msgid "Do you like this Plugin?"
+msgstr ""
+
+#: ../admin/overview.php:89
+msgid "Translation"
+msgstr ""
+
+#: ../admin/overview.php:90
+msgid "Latest News"
+msgstr ""
+
+#: ../admin/overview.php:91
+msgid "Recent donators"
+msgstr ""
+
+#: ../admin/overview.php:93
+msgid "Plugin Check"
+msgstr ""
+
+#: ../admin/overview.php:94
+msgid "Server Settings"
+msgstr ""
+
+#: ../admin/overview.php:95
+msgid "Related plugins"
+msgstr ""
+
+#: ../admin/overview.php:101
+#, php-format
+msgid "This plugin is primarily developed, maintained, supported and documented by <a href=\"%s\">Alex Rabe</a> with a lot of love & effort. Any kind of contribution would be highly appreciated. Thanks!"
+msgstr ""
+
+#: ../admin/overview.php:106
+msgid "Give it a good rating on WordPress.org."
+msgstr ""
+
+#: ../admin/overview.php:111
+msgid "Donate the work via paypal."
+msgstr ""
+
+#: ../admin/overview.php:116
+msgid "Send a gift to show your appreciation."
+msgstr ""
+
+#: ../admin/overview.php:121
+msgid "Help translating it."
+msgstr ""
+
+#: ../admin/overview.php:258
+msgid "Running..."
+msgstr ""
+
+#: ../admin/overview.php:305
+msgid "Check plugin/theme conflict"
+msgstr ""
+
+#: ../admin/overview.php:306
+#: ../admin/overview.php:312
+#: ../admin/overview.php:318
+msgid "Not tested"
+msgstr ""
+
+#: ../admin/overview.php:307
+msgid "No conflict could be detected"
+msgstr ""
+
+#: ../admin/overview.php:308
+msgid "Test failed, disable other plugins & switch to default theme"
+msgstr ""
+
+#: ../admin/overview.php:311
+msgid "Test image function"
+msgstr ""
+
+#: ../admin/overview.php:313
+msgid "The plugin could create images"
+msgstr ""
+
+#: ../admin/overview.php:314
+msgid "Couldn't create image, check your memory limit"
+msgstr ""
+
+#: ../admin/overview.php:317
+msgid "Check theme compatibility"
+msgstr ""
+
+#: ../admin/overview.php:319
+msgid "Your theme should work fine with NextGEN Gallery"
+msgstr ""
+
+#: ../admin/overview.php:320
+msgid "wp_head()/wp_footer() is missing, contact the theme author"
+msgstr ""
+
+#: ../admin/overview.php:324
+msgid "Check plugin"
+msgstr ""
+
+#: ../admin/overview.php:345
+msgid "Graphic Library"
+msgstr ""
+
+#: ../admin/overview.php:361
+#: ../admin/overview.php:410
+#: ../admin/overview.php:597
+#: ../admin/overview.php:787
+msgid "Loading&#8230;"
+msgstr ""
+
+#: ../admin/overview.php:361
+#: ../admin/overview.php:410
+#: ../admin/overview.php:597
+#: ../admin/overview.php:787
+msgid "This widget requires JavaScript."
+msgstr ""
+
+#: ../admin/overview.php:374
+msgid "Thanks to all donators..."
+msgstr ""
+
+#: ../admin/overview.php:396
+msgid "View all"
+msgstr ""
+
+#: ../admin/overview.php:422
+#, php-format
+msgid "Newsfeed could not be loaded.  Check the <a href=\"%s\">front page</a> to check for updates."
+msgstr ""
+
+#: ../admin/overview.php:434
+msgid "Untitled"
+msgstr ""
+
+#: ../admin/overview.php:484
+msgid "At a Glance"
+msgstr ""
+
+#: ../admin/overview.php:510
+msgid "Upload pictures"
+msgstr ""
+
+#: ../admin/overview.php:511
+msgid "Here you can control your images, galleries and albums."
+msgstr ""
+
+#: ../admin/overview.php:541
+msgid "Storage Space"
+msgstr ""
+
+#: ../admin/overview.php:545
+#, php-format
+msgid "<a href=\"%1$s\" title=\"Manage Uploads\" class=\"musublink\">%2$sMB</a>"
+msgstr ""
+
+#: ../admin/overview.php:546
+msgid "Space Allowed"
+msgstr ""
+
+#: ../admin/overview.php:553
+#, php-format
+msgid "<a href=\"%1$s\" title=\"Manage Uploads\" class=\"musublink\">%2$sMB (%3$s%%)</a>"
+msgstr ""
+
+#: ../admin/overview.php:554
+msgid "Space Used"
+msgstr ""
+
+#: ../admin/overview.php:583
+msgid "Translation file successful updated. Please reload page."
+msgstr ""
+
+#: ../admin/overview.php:585
+msgid "Reload page"
+msgstr ""
+
+#: ../admin/overview.php:590
+msgid "Translation file couldn't be updated"
+msgstr ""
+
+#: ../admin/overview.php:627
+msgid "Download"
+msgstr ""
+
+#: ../admin/overview.php:656
+msgid "No GD support"
+msgstr ""
+
+#: ../admin/overview.php:668
+#: ../admin/overview.php:714
+#: ../admin/overview.php:717
+#: ../admin/overview.php:720
+msgid "Yes"
+msgstr ""
+
+#: ../admin/overview.php:670
+#: ../admin/overview.php:715
+#: ../admin/overview.php:718
+#: ../admin/overview.php:721
+msgid "No"
+msgstr ""
+
+#: ../admin/overview.php:688
+msgid "Not set"
+msgstr ""
+
+#: ../admin/overview.php:690
+#: ../admin/overview.php:693
+msgid "On"
+msgstr ""
+
+#: ../admin/overview.php:691
+#: ../admin/overview.php:694
+msgid "Off"
+msgstr ""
+
+#: ../admin/overview.php:697
+#: ../admin/overview.php:700
+#: ../admin/overview.php:703
+#: ../admin/overview.php:706
+#: ../admin/overview.php:709
+#: ../admin/overview.php:712
+msgid "N/A"
+msgstr ""
+
+#: ../admin/overview.php:711
+msgid " MByte"
+msgstr ""
+
+#: ../admin/overview.php:724
+msgid "Operating System"
+msgstr ""
+
+#: ../admin/overview.php:725
+msgid "Server"
+msgstr ""
+
+#: ../admin/overview.php:726
+msgid "Memory usage"
+msgstr ""
+
+#: ../admin/overview.php:727
+msgid "MYSQL Version"
+msgstr ""
+
+#: ../admin/overview.php:728
+msgid "SQL Mode"
+msgstr ""
+
+#: ../admin/overview.php:729
+msgid "PHP Version"
+msgstr ""
+
+#: ../admin/overview.php:730
+msgid "PHP Safe Mode"
+msgstr ""
+
+#: ../admin/overview.php:731
+msgid "PHP Allow URL fopen"
+msgstr ""
+
+#: ../admin/overview.php:732
+msgid "PHP Memory Limit"
+msgstr ""
+
+#: ../admin/overview.php:733
+msgid "PHP Max Upload Size"
+msgstr ""
+
+#: ../admin/overview.php:734
+msgid "PHP Max Post Size"
+msgstr ""
+
+#: ../admin/overview.php:735
+msgid "PCRE Backtracking Limit"
+msgstr ""
+
+#: ../admin/overview.php:736
+msgid "PHP Max Script Execute Time"
+msgstr ""
+
+#: ../admin/overview.php:737
+msgid "PHP Exif support"
+msgstr ""
+
+#: ../admin/overview.php:738
+msgid "PHP IPTC support"
+msgstr ""
+
+#: ../admin/overview.php:739
+msgid "PHP XML support"
+msgstr ""
+
+#: ../admin/overview.php:751
+msgid "NextGEN Gallery contains some functions which are only available under PHP 5.2. You are using the old PHP 4 version, upgrade now! It's no longer supported by the PHP group. Many shared hosting providers offer both PHP 4 and PHP 5, running simultaneously. Ask your provider if they can do this."
+msgstr ""
+
+#: ../admin/overview.php:843
+msgid "Install"
+msgstr ""
+
+#: ../admin/publish.php:45
+msgid "Post title"
+msgstr ""
+
+#: ../admin/publish.php:47
+msgid "Enter the post title "
+msgstr ""
+
+#: ../admin/publish.php:52
+msgid "Size of the image"
+msgstr ""
+
+#: ../admin/publish.php:70
+msgid "Draft"
+msgstr ""
+
+#: ../admin/roles.php:22
+msgid "Updated capabilities"
+msgstr ""
+
+#: ../admin/roles.php:28
+msgid "Roles / capabilities"
+msgstr ""
+
+#: ../admin/roles.php:29
+msgid "Select the lowest role which should be able to access the following capabilities. NextGEN Gallery supports the standard roles from WordPress."
+msgstr ""
+
+#: ../admin/roles.php:30
+msgid "For a more flexible user management you can use the"
+msgstr ""
+
+#: ../admin/roles.php:35
+msgid "Main NextGEN Gallery overview"
+msgstr ""
+
+#: ../admin/roles.php:39
+msgid "Use TinyMCE Button / Upload tab"
+msgstr ""
+
+#: ../admin/roles.php:43
+msgid "Add gallery / Upload images"
+msgstr ""
+
+#: ../admin/roles.php:47
+msgid "Manage gallery"
+msgstr ""
+
+#: ../admin/roles.php:51
+msgid "Manage others gallery"
+msgstr ""
+
+#: ../admin/roles.php:55
+msgid "Manage tags"
+msgstr ""
+
+#: ../admin/roles.php:63
+msgid "Change style"
+msgstr ""
+
+#: ../admin/roles.php:67
+msgid "Change options"
+msgstr ""
+
+#: ../admin/roles.php:71
+msgid "Update capabilities"
+msgstr ""
+
+#: ../admin/rotate.php:55
+msgid "Image rotated"
+msgstr ""
+
+#: ../admin/rotate.php:56
+msgid "Error rotating thumbnail"
+msgstr ""
+
+#: ../admin/rotate.php:81
+msgid "90&deg; clockwise"
+msgstr ""
+
+#: ../admin/rotate.php:82
+msgid "90&deg; anticlockwise"
+msgstr ""
+
+#: ../admin/rotate.php:83
+msgid "Flip vertically"
+msgstr ""
+
+#: ../admin/rotate.php:84
+msgid "Flip horizontally"
+msgstr ""
+
+#: ../admin/settings.php:92
+msgid "Cache cleared"
+msgstr ""
+
+#: ../admin/settings.php:211
+#: ../admin/settings.php:230
+msgid "General Options"
+msgstr ""
+
+#: ../admin/settings.php:212
+#: ../admin/settings.php:415
+msgid "Thumbnails"
+msgstr ""
+
+#: ../admin/settings.php:213
+msgid "Images"
+msgstr ""
+
+#: ../admin/settings.php:215
+#: ../admin/settings.php:467
+msgid "Effects"
+msgstr ""
+
+#: ../admin/settings.php:216
+#: ../admin/settings.php:509
+#: ../admin/tinymce/window.php:110
+msgid "Watermark"
+msgstr ""
+
+#: ../admin/settings.php:217
+#: ../admin/settings.php:416
+#: ../admin/settings.php:616
+#: ../admin/tinymce/window.php:63
+msgid "Slideshow"
+msgstr ""
+
+#: ../admin/settings.php:236
+#: ../admin/wpmu.php:68
+msgid "Gallery path"
+msgstr ""
+
+#: ../admin/settings.php:238
+msgid "This is the default path for all galleries"
+msgstr ""
+
+#: ../admin/settings.php:241
+msgid "Delete image files"
+msgstr ""
+
+#: ../admin/settings.php:243
+msgid "Delete files, when removing a gallery in the database"
+msgstr ""
+
+#: ../admin/settings.php:246
+msgid "Activate permalinks"
+msgstr ""
+
+#: ../admin/settings.php:248
+msgid "When you activate this option, you need to update your permalink structure one time."
+msgstr ""
+
+#: ../admin/settings.php:251
+msgid "Create new URL friendly image slugs"
+msgstr ""
+
+#: ../admin/settings.php:252
+#: ../admin/settings.php:369
+msgid "Proceed now"
+msgstr ""
+
+#: ../admin/settings.php:253
+msgid "Currently not used, prepare database for upcoming version"
+msgstr ""
+
+#: ../admin/settings.php:256
+msgid "Select graphic library"
+msgstr ""
+
+#: ../admin/settings.php:257
+msgid "GD Library"
+msgstr ""
+
+#: ../admin/settings.php:258
+msgid "ImageMagick (Experimental). Path to the library :"
+msgstr ""
+
+#: ../admin/settings.php:263
+msgid "Activate Media RSS feed"
+msgstr ""
+
+#: ../admin/settings.php:265
+msgid "A RSS feed will be added to you blog header. Useful for CoolIris/PicLens"
+msgstr ""
+
+#: ../admin/settings.php:268
+msgid "Activate PicLens/CoolIris support"
+msgstr ""
+
+#: ../admin/settings.php:270
+msgid "When you activate this option, some javascript is added to your site footer. Make sure that wp_footer is called in your theme."
+msgstr ""
+
+#: ../admin/settings.php:273
+msgid "Tags / Categories"
+msgstr ""
+
+#: ../admin/settings.php:276
+msgid "Activate related images"
+msgstr ""
+
+#: ../admin/settings.php:278
+msgid "This option will append related images to every post"
+msgstr ""
+
+#: ../admin/settings.php:282
+msgid "Match with"
+msgstr ""
+
+#: ../admin/settings.php:283
+msgid "Categories"
+msgstr ""
+
+#: ../admin/settings.php:288
+msgid "Max. number of images"
+msgstr ""
+
+#: ../admin/settings.php:290
+msgid "0 will show all images"
+msgstr ""
+
+#: ../admin/settings.php:294
+#: ../admin/settings.php:325
+#: ../admin/settings.php:372
+#: ../admin/settings.php:457
+#: ../admin/settings.php:492
+#: ../admin/settings.php:753
+msgid "More settings"
+msgstr ""
+
+#: ../admin/settings.php:304
+msgid "Thumbnail settings"
+msgstr ""
+
+#: ../admin/settings.php:308
+msgid "Please note : If you change the settings, you need to recreate the thumbnails under -> Manage Gallery ."
+msgstr ""
+
+#: ../admin/settings.php:321
+msgid "Thumbnail quality"
+msgstr ""
+
+#: ../admin/settings.php:335
+msgid "Image settings"
+msgstr ""
+
+#: ../admin/settings.php:341
+msgid "Resize Images"
+msgstr ""
+
+#: ../admin/settings.php:346
+msgid "Image quality"
+msgstr ""
+
+#: ../admin/settings.php:350
+msgid "Backup original images"
+msgstr ""
+
+#: ../admin/settings.php:352
+msgid "Creates a backup for inserted images"
+msgstr ""
+
+#: ../admin/settings.php:355
+msgid "Automatically resize"
+msgstr ""
+
+#: ../admin/settings.php:357
+msgid "Automatically resize images on upload."
+msgstr ""
+
+#: ../admin/settings.php:360
+msgid "Single picture"
+msgstr ""
+
+#: ../admin/settings.php:363
+msgid "Cache single pictures"
+msgstr ""
+
+#: ../admin/settings.php:365
+msgid "Creates a file for each singlepic settings. Reduce the CPU load"
+msgstr ""
+
+#: ../admin/settings.php:368
+msgid "Clear cache folder"
+msgstr ""
+
+#: ../admin/settings.php:389
+msgid "Deactivate gallery page link"
+msgstr ""
+
+#: ../admin/settings.php:391
+msgid "The album will not link to a gallery subpage. The gallery is shown on the same page."
+msgstr ""
+
+#: ../admin/settings.php:395
+msgid "Number of images per page"
+msgstr ""
+
+#: ../admin/settings.php:397
+msgid "0 will disable pagination, all images on one page"
+msgstr ""
+
+#: ../admin/settings.php:401
+msgid "Number of columns"
+msgstr ""
+
+#: ../admin/settings.php:403
+msgid "0 will display as much as possible based on the width of your theme. Setting normally only required for captions below the images"
+msgstr ""
+
+#: ../admin/settings.php:407
+msgid "Integrate slideshow"
+msgstr ""
+
+#: ../admin/settings.php:414
+msgid "Show first"
+msgstr ""
+
+#: ../admin/settings.php:420
+msgid "Show ImageBrowser"
+msgstr ""
+
+#: ../admin/settings.php:422
+msgid "The gallery will open the ImageBrowser instead the effect."
+msgstr ""
+
+#: ../admin/settings.php:426
+msgid "Add hidden images"
+msgstr ""
+
+#: ../admin/settings.php:428
+msgid "If pagination is used, this option will still show all images in the modal window (Thickbox, Lightbox etc.). Note : This increases the page load"
+msgstr ""
+
+#: ../admin/settings.php:432
+msgid "Enable AJAX pagination"
+msgstr ""
+
+#: ../admin/settings.php:434
+msgid "Browse images without reload the page. Note : Works only in combination with Shutter effect"
+msgstr ""
+
+#: ../admin/settings.php:438
+msgid "Sort options"
+msgstr ""
+
+#: ../admin/settings.php:441
+msgid "Sort thumbnails"
+msgstr ""
+
+#: ../admin/settings.php:443
+msgid "Custom order"
+msgstr ""
+
+#: ../admin/settings.php:445
+msgid "File name"
+msgstr ""
+
+#: ../admin/settings.php:446
+msgid "Alt / Title text"
+msgstr ""
+
+#: ../admin/settings.php:447
+msgid "Date / Time"
+msgstr ""
+
+#: ../admin/settings.php:451
+msgid "Sort direction"
+msgstr ""
+
+#: ../admin/settings.php:471
+msgid "Here you can select the thumbnail effect, NextGEN Gallery will integrate the required HTML code in the images. Please note that only the Shutter and Thickbox effect will automatic added to your theme."
+msgstr ""
+
+#: ../admin/settings.php:472
+msgid "With the placeholder"
+msgstr ""
+
+#: ../admin/settings.php:472
+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."
+msgstr ""
+
+#: ../admin/settings.php:475
+msgid "JavaScript Thumbnail effect"
+msgstr ""
+
+#: ../admin/settings.php:479
+msgid "Thickbox"
+msgstr ""
+
+#: ../admin/settings.php:480
+msgid "Lightbox"
+msgstr ""
+
+#: ../admin/settings.php:481
+msgid "Highslide"
+msgstr ""
+
+#: ../admin/settings.php:482
+msgid "Shutter"
+msgstr ""
+
+#: ../admin/settings.php:483
+msgid "Custom"
+msgstr ""
+
+#: ../admin/settings.php:488
+msgid "Link Code line"
+msgstr ""
+
+#: ../admin/settings.php:510
+msgid "Please note : You can only activate the watermark under -> Manage Gallery . This action cannot be undone."
+msgstr ""
+
+#: ../admin/settings.php:515
+msgid "Preview"
+msgstr ""
+
+#: ../admin/settings.php:517
+#: ../admin/settings.php:522
+msgid "Position"
+msgstr ""
+
+#: ../admin/settings.php:542
+msgid "Offset"
+msgstr ""
+
+#: ../admin/settings.php:558
+msgid "Use image as watermark"
+msgstr ""
+
+#: ../admin/settings.php:561
+msgid "URL to file"
+msgstr ""
+
+#: ../admin/settings.php:563
+msgid "The accessing of URL files is disabled at your server (allow_url_fopen)"
+msgstr ""
+
+#: ../admin/settings.php:566
+msgid "Use text as watermark"
+msgstr ""
+
+#: ../admin/settings.php:569
+msgid "Font"
+msgstr ""
+
+#: ../admin/settings.php:578
+msgid "This function will not work, cause you need the FreeType library"
+msgstr ""
+
+#: ../admin/settings.php:580
+msgid "You can upload more fonts in the folder <strong>nggallery/fonts</strong>"
+msgstr ""
+
+#: ../admin/settings.php:589
+msgid "Color"
+msgstr ""
+
+#: ../admin/settings.php:591
+msgid "(hex w/o #)"
+msgstr ""
+
+#: ../admin/settings.php:594
+msgid "Text"
+msgstr ""
+
+#: ../admin/settings.php:598
+msgid "Opaque"
+msgstr ""
+
+#: ../admin/settings.php:619
+msgid "Default size (W x H)"
+msgstr ""
+
+#: ../admin/settings.php:624
+msgid "Duration time"
+msgstr ""
+
+#: ../admin/settings.php:625
+msgid "sec."
+msgstr ""
+
+#: ../admin/settings.php:628
+#: ../admin/settings.php:703
+msgid "Transition / Fade effect"
+msgstr ""
+
+#: ../admin/settings.php:631
+#: ../admin/settings.php:706
+msgid "fade"
+msgstr ""
+
+#: ../admin/settings.php:632
+msgid "blindX"
+msgstr ""
+
+#: ../admin/settings.php:633
+msgid "cover"
+msgstr ""
+
+#: ../admin/settings.php:634
+msgid "scrollUp"
+msgstr ""
+
+#: ../admin/settings.php:635
+msgid "scrollDown"
+msgstr ""
+
+#: ../admin/settings.php:636
+msgid "shuffle"
+msgstr ""
+
+#: ../admin/settings.php:637
+msgid "toss"
+msgstr ""
+
+#: ../admin/settings.php:638
+msgid "wipe"
+msgstr ""
+
+#: ../admin/settings.php:640
+msgid "See here for more information about the effects :"
+msgstr ""
+
+#: ../admin/settings.php:644
+msgid "Settings for the JW Image Rotator"
+msgstr ""
+
+#: ../admin/settings.php:645
+msgid "The settings are only used in the JW Image Rotator Version"
+msgstr ""
+
+#: ../admin/settings.php:646
+msgid "See more information for the Flash Player on the web page"
+msgstr ""
+
+#: ../admin/settings.php:651
+msgid "The path to imagerotator.swf is not defined, the slideshow will not work."
+msgstr ""
+
+#: ../admin/settings.php:652
+msgid "If you would like to use the JW Image Rotatator, please download the player <a href=\"http://www.longtailvideo.com/players/jw-image-rotator/\" target=\"_blank\" >here</a> and upload it to your Upload folder (Default is wp-content/uploads)."
+msgstr ""
+
+#: ../admin/settings.php:658
+msgid "Enable flash slideshow"
+msgstr ""
+
+#: ../admin/settings.php:660
+msgid "Integrate the flash based slideshow for all flash supported devices"
+msgstr ""
+
+#: ../admin/settings.php:663
+msgid "Path to the Imagerotator (URL)"
+msgstr ""
+
+#: ../admin/settings.php:666
+msgid "Search now"
+msgstr ""
+
+#: ../admin/settings.php:667
+msgid "Press the button to search automatically for the imagerotator, if you uploaded it to wp-content/uploads or a subfolder"
+msgstr ""
+
+#: ../admin/settings.php:671
+msgid "Shuffle mode"
+msgstr ""
+
+#: ../admin/settings.php:675
+msgid "Show next image on click"
+msgstr ""
+
+#: ../admin/settings.php:679
+msgid "Show navigation bar"
+msgstr ""
+
+#: ../admin/settings.php:683
+msgid "Show loading icon"
+msgstr ""
+
+#: ../admin/settings.php:687
+msgid "Use watermark logo"
+msgstr ""
+
+#: ../admin/settings.php:689
+msgid "You can change the logo at the watermark settings"
+msgstr ""
+
+#: ../admin/settings.php:692
+msgid "Stretch image"
+msgstr ""
+
+#: ../admin/settings.php:695
+msgid "true"
+msgstr ""
+
+#: ../admin/settings.php:696
+msgid "false"
+msgstr ""
+
+#: ../admin/settings.php:697
+msgid "fit"
+msgstr ""
+
+#: ../admin/settings.php:698
+msgid "none"
+msgstr ""
+
+#: ../admin/settings.php:707
+msgid "bgfade"
+msgstr ""
+
+#: ../admin/settings.php:708
+msgid "slowfade"
+msgstr ""
+
+#: ../admin/settings.php:709
+msgid "circles"
+msgstr ""
+
+#: ../admin/settings.php:710
+msgid "bubbles"
+msgstr ""
+
+#: ../admin/settings.php:711
+msgid "blocks"
+msgstr ""
+
+#: ../admin/settings.php:712
+msgid "fluids"
+msgstr ""
+
+#: ../admin/settings.php:713
+msgid "flash"
+msgstr ""
+
+#: ../admin/settings.php:714
+msgid "lines"
+msgstr ""
+
+#: ../admin/settings.php:715
+msgid "random"
+msgstr ""
+
+#: ../admin/settings.php:720
+msgid "Use slow zooming effect"
+msgstr ""
+
+#: ../admin/settings.php:724
+msgid "Background Color"
+msgstr ""
+
+#: ../admin/settings.php:729
+msgid "Texts / Buttons Color"
+msgstr ""
+
+#: ../admin/settings.php:734
+msgid "Rollover / Active Color"
+msgstr ""
+
+#: ../admin/settings.php:739
+msgid "Screen Color"
+msgstr ""
+
+#: ../admin/settings.php:744
+msgid "Background music (URL)"
+msgstr ""
+
+#: ../admin/settings.php:748
+msgid "Try XHTML validation (with CDATA)"
+msgstr ""
+
+#: ../admin/settings.php:750
+msgid "Important : Could causes problem at some browser. Please recheck your page."
+msgstr ""
+
+#: ../admin/setup.php:15
+msgid "Reset all settings to default parameter"
+msgstr ""
+
+#: ../admin/setup.php:26
+msgid "Uninstall sucessful ! Now delete the plugin and enjoy your life ! Good luck !"
+msgstr ""
+
+#: ../admin/setup.php:30
+msgid "Reset options"
+msgstr ""
+
+#: ../admin/setup.php:33
+msgid "Reset all options/settings to the default installation."
+msgstr ""
+
+#: ../admin/setup.php:34
+msgid "Reset settings"
+msgstr ""
+
+#: ../admin/setup.php:34
+msgid ""
+"Reset all options to default settings ?\\n"
+"\\n"
+"Choose [Cancel] to Stop, [OK] to proceed.\\n"
+msgstr ""
+
+#: ../admin/setup.php:39
+msgid "Uninstall plugin tables"
+msgstr ""
+
+#: ../admin/setup.php:44
+msgid "You don't like NextGEN Gallery ?"
+msgstr ""
+
+#: ../admin/setup.php:45
+msgid "No problem, before you deactivate this plugin press the Uninstall Button, because deactivating NextGEN Gallery does not remove any data that may have been created. "
+msgstr ""
+
+#: ../admin/setup.php:47
+msgid "WARNING:"
+msgstr ""
+
+#: ../admin/setup.php:48
+msgid "Once uninstalled, this cannot be undone. You should use a Database Backup plugin of WordPress to backup all the tables first. NextGEN gallery is stored in the tables"
+msgstr ""
+
+#: ../admin/setup.php:48
+msgid "and"
+msgstr ""
+
+#: ../admin/setup.php:50
+msgid "Uninstall plugin"
+msgstr ""
+
+#: ../admin/setup.php:50
+msgid ""
+"You are about to Uninstall this plugin from WordPress.\\n"
+"This action is not reversible.\\n"
+"\\n"
+"Choose [Cancel] to Stop, [OK] to Uninstall.\\n"
+msgstr ""
+
+#: ../admin/showmeta.php:29
+msgid "Meta Data"
+msgstr ""
+
+#: ../admin/showmeta.php:34
+#: ../admin/showmeta.php:60
+#: ../admin/showmeta.php:85
+#: ../admin/showmeta.php:109
+msgid "Tag"
+msgstr ""
+
+#: ../admin/showmeta.php:35
+#: ../admin/showmeta.php:61
+#: ../admin/showmeta.php:86
+#: ../admin/showmeta.php:110
+msgid "Value"
+msgstr ""
+
+#: ../admin/showmeta.php:49
+msgid "No meta data saved"
+msgstr ""
+
+#: ../admin/showmeta.php:55
+msgid "EXIF Data"
+msgstr ""
+
+#: ../admin/showmeta.php:74
+msgid "No exif data"
+msgstr ""
+
+#: ../admin/showmeta.php:81
+msgid "IPTC Data"
+msgstr ""
+
+#: ../admin/showmeta.php:105
+msgid "XMP Data"
+msgstr ""
+
+#: ../admin/style.php:11
+msgid "(From the theme folder)"
+msgstr ""
+
+#: ../admin/style.php:43
+msgid "You do not have sufficient permissions to edit templates for this blog."
+msgstr ""
+
+#: ../admin/style.php:52
+msgid "CSS file successfully updated"
+msgstr ""
+
+#: ../admin/style.php:89
+msgid "Style Editor"
+msgstr ""
+
+#: ../admin/style.php:93
+msgid "Activate and use style sheet:"
+msgstr ""
+
+#: ../admin/style.php:113
+msgid "Activate"
+msgstr ""
+
+#: ../admin/style.php:123
+#, php-format
+msgid "Editing <strong>%s</strong>"
+msgstr ""
+
+#: ../admin/style.php:125
+#, php-format
+msgid "Browsing <strong>%s</strong>"
+msgstr ""
+
+#: ../admin/style.php:135
+msgid "Version"
+msgstr ""
+
+#: ../admin/style.php:138
+msgid "Tip : Copy your stylesheet (nggallery.css) to your theme folder, so it will be not lost during a upgrade"
+msgstr ""
+
+#: ../admin/style.php:140
+msgid "Your theme contain a NextGEN Gallery stylesheet (nggallery.css), this file will be used"
+msgstr ""
+
+#: ../admin/style.php:142
+msgid "Tip No. 2: Use the color picker below to help you find the right color scheme for your gallery!"
+msgstr ""
+
+#: ../admin/style.php:158
+msgid "Update File"
+msgstr ""
+
+#: ../admin/style.php:161
+msgid "If this file were writable you could edit it."
+msgstr ""
+
+#: ../admin/style.php:166
+msgid "Oops, no such file exists! Double check the name and try again, merci."
+msgstr ""
+
+#: ../admin/tags.php:38
+msgid "Most popular"
+msgstr ""
+
+#: ../admin/tags.php:39
+msgid "Least used"
+msgstr ""
+
+#: ../admin/tags.php:40
+msgid "Alphabetical"
+msgstr ""
+
+#: ../admin/tags.php:96
+msgid "Manage image tags"
+msgstr ""
+
+#: ../admin/tags.php:108
+msgid "Existing Tags"
+msgstr ""
+
+#: ../admin/tags.php:112
+msgid "Search tags"
+msgstr ""
+
+#: ../admin/tags.php:116
+msgid "Go"
+msgstr ""
+
+#: ../admin/tags.php:121
+msgid "Sort Order:"
+msgstr ""
+
+#: ../admin/tags.php:156
+#: ../admin/tags.php:160
+#: ../admin/tags.php:173
+msgid "Previous tags"
+msgstr ""
+
+#: ../admin/tags.php:169
+msgid "Next tags"
+msgstr ""
+
+#: ../admin/tags.php:181
+msgid "Rename Tag"
+msgstr ""
+
+#: ../admin/tags.php:189
+msgid "Enter the tag to rename and its new value.  You can use this feature to merge tags too. Click \"Rename\" and all posts which use this tag will be updated."
+msgstr ""
+
+#: ../admin/tags.php:190
+#: ../admin/tags.php:238
+msgid "You can specify multiple tags to rename by separating them with commas."
+msgstr ""
+
+#: ../admin/tags.php:194
+msgid "Tag(s) to rename:"
+msgstr ""
+
+#: ../admin/tags.php:198
+msgid "New tag name(s):"
+msgstr ""
+
+#: ../admin/tags.php:201
+msgid "Rename"
+msgstr ""
+
+#: ../admin/tags.php:207
+msgid "Delete Tag"
+msgstr ""
+
+#: ../admin/tags.php:215
+msgid "Enter the name of the tag to delete.  This tag will be removed from all posts."
+msgstr ""
+
+#: ../admin/tags.php:216
+msgid "You can specify multiple tags to delete by separating them with commas"
+msgstr ""
+
+#: ../admin/tags.php:220
+msgid "Tag(s) to delete:"
+msgstr ""
+
+#: ../admin/tags.php:229
+msgid "Edit Tag Slug"
+msgstr ""
+
+#: ../admin/tags.php:237
+msgid "Enter the tag name to edit and its new slug. <a href=\"http://codex.wordpress.org/Glossary#Slug\">Slug definition</a>"
+msgstr ""
+
+#: ../admin/tags.php:242
+msgid "Tag(s) to match:"
+msgstr ""
+
+#: ../admin/tags.php:246
+msgid "Slug(s) to set:"
+msgstr ""
+
+#: ../admin/upgrade.php:22
+msgid "Upgrade database structure..."
+msgstr ""
+
+#: ../admin/upgrade.php:108
+#: ../admin/upgrade.php:122
+#: ../admin/upgrade.php:129
+#: ../admin/upgrade.php:140
+#: ../admin/upgrade.php:154
+msgid "finished"
+msgstr ""
+
+#: ../admin/upgrade.php:120
+msgid "Update file structure..."
+msgstr ""
+
+#: ../admin/upgrade.php:127
+msgid "Import date and time information..."
+msgstr ""
+
+#: ../admin/upgrade.php:135
+msgid "Move imagerotator to new location..."
+msgstr ""
+
+#: ../admin/upgrade.php:146
+msgid "Update settings..."
+msgstr ""
+
+#: ../admin/upgrade.php:160
+msgid "Updated widget structure. If you used NextGEN Widgets, you need to setup them again..."
+msgstr ""
+
+#: ../admin/upgrade.php:168
+msgid "Updated options."
+msgstr ""
+
+#: ../admin/upgrade.php:175
+msgid "Create unique slug"
+msgstr ""
+
+#: ../admin/upgrade.php:176
+msgid "One of the upcomming features are a reworked permalinks structure."
+msgstr ""
+
+#: ../admin/upgrade.php:177
+msgid "Therefore it's needed to have a unique identifier for each image, gallery and album."
+msgstr ""
+
+#: ../admin/upgrade.php:178
+msgid "Depend on the amount of database entries this will take a while, don't reload this page."
+msgstr ""
+
+#: ../admin/upgrade.php:187
+msgid "Could not find NextGEN Gallery database tables, upgrade failed !"
+msgstr ""
+
+#: ../admin/upgrade.php:250
+msgid "Some folders/files could not renamed, please recheck the permission and rescan the folder in the manage gallery section."
+msgstr ""
+
+#: ../admin/upgrade.php:252
+msgid "Rename failed"
+msgstr ""
+
+#: ../admin/upgrade.php:348
+#: ../admin/upgrade.php:367
+msgid "Upgrade NextGEN Gallery"
+msgstr ""
+
+#: ../admin/upgrade.php:349
+msgid "The script detect that you upgrade from a older version."
+msgstr ""
+
+#: ../admin/upgrade.php:350
+msgid "Your database tables for NextGEN Gallery is out-of-date, and must be upgraded before you can continue."
+msgstr ""
+
+#: ../admin/upgrade.php:351
+msgid "If you would like to downgrade later, please make first a complete backup of your database and the images."
+msgstr ""
+
+#: ../admin/upgrade.php:352
+msgid "The upgrade process may take a while, so please be patient."
+msgstr ""
+
+#: ../admin/upgrade.php:353
+msgid "Start upgrade now"
+msgstr ""
+
+#: ../admin/upgrade.php:369
+msgid "Upgrade finished..."
+msgstr ""
+
+#: ../admin/upgrade.php:370
+msgid "Continue"
+msgstr ""
+
+#: ../admin/upgrade.php:393
+#, php-format
+msgid "Rebuild image structure : %s / %s images"
+msgstr ""
+
+#: ../admin/upgrade.php:394
+#, php-format
+msgid "Rebuild gallery structure : %s / %s galleries"
+msgstr ""
+
+#: ../admin/upgrade.php:395
+#, php-format
+msgid "Rebuild album structure : %s / %s albums"
+msgstr ""
+
+#: ../admin/upgrade.php:452
+msgid "Done."
+msgstr ""
+
+#: ../admin/wpmu.php:33
+msgid "Update successfully"
+msgstr ""
+
+#: ../admin/wpmu.php:45
+#, php-format
+msgid "Thanks for using this plugin, NextGEN Gallery is initially developed for self hosted blogs. A multisite setup is possible, but cannot currently fully supported, as it can have several special condition ( i.e. Domain mapping).<br /> If you would like to support the further development, please consider a <strong><a href=\"%s\">donation</a></strong>! If you still need some help, please post your questions <a href=\"http://wordpress.org/tags/nextgen-gallery?forum_id=10\">here</a> ."
+msgstr ""
+
+#: ../admin/wpmu.php:62
+msgid "Network Options"
+msgstr ""
+
+#: ../admin/wpmu.php:70
+msgid "This is the default path for all blogs. With the placeholder %BLOG_ID% you can organize the folder structure better."
+msgstr ""
+
+#: ../admin/wpmu.php:71
+#, php-format
+msgid "The default setting should be %s"
+msgstr ""
+
+#: ../admin/wpmu.php:75
+msgid "Enable upload quota check"
+msgstr ""
+
+#: ../admin/wpmu.php:77
+msgid "Should work if the gallery is bellow the blog.dir"
+msgstr ""
+
+#: ../admin/wpmu.php:81
+msgid "Enable zip upload option"
+msgstr ""
+
+#: ../admin/wpmu.php:83
+msgid "Allow users to upload zip folders."
+msgstr ""
+
+#: ../admin/wpmu.php:87
+msgid "Enable import function"
+msgstr ""
+
+#: ../admin/wpmu.php:89
+msgid "Allow users to import images folders from the server."
+msgstr ""
+
+#: ../admin/wpmu.php:93
+msgid "Enable style selection"
+msgstr ""
+
+#: ../admin/wpmu.php:95
+msgid "Allow users to choose a style for the gallery."
+msgstr ""
+
+#: ../admin/wpmu.php:99
+msgid "Enable roles/capabilities"
+msgstr ""
+
+#: ../admin/wpmu.php:101
+msgid "Allow users to change the roles for other blog authors."
+msgstr ""
+
+#: ../admin/wpmu.php:105
+msgid "Default style"
+msgstr ""
+
+#: ../admin/wpmu.php:122
+msgid "Choose the default style for the galleries."
+msgstr ""
+
+#: ../admin/tinymce/window.php:56
+msgid "Select or enter gallery"
+msgstr ""
+
+#: ../admin/tinymce/window.php:61
+#: ../admin/tinymce/window.php:82
+msgid "Show as"
+msgstr ""
+
+#: ../admin/tinymce/window.php:62
+msgid "Image list"
+msgstr ""
+
+#: ../admin/tinymce/window.php:64
+msgid "Imagebrowser"
+msgstr ""
+
+#: ../admin/tinymce/window.php:77
+msgid "Select or enter album"
+msgstr ""
+
+#: ../admin/tinymce/window.php:83
+msgid "Extended version"
+msgstr ""
+
+#: ../admin/tinymce/window.php:84
+msgid "Compact version"
+msgstr ""
+
+#: ../admin/tinymce/window.php:97
+msgid "Select or enter picture"
+msgstr ""
+
+#: ../admin/tinymce/window.php:102
+msgid "Width x Height"
+msgstr ""
+
+#: ../admin/tinymce/window.php:106
+msgid "Effect"
+msgstr ""
+
+#: ../admin/tinymce/window.php:109
+msgid "No effect"
+msgstr ""
+
+#: ../admin/tinymce/window.php:111
+msgid "Web 2.0"
+msgstr ""
+
+#: ../admin/tinymce/window.php:116
+msgid "Float"
+msgstr ""
+
+#: ../admin/tinymce/window.php:119
+msgid "No float"
+msgstr ""
+
+#: ../admin/tinymce/window.php:138
+msgid "Insert"
+msgstr ""
+
+#: ../lib/core.php:379
+#, php-format
+msgid "Note : Based on your server memory limit you should not upload larger images then <strong>%d x %d</strong> pixel"
+msgstr ""
+
+#: ../lib/locale.php:120
+msgid "Invalid URL Provided."
+msgstr ""
+
+#: ../lib/locale.php:124
+#: ../lib/locale.php:128
+msgid "Could not create Temporary file."
+msgstr ""
+
+#: ../lib/meta.php:124
+msgid " mm"
+msgstr ""
+
+#: ../lib/meta.php:130
+msgid " sec"
+msgstr ""
+
+#: ../lib/meta.php:134
+msgid "Fired"
+msgstr ""
+
+#: ../lib/meta.php:134
+msgid "Not fired"
+msgstr ""
+
+#: ../lib/meta.php:426
+msgid "Aperture"
+msgstr ""
+
+#: ../lib/meta.php:427
+#: ../lib/meta.php:452
+msgid "Credit"
+msgstr ""
+
+#: ../lib/meta.php:428
+msgid "Camera"
+msgstr ""
+
+#: ../lib/meta.php:429
+msgid "Caption"
+msgstr ""
+
+#: ../lib/meta.php:431
+msgid "Copyright"
+msgstr ""
+
+#: ../lib/meta.php:432
+msgid "Focal length"
+msgstr ""
+
+#: ../lib/meta.php:433
+msgid "ISO"
+msgstr ""
+
+#: ../lib/meta.php:434
+msgid "Shutter speed"
+msgstr ""
+
+#: ../lib/meta.php:438
+msgid "Subject"
+msgstr ""
+
+#: ../lib/meta.php:439
+msgid "Make"
+msgstr ""
+
+#: ../lib/meta.php:440
+msgid "Edit Status"
+msgstr ""
+
+#: ../lib/meta.php:441
+msgid "Category"
+msgstr ""
+
+#: ../lib/meta.php:442
+msgid "Keywords"
+msgstr ""
+
+#: ../lib/meta.php:443
+msgid "Date Created"
+msgstr ""
+
+#: ../lib/meta.php:444
+msgid "Time Created"
+msgstr ""
+
+#: ../lib/meta.php:445
+msgid "Author Position"
+msgstr ""
+
+#: ../lib/meta.php:446
+msgid "City"
+msgstr ""
+
+#: ../lib/meta.php:447
+msgid "Location"
+msgstr ""
+
+#: ../lib/meta.php:448
+msgid "Province/State"
+msgstr ""
+
+#: ../lib/meta.php:449
+msgid "Country code"
+msgstr ""
+
+#: ../lib/meta.php:450
+msgid "Country"
+msgstr ""
+
+#: ../lib/meta.php:451
+msgid "Headline"
+msgstr ""
+
+#: ../lib/meta.php:453
+msgid "Source"
+msgstr ""
+
+#: ../lib/meta.php:454
+msgid "Copyright Notice"
+msgstr ""
+
+#: ../lib/meta.php:455
+msgid "Contact"
+msgstr ""
+
+#: ../lib/meta.php:456
+msgid "Last modified"
+msgstr ""
+
+#: ../lib/meta.php:457
+msgid "Program tool"
+msgstr ""
+
+#: ../lib/meta.php:458
+msgid "Format"
+msgstr ""
+
+#: ../lib/meta.php:459
+msgid "Image Width"
+msgstr ""
+
+#: ../lib/meta.php:460
+msgid "Image Height"
+msgstr ""
+
+#: ../lib/meta.php:461
+msgid "Flash"
+msgstr ""
+
+#: ../lib/multisite.php:23
+msgid "Sorry, you have used your space allocation. Please delete some files to upload more files."
+msgstr ""
+
+#: ../lib/ngg-db.php:330
+#: ../lib/ngg-db.php:331
+msgid "Album overview"
+msgstr ""
+
+#: ../lib/shortcodes.php:298
+msgid "[Pictures not found]"
+msgstr ""
+
+#: ../lib/tags.php:35
+msgid "No new tag specified!"
+msgstr ""
+
+#: ../lib/tags.php:50
+msgid "No new/old valid tag specified!"
+msgstr ""
+
+#: ../lib/tags.php:86
+msgid "No tag renamed."
+msgstr ""
+
+#: ../lib/tags.php:88
+#, php-format
+msgid "Renamed tag(s) &laquo;%1$s&raquo; to &laquo;%2$s&raquo;"
+msgstr ""
+
+#: ../lib/tags.php:95
+msgid "No valid new tag."
+msgstr ""
+
+#: ../lib/tags.php:112
+msgid "No objects (post/page) found for specified old tags."
+msgstr ""
+
+#: ../lib/tags.php:141
+msgid "No tag merged."
+msgstr ""
+
+#: ../lib/tags.php:143
+#, php-format
+msgid "Merge tag(s) &laquo;%1$s&raquo; to &laquo;%2$s&raquo;. %3$s objects edited."
+msgstr ""
+
+#: ../lib/tags.php:146
+msgid "Error. No enough tags for rename. Too for merge. Choose !"
+msgstr ""
+
+#: ../lib/tags.php:163
+msgid "No tag specified!"
+msgstr ""
+
+#: ../lib/tags.php:186
+msgid "No tag deleted."
+msgstr ""
+
+#: ../lib/tags.php:188
+#, php-format
+msgid "%1s tag(s) deleted."
+msgstr ""
+
+#: ../lib/tags.php:202
+msgid "No new slug(s) specified!"
+msgstr ""
+
+#: ../lib/tags.php:214
+msgid "Tags number and slugs number isn't the same!"
+msgstr ""
+
+#: ../lib/tags.php:241
+msgid "No slug edited."
+msgstr ""
+
+#: ../lib/tags.php:243
+#, php-format
+msgid "%s slug(s) edited."
+msgstr ""
+
+#: ../lib/xmlrpc.php:66
+#, php-format
+msgid "XML-RPC services are disabled on this blog.  An admin user can enable them at %s"
+msgstr ""
+
+#: ../lib/xmlrpc.php:73
+msgid "Bad login/pass combination."
+msgstr ""
+
+#: ../lib/xmlrpc.php:129
+msgid "You are not allowed to upload files to this site."
+msgstr ""
+
+#: ../lib/xmlrpc.php:135
+#: ../lib/xmlrpc.php:680
+msgid "Could not find gallery "
+msgstr ""
+
+#: ../lib/xmlrpc.php:140
+#: ../lib/xmlrpc.php:685
+msgid "You are not allowed to upload files to this gallery."
+msgstr ""
+
+#: ../lib/xmlrpc.php:152
+msgid "This is no valid image file."
+msgstr ""
+
+#: ../lib/xmlrpc.php:164
+msgid "Could not find image id "
+msgstr ""
+
+#: ../lib/xmlrpc.php:171
+#, php-format
+msgid "Failed to delete image %1$s "
+msgstr ""
+
+#: ../lib/xmlrpc.php:180
+#, php-format
+msgid "Could not write file %1$s (%2$s)"
+msgstr ""
+
+#: ../lib/xmlrpc.php:247
+#: ../lib/xmlrpc.php:299
+msgid "Invalid image ID"
+msgstr ""
+
+#: ../lib/xmlrpc.php:250
+#: ../lib/xmlrpc.php:302
+msgid "Sorry, you must be able to edit this image"
+msgstr ""
+
+#: ../lib/xmlrpc.php:308
+msgid "Sorry, could not update the image"
+msgstr ""
+
+#: ../lib/xmlrpc.php:344
+#: ../lib/xmlrpc.php:576
+#: ../lib/xmlrpc.php:642
+msgid "Sorry, you must be able to manage galleries"
+msgstr ""
+
+#: ../lib/xmlrpc.php:350
+msgid "Sorry, could not create the gallery"
+msgstr ""
+
+#: ../lib/xmlrpc.php:393
+#: ../lib/xmlrpc.php:573
+msgid "Invalid gallery ID"
+msgstr ""
+
+#: ../lib/xmlrpc.php:396
+msgid "Sorry, you must be able to manage this gallery"
+msgstr ""
+
+#: ../lib/xmlrpc.php:402
+msgid "Sorry, could not update the gallery"
+msgstr ""
+
+#: ../lib/xmlrpc.php:442
+#: ../lib/xmlrpc.php:494
+#: ../lib/xmlrpc.php:536
+#: ../lib/xmlrpc.php:609
+msgid "Sorry, you must be able to manage albums"
+msgstr ""
+
+#: ../lib/xmlrpc.php:448
+msgid "Sorry, could not create the album"
+msgstr ""
+
+#: ../lib/xmlrpc.php:491
+#: ../lib/xmlrpc.php:533
+msgid "Invalid album ID"
+msgstr ""
+
+#: ../lib/xmlrpc.php:500
+msgid "Sorry, could not update the album"
+msgstr ""
+
+#: ../view/album-compact.php:32
+msgid "Photos"
+msgstr ""
+
+#: ../view/gallery-caption.php:32
+#: ../view/gallery-fuchs.php:32
+#: ../view/gallery.php:32
+#: ../widgets/media-rss-widget.php:122
+msgid "[View with PicLens]"
+msgstr ""
+
+#: ../view/imagebrowser-caption.php:26
+#: ../view/imagebrowser-exif.php:30
+#: ../view/imagebrowser-fuchs.php:26
+#: ../view/imagebrowser.php:26
+msgid "Back"
+msgstr ""
+
+#: ../view/imagebrowser-caption.php:29
+#: ../view/imagebrowser-exif.php:33
+#: ../view/imagebrowser-fuchs.php:29
+#: ../view/imagebrowser.php:29
+msgid "Next"
+msgstr ""
+
+#: ../view/imagebrowser-caption.php:31
+#: ../view/imagebrowser-exif.php:35
+#: ../view/imagebrowser-fuchs.php:31
+#: ../view/imagebrowser.php:31
+msgid "of"
+msgstr ""
+
+#: ../view/imagebrowser-exif.php:38
+msgid "Meta data"
+msgstr ""
+
+#: ../view/imagebrowser-exif.php:42
+msgid "Camera / Type"
+msgstr ""
+
+#: ../view/imagebrowser-exif.php:50
+msgid "Focal Length"
+msgstr ""
+
+#: ../widgets/media-rss-widget.php:19
+msgid "Widget that displays Media RSS links for NextGEN Gallery."
+msgstr ""
+
+#: ../widgets/media-rss-widget.php:20
+msgid "NextGEN Media RSS"
+msgstr ""
+
+#: ../widgets/media-rss-widget.php:68
+msgid "Media RSS"
+msgstr ""
+
+#: ../widgets/media-rss-widget.php:69
+msgid "Link to the main image feed"
+msgstr ""
+
+#: ../widgets/media-rss-widget.php:79
+#: ../widgets/widgets.php:201
+msgid "Title :"
+msgstr ""
+
+#: ../widgets/media-rss-widget.php:87
+msgid "Show Media RSS icon"
+msgstr ""
+
+#: ../widgets/media-rss-widget.php:93
+msgid "Show the Media RSS link"
+msgstr ""
+
+#: ../widgets/media-rss-widget.php:98
+msgid "Text for Media RSS link:"
+msgstr ""
+
+#: ../widgets/media-rss-widget.php:104
+msgid "Tooltip text for Media RSS link:"
+msgstr ""
+
+#: ../widgets/widgets.php:22
+msgid "Show a NextGEN Gallery Slideshow"
+msgstr ""
+
+#: ../widgets/widgets.php:23
+msgid "NextGEN Slideshow"
+msgstr ""
+
+#: ../widgets/widgets.php:64
+msgid "<a href=\"http://www.macromedia.com/go/getflashplayer\">Get the Flash Player</a> to see the slideshow."
+msgstr ""
+
+#: ../widgets/widgets.php:121
+msgid "Title:"
+msgstr ""
+
+#: ../widgets/widgets.php:123
+msgid "Select Gallery:"
+msgstr ""
+
+#: ../widgets/widgets.php:125
+msgid "All images"
+msgstr ""
+
+#: ../widgets/widgets.php:137
+msgid "Height:"
+msgstr ""
+
+#: ../widgets/widgets.php:138
+msgid "Width:"
+msgstr ""
+
+#: ../widgets/widgets.php:160
+msgid "Add recent or random images from the galleries"
+msgstr ""
+
+#: ../widgets/widgets.php:161
+msgid "NextGEN Widget"
+msgstr ""
+
+#: ../widgets/widgets.php:207
+msgid "Show :"
+msgstr ""
+
+#: ../widgets/widgets.php:213
+msgid "Original images"
+msgstr ""
+
+#: ../widgets/widgets.php:222
+msgid "recent added "
+msgstr ""
+
+#: ../widgets/widgets.php:228
+msgid "Enable IE8 Web Slices"
+msgstr ""
+
+#: ../widgets/widgets.php:233
+msgid "Width x Height :"
+msgstr ""
+
+#: ../widgets/widgets.php:239
+msgid "Select :"
+msgstr ""
+
+#: ../widgets/widgets.php:241
+msgid "All galleries"
+msgstr ""
+
+#: ../widgets/widgets.php:242
+msgid "Only which are not listed"
+msgstr ""
+
+#: ../widgets/widgets.php:243
+msgid "Only which are listed"
+msgstr ""
+
+#: ../widgets/widgets.php:249
+msgid "Gallery ID :"
+msgstr ""
+
+#: ../widgets/widgets.php:251
+msgid "Gallery IDs, separated by commas."
+msgstr ""
+
+#: ../xml/media-rss.php:50
+msgid "No galleries have been yet created."
+msgstr ""
+
+#: ../xml/media-rss.php:69
+#, php-format
+msgid "The gallery ID=%s does not exist."
+msgstr ""
+
+#: ../xml/media-rss.php:100
+msgid "No album ID has been provided as parameter"
+msgstr ""
+
+#: ../xml/media-rss.php:108
+#, php-format
+msgid "The album ID=%s does not exist."
+msgstr ""
+
+#: ../xml/media-rss.php:115
+msgid "Invalid MediaRSS command"
+msgstr ""
+
diff --git a/wp-content/plugins/nextgen-gallery/lib/core.php b/wp-content/plugins/nextgen-gallery/lib/core.php
new file mode 100644
index 000000000..4988f18b6
--- /dev/null
+++ b/wp-content/plugins/nextgen-gallery/lib/core.php
@@ -0,0 +1,524 @@
+<?php
+/**
+* Main PHP class for the WordPress plugin NextGEN Gallery
+* 
+* @author 		Alex Rabe 
+* @copyright 	Copyright 2007 - 2009
+* 
+*/
+class nggGallery {
+	
+	/**
+	* Show a error messages
+	*/
+	function show_error($message) {
+		echo '<div class="wrap"><h2></h2><div class="error" id="error"><p>' . $message . '</p></div></div>' . "\n";
+	}
+	
+	/**
+	* Show a system messages
+	*/
+	function show_message($message) {
+		echo '<div class="wrap"><h2></h2><div class="updated fade" id="message"><p>' . $message . '</p></div></div>' . "\n";
+	}
+
+	/**
+	* get the thumbnail url to the image
+	*/
+	function get_thumbnail_url($imageID, $picturepath = '', $fileName = ''){
+	
+		// get the complete url to the thumbnail
+		global $wpdb;
+		
+		// safety first
+		$imageID = (int) $imageID;
+		
+		// get gallery values
+		if ( empty($fileName) ) {
+			list($fileName, $picturepath ) = $wpdb->get_row("SELECT p.filename, g.path FROM $wpdb->nggpictures AS p INNER JOIN $wpdb->nggallery AS g ON (p.galleryid = g.gid) WHERE p.pid = '$imageID' ", ARRAY_N);
+		}
+		
+		if ( empty($picturepath) ) {
+			$picturepath = $wpdb->get_var("SELECT g.path FROM $wpdb->nggpictures AS p INNER JOIN $wpdb->nggallery AS g ON (p.galleryid = g.gid) WHERE p.pid = '$imageID' ");
+		}
+		
+		// set gallery url
+		$folder_url 	= site_url() . '/' . $picturepath.nggGallery::get_thumbnail_folder($picturepath, FALSE);
+		$thumbnailURL	= $folder_url . 'thumbs_' . $fileName;
+		
+		return $thumbnailURL;
+	}
+	
+	/**
+	* get the complete url to the image
+	*/
+	function get_image_url($imageID, $picturepath = '', $fileName = '') {		
+		global $wpdb;
+
+		// safety first
+		$imageID = (int) $imageID;
+		
+		// get gallery values
+		if (empty($fileName)) {
+			list($fileName, $picturepath ) = $wpdb->get_row("SELECT p.filename, g.path FROM $wpdb->nggpictures AS p INNER JOIN $wpdb->nggallery AS g ON (p.galleryid = g.gid) WHERE p.pid = '$imageID' ", ARRAY_N);
+		}
+
+		if (empty($picturepath)) {
+			$picturepath = $wpdb->get_var("SELECT g.path FROM $wpdb->nggpictures AS p INNER JOIN $wpdb->nggallery AS g ON (p.galleryid = g.gid) WHERE p.pid = '$imageID' ");
+		}
+		
+		// set gallery url
+		$imageURL 	= site_url() . '/' . $picturepath . '/' . $fileName;
+		
+		return $imageURL;	
+	}
+
+	/**
+	* nggGallery::get_thumbnail_folder()
+	* 
+	* @param mixed $gallerypath
+	* @param bool $include_Abspath
+	* @return string $foldername
+	*/
+	function create_thumbnail_folder($gallerypath, $include_Abspath = TRUE) {
+		if (!$include_Abspath) {
+			$gallerypath = WINABSPATH . $gallerypath;
+		}
+		
+		if (!file_exists($gallerypath)) {
+			return FALSE;
+		}
+		
+		if (is_dir($gallerypath . '/thumbs/')) {
+			return '/thumbs/';
+		}
+		
+		if (is_admin()) {
+			if (!is_dir($gallerypath . '/thumbs/')) {
+				if ( !wp_mkdir_p($gallerypath . '/thumbs/') ) {
+					if (SAFE_MODE) {
+						nggAdmin::check_safemode($gallerypath . '/thumbs/');	
+					} else {
+						nggGallery::show_error(__('Unable to create directory ', 'nggallery') . $gallerypath . '/thumbs !');
+					}
+					return FALSE;
+				}
+				return '/thumbs/';
+			}
+		}
+		
+		return FALSE;
+		
+	}
+
+	/**
+	* nggGallery::get_thumbnail_folder()
+	* 
+	* @param mixed $gallerypath
+	* @param bool $include_Abspath
+	* @deprecated use create_thumbnail_folder() if needed;
+	* @return string $foldername
+	*/
+	function get_thumbnail_folder($gallerypath, $include_Abspath = TRUE) {
+		return nggGallery::create_thumbnail_folder($gallerypath, $include_Abspath);
+	}
+	
+	/**
+	* nggGallery::get_thumbnail_prefix() - obsolete
+	* 
+	* @param string $gallerypath
+	* @param bool   $include_Abspath
+	* @deprecated prefix is now fixed to "thumbs_";
+	* @return string  "thumbs_";
+	*/
+	function get_thumbnail_prefix($gallerypath, $include_Abspath = TRUE) {
+		return 'thumbs_';		
+	}
+	
+	/**
+	* nggGallery::get_option() - get the options and overwrite them with custom meta settings
+	*
+	* @param string $key
+	* @return array $options
+	*/
+	function get_option($key) {
+		// get first the options from the database 
+		$options = get_option($key);
+		
+		// Get all key/value data for the current post. 
+		$meta_array = get_post_custom();
+		
+		// Ensure that this is a array
+		if ( !is_array($meta_array) )
+			$meta_array = array($meta_array);
+		
+		// assign meta key to db setting key
+		$meta_tags = array(
+			'string' => array(
+				'ngg_gal_ShowOrder' 		=> 'galShowOrder',
+				'ngg_gal_Sort' 				=> 'galSort',
+				'ngg_gal_SortDirection' 	=> 'galSortDir',
+				'ngg_gal_ShowDescription'	=> 'galShowDesc',
+				'ngg_ir_Audio' 				=> 'irAudio',
+				'ngg_ir_Overstretch'		=> 'irOverstretch',
+				'ngg_ir_Transition'			=> 'irTransition',
+				'ngg_ir_Backcolor' 			=> 'irBackcolor',
+				'ngg_ir_Frontcolor' 		=> 'irFrontcolor',
+				'ngg_ir_Lightcolor' 		=> 'irLightcolor',
+                'ngg_slideshowFX'			=> 'slideFx',
+			),
+
+			'int' => array(
+				'ngg_gal_Images' 			=> 'galImages',
+				'ngg_gal_Columns'			=> 'galColumns',
+				'ngg_paged_Galleries'		=> 'galPagedGalleries',
+				'ngg_ir_Width' 				=> 'irWidth',
+				'ngg_ir_Height' 			=> 'irHeight',
+				'ngg_ir_Rotatetime' 		=> 'irRotatetime'
+			),
+
+			'bool' => array(
+				'ngg_gal_ShowSlide'			=> 'galShowSlide',
+				'ngg_gal_ShowPiclense'		=> 'usePicLens',
+				'ngg_gal_ImageBrowser' 		=> 'galImgBrowser',
+				'ngg_gal_HideImages' 		=> 'galHiddenImg',
+				'ngg_ir_Shuffle' 			=> 'irShuffle',
+				'ngg_ir_LinkFromDisplay' 	=> 'irLinkfromdisplay',
+				'ngg_ir_ShowNavigation'		=> 'irShownavigation',
+				'ngg_ir_ShowWatermark' 		=> 'irWatermark',
+				'ngg_ir_Kenburns' 			=> 'irKenburns'
+			)
+		);
+		
+		foreach ($meta_tags as $typ => $meta_keys){
+			foreach ($meta_keys as $key => $db_value){
+				// if the kex exist overwrite it with the custom field
+				if (array_key_exists($key, $meta_array)){
+					switch ($typ) {
+					case 'string':
+						$options[$db_value] = (string) esc_attr($meta_array[$key][0]);
+						break;
+					case 'int':
+						$options[$db_value] = (int) $meta_array[$key][0];
+						break;
+					case 'bool':
+						$options[$db_value] = (bool) $meta_array[$key][0];
+						break;	
+					}
+				}
+			}
+		}
+		
+		return $options;
+	}
+	
+	/**
+	* nggGallery::scale_image() - Scale down a image
+	* 
+	* @param mixed $location (filename)
+	* @param int $maxw - max width
+	* @param int $maxh -  max height
+	* @return array (width, heigth) 
+	*/
+	function scale_image($location, $maxw = 0, $maxh = 0){
+		$img = @getimagesize($location);
+		if ($img){
+			$w = $img[0];
+			$h = $img[1];
+			
+			$dim = array('w','h');
+			foreach($dim AS $val) {
+				$max = "max{$val}";
+				if(${$val} > ${$max} && ${$max}){
+					$alt = ($val == 'w') ? 'h' : 'w';
+					$ratio = ${$alt} / ${$val};
+					${$val} = ${$max};
+					${$alt} = ${$val} * $ratio;
+				}
+			}
+			
+			return array( $w, $h );
+		}
+		return false;
+	} 
+	
+	/**
+	* Renders a section of user display code.  The code is first checked for in the current theme display directory
+	* before defaulting to the plugin
+	* Call the function :	nggGallery::render ('template_name', array ('var1' => $var1, 'var2' => $var2));
+	*
+	* @autor John Godley
+	* @param string $template_name Name of the template file (without extension)
+	* @param string $vars Array of variable name=>value that is available to the display code (optional)
+	* @return void
+	**/
+	function render($template_name, $vars = array ()) {
+		foreach ($vars AS $key => $val) {
+			$$key = $val;
+		}
+		
+		// hook into the render feature to allow other plugins to include templates
+		$custom_template = apply_filters( 'ngg_render_template', false, $template_name );
+		
+		if ( ( $custom_template != false ) &&  file_exists ($custom_template) ) {
+			include ( $custom_template );
+		} else if (file_exists (STYLESHEETPATH . "/nggallery/$template_name.php")) {
+			include (STYLESHEETPATH . "/nggallery/$template_name.php");
+		} else if (file_exists (NGGALLERY_ABSPATH . "/view/$template_name.php")) {
+			include (NGGALLERY_ABSPATH . "/view/$template_name.php");
+		} else {
+			echo "<p>Rendering of template $template_name.php failed</p>";
+		}
+	}
+	
+	/**
+	* Captures an section of user display code.
+	*
+	* @autor John Godley
+	* @param string $template_name Name of the template file (without extension)
+	* @param string $vars Array of variable name=>value that is available to the display code (optional)
+	* @return void
+	**/
+	function capture ($template_name, $vars = array ()) {
+		ob_start ();
+		nggGallery::render ($template_name, $vars);
+		$output = ob_get_contents ();
+		ob_end_clean ();
+		
+		return $output;
+	}
+	
+	/**
+	 * nggGallery::graphic_library() - switch between GD and ImageMagick
+	 * 
+	 * @return path to the selected library
+	 */
+	function graphic_library() {
+		
+		$ngg_options = get_option('ngg_options');
+		
+		if ( $ngg_options['graphicLibrary'] == 'im')
+			return NGGALLERY_ABSPATH . '/lib/imagemagick.inc.php';
+		else
+			return NGGALLERY_ABSPATH . '/lib/gd.thumbnail.inc.php';
+		
+	}
+	
+	/**
+	 * Look for the stylesheet in the theme folder
+	 * 
+	 * @return string path to stylesheet
+	 */
+	function get_theme_css_file() {
+	   
+  		// allow other plugins to include a stylesheet
+		$stylesheet = apply_filters( 'ngg_load_stylesheet', false );
+        
+		if ( ( $stylesheet != false ) &&  file_exists ($stylesheet) )
+			return ( $stylesheet );
+		elseif ( file_exists (STYLESHEETPATH . '/nggallery.css') )
+			return get_stylesheet_directory_uri() . '/nggallery.css';
+		else
+			return false;		
+	}
+
+	/**
+	 * Support for i18n with polyglot or qtrans
+	 * 
+	 * @param string $in
+	 * @return string $in localized
+	 */
+	function i18n($in) {
+		
+		if ( function_exists( 'langswitch_filter_langs_with_message' ) )
+			$in = langswitch_filter_langs_with_message($in);
+				
+		if ( function_exists( 'polyglot_filter' ))
+			$in = polyglot_filter($in);
+		
+		if ( function_exists( 'qtrans_useCurrentLanguageIfNotFoundUseDefaultLanguage' ))
+			$in = qtrans_useCurrentLanguageIfNotFoundUseDefaultLanguage($in);
+		
+		$in = apply_filters('localization', $in);
+		
+		return $in;
+	}
+	
+	/**
+	 * Check the memory_limit and calculate a recommended memory size
+	 * 
+	 * @since V1.2.0
+	 * @return string message about recommended image size
+	 */
+	function check_memory_limit() {
+
+		if ( (function_exists('memory_get_usage')) && (ini_get('memory_limit')) ) {
+			
+			// get memory limit
+			$memory_limit = ini_get('memory_limit');
+			if ($memory_limit != '')
+				$memory_limit = substr($memory_limit, 0, -1) * 1024 * 1024;
+			
+			// calculate the free memory 	
+			$freeMemory = $memory_limit - memory_get_usage();
+			
+			// build the test sizes
+			$sizes = array();
+			$sizes[] = array ( 'width' => 800,  'height' => 600);
+			$sizes[] = array ( 'width' => 1024, 'height' => 768);
+			$sizes[] = array ( 'width' => 1280, 'height' => 960);  // 1MP	
+			$sizes[] = array ( 'width' => 1600, 'height' => 1200); // 2MP
+			$sizes[] = array ( 'width' => 2016, 'height' => 1512); // 3MP
+			$sizes[] = array ( 'width' => 2272, 'height' => 1704); // 4MP
+			$sizes[] = array ( 'width' => 2560, 'height' => 1920); // 5MP
+			
+			// test the classic sizes
+			foreach ($sizes as $size){
+				// very, very rough estimation
+				if ($freeMemory < round( $size['width'] * $size['height'] * 5.09 )) {
+                	$result = sprintf(  __( 'Note : Based on your server memory limit you should not upload larger images then <strong>%d x %d</strong> pixel', 'nggallery' ), $size['width'], $size['height']); 
+					return $result;
+				}
+			}
+		}
+		return;
+	}
+	
+	/**
+	 * Slightly modfifed version of pathinfo(), clean up filename & rename jpeg to jpg
+	 * 
+	 * @param string $name The name being checked. 
+	 * @return array containing information about file
+	 */
+	function fileinfo( $name ) {
+		
+		//Sanitizes a filename replacing whitespace with dashes
+		$name = sanitize_file_name($name);
+		
+		//get the parts of the name
+		$filepart = pathinfo ( strtolower($name) );
+		
+		if ( empty($filepart) )
+			return false;
+		
+		// required until PHP 5.2.0
+		if ( empty($filepart['filename']) ) 
+			$filepart['filename'] = substr($filepart['basename'],0 ,strlen($filepart['basename']) - (strlen($filepart['extension']) + 1) );
+		
+		$filepart['filename'] = sanitize_title_with_dashes( $filepart['filename'] );
+		
+		//extension jpeg will not be recognized by the slideshow, so we rename it
+		$filepart['extension'] = ($filepart['extension'] == 'jpeg') ? 'jpg' : $filepart['extension'];
+		
+		//combine the new file name
+		$filepart['basename'] = $filepart['filename'] . '.' . $filepart['extension'];
+		
+		return $filepart;
+	}
+	
+	/**
+	 * Check for extended capabilites. Must previously registers with add_ngg_capabilites()
+	 * 
+	 * @since 1.5.0
+	 * @param string $capability
+	 * @return bool $result of capability check
+	 */
+	function current_user_can( $capability ) {
+		
+		global $_ngg_capabilites;
+		
+		if ( is_array($_ngg_capabilites) )
+			if ( in_array($capability , $_ngg_capabilites) )
+				return current_user_can( $capability );	
+		
+		return true;
+	}
+
+	/**
+	 * Check for extended capabilites and echo disabled="disabled" for input form
+	 * 
+	 * @since 1.5.0
+	 * @param string $capability
+	 * @return void
+	 */
+	function current_user_can_form( $capability ) {
+		
+		if ( !nggGallery::current_user_can( $capability ))
+			echo 'disabled="disabled"';
+	}
+
+	/**
+	 * Register more capabilities for custom use and add it to the administrator
+	 * 
+	 * @since 1.5.0
+	 * @param string $capability
+	 * @param bool $register the new capability automatic to the admin role 
+	 * @return void
+	 */
+	function add_capabilites( $capability , $register = true ) {
+		global $_ngg_capabilites;
+		
+		if ( !is_array($_ngg_capabilites) )
+			$_ngg_capabilites = array();
+		
+		$_ngg_capabilites[] = $capability;
+		
+		if ( $register ) {
+			$role = get_role('administrator');
+			if ( !empty($role) )
+				$role->add_cap( $capability );
+		}
+		
+	}
+    
+    /**
+     * Check for mobile user agent
+     * 
+     * @since 1.6.0
+     * @author Part taken from WPtouch plugin (http://www.bravenewcode.com)
+     * @return bool $result of  check
+     */
+    function detect_mobile_phone() {
+        
+        $useragents = array();
+        
+        // Check if WPtouch is running
+        if ( function_exists('bnc_wptouch_get_user_agents') )
+            $useragents = bnc_wptouch_get_user_agents();
+        else {   
+        	$useragents = array(		
+                "iPhone",  			 // Apple iPhone
+        		"iPod", 			 // Apple iPod touch
+        		"Android", 			 // 1.5+ Android
+        		"dream", 		     // Pre 1.5 Android
+        		"CUPCAKE", 			 // 1.5+ Android
+        		"blackberry9500",	 // Storm
+        		"blackberry9530",	 // Storm
+        		"blackberry9520",	 // Storm	v2
+        		"blackberry9550",	 // Storm v2
+        		"blackberry9800",	 // Torch
+        		"webOS",			 // Palm Pre Experimental
+        		"incognito", 		 // Other iPhone browser
+        		"webmate" 			 // Other iPhone browser
+        	);
+        	
+        	asort( $useragents );
+         }
+        
+        // Godfather Steve says no to flash
+        if ( is_array($useragents) )
+            $useragents[] = "iPad";  // Apple iPad;
+         
+        // WPtouch User Agent Filter
+        $useragents = apply_filters( 'wptouch_user_agents', $useragents );
+
+ 		foreach ( $useragents as $useragent ) {
+			if ( preg_match( "#$useragent#i", $_SERVER['HTTP_USER_AGENT'] ) )
+				return true;
+		}
+    
+        return false;    
+    }
+}
+
+?>
\ No newline at end of file
diff --git a/wp-content/plugins/nextgen-gallery/lib/gd.thumbnail.inc.php b/wp-content/plugins/nextgen-gallery/lib/gd.thumbnail.inc.php
new file mode 100644
index 000000000..7a2599d7e
--- /dev/null
+++ b/wp-content/plugins/nextgen-gallery/lib/gd.thumbnail.inc.php
@@ -0,0 +1,950 @@
+<?php
+/**
+ * gd.thumbnail.inc.php
+ * 
+ * @author 		Ian Selby (ian@gen-x-design.com)
+ * @copyright 	Copyright 2006-2011
+ * @version 	1.2.1 (based on 1.1.3)
+ * @modded      by Alex Rabe
+ * 
+ */
+
+/**
+ * PHP class for dynamically resizing, cropping, and rotating images for thumbnail purposes and either displaying them on-the-fly or saving them.
+ *
+ */
+class ngg_Thumbnail {
+    /**
+     * Error message to display, if any
+     *
+     * @var string
+     */
+    var $errmsg;
+    /**
+     * Whether or not there is an error
+     *
+     * @var boolean
+     */
+    var $error;
+    /**
+     * Format of the image file
+     *
+     * @var string
+     */
+    var $format;
+    /**
+     * File name and path of the image file
+     *
+     * @var string
+     */
+    var $fileName;
+    /**
+     * Current dimensions of working image
+     *
+     * @var array
+     */
+    var $currentDimensions;
+    /**
+     * New dimensions of working image
+     *
+     * @var array
+     */
+    var $newDimensions;
+    /**
+     * Image resource for newly manipulated image
+     *
+     * @var resource
+     * @access private
+     */
+    var $newImage;
+    /**
+     * Image resource for image before previous manipulation
+     *
+     * @var resource
+     * @access private
+     */
+    var $oldImage;
+    /**
+     * Image resource for image being currently manipulated
+     *
+     * @var resource
+     * @access private
+     */
+    var $workingImage;
+    /**
+     * Percentage to resize image by
+     *
+     * @var int
+     * @access private
+     */
+    var $percent;
+    /**
+     * Maximum width of image during resize
+     *
+     * @var int
+     * @access private
+     */
+    var $maxWidth;
+    /**
+     * Maximum height of image during resize
+     *
+     * @var int
+     * @access private
+     */
+    var $maxHeight;
+    /**
+     * Image for Watermark
+     *
+     * @var string
+     * 
+     */
+    var $watermarkImgPath;
+    /**
+     * Text for Watermark
+     *
+     * @var string
+     * 
+     */
+    var $watermarkText;
+    /**
+     * Image Resource ID for Watermark
+     *
+     * @var string
+     * 
+     */
+    function ngg_Thumbnail($fileName,$no_ErrorImage = false) {
+        //make sure the GD library is installed
+    	if(!function_exists("gd_info")) {
+        	echo 'You do not have the GD Library installed.  This class requires the GD library to function properly.' . "\n";
+        	echo 'visit http://us2.php.net/manual/en/ref.image.php for more information';
+        	exit;
+        }
+    	//initialize variables
+        $this->errmsg               = '';
+        $this->error                = false;
+        $this->currentDimensions    = array();
+        $this->newDimensions        = array();
+        $this->fileName             = $fileName;
+        $this->percent              = 100;
+        $this->maxWidth             = 0;
+        $this->maxHeight            = 0;
+        $this->watermarkImgPath		= '';
+        $this->watermarkText		= '';
+
+        //check to see if file exists
+        if(!file_exists($this->fileName)) {
+            $this->errmsg = 'File not found';
+            $this->error = true;
+        }
+        //check to see if file is readable
+        elseif(!is_readable($this->fileName)) {
+            $this->errmsg = 'File is not readable';
+            $this->error = true;
+        }
+        
+        //if there are no errors, determine the file format
+        if($this->error == false) {
+    		$data = @getimagesize($this->fileName);
+    		if (isset($data) && is_array($data)) {
+    		  $extensions = array('1' => 'GIF', '2' => 'JPG', '3' => 'PNG');
+    		  $extension = array_key_exists($data[2], $extensions) ?  $extensions[$data[2]] : '';
+                if($extension) {
+                    $this->format = $extension;
+                } else {
+                    $this->errmsg = 'Unknown file format';
+                    $this->error = true;
+                }
+            } else {
+                $this->errmsg = 'File is not an image';
+                $this->error = true;
+            }
+        }
+        
+		// increase memory-limit if possible, GD needs this for large images
+		// @ini_set('memory_limit', '128M');
+        
+		if($this->error == false) { 
+        // Check memory consumption if file exists
+			$this->checkMemoryForImage($this->fileName);
+		}
+
+        //initialize resources if no errors
+        if($this->error == false) { 
+
+            switch($this->format) {            	
+                case 'GIF':
+                    $this->oldImage = ImageCreateFromGif($this->fileName);
+                    break;
+                case 'JPG':
+                       $this->oldImage = ImageCreateFromJpeg($this->fileName);
+                    break;
+                case 'PNG':
+                    $this->oldImage = ImageCreateFromPng($this->fileName);
+					break;
+            }
+			if (!$this->oldImage) { 
+				$this->errmsg = 'Create Image failed. Check memory limit';
+		        $this->error = true;
+		    } else {
+	            $size = GetImageSize($this->fileName);
+    	        $this->currentDimensions = array('width'=>$size[0],'height'=>$size[1]);
+	            $this->newImage = $this->oldImage;
+	        }
+        }
+
+
+        if($this->error == true) {
+        	if(!$no_ErrorImage)
+            	$this->showErrorImage();
+            return;
+        }
+    }
+
+    /**
+     * Calculate the memory limit
+     *
+     */
+	function checkMemoryForImage( $filename ){
+		
+		if ( (function_exists('memory_get_usage')) && (ini_get('memory_limit')) ) {
+			$imageInfo = getimagesize($filename);
+			switch($this->format) {            	
+                case 'GIF':
+                	// measured factor 1 is better
+                    $CHANNEL = 1;
+                    break;
+                case 'JPG':
+                    $CHANNEL = $imageInfo['channels'];
+                    break;
+                case 'PNG':
+					// didn't get the channel for png
+                    $CHANNEL = 3;
+					break;
+            }
+		    $MB = 1048576;  // number of bytes in 1M
+		    $K64 = 65536;    // number of bytes in 64K
+		    $TWEAKFACTOR = 1.68;  // Or whatever works for you
+		    $memoryNeeded = round( ( $imageInfo[0] * $imageInfo[1]
+		                                           * $imageInfo['bits']
+		                                           * $CHANNEL / 8
+		                             + $K64
+		                           ) * $TWEAKFACTOR
+		                         );
+		    $memoryNeeded = memory_get_usage() + $memoryNeeded;
+			// get memory limit
+			$memory_limit = ini_get('memory_limit');
+			if ($memory_limit != '') {
+				$memory_limit = substr($memory_limit, 0, -1) * 1024 * 1024;
+			}
+			
+			if ($memoryNeeded > $memory_limit) {
+				$memoryNeeded = round ($memoryNeeded / 1024 / 1024, 2);
+				$this->errmsg = 'Exceed Memory limit. Require : '.$memoryNeeded. " MByte" ;
+		        $this->error = true;
+	        }
+		}
+	    return;
+	}
+
+    /**
+     * Must be called to free up allocated memory after all manipulations are done
+     *
+     */
+    function destruct() {
+        if(is_resource($this->newImage)) @ImageDestroy($this->newImage);
+        if(is_resource($this->oldImage)) @ImageDestroy($this->oldImage);
+        if(is_resource($this->workingImage)) @ImageDestroy($this->workingImage);
+    }
+
+    /**
+     * Returns the current width of the image
+     *
+     * @return int
+     */
+    function getCurrentWidth() {
+        return $this->currentDimensions['width'];
+    }
+
+    /**
+     * Returns the current height of the image
+     *
+     * @return int
+     */
+    function getCurrentHeight() {
+        return $this->currentDimensions['height'];
+    }
+
+    /**
+     * Calculates new image width
+     *
+     * @param int $width
+     * @param int $height
+     * @return array
+     */
+    function calcWidth($width,$height) {
+        $newWp = (100 * $this->maxWidth) / $width;
+        $newHeight = ($height * $newWp) / 100;
+        return array('newWidth'=>intval($this->maxWidth),'newHeight'=>intval($newHeight));
+    }
+
+    /**
+     * Calculates new image height
+     *
+     * @param int $width
+     * @param int $height
+     * @return array
+     */
+    function calcHeight($width,$height) {
+        $newHp = (100 * $this->maxHeight) / $height;
+        $newWidth = ($width * $newHp) / 100;
+        return array('newWidth'=>intval($newWidth),'newHeight'=>intval($this->maxHeight));
+    }
+
+    /**
+     * Calculates new image size based on percentage
+     *
+     * @param int $width
+     * @param int $height
+     * @return array
+     */
+    function calcPercent($width,$height) {
+        $newWidth = ($width * $this->percent) / 100;
+        $newHeight = ($height * $this->percent) / 100;
+        return array('newWidth'=>intval($newWidth),'newHeight'=>intval($newHeight));
+    }
+
+    /**
+     * Calculates new image size based on width and height, while constraining to maxWidth and maxHeight
+     *
+     * @param int $width
+     * @param int $height
+     */
+    function calcImageSize($width,$height) {
+        $newSize = array('newWidth'=>$width,'newHeight'=>$height);
+
+        if($this->maxWidth > 0) {
+
+            $newSize = $this->calcWidth($width,$height);
+
+            if($this->maxHeight > 0 && $newSize['newHeight'] > $this->maxHeight) {
+                $newSize = $this->calcHeight($newSize['newWidth'],$newSize['newHeight']);
+            }
+
+            //$this->newDimensions = $newSize;
+        }
+
+        if($this->maxHeight > 0) {
+            $newSize = $this->calcHeight($width,$height);
+
+            if($this->maxWidth > 0 && $newSize['newWidth'] > $this->maxWidth) {
+                $newSize = $this->calcWidth($newSize['newWidth'],$newSize['newHeight']);
+            }
+
+            //$this->newDimensions = $newSize;
+        }
+
+        $this->newDimensions = $newSize;
+    }
+
+    /**
+     * Calculates new image size based percentage
+     *
+     * @param int $width
+     * @param int $height
+     */
+    function calcImageSizePercent($width,$height) {
+        if($this->percent > 0) {
+            $this->newDimensions = $this->calcPercent($width,$height);
+        }
+    }
+
+    /**
+     * Displays error image
+     *
+     */
+    function showErrorImage() {
+        header('Content-type: image/png');
+        $errImg = ImageCreate(220,25);
+        $bgColor = imagecolorallocate($errImg,0,0,0);
+        $fgColor1 = imagecolorallocate($errImg,255,255,255);
+        $fgColor2 = imagecolorallocate($errImg,255,0,0);
+        imagestring($errImg,3,6,6,'Error:',$fgColor2);
+        imagestring($errImg,3,55,6,$this->errmsg,$fgColor1);
+        imagepng($errImg);
+        imagedestroy($errImg);
+    }
+
+    /**
+     * Resizes image to fixed Width x Height
+     * 
+     * @param int $Width
+     * @param int $Height
+     * @param int $resampleMode
+     */
+    function resizeFix($Width = 0, $Height = 0, $resampleMode = 3) {
+        $this->newWidth = $Width;
+        $this->newHeight = $Height;
+
+		if(function_exists("ImageCreateTrueColor")) {
+			$this->workingImage = ImageCreateTrueColor($this->newWidth,$this->newHeight);
+		}
+		else {
+			$this->workingImage = ImageCreate($this->newWidth,$this->newHeight);
+		}
+
+//		ImageCopyResampled(
+		$this->fastimagecopyresampled(
+			$this->workingImage,
+			$this->oldImage,
+			0,
+			0,
+			0,
+			0,
+			$this->newWidth,
+			$this->newHeight,
+			$this->currentDimensions['width'],
+			$this->currentDimensions['height'],
+			$resampleMode
+		);
+
+		$this->oldImage = $this->workingImage;
+		$this->newImage = $this->workingImage;
+		$this->currentDimensions['width'] = $this->newWidth;
+		$this->currentDimensions['height'] = $this->newHeight;
+	}
+
+
+    /**
+     * Resizes image to maxWidth x maxHeight
+     *
+     * @param int $maxWidth
+     * @param int $maxHeight
+     * @param int $resampleMode
+     */
+    function resize($maxWidth = 0, $maxHeight = 0, $resampleMode = 3) {
+        $this->maxWidth = $maxWidth;
+        $this->maxHeight = $maxHeight;
+
+        $this->calcImageSize($this->currentDimensions['width'],$this->currentDimensions['height']);
+
+		if(function_exists("ImageCreateTrueColor")) {
+			$this->workingImage = ImageCreateTrueColor($this->newDimensions['newWidth'],$this->newDimensions['newHeight']);
+		}
+		else {
+			$this->workingImage = ImageCreate($this->newDimensions['newWidth'],$this->newDimensions['newHeight']);
+		}
+
+//		ImageCopyResampled(
+		$this->fastimagecopyresampled(
+			$this->workingImage,
+			$this->oldImage,
+			0,
+			0,
+			0,
+			0,
+			$this->newDimensions['newWidth'],
+			$this->newDimensions['newHeight'],
+			$this->currentDimensions['width'],
+			$this->currentDimensions['height'],
+			$resampleMode
+		);
+
+		$this->oldImage = $this->workingImage;
+		$this->newImage = $this->workingImage;
+		$this->currentDimensions['width'] = $this->newDimensions['newWidth'];
+		$this->currentDimensions['height'] = $this->newDimensions['newHeight'];
+	}
+
+	/**
+	 * Resizes the image by $percent percent
+	 *
+	 * @param int $percent
+	 */
+	function resizePercent($percent = 0) {
+	    $this->percent = $percent;
+
+	    $this->calcImageSizePercent($this->currentDimensions['width'],$this->currentDimensions['height']);
+
+		if(function_exists("ImageCreateTrueColor")) {
+			$this->workingImage = ImageCreateTrueColor($this->newDimensions['newWidth'],$this->newDimensions['newHeight']);
+		}
+		else {
+			$this->workingImage = ImageCreate($this->newDimensions['newWidth'],$this->newDimensions['newHeight']);
+		}
+
+		ImageCopyResampled(
+			$this->workingImage,
+			$this->oldImage,
+			0,
+			0,
+			0,
+			0,
+			$this->newDimensions['newWidth'],
+			$this->newDimensions['newHeight'],
+			$this->currentDimensions['width'],
+			$this->currentDimensions['height']
+		);
+
+		$this->oldImage = $this->workingImage;
+		$this->newImage = $this->workingImage;
+		$this->currentDimensions['width'] = $this->newDimensions['newWidth'];
+		$this->currentDimensions['height'] = $this->newDimensions['newHeight'];
+	}
+
+	/**
+	 * Crops the image from calculated center in a square of $cropSize pixels
+	 *
+	 * @param int $cropSize
+	 * @param int $resampleMode
+	 */
+	function cropFromCenter($cropSize, $resampleMode = 3) {
+	    if($cropSize > $this->currentDimensions['width']) $cropSize = $this->currentDimensions['width'];
+	    if($cropSize > $this->currentDimensions['height']) $cropSize = $this->currentDimensions['height'];
+
+	    $cropX = intval(($this->currentDimensions['width'] - $cropSize) / 2);
+	    $cropY = intval(($this->currentDimensions['height'] - $cropSize) / 2);
+
+	    if(function_exists("ImageCreateTrueColor")) {
+			$this->workingImage = ImageCreateTrueColor($cropSize,$cropSize);
+		}
+		else {
+			$this->workingImage = ImageCreate($cropSize,$cropSize);
+		}
+
+//		imagecopyresampled(
+		$this->fastimagecopyresampled(
+            $this->workingImage,
+            $this->oldImage,
+            0,
+            0,
+            $cropX,
+            $cropY,
+            $cropSize,
+            $cropSize,
+            $cropSize,
+            $cropSize,
+            $resampleMode
+		);
+
+		$this->oldImage = $this->workingImage;
+		$this->newImage = $this->workingImage;
+		$this->currentDimensions['width'] = $cropSize;
+		$this->currentDimensions['height'] = $cropSize;
+	}
+
+	/**
+	 * Advanced cropping function that crops an image using $startX and $startY as the upper-left hand corner.
+	 *
+	 * @param int $startX
+	 * @param int $startY
+	 * @param int $width
+	 * @param int $height
+	 */
+	function crop($startX, $startY, $width, $height) {
+	    //make sure the cropped area is not greater than the size of the image
+	    if($width > $this->currentDimensions['width']) $width = $this->currentDimensions['width'];
+	    if($height > $this->currentDimensions['height']) $height = $this->currentDimensions['height'];
+	    //make sure not starting outside the image
+	    if(($startX + $width) > $this->currentDimensions['width']) $startX = ($this->currentDimensions['width'] - $width);
+	    if(($startY + $height) > $this->currentDimensions['height']) $startY = ($this->currentDimensions['height'] - $height);
+	    if($startX < 0) $startX = 0;
+	    if($startY < 0) $startY = 0;
+
+	    if(function_exists("ImageCreateTrueColor")) {
+			$this->workingImage = ImageCreateTrueColor($width,$height);
+		}
+		else {
+			$this->workingImage = ImageCreate($width,$height);
+		}
+
+		imagecopyresampled(
+            $this->workingImage,
+            $this->oldImage,
+            0,
+            0,
+            $startX,
+            $startY,
+            $width,
+            $height,
+            $width,
+            $height
+		);
+
+		$this->oldImage = $this->workingImage;
+		$this->newImage = $this->workingImage;
+		$this->currentDimensions['width'] = $width;
+		$this->currentDimensions['height'] = $height;
+	}
+
+	/**
+	 * Outputs the image to the screen, or saves to $name if supplied.  Quality of JPEG images can be controlled with the $quality variable
+	 *
+	 * @param int $quality
+	 * @param string $name
+	 */
+	function show($quality=100,$name = '') {
+	    switch($this->format) {
+	        case 'GIF':
+	            if($name != '') {
+	               @ImageGif($this->newImage,$name) or $this->error = true;
+	            }
+	            else {
+	               header('Content-type: image/gif');
+	               ImageGif($this->newImage);
+	            }
+	            break;
+	        case 'JPG':
+	            if($name != '') {
+	               @ImageJpeg($this->newImage,$name,$quality) or $this->error = true;
+	            }
+	            else {
+	               header('Content-type: image/jpeg');
+	               ImageJpeg($this->newImage,'',$quality);
+	            }
+	            break;
+	        case 'PNG':
+	            if($name != '') {
+	            	@ImagePng($this->newImage,$name) or $this->error = true;
+	            }
+	            else {
+	               header('Content-type: image/png');
+	               ImagePng($this->newImage);
+	            }
+	            break;
+	    }
+	}
+
+	/**
+	 * Saves image as $name (can include file path), with quality of # percent if file is a jpeg
+	 *
+	 * @param string $name
+	 * @param int $quality
+	 * @return bool errorstate
+	 */
+	function save($name,$quality=100) {
+	    $this->show($quality,$name);
+	    if ($this->error == true) {
+	    	$this->errmsg = 'Create Image failed. Check safe mode settings';
+	    	return false;
+	    }
+        
+        if( function_exists('do_action') )
+	       do_action('ngg_ajax_image_save', $name);
+
+	    return true;
+	}
+
+	/**
+	 * Creates Apple-style reflection under image, optionally adding a border to main image
+	 *
+	 * @param int $percent
+	 * @param int $reflection
+	 * @param int $white
+	 * @param bool $border
+	 * @param string $borderColor
+	 */
+	function createReflection($percent,$reflection,$white,$border = true,$borderColor = '#a4a4a4') {
+        $width = $this->currentDimensions['width'];
+        $height = $this->currentDimensions['height'];
+
+        $reflectionHeight = intval($height * ($reflection / 100));
+        $newHeight = $height + $reflectionHeight;
+        $reflectedPart = $height * ($percent / 100);
+
+        $this->workingImage = ImageCreateTrueColor($width,$newHeight);
+
+        ImageAlphaBlending($this->workingImage,true);
+
+        $colorToPaint = ImageColorAllocateAlpha($this->workingImage,255,255,255,0);
+        ImageFilledRectangle($this->workingImage,0,0,$width,$newHeight,$colorToPaint);
+
+        imagecopyresampled(
+                            $this->workingImage,
+                            $this->newImage,
+                            0,
+                            0,
+                            0,
+                            $reflectedPart,
+                            $width,
+                            $reflectionHeight,
+                            $width,
+                            ($height - $reflectedPart));
+        $this->imageFlipVertical();
+
+        imagecopy($this->workingImage,$this->newImage,0,0,0,0,$width,$height);
+
+        imagealphablending($this->workingImage,true);
+
+        for($i=0;$i<$reflectionHeight;$i++) {
+            $colorToPaint = imagecolorallocatealpha($this->workingImage,255,255,255,($i/$reflectionHeight*-1+1)*$white);
+            imagefilledrectangle($this->workingImage,0,$height+$i,$width,$height+$i,$colorToPaint);
+        }
+
+        if($border == true) {
+            $rgb = $this->hex2rgb($borderColor,false);
+            $colorToPaint = imagecolorallocate($this->workingImage,$rgb[0],$rgb[1],$rgb[2]);
+            imageline($this->workingImage,0,0,$width,0,$colorToPaint); //top line
+            imageline($this->workingImage,0,$height,$width,$height,$colorToPaint); //bottom line
+            imageline($this->workingImage,0,0,0,$height,$colorToPaint); //left line
+            imageline($this->workingImage,$width-1,0,$width-1,$height,$colorToPaint); //right line
+        }
+
+        $this->oldImage = $this->workingImage;
+		$this->newImage = $this->workingImage;
+		$this->currentDimensions['width'] = $width;
+		$this->currentDimensions['height'] = $newHeight;
+	}
+
+	/**
+	 * Flip an image.
+	 *
+	 * @param bool $horz flip the image in horizontal mode
+	 * @param bool $vert flip the image in vertical mode
+	 */
+	function flipImage( $horz = false, $vert = false ) {
+		
+		$sx = $vert ? ($this->currentDimensions['width'] - 1) : 0;
+		$sy = $horz ? ($this->currentDimensions['height'] - 1) : 0;
+		$sw = $vert ? -$this->currentDimensions['width'] : $this->currentDimensions['width'];
+		$sh = $horz ? -$this->currentDimensions['height'] : $this->currentDimensions['height'];
+		
+		$this->workingImage = imagecreatetruecolor( $this->currentDimensions['width'], $this->currentDimensions['height'] ); 
+		
+		imagecopyresampled($this->workingImage, $this->oldImage, 0, 0, $sx, $sy, $this->currentDimensions['width'], $this->currentDimensions['height'], $sw, $sh) ;
+		$this->oldImage = $this->workingImage;
+		$this->newImage = $this->workingImage;
+		
+		return true;
+	}
+	
+	/**
+	 * Rotate an image clockwise or counter clockwise
+	 *
+	 * @param string $direction could be CW or CCW
+	 */
+	function rotateImage( $dir = 'CW' ) {
+		
+		$angle = ($dir == 'CW') ? 90 : -90;
+		
+		if ( function_exists('imagerotate') ) {
+	        $this->workingImage = imagerotate($this->oldImage, 360 - $angle, 0); // imagerotate() rotates CCW 
+	        $this->currentDimensions['width']  = imagesx($this->workingImage);
+	    	$this->currentDimensions['height'] = imagesy($this->workingImage);
+    	    $this->oldImage = $this->workingImage;
+			$this->newImage = $this->workingImage;
+			return true;
+		}
+		
+		$this->workingImage = imagecreatetruecolor( $this->currentDimensions['height'], $this->currentDimensions['width'] ); 
+		
+	    imagealphablending($this->workingImage, false); 
+	    imagesavealpha($this->workingImage, true); 
+
+		switch ($angle) {
+			
+			case 90 :
+				for( $x = 0; $x < $this->currentDimensions['width']; $x++ ) { 
+	   	            for( $y = 0; $y < $this->currentDimensions['height']; $y++ ) { 
+	  	                if ( !imagecopy($this->workingImage, $this->oldImage, $this->currentDimensions['height'] - $y - 1, $x, $x, $y, 1, 1) ) 
+	  	                    return false; 
+	 	            } 
+	  	        } 
+			break;
+			
+			case -90 :
+				for( $x = 0; $x < $this->currentDimensions['width']; $x++ ) { 
+	 	            for( $y = 0; $y < $this->currentDimensions['height']; $y++ ) { 
+	 	                if ( !imagecopy($this->workingImage, $this->oldImage, $y, $this->currentDimensions['width'] - $x - 1, $x, $y, 1, 1) ) 
+	 	                    return false; 
+	 	            } 
+	 	        } 
+			break;
+						
+			default : 
+				return false;
+		}
+
+		$this->currentDimensions['width']  = imagesx($this->workingImage);
+	    $this->currentDimensions['height'] = imagesy($this->workingImage);			
+	    $this->oldImage = $this->workingImage;
+		$this->newImage = $this->workingImage;
+		
+	    return true;
+		
+	}	
+
+	/**
+	 * Inverts working image, used by reflection function
+	 * 
+	 * @access	private
+	 */
+	function imageFlipVertical() {
+	    $x_i = imagesx($this->workingImage);
+	    $y_i = imagesy($this->workingImage);
+
+	    for($x = 0; $x < $x_i; $x++) {
+	        for($y = 0; $y < $y_i; $y++) {
+	            imagecopy($this->workingImage,$this->workingImage,$x,$y_i - $y - 1, $x, $y, 1, 1);
+	        }
+	    }
+	}
+
+	/**
+	 * Converts hexidecimal color value to rgb values and returns as array/string
+	 *
+	 * @param string $hex
+	 * @param bool $asString
+	 * @return array|string
+	 */
+	function hex2rgb($hex, $asString = false) {
+        // strip off any leading #
+        if (0 === strpos($hex, '#')) {
+           $hex = substr($hex, 1);
+        } else if (0 === strpos($hex, '&H')) {
+           $hex = substr($hex, 2);
+        }
+
+        // break into hex 3-tuple
+        $cutpoint = ceil(strlen($hex) / 2)-1;
+        $rgb = explode(':', wordwrap($hex, $cutpoint, ':', $cutpoint), 3);
+
+        // convert each tuple to decimal
+        $rgb[0] = (isset($rgb[0]) ? hexdec($rgb[0]) : 0);
+        $rgb[1] = (isset($rgb[1]) ? hexdec($rgb[1]) : 0);
+        $rgb[2] = (isset($rgb[2]) ? hexdec($rgb[2]) : 0);
+
+        return ($asString ? "{$rgb[0]} {$rgb[1]} {$rgb[2]}" : $rgb);
+    }
+    
+	/**
+     * Based on the Watermark function by Marek Malcherek  
+     * http://www.malcherek.de
+     *
+ 	 * @param string $color
+	 * @param string $wmFont
+	 * @param int $wmSize
+ 	 * @param int $wmOpaque
+     */
+	function watermarkCreateText($color = '000000',$wmFont, $wmSize = 10, $wmOpaque = 90 ){
+		// set font path
+		$wmFontPath = NGGALLERY_ABSPATH."fonts/".$wmFont;
+		if ( !is_readable($wmFontPath))
+			return;	
+			
+		// This function requires both the GD library and the FreeType library. 
+		if ( !function_exists('ImageTTFBBox') )
+			return;
+	
+		$TextSize = @ImageTTFBBox($wmSize, 0, $wmFontPath, $this->watermarkText) or die;
+		$TextWidth = abs($TextSize[2]) + abs($TextSize[0]);
+		$TextHeight = abs($TextSize[7]) + abs($TextSize[1]);
+		// Create Image for Text
+		$this->workingImage = ImageCreateTrueColor($TextWidth, $TextHeight);
+		ImageSaveAlpha($this->workingImage, true);
+		ImageAlphaBlending($this->workingImage, false);
+		$bgText = imagecolorallocatealpha($this->workingImage, 255, 255, 255, 127);
+		imagefill($this->workingImage, 0, 0, $bgText);
+		$wmTransp = 127 -( $wmOpaque * 1.27 );
+		$rgb = $this->hex2rgb($color,false);
+		$TextColor = imagecolorallocatealpha($this->workingImage, $rgb[0], $rgb[1], $rgb[2], $wmTransp);
+		
+		// Create Text on image
+		imagettftext($this->workingImage, $wmSize, 0, 0, abs($TextSize[5]), $TextColor, $wmFontPath, $this->watermarkText);
+		$this->watermarkImgPath = $this->workingImage;
+
+		return;		
+	}
+    
+    /**
+     * Modfied Watermark function by Steve Peart 
+     * http://parasitehosting.com/
+     *
+ 	 * @param string $relPOS
+	 * @param int $xPOS
+ 	 * @param int $yPOS
+     */
+    function watermarkImage( $relPOS = 'botRight', $xPOS = 0, $yPOS = 0) {
+    	
+		// if it's a resource ID take it as watermark text image
+    	if(is_resource($this->watermarkImgPath)) {
+    		$this->workingImage = $this->watermarkImgPath;
+    	} else {
+		// Would you really want to use anything other than a png? 
+		$this->workingImage = @imagecreatefrompng($this->watermarkImgPath);
+		// if it's not a valid file die...
+		if (empty($this->workingImage) or (!$this->workingImage))
+			return;
+		}
+		
+		imagealphablending($this->workingImage, false);
+		imagesavealpha($this->workingImage, true);
+		$sourcefile_width=imageSX($this->oldImage);
+		$sourcefile_height=imageSY($this->oldImage);
+		$watermarkfile_width=imageSX($this->workingImage);
+		$watermarkfile_height=imageSY($this->workingImage);
+		switch(substr($relPOS, 0, 3)){
+			case 'top': $dest_y = 0 + $yPOS; break;
+			case 'mid': $dest_y = ($sourcefile_height / 2) - ($watermarkfile_height / 2); break;
+			case 'bot': $dest_y = $sourcefile_height - $watermarkfile_height - $yPOS; break;
+			default   : $dest_y = 0; break;
+		}
+		switch(substr($relPOS, 3)){
+			case 'Left'	:	$dest_x = 0 + $xPOS; break;
+			case 'Center':	$dest_x = ($sourcefile_width / 2) - ($watermarkfile_width / 2); break;
+			case 'Right':	$dest_x = $sourcefile_width - $watermarkfile_width - $xPOS; break;
+			default : 		$dest_x = 0; break;
+		}
+		
+		// debug	
+		// $this->errmsg = 'X '.$dest_x.' Y '.$dest_y;
+		// $this->showErrorImage();
+
+		// if a gif, we have to upsample it to a truecolor image
+		if($this->format == 'GIF') {
+			$tempimage = imagecreatetruecolor($sourcefile_width,$sourcefile_height);
+			imagecopy($tempimage, $this->oldImage, 0, 0, 0, 0,$sourcefile_width, $sourcefile_height);
+			$this->newImage = $tempimage;
+		}
+		
+		imagecopy($this->newImage, $this->workingImage, $dest_x, $dest_y, 0, 0,$watermarkfile_width, $watermarkfile_height);
+	}
+	
+    /**
+     * Fast imagecopyresampled by tim@leethost.com
+     *
+     */	
+	function fastimagecopyresampled (&$dst_image, $src_image, $dst_x, $dst_y, $src_x, $src_y, $dst_w, $dst_h, $src_w, $src_h, $quality = 3) {
+		// Plug-and-Play fastimagecopyresampled function replaces much slower imagecopyresampled.
+		// Just include this function and change all "imagecopyresampled" references to "fastimagecopyresampled".
+		// Typically from 30 to 60 times faster when reducing high resolution images down to thumbnail size using the default quality setting.
+		// Author: Tim Eckel - Date: 12/17/04 - Project: FreeRingers.net - Freely distributable.
+		//
+		// Optional "quality" parameter (defaults is 3).  Fractional values are allowed, for example 1.5.
+		// 1 = Up to 600 times faster.  Poor results, just uses imagecopyresized but removes black edges.
+		// 2 = Up to 95 times faster.  Images may appear too sharp, some people may prefer it.
+		// 3 = Up to 60 times faster.  Will give high quality smooth results very close to imagecopyresampled.
+		// 4 = Up to 25 times faster.  Almost identical to imagecopyresampled for most images.
+		// 5 = No speedup.  Just uses imagecopyresampled, highest quality but no advantage over imagecopyresampled.
+		
+		if (empty($src_image) || empty($dst_image)) { return false; }
+		
+		if ($quality <= 1) {
+			$temp = imagecreatetruecolor ($dst_w + 1, $dst_h + 1);
+			imagecopyresized ($temp, $src_image, $dst_x, $dst_y, $src_x, $src_y, $dst_w + 1, $dst_h + 1, $src_w, $src_h);
+			imagecopyresized ($dst_image, $temp, 0, 0, 0, 0, $dst_w, $dst_h, $dst_w, $dst_h);
+			imagedestroy ($temp);
+		} elseif ($quality < 5 && (($dst_w * $quality) < $src_w || ($dst_h * $quality) < $src_h)) {
+			$tmp_w = $dst_w * $quality;
+			$tmp_h = $dst_h * $quality;
+			// on whatever reason PHP 4.4.8 stopped here.
+			$temp = imagecreatetruecolor ($tmp_w + 1, $tmp_h + 1);
+			imagecopyresized ($temp, $src_image, $dst_x * $quality, $dst_y * $quality, $src_x, $src_y, $tmp_w + 1, $tmp_h + 1, $src_w, $src_h);
+			imagecopyresampled ($dst_image, $temp, 0, 0, 0, 0, $dst_w, $dst_h, $tmp_w, $tmp_h);
+			imagedestroy ($temp);
+		} else {
+			imagecopyresampled ($dst_image, $src_image, $dst_x, $dst_y, $src_x, $src_y, $dst_w, $dst_h, $src_w, $src_h);
+		}
+		return true;
+	}
+}
+?>
diff --git a/wp-content/plugins/nextgen-gallery/lib/image.php b/wp-content/plugins/nextgen-gallery/lib/image.php
new file mode 100644
index 000000000..99c07ce17
--- /dev/null
+++ b/wp-content/plugins/nextgen-gallery/lib/image.php
@@ -0,0 +1,214 @@
+<?php
+if ( !class_exists('nggImage') ) :
+/**
+* Image PHP class for the WordPress plugin NextGEN Gallery
+* 
+* @author 		Alex Rabe 
+* @copyright 	Copyright 2007-2008
+*/
+class nggImage{
+	
+	/**** Public variables ****/	
+	var $errmsg			=	'';			// Error message to display, if any
+	var $error			=	FALSE; 		// Error state
+	var $imageURL		=	'';			// URL Path to the image
+	var $thumbURL		=	'';			// URL Path to the thumbnail
+	var $imagePath		=	'';			// Server Path to the image
+	var $thumbPath		=	'';			// Server Path to the thumbnail
+	var $href			=	'';			// A href link code
+	
+	// TODO: remove thumbPrefix and thumbFolder (constants)
+	var $thumbPrefix	=	'thumbs_';	// FolderPrefix to the thumbnail
+	var $thumbFolder	=	'/thumbs/';	// Foldername to the thumbnail
+	
+	/**** Image Data ****/
+	var $galleryid		=	0;			// Gallery ID
+	var $pid			=	0;			// Image ID	
+	var $filename		=	'';			// Image filename
+	var $description	=	'';			// Image description	
+	var $alttext		=	'';			// Image alttext	
+	var $imagedate		=	'';			// Image date/time	
+	var $exclude		=	'';			// Image exclude
+	var $thumbcode		=	'';			// Image effect code
+
+	/**** Gallery Data ****/
+	var $name			=	'';			// Gallery name
+	var $path			=	'';			// Gallery path	
+	var $title			=	'';			// Gallery title
+	var $pageid			=	0;			// Gallery page ID
+	var $previewpic		=	0;			// Gallery preview pic		
+
+	var $permalink		=	'';
+	var $tags			=   '';
+		
+	/**
+	 * Constructor
+	 * 
+	 * @param object $gallery The nggGallery object representing the gallery containing this image
+	 * @return void
+	 */
+	function nggImage($gallery) {			
+			
+		//This must be an object
+		$gallery = (object) $gallery;
+
+		// Build up the object
+		foreach ($gallery as $key => $value)
+			$this->$key = $value ;
+		
+		// Finish initialisation
+		$this->name			= $gallery->name;
+		$this->path			= $gallery->path;
+		$this->title		= stripslashes($gallery->title);
+		$this->pageid		= $gallery->pageid;		
+		$this->previewpic	= $gallery->previewpic;
+	
+		// set urls and paths
+		$this->imageURL		= site_url() . '/' . $this->path . '/' . $this->filename;
+		$this->thumbURL 	= site_url() . '/' . $this->path . '/thumbs/thumbs_' . $this->filename;
+		$this->imagePath	= WINABSPATH.$this->path . '/' . $this->filename;
+		$this->thumbPath	= WINABSPATH.$this->path . '/thumbs/thumbs_' . $this->filename;
+		$this->meta_data	= unserialize($this->meta_data);
+		$this->imageHTML	= $this->get_href_link();
+		$this->thumbHTML	= $this->get_href_thumb_link();
+		
+		do_action_ref_array('ngg_get_image', array(&$this));
+		wp_cache_add($this->pid, $this, 'ngg_image');
+		
+		// Get tags only if necessary
+		unset($this->tags);
+	}
+	
+	/**
+	* Get the thumbnail code (to add effects on thumbnail click)
+	*
+	* Applies the filter 'ngg_get_thumbcode'
+	*/
+	function get_thumbcode($galleryname = '') {
+		// read the option setting
+		$ngg_options = get_option('ngg_options');
+		
+		// get the effect code
+		if ($ngg_options['thumbEffect'] != "none")
+			$this->thumbcode = stripslashes($ngg_options['thumbCode']);		
+		
+		// for highslide to a different approach	
+		if ($ngg_options['thumbEffect'] == "highslide")
+			$this->thumbcode = str_replace("%GALLERY_NAME%", "'".$galleryname."'", $this->thumbcode);
+		else
+			$this->thumbcode = str_replace("%GALLERY_NAME%", $galleryname, $this->thumbcode);
+				
+		return apply_filters('ngg_get_thumbcode', $this->thumbcode, $this);
+	}
+	
+	function get_href_link() {
+		// create the a href link from the picture
+		$this->href  = "\n".'<a href="'.$this->imageURL.'" title="'.htmlspecialchars( stripslashes($this->description) ).'" '.$this->get_thumbcode($this->name).'>'."\n\t";
+		$this->href .= '<img alt="'.$this->alttext.'" src="'.$this->imageURL.'"/>'."\n".'</a>'."\n";
+
+		return $this->href;
+	}
+
+	function get_href_thumb_link() {
+		// create the a href link with the thumbanil
+		$this->href  = "\n".'<a href="'.$this->imageURL.'" title="'.htmlspecialchars( stripslashes($this->description) ).'" '.$this->get_thumbcode($this->name).'>'."\n\t";
+		$this->href .= '<img alt="'.$this->alttext.'" src="'.$this->thumbURL.'"/>'."\n".'</a>'."\n";
+
+		return $this->href;
+	}
+	
+	/**
+	 * This function creates a cache for all singlepics to reduce the CPU load
+	 * 
+	 * @param int $width
+	 * @param int $height
+	 * @param string $mode could be watermark | web20 | crop
+	 * @return the url for the image or false if failed 
+	 */
+	function cached_singlepic_file($width = '', $height = '', $mode = '' ) {
+
+		$ngg_options = get_option('ngg_options');
+		
+		include_once( nggGallery::graphic_library() );
+		
+		// cache filename should be unique
+		$cachename   	= $this->pid . '_' . $mode . '_'. $width . 'x' . $height . '_' . $this->filename;
+		$cachefolder 	= WINABSPATH .$ngg_options['gallerypath'] . 'cache/';
+		$cached_url  	= site_url() . '/' . $ngg_options['gallerypath'] . 'cache/' . $cachename;
+		$cached_file	= $cachefolder . $cachename;
+		
+		// check first for the file
+		if ( file_exists($cached_file) )
+			return $cached_url;
+		
+		// create folder if needed
+		if ( !file_exists($cachefolder) )
+			if ( !wp_mkdir_p($cachefolder) )
+				return false;
+		
+		$thumb = new ngg_Thumbnail($this->imagePath, TRUE);
+		// echo $thumb->errmsg;
+		
+		if (!$thumb->error) {
+            if ($mode == 'crop') {
+        		// calculates the new dimentions for a downsampled image
+                list ( $ratio_w, $ratio_h ) = wp_constrain_dimensions($thumb->currentDimensions['width'], $thumb->currentDimensions['height'], $width, $height);
+                // check ratio to decide which side should be resized
+                ( $ratio_h <  $height || $ratio_w ==  $width ) ? $thumb->resize(0, $height) : $thumb->resize($width, 0);
+                // get the best start postion to crop from the middle    
+                $ypos = ($thumb->currentDimensions['height'] - $height) / 2;
+        		$thumb->crop(0, $ypos, $width, $height);	               
+            } else
+                $thumb->resize($width , $height);
+			
+			if ($mode == 'watermark') {
+				if ($ngg_options['wmType'] == 'image') {
+					$thumb->watermarkImgPath = $ngg_options['wmPath'];
+					$thumb->watermarkImage($ngg_options['wmPos'], $ngg_options['wmXpos'], $ngg_options['wmYpos']); 
+				}
+				if ($ngg_options['wmType'] == 'text') {
+					$thumb->watermarkText = $ngg_options['wmText'];
+					$thumb->watermarkCreateText($ngg_options['wmColor'], $ngg_options['wmFont'], $ngg_options['wmSize'], $ngg_options['wmOpaque']);
+					$thumb->watermarkImage($ngg_options['wmPos'], $ngg_options['wmXpos'], $ngg_options['wmYpos']);  
+				}
+			}
+			
+			if ($mode == 'web20') {
+				$thumb->createReflection(40,40,50,false,'#a4a4a4');
+			}
+			
+			// save the new cache picture
+			$thumb->save($cached_file,$ngg_options['imgQuality']);
+		}
+		$thumb->destruct();
+		
+		// check again for the file
+		if (file_exists($cached_file))
+			return $cached_url;
+		
+		return false;
+	}
+	
+	/**
+	 * Get the tags associated to this image
+	 */
+	function get_tags() {
+		if ( !isset($this->tags) )
+			$this->tags = wp_get_object_terms($this->pid, 'ngg_tag', 'fields=all');
+
+		return $this->tags;
+	}
+	
+	/**
+	 * Get the permalink to the image
+	 * TODO Get a permalink to a page presenting the image
+	 */
+	function get_permalink() {
+		if ($this->permalink == '')
+			$this->permalink = $this->imageURL;
+
+		return $this->permalink; 
+	}
+}
+endif;
+?>
\ No newline at end of file
diff --git a/wp-content/plugins/nextgen-gallery/lib/imagemagick.inc.php b/wp-content/plugins/nextgen-gallery/lib/imagemagick.inc.php
new file mode 100644
index 000000000..ea88d3ed4
--- /dev/null
+++ b/wp-content/plugins/nextgen-gallery/lib/imagemagick.inc.php
@@ -0,0 +1,598 @@
+<?php
+/**
+* imagemagick.inc.php
+*
+* @author 		Frederic De Ranter
+* @copyright	Copyright 2008
+* @version 		0.4 (PHP4)
+* @based 		on thumbnail.inc.php by Ian Selby (gen-x-design.com)
+* @since		NextGEN V1.0.0
+*
+*/
+/**
+* PHP class for dynamically resizing, cropping, and rotating images for thumbnail purposes and either displaying them on-the-fly or saving them.
+* with ImageMagick
+*/
+
+class ngg_Thumbnail {
+/**
+* Error message to display, if any
+* @var string
+*/
+var $errmsg;
+/**
+* Whether or not there is an error
+* @var boolean
+*/
+var $error;
+/**
+* File name and path of the image file
+* @var string
+*/
+var $fileName;
+/**
+* Image meta data if any is available (jpeg/tiff) via the exif library
+* @var array
+*/
+var $imageMeta;
+/**
+* Current dimensions of working image
+* @var array
+*/
+var $currentDimensions;
+/**
+* New dimensions of working image
+* @var array
+*/
+var $newDimensions;
+/**
+* Percentage to resize image b
+* @var int
+* @access private
+*/
+var $percent;
+/**
+* Maximum width of image during resize
+* @var int
+* @access private
+*/
+var $maxWidth;
+/**
+* Maximum height of image during resize
+* @var int
+* @access private
+*/
+var $maxHeight;
+/**
+* Image for Watermark
+* @var string
+*/
+var $watermarkImgPath;
+/**
+* Text for Watermark
+* @var string
+*/
+var $watermarkText;
+/**
+* Path to ImageMagick convert
+* @var string
+*/
+var $imageMagickDir;
+/**
+* String to execute ImageMagick convert.
+* @var string
+*/
+var $imageMagickExec;
+/**
+* String to execute ImageMagick composite.
+* @var string
+*/
+var $imageMagickComp;
+/**
+* String to execute ImageMagick (before the filename).
+* @var string
+*/
+var $imageMagickBefore;
+
+  /*
+   * in: filename, error
+   * out: nothing 
+   * init of class: init of variables, detect needed memory (gd), image format (gd), detect image size (GetImageSize is general PHP, not GD), Image Meta?
+   */
+
+	function ngg_Thumbnail($fileName, $no_ErrorImage = false) {
+		
+		//initialize variables
+      	$this->errmsg				= '';
+      	$this->error				= false;
+      	$this->currentDimensions	= array();
+      	$this->newDimensions		= array();
+      	$this->fileName				= $fileName;
+      	$this->imageMeta			= array();
+      	$this->percent				= 100;
+      	$this->maxWidth				= 0;
+      	$this->maxHeight			= 0;
+      	$this->watermarkImgPath		= '';
+      	$this->watermarkText		= '';
+		$this->imageMagickExec		= '';
+      	$this->imageMagickComp		= '';
+      	$this->imageMagickBefore	= '';
+
+		//make sure ImageMagick is installed
+		$this->checkVersion();
+      
+		//check to see if file exists
+		if(!file_exists($this->fileName)) {
+			$this->errmsg = 'File not found';
+			$this->error = true;
+		}
+		//check to see if file is readable
+		elseif(!is_readable($this->fileName)) {
+			$this->errmsg = 'File is not readable';
+			$this->error = true;
+		}
+
+		if($this->error == false) { 
+	    	$size = GetImageSize($this->fileName);
+      		$this->currentDimensions = array('width'=>$size[0],'height'=>$size[1]);
+	  	}
+	    
+		if($this->error == true) {
+			// for SinglePic send the error message out
+	    	if(!$no_ErrorImage) 
+	    		echo $this->errmsg;
+	    	return;
+	    }
+	}
+
+	function checkVersion() {
+		
+		// very often exec()or passthru() is disabled. No chance for Imagick
+		if ( ini_get('disable_functions') ) {
+			$not_allowed = ini_get('disable_functions');
+			if ( stristr($not_allowed, 'exec') || stristr($not_allowed, 'passthru') ) {
+				$this->errmsg = 'exec() or passthru() is not allowed. Could not execute Imagick';
+				$this->error = true;
+				return false;
+			}
+		}
+		
+		// get the path to imageMagick
+		$ngg_options = get_option('ngg_options');
+		$this->imageMagickDir = trim( $ngg_options['imageMagickDir']);
+		$this->imageMagickDir = str_replace( "\\", "/", $this->imageMagickDir );
+
+		// Try to get the ImageMagick version		
+		$magickv = $this->execute('convert', '-version');
+		
+		if ( empty($magickv) ) {
+			$this->errmsg = 'Could not execute ImageMagick. Check path ';
+			$this->error = true;
+			return false;
+		}
+		
+		// We need as least version 6 or higher	
+		$helper = preg_match('/Version: ImageMagick ([0-9])/', $magickv[0], $magickversion);
+		if ( !$magickversion[0] > '5' ) {
+			$this->errmsg = 'Require ImageMagick Version 6 or higher';
+			$this->error = true;
+			return false;
+		}
+
+      	return true;
+	}
+	
+
+	/**
+     * Execute ImageMagick/GraphicsMagick commands
+     *
+     * @param string $cmd an ImageMagick command (eg. "convert")
+     * @param string $args the arguments which should be passed
+     * @param bool �passthru(optional) output the result to the webserver instead
+     * @return void | if passthru return the image
+     */
+	function execute( $cmd, $args, $passthru = false) {
+		
+		// in error case we do not continue
+		if($this->error == true)
+			return;
+
+		//if path is not empty
+		if ($this->imageMagickDir != '') {
+		// the path must have a slash at the end
+			if ( $this->imageMagickDir{strlen($this->imageMagickDir)-1} != '/')
+		    	$this->imageMagickDir .= '/';
+		}
+	
+		//$args = escapeshellarg($args);
+		//var_dump( escapeshellcmd ( "{$this->imageMagickDir}/{$cmd} {$args}" ) ); return;
+		//$this->errmsg = escapeshellcmd( "{$this->imageMagickDir}{$cmd} {$args}" );
+		
+		if ( !$passthru ) {
+			exec( "{$this->imageMagickDir}{$cmd} {$args}", $result );
+			//var_dump( "{$this->imageMagickDir}/{$cmd} {$args}" );
+			return $result;
+			
+		}
+		//var_dump( escapeshellcmd ( "{$this->imageMagickDir}/{$cmd} {$args}" ) ); return;
+
+		// for single pic we need the direct output
+		header('Content-type: image/jpeg');
+		$this->errmsg = "{$this->imageMagickDir}{$cmd} {$args}";
+		passthru( "{$this->imageMagickDir}{$cmd} {$args}" );
+	}
+
+
+    /**
+     * Must be called to free up allocated memory after all manipulations are done
+     */
+    function destruct() {
+     	//not needed for ImageMagick
+		return;
+    }
+    
+    /**
+     * Returns the current width of the image
+     * @return int
+     */
+    function getCurrentWidth() {
+        return $this->currentDimensions['width'];
+    }
+
+    /**
+     * Returns the current height of the image
+     * @return int
+     */
+    function getCurrentHeight() {
+        return $this->currentDimensions['height'];
+    }
+
+    /**
+     * Calculates new image width
+     * @param int $width
+     * @param int $height
+     * @return array
+     */
+    function calcWidth($width, $height) {
+        $newWp = (100 * $this->maxWidth) / $width;
+        $newHeight = ($height * $newWp) / 100;
+        return array('newWidth'=>intval($this->maxWidth), 'newHeight'=>intval($newHeight));
+    }
+
+    /**
+     * Calculates new image height
+     * @param int $width
+     * @param int $height
+     * @return array
+     */
+    function calcHeight($width, $height) {
+        $newHp = (100 * $this->maxHeight) / $height;
+        $newWidth = ($width * $newHp) / 100;
+        return array('newWidth'=>intval($newWidth), 'newHeight'=>intval($this->maxHeight));
+    }
+
+    /**
+     * Calculates new image size based on percentage
+     * @param int $width
+     * @param int $height
+     * @return array
+     */
+    function calcPercent($width, $height) {
+        $newWidth = ($width * $this->percent) / 100;
+        $newHeight = ($height * $this->percent) / 100;
+        return array('newWidth'=>intval($newWidth), 'newHeight'=>intval($newHeight));
+    }
+
+    /**
+     * Calculates new image size based on width and height, while constraining to maxWidth and maxHeight
+     * @param int $width
+     * @param int $height
+     */
+    function calcImageSize($width,$height) {
+        $newSize = array('newWidth'=>$width,'newHeight'=>$height);
+
+        if($this->maxWidth > 0) {
+
+            $newSize = $this->calcWidth($width,$height);
+
+            if($this->maxHeight > 0 && $newSize['newHeight'] > $this->maxHeight) {
+                $newSize = $this->calcHeight($newSize['newWidth'],$newSize['newHeight']);
+            }
+
+            //$this->newDimensions = $newSize;
+        }
+
+        if($this->maxHeight > 0) {
+            $newSize = $this->calcHeight($width,$height);
+
+            if($this->maxWidth > 0 && $newSize['newWidth'] > $this->maxWidth) {
+                $newSize = $this->calcWidth($newSize['newWidth'],$newSize['newHeight']);
+            }
+
+            //$this->newDimensions = $newSize;
+        }
+
+        $this->newDimensions = $newSize;
+    }
+
+    /**
+     * Calculates new image size based percentage
+     * @param int $width
+     * @param int $height
+     */
+    function calcImageSizePercent($width,$height) {
+        if($this->percent > 0) {
+            $this->newDimensions = $this->calcPercent($width,$height);
+        }
+    }
+
+    /**
+     * Resizes image to maxWidth x maxHeight
+     *
+     * @param int $maxWidth
+     * @param int $maxHeight
+     */
+	  
+	function resize($maxWidth = 0, $maxHeight = 0, $resampleMode = 3) {
+		$this->maxWidth = $maxWidth;
+    	$this->maxHeight = $maxHeight;
+
+    	$this->calcImageSize($this->currentDimensions['width'],$this->currentDimensions['height']);
+
+		//string to resize the picture to $this->newDimensions['newWidth'],$this->newDimensions['newHeight']
+		//should result in: -thumbnail $this->newDimensions['newWidth']x$this->newDimensions['newHeight']
+		if($maxWidth=='0')
+			$this->imageMagickExec .= " -resize x".$maxHeight;
+		elseif($maxHeight=='0')
+			$this->imageMagickExec .= " -resize ".$maxWidth."x";
+		elseif($maxHeight!='0' && $maxWidth!='0')
+			$this->imageMagickExec .= " -resize ".$maxWidth."x".$maxHeight;
+			
+		// next calculations should be done with the 'new' dimensions
+		$this->currentDimensions['width'] = $this->newDimensions['newWidth'];
+		$this->currentDimensions['height'] = $this->newDimensions['newHeight'];
+		
+	}
+
+	/**
+	 * Flip an image.
+	 *
+	 * @param bool $horz flip the image in horizontal mode
+	 * @param bool $vert flip the image in vertical mode
+	 */
+	function flipImage( $horz = false, $vert = false ) {
+		
+		//TODO: need to be added
+
+	}
+	
+	/**
+     * Rotates image either 90 degrees clockwise or counter-clockwise
+     *
+     * @param string $direction
+     */
+	function rotateImage($dir = 'CW') {
+		
+		$angle = ($dir == 'CW') ? 90 : -90;
+
+  		$this->imageMagickExec .= " -rotate $angle ";
+		
+		$newWidth = $this->currentDimensions['height'];
+	   	$newHeight = $this->currentDimensions['width'];
+		$this->currentDimensions['width'] = $newWidth;
+		$this->currentDimensions['height'] = $newHeight;
+	}
+
+   /**
+	 * Crops the image from calculated center in a square of $cropSize pixels
+	 *
+	 * @param int $cropSize
+	 */
+	function cropFromCenter($cropSize, $resampleMode = 3) {
+	   if($cropSize > $this->currentDimensions['width']) $cropSize = $this->currentDimensions['width'];
+	   if($cropSize > $this->currentDimensions['height']) $cropSize = $this->currentDimensions['height'];
+
+	   //$cropX = intval(($this->currentDimensions['width'] - $cropSize) / 2);
+	   //$cropY = intval(($this->currentDimensions['height'] - $cropSize) / 2);
+
+		//string to crop the picture to $cropSize,$cropSize (from center)
+		//result: -gravity Center -crop $cropSizex$cropSize+0+0
+		$this->imageMagickExec .= ' -gravity Center -crop ' . $cropSize . 'x' . $cropSize . '+0+0';
+		
+		// next calculations should be done with the 'new' dimensions
+		$this->currentDimensions['width'] = $cropSize;
+		$this->currentDimensions['height'] = $cropSize;		
+	}
+
+	/**
+	 * Advanced cropping function that crops an image using $startX and $startY as the upper-left hand corner.
+	 *
+	 * @param int $startX
+	 * @param int $startY
+	 * @param int $width
+	 * @param int $height
+	 */
+	function crop($startX,$startY,$width,$height) {
+	    //make sure the cropped area is not greater than the size of the image
+	   if($width > $this->currentDimensions['width']) $width = $this->currentDimensions['width'];
+	   if($height > $this->currentDimensions['height']) $height = $this->currentDimensions['height'];
+	    //make sure not starting outside the image
+	   if(($startX + $width) > $this->currentDimensions['width']) $startX = ($this->currentDimensions['width'] - $width);
+	   if(($startY + $height) > $this->currentDimensions['height']) $startY = ($this->currentDimensions['height'] - $height);
+	   if($startX < 0) $startX = 0;
+	   if($startY < 0) $startY = 0;
+
+		//string to crop the picture to $width,$height (from $startX,$startY)
+		//result: -crop $widthx$height+$startX+$startY
+		$this->imageMagickExec .= ' -crop ' . $width . 'x' . $height . '+' . $startX .'+' . $startY;
+
+		$this->currentDimensions['width'] = $width;
+		$this->currentDimensions['height'] = $height;
+	}
+
+	/**
+	 * Creates Apple-style reflection under image, optionally adding a border to main image
+	 *
+	 * @param int $percent
+	 * @param int $reflection
+	 * @param int $white
+	 * @param bool $border
+	 * @param string $borderColor
+	 */
+	function createReflection($percent, $reflection, $white, $border = true, $borderColor = '#a4a4a4') {
+
+	    $width = $this->currentDimensions['width'];
+	    $height = $this->currentDimensions['height'];
+	
+	    $reflectionHeight = intval($height * ($reflection / 100));
+	    $newHeight = $height + $reflectionHeight;
+	        //$reflectedPart = $height * ((100-$percent) / 100);
+	    $reflectedsize = intval($height * ((100 - (100 - $percent) + $reflection) / 100)); 
+			
+		$this->imageMagickBefore = "-size $width" . "x" ."$newHeight xc:white ";
+			
+		if($border == true) {
+			$this->imageMagickBefore .= " \( ";	 
+			$this->imageMagickExec = " -bordercolor '$borderColor' -border 1 \) ";
+		}
+
+		$this->imageMagickExec .= " -geometry +0+0 -composite ";
+		$gradientWhite = 100-$white;
+		$this->imageMagickExec .= " \( '$this->fileName' -flip -resize $width"."x"."$reflectedsize\! \( -size $width"."x"."$reflectionHeight gradient: -fill black -colorize $gradientWhite \) +matte -compose copy_opacity -composite \) -geometry +0+$height -composite ";
+
+		$this->currentDimensions['width'] = $width;
+		$this->currentDimensions['height'] = $newHeight;
+	}
+	
+	/**
+ 	 * @param string $color
+	 * @param string $wmFont
+	 * @param int $wmSize
+ 	 * @param int $wmOpaque
+     */
+	function watermarkCreateText($color = '000000', $wmFont, $wmSize = 10, $wmOpaque = 90 ){
+		//create a watermark.png image with the requested text.
+		
+		// set font path
+		$wmFontPath = NGGALLERY_ABSPATH . 'fonts/' . $wmFont;
+		if ( !is_readable($wmFontPath) )
+			return;	
+			
+		/*
+		$exec = "convert -size 800x500 xc:grey30 -font $wmFontPath -pointsize $wmSize -gravity center -draw \"fill '#$color$wmOpaque'  text 0,0  '$this->watermarkText'\" stamp_fgnd.png"; 
+		$make_magick = system($exec);
+		$exec = "convert -size 800x500 xc:black -font $wmFontPath -pointsize $wmSize -gravity center -draw \"fill white  text  1,1  '$this->watermarkText'  text  0,0  '$this->watermarkText' fill black  text -1,-1 '$this->watermarkText'\" +matte stamp_mask.png";
+		$make_magick = system($exec);
+		$exec = "composite -compose CopyOpacity  stamp_mask.png  stamp_fgnd.png  watermark.png";*/
+
+		//convert the opacity between FF or 00; 100->0 and 0->FF (256)
+		$opacity = dechex( round( (100-$wmOpaque) * 256/100 ) );
+		if ($opacity == "0") {$opacity = "00";} 
+		
+		$cmd = "-size 800x500 xc:none -fill '#{$color}{$opacity}' -font {$wmFontPath} -pointsize {$wmSize} -gravity center -annotate 0 '{$this->watermarkText}' watermark_text.png";
+		$this->execute('convert', $cmd);
+		
+		$cmd = "-trim +repage watermark_text.png";		 
+		$this->execute('mogrify', $cmd);
+	
+		$this->watermarkImgPath = NGGALLERY_ABSPATH . 'watermark_text.png';
+
+		return;		
+	}
+    
+    /**
+     *
+ 	 * @param string $relPOS
+	 * @param int $xPOS
+ 	 * @param int $yPOS
+     */
+    function watermarkImage( $relPOS = 'botRight', $xPOS = 0, $yPOS = 0) {
+
+		// if it's not a valid file die... 
+		/*if ( !is_readable($this->watermarkImgPath))
+		{
+			echo $this->watermarkImgPath;
+			return;
+		}	*/
+
+		$size = GetImageSize($this->watermarkImgPath);
+    	$watermarkDimensions = array('width'=>$size[0],'height'=>$size[1]);
+		
+		$sourcefile_width=$this->currentDimensions['width'];
+		$sourcefile_height=$this->currentDimensions['height'];
+		
+		$watermarkfile_width=$watermarkDimensions['width'];
+		$watermarkfile_height=$watermarkDimensions['height'];
+
+		switch( substr($relPOS, 0, 3) ){
+			case 'top': $dest_y = 0 + $yPOS; break;
+			case 'mid': $dest_y = ($sourcefile_height / 2) - ($watermarkfile_height / 2); break;
+			case 'bot': $dest_y = $sourcefile_height - $watermarkfile_height - $yPOS; break;
+			default   : $dest_y = 0; break;
+		}
+		switch( substr($relPOS, 3) ){
+			case 'Left'	:	$dest_x = 0 + $xPOS; break;
+			case 'Center':	$dest_x = ($sourcefile_width / 2) - ($watermarkfile_width / 2); break;
+			case 'Right':	$dest_x = $sourcefile_width - $watermarkfile_width - $xPOS; break;
+			default : 		$dest_x = 0; break;
+		}
+		if ($dest_y<0) {
+			$dest_y = $dest_y; 
+		} else { 
+			$dest_y = '+' . $dest_y;
+		}
+		if ($dest_x<0) {
+			$dest_x = $dest_x; 
+		} else { 
+			$dest_x = '+' . $dest_x;
+		}
+		
+		$this->imageMagickComp .=  "'$this->watermarkImgPath' -geometry $dest_x$dest_y  -composite";
+		//" -dissolve 80% -geometry +$dest_x+$dest_y $this->watermarkImgPath";
+	}
+    
+	/**
+	 * Saves image as $name (can include file path), with quality of # percent if file is a jpeg
+	 *
+	 * @param string $name
+	 * @param int $quality
+	 * @return bool errorstate
+	 */
+	function save( $name, $quality = 85 ) {
+	    $this->show($quality,$name);
+	    if ($this->error == true) {
+	    	//$this->errmsg = 'Create Image failed. Check safe mode settings';
+	    	return false;
+	    }
+        
+        if( function_exists('do_action') )
+	       do_action('ngg_ajax_image_save', $name);
+
+	    return true;
+	}
+	    
+	/**
+	 * Outputs the image to the screen, or saves to $name if supplied.  Quality of JPEG images can be controlled with the $quality variable
+	 *
+	 * @param int $quality
+	 * @param string $name
+	 */
+	function show( $quality = 85, $name = '') {
+		//save the image if we get a filename
+		if( $name != '' ) {
+			$args = "{$this->imageMagickBefore} ";
+			$args .= escapeshellarg("$this->fileName");
+			$args .= " $this->imageMagickExec $this->imageMagickComp -quality '$quality' ";
+			$args .= escapeshellarg("$name");
+			//$args = "{$this->imageMagickBefore} '$this->fileName' $this->imageMagickExec $this->imageMagickComp -quality $quality '$name'";
+			$this->execute('convert', $args);
+			//$this->error = true;			
+	  } else {
+	  	//return a raw image stream
+			$args = "{$this->imageMagickBefore} '$this->fileName' $this->imageMagickExec $this->imageMagickComp -quality $quality JPG:-"; 
+			$this->execute('convert', $args, true);
+			$this->error = true;
+		}
+	}
+}
+?>
diff --git a/wp-content/plugins/nextgen-gallery/lib/locale.php b/wp-content/plugins/nextgen-gallery/lib/locale.php
new file mode 100644
index 000000000..7ac2a7b72
--- /dev/null
+++ b/wp-content/plugins/nextgen-gallery/lib/locale.php
@@ -0,0 +1,152 @@
+<?php
+if ( !class_exists('ngg_locale') ) :
+/**
+ * Install locale files from WordPress.org plugin repository
+ * 
+ * @version 1.0.0
+ * @author Alex Rabe
+ * @copyright 2010
+ * @package NextGEN Gallery
+ * @since 1.5.0
+ */
+
+class ngg_locale {
+
+	/**
+     * Current locale
+     *
+     * @var string
+     */
+    var $locale = '';
+
+	/**
+     * Plugin domain name
+     *
+     * @var string
+     */
+    var $domain = 'nggallery';
+
+	/**
+     * URL to the translation files
+     *
+     * @var string
+     */
+    var $remote_locale_url = 'http://nextgen-gallery.googlecode.com/files/';
+
+	/**
+     * Plugin path to the langauage files 
+     *
+     * @var string
+     */
+    var $plugin_locale_path = 'lang';
+
+	/**
+     * Server path to the locale file on the server
+     *
+     * @var string
+     */
+    var $mo_file = '';
+
+	/**
+     * URL to the locale file from the remote server
+     *
+     * @var string
+     */
+    var $mo_url = '';
+    
+	/**
+     * Repsonse code for request
+     *
+     * @var array
+     */
+    var $repsonse = '';
+
+    /**
+     * PHP4 compatibility layer for calling the PHP5 constructor.
+     * 
+     */
+    function install_locale() {
+        return $this->__construct();
+    }
+
+    /**
+     * Init the Database Abstraction layer for NextGEN Gallery
+     * 
+     */ 
+    function __construct() {
+    	$this->plugin_locale_path = NGGALLERY_ABSPATH . 'lang/';
+    	$this->locale = get_locale();
+
+    	$this->mo_file = trailingslashit($this->plugin_locale_path) . $this->domain . '-' . $this->locale . '.mo';
+		$this->mo_url  = trailingslashit($this->remote_locale_url) . $this->domain . '-' . $this->locale . '.mo';
+    }
+    
+	/**
+	 * This functions checks if a translation is at wp.org available
+	 * Please note, if a language file is already loaded it exits as well
+	 *
+	 * @return string result of check ( default | installed | not_exist | available )
+	 */
+    function check() {
+    	
+    	// we do not need to check for translation if you use english
+    	if ( ($this->locale == 'en_US') )
+    		return 'default';
+		
+		$this->response = wp_remote_get($this->mo_url, array('timeout' => 300));
+    		
+    	// if a language file exist, do not load it again
+		if ( is_readable( $this->mo_file ) ) 
+			return 'installed';
+
+		// if no translation file exists exit the check
+		if ( is_wp_error($this->response) || $this->response['response']['code'] != '200' )
+			return 'not_exist';
+		
+		return 'available';		
+    }
+
+	/**
+	 * Downloads a locale to the plugin folder using the WordPress HTTP Class.
+	 *
+	 * @author taken from WP core 
+	 * @return mixed WP_Error on failure, true on success.
+	 */
+	function download_locale() {
+		
+		$url = $this->mo_url;
+
+		if ( ! $url )
+			return new WP_Error('http_no_url', __('Invalid URL Provided.'));
+	
+		$filename = $this->mo_file;
+		if ( ! $filename )
+			return new WP_Error('http_no_file', __('Could not create Temporary file.'));
+	
+		$handle = @fopen($filename, 'wb');
+		if ( ! $handle )
+			return new WP_Error('http_no_file', __('Could not create Temporary file.'));
+	
+		$response = wp_remote_get($url, array('timeout' => 300));
+
+		if ( is_wp_error($response) ) {
+			fclose($handle);
+			unlink($filename);
+			return $response;
+		}
+	
+		if ( $response['response']['code'] != '200' ){
+			fclose($handle);
+			unlink($filename);
+			return new WP_Error('http_404', trim($response['response']['message']));
+		}
+	
+		fwrite($handle, $response['body']);
+		fclose($handle);
+	
+		return true;
+	}
+
+}
+endif;
+?>
\ No newline at end of file
diff --git a/wp-content/plugins/nextgen-gallery/lib/media-rss.php b/wp-content/plugins/nextgen-gallery/lib/media-rss.php
new file mode 100644
index 000000000..954ac1e00
--- /dev/null
+++ b/wp-content/plugins/nextgen-gallery/lib/media-rss.php
@@ -0,0 +1,248 @@
+<?php
+/**
+* Class to produce Media RSS nodes
+* 
+* @author 		Vincent Prat
+* @copyright 	Copyright 2008
+*/
+class nggMediaRss {
+	
+	/**
+	 * Function called by the wp_head action to output the RSS link for medias
+	 */
+	function add_mrss_alternate_link() {
+		echo "<link id='MediaRSS' rel='alternate' type='application/rss+xml' title='NextGEN Gallery RSS Feed' href='" . nggMediaRss::get_mrss_url() . "' />\n";		
+	}
+	
+	/**
+	 * Add the javascript required to enable PicLens/CoolIris support 
+	 */
+	function add_piclens_javascript() {
+		echo "\n" . '<!-- NextGeEN Gallery CoolIris/PicLens support -->';
+        if (is_ssl())
+		  echo "\n" . '<script type="text/javascript" src="https://lite.piclens.com/current/piclens_optimized.js"></script>';
+		else
+            echo "\n" . '<script type="text/javascript" src="http://lite.piclens.com/current/piclens_optimized.js"></script>';
+        echo "\n" . '<!-- /NextGEN Gallery CoolIris/PicLens support -->';
+	}
+	
+	/**
+	 * Get the URL of the general media RSS
+	 */
+	function get_mrss_url() {	
+		return NGGALLERY_URLPATH . 'xml/media-rss.php';
+	}
+	
+	/**
+	 * Get the URL of a gallery media RSS
+	 */
+	function get_gallery_mrss_url($gid, $prev_next = false) {		
+		return nggMediaRss::get_mrss_url() . '?' . ('gid=' . $gid . ($prev_next ? '&prev_next=true' : '') . '&mode=gallery');
+	}
+	
+	/**
+	 * Get the URL of an album media RSS
+	 */
+	function get_album_mrss_url($aid) {		
+		return nggMediaRss::get_mrss_url() . '?' . ('aid=' . $aid . '&mode=album');
+	}
+	
+	/**
+	 * Get the URL of the media RSS for last pictures
+	 */
+	function get_last_pictures_mrss_url($page = 0, $show = 30) {		
+		return nggMediaRss::get_mrss_url() . '?' . ('show=' . $show . '&page=' . $page . '&mode=last_pictures');
+	}
+	
+	/**
+	 * Get the XML <rss> node corresponding to the last pictures registered
+	 *
+	 * @param page The current page (defaults to 0)
+	 * @param show The number of pictures to include in one field (default 30) 
+	 */
+	function get_last_pictures_mrss($page = 0, $show = 30) {
+		$images = nggdb::find_last_images($page, $show);
+		
+		$title = stripslashes(get_option('blogname'));
+		$description = stripslashes(get_option('blogdescription'));
+		$link = site_url();
+		$prev_link = ($page > 0) ? nggMediaRss::get_last_pictures_mrss_url($page-1, $show) : '';
+		$next_link = count($images)!=0 ? nggMediaRss::get_last_pictures_mrss_url($page+1, $show) : '';
+		
+		return nggMediaRss::get_mrss_root_node($title, $description, $link, $prev_link, $next_link, $images);
+	}
+	
+	/**
+	 * Get the XML <rss> node corresponding to a gallery
+	 *
+	 * @param $gallery (object) The gallery to include in RSS
+	 * @param $prev_gallery (object) The previous gallery to link in RSS (null if none)
+	 * @param $next_gallery (object) The next gallery to link in RSS (null if none)
+	 */
+	function get_gallery_mrss($gallery, $prev_gallery = null, $next_gallery = null) {
+		
+		$ngg_options = nggGallery::get_option('ngg_options');
+		//Set sort order value, if not used (upgrade issue)
+		$ngg_options['galSort'] = ($ngg_options['galSort']) ? $ngg_options['galSort'] : 'pid';
+		$ngg_options['galSortDir'] = ($ngg_options['galSortDir'] == 'DESC') ? 'DESC' : 'ASC';
+	
+		$title = stripslashes(nggGallery::i18n($gallery->title));
+		$description = stripslashes(nggGallery::i18n($gallery->galdesc));
+		$link = nggMediaRss::get_permalink($gallery->pageid);
+		$prev_link = ( $prev_gallery != null) ? nggMediaRss::get_gallery_mrss_url($prev_gallery->gid, true) : '';
+		$next_link = ( $next_gallery != null) ? nggMediaRss::get_gallery_mrss_url($next_gallery->gid, true) : '';
+		$images = nggdb::get_gallery($gallery->gid, $ngg_options['galSort'], $ngg_options['galSortDir']);
+
+		return nggMediaRss::get_mrss_root_node($title, $description, $link, $prev_link, $next_link, $images);
+	}
+	
+	/**
+	 * Get the XML <rss> node corresponding to an album
+	 *
+	 * @param $album The album to include in RSS
+	 */
+	function get_album_mrss($album) {
+
+		$title = stripslashes(nggGallery::i18n($album->name));
+		$description = '';
+		$link = nggMediaRss::get_permalink(0);
+		$prev_link = '';
+		$next_link = '';
+		$images = nggdb::find_images_in_album($album->id);
+		
+		return nggMediaRss::get_mrss_root_node($title, $description, $link, $prev_link, $next_link, $images);
+	}
+	
+	/**
+	 * Get the XML <rss> node
+	 */
+	function get_mrss_root_node($title, $description, $link, $prev_link, $next_link, $images) {	
+		
+		if ($prev_link != '' || $next_link != '')
+			$out = "<rss version='2.0' xmlns:media='http://search.yahoo.com/mrss/' xmlns:atom='http://www.w3.org/2005/Atom'>\n" ;
+		else
+			$out = "<rss version='2.0' xmlns:media='http://search.yahoo.com/mrss/'>\n";
+		
+		$out .= "\t<channel>\n";
+		
+		$out .= nggMediaRss::get_generator_mrss_node();
+		$out .= nggMediaRss::get_title_mrss_node($title);
+		$out .= nggMediaRss::get_description_mrss_node($description);
+		$out .= nggMediaRss::get_link_mrss_node($link);
+		
+        if ($prev_link != '' || $next_link != '')
+        	$out .= nggMediaRss::get_self_node(nggMediaRss::get_mrss_url());	
+		if ($prev_link!='') {
+			$out .= nggMediaRss::get_previous_link_mrss_node($prev_link);
+		}
+		if ($next_link!='') { 
+			$out .= nggMediaRss::get_next_link_mrss_node($next_link);
+		} 
+		
+		foreach ($images as $image) {
+			$out .= nggMediaRss::get_image_mrss_node($image);
+		}
+		
+		$out .= "\t</channel>\n";
+		$out .= "</rss>\n";
+		
+		return $out;
+	}	
+	
+	/**
+	 * Get the XML <generator> node
+	 */
+	function get_generator_mrss_node($indent = "\t\t") {	
+		return $indent . "<generator><![CDATA[NextGEN Gallery [http://nextgen-gallery.com]]]></generator>\n";
+	}	
+	
+	/**
+	 * Get the XML <title> node
+	 */
+	function get_title_mrss_node($title, $indent = "\t\t") {	
+		return $indent . "<title>" . $title . "</title>\n";
+	}	
+	
+	/**
+	 * Get the XML <description> node
+	 */
+	function get_description_mrss_node($description, $indent = "\t\t") {	
+		return $indent . "<description>" . $description . "</description>\n";
+	}	
+	
+	/**
+	 * Get the XML <link> node
+	 */
+	function get_link_mrss_node($link, $indent = "\t\t") {	
+		return $indent . "<link><![CDATA[" . htmlspecialchars($link) . "]]></link>\n";
+	}	
+
+	/**
+	 * Get the XML <atom:link self> node
+	 */
+	function get_self_node($link, $indent = "\t\t") {
+		return $indent . "<atom:link rel='self' href='" . htmlspecialchars($link) . "' type='application/rss+xml' />\n";
+	}
+	
+	/**
+	 * Get the XML <atom:link previous> node
+	 */
+	function get_previous_link_mrss_node($link, $indent = "\t\t") {	
+		return $indent . "<atom:link rel='previous' href='" . htmlspecialchars($link) . "' />\n";
+	}	
+	
+	/**
+	 * Get the XML <atom:link next> node
+	 */
+	function get_next_link_mrss_node($link, $indent = "\t\t") {	
+		return $indent . "<atom:link rel='next' href='" . htmlspecialchars($link) . "' />\n";
+	}	
+	
+	/**
+	 * Get the XML <item> node corresponding to one single image
+	 *
+	 * @param $image The image object
+	 */
+	function get_image_mrss_node($image, $indent = "\t\t" ) {		
+		$ngg_options = nggGallery::get_option('ngg_options');
+		
+		$tags = $image->get_tags();
+		$tag_names = '';
+		foreach ($tags as $tag) {
+			$tag_names .= ($tag_names=='' ? $tag->name : ', ' . $tag->name);
+		}
+		
+		$title = html_entity_decode(stripslashes($image->alttext));
+		$desc = html_entity_decode(stripslashes($image->description));
+		
+		$thumbwidth = $ngg_options['thumbwidth'];
+		$thumbheight = ($ngg_options['thumbfix'] ? $ngg_options['thumbheight'] : $thumbwidth); 	
+		
+		$out  = $indent . "<item>\n";
+		$out .= $indent . "\t<title><![CDATA[" . nggGallery::i18n($title) . "]]></title>\n";
+		$out .= $indent . "\t<description><![CDATA[" . nggGallery::i18n($desc) . "]]></description>\n";
+		$out .= $indent . "\t<link><![CDATA[" . $image->get_permalink() . "]]></link>\n";
+        $out .= $indent . "\t<guid>image-id:" . $image->pid . "</guid>\n";
+		$out .= $indent . "\t<media:content url='" . esc_url($image->imageURL) . "' medium='image' />\n";
+		$out .= $indent . "\t<media:title><![CDATA[" . nggGallery::i18n($title) . "]]></media:title>\n";
+		$out .= $indent . "\t<media:description><![CDATA[" . nggGallery::i18n($desc) . "]]></media:description>\n";
+		$out .= $indent . "\t<media:thumbnail url='" . esc_url($image->thumbURL) . "' width='" . $thumbwidth . "' height='" . $thumbheight . "' />\n";
+		$out .= $indent . "\t<media:keywords><![CDATA[" . nggGallery::i18n($tag_names) . "]]></media:keywords>\n";
+		$out .= $indent . "\t<media:copyright><![CDATA[Copyright (c) " . get_option("blogname") . " (" . site_url() . ")]]></media:copyright>\n";
+		$out .= $indent . "</item>\n";
+
+		return $out;
+	}
+	
+	function get_permalink($page_id) {		 
+		if ($page_id == 0)	
+			$permalink = site_url();		 
+		else 
+			$permalink = get_permalink($page_id);
+				 
+		return $permalink;		 
+	}	
+		
+}
+
+?>
\ No newline at end of file
diff --git a/wp-content/plugins/nextgen-gallery/lib/meta.php b/wp-content/plugins/nextgen-gallery/lib/meta.php
new file mode 100644
index 000000000..93a5c566a
--- /dev/null
+++ b/wp-content/plugins/nextgen-gallery/lib/meta.php
@@ -0,0 +1,540 @@
+<?php
+
+/**
+ * Image METADATA PHP class for the WordPress plugin NextGEN Gallery
+ * nggmeta.lib.php
+ * 
+ * @author 		Alex Rabe 
+ * @copyright 	Copyright 2007-2009
+ * 
+ */
+	  
+class nggMeta{
+
+	/**** Image Data ****/
+    var $image			=	'';		// The image object
+    var $size			=	false;	// The image size
+	var $exif_data 		= 	false;	// EXIF data array
+	var $iptc_data 		= 	false;	// IPTC data array
+	var $xmp_data  		= 	false;	// XMP data array
+	/**** Filtered Data ****/
+	var $exif_array 	= 	false;	// EXIF data array
+	var $iptc_array 	= 	false;	// IPTC data array
+	var $xmp_array  	= 	false;	// XMP data array
+
+ 	/**
+ 	 * nggMeta::nggMeta()
+ 	 * 
+ 	 * @param int $image path to a image
+ 	 * @param bool $onlyEXIF parse only exif if needed
+ 	 * @return
+ 	 */
+ 	function nggMeta($pic_id, $onlyEXIF = false) {
+ 		
+		//get the path and other data about the image
+		$this->image = nggdb::find_image( $pic_id );
+ 
+ 		$this->image = apply_filters( 'ngg_find_image_meta', $this->image  );		
+ 
+ 		if ( !file_exists( $this->image->imagePath ) )
+			return false;
+
+ 		$this->size = @getimagesize ( $this->image->imagePath , $metadata );
+
+		if ($this->size && is_array($metadata)) {
+
+			// get exif - data
+			if ( is_callable('exif_read_data'))
+			$this->exif_data = @exif_read_data($this->image->imagePath , 0, true );
+ 			
+ 			// stop here if we didn't need other meta data
+ 			if ($onlyEXIF)
+ 				return true;
+ 			
+ 			// get the iptc data - should be in APP13
+ 			if ( is_callable('iptcparse'))
+			$this->iptc_data = @iptcparse($metadata["APP13"]);
+
+			// get the xmp data in a XML format
+			if ( is_callable('xml_parser_create'))
+			$this->xmp_data = $this->extract_XMP($this->image->imagePath );
+						
+			return true;
+		}
+ 		
+ 		return false;
+ 	}
+	
+	/**
+	 * return the saved meta data from the database
+	 * 
+	 * @since 1.4.0
+	 * @param string $object (optional)
+	 * @return array|mixed return either the complete array or the single object
+	 */
+	function get_saved_meta($object = false) {
+		
+		$meta = $this->image->meta_data;
+		
+		//check if we already import the meta data to the database
+		if (!is_array($meta) || ($meta['saved'] != true))
+			return false;
+		
+		// return one element if requested	
+		if ($object)
+			return $meta[$object];
+		
+		//removed saved parameter we don't need that to show
+		unset($meta['saved']);
+		
+		// and remove empty tags
+		foreach ($meta as $key => $value) {
+			if ( empty($value) )
+				unset($meta[$key]);	
+		}
+		
+		return $meta;
+	}
+	
+  /**
+   * nggMeta::get_EXIF()
+   * See also http://trac.wordpress.org/changeset/6313
+   *
+   * @return structured EXIF data
+   */
+	function get_EXIF($object = false) {
+		
+		if ( !$this->exif_data )
+			return false;
+		
+		if (!is_array($this->exif_array)){
+                
+			$meta= array();
+            
+            if ( isset($this->exif_data['EXIF']) ) {   
+                $exif = $this->exif_data['EXIF'];
+                
+    			if (!empty($exif['FNumber']))
+    				$meta['aperture'] = 'F ' . round( $this->exif_frac2dec( $exif['FNumber'] ), 2 );
+    			if (!empty($exif['Model']))
+    				$meta['camera'] = trim( $exif['Model'] );
+    			if (!empty($exif['DateTimeDigitized']))
+    				$meta['created_timestamp'] = date_i18n(get_option('date_format') . ' ' . get_option('time_format'), $this->exif_date2ts($exif['DateTimeDigitized']));
+    			if (!empty($exif['FocalLength']))
+    				$meta['focal_length'] = $this->exif_frac2dec( $exif['FocalLength'] ) . __(' mm','nggallery');
+    			if (!empty($exif['ISOSpeedRatings']))
+    				$meta['iso'] = $exif['ISOSpeedRatings'];
+    			if (!empty($exif['ExposureTime'])) {
+    				 $meta['shutter_speed']  = $this->exif_frac2dec ($exif['ExposureTime']);
+    				 $meta['shutter_speed']  =($meta['shutter_speed'] > 0.0 and $meta['shutter_speed'] < 1.0) ? ( '1/' . round( 1 / $meta['shutter_speed'], -1) ) : ($meta['shutter_speed']); 
+    				 $meta['shutter_speed'] .=  __(' sec','nggallery');
+    				}
+    			//Bit 0 indicates the flash firing status
+    			if (!empty($exif['Flash']))
+    				$meta['flash'] =  ( $exif['Flash'] & 1 ) ? __('Fired', 'nggallery') : __('Not fired',' nggallery');
+            }
+            
+			// additional information
+            if ( isset($this->exif_data['IFD0']) ) {  
+    			$exif = $this->exif_data['IFD0'];
+                
+    			if (!empty($exif['Model']))
+    				$meta['camera'] = $exif['Model'];
+    			if (!empty($exif['Make']))
+    				$meta['make'] = $exif['Make'];
+    			if (!empty($exif['ImageDescription']))
+    				$meta['title'] = utf8_encode($exif['ImageDescription']);
+    			if (!empty($exif['Orientation']))
+    				$meta['Orientation'] = $exif['Orientation'];
+            }
+            
+			// this is done by Windows
+            if ( isset($this->exif_data['WINXP']) ) {
+                $exif = $this->exif_data['WINXP'];
+
+    			if (!empty($exif['Title']) && empty($meta['title']))
+    				$meta['title'] = utf8_encode($exif['Title']);
+    			if (!empty($exif['Author']))
+    				$meta['author'] = utf8_encode($exif['Author']);
+    			if (!empty($exif['Keywords']))
+    				$meta['tags'] = utf8_encode($exif['Keywords']);
+    			if (!empty($exif['Subject']))
+    				$meta['subject'] = utf8_encode($exif['Subject']);
+    			if (!empty($exif['Comments']))
+    				$meta['caption'] = utf8_encode($exif['Comments']);
+            }
+							
+			$this->exif_array = $meta;
+		}
+		
+		// return one element if requested	
+		if ( $object == true ) {
+		  $value = isset($this->exif_array[$object]) ? $this->exif_array[$object] : false;
+          return $value;
+		}
+				
+		return $this->exif_array;
+	
+	}
+	
+	// convert a fraction string to a decimal
+	function exif_frac2dec($str) {
+		@list( $n, $d ) = explode( '/', $str );
+		if ( !empty($d) )
+			return $n / $d;
+		return $str;
+	}
+	
+	// convert the exif date format to a unix timestamp
+	function exif_date2ts($str) {
+		// seriously, who formats a date like 'YYYY:MM:DD hh:mm:ss'?
+		@list( $date, $time ) = explode( ' ', trim($str) );
+		@list( $y, $m, $d ) = explode( ':', $date );
+	
+		return strtotime( "{$y}-{$m}-{$d} {$time}" );
+	}
+	
+  /**
+   * nggMeta::readIPTC() - IPTC Data Information for EXIF Display
+   *
+   * @param mixed $output_tag
+   * @return IPTC-tags
+   */
+	function get_IPTC($object = false) {
+	
+	if (!$this->iptc_data)
+		return false;
+
+	if (!is_array($this->iptc_array)){
+	
+		// --------- Set up Array Functions --------- //
+			$iptcTags = array (
+				"2#005" => 'title',
+				"2#007" => 'status',
+				"2#012" => 'subject',
+				"2#015" => 'category',
+				"2#025" => 'keywords',
+				"2#055" => 'created_date',
+				"2#060" => 'created_time',
+				"2#080" => 'author',
+				"2#085" => 'position',
+				"2#090" => 'city',
+				"2#092" => 'location',
+				"2#095" => 'state',
+				"2#100" => 'country_code',
+				"2#101" => 'country',
+				"2#105" => 'headline',
+				"2#110" => 'credit',
+				"2#115" => 'source',
+				"2#116" => 'copyright',
+				"2#118" => 'contact',
+				"2#120" => 'caption'
+			);
+			
+			// var_dump($this->iptc_data);
+			$meta = array();
+			foreach ($iptcTags as $key => $value) {
+				if ($this->iptc_data[$key])
+					$meta[$value] = trim(utf8_encode(implode(", ", $this->iptc_data[$key])));
+	
+			}
+			$this->iptc_array = $meta;
+		}
+		
+		// return one element if requested	
+		if ($object)
+			return $this->iptc_array[$object];			
+		
+		return $this->iptc_array;
+	}
+
+  /**
+   * nggMeta::extract_XMP()
+   * get XMP DATA  
+   * code by Pekka Saarinen http://photography-on-the.net	
+   *
+   * @param mixed $filename
+   * @return XML data
+   */
+	function extract_XMP( $filename ) {
+
+		//TODO:Require a lot of memory, could be better
+		ob_start();
+		@readfile($filename);
+    	$source = ob_get_contents();
+    	ob_end_clean();
+
+		$start = strpos( $source, "<x:xmpmeta"   );
+		$end   = strpos( $source, "</x:xmpmeta>" );
+		if ((!$start === false) && (!$end === false)) {
+			$lenght = $end - $start;
+			$xmp_data = substr($source, $start, $lenght+12 );
+			unset($source);
+			return $xmp_data;
+		} 
+		
+		unset($source);
+		return false;
+	}
+
+	/**
+	 * nggMeta::get_XMP()
+	 *
+	 * @package Taken from http://php.net/manual/en/function.xml-parse-into-struct.php
+	 * @author Alf Marius Foss Olsen & Alex Rabe
+	 * @return XML Array or object
+	 *
+	 */
+	function get_XMP($object = false) {
+   
+		if(!$this->xmp_data)
+			return false;
+			
+		if (!is_array($this->xmp_array)){ 
+			
+			$parser = xml_parser_create();
+			xml_parser_set_option($parser, XML_OPTION_CASE_FOLDING, 0); // Dont mess with my cAsE sEtTings
+			xml_parser_set_option($parser, XML_OPTION_SKIP_WHITE, 1); // Dont bother with empty info
+			xml_parse_into_struct($parser, $this->xmp_data, $values);
+			xml_parser_free($parser);
+			  
+			$xmlarray			= array();	// The XML array
+			$this->xmp_array  	= array();	// The returned array
+			$stack        		= array();	// tmp array used for stacking
+		 	$list_array   		= array();	// tmp array for list elements
+		 	$list_element 		= false;	// rdf:li indicator
+		 	  
+			foreach($values as $val) {
+				
+			  	if($val['type'] == "open") {
+			      	array_push($stack, $val['tag']);
+			      	
+			    } elseif($val['type'] == "close") {
+			    	// reset the compared stack
+			    	if ($list_element == false)
+			      		array_pop($stack);
+			      	// reset the rdf:li indicator & array
+			      	$list_element = false;
+			      	$list_array   = array();
+			      	
+			    } elseif($val['type'] == "complete") {
+					if ($val['tag'] == "rdf:li") {
+						// first go one element back
+						if ($list_element == false)
+							array_pop($stack);
+						$list_element = true;
+                        // do not parse empty tags
+                        if ( empty($val['value']) ) continue;                             
+					    // save it in our temp array
+   						$list_array[] = $val['value']; 
+						// in the case it's a list element we seralize it
+						$value = implode(",", $list_array);
+						$this->setArrayValue($xmlarray, $stack, $value);
+			      	} else {
+			      		array_push($stack, $val['tag']);
+                        // do not parse empty tags
+                        if ( !empty($val['value']) )
+                            $this->setArrayValue($xmlarray, $stack, $val['value']);
+			      		array_pop($stack);
+			      	}
+			    }
+			    
+			} // foreach
+            
+            // don't parse a empty array
+            if( empty($xmlarray) || empty($xmlarray['x:xmpmeta']) )
+                return false;
+			
+            // cut off the useless tags
+			$xmlarray = $xmlarray['x:xmpmeta']['rdf:RDF']['rdf:Description'];
+			  
+			// --------- Some values from the XMP format--------- //
+			$xmpTags = array (
+				'xap:CreateDate' 			=> 'created_timestamp',
+				'xap:ModifyDate'  			=> 'last_modfied',
+				'xap:CreatorTool' 			=> 'tool',
+				'dc:format' 				=> 'format',
+				'dc:title'					=> 'title',
+				'dc:creator' 				=> 'author',
+				'dc:subject' 				=> 'keywords',
+				'dc:description' 			=> 'caption',
+				'photoshop:AuthorsPosition' => 'position',
+				'photoshop:City'			=> 'city',
+				'photoshop:Country' 		=> 'country'
+			);
+
+			foreach ($xmpTags as $key => $value) {
+				// if the kex exist
+				if ( isset($xmlarray[$key]) ) {
+					switch ($key) {
+						case 'xap:CreateDate':
+						case 'xap:ModifyDate':
+							$this->xmp_array[$value] = date_i18n(get_option('date_format').' '.get_option('time_format'), strtotime($xmlarray[$key]));
+							break;				
+						default :
+							$this->xmp_array[$value] = $xmlarray[$key];
+					}
+				}
+			}
+			
+		}
+		
+		// return one element if requested	
+		if ($object)
+			return $this->xmp_array[$object];		 
+		
+		return $this->xmp_array;
+	}
+	  
+	function setArrayValue(&$array, $stack, $value) {
+		if ($stack) {
+			$key = array_shift($stack);
+            $this->setArrayValue($array[$key], $stack, $value);
+	    	return $array;
+	  	} else {
+	    	$array = $value;
+	  	}
+	}
+	
+  /**
+   * nggMeta::get_META() - return a meta value form the available list 
+   *
+   * @param string $object
+   * @return mixed $value
+   */
+	function get_META($object = false) {
+		
+		// defined order first look into database, then XMP, IPTC and EXIF.
+		if ($value = $this->get_saved_meta($object))
+			return $value;
+		if ($value = $this->get_XMP($object))
+			return $value;
+		if ($value = $this->get_IPTC($object))
+			return $value;
+		if ($value = $this->get_EXIF($object))
+			return $value;
+		
+		// nothing found ?
+		return false;
+	}
+	
+  /**
+   * nggMeta::i8n_name() -  localize the tag name
+   *
+   * @param mixed $key
+   * @return translated $key
+   */
+	function i8n_name($key) {
+		
+		$tagnames = array(
+		'aperture' 			=> __('Aperture','nggallery'),
+		'credit' 			=> __('Credit','nggallery'),
+		'camera' 			=> __('Camera','nggallery'),
+		'caption' 			=> __('Caption','nggallery'),
+		'created_timestamp' => __('Date/Time','nggallery'),
+		'copyright' 		=> __('Copyright','nggallery'),
+		'focal_length' 		=> __('Focal length','nggallery'),
+		'iso' 				=> __('ISO','nggallery'),
+		'shutter_speed' 	=> __('Shutter speed','nggallery'),
+		'title' 			=> __('Title','nggallery'),
+		'author' 			=> __('Author','nggallery'),
+		'tags' 				=> __('Tags','nggallery'),
+		'subject' 			=> __('Subject','nggallery'),
+		'make' 				=> __('Make','nggallery'),
+		'status' 			=> __('Edit Status','nggallery'),
+		'category'			=> __('Category','nggallery'),
+		'keywords' 			=> __('Keywords','nggallery'),
+		'created_date' 		=> __('Date Created','nggallery'),
+		'created_time'		=> __('Time Created','nggallery'),
+		'position'			=> __('Author Position','nggallery'),
+		'city'				=> __('City','nggallery'),
+		'location'			=> __('Location','nggallery'),
+		'state' 			=> __('Province/State','nggallery'),
+		'country_code'		=> __('Country code','nggallery'),
+		'country'			=> __('Country','nggallery'),
+		'headline' 			=> __('Headline','nggallery'),
+		'credit'			=> __('Credit','nggallery'),
+		'source'			=> __('Source','nggallery'),
+		'copyright'			=> __('Copyright Notice','nggallery'),
+		'contact'			=> __('Contact','nggallery'),
+		'last_modfied'		=> __('Last modified','nggallery'),
+		'tool'				=> __('Program tool','nggallery'),
+		'format'			=> __('Format','nggallery'),
+		'width'				=> __('Image Width','nggallery'),
+		'height'			=> __('Image Height','nggallery'),
+		'flash'				=> __('Flash','nggallery')
+		);
+
+		if ( isset($tagnames[$key]) ) 
+            $key = $tagnames[$key];
+		
+		return($key);
+
+	}	
+
+	function get_date_time() {
+
+		// get exif - data
+		if ( $this->exif_data ) {
+			$date_time = $this->exif_data['EXIF']['DateTimeDigitized'];
+			// if we didn't get the correct exif value we take filetime
+			if ($date_time == null)
+				$date_time = $this->exif_data['FILE']['FileDateTime'];
+			else
+				$date_time = $this->exif_date2ts($date_time);
+		} else {
+			// if no other date available, get the filetime
+			$date_time = @filectime($this->image->imagePath );	
+		}
+		
+		// Return the MySQL format 
+		$date_time = date( 'Y-m-d H:i:s', $date_time );
+
+		return $date_time;
+	}
+	
+	/**
+	 * This function return the most common metadata, via a filter we can add more
+	 * Reason : GD manipulation removes that options
+	 * 
+	 * @since V1.4.0
+	 * @return void
+	 */
+	function get_common_meta() {
+		global $wpdb;
+		
+		$meta = array(
+			'aperture' => 0,
+			'credit' => '',
+			'camera' => '',
+			'caption' => '',
+			'created_timestamp' => 0,
+			'copyright' => '',
+			'focal_length' => 0,
+			'iso' => 0,
+			'shutter_speed' => 0,
+			'flash' => 0,
+			'title' => '',
+			'keywords' => ''
+		);
+				
+		$meta = apply_filters( 'ngg_read_image_metadata', $meta  );
+		
+		// meta should be still an array
+		if ( !is_array($meta) )
+			return false;
+		
+		foreach ($meta as $key => $value) {
+			$meta[$key] = $this->get_META($key);			
+		}
+		
+		//let's add now the size of the image 
+		$meta['width']  = $this->size[0];
+		$meta['height'] = $this->size[1];
+		
+		return $meta;		
+	}
+
+}
+
+?>
\ No newline at end of file
diff --git a/wp-content/plugins/nextgen-gallery/lib/multisite.php b/wp-content/plugins/nextgen-gallery/lib/multisite.php
new file mode 100644
index 000000000..35bc58107
--- /dev/null
+++ b/wp-content/plugins/nextgen-gallery/lib/multisite.php
@@ -0,0 +1,57 @@
+<?php
+/**
+* Main PHP Class for Multisite setup
+* 
+* @author 		Alex Rabe 
+* @copyright 	Copyright 2010
+* 
+*/
+class nggWPMU{
+
+	/**
+	 * Check the Quota under WPMU. Only needed for this case
+	 * 
+	 * @class nggWPMU
+	 * @return bool $result
+	 */
+	function check_quota() {
+        	if ( get_site_option( 'upload_space_check_disabled' ) )
+        		return false;
+
+			if ( (is_multisite()) && nggWPMU::wpmu_enable_function('wpmuQuotaCheck'))
+				if( $error = upload_is_user_over_quota( false ) ) {
+					nggGallery::show_error( __( 'Sorry, you have used your space allocation. Please delete some files to upload more files.','nggallery' ) );
+					return true;
+				}
+			return false;
+	}
+    
+    /**
+     * Check for site admin
+     * 
+     * @return
+     */
+    function wpmu_site_admin() {
+
+    	if ( function_exists('is_super_admin') )
+    		if ( is_super_admin() )
+    			return true;
+    			
+    	return false;
+    }
+
+    /**
+     * Check for site wide options
+     * 
+     * @param string $value
+     * @return value
+     */
+    function wpmu_enable_function($value) {
+    	if (is_multisite()) {
+    		$ngg_options = get_site_option('ngg_options');
+    		return $ngg_options[$value];
+    	}
+    	// if this is not WPMU, enable it !
+    	return true;
+    }    
+}
\ No newline at end of file
diff --git a/wp-content/plugins/nextgen-gallery/lib/navigation.php b/wp-content/plugins/nextgen-gallery/lib/navigation.php
new file mode 100644
index 000000000..940762966
--- /dev/null
+++ b/wp-content/plugins/nextgen-gallery/lib/navigation.php
@@ -0,0 +1,117 @@
+<?php
+/**
+ * nggNavigation - PHP class for the pagination
+ * 
+ * @package NextGEN Gallery
+ * @author Alex Rabe 
+ * @copyright 2009
+ * @version 1.0.0
+ * @access public
+ */
+class nggNavigation {
+
+	/**
+	 * Return the navigation output
+	 *
+	 * @access public
+	 * @var string
+	 */
+	var $output = false;
+
+	/**
+	 * Link to previous page
+	 *
+	 * @access public
+	 * @var string
+	 */
+	var $prev = false;
+
+	/**
+	 * Link to next page
+	 *
+	 * @access public
+	 * @var string
+	 */
+	var $next = false;
+
+	/**
+	 * PHP4 compatibility layer for calling the PHP5 constructor.
+	 * 
+	 */
+	function nggNavigation() {
+		return $this->__construct();
+	}
+
+	/**
+	 * Main constructor - Does nothing.
+	 * Call create_navigation() method when you need a navigation.
+	 * 
+	 */	
+	function __construct() {
+		return;		
+	}
+
+	/**
+	 * nggNavigation::create_navigation()
+	 * 
+	 * @param mixed $page
+	 * @param integer $totalElement 
+	 * @param integer $maxElement
+	 * @return string pagination content
+	 */
+	function create_navigation($page, $totalElement, $maxElement = 0) {
+		global $nggRewrite;
+		
+		if ($maxElement > 0) {
+			$total = $totalElement;
+			
+			// create navigation	
+			if ( $total > $maxElement ) {
+				$total_pages = ceil( $total / $maxElement );
+				$r = '';
+				if ( 1 < $page ) {
+					$args['nggpage'] = ( 1 == $page - 1 ) ? FALSE : $page - 1;
+					$previous = $args['nggpage'];
+					if (FALSE == $args['nggpage']) {
+						$previous = 1; 
+					}
+					$this->prev = $nggRewrite->get_permalink ( $args );
+					$r .=  '<a class="prev" id="ngg-prev-' . $previous . '" href="' . $this->prev . '">&#9668;</a>';
+				}
+				
+				$total_pages = ceil( $total / $maxElement );
+				
+				if ( $total_pages > 1 ) {
+					for ( $page_num = 1; $page_num <= $total_pages; $page_num++ ) {
+						if ( $page == $page_num ) {
+							$r .=  '<span>' . $page_num . '</span>';
+						} else {
+							$p = false;
+							if ( $page_num < 3 || ( $page_num >= $page - 3 && $page_num <= $page + 3 ) || $page_num > $total_pages - 3 ) {
+								$args['nggpage'] = ( 1 == $page_num ) ? FALSE : $page_num;
+								$r .= '<a class="page-numbers" href="' . $nggRewrite->get_permalink( $args ) . '">' . ( $page_num ) . '</a>';
+								$in = true;
+							} elseif ( $in == true ) {
+								$r .= '<span>...</span>';
+								$in = false;
+							}
+						}
+					}
+				}
+				
+				if ( ( $page ) * $maxElement < $total || -1 == $total ) {
+					$args['nggpage'] = $page + 1;
+					$this->next = $nggRewrite->get_permalink ( $args );
+					$r .=  '<a class="next" id="ngg-next-' . $args['nggpage'] . '" href="' . $this->next . '">&#9658;</a>';
+				}
+				
+				$this->output = "<div class='ngg-navigation'>$r</div>";
+			} else {
+				$this->output = "<div class='ngg-clear'></div>"."\n";
+			}
+		}
+		
+		return $this->output;
+	}
+}
+?>
\ No newline at end of file
diff --git a/wp-content/plugins/nextgen-gallery/lib/ngg-db.php b/wp-content/plugins/nextgen-gallery/lib/ngg-db.php
new file mode 100644
index 000000000..0b4b0b022
--- /dev/null
+++ b/wp-content/plugins/nextgen-gallery/lib/ngg-db.php
@@ -0,0 +1,1100 @@
+<?php
+if ( !class_exists('nggdb') ) :
+/**
+ * NextGEN Gallery Database Class
+ * 
+ * @author Alex Rabe, Vincent Prat
+ * @copyright 2008-2011
+ * @since 1.0.0
+ */
+class nggdb {
+    
+    /**
+     * Holds the list of all galleries
+     *
+     * @since 1.1.0
+     * @access public
+     * @var object|array
+     */
+    var $galleries = false;
+
+    /**
+     * Holds the list of all images
+     *
+     * @since 1.3.0
+     * @access public
+     * @var object|array
+     */
+    var $images = false;
+
+    /**
+     * Holds the list of all albums
+     *
+     * @since 1.3.0
+     * @access public
+     * @var object|array
+     */
+    var $albums = false;
+    
+    /**
+     * The array for the pagination
+     *
+     * @since 1.1.0
+     * @access public
+     * @var array
+     */
+    var $paged = false;
+    
+    /**
+     * PHP4 compatibility layer for calling the PHP5 constructor.
+     * 
+     */
+    function nggdb() {
+        return $this->__construct();
+    }
+
+    /**
+     * Init the Database Abstraction layer for NextGEN Gallery
+     * 
+     */ 
+    function __construct() {
+        global $wpdb;
+        
+        $this->galleries = array();
+        $this->images    = array();
+        $this->albums    = array();
+        $this->paged     = array();
+        
+        register_shutdown_function(array(&$this, '__destruct'));
+        
+    }
+    
+    /**
+     * PHP5 style destructor and will run when database object is destroyed.
+     *
+     * @return bool Always true
+     */
+    function __destruct() {
+        return true;
+    }   
+
+    /**
+     * Get all the album and unserialize the content
+     * 
+     * @since 1.3.0
+     * @param string $order_by
+     * @param string $order_dir
+     * @param int $limit number of albums, 0 shows all albums
+     * @param int $start the start index for paged albums
+     * @return array $album
+     */
+    function find_all_album( $order_by = 'id', $order_dir = 'ASC', $limit = 0, $start = 0) {    
+        global $wpdb; 
+        
+        $order_dir = ( $order_dir == 'DESC') ? 'DESC' : 'ASC';
+        $limit_by  = ( $limit > 0 ) ? 'LIMIT ' . intval($start) . ',' . intval($limit) : '';
+        $this->albums = $wpdb->get_results("SELECT * FROM $wpdb->nggalbum ORDER BY {$order_by} {$order_dir} {$limit_by}" , OBJECT_K );
+        
+        if ( !$this->albums )
+            return array();
+        
+        foreach ($this->albums as $key => $value) {
+            $this->albums[$key]->galleries = empty ($this->albums[$key]->sortorder) ? array() : (array) unserialize($this->albums[$key]->sortorder)  ;
+            $this->albums[$key]->name = stripslashes( $this->albums[$key]->name ); 
+            $this->albums[$key]->albumdesc = stripslashes( $this->albums[$key]->albumdesc );
+            wp_cache_add($key, $this->albums[$key], 'ngg_album'); 
+        }
+        
+        return $this->albums;
+    }
+
+    /**
+     * Get all the galleries
+     * 
+     * @param string $order_by
+     * @param string $order_dir
+     * @param bool $counter (optional) Select true  when you need to count the images
+     * @param int $limit number of paged galleries, 0 shows all galleries
+     * @param int $start the start index for paged galleries
+     * @param bool $exclude
+     * @return array $galleries
+     */
+    function find_all_galleries($order_by = 'gid', $order_dir = 'ASC', $counter = false, $limit = 0, $start = 0, $exclude = true) {      
+        global $wpdb; 
+        
+        // Check for the exclude setting
+        $exclude_clause = ($exclude) ? ' AND exclude<>1 ' : '';
+        $order_dir = ( $order_dir == 'DESC') ? 'DESC' : 'ASC';
+        $limit_by  = ( $limit > 0 ) ? 'LIMIT ' . intval($start) . ',' . intval($limit) : '';
+        $this->galleries = $wpdb->get_results( "SELECT SQL_CALC_FOUND_ROWS * FROM $wpdb->nggallery ORDER BY {$order_by} {$order_dir} {$limit_by}", OBJECT_K );
+        
+        // Count the number of galleries and calculate the pagination
+        if ($limit > 0) {
+            $this->paged['total_objects'] = intval ( $wpdb->get_var( "SELECT FOUND_ROWS()" ) );
+            $this->paged['objects_per_page'] = max ( count( $this->galleries ), $limit );
+            $this->paged['max_objects_per_page'] = ( $limit > 0 ) ? ceil( $this->paged['total_objects'] / intval($limit)) : 1;
+        }
+        
+        if ( !$this->galleries )
+            return array();
+        
+        // get the galleries information    
+        foreach ($this->galleries as $key => $value) {
+            $galleriesID[] = $key;
+            // init the counter values
+            $this->galleries[$key]->counter = 0;
+            $this->galleries[$key]->title = stripslashes($this->galleries[$key]->title);
+            $this->galleries[$key]->galdesc  = stripslashes($this->galleries[$key]->galdesc);
+            wp_cache_add($key, $this->galleries[$key], 'ngg_gallery');      
+        }
+
+        // if we didn't need to count the images then stop here
+        if ( !$counter )
+            return $this->galleries;
+        
+        // get the counter values   
+        $picturesCounter = $wpdb->get_results('SELECT galleryid, COUNT(*) as counter FROM '.$wpdb->nggpictures.' WHERE galleryid IN (\''.implode('\',\'', $galleriesID).'\') ' . $exclude_clause . ' GROUP BY galleryid', OBJECT_K);
+
+        if ( !$picturesCounter )
+            return $this->galleries;
+        
+        // add the counter to the gallery objekt    
+        foreach ($picturesCounter as $key => $value) {
+            $this->galleries[$value->galleryid]->counter = $value->counter;
+            wp_cache_add($value->galleryid, $this->galleries[$value->galleryid], 'ngg_gallery');
+        }
+        
+        return $this->galleries;
+    }
+    
+    /**
+     * Get a gallery given its ID
+     * 
+     * @param int|string $id or $name
+     * @return A nggGallery object (null if not found)
+     */
+    function find_gallery( $id ) {      
+        global $wpdb;
+        
+        if( is_numeric($id) ) {
+            
+            if ( $gallery = wp_cache_get($id, 'ngg_gallery') )
+                return $gallery;
+            
+            $gallery = $wpdb->get_row( $wpdb->prepare( "SELECT * FROM $wpdb->nggallery WHERE gid = %d", $id ) );
+
+        } else
+            $gallery = $wpdb->get_row( $wpdb->prepare( "SELECT * FROM $wpdb->nggallery WHERE name = %s", $id ) );
+        
+        // Build the object from the query result
+        if ($gallery) {
+            // it was a bad idea to use a object, stripslashes_deep() could not used here, learn from it
+            $gallery->title = stripslashes($gallery->title);
+            $gallery->galdesc  = stripslashes($gallery->galdesc);
+            
+            $gallery->abspath = WINABSPATH . $gallery->path;
+            //TODO:Possible failure , $id could be a number or name
+            wp_cache_add($id, $gallery, 'ngg_gallery');
+            
+            return $gallery;            
+        } else 
+            return false;
+    }
+    
+    /**
+     * This function return all information about the gallery and the images inside
+     * 
+     * @param int|string $id or $name
+     * @param string $order_by 
+     * @param string $order_dir (ASC |DESC)
+     * @param bool $exclude
+     * @param int $limit number of paged galleries, 0 shows all galleries
+     * @param int $start the start index for paged galleries
+     * @param bool $json remove the key for associative array in json request
+     * @return An array containing the nggImage objects representing the images in the gallery.
+     */
+    function get_gallery($id, $order_by = 'sortorder', $order_dir = 'ASC', $exclude = true, $limit = 0, $start = 0, $json = false) {
+
+        global $wpdb;
+
+        // init the gallery as empty array
+        $gallery = array();
+        $i = 0;
+        
+        // Check for the exclude setting
+        $exclude_clause = ($exclude) ? ' AND tt.exclude<>1 ' : '';
+        
+        // Say no to any other value
+        $order_dir = ( $order_dir == 'DESC') ? 'DESC' : 'ASC';
+        $order_by  = ( empty($order_by) ) ? 'sortorder' : $order_by;
+        
+        // Should we limit this query ?
+        $limit_by  = ( $limit > 0 ) ? 'LIMIT ' . intval($start) . ',' . intval($limit) : '';
+        
+        // Query database
+        if( is_numeric($id) )
+            $result = $wpdb->get_results( $wpdb->prepare( "SELECT SQL_CALC_FOUND_ROWS tt.*, t.* FROM $wpdb->nggallery AS t INNER JOIN $wpdb->nggpictures AS tt ON t.gid = tt.galleryid WHERE t.gid = %d {$exclude_clause} ORDER BY tt.{$order_by} {$order_dir} {$limit_by}", $id ), OBJECT_K );
+        else
+            $result = $wpdb->get_results( $wpdb->prepare( "SELECT SQL_CALC_FOUND_ROWS tt.*, t.* FROM $wpdb->nggallery AS t INNER JOIN $wpdb->nggpictures AS tt ON t.gid = tt.galleryid WHERE t.name = %s {$exclude_clause} ORDER BY tt.{$order_by} {$order_dir} {$limit_by}", $id ), OBJECT_K );
+
+        // Count the number of images and calculate the pagination
+        if ($limit > 0) {
+            $this->paged['total_objects'] = intval ( $wpdb->get_var( "SELECT FOUND_ROWS()" ) );
+            $this->paged['objects_per_page'] = max ( count( $result ), $limit );
+            $this->paged['max_objects_per_page'] = ( $limit > 0 ) ? ceil( $this->paged['total_objects'] / intval($limit)) : 1;
+        }
+        
+        // Build the object
+        if ($result) {
+                
+            // Now added all image data
+            foreach ($result as $key => $value) {
+                // due to a browser bug we need to remove the key for associative array for json request 
+                // (see http://code.google.com/p/chromium/issues/detail?id=883)
+                if ($json) $key = $i++;               
+                $gallery[$key] = new nggImage( $value );
+            }
+        }
+        
+        // Could not add to cache, the structure is different to find_gallery() cache_add, need rework
+        //wp_cache_add($id, $gallery, 'ngg_gallery');
+
+        return $gallery;        
+    }
+    
+    /**
+     * This function return all information about the gallery and the images inside
+     * 
+     * @param int|string $id or $name
+     * @param string $orderby 
+     * @param string $order (ASC |DESC)
+     * @param bool $exclude
+     * @return An array containing the nggImage objects representing the images in the gallery.
+     */
+    function get_ids_from_gallery($id, $order_by = 'sortorder', $order_dir = 'ASC', $exclude = true) {
+
+        global $wpdb;
+        
+        // Check for the exclude setting
+        $exclude_clause = ($exclude) ? ' AND tt.exclude<>1 ' : '';
+        
+        // Say no to any other value
+        $order_dir = ( $order_dir == 'DESC') ? 'DESC' : 'ASC';      
+        $order_by  = ( empty($order_by) ) ? 'sortorder' : $order_by;
+                
+        // Query database
+        if( is_numeric($id) )
+            $result = $wpdb->get_col( $wpdb->prepare( "SELECT tt.pid FROM $wpdb->nggallery AS t INNER JOIN $wpdb->nggpictures AS tt ON t.gid = tt.galleryid WHERE t.gid = %d $exclude_clause ORDER BY tt.{$order_by} $order_dir", $id ) );
+        else
+            $result = $wpdb->get_col( $wpdb->prepare( "SELECT tt.pid FROM $wpdb->nggallery AS t INNER JOIN $wpdb->nggpictures AS tt ON t.gid = tt.galleryid WHERE t.name = %s $exclude_clause ORDER BY tt.{$order_by} $order_dir", $id ) );
+
+        return $result;     
+    }   
+    
+    /**
+     * Delete a gallery AND all the pictures associated to this gallery!
+     * 
+     * @id The gallery ID
+     */
+    function delete_gallery( $id ) {        
+        global $wpdb;
+                
+        $wpdb->query( $wpdb->prepare( "DELETE FROM $wpdb->nggpictures WHERE galleryid = %d", $id) );
+        $wpdb->query( $wpdb->prepare( "DELETE FROM $wpdb->nggallery WHERE gid = %d", $id) );
+        
+        wp_cache_delete($id, 'ngg_gallery');
+        
+        //TODO:Remove all tag relationship
+        return true;
+    }
+
+    /**
+     * Get an album given its ID
+     * 
+     * @id The album ID or name
+     * @return A nggGallery object (false if not found)
+     */
+    function find_album( $id ) {        
+        global $wpdb;
+        
+        if ( $album = wp_cache_get($id, 'ngg_album') )
+            return $album;
+        
+        // Query database
+        if ( is_numeric($id) && $id != 0 ) {
+            $album = $wpdb->get_row( $wpdb->prepare( "SELECT * FROM $wpdb->nggalbum WHERE id = %d", $id) );
+        } elseif ( $id == 'all' || (is_numeric($id) && $id == 0) ) {
+            // init the object and fill it
+            $album = new stdClass();
+            $album->id = 'all';
+            $album->name = __('Album overview','nggallery');
+            $album->albumdesc  = __('Album overview','nggallery');
+            $album->previewpic = 0;
+            $album->sortorder  =  serialize( $wpdb->get_col("SELECT gid FROM $wpdb->nggallery") );
+        } else {
+            $album = $wpdb->get_row( $wpdb->prepare( "SELECT * FROM $wpdb->nggalbum WHERE name = '%s'", $id) );
+        }
+        
+        // Unserialize the galleries inside the album
+        if ( $album ) {
+            if ( !empty( $album->sortorder ) ) 
+                $album->gallery_ids = unserialize( $album->sortorder );
+            
+            // it was a bad idea to use a object, stripslashes_deep() could not used here, learn from it
+            $album->albumdesc  = stripslashes($album->albumdesc);
+            $album->name       = stripslashes($album->name);
+            
+            wp_cache_add($id, $album, 'ngg_album');     
+            return $album;
+        } 
+        
+        return false;
+    }
+    
+    /**
+     * Delete an album
+     * 
+     * @id The album ID
+     */
+    function delete_album( $id ) {      
+        global $wpdb;
+                
+        $result = $wpdb->query( $wpdb->prepare( "DELETE FROM $wpdb->nggalbum WHERE id = %d", $id) );
+        wp_cache_delete($id, 'ngg_album');
+        
+        return $result;
+    }
+
+    /**
+     * Insert an image in the database
+     * 
+     * @return the ID of the inserted image
+     */
+    function insert_image($gid, $filename, $alttext, $desc, $exclude) {
+        global $wpdb;
+        
+        $result = $wpdb->query(
+              "INSERT INTO $wpdb->nggpictures (galleryid, filename, description, alttext, exclude) VALUES "
+            . "('$gid', '$filename', '$desc', '$alttext', '$exclude');");
+        $pid = (int) $wpdb->insert_id;
+        wp_cache_delete($gid, 'ngg_gallery');
+        
+        return $pid;
+    }
+
+    /**
+     * nggdb::update_image() - Update an image in the database
+     * 
+     * @param int $pid   id of the image
+     * @param (optional) string|int $galleryid
+     * @param (optional) string $filename
+     * @param (optional) string $description
+     * @param (optional) string $alttext
+     * @param (optional) int $exclude (0 or 1)
+     * @param (optional) int $sortorder
+     * @return bool result of update query
+     */
+    function update_image($pid, $galleryid = false, $filename = false, $description = false, $alttext = false, $exclude = false, $sortorder = false) {
+
+        global $wpdb;
+        
+        $sql = array();
+        $pid = (int) $pid;
+        
+        // slug must be unique, we use the alttext for that        
+        $slug = nggdb::get_unique_slug( sanitize_title( $alttext ), 'image' );
+        
+        $update = array(
+            'image_slug'  => $slug,
+            'galleryid'   => $galleryid,
+            'filename'    => $filename,
+            'description' => $description,
+            'alttext'     => $alttext,
+            'exclude'     => $exclude,
+            'sortorder'   => $sortorder);
+        
+        // create the sql parameter "name = value"
+        foreach ($update as $key => $value)
+            if ($value)
+                $sql[] = $key . " = '" . $value . "'";
+        
+        // create the final string
+        $sql = implode(', ', $sql);
+        
+        if ( !empty($sql) && $pid != 0)
+            $result = $wpdb->query( "UPDATE $wpdb->nggpictures SET $sql WHERE pid = $pid" );
+        
+        wp_cache_delete($pid, 'ngg_image'); 
+
+        return $result;
+    }
+ 
+     /**
+     * nggdb::update_gallery() - Update an gallery in the database
+     * 
+     * @since V1.7.0
+     * @param int $id   id of the gallery
+     * @param (optional) string $title or name of the gallery
+     * @param (optional) string $path
+     * @param (optional) string $description
+     * @param (optional) int $pageid
+     * @param (optional) int $previewpic
+     * @param (optional) int $author 
+     * @return bool result of update query
+     */
+    function update_gallery($id, $name = false, $path = false, $title = false, $description = false, $pageid = false, $previewpic = false, $author = false) {
+
+        global $wpdb;
+        
+        $sql = array();
+        $id = (int) $id;
+        
+        // slug must be unique, we use the title for that        
+        $slug = nggdb::get_unique_slug( sanitize_title( $title ), 'gallery' );
+        
+        $update = array(
+            'name'       => $name,
+            'slug'       => $slug,
+            'path'       => $path,
+            'title'      => $title,
+            'galdesc'    => $description,
+            'pageid'     => $pageid,
+            'previewpic' => $previewpic,
+            'author'     => $author);
+        
+        // create the sql parameter "name = value"
+        foreach ($update as $key => $value)
+            if ($value)
+                $sql[] = $key . " = '" . $value . "'";
+        
+        // create the final string
+        $sql = implode(', ', $sql);
+        
+        if ( !empty($sql) && $id != 0)
+            $result = $wpdb->query( "UPDATE $wpdb->nggallery SET $sql WHERE gid = $id" );
+        
+        wp_cache_delete($id, 'ngg_gallery'); 
+
+        return $result;
+    }
+
+     /**
+     * nggdb::update_album() - Update an album in the database
+     * 
+     * @since V1.7.0
+     * @param int $ id   id of the album
+     * @param (optional) string $title
+     * @param (optional) int $previewpic
+     * @param (optional) string $description
+     * @param (optional) serialized array $sortorder 
+     * @param (optional) int $pageid
+     * @return bool result of update query
+     */
+    function update_album($id, $name = false, $previewpic = false, $description = false, $sortorder = false, $pageid = false ) {
+
+        global $wpdb;
+        
+        $sql = array();
+        $id = (int) $id;
+        
+        // slug must be unique, we use the title for that        
+        $slug = nggdb::get_unique_slug( sanitize_title( $name ), 'album' );
+        
+        $update = array(
+            'name'       => $name,
+            'slug'       => $slug,
+            'previewpic' => $previewpic,
+            'albumdesc'  => $description,
+            'sortorder'  => $sortorder,
+            'pageid'     => $pageid);
+        
+        // create the sql parameter "name = value"
+        foreach ($update as $key => $value)
+            if ($value)
+                $sql[] = $key . " = '" . $value . "'";
+        
+        // create the final string
+        $sql = implode(', ', $sql);
+        
+        if ( !empty($sql) && $id != 0)
+            $result = $wpdb->query( "UPDATE $wpdb->nggalbum SET $sql WHERE id = $id" );
+        
+        wp_cache_delete($id, 'ngg_album');
+
+        return $result;
+    }
+    
+    /**
+     * Get an image given its ID
+     * 
+     * @param int $id The image ID
+     * @return object A nggImage object representing the image (false if not found)
+     */
+    function find_image( $id ) {
+        global $wpdb;
+        
+        if ( $image = wp_cache_get($id, 'ngg_image') )
+            return $image;
+        
+        $result = $wpdb->get_row( $wpdb->prepare( "SELECT tt.*, t.* FROM $wpdb->nggallery AS t INNER JOIN $wpdb->nggpictures AS tt ON t.gid = tt.galleryid WHERE tt.pid = %d ", $id ) );
+        
+        // Build the object from the query result
+        if ($result) {
+            $image = new nggImage($result);
+            return $image;
+        } 
+                
+        return false;
+    }
+    
+    /**
+     * Get images given a list of IDs 
+     * 
+     * @param $pids array of picture_ids
+     * @return An array of nggImage objects representing the images
+     */
+    function find_images_in_list( $pids, $exclude = false, $order = 'ASC' ) {
+        global $wpdb;
+    
+        $result = array();
+        
+        // Check for the exclude setting
+        $exclude_clause = ($exclude) ? ' AND t.exclude <> 1 ' : '';
+
+        // Check for the exclude setting
+        $order_clause = ($order == 'RAND') ? 'ORDER BY rand() ' : ' ORDER BY t.pid ASC' ;
+        
+        if ( is_array($pids) ) {
+            $id_list = "'" . implode("', '", $pids) . "'";
+            
+            // Save Query database
+            $images = $wpdb->get_results("SELECT t.*, tt.* FROM $wpdb->nggpictures AS t INNER JOIN $wpdb->nggallery AS tt ON t.galleryid = tt.gid WHERE t.pid IN ($id_list) $exclude_clause $order_clause", OBJECT_K);
+    
+            // Build the image objects from the query result
+            if ($images) {  
+                foreach ($images as $key => $image) 
+                    $result[$key] = new nggImage( $image );
+            } 
+        }
+        return $result;
+    }
+
+    /**
+    * Add an image to the database
+    * 
+	* @since V1.4.0
+	* @param int $pid   id of the gallery
+    * @param (optional) string|int $galleryid
+    * @param (optional) string $filename
+    * @param (optional) string $description
+    * @param (optional) string $alttext
+    * @param (optional) array $meta data
+    * @param (optional) int $post_id (required for sync with WP media lib)
+    * @param (optional) string $imagedate
+    * @param (optional) int $exclude (0 or 1)
+    * @param (optional) int $sortorder
+    * @return bool result of the ID of the inserted image
+    */
+    function add_image( $id = false, $filename = false, $description = '', $alttext = '', $meta_data = false, $post_id = 0, $imagedate = '0000-00-00 00:00:00', $exclude = 0, $sortorder = 0  ) {
+        global $wpdb;
+                
+		if ( is_array($meta_data) )
+			$meta_data = serialize($meta_data);
+
+        // slug must be unique, we use the alttext for that        
+        $slug = nggdb::get_unique_slug( sanitize_title( $alttext ), 'image' );
+
+		// Add the image
+		if ( false === $wpdb->query( $wpdb->prepare("INSERT INTO $wpdb->nggpictures (image_slug, galleryid, filename, description, alttext, meta_data, post_id, imagedate, exclude, sortorder) 
+													 VALUES (%s, %d, %s, %s, %s, %s, %d, %s, %d, %d)", $slug, $id, $filename, $description, $alttext, $meta_data, $post_id, $imagedate, $exclude, $sortorder ) ) ) {
+			return false;
+		}
+		
+		$imageID = (int) $wpdb->insert_id;
+			
+		// Remove from cache the galley, needs to be rebuild now
+	    wp_cache_delete( $id, 'ngg_gallery');
+         
+		//and give me the new id		
+		return $imageID;
+    }
+    
+    /**
+    * Add an album to the database
+    * 
+	* @since V1.7.0
+    * @param (optional) string $title
+    * @param (optional) int $previewpic
+    * @param (optional) string $description
+    * @param (optional) serialized array $sortorder 
+    * @param (optional) int $pageid
+    * @return bool result of the ID of the inserted album
+    */
+    function add_album( $name = false, $previewpic = 0, $description = '', $sortorder = 0, $pageid = 0  ) {
+        global $wpdb;
+       
+        // name must be unique, we use the title for that        
+        $slug = nggdb::get_unique_slug( sanitize_title( $name ), 'album' );
+			
+		// Add the album
+		if ( false === $wpdb->query( $wpdb->prepare("INSERT INTO $wpdb->nggalbum (name, slug, previewpic, albumdesc, sortorder, pageid) 
+													 VALUES (%s, %s, %d, %s, %s, %d)", $name, $slug, $previewpic, $description, $sortorder, $pageid ) ) ) {
+			return false;
+		}
+		
+		$albumID = (int) $wpdb->insert_id;
+         
+		//and give me the new id		
+		return $albumID;
+    }
+
+    /**
+    * Add an gallery to the database
+    * 
+	* @since V1.7.0
+    * @param (optional) string $title or name of the gallery
+    * @param (optional) string $path
+    * @param (optional) string $description
+    * @param (optional) int $pageid
+    * @param (optional) int $previewpic
+    * @param (optional) int $author 
+    * @return bool result of the ID of the inserted gallery
+    */
+    function add_gallery( $title = '', $path = '', $description = '', $pageid = 0, $previewpic = 0, $author = 0  ) {
+        global $wpdb;
+       
+        // slug must be unique, we use the title for that        
+        $slug = nggdb::get_unique_slug( sanitize_title( $title ), 'gallery' );
+		
+        // Note : The field 'name' is deprecated, it's currently kept only for compat reason with older shortcodes, we copy the slug into this field
+		if ( false === $wpdb->query( $wpdb->prepare("INSERT INTO $wpdb->nggallery (name, slug, path, title, galdesc, pageid, previewpic, author) 
+													 VALUES (%s, %s, %s, %s, %s, %d, %d, %d)", $slug, $slug, $path, $title, $description, $pageid, $previewpic, $author ) ) ) {
+			return false;
+		}
+		
+		$galleryID = (int) $wpdb->insert_id;
+         
+		//and give me the new id		
+		return $galleryID;
+    }
+    
+    /**
+    * Delete an image entry from the database
+    * @param integer $id is the Image ID
+    */
+    function delete_image( $id ) {
+        global $wpdb;
+        
+        // Delete the image
+        $result = $wpdb->query( $wpdb->prepare( "DELETE FROM $wpdb->nggpictures WHERE pid = %d", $id) );
+        
+        // Delete tag references
+        wp_delete_object_term_relationships( $id, 'ngg_tag');
+        
+        // Remove from cache
+        wp_cache_delete( $id, 'ngg_image'); 
+        
+        return $result;
+    }
+    
+    /**
+     * Get the last images registered in the database with a maximum number of $limit results
+     * 
+     * @param integer $page start offset as page number (0,1,2,3,4...)
+     * @param integer $limit the number of result
+     * @param bool $exclude do not show exluded images
+     * @param int $galleryId Only look for images with this gallery id, or in all galleries if id is 0
+     * @param string $orderby is one of "id" (default, order by pid), "date" (order by exif date), sort (order by user sort order)
+     * @return
+     */
+    function find_last_images($page = 0, $limit = 30, $exclude = true, $galleryId = 0, $orderby = "id") {
+        global $wpdb;
+        
+        // Check for the exclude setting
+        $exclude_clause = ($exclude) ? ' AND exclude<>1 ' : '';
+        
+        // a limit of 0 makes no sense
+        $limit = ($limit == 0) ? 30 : $limit;
+        // calculate the offset based on the pagr number
+        $offset = (int) $page * $limit;
+        
+        $galleryId = (int) $galleryId;
+        $gallery_clause = ($galleryId === 0) ? '' : ' AND galleryid = ' . $galleryId . ' ';
+
+        // default order by pid
+        $order = 'pid DESC';
+        switch ($orderby) {
+            case 'date':
+                $order = 'imagedate DESC';
+                break;
+            case 'sort':
+                $order = 'sortorder ASC';
+                break;
+        }
+        
+        $result = array();
+        $gallery_cache = array();
+        
+        // Query database
+        $images = $wpdb->get_results("SELECT * FROM $wpdb->nggpictures WHERE 1=1 $exclude_clause $gallery_clause ORDER BY $order LIMIT $offset, $limit");
+        
+        // Build the object from the query result
+        if ($images) {  
+            foreach ($images as $key => $image) {
+                
+                // cache a gallery , so we didn't need to lookup twice
+                if (!array_key_exists($image->galleryid, $gallery_cache))
+                    $gallery_cache[$image->galleryid] = nggdb::find_gallery($image->galleryid);
+                
+                // Join gallery information with picture information    
+                foreach ($gallery_cache[$image->galleryid] as $index => $value)
+                    $image->$index = $value;
+                
+                // Now get the complete image data
+                $result[$key] = new nggImage( $image );
+            }
+        }
+        
+        return $result;
+    }
+    
+    /**
+     * nggdb::get_random_images() - Get an random image from one ore more gally
+     * 
+     * @param integer $number of images
+     * @param integer $galleryID optional a Gallery
+     * @return A nggImage object representing the image (null if not found)
+     */
+    function get_random_images($number = 1, $galleryID = 0) {
+        global $wpdb;
+        
+        $number = (int) $number;
+        $galleryID = (int) $galleryID;
+        $images = array();
+        
+        // Query database
+        if ($galleryID == 0)
+            $result = $wpdb->get_results("SELECT t.*, tt.* FROM $wpdb->nggallery AS t INNER JOIN $wpdb->nggpictures AS tt ON t.gid = tt.galleryid WHERE tt.exclude != 1 ORDER by rand() limit $number");
+        else
+            $result = $wpdb->get_results("SELECT t.*, tt.* FROM $wpdb->nggallery AS t INNER JOIN $wpdb->nggpictures AS tt ON t.gid = tt.galleryid WHERE t.gid = $galleryID AND tt.exclude != 1 ORDER by rand() limit {$number}");
+        
+        // Return the object from the query result
+        if ($result) {
+            foreach ($result as $image) {
+                $images[] = new nggImage( $image );
+            }
+            return $images;
+        } 
+            
+        return null;
+    }
+
+    /**
+     * Get all the images from a given album
+     * 
+     * @param object|int $album The album object or the id  
+     * @param string $order_by
+     * @param string $order_dir
+     * @param bool $exclude
+     * @return An array containing the nggImage objects representing the images in the album.
+     */
+    function find_images_in_album($album, $order_by = 'galleryid', $order_dir = 'ASC', $exclude = true) {        
+        global $wpdb;
+        
+        if ( !is_object($album) )
+            $album = nggdb::find_album( $album );
+
+        // Get gallery list      
+        $gallery_list = implode(',', $album->gallery_ids);       
+        // Check for the exclude setting
+        $exclude_clause = ($exclude) ? ' AND tt.exclude<>1 ' : '';
+
+        // Say no to any other value
+        $order_dir = ( $order_dir == 'DESC') ? 'DESC' : 'ASC';      
+        $order_by  = ( empty($order_by) ) ? 'galleryid' : $order_by;
+        
+        $result = $wpdb->get_results("SELECT t.*, tt.* FROM $wpdb->nggallery AS t INNER JOIN $wpdb->nggpictures AS tt ON t.gid = tt.galleryid WHERE tt.galleryid IN ($gallery_list) $exclude_clause ORDER BY tt.$order_by $order_dir");      
+        // Return the object from the query result
+        if ($result) {
+            foreach ($result as $image) {
+                $images[] = new nggImage( $image );
+            }
+            return $images;
+        } 
+
+        return null;     
+    }
+
+    /**
+     * search for images and return the result
+     * 
+     * @since 1.3.0
+     * @param string $request
+     * @param int $limit number of results, 0 shows all results
+     * @return Array Result of the request
+     */
+    function search_for_images( $request, $limit = 0 ) {
+        global $wpdb;
+        
+        // If a search pattern is specified, load the posts that match
+        if ( !empty($request) ) {
+            // added slashes screw with quote grouping when done early, so done later
+            $request = stripslashes($request);
+            
+            // split the words it a array if seperated by a space or comma
+            preg_match_all('/".*?("|$)|((?<=[\\s",+])|^)[^\\s",+]+/', $request, $matches);
+            $search_terms = array_map(create_function('$a', 'return trim($a, "\\"\'\\n\\r ");'), $matches[0]);
+            
+            $n = '%';
+            $searchand = '';
+            $search = '';
+            
+            foreach( (array) $search_terms as $term) {
+                $term = addslashes_gpc($term);
+                $search .= "{$searchand}((tt.description LIKE '{$n}{$term}{$n}') OR (tt.alttext LIKE '{$n}{$term}{$n}') OR (tt.filename LIKE '{$n}{$term}{$n}'))";
+                $searchand = ' AND ';
+            }
+            
+            $term = $wpdb->escape($request);
+            if (count($search_terms) > 1 && $search_terms[0] != $request )
+                $search .= " OR (tt.description LIKE '{$n}{$term}{$n}') OR (tt.alttext LIKE '{$n}{$term}{$n}') OR (tt.filename LIKE '{$n}{$term}{$n}')";
+
+            if ( !empty($search) )
+                $search = " AND ({$search}) ";
+                
+            $limit  = ( $limit > 0 ) ? 'LIMIT ' . intval($limit) : '';   
+        } else
+            return false;
+            
+        // build the final query
+        $query = "SELECT t.*, tt.* FROM $wpdb->nggallery AS t INNER JOIN $wpdb->nggpictures AS tt ON t.gid = tt.galleryid WHERE 1=1 $search ORDER BY tt.pid ASC $limit";
+        $result = $wpdb->get_results($query);
+
+        // Return the object from the query result
+        if ($result) {
+            foreach ($result as $image) {
+                $images[] = new nggImage( $image );
+            }
+            return $images;
+        } 
+
+        return null;
+    }
+
+    /**
+     * search for galleries and return the result
+     * 
+     * @since 1.7.0
+     * @param string $request
+     * @param int $limit number of results, 0 shows all results
+     * @return Array Result of the request
+     */
+    function search_for_galleries( $request, $limit = 0 ) {
+        global $wpdb;
+        
+        // If a search pattern is specified, load the posts that match
+        if ( !empty($request) ) {
+            // added slashes screw with quote grouping when done early, so done later
+            $request = stripslashes($request);
+            
+            // split the words it a array if seperated by a space or comma
+            preg_match_all('/".*?("|$)|((?<=[\\s",+])|^)[^\\s",+]+/', $request, $matches);
+            $search_terms = array_map(create_function('$a', 'return trim($a, "\\"\'\\n\\r ");'), $matches[0]);
+            
+            $n = '%';
+            $searchand = '';
+            $search = '';
+            
+            foreach( (array) $search_terms as $term) {
+                $term = addslashes_gpc($term);
+                $search .= "{$searchand}((title LIKE '{$n}{$term}{$n}') OR (name LIKE '{$n}{$term}{$n}') )";
+                $searchand = ' AND ';
+            }
+            
+            $term = $wpdb->escape($request);
+            if (count($search_terms) > 1 && $search_terms[0] != $request )
+                $search .= " OR (title LIKE '{$n}{$term}{$n}') OR (name LIKE '{$n}{$term}{$n}')";
+
+            if ( !empty($search) )
+                $search = " AND ({$search}) ";
+                
+            $limit  = ( $limit > 0 ) ? 'LIMIT ' . intval($limit) : '';   
+        } else
+            return false;
+        
+        // build the final query
+        $query = "SELECT * FROM $wpdb->nggallery WHERE 1=1 $search ORDER BY title ASC $limit";
+        $result = $wpdb->get_results($query);
+
+        return $result;
+    }
+
+    /**
+     * search for albums and return the result
+     * 
+     * @since 1.7.0
+     * @param string $request
+     * @param int $limit number of results, 0 shows all results
+     * @return Array Result of the request
+     */
+    function search_for_albums( $request, $limit = 0 ) {
+        global $wpdb;
+        
+        // If a search pattern is specified, load the posts that match
+        if ( !empty($request) ) {
+            // added slashes screw with quote grouping when done early, so done later
+            $request = stripslashes($request);
+            
+            // split the words it a array if seperated by a space or comma
+            preg_match_all('/".*?("|$)|((?<=[\\s",+])|^)[^\\s",+]+/', $request, $matches);
+            $search_terms = array_map(create_function('$a', 'return trim($a, "\\"\'\\n\\r ");'), $matches[0]);
+            
+            $n = '%';
+            $searchand = '';
+            $search = '';
+            
+            foreach( (array) $search_terms as $term) {
+                $term = addslashes_gpc($term);
+                $search .= "{$searchand}(name LIKE '{$n}{$term}{$n}')";
+                $searchand = ' AND ';
+            }
+            
+            $term = $wpdb->escape($request);
+            if (count($search_terms) > 1 && $search_terms[0] != $request )
+                $search .= " OR (name LIKE '{$n}{$term}{$n}')";
+
+            if ( !empty($search) )
+                $search = " AND ({$search}) ";
+                
+            $limit  = ( $limit > 0 ) ? 'LIMIT ' . intval($limit) : '';   
+        } else
+            return false;
+        
+        // build the final query
+        $query = "SELECT * FROM $wpdb->nggalbum WHERE 1=1 $search ORDER BY name ASC $limit";
+        $result = $wpdb->get_results($query);
+
+        return $result;
+    }
+
+    /**
+     * search for a filename
+     * 
+     * @since 1.4.0
+     * @param string $filename
+     * @param int (optional) $galleryID
+     * @return Array Result of the request
+     */
+    function search_for_file( $filename, $galleryID = false ) {
+        global $wpdb;
+        
+        // If a search pattern is specified, load the posts that match
+        if ( !empty($filename) ) {
+            // added slashes screw with quote grouping when done early, so done later
+            $term = $wpdb->escape($filename);
+            
+           	$where_clause = '';
+            if ( is_numeric($galleryID) ) {
+            	$id = (int) $galleryID;
+            	$where_clause = " AND tt.galleryid = {$id}";
+            }
+        }
+        
+        // build the final query
+        $query = "SELECT t.*, tt.* FROM $wpdb->nggallery AS t INNER JOIN $wpdb->nggpictures AS tt ON t.gid = tt.galleryid WHERE tt.filename = '{$term}' {$where_clause} ORDER BY tt.pid ASC ";
+		$result = $wpdb->get_row($query);
+
+        // Return the object from the query result
+        if ($result) {
+        	$image = new nggImage( $result );
+            return $image;
+        } 
+
+        return null;
+    }
+
+    
+    /**
+     * Update or add meta data for an image
+     * 
+     * @since 1.4.0
+     * @param int $id The image ID
+     * @param array $values An array with existing or new values
+     * @return bool result of query
+     */ 
+    function update_image_meta( $id, $new_values ) {
+        global $wpdb;
+        
+        // Query database for existing values
+        // Use cache object
+        $old_values = $wpdb->get_var( $wpdb->prepare( "SELECT meta_data FROM $wpdb->nggpictures WHERE pid = %d ", $id ) );
+        $old_values = unserialize( $old_values );
+
+        $meta = array_merge( (array)$old_values, (array)$new_values );
+		
+        $result = $wpdb->query( $wpdb->prepare("UPDATE $wpdb->nggpictures SET meta_data = %s WHERE pid = %d", serialize($meta), $id) );
+        
+        wp_cache_delete($id, 'ngg_image');
+        
+        return $result;
+    }
+
+    /**
+     * Computes a unique slug for the gallery,album or image, when given the desired slug.
+     *
+     * @since 1.7.0
+     * @author taken from WP Core includes/post.php
+     * @param string $slug the desired slug (post_name)
+     * @param string $type ('image', 'album' or 'gallery')
+     * @return string unique slug for the object, based on $slug (with a -1, -2, etc. suffix)
+     */
+    function get_unique_slug( $slug, $type ) {
+    
+    	global $wpdb;
+        
+        switch ($type) {
+            case 'image':
+        		$check_sql = "SELECT image_slug FROM $wpdb->nggpictures WHERE image_slug = %s LIMIT 1";
+            break;
+            case 'album':
+        		$check_sql = "SELECT slug FROM $wpdb->nggalbum WHERE slug = %s LIMIT 1";
+            break;
+            case 'gallery':
+        		$check_sql = "SELECT slug FROM $wpdb->nggallery WHERE slug = %s LIMIT 1";
+            break;
+            default:
+                return false;
+        }
+        
+        //if you didn't give us a nem we take the type
+        $slug = empty($slug) ? $type: $slug;
+        
+   		// Slugs must be unique across all objects.         
+		$slug_check = $wpdb->get_var( $wpdb->prepare( $check_sql, $slug ) );
+
+		if ( $slug_check ) {
+			$suffix = 2;
+			do {
+				$alt_name = substr ($slug, 0, 200 - ( strlen( $suffix ) + 1 ) ) . "-$suffix";
+				$slug_check = $wpdb->get_var( $wpdb->prepare($check_sql, $alt_name ) );
+				$suffix++;
+			} while ( $slug_check );
+			$slug = $alt_name;
+		}        
+        
+       	return $slug;
+    }
+
+}
+endif;
+
+if ( ! isset($GLOBALS['nggdb']) ) {
+    /**
+     * Initate the NextGEN Gallery Database Object, for later cache reasons
+     * @global object $nggdb Creates a new nggdb object
+     * @since 1.1.0
+     */
+    unset($GLOBALS['nggdb']);
+    $GLOBALS['nggdb'] = new nggdb() ;
+}
+?>
\ No newline at end of file
diff --git a/wp-content/plugins/nextgen-gallery/lib/post-thumbnail.php b/wp-content/plugins/nextgen-gallery/lib/post-thumbnail.php
new file mode 100644
index 000000000..22037711d
--- /dev/null
+++ b/wp-content/plugins/nextgen-gallery/lib/post-thumbnail.php
@@ -0,0 +1,215 @@
+<?php
+
+/**
+ * nggPostThumbnail - Class for adding the post thumbnail feature
+ * 
+ * @package NextGEN Gallery
+ * @author Alex Rabe 
+ * @copyright 2010
+ * @version 1.0.1
+ * @access internal
+ */
+class nggPostThumbnail {
+
+	/**
+	 * PHP4 compatibility layer for calling the PHP5 constructor.
+	 * 
+	 */
+	function nggPostThumbnail() {
+		return $this->__construct();
+	}
+
+	/**
+	 * Main constructor - Add filter and action hooks
+	 * 
+	 */	
+	function __construct() {
+		
+		add_filter( 'admin_post_thumbnail_html', array( &$this, 'admin_post_thumbnail') );
+		add_action( 'wp_ajax_ngg_set_post_thumbnail', array( &$this, 'ajax_set_post_thumbnail') );
+		// Adding filter for the new post_thumbnail
+		add_filter( 'post_thumbnail_html', array( &$this, 'ngg_post_thumbnail'), 10, 5 );
+		return;		
+	}
+
+	/**
+	 * Filter for the post meta box. look for a NGG image if the ID is "ngg-<imageID>"
+	 * 
+	 * @param string $content
+	 * @return string html output
+	 */
+	function admin_post_thumbnail( $content ) {
+		global $post;
+		
+        if ( !is_object($post) )
+           return $content;
+        
+		$thumbnail_id = get_post_meta( $post->ID, '_thumbnail_id', true );
+
+		// in the case it's a ngg image it return ngg-<imageID>
+		if ( strpos($thumbnail_id, 'ngg-') === false)
+			return $content;
+			
+		// cut off the 'ngg-'
+		$thumbnail_id = substr( $thumbnail_id, 4);
+
+		return $this->_wp_post_thumbnail_html( $thumbnail_id );		
+	}
+	
+	/**
+	 * Filter for the post content
+	 * 
+	 * @param string $html
+	 * @param int $post_id
+	 * @param int $post_thumbnail_id
+	 * @param string|array $size Optional. Image size.  Defaults to 'thumbnail'.
+	 * @param string|array $attr Optional. Query string or array of attributes.
+	 * @return string html output
+	 */
+	function ngg_post_thumbnail( $html, $post_id, $post_thumbnail_id, $size = 'post-thumbnail', $attr = '' ) {
+
+		global $post, $_wp_additional_image_sizes;
+
+		// in the case it's a ngg image it return ngg-<imageID>
+		if ( strpos($post_thumbnail_id, 'ngg-') === false)
+			return $html;
+
+		// cut off the 'ngg-'
+		$post_thumbnail_id = substr( $post_thumbnail_id, 4);
+
+		// get the options
+		$ngg_options = nggGallery::get_option('ngg_options');
+
+		// get the image data
+		$image = nggdb::find_image($post_thumbnail_id);
+
+		if (!$image) 
+			return $html;
+
+		$img_src =  false;
+		
+		$class = 'wp-post-image ngg-image-' . $image->pid . ' ';
+        
+        // look up for the post thumbnial size and use them if defined
+        if ($size == 'post-thumbnail') {
+            if ( is_array($_wp_additional_image_sizes) && isset($_wp_additional_image_sizes['post-thumbnail']) ) {
+                $size = array();
+     			$size[0] = $_wp_additional_image_sizes['post-thumbnail']['width'];
+    			$size[1] = $_wp_additional_image_sizes['post-thumbnail']['height'];
+                $size[2] = 'crop';
+            }
+        }
+		
+		if ( is_array($size) )
+			$class .= isset($attr['class']) ? esc_attr($attr['class']) : '';
+		
+		// render a new image or show the thumbnail if we didn't get size parameters
+		if ( is_array($size) ) {
+			
+			$width = absint( $size[0] );
+			$height = absint( $size[1] );
+            $mode = isset($size[2]) ? $size[2] : '';
+
+            // check fo cached picture
+            if ( ($ngg_options['imgCacheSinglePic']) && ($post->post_status == 'publish') )
+                $img_src = $image->cached_singlepic_file( $width, $height, $mode );                
+		    
+		    // if we didn't use a cached image then we take the on-the-fly mode 
+		    if ($img_src ==  false) 
+		        $img_src = home_url() . '/' . 'index.php?callback=image&amp;pid=' . $image->pid . '&amp;width=' . $width . '&amp;height=' . $height . '&amp;mode=crop';
+                
+		} else {
+			$img_src = $image->thumbURL;
+		}
+		
+		$html = '<img src="' . esc_attr($img_src) . '" alt="' . esc_attr($image->alttext) . '" title="' . esc_attr($image->title).'" class="'.$class.'" />';
+
+		return $html;
+	}
+	
+	/**
+	 * nggPostThumbnail::ajax_set_post_thumbnail()
+	 * 
+	 * @return void
+	 */
+	function ajax_set_post_thumbnail() {
+        
+        global $post_ID;
+        
+		// check for correct capability
+		if ( !is_user_logged_in() )
+			die( '-1' );
+		
+        // get the post id as global variable, otherwise the ajax_nonce failed later
+        $post_ID = intval( $_POST['post_id'] );
+		
+        if ( !current_user_can( 'edit_post', $post_ID ) )
+			die( '-1' );
+		
+		$thumbnail_id = intval( $_POST['thumbnail_id'] );
+		
+		// delete the image
+		if ( $thumbnail_id == '-1' ) {
+			delete_post_meta( $post_ID, '_thumbnail_id' );
+			die( $this->_wp_post_thumbnail_html() );
+		}
+		
+		// for NGG we look for the image id
+		if ( $thumbnail_id && nggdb::find_image($thumbnail_id) ) {
+			// to know that we have a NGG image we add "ngg-" before the id
+			update_post_meta( $post_ID, '_thumbnail_id', 'ngg-' . $thumbnail_id );
+			die( $this->_wp_post_thumbnail_html( $thumbnail_id ) );
+		}
+		die( '0' );
+	}
+
+	/**
+	 * Output HTML for the post thumbnail meta-box.
+	 *
+	 * @see wp-admin\includes\post.php
+	 * @param int $thumbnail_id ID of the image used for thumbnail
+	 * @return string html output
+	 */
+	function _wp_post_thumbnail_html( $thumbnail_id = NULL ) {
+	   
+		global $_wp_additional_image_sizes, $post_ID;
+
+	    $set_thumbnail_link = '<p class="hide-if-no-js"><a title="' . esc_attr__( 'Set featured image' ) . '" href="' . esc_url( get_upload_iframe_src('image') ) . '" id="set-post-thumbnail" class="thickbox">%s</a></p>';
+	    $content = sprintf($set_thumbnail_link, esc_html__( 'Set featured image' ));
+		
+        $image = nggdb::find_image($thumbnail_id);
+        $img_src = false;
+
+		// get the options
+		$ngg_options = nggGallery::get_option('ngg_options');
+        
+		if ( $image ) {
+            if ( is_array($_wp_additional_image_sizes) && isset($_wp_additional_image_sizes['post-thumbnail']) ){
+                // Use post thumbnail settings if defined
+     			$width = absint( $_wp_additional_image_sizes['post-thumbnail']['width'] );
+    			$height = absint( $_wp_additional_image_sizes['post-thumbnail']['height'] );
+    		    // check fo cached picture
+    		    if ( ($ngg_options['imgCacheSinglePic']) )
+    		        $img_src = $image->cached_singlepic_file( $width, $height, 'crop' );                
+            }
+
+		    // if we didn't use a cached image then we take the on-the-fly mode 
+		    if ( $img_src == false ) 
+		        $img_src = home_url() . '/' . 'index.php?callback=image&amp;pid=' . $image->pid . '&amp;width=' . $width . '&amp;height=' . $height . '&amp;mode=crop';
+			
+            $thumbnail_html = '<img width="266" src="'. $img_src . '" alt="'.$image->alttext.'" title="'.$image->alttext.'" />';
+            
+			if ( !empty( $thumbnail_html ) ) {
+    			$ajax_nonce = wp_create_nonce( "set_post_thumbnail-$post_ID" );
+    			$content = sprintf($set_thumbnail_link, $thumbnail_html);
+    			$content .= '<p class="hide-if-no-js"><a href="#" id="remove-post-thumbnail" onclick="WPRemoveThumbnail(\'' . $ajax_nonce . '\');return false;">' . esc_html__( 'Remove featured image' ) . '</a></p>';
+			}
+		}
+
+		return $content;
+	}	
+	
+}
+
+$nggPostThumbnail = new nggPostThumbnail();
+?>
\ No newline at end of file
diff --git a/wp-content/plugins/nextgen-gallery/lib/rewrite.php b/wp-content/plugins/nextgen-gallery/lib/rewrite.php
new file mode 100644
index 000000000..8a24a4c78
--- /dev/null
+++ b/wp-content/plugins/nextgen-gallery/lib/rewrite.php
@@ -0,0 +1,278 @@
+<?php
+
+/**
+* nggRewrite - First version of Rewrite Rules
+*
+* sorry wp-guys I didn't understand this at all. 
+* I tried it a couple of hours : this is the only pooooor result
+*
+* @package NextGEN Gallery
+* @author Alex Rabe
+* @copyright 2008
+*/
+class nggRewrite {
+
+	// default value
+	var $slug = 'nggallery';	
+
+	/**
+	* Constructor
+	*/
+	function nggRewrite() {
+		
+		// read the option setting
+		$this->options = get_option('ngg_options');
+		
+		// get later from the options
+		$this->slug = 'nggallery';
+
+		/*WARNING: Do nothook rewrite rule regentation on the init hook for anything other than dev. */
+		//add_action('init',array(&$this, 'flush'));
+		
+		add_filter('query_vars', array(&$this, 'add_queryvars') );
+		add_filter('wp_title' , array(&$this, 'rewrite_title') );
+		
+        //DD32 recommend : http://groups.google.com/group/wp-hackers/browse_thread/thread/50ac0d07e30765e9
+        //add_filter('rewrite_rules_array', array($this, 'RewriteRules')); 
+        	
+		if ($this->options['usePermalinks'])
+			add_action('generate_rewrite_rules', array(&$this, 'RewriteRules'));
+		
+		
+	} // end of initialization
+
+	/**
+	* Get the permalink to a picture/album/gallery given its ID/name/...
+	*/
+	function get_permalink( $args ) {
+		global $wp_rewrite, $wp_query;
+
+		//TODO: Watch out for ticket http://trac.wordpress.org/ticket/6627
+		if ($wp_rewrite->using_permalinks() && $this->options['usePermalinks'] ) {
+			$post = &get_post(get_the_ID());
+
+			// $_GET from wp_query
+			$album = get_query_var('album');
+			if ( !empty( $album ) )
+				$args ['album'] = $album;
+			
+			$gallery = get_query_var('gallery');
+			if ( !empty( $gallery ) )
+				$args ['gallery'] = $gallery;
+			
+			$gallerytag = get_query_var('gallerytag');
+			if ( !empty( $gallerytag ) )
+				$args ['gallerytag'] = $gallerytag;
+			
+			/** urlconstructor =  slug | type | tags | [nav] | [show]
+				type : 	page | post
+				tags : 	album, gallery 	-> /album-([0-9]+)/gallery-([0-9]+)/
+						pid 			-> /image/([0-9]+)/
+						gallerytag		-> /tags/([^/]+)/
+				nav	 : 	nggpage			-> /page-([0-9]+)/
+				show : 	show=slide		-> /slideshow/
+						show=gallery	-> /images/	
+			**/
+
+			// 1. Blog url + main slug
+			$url = get_option('home') . '/' . $this->slug;
+			
+			// 2. Post or page ?
+			if ( $post->post_type == 'page' )
+				$url .= '/page-' . $post->ID; // Pagnename is nicer but how to handle /parent/pagename ? Confused...
+			else
+				$url .= '/post/' . $post->post_name;
+			
+			// 3. Album, pid or tags
+				
+			if (isset ($args['album']) && ($args['gallery'] == false) )
+				$url .= '/album-' . $args['album'];
+			elseif  (isset ($args['album']) && isset ($args['gallery']) )
+				$url .= '/album-' . $args['album'] . '/gallery-' . $args['gallery'];
+				
+			if  (isset ($args['gallerytag']))
+				$url .= '/tags/' . $args['gallerytag'];
+				
+			if  (isset ($args['pid']))
+				$url .= '/image/' . $args['pid'];			
+			
+			// 4. Navigation
+			if  (isset ($args['nggpage']) && ($args['nggpage']) )
+				$url .= '/page-' . $args['nggpage'];
+			
+			// 5. Show images or Slideshow
+			if  (isset ($args['show']))
+				$url .= ( $args['show'] == 'slide' ) ? '/slideshow' : '/images';
+
+			return $url;
+			
+		} else {			
+			// we need to add the page/post id at the start_page otherwise we don't know which gallery is clicked
+			if (is_home())
+				$args['pageid'] = get_the_ID();
+			
+			// taken from is_frontpage plugin, required for static homepage
+			$show_on_front = get_option('show_on_front');
+			$page_on_front = get_option('page_on_front');
+			
+			if (($show_on_front == 'page') && ($page_on_front == get_the_ID()))
+				$args['page_id'] = get_the_ID();
+			
+			if ( !is_singular() )
+				$query = htmlspecialchars( add_query_arg($args, get_permalink( get_the_ID() )) );
+			else
+				$query = htmlspecialchars( add_query_arg( $args ) );
+			
+			return $query;
+		}
+	}
+
+	/**
+	* The permalinks needs to be flushed after activation
+	*/
+	function flush() { 
+		global $wp_rewrite;
+		
+		$this->options = get_option('ngg_options');
+		
+		if ($this->options['usePermalinks'])
+			add_action('generate_rewrite_rules', array(&$this, 'RewriteRules'));
+			
+		$wp_rewrite->flush_rules();
+	}
+
+	/**
+	* add some more vars to the big wp_query
+	*/
+	function add_queryvars( $query_vars ){
+		
+		$query_vars[] = 'pid';
+		$query_vars[] = 'pageid';
+		$query_vars[] = 'nggpage';
+		$query_vars[] = 'gallery';
+		$query_vars[] = 'album';
+		$query_vars[] = 'gallerytag';
+		$query_vars[] = 'show';
+        $query_vars[] = 'callback';
+
+		return $query_vars;
+	}
+	
+	/**
+	* rewrite the blog title if the gallery is used
+	*/	
+	function rewrite_title($title) {
+		
+		$new_title = '';
+		// the separataor
+		$sep = ' &laquo; ';
+		
+		// $_GET from wp_query
+		$pid     = get_query_var('pid');
+		$pageid  = get_query_var('pageid');
+		$nggpage = get_query_var('nggpage');
+		$gallery = get_query_var('gallery');
+		$album   = get_query_var('album');
+		$tag  	 = get_query_var('gallerytag');
+		$show    = get_query_var('show');
+
+		//TODO:: I could parse for the Picture name , gallery etc, but this increase the queries
+		//TODO:: Class nggdb need to cache the query for the nggfunctions.php
+
+		if ( $show == 'slide' )
+			$new_title .= __('Slideshow', 'nggallery') . $sep ;
+		elseif ( $show == 'show' )
+			$new_title .= __('Gallery', 'nggallery') . $sep ;	
+
+		if ( !empty($pid) )
+			$new_title .= __('Picture', 'nggallery') . ' ' . intval($pid) . $sep ;
+
+		if ( !empty($album) )
+			$new_title .= __('Album', 'nggallery') . ' ' . intval($album) . $sep ;
+
+		if ( !empty($gallery) )
+			$new_title .= __('Gallery', 'nggallery') . ' ' . intval($gallery) . $sep ;
+			
+		if ( !empty($nggpage) )
+			$new_title .= __('Page', 'nggallery') . ' ' . intval($nggpage) . $sep ;
+		
+		//esc_attr should avoid XSS like http://domain/?gallerytag=%3C/title%3E%3Cscript%3Ealert(document.cookie)%3C/script%3E
+		if ( !empty($tag) )
+			$new_title .= esc_attr($tag) . $sep;
+		
+		//prepend the data
+		$title = $new_title . $title;
+		
+		return $title;
+	}
+	
+	/**
+	 * Canonical support for a better SEO (Dupilcat content), not longer nedded for Wp 2.9
+	 * See : http://googlewebmastercentral.blogspot.com/2009/02/specify-your-canonical.html
+	 * 
+	 * @deprecated
+	 * @return string $meta 
+	 */
+	function add_canonical_meta()
+    {
+            // create the meta link
+ 			$meta  = "\n<link rel='canonical' href='" . get_permalink() ."' />";
+ 			// add a filter for SEO plugins, so they can remove it
+ 			echo apply_filters('ngg_add_canonical_meta', $meta);
+  			
+        return; 
+    }
+		
+	/**
+	* The actual rewrite rules
+	*/
+	function RewriteRules($wp_rewrite) {		
+		$rewrite_rules = array (
+            // XML request
+            $this->slug.'/slideshow/([0-9]+)/?$' => 'index.php?imagerotator=true&gid=$matches[1]',
+            
+			// rewrite rules for pages
+			$this->slug.'/page-([0-9]+)/?$' => 'index.php?page_id=$matches[1]',
+			$this->slug.'/page-([0-9]+)/page-([0-9]+)/?$' => 'index.php?page_id=$matches[1]&nggpage=$matches[2]',
+			$this->slug.'/page-([0-9]+)/image/([0-9]+)/?$' => 'index.php?page_id=$matches[1]&pid=$matches[2]',
+			$this->slug.'/page-([0-9]+)/image/([0-9]+)/page-([0-9]+)/?$' => 'index.php?page_id=$matches[1]&pid=$matches[2]&nggpage=$matches[3]',
+			$this->slug.'/page-([0-9]+)/slideshow/?$' => 'index.php?page_id=$matches[1]&show=slide',
+			$this->slug.'/page-([0-9]+)/images/?$' => 'index.php?page_id=$matches[1]&show=gallery',
+			$this->slug.'/page-([0-9]+)/tags/([^/]+)/?$' => 'index.php?page_id=$matches[1]&gallerytag=$matches[2]',
+			$this->slug.'/page-([0-9]+)/tags/([^/]+)/page-([0-9]+)/?$' => 'index.php?page_id=$matches[1]&gallerytag=$matches[2]&nggpage=$matches[3]',
+			$this->slug.'/page-([0-9]+)/album-([^/]+)/?$' => 'index.php?page_id=$matches[1]&album=$matches[2]',
+			$this->slug.'/page-([0-9]+)/album-([^/]+)/page-([0-9]+)/?$' => 'index.php?page_id=$matches[1]&album=$matches[2]&nggpage=$matches[3]',
+			$this->slug.'/page-([0-9]+)/album-([^/]+)/gallery-([0-9]+)/?$' => 'index.php?page_id=$matches[1]&album=$matches[2]&gallery=$matches[3]',
+			$this->slug.'/page-([0-9]+)/album-([^/]+)/gallery-([0-9]+)/slideshow/?$' => 'index.php?page_id=$matches[1]&album=$matches[2]&gallery=$matches[3]&show=slide',
+			$this->slug.'/page-([0-9]+)/album-([^/]+)/gallery-([0-9]+)/images/?$' => 'index.php?page_id=$matches[1]&album=$matches[2]&gallery=$matches[3]&show=gallery',
+			$this->slug.'/page-([0-9]+)/album-([^/]+)/gallery-([0-9]+)/page/([0-9]+)/?$' => 'index.php?page_id=$matches[1]&album=$matches[2]&gallery=$matches[3]&pid=$matches[4]',
+			$this->slug.'/page-([0-9]+)/album-([^/]+)/gallery-([0-9]+)/page-([0-9]+)/?$' => 'index.php?page_id=$matches[1]&album=$matches[2]&gallery=$matches[3]&nggpage=$matches[4]',
+			$this->slug.'/page-([0-9]+)/album-([^/]+)/gallery-([0-9]+)/page-([0-9]+)/slideshow/?$' => 'index.php?page_id=$matches[1]&album=$matches[2]&gallery=$matches[3]&nggpage=$matches[4]&show=slide',
+			$this->slug.'/page-([0-9]+)/album-([^/]+)/gallery-([0-9]+)/page-([0-9]+)/images/?$' => 'index.php?page_id=$matches[1]&album=$matches[2]&gallery=$matches[3]&nggpage=$matches[4]&show=gallery',
+			
+			// rewrite rules for posts
+			$this->slug.'/post/([^/]+)/?$' => 'index.php?name=$matches[1]',
+			$this->slug.'/post/([^/]+)/page-([0-9]+)/?$' => 'index.php?name=$matches[1]&nggpage=$matches[2]',
+			$this->slug.'/post/([^/]+)/image/([0-9]+)/?$' => 'index.php?name=$matches[1]&pid=$matches[2]',
+			$this->slug.'/post/([^/]+)/image/([0-9]+)/page-([0-9]+)/?$' => 'index.php?name=$matches[1]&pid=$matches[2]&nggpage=$matches[3]',
+			$this->slug.'/post/([^/]+)/slideshow/?$' => 'index.php?name=$matches[1]&show=slide',
+			$this->slug.'/post/([^/]+)/images/?$' => 'index.php?name=$matches[1]&show=gallery',
+			$this->slug.'/post/([^/]+)/tags/([^/]+)/?$' => 'index.php?name=$matches[1]&gallerytag=$matches[2]',
+			$this->slug.'/post/([^/]+)/tags/([^/]+)/page-([0-9]+)/?$' => 'index.php?name=$matches[1]&gallerytag=$matches[2]&nggpage=$matches[3]',
+			$this->slug.'/post/([^/]+)/album-([^/]+)/?$' => 'index.php?name=$matches[1]&album=$matches[2]',
+			$this->slug.'/post/([^/]+)/album-([^/]+)/page-([0-9]+)/?$' => 'index.php?name=$matches[1]&album=$matches[2]&nggpage=$matches[3]',
+			$this->slug.'/post/([^/]+)/album-([^/]+)/gallery-([0-9]+)/?$' => 'index.php?name=$matches[1]&album=$matches[2]&gallery=$matches[3]',
+			$this->slug.'/post/([^/]+)/album-([^/]+)/gallery-([0-9]+)/slideshow/?$' => 'index.php?name=$matches[1]&album=$matches[2]&gallery=$matches[3]&show=slide',
+			$this->slug.'/post/([^/]+)/album-([^/]+)/gallery-([0-9]+)/images/?$' => 'index.php?name=$matches[1]&album=$matches[2]&gallery=$matches[3]&show=gallery',
+			$this->slug.'/post/([^/]+)/album-([^/]+)/gallery-([0-9]+)/page/([0-9]+)/?$' => 'index.php?name=$matches[1]&album=$matches[2]&gallery=$matches[3]&pid=$matches[4]',
+			$this->slug.'/post/([^/]+)/album-([^/]+)/gallery-([0-9]+)/page-([0-9]+)/?$' => 'index.php?name=$matches[1]&album=$matches[2]&gallery=$matches[3]&nggpage=$matches[4]',
+			$this->slug.'/post/([^/]+)/album-([^/]+)/gallery-([0-9]+)/page-([0-9]+)/slideshow/?$' => 'index.php?name=$matches[1]&album=$matches[2]&gallery=$matches[3]&nggpage=$matches[4]&show=slide',
+			$this->slug.'/post/([^/]+)/album-([^/]+)/gallery-([0-9]+)/page-([0-9]+)/images/?$' => 'index.php?name=$matches[1]&album=$matches[2]&gallery=$matches[3]&nggpage=$matches[4]&show=gallery',
+		);
+		
+		$wp_rewrite->rules = array_merge($rewrite_rules, $wp_rewrite->rules);		
+	}
+	
+}  // of nggRewrite CLASS
+
+?>
\ No newline at end of file
diff --git a/wp-content/plugins/nextgen-gallery/lib/shortcodes.php b/wp-content/plugins/nextgen-gallery/lib/shortcodes.php
new file mode 100644
index 000000000..f2d826b76
--- /dev/null
+++ b/wp-content/plugins/nextgen-gallery/lib/shortcodes.php
@@ -0,0 +1,375 @@
+<?php
+/**
+ * @author Alex Rabe, Vincent Prat 
+ * @copyright 2008 - 2009
+ * @since 1.0.0
+ * @description Use WordPress Shortcode API for more features
+ * @Docs http://codex.wordpress.org/Shortcode_API
+ */
+
+class NextGEN_shortcodes {
+    
+    // register the new shortcodes
+    function NextGEN_shortcodes() {
+		
+		//Long posts should require a higher limit, see http://core.trac.wordpress.org/ticket/8553
+		@ini_set('pcre.backtrack_limit', 500000);
+    
+        // convert the old shortcode
+        add_filter('the_content', array(&$this, 'convert_shortcode'));
+        
+        // do_shortcode on the_excerpt could causes several unwanted output. Uncomment it on your own risk
+        // add_filter('the_excerpt', array(&$this, 'convert_shortcode'));
+        // add_filter('the_excerpt', 'do_shortcode', 11);
+        
+        add_shortcode( 'singlepic', array(&$this, 'show_singlepic' ) );
+        add_shortcode( 'album', array(&$this, 'show_album' ) );
+        add_shortcode( 'nggallery', array(&$this, 'show_gallery') );
+        add_shortcode( 'imagebrowser', array(&$this, 'show_imagebrowser' ) );
+        add_shortcode( 'slideshow', array(&$this, 'show_slideshow' ) );
+        add_shortcode( 'nggtags', array(&$this, 'show_tags' ) );
+        add_shortcode( 'thumb', array(&$this, 'show_thumbs' ) );
+        add_shortcode( 'random', array(&$this, 'show_random' ) );
+        add_shortcode( 'recent', array(&$this, 'show_recent' ) );
+        add_shortcode( 'tagcloud', array(&$this, 'show_tagcloud' ) );
+    }
+
+     /**
+       * NextGEN_shortcodes::convert_shortcode()
+       * convert old shortcodes to the new WordPress core style
+       * [gallery=1]  ->> [nggallery id=1]
+       * 
+       * @param string $content Content to search for shortcodes
+       * @return string Content with new shortcodes.
+       */
+    function convert_shortcode($content) {
+        
+        $ngg_options = nggGallery::get_option('ngg_options');
+    
+        if ( stristr( $content, '[singlepic' )) {
+            $search = "@\[singlepic=(\d+)(|,\d+|,)(|,\d+|,)(|,watermark|,web20|,)(|,right|,center|,left|,)\]@i";
+            if (preg_match_all($search, $content, $matches, PREG_SET_ORDER)) {
+
+                foreach ($matches as $match) {
+                    // remove the comma
+                    $match[2] = ltrim($match[2], ',');
+                    $match[3] = ltrim($match[3], ',');  
+                    $match[4] = ltrim($match[4], ',');  
+                    $match[5] = ltrim($match[5], ',');                      
+                    $replace = "[singlepic id=\"{$match[1]}\" w=\"{$match[2]}\" h=\"{$match[3]}\" mode=\"{$match[4]}\" float=\"{$match[5]}\" ]";
+                    $content = str_replace ($match[0], $replace, $content);
+                }
+            }
+        }
+
+        if ( stristr( $content, '[album' )) {
+            $search = "@(?:<p>)*\s*\[album\s*=\s*(\w+|^\+)(|,extend|,compact)\]\s*(?:</p>)*@i"; 
+            if (preg_match_all($search, $content, $matches, PREG_SET_ORDER)) {
+
+                foreach ($matches as $match) {
+                    // remove the comma
+                    $match[2] = ltrim($match[2],',');
+                    $replace = "[album id=\"{$match[1]}\" template=\"{$match[2]}\"]";
+                    $content = str_replace ($match[0], $replace, $content);
+                }
+            }
+        }       
+
+        if ( stristr( $content, '[gallery' )) {
+            $search = "@(?:<p>)*\s*\[gallery\s*=\s*(\w+|^\+)\]\s*(?:</p>)*@i";
+            if (preg_match_all($search, $content, $matches, PREG_SET_ORDER)) {
+
+                foreach ($matches as $match) {
+                    $replace = "[nggallery id=\"{$match[1]}\"]";
+                    $content = str_replace ($match[0], $replace, $content);
+                }
+            }
+        }   
+
+        if ( stristr( $content, '[imagebrowser' )) {
+            $search = "@(?:<p>)*\s*\[imagebrowser\s*=\s*(\w+|^\+)\]\s*(?:</p>)*@i";
+            if (preg_match_all($search, $content, $matches, PREG_SET_ORDER)) {
+
+                foreach ($matches as $match) {
+                    $replace = "[imagebrowser id=\"{$match[1]}\"]";
+                    $content = str_replace ($match[0], $replace, $content);
+                }
+            }
+        }
+
+        if ( stristr( $content, '[slideshow' )) {
+            $search = "@(?:<p>)*\s*\[slideshow\s*=\s*(\w+|^\+)(|,(\d+)|,)(|,(\d+))\]\s*(?:</p>)*@i";
+            if (preg_match_all($search, $content, $matches, PREG_SET_ORDER)) {
+
+                foreach ($matches as $match) {
+                    // remove the comma
+                    $match[3] = ltrim($match[3],',');
+                    $match[5] = ltrim($match[5],',');   
+                    $replace = "[slideshow id=\"{$match[1]}\" w=\"{$match[3]}\" h=\"{$match[5]}\"]";
+                    $content = str_replace ($match[0], $replace, $content);
+                }
+            }
+        }
+
+        if ( stristr( $content, '[tags' )) {
+            $search = "@(?:<p>)*\s*\[tags\s*=\s*(.*?)\s*\]\s*(?:</p>)*@i";
+            if (preg_match_all($search, $content, $matches, PREG_SET_ORDER)) {
+
+                foreach ($matches as $match) {
+                    $replace = "[nggtags gallery=\"{$match[1]}\"]";
+                    $content = str_replace ($match[0], $replace, $content);
+                }
+            }
+        }
+        
+        if ( stristr( $content, '[albumtags' )) {
+            $search = "@(?:<p>)*\s*\[albumtags\s*=\s*(.*?)\s*\]\s*(?:</p>)*@i";
+            if (preg_match_all($search, $content, $matches, PREG_SET_ORDER)) {
+
+                foreach ($matches as $match) {
+                    $replace = "[nggtags album=\"{$match[1]}\"]";
+                    $content = str_replace ($match[0], $replace, $content);
+                }
+            }
+        }
+
+        // attach related images based on category or tags
+        if ($ngg_options['activateTags']) 
+            $content .= nggShowRelatedImages();
+        
+        return $content;
+    }
+    
+    /**
+     * Function to show a single picture:
+     * 
+     *     [singlepic id="10" float="none|left|right" width="" height="" mode="none|watermark|web20" link="url" "template="filename" /]
+     *
+     * where
+     *  - id is one picture id
+     *  - float is the CSS float property to apply to the thumbnail
+     *  - width is width of the single picture you want to show (original width if this parameter is missing)
+     *  - height is height of the single picture you want to show (original height if this parameter is missing)
+     *  - mode is one of none, watermark or web20 (transformation applied to the picture)
+     *  - link is optional and could link to a other url instead the full image
+     *  - template is a name for a gallery template, which is located in themefolder/nggallery or plugins/nextgen-gallery/view
+     * 
+     * If the tag contains some text, this will be inserted as an additional caption to the picture too. Example:
+     *      [singlepic id="10"]This is an additional caption[/singlepic]
+     * This tag will show a picture with under it two HTML span elements containing respectively the alttext of the picture 
+     * and the additional caption specified in the tag. 
+     * 
+     * @param array $atts
+     * @param string $caption text
+     * @return the content
+     */
+    function show_singlepic( $atts, $content = '' ) {
+    
+        extract(shortcode_atts(array(
+            'id'        => 0,
+            'w'         => '',
+            'h'         => '',
+            'mode'      => '',
+            'float'     => '',
+            'link'      => '',
+            'template'  => ''
+        ), $atts ));
+    
+        $out = nggSinglePicture($id, $w, $h, $mode, $float, $template, $content, $link);
+            
+        return $out;
+    }
+
+    function show_album( $atts ) {
+    
+        extract(shortcode_atts(array(
+            'id'        => 0,
+            'template'  => 'extend' 
+        ), $atts ));
+        
+        $out = nggShowAlbum($id, $template);
+            
+        return $out;
+    }
+    /**
+     * Function to show a thumbnail or a set of thumbnails with shortcode of type:
+     * 
+     * [gallery id="1,2,4,5,..." template="filename" images="number of images per page" /]
+     * where 
+     * - id of a gallery
+     * - images is the number of images per page (optional), 0 will show all images
+     * - template is a name for a gallery template, which is located in themefolder/nggallery or plugins/nextgen-gallery/view
+     * 
+     * @param array $atts
+     * @return the_content
+     */
+    function show_gallery( $atts ) {
+        
+        global $wpdb;
+        
+        extract(shortcode_atts(array(
+            'id'        => 0,
+            'template'  => '',  
+            'images'    => false
+        ), $atts ));
+        
+        // backward compat for user which uses the name instead, still deprecated
+        if( !is_numeric($id) )
+            $id = $wpdb->get_var( $wpdb->prepare ("SELECT gid FROM $wpdb->nggallery WHERE name = '%s' ", $id) );
+            
+        $out = nggShowGallery( $id, $template, $images );
+            
+        return $out;
+    }
+
+    function show_imagebrowser( $atts ) {
+        
+        global $wpdb;
+    
+        extract(shortcode_atts(array(
+            'id'        => 0,
+            'template'  => ''   
+        ), $atts ));
+
+        $out = nggShowImageBrowser($id, $template);
+            
+        return $out;
+    }
+    
+    function show_slideshow( $atts ) {
+        
+        global $wpdb;
+    
+        extract(shortcode_atts(array(
+            'id'        => 0,
+            'w'         => '',
+            'h'         => ''
+        ), $atts ));
+        
+        if( !is_numeric($id) )
+            $id = $wpdb->get_var( $wpdb->prepare ("SELECT gid FROM $wpdb->nggallery WHERE name = '%s' ", $id) );
+
+        if( !empty( $id ) )
+            $out = nggShowSlideshow($id, $w, $h);
+        else 
+            $out = __('[Gallery not found]','nggallery');
+            
+        return $out;
+    }
+    
+    function show_tags( $atts ) {
+    
+        extract(shortcode_atts(array(
+            'gallery'       => '',
+            'album'         => ''
+        ), $atts ));
+        
+        if ( !empty($album) )
+            $out = nggShowAlbumTags($album);
+        else
+            $out = nggShowGalleryTags($gallery);
+        
+        return $out;
+    }
+
+    /**
+     * Function to show a thumbnail or a set of thumbnails with shortcode of type:
+     * 
+     * [thumb id="1,2,4,5,..." template="filename" /]
+     * where 
+     * - id is one or more picture ids
+     * - template is a name for a gallery template, which is located in themefolder/nggallery or plugins/nextgen-gallery/view
+     * 
+     * @param array $atts
+     * @return the_content
+     */
+    function show_thumbs( $atts ) {
+    
+        extract(shortcode_atts(array(
+            'id'        => '',
+            'template'  => ''
+        ), $atts));
+        
+        // make an array out of the ids
+        $pids = explode( ',', $id );
+        
+        // Some error checks
+        if ( count($pids) == 0 )
+            return __('[Pictures not found]','nggallery');
+        
+        $picturelist = nggdb::find_images_in_list( $pids );
+        
+        // show gallery
+        if ( is_array($picturelist) )
+            $out = nggCreateGallery($picturelist, false, $template);
+        
+        return $out;
+    }
+
+    /**
+     * Function to show a gallery of random or the most recent images with shortcode of type:
+     * 
+     * [random max="7" template="filename" id="2" /]
+     * [recent max="7" template="filename" id="3" mode="date" /]
+     * where 
+     * - max is the maximum number of random or recent images to show
+     * - template is a name for a gallery template, which is located in themefolder/nggallery or plugins/nextgen-gallery/view
+     * - id is the gallery id, if the recent/random pictures shall be taken from a specific gallery only
+     * - mode is either "id" (which takes the latest additions to the databse, default) 
+     *               or "date" (which takes the latest pictures by EXIF date) 
+     *               or "sort" (which takes the pictures by user sort order)
+     * 
+     * @param array $atts
+     * @return the_content
+     */
+    function show_random( $atts ) {
+    
+        extract(shortcode_atts(array(
+            'max'       => '',
+            'template'  => '',
+            'id'        => 0
+        ), $atts));
+        
+        $out = nggShowRandomRecent('random', $max, $template, $id);
+        
+        return $out;
+    }
+
+    function show_recent( $atts ) {
+    
+        extract(shortcode_atts(array(
+            'max'       => '',
+            'template'  => '',
+            'id'        => 0,
+            'mode'      => 'id'
+        ), $atts));
+        
+        $out = nggShowRandomRecent($mode, $max, $template, $id);
+        
+        return $out;
+    }
+
+    /**
+     * Shortcode for the Image tag cloud
+     * Usage : [tagcloud template="filename" /]
+     * 
+     * @param array $atts
+     * @return the content
+     */
+    function show_tagcloud( $atts ) {
+    
+        extract(shortcode_atts(array(
+            'template'  => ''
+        ), $atts));
+        
+        $out = nggTagCloud( '', $template );
+        
+        return $out;
+    }
+
+}
+
+// let's use it
+$nggShortcodes = new NextGEN_Shortcodes;    
+
+?>
\ No newline at end of file
diff --git a/wp-content/plugins/nextgen-gallery/lib/swfobject.php b/wp-content/plugins/nextgen-gallery/lib/swfobject.php
new file mode 100644
index 000000000..0b6ce7c4c
--- /dev/null
+++ b/wp-content/plugins/nextgen-gallery/lib/swfobject.php
@@ -0,0 +1,197 @@
+<?php
+if ( !class_exists('swfobject') ) :
+/**
+ * swfobject - PHP class for creating dynamic content of SWFObject V2.1
+ * 
+ * @author Alex Rabe
+ * @package NextGEN Gallery
+ * @version 0.6
+ * @copyright GNU General Public License Version 2
+ * @access public
+ * @example http://code.google.com/p/swfobject/
+ */
+class swfobject {
+	/**
+     * id of the HTML element
+     *
+     * @var string
+     */
+    var $id;
+	/**
+     * specifies the width of your SWF
+     *
+     * @var string
+     * @private
+     */
+    var $width;
+	/**
+     * specifies the height of your SWF
+     *
+     * @var string
+     * @privat
+     */
+    var $height;
+	/**
+     * the javascript output
+     *
+     * @var string
+     */
+    var $js;
+	/**
+     * the replacemnt message
+     *
+     * @var string
+     */
+    var $message = '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..';			
+	/**
+     * the classname for the div element
+     *
+     * @var string
+     */
+    var $classname = 'swfobject';			
+	/**
+     * array of flashvars
+     *
+     * @var array
+     */
+    var $flashvars;
+    /**
+     * array of nested object element params
+     *
+     * @var array
+     */
+    var $params;
+    /**
+     * array of object's attributest
+     *
+     * @var array
+     */
+    var $attributes;
+
+	/**
+	 * swfobject::swfobject()
+	 * 
+	 * @param string $swfUrl (required) specifies the URL of your SWF
+	 * @param string $id (required) specifies the id of the HTML element (containing your alternative content) you would like to have replaced by your Flash content
+	 * @param string $width (required) specifies the width of your SWF
+	 * @param string $height (required) specifies the height of your SWF
+	 * @param string $version (required) specifies the Flash player version your SWF is published for (format is: "major.minor.release")
+	 * @param string $expressInstallSwfurl (optional) specifies the URL of your express install SWF and activates Adobe express install
+	 * @param array $flashvars (optional) specifies your flashvars with name:value pairs
+	 * @param array $params (optional) specifies your nested object element params with name:value pair
+	 * @param array $attributes (optional) specifies your object's attributes with name:value pairs
+	 * @return string the content
+	 */
+	function swfobject( $swfUrl, $id, $width, $height, $version, $expressInstallSwfurl = false, $flashvars = false, $params = false, $attributes = false ) {
+	
+		global $swfCounter;
+		
+		// look for a other swfobject instance
+		if ( !isset($swfCounter) )
+			$swfCounter = 1;
+		
+		$this->id = $id . '_' . $swfCounter;
+		$this->width = $width;
+		$this->height = $height;		
+		
+		$this->flashvars  = ( is_array($flashvars) )  ? $flashvars : array();
+		$this->params     = ( is_array($params) )     ? $params : array();
+		$this->attributes = ( is_array($attributes) ) ? $attributes : array();
+
+		$this->embedSWF = 'swfobject.embedSWF("'. $swfUrl .'", "'. $this->id .'", "'. $width .'", "'. $height .'", "'. $version .'", '. $expressInstallSwfurl .', this.flashvars, this.params , this.attr );' . "\n";
+	}
+	
+	function output () {
+		
+		global $swfCounter;
+		
+		// count up if we have more than one swfobject
+		$swfCounter++;
+		
+		$out  = "\n" . '<div class="'. $this->classname .'" id="'. $this->id  .'" style="width:'.$this->width .'px; height:'. $this->height .'px;">';
+		$out .= "\n" . $this->message;
+		$out .= "\n" . '</div>';
+		
+		return $out;
+	}
+	
+	function javascript () {
+
+		//Build javascript
+		$this->js  = "\nvar " . $this->id  . " = {\n";
+		$this->js .= $this->add_js_parameters('params', $this->params) . ",\n";
+		$this->js .= $this->add_js_parameters('flashvars', $this->flashvars) . ",\n";
+		$this->js .= $this->add_js_parameters('attr', $this->attributes) . ",\n";
+		$this->js .= "\tstart : function() {" . "\n\t\t";
+		$this->js .= $this->embedSWF;
+		$this->js .= "\t}\n}\n";
+		$this->js .= $this->id  . '.start();';
+	
+		return $this->js;
+	}
+	
+	function add_flashvars ( $key, $value, $default = '', $type = '', $prefix = '' ) {
+
+		if ( is_bool( $value ) )
+			$value = ( $value ) ? 'true' : 'false';
+		elseif ( $type == 'bool' )
+			$value = ( $value == '1' ) ? 'true' : 'false';
+		
+		// do not add the variable if we hit the default setting 	
+		if ( $value == $default )	
+			return;
+			
+		$this->flashvars[$key] = $prefix . $value;
+		return;
+	}
+
+	function add_params ( $key, $value, $default = '', $type = '', $prefix = '' ) {
+
+		if ( is_bool( $value ) )
+			$value = ( $value ) ? 'true' : 'false';
+		elseif ( $type == 'bool' )
+			$value = ( $value == '1' ) ? 'true' : 'false';
+		
+		// do not add the variable if we hit the default setting 	
+		if ( $value == $default )	
+			return;
+			
+		$this->params[$key] = $prefix . $value;
+		return;
+	}
+
+	function add_attributes ( $key, $value, $default = '', $type = '', $prefix = '' ) {
+
+		if ( is_bool( $value ) )
+			$value = ( $value ) ? 'true' : 'false';
+		elseif ( $type == 'bool' )
+			$value = ( $value == '1' ) ? 'true' : 'false';
+		
+		// do not add the variable if we hit the default setting 	
+		if ( $value == $default )	
+			return;
+		
+		$this->attributes[$key] = $prefix . $value;
+		return;
+	}
+	
+	function add_js_parameters( $name, $params ) {
+		$list = '';
+		if ( is_array($params) ) {
+			foreach ($params as $key => $value) {
+				if  ( !empty($list) )
+					$list .= ",";
+				if (false === strrpos($key, '.') )		
+					$list .= "\n\t\t" . $key . ' : ' . '"' . $value .'"';
+				else
+					$list .= "\n\t\t'" . $key . '\' : ' . '"' . $value .'"';	
+			}
+		}
+		$js = "\t" . $name . ' : {' . $list . '}';		
+		return $js;		
+	}
+	
+}
+endif;
+
+?>
\ No newline at end of file
diff --git a/wp-content/plugins/nextgen-gallery/lib/tags.php b/wp-content/plugins/nextgen-gallery/lib/tags.php
new file mode 100644
index 000000000..ffb548ac4
--- /dev/null
+++ b/wp-content/plugins/nextgen-gallery/lib/tags.php
@@ -0,0 +1,380 @@
+<?php
+
+/**
+* Tag PHP class for the WordPress plugin NextGEN Gallery
+* nggallery.lib.php
+* 
+* @author 		Alex Rabe 
+* @copyright 	Copyright 2007-2008
+* 
+*/
+class nggTags {
+	
+	/**
+	 * Copy tags
+	 */
+	function copy_tags($src_pid, $dest_pid) {		
+		$tags = wp_get_object_terms( $src_pid, 'ngg_tag', 'fields=ids' );
+		$tags = array_map('intval', $tags);
+		wp_set_object_terms( $dest_pid, $tags, 'ngg_tag', true );
+		
+		return implode(',', $tags);
+	}
+	
+	/**
+	 * Rename tags
+	 */
+	function rename_tags($old = '', $new = '') {
+		
+		$return_value = array(
+			'status' => 'ok',
+			'message' => ''
+		); 
+		
+		if ( trim( str_replace(',', '', stripslashes($new)) ) == '' ) {
+			$return_value['message'] = __('No new tag specified!', 'nggallery');
+			$return_value['status'] = 'error';
+			return $return_value;
+		}
+
+		// String to array
+		$old_tags = explode(',', $old);
+		$new_tags = explode(',', $new);
+
+		// Remove empty element and trim
+		$old_tags = array_filter($old_tags, 'nggtags_delete_empty_element');
+		$new_tags = array_filter($new_tags, 'nggtags_delete_empty_element');
+
+		// If old/new tag are empty => exit !
+		if ( empty($old_tags) || empty($new_tags) ) {
+			$return_value['message'] = __('No new/old valid tag specified!', 'nggallery');
+			$return_value['status'] = 'error';
+			return $return_value;
+		}
+
+		$counter = 0;
+		if( count($old_tags) == count($new_tags) ) { // Rename only
+			foreach ( (array) $old_tags as $i => $old_tag ) {
+				$new_name = $new_tags[$i];
+
+				// Get term by name
+				$term = get_term_by('name', $old_tag, 'ngg_tag');
+				if ( !$term ) {
+					continue;
+				}
+
+				// Get objects from term ID
+				$objects_id = get_objects_in_term( $term->term_id, 'ngg_tag', array('fields' => 'all_with_object_id'));
+
+				// Delete old term
+				wp_delete_term( $term->term_id, 'ngg_tag' );
+				
+				// Set objects to new term ! (Append no replace)
+				foreach ( (array) $objects_id as $object_id ) {
+					wp_set_object_terms( $object_id, $new_name, 'ngg_tag', true );
+				}
+				
+				// Clean cache
+				clean_object_term_cache( $objects_id, 'ngg_tag');	
+				clean_term_cache($term->term_id, 'ngg_tag');
+
+				// Increment
+				$counter++;
+			}
+
+			if ( $counter == 0  ) {
+				$return_value['message'] = __('No tag renamed.', 'nggallery');
+			} else {
+				$return_value['message'] = sprintf(__('Renamed tag(s) &laquo;%1$s&raquo; to &laquo;%2$s&raquo;', 'nggallery'), $old, $new);
+			}
+		}
+		elseif ( count($new_tags) == 1  ) { // Merge
+			// Set new tag
+			$new_tag = $new_tags[0];
+			if ( empty($new_tag) ) {
+				$return_value['message'] = __('No valid new tag.', 'nggallery');
+				$return_value['status'] = 'error';
+				return $return_value;
+			}
+
+			// Get terms ID from old terms names
+			$terms_id = array();
+			foreach ( (array) $old_tags as $old_tag ) {
+				$term = get_term_by('name', addslashes($old_tag), 'ngg_tag');
+				$terms_id[] = (int) $term->term_id;
+			}
+
+			// Get objects from terms ID
+			$objects_id = get_objects_in_term( $terms_id, 'ngg_tag', array('fields' => 'all_with_object_id'));
+
+			// No objects ? exit !
+			if ( !$objects_id ) {
+				$return_value['message'] = __('No objects (post/page) found for specified old tags.', 'nggallery');
+				$return_value['status'] = 'error';
+				return $return_value;
+			}
+
+			// Delete old terms
+			foreach ( (array) $terms_id as $term_id ) {
+				wp_delete_term( $term_id, 'ngg_tag' );
+			}
+
+			// Set objects to new term ! (Append no replace)
+			foreach ( (array) $objects_id as $object_id ) {
+				wp_set_object_terms( $object_id, $new_tag, 'ngg_tag', true );
+				$counter++;
+			}
+
+			// Test if term is also a category
+			if ( is_term($new_tag, 'category') ) {
+				// Edit the slug to use the new term
+				$slug = sanitize_title($new_tag);
+				nggTags::edit_tag_slug( $new_tag, $slug );
+				unset($slug);
+			}
+			
+			// Clean cache
+			clean_object_term_cache( $objects_id, 'ngg_tag');	
+			clean_term_cache($terms_id, 'ngg_tag');
+
+			if ( $counter == 0  ) {
+				$return_value['message'] = __('No tag merged.', 'nggallery');
+			} else {
+				$return_value['message'] = sprintf(__('Merge tag(s) &laquo;%1$s&raquo; to &laquo;%2$s&raquo;. %3$s objects edited.', 'nggallery'), $old, $new, $counter);
+			}
+		} else { // Error
+			$return_value['message'] = sprintf(__('Error. No enough tags for rename. Too for merge. Choose !', 'nggallery'), $old);
+			$return_value['status'] = 'error';
+		}
+		
+		return $return_value;
+	}
+	
+	/**
+	 * Delete tags
+	 */
+	function delete_tags($delete) {
+		$return_value = array(
+			'status' => 'ok',
+			'message' => ''
+		); 
+		
+		if ( trim( str_replace(',', '', stripslashes($delete)) ) == '' ) {
+			$return_value['message'] = __('No tag specified!', 'nggallery');
+			$return_value['status'] = 'error';
+			return $return_value;
+		}
+
+		// In array + filter
+		$delete_tags = explode(',', $delete);
+		$delete_tags = array_filter($delete_tags, 'nggtags_delete_empty_element');
+		
+		// Delete tags
+		$counter = 0;
+		foreach ( (array) $delete_tags as $tag ) {
+			$term = get_term_by('name', $tag, 'ngg_tag');
+			$term_id = (int) $term->term_id;
+
+			if ( $term_id != 0 ) {				
+				wp_delete_term( $term_id, 'ngg_tag');
+				clean_term_cache( $term_id, 'ngg_tag');
+				$counter++;
+			}
+		}
+
+		if ( $counter == 0  ) {
+			$return_value['message'] = __('No tag deleted.', 'nggallery');
+		} else {
+			$return_value['message'] = sprintf(__('%1s tag(s) deleted.', 'nggallery'), $counter);
+		}
+	}
+	
+	/**
+	 * Edit tag slug given the name of the tag
+	 */
+	function edit_tag_slug( $names = '', $slugs = '' ) {
+		$return_value = array(
+			'status' => 'ok',
+			'message' => ''
+		); 
+		
+		if ( trim( str_replace(',', '', stripslashes($slugs)) ) == '' ) {
+			$return_value['message'] = __('No new slug(s) specified!', 'nggallery');
+			$return_value['status'] = 'error';
+			return $return_value;
+		}
+
+		$match_names = explode(',', $names);
+		$new_slugs = explode(',', $slugs);
+
+		$match_names = array_filter($match_names, 'nggtags_delete_empty_element');
+		$new_slugs = array_filter($new_slugs, 'nggtags_delete_empty_element');
+
+		if ( count($match_names) != count($new_slugs) ) {
+			$return_value['message'] = __('Tags number and slugs number isn\'t the same!', 'nggallery');
+			$return_value['status'] = 'error';
+			return $return_value;
+		} else {
+			$counter = 0;
+			foreach ( (array) $match_names as $i => $match_name ) {
+				// Sanitize slug + Escape
+				$new_slug = sanitize_title($new_slugs[$i]);
+
+				// Get term by name
+				$term = get_term_by('name', $match_name, 'ngg_tag');
+				if ( !$term ) {
+					continue;
+				}
+
+				// Increment
+				$counter++;
+
+				// Update term
+				wp_update_term($term->term_id, 'ngg_tag', array('slug' => $new_slug));
+				
+				// Clean cache
+				clean_term_cache($term->term_id, 'ngg_tag');
+			}
+		}
+
+		if ( $counter == 0  ) {
+			$return_value['message'] = __('No slug edited.', 'nggallery');
+		} else {
+			$return_value['message'] = sprintf(__('%s slug(s) edited.', 'nggallery'), $counter);
+		}
+		
+		return $return_value;
+	}
+		
+	/**
+	 * Get a list of the tags used by the images
+	 */
+	function find_all_tags() {
+		return get_terms('ngg_tag', '');
+	}
+	
+	/**
+	 * 
+	 */
+	function find_tags( $args = '', $skip_cache = false ) {
+		$taxonomy = 'ngg_tag';
+		
+		if ( $skip_cache == true ) {
+			$terms = get_terms( $taxonomy, $args );
+		} else {
+			$key = md5(serialize($args));
+			
+			// Get cache if exist
+			//--
+			if ( $cache = wp_cache_get( 'ngg_get_tags', 'nggallery' ) ) {
+				if ( isset( $cache[$key] ) ) {
+					return apply_filters('get_tags', $cache[$key], $args);
+				}
+			}
+
+			// Get tags
+			//--
+			$terms = get_terms( $taxonomy, $args );
+			if ( empty($terms) ) {
+				return array();
+			}
+
+			$cache[$key] = $terms;
+			wp_cache_set( 'ngg_get_tags', $cache, 'nggallery' );
+		}
+
+		$terms = apply_filters('get_tags', $terms, $args);
+		return $terms;
+	}
+	
+	/**
+	* Get images corresponding to a list of tags
+	*/
+	/**
+	 * nggTags::find_images_for_tags()
+	 * 
+	 * @param mixed $taglist
+	 * @param string $mode could be 'ASC' or 'RAND'
+	 * @return array of images
+	 */
+	function find_images_for_tags($taglist, $mode = "ASC") {
+		// return the images based on the tag
+		global $wpdb;
+		
+		// extract it into a array
+		$taglist = explode(",", $taglist);
+				
+		if ( !is_array($taglist) )
+			$taglist = array($taglist);
+		
+		$taglist = array_map('trim', $taglist);
+		$new_slugarray = array_map('sanitize_title', $taglist);
+		$sluglist   = "'" . implode("', '", $new_slugarray) . "'";
+		
+		// first get all $term_ids with this tag
+		$term_ids = $wpdb->get_col( $wpdb->prepare("SELECT term_id FROM $wpdb->terms WHERE slug IN ($sluglist) ORDER BY term_id ASC "));
+		$picids = get_objects_in_term($term_ids, 'ngg_tag');
+
+		//Now lookup in the database
+		if ($mode == 'RAND')
+			$pictures = nggdb::find_images_in_list($picids, true, 'RAND' );
+		else
+			$pictures = nggdb::find_images_in_list($picids, true, 'ASC');			
+
+		return $pictures;
+	}
+	
+	/**
+	* Return one image based on the tag. Required for a tag based album overview
+	*/
+	function get_album_images($taglist) {
+		global $wpdb;
+		
+		$taxonomy = 'ngg_tag';
+
+		// extract it into a array
+		$taglist = explode(',', $taglist);
+		
+		if (!is_array($taglist)) {
+			$taglist = array($taglist);
+		}
+		
+		$taglist = array_map('trim', $taglist);
+		$slugarray = array_map('sanitize_title', $taglist);
+		$slugarray = array_unique($slugarray);
+
+		$picarray = array();
+
+		foreach($slugarray as $slug) {  
+			// get random picture of tag 
+			$tsql  = "SELECT p.*, g.*, t.*, tt.* FROM $wpdb->term_relationships AS tr";  
+			$tsql .= " INNER JOIN $wpdb->nggpictures AS p ON (tr.object_id = p.pid)"; 
+			$tsql .= " INNER JOIN $wpdb->nggallery AS g ON (g.gid = p.galleryid)"; 
+			$tsql .= " INNER JOIN $wpdb->term_taxonomy AS tt ON (tr.term_taxonomy_id = tt.term_taxonomy_id)"; 
+			$tsql .= " INNER JOIN $wpdb->terms AS t ON (tt.term_id = t.term_id)"; 
+			$tsql .= " WHERE tt.taxonomy = '$taxonomy' AND t.slug = '$slug' ORDER BY rand() limit 1 "; 
+			$pic_data = $wpdb->get_row($tsql, OBJECT);  
+			
+			if ($pic_data) $picarray[] = $pic_data;  
+		} 
+		
+		return $picarray;
+	}
+}
+
+/**
+ * trim and remove empty element
+ *
+ * @param string $element
+ * @return string
+ */
+if (!function_exists('nggtags_delete_empty_element')) {
+	function nggtags_delete_empty_element( &$element ) {
+		$element = stripslashes($element);
+		$element = trim($element);
+		if ( !empty($element) ) {
+			return $element;
+		}
+	}
+}
+?>
\ No newline at end of file
diff --git a/wp-content/plugins/nextgen-gallery/lib/xmlrpc.php b/wp-content/plugins/nextgen-gallery/lib/xmlrpc.php
new file mode 100644
index 000000000..da1681a18
--- /dev/null
+++ b/wp-content/plugins/nextgen-gallery/lib/xmlrpc.php
@@ -0,0 +1,734 @@
+<?php
+/**
+ * XML-RPC protocol support for NextGEN Gallery
+ *
+ * @package NextGEN Gallery
+ * @author Alex Rabe
+ * @copyright 2009-2011
+ */
+class nggXMLRPC{
+	
+	/**
+	 * Init the methods for the XMLRPC hook
+	 * 
+	 */	
+	function __construct() {
+		
+		add_filter('xmlrpc_methods', array(&$this, 'add_methods') );
+	}
+	
+	function add_methods($methods) {
+	    
+		$methods['ngg.installed'] = array(&$this, 'nggInstalled');
+        // Image methods
+	    $methods['ngg.getImages'] = array(&$this, 'getImages');
+	    $methods['ngg.uploadImage'] = array(&$this, 'uploadImage');
+        $methods['ngg.deleteImage'] = array(&$this, 'deleteImage');
+        $methods['ngg.editImage'] = array(&$this, 'editImage');
+        // Gallery methods
+	    $methods['ngg.getGalleries'] = array(&$this, 'getGalleries');
+	    $methods['ngg.newGallery'] = array(&$this, 'newGallery');
+        $methods['ngg.editGallery'] = array(&$this, 'editGallery');
+        $methods['ngg.deleteGallery'] = array(&$this, 'deleteGallery');
+        // Album methods
+   	    $methods['ngg.getAlbums'] = array(&$this, 'getAlbums');
+        $methods['ngg.newAlbum'] = array(&$this, 'newAlbum');
+	    $methods['ngg.editAlbum'] = array(&$this, 'editAlbum');
+        $methods['ngg.deleteAlbum'] = array(&$this, 'deleteAlbum');
+        
+		return $methods;
+	}
+
+	/**
+	 * Check if NextGEN Gallery is installed
+	 * 
+	 * @since 1.4
+	 * 
+	 * @param none
+	 * @return string version number
+	 */
+	function nggInstalled($args) {
+		global $ngg;
+		return array( 'version' => $ngg->version );
+	}
+	
+	/**
+	 * Log user in.
+	 *
+	 * @since 2.8
+	 *
+	 * @param string $username User's username.
+	 * @param string $password User's password.
+	 * @return mixed WP_User object if authentication passed, false otherwise
+	 */
+	function login($username, $password) {
+		if ( !get_option( 'enable_xmlrpc' ) ) {
+			$this->error = new IXR_Error( 405, sprintf( __( 'XML-RPC services are disabled on this blog.  An admin user can enable them at %s'),  admin_url('options-writing.php') ) );
+			return false;
+		}
+
+		$user = wp_authenticate($username, $password);
+
+		if (is_wp_error($user)) {
+			$this->error = new IXR_Error(403, __('Bad login/pass combination.'));
+			return false;
+		}
+
+		set_current_user( $user->ID );
+		return $user;
+	}
+
+	/**
+	 * Method "ngg.uploadImage"
+	 * Uploads a image to a gallery
+	 *
+	 * @since 1.4
+	 * 
+	 * @copyright addapted from WP Core
+	 * @param array $args Method parameters.
+	 * 			- int blog_id
+	 *	    	- string username
+	 *	    	- string password
+	 *	    	- struct data
+	 *	          o string name
+	 *            o string type (optional)
+	 *	          o base64 bits 
+	 *	          o bool overwrite (optional)
+	 *			  o int gallery 
+	 *			  o int image_id  (optional) 	 
+	 * @return array with image meta data
+	 */
+	function uploadImage($args) {
+		global $wpdb;
+		
+		require_once ( dirname ( dirname( __FILE__ ) ). '/admin/functions.php' );	// admin functions
+		require_once ( 'meta.php' );			// meta data import
+
+		$blog_ID	= (int) $args[0];
+		$username	= $wpdb->escape($args[1]);
+		$password	= $wpdb->escape($args[2]);
+		$data		= $args[3];
+
+		$name = $data['name'];
+		$type = $data['type'];
+		$bits = $data['bits'];
+		
+		// gallery & image id
+		$gid  	= (int) $data['gallery'];  // required field
+		$pid  	= (int) $data['image_id']; // optional but more foolproof of overwrite
+		$image	= false; // container for the image object 
+
+		logIO('O', '(NGG) Received '.strlen($bits).' bytes');
+
+		if ( !$user = $this->login($username, $password) )
+			return $this->error;
+
+		// Check if you have the correct capability for upload
+		if ( !current_user_can('NextGEN Upload images') ) {
+			logIO('O', '(NGG) User does not have upload_files capability');
+			$this->error = new IXR_Error(401, __('You are not allowed to upload files to this site.'));
+			return $this->error;
+		}
+		
+		// Look for the gallery , could we find it ?
+		if ( !$gallery = nggdb::find_gallery($gid) ) 
+			return new IXR_Error(404, __('Could not find gallery ' . $gid ));
+		
+		// Now check if you have the correct capability for this gallery
+		if ( !nggAdmin::can_manage_this_gallery($gallery->author) ) {
+			logIO('O', '(NGG) User does not have upload_files capability');
+			$this->error = new IXR_Error(401, __('You are not allowed to upload files to this gallery.'));
+			return $this->error;
+		}           
+		                                                 
+		//clean filename and extract extension
+		$filepart = nggGallery::fileinfo( $name );
+		$name = $filepart['basename'];
+		
+		// check for allowed extension and if it's an image file
+		$ext = array('jpg', 'png', 'gif'); 
+		if ( !in_array($filepart['extension'], $ext) ){ 
+			logIO('O', '(NGG) Not allowed file type');
+			$this->error = new IXR_Error(401, __('This is no valid image file.','nggallery'));
+			return $this->error;
+		}	
+
+		// in the case you would overwrite the image, let's delete the old one first
+		if(!empty($data["overwrite"]) && ($data["overwrite"] == true)) {
+			
+			// search for the image based on the filename, if it's not already provided
+			if ($pid == 0)
+				$pid = $wpdb->get_col(" SELECT pid FROM {$wpdb->nggpictures} WHERE filename = '{$name}' AND galleryid = '{$gid}' ");
+			
+			if ( !$image = nggdb::find_image( $pid ) )
+				return new IXR_Error(404, __('Could not find image id ' . $pid ));			
+
+			// sync the gallery<->image parameter, otherwise we may copy it to the wrong gallery
+			$gallery = $image;
+			
+			// delete now the image
+			if ( !@unlink( $image->imagePath ) ) {
+				$errorString = sprintf(__('Failed to delete image %1$s ','nggallery'), $image->imagePath);
+				logIO('O', '(NGG) ' . $errorString);
+				return new IXR_Error(500, $errorString);
+			}
+		}
+
+		// upload routine from wp core, load first the image to the upload folder, $upload['file'] contain the path
+		$upload = wp_upload_bits($name, $type, $bits);
+		if ( ! empty($upload['error']) ) {
+			$errorString = sprintf(__('Could not write file %1$s (%2$s)'), $name, $upload['error']);
+			logIO('O', '(NGG) ' . $errorString);
+			return new IXR_Error(500, $errorString);
+		}
+		
+		// this is the dir to the gallery		
+		$path = WINABSPATH . $gallery->path;
+		
+		// check if the filename already exist, if not add a counter index
+		$filename = wp_unique_filename( $path, $name );
+		$destination = $path . '/'. $filename;
+
+		// Move files to gallery folder
+		if ( !@rename($upload['file'], $destination ) ) {
+			$errorString = sprintf(__('Failed to move image %1$s to %2$s','nggallery'), '<strong>' . $upload['file'] . '</strong>', $destination);
+			logIO('O', '(NGG) ' . $errorString);
+			return new IXR_Error(500, $errorString);
+		}
+		
+		//add to database if it's a new image
+		if(empty($data["overwrite"]) || ($data["overwrite"] == false)) {
+			$pid_array = nggAdmin::add_Images( $gallery->gid, array( $filename ) );
+			// the first element is our new image id
+			if (count($pid_array) == 1)
+				$pid = $pid_array[0];
+		}
+		
+		//get all information about the image, in the case it's a new one
+		if (!$image)
+			$image = nggdb::find_image( $pid );
+		
+		// create again the thumbnail, should return a '1'
+		nggAdmin::create_thumbnail( $image );
+		
+		return apply_filters( 'ngg_upload_image', $image );
+
+	}
+
+	/**
+	 * Method "ngg.deleteImage"
+	 * Delete a Image from the database and gallery
+	 * 
+	 * @since 1.7.3
+	 * 
+	 * @param array $args Method parameters.
+	 * 			- int blog_id
+	 *	    	- string username
+	 *	    	- string password
+	 *	    	- int image_id 
+	 * @return true
+	 */
+	function deleteImage($args) {
+		
+		global $nggdb, $ngg;
+        
+        require_once ( dirname ( dirname( __FILE__ ) ). '/admin/functions.php' );	// admin functions
+
+        $this->escape($args);
+		$blog_ID    = (int) $args[0];
+		$username	= $args[1];
+		$password	= $args[2];
+        $id    	    = (int) $args[3];
+
+		if ( !$user = $this->login($username, $password) )
+			return $this->error;
+
+		if ( !$image = nggdb::find_image($id) )
+			return(new IXR_Error(404, __("Invalid image ID")));
+
+		if ( !current_user_can( 'NextGEN Manage gallery' ) && !nggAdmin::can_manage_this_gallery($image->author) )
+			return new IXR_Error( 401, __( 'Sorry, you must be able to edit this image' ) );
+
+		if ($ngg->options['deleteImg']) {
+            @unlink($image->imagePath);
+            @unlink($image->thumbPath);	
+            @unlink($image->imagePath . "_backup" );
+        } 
+
+        nggdb::delete_image ( $id );
+		
+		return true;
+		
+	}
+
+	/**
+	 * Method "ngg.editImage"
+	 * Edit a existing Image
+	 * 
+	 * @since 1.7.3
+	 * 
+	 * @param array $args Method parameters.
+	 * 			- int blog_id
+	 *	    	- string username
+	 *	    	- string password
+	 *	    	- int Image ID
+	 *	    	- string alt/title text
+	 *	    	- string description
+	 *	    	- int exclude from gallery (0 or 1)
+	 * @return true if success
+	 */
+	function editImage($args) {
+		
+		global $ngg;
+
+		require_once ( dirname ( dirname( __FILE__ ) ). '/admin/functions.php' );	// admin functions
+        
+        $this->escape($args);
+		$blog_ID    = (int) $args[0];
+		$username	= $args[1];
+		$password	= $args[2];
+		$id      	= (int) $args[3];
+        $alttext    = $args[4];
+        $description= $args[5];
+        $exclude    = (int) $args[6];
+
+		if ( !$user = $this->login($username, $password) )
+			return $this->error;
+
+		if ( !$image = nggdb::find_image($id)  )
+			return(new IXR_Error(404, __("Invalid image ID")));
+
+        if ( !current_user_can( 'NextGEN Manage gallery' ) && !nggAdmin::can_manage_this_gallery($image->author) )
+            return new IXR_Error( 401, __( 'Sorry, you must be able to edit this image' ) );
+
+		if ( !empty( $alttext ) )
+			$result = nggdb::update_image($id, false, false, $description, $alttext, $exclude);
+		
+		if ( !$result )
+			return new IXR_Error(500, __('Sorry, could not update the image'));
+
+		return true;
+		
+	}
+
+	/**
+	 * Method "ngg.newGallery"
+	 * Create a new gallery
+	 * 
+	 * @since 1.4
+	 * 
+	 * @param array $args Method parameters.
+	 * 			- int blog_id
+	 *	    	- string username
+	 *	    	- string password
+	 *	    	- string new gallery name
+	 * @return int with new gallery ID
+	 */
+	function newGallery($args) {
+		
+		global $ngg;
+
+		require_once ( dirname ( dirname( __FILE__ ) ). '/admin/functions.php' );	// admin functions
+        
+        $this->escape($args);
+		$blog_ID    = (int) $args[0];
+		$username	= $args[1];
+		$password	= $args[2];
+		$name   	= $args[3];
+		$id 		= false;
+
+		if ( !$user = $this->login($username, $password) )
+			return $this->error;
+
+		if( !current_user_can( 'NextGEN Manage gallery' ) )
+			return new IXR_Error( 401, __( 'Sorry, you must be able to manage galleries' ) );
+
+		if ( !empty( $name ) )
+			$id = nggAdmin::create_gallery($name, $ngg->options['gallerypath'], false);
+		
+		if ( !$id )
+			return new IXR_Error(500, __('Sorry, could not create the gallery'));
+
+		return($id);
+		
+	}
+
+	/**
+	 * Method "ngg.editGallery"
+	 * Edit a existing gallery
+	 * 
+	 * @since 1.7.0
+	 * 
+	 * @param array $args Method parameters.
+	 * 			- int blog_id
+	 *	    	- string username
+	 *	    	- string password
+	 *	    	- int gallery ID
+	 *	    	- string gallery name
+	 *	    	- string title
+	 *	    	- string description 
+     *          - int ID of the preview picture 
+	 * @return true if success
+	 */
+	function editGallery($args) {
+		
+		global $ngg;
+
+		require_once ( dirname ( dirname( __FILE__ ) ). '/admin/functions.php' );	// admin functions
+        
+        $this->escape($args);
+		$blog_ID    = (int) $args[0];
+		$username	= $args[1];
+		$password	= $args[2];
+		$id      	= (int) $args[3];
+		$name 		= $args[4];
+        $title      = $args[5];
+        $description= $args[6];
+        $previewpic = (int) $args[7];
+
+		if ( !$user = $this->login($username, $password) )
+			return $this->error;
+
+		if ( !$gallery = nggdb::find_gallery($id)  )
+			return(new IXR_Error(404, __("Invalid gallery ID")));
+
+        if ( !current_user_can( 'NextGEN Manage gallery' ) && !nggAdmin::can_manage_this_gallery($gallery->author) )
+            return new IXR_Error( 401, __( 'Sorry, you must be able to manage this gallery' ) );
+
+		if ( !empty( $name ) )
+			$result = nggdb::update_gallery($id, $name, false, $title, $description, false, $previewpic);
+		
+		if ( !$result )
+			return new IXR_Error(500, __('Sorry, could not update the gallery'));
+
+		return true;
+		
+	}
+
+	/**
+	 * Method "ngg.newAlbum"
+	 * Create a new album
+	 * 
+	 * @since 1.7.0
+	 * 
+	 * @param array $args Method parameters.
+	 * 			- int blog_id
+	 *	    	- string username
+	 *	    	- string password
+	 *	    	- string new album name
+     *          - int id of preview image
+     *          - string description
+     *          - string serialized array of galleries 
+	 * @return int with new album ID
+	 */
+	function newAlbum($args) {
+		
+		global $ngg;
+
+        $this->escape($args);
+		$blog_ID    = (int) $args[0];
+		$username	= $args[1];
+		$password	= $args[2];
+		$name   	= $args[3];
+		$preview   	= (int) $args[4];
+        $description= $args[5];
+        $galleries 	= $args[6];
+        $id 		= false;
+
+		if ( !$user = $this->login($username, $password) )
+			return $this->error;
+
+		if( !current_user_can( 'NextGEN Edit album' ) || !nggGallery::current_user_can( 'NextGEN Add/Delete album' ) )
+			return new IXR_Error( 401, __( 'Sorry, you must be able to manage albums' ) );
+
+		if ( !empty( $name ) )
+			$id = $result = nggdb::add_album( $name, $preview, $description, $galleries );
+		
+		if ( !$id )
+			return new IXR_Error(500, __('Sorry, could not create the album'));
+
+		return($id);
+		
+	}
+
+	/**
+	 * Method "ngg.editAlbum"
+	 * Edit a existing Album
+	 * 
+	 * @since 1.7.0
+	 * 
+	 * @param array $args Method parameters.
+	 * 			- int blog_id
+	 *	    	- string username
+	 *	    	- string password
+	 *	    	- int album ID
+	 *	    	- string album name
+     *          - int id of preview image
+     *          - string description
+     *          - string serialized array of galleries 
+	 * @return true if success
+	 */
+	function editAlbum($args) {
+		
+		global $ngg;
+
+		require_once ( dirname ( dirname( __FILE__ ) ). '/admin/functions.php' );	// admin functions
+        
+        $this->escape($args);
+		$blog_ID    = (int) $args[0];
+		$username	= $args[1];
+		$password	= $args[2];
+		$id      	= (int) $args[3];
+		$name   	= $args[4];
+		$preview   	= (int) $args[5];
+        $description= $args[6];
+        $galleries 	= $args[7];
+
+		if ( !$user = $this->login($username, $password) )
+			return $this->error;
+
+		if ( !$album = nggdb::find_album($id) )
+			return(new IXR_Error(404, __("Invalid album ID")));
+
+		if( !current_user_can( 'NextGEN Edit album' ) )
+			return new IXR_Error( 401, __( 'Sorry, you must be able to manage albums' ) );
+
+		if ( !empty( $name ) )
+			$result = nggdb::update_album($id, $name, $preview, $description, $description, $galleries);
+		
+		if ( !$result )
+			return new IXR_Error(500, __('Sorry, could not update the album'));
+
+		return true;
+		
+	}
+
+	/**
+	 * Method "ngg.deleteAlbum"
+	 * Delete a album from the database
+	 * 
+	 * @since 1.7.0
+	 * 
+	 * @param array $args Method parameters.
+	 * 			- int blog_id
+	 *	    	- string username
+	 *	    	- string password
+	 *	    	- int album id 
+	 * @return true
+	 */
+	function deleteAlbum($args) {
+		
+		global $nggdb;
+
+        $this->escape($args);
+		$blog_ID    = (int) $args[0];
+		$username	= $args[1];
+		$password	= $args[2];
+        $id    	    = (int) $args[3];
+
+		if ( !$user = $this->login($username, $password) )
+			return $this->error;
+
+		if ( !$album = nggdb::find_album($id) )
+			return(new IXR_Error(404, __("Invalid album ID")));
+
+		if( !current_user_can( 'NextGEN Edit album' ) && !nggGallery::current_user_can( 'NextGEN Add/Delete album' ) )
+			return new IXR_Error( 401, __( 'Sorry, you must be able to manage albums' ) );
+		
+		$nggdb->delete_album($id);
+		
+		return true;
+		
+	}
+
+	/**
+	 * Method "ngg.deleteGallery"
+	 * Delete a gallery from the database, including all images
+	 * 
+	 * @since 1.7.0
+	 * 
+	 * @param array $args Method parameters.
+	 * 			- int blog_id
+	 *	    	- string username
+	 *	    	- string password
+	 *	    	- int gallery_id 
+	 * @return true
+	 */
+	function deleteGallery($args) {
+		
+		global $nggdb;
+
+        require_once ( dirname ( dirname( __FILE__ ) ). '/admin/functions.php' );	// admin functions
+
+        $this->escape($args);
+		$blog_ID    = (int) $args[0];
+		$username	= $args[1];
+		$password	= $args[2];
+        $id    	    = (int) $args[3];
+
+		if ( !$user = $this->login($username, $password) )
+			return $this->error;
+
+		if ( !$gallery = nggdb::find_gallery($id) )
+			return(new IXR_Error(404, __("Invalid gallery ID")));
+
+		if ( !current_user_can( 'NextGEN Manage gallery' ) && !nggAdmin::can_manage_this_gallery($gallery->author) )
+			return new IXR_Error( 401, __( 'Sorry, you must be able to manage galleries' ) );
+		
+		$nggdb->delete_gallery($id);
+		
+		return true;
+		
+	}
+
+	/**
+	 * Method "ngg.getAlbums"
+	 * Return the list of all albums
+	 * 
+	 * @since 1.7.0
+	 * 
+	 * @param array $args Method parameters.
+	 * 			- int blog_id
+	 *	    	- string username
+	 *	    	- string password
+	 * @return array with all galleries
+	 */
+	function getAlbums($args) {
+		
+		global $nggdb;
+
+        $this->escape($args);
+		$blog_ID    = (int) $args[0];
+		$username	= $args[1];
+		$password	= $args[2];
+
+		if ( !$user = $this->login($username, $password) )
+			return $this->error;
+
+		if( !current_user_can( 'NextGEN Edit album' ) )
+			return new IXR_Error( 401, __( 'Sorry, you must be able to manage albums' ) );
+		
+		$album_list = $nggdb->find_all_album('id', 'ASC', 0, 0 );
+		
+		return($album_list);
+		
+	}
+
+	/**
+	 * Method "ngg.getGalleries"
+	 * Return the list of all galleries
+	 * 
+	 * @since 1.4
+	 * 
+	 * @param array $args Method parameters.
+	 * 			- int blog_id
+	 *	    	- string username
+	 *	    	- string password
+	 * @return array with all galleries
+	 */
+	function getGalleries($args) {
+		
+		global $nggdb;
+
+        $this->escape($args);
+		$blog_ID    = (int) $args[0];
+		$username	= $args[1];
+		$password	= $args[2];
+
+		if ( !$user = $this->login($username, $password) )
+			return $this->error;
+
+		if( !current_user_can( 'NextGEN Manage gallery' ) )
+			return new IXR_Error( 401, __( 'Sorry, you must be able to manage galleries' ) );
+		
+		$gallery_list = $nggdb->find_all_galleries('gid', 'asc', true, 0, 0, false);
+		
+		return($gallery_list);
+		
+	}
+
+	/**
+	 * Method "ngg.getImages"
+	 * Return the list of all images inside a gallery
+	 * 
+	 * @since 1.4
+	 * 
+	 * @param array $args Method parameters.
+	 * 			- int blog_id
+	 *	    	- string username
+	 *	    	- string password
+	 *	    	- int gallery_id 
+	 * @return array with all images
+	 */
+	function getImages($args) {
+		
+		global $nggdb;
+
+		require_once ( dirname ( dirname( __FILE__ ) ). '/admin/functions.php' );	// admin functions
+        
+        $this->escape($args);
+		$blog_ID    = (int) $args[0];
+		$username	= $args[1];
+		$password	= $args[2];
+		$gid    	= (int) $args[3];
+
+		if ( !$user = $this->login($username, $password) )
+			return $this->error;
+
+		// Look for the gallery , could we find it ?
+		if ( !$gallery = nggdb::find_gallery( $gid ) ) 
+			return new IXR_Error(404, __('Could not find gallery ' . $gid ));
+
+		// Now check if you have the correct capability for this gallery
+		if ( !nggAdmin::can_manage_this_gallery($gallery->author) ) {
+			logIO('O', '(NGG) User does not have upload_files capability');
+			$this->error = new IXR_Error(401, __('You are not allowed to upload files to this gallery.'));
+			return $this->error;
+		}
+		
+		// get picture values
+		$picture_list = $nggdb->get_gallery( $gid, 'pid', 'ASC', false );
+		
+		return($picture_list);
+		
+	}
+
+	/**
+	 * Sanitize string or array of strings for database.
+	 *
+	 * @since 1.7.0
+     * @author WordPress Core
+     * @filesource inludes/class-wp-xmlrpc-server.php
+	 *
+	 * @param string|array $array Sanitize single string or array of strings.
+	 * @return string|array Type matches $array and sanitized for the database.
+	 */
+	function escape(&$array) {
+		global $wpdb;
+
+		if (!is_array($array)) {
+			return($wpdb->escape($array));
+		} else {
+			foreach ( (array) $array as $k => $v ) {
+				if ( is_array($v) ) {
+					$this->escape($array[$k]);
+				} else if ( is_object($v) ) {
+					//skip
+				} else {
+					$array[$k] = $wpdb->escape($v);
+				}
+			}
+		}
+	}
+
+	/**
+	 * PHP5 style destructor and will run when database object is destroyed.
+	 *
+	 * @return bool Always true
+	 */
+	function __destruct() {
+		
+	}
+}
+
+$nggxmlrpc = new nggXMLRPC();
\ No newline at end of file
diff --git a/wp-content/plugins/nextgen-gallery/ngg-config.php b/wp-content/plugins/nextgen-gallery/ngg-config.php
new file mode 100644
index 000000000..e30986790
--- /dev/null
+++ b/wp-content/plugins/nextgen-gallery/ngg-config.php
@@ -0,0 +1,33 @@
+<?php
+/**
+ * Bootstrap file for getting the ABSPATH constant to wp-load.php
+ * This is requried when a plugin requires access not via the admin screen.
+ *
+ * If the wp-load.php file is not found, then an error will be displayed
+ *
+ * @package WordPress
+ * @since Version 2.6
+ */
+ 
+/** Define the server path to the file wp-config here, if you placed WP-CONTENT outside the classic file structure */
+
+$path  = ''; // It should be end with a trailing slash    
+
+/** That's all, stop editing from here **/
+
+if ( !defined('WP_LOAD_PATH') ) {
+
+	/** classic root path if wp-content and plugins is below wp-config.php */
+	$classic_root = dirname(dirname(dirname(dirname(__FILE__)))) . '/' ;
+	
+	if (file_exists( $classic_root . 'wp-load.php') )
+		define( 'WP_LOAD_PATH', $classic_root);
+	else
+		if (file_exists( $path . 'wp-load.php') )
+			define( 'WP_LOAD_PATH', $path);
+		else
+			exit("Could not find wp-load.php");
+}
+
+// let's load WordPress
+require_once( WP_LOAD_PATH . 'wp-load.php');
\ No newline at end of file
diff --git a/wp-content/plugins/nextgen-gallery/nggallery.php b/wp-content/plugins/nextgen-gallery/nggallery.php
new file mode 100644
index 000000000..cef4167e8
--- /dev/null
+++ b/wp-content/plugins/nextgen-gallery/nggallery.php
@@ -0,0 +1,526 @@
+<?php
+/*
+Plugin Name: NextGEN Gallery
+Plugin URI: http://alexrabe.de/?page_id=80
+Description: A NextGENeration Photo gallery for the Web 2.0.
+Author: Alex Rabe
+Version: 1.7.4
+
+Author URI: http://alexrabe.de/
+
+Copyright 2007-2011 by Alex Rabe & NextGEN DEV-Team
+
+This program is free software; you can redistribute it and/or modify
+it under the terms of the GNU General Public License as published by
+the Free Software Foundation; either version 2 of the License, or
+(at your option) any later version.
+
+This program is distributed in the hope that it will be useful,
+but WITHOUT ANY WARRANTY; without even the implied warranty of
+MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+GNU General Public License for more details.
+
+You should have received a copy of the GNU General Public License
+along with this program; if not, write to the Free Software
+Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA  02110-1301  USA
+
+*/ 
+
+// Stop direct call
+if(preg_match('#' . basename(__FILE__) . '#', $_SERVER['PHP_SELF'])) { die('You are not allowed to call this page directly.'); }
+
+// ini_set('display_errors', '1');
+// ini_set('error_reporting', E_ALL);
+if (!class_exists('nggLoader')) {
+class nggLoader {
+	
+	var $version     = '1.7.4';
+	var $dbversion   = '1.7.0';
+	var $minium_WP   = '3.0';
+	var $donators    = 'http://nextgen.boelinger.com/donators.php';
+	var $options     = '';
+	var $manage_page;
+	var $add_PHP5_notice = false;
+	
+	function nggLoader() {
+
+		// Stop the plugin if we missed the requirements
+		if ( ( !$this->required_version() ) || ( !$this->check_memory_limit() ) )
+			return;
+			
+		// Get some constants first
+		$this->load_options();
+		$this->define_constant();
+		$this->define_tables();
+		$this->load_dependencies();
+		$this->start_rewrite_module();
+		
+		$this->plugin_name = plugin_basename(__FILE__);
+		
+		// Init options & tables during activation & deregister init option
+		register_activation_hook( $this->plugin_name, array(&$this, 'activate') );
+		register_deactivation_hook( $this->plugin_name, array(&$this, 'deactivate') );	
+
+		// Register a uninstall hook to remove all tables & option automatic
+		register_uninstall_hook( $this->plugin_name, array('nggLoader', 'uninstall') );
+
+		// Start this plugin once all other plugins are fully loaded
+		add_action( 'plugins_loaded', array(&$this, 'start_plugin') );
+		
+		// Register_taxonomy must be used during the init
+		add_action( 'init', array(&$this, 'register_taxonomy') );
+        
+        // Hook to upgrade all blogs with one click and adding a new one later
+        add_action( 'wpmu_upgrade_site', array(&$this, 'multisite_upgrade') );
+        add_action( 'wpmu_new_blog', array(&$this, 'multisite_new_blog'), 10, 6); 	
+        		
+		// Add a message for PHP4 Users, can disable the update message later on
+		if (version_compare(PHP_VERSION, '5.0.0', '<'))
+			add_filter('transient_update_plugins', array(&$this, 'disable_upgrade'));
+		
+		//Add some links on the plugin page
+		add_filter('plugin_row_meta', array(&$this, 'add_plugin_links'), 10, 2);
+        
+        // Check for the header / footer
+        add_action( 'init', array(&$this, 'test_head_footer_init' ) );	
+		
+	}
+	
+	function start_plugin() {
+
+		global $nggRewrite;
+
+		// Load the language file
+		$this->load_textdomain();
+		
+		// All credits to the tranlator 
+		$this->translator  = '<p class="hint">'. __('<strong>Translation by : </strong><a target="_blank" href="http://alexrabe.de/wordpress-plugins/nextgen-gallery/languages/">See here</a>', 'nggallery') . '</p>';
+		$this->translator .= '<p class="hint">'. __('<strong>This translation is not yet updated for Version 1.7.3</strong>. If you would like to help with translation, download the current po from the plugin folder and read <a href="http://alexrabe.de/wordpress-plugins/wordtube/translation-of-plugins/">here</a> how you can translate the plugin.', 'nggallery') . '</p>'; 
+
+        // Check for upgrade
+        $this->check_for_upgrade();
+				
+		// Content Filters
+		add_filter('ngg_gallery_name', 'sanitize_title');
+
+		// Check if we are in the admin area
+		if ( is_admin() ) {	
+			
+			// Pass the init check or show a message
+			if (get_option( 'ngg_init_check' ) != false )
+				add_action( 'admin_notices', create_function('', 'echo \'<div id="message" class="error"><p><strong>' . get_option( "ngg_init_check" ) . '</strong></p></div>\';') );
+				
+		} else {			
+			
+			// Add MRSS to wp_head
+			if ( $this->options['useMediaRSS'] )
+				add_action('wp_head', array('nggMediaRss', 'add_mrss_alternate_link'));
+			
+			// If activated, add PicLens/Cooliris javascript to footer
+			if ( $this->options['usePicLens'] )
+				add_action('wp_head', array('nggMediaRss', 'add_piclens_javascript'));
+                
+            // Look for XML request, before page is render
+            add_action('parse_request',  array(&$this, 'check_request') );    
+				
+			// Add the script and style files
+			add_action('template_redirect', array(&$this, 'load_scripts') );
+			add_action('template_redirect', array(&$this, 'load_styles') );
+			
+			// Add a version number to the header
+			add_action('wp_head', create_function('', 'echo "\n<meta name=\'NextGEN\' content=\'' . $this->version . '\' />\n";') );
+
+		}	
+	}
+
+    function check_request( $wp ) {
+    	
+    	if ( !array_key_exists('callback', $wp->query_vars) )
+    		return;
+        
+        if ( $wp->query_vars['callback'] == 'imagerotator') {
+            require_once (dirname (__FILE__) . '/xml/imagerotator.php');
+            exit();
+        }
+
+        if ( $wp->query_vars['callback'] == 'json') {
+            require_once (dirname (__FILE__) . '/xml/json.php');
+            exit();
+        }
+
+        if ( $wp->query_vars['callback'] == 'image') {
+            require_once (dirname (__FILE__) . '/nggshow.php');
+            exit();
+        }
+        
+		//TODO:see trac #12400 could be an option for WP3.0 
+        if ( $wp->query_vars['callback'] == 'ngg-ajax') {
+            require_once (dirname (__FILE__) . '/xml/ajax.php');
+            exit();
+        }
+        
+    }
+	
+	function required_version() {
+		
+		global $wp_version;
+			
+		// Check for WP version installation
+		$wp_ok  =  version_compare($wp_version, $this->minium_WP, '>=');
+		
+		if ( ($wp_ok == FALSE) ) {
+			add_action(
+				'admin_notices', 
+				create_function(
+					'', 
+					'global $ngg; printf (\'<div id="message" class="error"><p><strong>\' . __(\'Sorry, NextGEN Gallery works only under WordPress %s or higher\', "nggallery" ) . \'</strong></p></div>\', $ngg->minium_WP );'
+				)
+			);
+			return false;
+		}
+		
+		return true;
+		
+	}
+	
+	function check_memory_limit() {
+
+        // get the real memory limit before some increase it
+		$this->memory_limit = (int) substr( ini_get('memory_limit'), 0, -1);
+        
+		//This works only with enough memory, 16MB is silly, wordpress requires already 16MB :-)
+		if ( ($this->memory_limit != 0) && ($this->memory_limit < 16 ) ) {
+			add_action(
+				'admin_notices', 
+				create_function(
+					'', 
+					'echo \'<div id="message" class="error"><p><strong>' . __('Sorry, NextGEN Gallery works only with a Memory Limit of 16 MB or higher', 'nggallery') . '</strong></p></div>\';'
+				)
+			);
+			return false;
+		}
+		
+		return true;
+		
+	}
+
+	function check_for_upgrade() {
+
+		// Inform about a database upgrade
+		if( get_option( 'ngg_db_version' ) != NGG_DBVERSION ) {
+			add_action(
+				'admin_notices', 
+				create_function(
+					'', 
+					'echo \'<div id="message" class="error"><p><strong>' . __('Please update the database of NextGEN Gallery.', 'nggallery') . ' <a href="admin.php?page=nextgen-gallery">' . __('Click here to proceed.', 'nggallery') . '</a>' . '</strong></p></div>\';'
+				)
+			);
+		}
+        
+		return;		
+	}
+	
+	function define_tables() {		
+		global $wpdb;
+		
+		// add database pointer 
+		$wpdb->nggpictures					= $wpdb->prefix . 'ngg_pictures';
+		$wpdb->nggallery					= $wpdb->prefix . 'ngg_gallery';
+		$wpdb->nggalbum						= $wpdb->prefix . 'ngg_album';
+		
+	}
+	
+	function register_taxonomy() {
+		global $wp_rewrite;
+
+		// Register the NextGEN taxonomy
+		$args = array(
+ 	            'label' => __('Picture tag', 'nggallery'),
+ 	            'template' => __('Picture tag: %2$l.', 'nggallery'),
+	            'helps' => __('Separate picture tags with commas.', 'nggallery'),
+	            'sort' => true,
+ 	            'args' => array('orderby' => 'term_order')
+				);
+					
+		register_taxonomy( 'ngg_tag', 'nggallery', $args );
+	}
+	
+	function define_constant() {
+		
+		//TODO:SHOULD BE REMOVED LATER
+		define('NGGVERSION', $this->version);
+		// Minimum required database version
+		define('NGG_DBVERSION', $this->dbversion);
+
+		// required for Windows & XAMPP
+		define('WINABSPATH', str_replace("\\", "/", ABSPATH) );
+			
+		// define URL
+		define('NGGFOLDER', plugin_basename( dirname(__FILE__)) );
+		
+		define('NGGALLERY_ABSPATH', trailingslashit( str_replace("\\","/", WP_PLUGIN_DIR . '/' . plugin_basename( dirname(__FILE__) ) ) ) );
+		define('NGGALLERY_URLPATH', trailingslashit( plugins_url( '', __FILE__ ) ) );
+		
+		// look for imagerotator
+		define('NGGALLERY_IREXIST', !empty( $this->options['irURL'] ));
+
+		// get value for safe mode
+		if ( (gettype( ini_get('safe_mode') ) == 'string') ) {
+			// if sever did in in a other way
+			if ( ini_get('safe_mode') == 'off' ) define('SAFE_MODE', FALSE);
+			else define( 'SAFE_MODE', ini_get('safe_mode') );
+		} else
+		define( 'SAFE_MODE', ini_get('safe_mode') );
+		
+	}
+	
+	function load_dependencies() {
+	
+		// Load global libraries												// average memory usage (in bytes)
+		require_once (dirname (__FILE__) . '/lib/core.php');					//  94.840
+		require_once (dirname (__FILE__) . '/lib/ngg-db.php');					// 132.400
+		require_once (dirname (__FILE__) . '/lib/image.php');					//  59.424
+		require_once (dirname (__FILE__) . '/lib/tags.php');				    // 117.136
+		require_once (dirname (__FILE__) . '/lib/post-thumbnail.php');			//  n.a.
+		require_once (dirname (__FILE__) . '/widgets/widgets.php');				// 298.792
+        require_once (dirname (__FILE__) . '/lib/multisite.php');
+
+        // Load frontend libraries							
+        require_once (dirname (__FILE__) . '/lib/navigation.php');		        // 242.016
+        require_once (dirname (__FILE__) . '/nggfunctions.php');		        // n.a.
+		require_once (dirname (__FILE__) . '/lib/shortcodes.php'); 		        // 92.664
+
+		//Just needed if you access remote to WordPress
+		if ( defined('XMLRPC_REQUEST') )
+			require_once (dirname (__FILE__) . '/lib/xmlrpc.php');
+			
+		// We didn't need all stuff during a AJAX operation
+		if ( defined('DOING_AJAX') )
+			require_once (dirname (__FILE__) . '/admin/ajax.php');
+		else {
+			require_once (dirname (__FILE__) . '/lib/meta.php');				// 131.856
+			require_once (dirname (__FILE__) . '/lib/media-rss.php');			//  82.768
+			require_once (dirname (__FILE__) . '/lib/rewrite.php');				//  71.936
+			include_once (dirname (__FILE__) . '/admin/tinymce/tinymce.php'); 	//  22.408
+
+			// Load backend libraries
+			if ( is_admin() ) {	
+				require_once (dirname (__FILE__) . '/admin/admin.php');
+				require_once (dirname (__FILE__) . '/admin/media-upload.php');
+				$this->nggAdminPanel = new nggAdminPanel();
+			}	
+		}
+	}
+	
+	function load_textdomain() {
+		
+		load_plugin_textdomain('nggallery', false, dirname( plugin_basename(__FILE__) ) . '/lang');
+
+	}
+	
+	function load_scripts() {
+		
+        // if you don't want that NGG load the scripts, add this constant
+        if ( defined('NGG_SKIP_LOAD_SCRIPTS') )
+            return;
+        
+		//	activate Thickbox
+		if ($this->options['thumbEffect'] == 'thickbox') {
+			wp_enqueue_script( 'thickbox' );
+			// Load the thickbox images after all other scripts
+			add_action( 'wp_footer', array(&$this, 'load_thickbox_images'), 11 );
+
+		}
+
+		// activate modified Shutter reloaded if not use the Shutter plugin
+		if ( ($this->options['thumbEffect'] == "shutter") && !function_exists('srel_makeshutter') ) {
+			wp_register_script('shutter', NGGALLERY_URLPATH .'shutter/shutter-reloaded.js', false ,'1.3.0');
+			wp_localize_script('shutter', 'shutterSettings', array(
+						'msgLoading' => __('L O A D I N G', 'nggallery'),
+						'msgClose' => __('Click to Close', 'nggallery'),
+						'imageCount' => '1'				
+			) );
+			wp_enqueue_script( 'shutter' );
+	    }
+		
+		// required for the slideshow
+		if ( NGGALLERY_IREXIST == true && $this->options['enableIR'] == '1' && nggGallery::detect_mobile_phone() === false ) 
+			wp_enqueue_script('swfobject', NGGALLERY_URLPATH .'admin/js/swfobject.js', FALSE, '2.2');
+        else {
+            wp_register_script('jquery-cycle', NGGALLERY_URLPATH .'js/jquery.cycle.all.min.js', array('jquery'), '2.88');
+            wp_enqueue_script('ngg-slideshow', NGGALLERY_URLPATH .'js/ngg.slideshow.min.js', array('jquery-cycle'), '1.05'); 
+                    
+        }   
+            
+		// Load AJAX navigation script, works only with shutter script as we need to add the listener
+		if ( $this->options['galAjaxNav'] ) { 
+			if ( ($this->options['thumbEffect'] == "shutter") || function_exists('srel_makeshutter') ) {
+				wp_enqueue_script ( 'ngg_script', NGGALLERY_URLPATH . 'js/ngg.js', array('jquery'), '2.0');
+				wp_localize_script( 'ngg_script', 'ngg_ajax', array('path'		=> NGGALLERY_URLPATH,
+                                                                    'callback'  => site_url() . '/' . 'index.php?callback=ngg-ajax',
+																	'loading'	=> __('loading', 'nggallery'),
+				) );
+			}
+		}
+		
+	}
+	
+	function load_thickbox_images() {
+		// WP core reference relative to the images. Bad idea
+		echo "\n" . '<script type="text/javascript">tb_pathToImage = "' . site_url() . '/wp-includes/js/thickbox/loadingAnimation.gif";tb_closeImage = "' . site_url() . '/wp-includes/js/thickbox/tb-close.png";</script>'. "\n";			
+	}
+	
+	function load_styles() {
+		
+		// check first the theme folder for a nggallery.css
+		if ( nggGallery::get_theme_css_file() )
+			wp_enqueue_style('NextGEN', nggGallery::get_theme_css_file() , false, '1.0.0', 'screen'); 
+		else if ($this->options['activateCSS'])
+			wp_enqueue_style('NextGEN', NGGALLERY_URLPATH . 'css/' . $this->options['CSSfile'], false, '1.0.0', 'screen'); 
+		
+		//	activate Thickbox
+		if ($this->options['thumbEffect'] == 'thickbox') 
+			wp_enqueue_style( 'thickbox');
+
+		// activate modified Shutter reloaded if not use the Shutter plugin
+		if ( ($this->options['thumbEffect'] == 'shutter') && !function_exists('srel_makeshutter') )
+			wp_enqueue_style('shutter', NGGALLERY_URLPATH .'shutter/shutter-reloaded.css', false, '1.3.0', 'screen');
+		
+	}
+	
+	function load_options() {
+		// Load the options
+		$this->options = get_option('ngg_options');
+	}
+	
+	// Add rewrite rules
+	function start_rewrite_module() {
+		global $nggRewrite;	
+			
+		if ( class_exists('nggRewrite') )
+			$nggRewrite = new nggRewrite();	
+	}
+    
+    // THX to Shiba for the code
+    // See: http://shibashake.com/wordpress-theme/write-a-plugin-for-wordpress-multi-site
+    function multisite_new_blog($blog_id, $user_id, $domain, $path, $site_id, $meta ) {
+    	global $wpdb;
+        
+        include_once (dirname (__FILE__) . '/admin/install.php');
+        
+    	if (is_plugin_active_for_network( $this->plugin_name )) {
+    		$current_blog = $wpdb->blogid;
+    		switch_to_blog($blog_id);
+    		nggallery_install();
+    		switch_to_blog($current_blog);
+    	}
+    }
+		
+	function activate() {
+		global $wpdb;
+		//Starting from version 1.8.0 it's works only with PHP5.2
+        //if (version_compare(PHP_VERSION, '5.2.0', '<')) { 
+        //        deactivate_plugins(plugin_basename(__FILE__)); // Deactivate ourself
+        //        wp_die("Sorry, but you can't run this plugin, it requires PHP 5.2 or higher."); 
+		//		return; 
+        //} 
+
+		include_once (dirname (__FILE__) . '/admin/install.php');
+        
+    	if ( is_multisite() ) {
+    		// check if it is a network activation - if so, run the activation function for each blog id
+    		if (isset($_GET['networkwide']) && ($_GET['networkwide'] == 1)) {
+                $current_blog = $wpdb->blogid;
+    			// Get all blog ids
+    			$blogids = $wpdb->get_col($wpdb->prepare("SELECT blog_id FROM $wpdb->blogs"));
+    			foreach ($blogids as $blog_id) {
+    				switch_to_blog($blog_id);
+    				nggallery_install();
+    			}
+    			switch_to_blog($current_blog);
+    			return;
+    		}	
+    	} 
+		
+		// check for tables
+		nggallery_install();
+		// remove the update message
+		delete_option( 'ngg_update_exists' );
+		
+	}
+	
+	function deactivate() {
+		
+		// remove & reset the init check option
+		delete_option( 'ngg_init_check' );
+		delete_option( 'ngg_update_exists' );
+	}
+
+	function uninstall() {
+        include_once (dirname (__FILE__) . '/admin/install.php');
+        nggallery_uninstall();
+	}
+	
+    function multisite_upgrade ( $blog_id ) {
+        global $wpdb;
+        
+        include_once (dirname (__FILE__) . '/admin/upgrade.php');
+        
+        $current_blog = $wpdb->blogid;
+        switch_to_blog( $blog_id );
+        ngg_upgrade();
+        switch_to_blog($current_blog);
+    	return;
+    }
+    
+	function disable_upgrade($option){
+
+	 	$this_plugin = plugin_basename(__FILE__);
+	 	
+		// PHP5.2 is required for NGG V1.4.0 
+		if ( version_compare($option->response[ $this_plugin ]->new_version, '1.4.0', '>=') )
+			return $option;
+
+	    if( isset($option->response[ $this_plugin ]) ){
+	        //Clear it''s download link
+	        $option->response[ $this_plugin ]->package = '';
+	        
+	        //Add a notice message
+	        if ($this->add_PHP5_notice == false){
+   	    		add_action( "in_plugin_update_message-$this->plugin_name", create_function('', 'echo \'<br /><span style="color:red">Please update to PHP5.2 as soon as possible, the plugin is not tested under PHP4 anymore</span>\';') );
+	    		$this->add_PHP5_notice = true;
+			}
+		}
+	    return $option;
+	}
+	
+	// Taken from Google XML Sitemaps from Arne Brachhold
+	function add_plugin_links($links, $file) {
+		
+		if ( $file == plugin_basename(__FILE__) ) {
+			$links[] = '<a href="admin.php?page=nextgen-gallery">' . __('Overview', 'nggallery') . '</a>';
+			$links[] = '<a href="http://wordpress.org/tags/nextgen-gallery?forum_id=10">' . __('Get help', 'nggallery') . '</a>';
+			$links[] = '<a href="http://code.google.com/p/nextgen-gallery/">' . __('Contribute', 'nggallery') . '</a>';
+			$links[] = '<a href="http://alexrabe.de/donation/">' . __('Donate', 'nggallery') . '</a>';
+		}
+		return $links;
+	}
+    
+    // Check for the header / footer, parts taken from Matt Martz (http://sivel.net/)
+    function test_head_footer_init() {
+    
+    	// If test-head query var exists hook into wp_head
+    	if ( isset( $_GET['test-head'] ) )
+    		add_action( 'wp_head', create_function('', 'echo \'<!--wp_head-->\';'), 99999 );
+    
+    	// If test-footer query var exists hook into wp_footer
+    	if ( isset( $_GET['test-footer'] ) )
+    		add_action( 'wp_footer', create_function('', 'echo \'<!--wp_footer-->\';'), 99999 );
+    }
+	
+}
+	// Let's start the holy plugin
+	global $ngg;
+	$ngg = new nggLoader();
+}
+?>
\ No newline at end of file
diff --git a/wp-content/plugins/nextgen-gallery/nggfunctions.php b/wp-content/plugins/nextgen-gallery/nggfunctions.php
new file mode 100644
index 000000000..7519d1edc
--- /dev/null
+++ b/wp-content/plugins/nextgen-gallery/nggfunctions.php
@@ -0,0 +1,1116 @@
+<?php
+
+if(preg_match('#' . basename(__FILE__) . '#', $_SERVER['PHP_SELF'])) { die('You are not allowed to call this page directly.'); }
+
+/**
+ * Return a script for the Imagerotator flash slideshow. Can be used in any template with <?php echo nggShowSlideshow($galleryID, $width, $height) ?>
+ * Require the script swfobject.js in the header or footer
+ * 
+ * @access public 
+ * @param integer $galleryID ID of the gallery
+ * @param integer $irWidth Width of the flash container
+ * @param integer $irHeight Height of the flash container
+ * @return the content
+ */
+function nggShowSlideshow($galleryID, $width, $height) {
+    
+    require_once (dirname (__FILE__).'/lib/swfobject.php');
+
+    $ngg_options = nggGallery::get_option('ngg_options');
+
+    // remove media file from RSS feed
+    if ( is_feed() ) {
+        $out = '[' . nggGallery::i18n($ngg_options['galTextSlide']) . ']'; 
+        return $out;
+    }
+
+    //Redirect all calls to the JavaScript slideshow if wanted
+    if ( $ngg_options['enableIR'] !== '1' || nggGallery::detect_mobile_phone() === true )
+        return nggShow_JS_Slideshow($galleryID, $width, $height);
+    
+    // If the Imagerotator didn't exist, skip the output
+    if ( NGGALLERY_IREXIST == false ) 
+        return; 
+        
+    if (empty($width) ) $width  = (int) $ngg_options['irWidth'];
+    if (empty($height)) $height = (int) $ngg_options['irHeight'];
+    // Doesn't work fine with zero
+    $ngg_options['irRotatetime'] = ($ngg_options['irRotatetime'] == 0) ? 5 : $ngg_options['irRotatetime'];
+    // init the flash output
+    $swfobject = new swfobject( $ngg_options['irURL'] , 'so' . $galleryID, $width, $height, '7.0.0', 'false');
+
+    $swfobject->message = '<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.', 'nggallery').'</p>';
+    $swfobject->add_params('wmode', 'opaque');
+    $swfobject->add_params('allowfullscreen', 'true');
+    $swfobject->add_params('bgcolor', $ngg_options['irScreencolor'], 'FFFFFF', 'string', '#');
+    $swfobject->add_attributes('styleclass', 'slideshow');
+    $swfobject->add_attributes('name', 'so' . $galleryID);
+
+    // adding the flash parameter   
+    $swfobject->add_flashvars( 'file', urlencode ( trailingslashit ( home_url() ) . 'index.php?callback=imagerotator&gid=' . $galleryID ) );
+    $swfobject->add_flashvars( 'shuffle', $ngg_options['irShuffle'], 'true', 'bool');
+    // option has oposite meaning : true should switch to next image
+    $swfobject->add_flashvars( 'linkfromdisplay', !$ngg_options['irLinkfromdisplay'], 'false', 'bool');
+    $swfobject->add_flashvars( 'shownavigation', $ngg_options['irShownavigation'], 'true', 'bool');
+    $swfobject->add_flashvars( 'showicons', $ngg_options['irShowicons'], 'true', 'bool');
+    $swfobject->add_flashvars( 'kenburns', $ngg_options['irKenburns'], 'false', 'bool');
+    $swfobject->add_flashvars( 'overstretch', $ngg_options['irOverstretch'], 'false', 'string');
+    $swfobject->add_flashvars( 'rotatetime', $ngg_options['irRotatetime'], 5, 'int');
+    $swfobject->add_flashvars( 'transition', $ngg_options['irTransition'], 'random', 'string');
+    $swfobject->add_flashvars( 'backcolor', $ngg_options['irBackcolor'], 'FFFFFF', 'string', '0x');
+    $swfobject->add_flashvars( 'frontcolor', $ngg_options['irFrontcolor'], '000000', 'string', '0x');
+    $swfobject->add_flashvars( 'lightcolor', $ngg_options['irLightcolor'], '000000', 'string', '0x');
+    $swfobject->add_flashvars( 'screencolor', $ngg_options['irScreencolor'], '000000', 'string', '0x');
+    if ($ngg_options['irWatermark'])
+        $swfobject->add_flashvars( 'logo', $ngg_options['wmPath'], '', 'string'); 
+    $swfobject->add_flashvars( 'audio', $ngg_options['irAudio'], '', 'string');
+    $swfobject->add_flashvars( 'width', $width, '260');
+    $swfobject->add_flashvars( 'height', $height, '320');   
+    // create the output
+    $out  = '<div class="slideshow">' . $swfobject->output() . '</div>';
+    // add now the script code
+    $out .= "\n".'<script type="text/javascript" defer="defer">';
+    // load script via jQuery afterwards
+    // $out .= "\n".'jQuery.getScript( "'  . NGGALLERY_URLPATH . 'admin/js/swfobject.js' . '", function() {} );';
+    if ($ngg_options['irXHTMLvalid']) $out .= "\n".'<!--';
+    if ($ngg_options['irXHTMLvalid']) $out .= "\n".'//<![CDATA[';
+    $out .= $swfobject->javascript();
+    if ($ngg_options['irXHTMLvalid']) $out .= "\n".'//]]>';
+    if ($ngg_options['irXHTMLvalid']) $out .= "\n".'-->';
+    $out .= "\n".'</script>';
+
+    $out = apply_filters('ngg_show_slideshow_content', $out, $galleryID, $width, $height);
+            
+    return $out;    
+}
+
+/**
+ * Return a script for the jQuery based slideshow. Can be used in any template with <?php echo nggShow_JS_Slideshow($galleryID, $width, $height) ?>
+ * Require the script jquery.cycle.all.js
+ * 
+ * @since 1.6.0 
+ * @access public
+ * @param integer $galleryID ID of the gallery
+ * @param integer $width Width of the slideshow container
+ * @param integer $height Height of the slideshow container
+ * @param string $class Classname of the div container
+ * @return the content
+ */
+function nggShow_JS_Slideshow($galleryID, $width, $height, $class = 'ngg-slideshow') {
+	
+    global $slideCounter;
+   
+    $ngg_options = nggGallery::get_option('ngg_options');
+    
+    // we need to know the current page id
+    $current_page = (get_the_ID() == false) ? rand(5, 15) : get_the_ID();
+	// look for a other slideshow instance
+	if ( !isset($slideCounter) ) $slideCounter = 1; 
+    // create unique anchor
+    $anchor = 'ngg-slideshow-' . $galleryID . '-' . $current_page . '-' . $slideCounter++;
+    
+    if (empty($width) ) $width  = (int) $ngg_options['irWidth'];
+    if (empty($height)) $height = (int) $ngg_options['irHeight'];
+    
+    //filter to resize images for mobile browser
+    list($width, $height) = apply_filters('ngg_slideshow_size', array( $width, $height ) );
+    
+    $width  = (int) $width;
+    $height = (int) $height;
+            
+    $out  = '<div id="' . $anchor . '" class="' . $class . '" style="height:' . $height . 'px;width:' . $width . 'px;">';
+    $out .= "\n". '<div id="' . $anchor . '-loader" class="ngg-slideshow-loader" style="height:' . $height . 'px;width:' . $width . 'px;">';
+    $out .= "\n". '<img src="'. NGGALLERY_URLPATH . 'images/loader.gif" alt="" />';
+    $out .= "\n". '</div>';
+    $out .= '</div>'."\n";
+    $out .= "\n".'<script type="text/javascript" defer="defer">';
+    $out .= "\n" . 'jQuery(document).ready(function(){ ' . "\n" . 'jQuery("#' . $anchor . '").nggSlideshow( {' .
+            'id: '      . $galleryID    . ',' . 
+            'fx:"'      . $ngg_options['slideFx'] . '",' .
+            'width:'    . $width        . ',' . 
+            'height:'   . $height       . ',' .
+            'domain: "' . trailingslashit ( home_url() ) . '",' .
+            'timeout:'  . $ngg_options['irRotatetime'] * 1000 .
+            '});' . "\n" . '});';
+    $out .= "\n".'</script>';
+
+    return $out;
+}
+
+/**
+ * nggShowGallery() - return a gallery  
+ * 
+ * @access public 
+ * @param int $galleryID
+ * @param string $template (optional) name for a template file, look for gallery-$template
+ * @param int $images (optional) number of images per page
+ * @return the content
+ */
+function nggShowGallery( $galleryID, $template = '', $images = false ) {
+    
+    global $nggRewrite;
+
+    $ngg_options = nggGallery::get_option('ngg_options');
+    $galleryID = (int) $galleryID;
+    
+    //Set sort order value, if not used (upgrade issue)
+    $ngg_options['galSort'] = ($ngg_options['galSort']) ? $ngg_options['galSort'] : 'pid';
+    $ngg_options['galSortDir'] = ($ngg_options['galSortDir'] == 'DESC') ? 'DESC' : 'ASC';
+    
+    // get gallery values
+    $picturelist = nggdb::get_gallery($galleryID, $ngg_options['galSort'], $ngg_options['galSortDir']);
+
+    if ( !$picturelist )
+        return __('[Gallery not found]','nggallery');
+
+    // $_GET from wp_query
+    $show    = get_query_var('show');
+    $pid     = get_query_var('pid');
+    $pageid  = get_query_var('pageid');
+    
+    // set $show if slideshow first
+    if ( empty( $show ) AND ($ngg_options['galShowOrder'] == 'slide')) {
+        if ( is_home() ) 
+            $pageid = get_the_ID();
+        
+        $show = 'slide';
+    }
+
+    // filter to call up the imagebrowser instead of the gallery
+    // use in your theme : add_action( 'ngg_show_imagebrowser_first', create_function('', 'return true;') );
+    if ( apply_filters('ngg_show_imagebrowser_first', false, $galleryID ) && $show != 'thumbnails' )  {
+        $out = nggShowImageBrowser( $galleryID, $template );
+        return $out;
+    }
+
+    // go on only on this page
+    if ( !is_home() || $pageid == get_the_ID() ) { 
+            
+        // 1st look for ImageBrowser link
+        if ( !empty($pid) && $ngg_options['galImgBrowser'] && ($template != 'carousel') )  {
+            $out = nggShowImageBrowser( $galleryID, $template );
+            return $out;
+        }
+        
+        // 2nd look for slideshow
+        if ( $show == 'slide' ) {
+            $args['show'] = "gallery";
+            $out  = '<div class="ngg-galleryoverview">';
+            $out .= '<div class="slideshowlink"><a class="slideshowlink" href="' . $nggRewrite->get_permalink($args) . '">'.nggGallery::i18n($ngg_options['galTextGallery']).'</a></div>';
+            $out .= nggShowSlideshow($galleryID, $ngg_options['irWidth'], $ngg_options['irHeight']);
+            $out .= '</div>'."\n";
+            $out .= '<div class="ngg-clear"></div>'."\n";
+            return $out;
+        }
+    }
+
+    // get all picture with this galleryid
+    if ( is_array($picturelist) )
+        $out = nggCreateGallery($picturelist, $galleryID, $template, $images);
+    
+    $out = apply_filters('ngg_show_gallery_content', $out, intval($galleryID));
+    return $out;
+}
+
+/**
+ * Build a gallery output
+ * 
+ * @access internal
+ * @param array $picturelist
+ * @param bool $galleryID, if you supply a gallery ID, you can add a slideshow link
+ * @param string $template (optional) name for a template file, look for gallery-$template
+ * @param int $images (optional) number of images per page
+ * @return the content
+ */
+function nggCreateGallery($picturelist, $galleryID = false, $template = '', $images = false) {
+    global $nggRewrite;
+
+    require_once (dirname (__FILE__) . '/lib/media-rss.php');
+    
+    $ngg_options = nggGallery::get_option('ngg_options');
+
+    //the shortcode parameter will override global settings, TODO: rewrite this to a class
+    $ngg_options['galImages'] = ( $images === false ) ? $ngg_options['galImages'] : (int) $images;  
+    
+    $current_pid = false;
+        
+    // $_GET from wp_query
+    $nggpage  = get_query_var('nggpage');
+    $pageid   = get_query_var('pageid');
+    $pid      = get_query_var('pid');
+    
+    // we need to know the current page id
+    $current_page = (get_the_ID() == false) ? 0 : get_the_ID();
+
+    if ( !is_array($picturelist) )
+        $picturelist = array($picturelist);
+    
+    // Populate galleries values from the first image           
+    $first_image = current($picturelist);
+    $gallery = new stdclass;
+    $gallery->ID = (int) $galleryID;
+    $gallery->show_slideshow = false;
+    $gallery->show_piclens = false;
+    $gallery->name = stripslashes ( $first_image->name  );
+    $gallery->title = stripslashes( $first_image->title );
+    $gallery->description = html_entity_decode(stripslashes( $first_image->galdesc));
+    $gallery->pageid = $first_image->pageid;
+    $gallery->anchor = 'ngg-gallery-' . $galleryID . '-' . $current_page;
+    reset($picturelist);
+
+    $maxElement  = $ngg_options['galImages'];
+    $thumbwidth  = $ngg_options['thumbwidth'];
+    $thumbheight = $ngg_options['thumbheight'];     
+    
+    // fixed width if needed
+    $gallery->columns    = intval($ngg_options['galColumns']);
+    $gallery->imagewidth = ($gallery->columns > 0) ? 'style="width:' . floor(100/$gallery->columns) . '%;"' : '';
+    
+    // obsolete in V1.4.0, but kept for compat reason
+	// pre set thumbnail size, from the option, later we look for meta data. 
+    $thumbsize = ($ngg_options['thumbfix']) ? $thumbsize = 'width="' . $thumbwidth . '" height="'.$thumbheight . '"' : '';
+    
+    // show slideshow link
+    if ($galleryID) {
+        if ($ngg_options['galShowSlide']) {
+            $gallery->show_slideshow = true;
+            $gallery->slideshow_link = $nggRewrite->get_permalink(array ( 'show' => 'slide') );
+            $gallery->slideshow_link_text = nggGallery::i18n($ngg_options['galTextSlide']);
+        }
+        
+        if ($ngg_options['usePicLens']) {
+            $gallery->show_piclens = true;
+            $gallery->piclens_link = "javascript:PicLensLite.start({feedUrl:'" . htmlspecialchars( nggMediaRss::get_gallery_mrss_url($gallery->ID) ) . "'});";
+        }
+    }
+
+    // check for page navigation
+    if ($maxElement > 0) {
+        
+        if ( !is_home() || $pageid == $current_page )
+            $page = ( !empty( $nggpage ) ) ? (int) $nggpage : 1;
+        else 
+            $page = 1;
+         
+        $start = $offset = ( $page - 1 ) * $maxElement;
+        
+        $total = count($picturelist);
+
+		//we can work with display:hidden for some javascript effects
+        if (!$ngg_options['galHiddenImg']){
+	        // remove the element if we didn't start at the beginning
+	        if ($start > 0 ) 
+	            array_splice($picturelist, 0, $start);
+	        
+	        // return the list of images we need
+	        array_splice($picturelist, $maxElement);
+        }
+
+        $nggNav = new nggNavigation;    
+        $navigation = $nggNav->create_navigation($page, $total, $maxElement);
+    } else {
+        $navigation = '<div class="ngg-clear"></div>';
+    } 
+	  
+    //we cannot use the key as index, cause it's filled with the pid
+	$index = 0;
+    foreach ($picturelist as $key => $picture) {
+
+		//needed for hidden images (THX to Sweigold for the main idea at : http://wordpress.org/support/topic/228743/ )
+		$picturelist[$key]->hidden = false;	
+		$picturelist[$key]->style  = $gallery->imagewidth;
+		
+		if ($maxElement > 0 && $ngg_options['galHiddenImg']) {
+	  		if ( ($index < $start) || ($index > ($start + $maxElement -1)) ){
+				$picturelist[$key]->hidden = true;	
+				$picturelist[$key]->style  = ($gallery->columns > 0) ? 'style="width:' . floor(100/$gallery->columns) . '%;display: none;"' : 'style="display: none;"';
+			}
+  			$index++;
+		}
+		
+        // get the effect code
+        if ($galleryID)
+            $thumbcode = ($ngg_options['galImgBrowser']) ? '' : $picture->get_thumbcode('set_' . $galleryID);
+        else
+            $thumbcode = ($ngg_options['galImgBrowser']) ? '' : $picture->get_thumbcode(get_the_title());
+
+        // create link for imagebrowser and other effects
+        $args ['nggpage'] = empty($nggpage) ? false : $nggpage;
+        $args ['pid']     = $picture->pid;
+        $picturelist[$key]->pidlink = $nggRewrite->get_permalink( $args );
+        
+        // generate the thumbnail size if the meta data available
+        if (is_array ($size = $picturelist[$key]->meta_data['thumbnail']) )
+        	$thumbsize = 'width="' . $size['width'] . '" height="' . $size['height'] . '"';
+        
+        // choose link between imagebrowser or effect
+        $link = ($ngg_options['galImgBrowser']) ? $picturelist[$key]->pidlink : $picture->imageURL; 
+        // bad solution : for now we need the url always for the carousel, should be reworked in the future
+        $picturelist[$key]->url = $picture->imageURL;
+        // add a filter for the link
+        $picturelist[$key]->imageURL = apply_filters('ngg_create_gallery_link', $link, $picture);
+        $picturelist[$key]->thumbnailURL = $picture->thumbURL;
+        $picturelist[$key]->size = $thumbsize;
+        $picturelist[$key]->thumbcode = $thumbcode;
+        $picturelist[$key]->caption = ( empty($picture->description) ) ? '&nbsp;' : html_entity_decode ( stripslashes(nggGallery::i18n($picture->description)) );
+        $picturelist[$key]->description = ( empty($picture->description) ) ? ' ' : htmlspecialchars ( stripslashes(nggGallery::i18n($picture->description)) );
+        $picturelist[$key]->alttext = ( empty($picture->alttext) ) ?  ' ' : htmlspecialchars ( stripslashes(nggGallery::i18n($picture->alttext)) );
+        
+        // filter to add custom content for the output
+        $picturelist[$key] = apply_filters('ngg_image_object', $picturelist[$key], $picture->pid);
+
+        //check if $pid is in the array
+        if ($picture->pid == $pid) 
+            $current_pid = $picturelist[$key];
+    }
+    reset($picturelist);
+
+    //for paged galleries, take the first image in the array if it's not in the list
+    $current_pid = ( empty($current_pid) ) ? current( $picturelist ) : $current_pid;
+    
+    // look for gallery-$template.php or pure gallery.php
+    $filename = ( empty($template) ) ? 'gallery' : 'gallery-' . $template;
+    
+    //filter functions for custom addons
+    $gallery     = apply_filters( 'ngg_gallery_object', $gallery, $galleryID );
+    $picturelist = apply_filters( 'ngg_picturelist_object', $picturelist, $galleryID );
+    
+    //additional navigation links
+    $next = ( empty($nggNav->next) ) ? false : $nggNav->next;
+    $prev = ( empty($nggNav->prev) ) ? false : $nggNav->prev;
+
+    // create the output
+    $out = nggGallery::capture ( $filename, array ('gallery' => $gallery, 'images' => $picturelist, 'pagination' => $navigation, 'current' => $current_pid, 'next' => $next, 'prev' => $prev) );
+    
+    // apply a filter after the output
+    $out = apply_filters('ngg_gallery_output', $out, $picturelist);
+    
+    return $out;
+}
+
+/**
+ * nggShowAlbum() - return a album based on the id
+ * 
+ * @access public 
+ * @param int | string $albumID
+ * @param string (optional) $template
+ * @return the content
+ */
+function nggShowAlbum($albumID, $template = 'extend') {
+    
+    // $_GET from wp_query
+    $gallery  = get_query_var('gallery');
+    $album    = get_query_var('album');
+
+    // in the case somebody uses the '0', it should be 'all' to show all galleries
+    $albumID  = ($albumID == 0) ? 'all' : $albumID;
+
+    // first look for gallery variable 
+    if (!empty( $gallery ))  {
+        
+        // subalbum support only one instance, you can't use more of them in one post
+        //TODO: causes problems with SFC plugin, due to a second filter callback
+        if ( isset($GLOBALS['subalbum']) || isset($GLOBALS['nggShowGallery']) )
+                return;
+                
+        // if gallery is submit , then show the gallery instead 
+        $out = nggShowGallery( intval($gallery) );
+        $GLOBALS['nggShowGallery'] = true;
+        
+        return $out;
+    }
+    
+    if ( (empty( $gallery )) && (isset($GLOBALS['subalbum'])) )
+        return;
+
+    //redirect to subalbum only one time        
+    if (!empty( $album )) {
+        $GLOBALS['subalbum'] = true;
+        $albumID = $album;          
+    }
+
+    // lookup in the database
+    $album = nggdb::find_album( $albumID );
+
+    // still no success ? , die !
+    if( !$album ) 
+        return __('[Album not found]','nggallery');
+    
+    if ( is_array($album->gallery_ids) )
+        $out = nggCreateAlbum( $album->gallery_ids, $template, $album );
+    
+    $out = apply_filters( 'ngg_show_album_content', $out, $album->id );
+
+    return $out;
+}
+
+/**
+ * create a gallery overview output
+ * 
+ * @access internal
+ * @param array $galleriesID
+ * @param string (optional) $template name for a template file, look for album-$template
+ * @param object (optional) $album result from the db
+ * @return the content
+ */
+function nggCreateAlbum( $galleriesID, $template = 'extend', $album = 0) {
+
+    global $wpdb, $nggRewrite, $nggdb;
+    
+    // $_GET from wp_query
+    $nggpage  = get_query_var('nggpage');   
+    
+    $ngg_options = nggGallery::get_option('ngg_options');
+    
+    //this option can currently only set via the custom fields
+    $maxElement  = (int) $ngg_options['galPagedGalleries'];
+
+    $sortorder = $galleriesID;
+    $galleries = array();
+    
+    // get the galleries information    
+    foreach ($galleriesID as $i => $value)
+        $galleriesID[$i] = addslashes($value);
+
+    $unsort_galleries = $wpdb->get_results('SELECT * FROM '.$wpdb->nggallery.' WHERE gid IN (\''.implode('\',\'', $galleriesID).'\')', OBJECT_K);
+
+    //TODO: Check this, problem exist when previewpic = 0 
+    //$galleries = $wpdb->get_results('SELECT t.*, tt.* FROM '.$wpdb->nggallery.' AS t INNER JOIN '.$wpdb->nggpictures.' AS tt ON t.previewpic = tt.pid WHERE t.gid IN (\''.implode('\',\'', $galleriesID).'\')', OBJECT_K);
+
+    // get the counter values   
+    $picturesCounter = $wpdb->get_results('SELECT galleryid, COUNT(*) as counter FROM '.$wpdb->nggpictures.' WHERE galleryid IN (\''.implode('\',\'', $galleriesID).'\') AND exclude != 1 GROUP BY galleryid', OBJECT_K);
+    if ( is_array($picturesCounter) ) {
+        foreach ($picturesCounter as $key => $value)
+            $unsort_galleries[$key]->counter = $value->counter;
+    }
+    
+    // get the id's of the preview images
+    $imagesID = array();
+    if ( is_array($unsort_galleries) ) {
+        foreach ($unsort_galleries as $gallery_row)
+            $imagesID[] = $gallery_row->previewpic;
+    }   
+    $albumPreview = $wpdb->get_results('SELECT pid, filename FROM '.$wpdb->nggpictures.' WHERE pid IN (\''.implode('\',\'', $imagesID).'\')', OBJECT_K);
+
+    // re-order them and populate some 
+    foreach ($sortorder as $key) {
+		       
+        //if we have a prefix 'a' then it's a subalbum, instead a gallery
+        if (substr( $key, 0, 1) == 'a') { 
+            // get the album content
+             if ( !$subalbum = $nggdb->find_album(substr( $key, 1)) )
+                continue;
+            
+            //populate the sub album values
+            $galleries[$key]->counter = 0;
+            if ($subalbum->previewpic > 0)
+                $image = $nggdb->find_image( $subalbum->previewpic );
+            $galleries[$key]->previewpic = $subalbum->previewpic;
+            $galleries[$key]->previewurl = isset($image->thumbURL) ? $image->thumbURL : '';
+            $galleries[$key]->previewname = $subalbum->name;
+            
+            //link to the subalbum
+            $args['album'] = $subalbum->id;
+            $args['gallery'] = false; 
+            $args['nggpage'] = false;
+            $pageid = (isset($subalbum->pageid) ? $subalbum->pageid : 0);
+            if ($pageid > 0) {
+                $galleries[$key]->pagelink = get_permalink($pageid);
+            } else {
+                $galleries[$key]->pagelink = $nggRewrite->get_permalink($args);
+            }
+            $galleries[$key]->galdesc = html_entity_decode ( nggGallery::i18n($subalbum->albumdesc) );
+            $galleries[$key]->title = html_entity_decode ( nggGallery::i18n($subalbum->name) ); 
+            
+            // apply a filter on gallery object before the output
+            $galleries[$key] = apply_filters('ngg_album_galleryobject', $galleries[$key]);
+            
+            continue;
+        }
+		
+		// If a gallery is not found it should be ignored
+        if (!$unsort_galleries[$key])
+        	continue;
+		
+		// Add the counter value if avaible
+        $galleries[$key] = $unsort_galleries[$key];
+    	
+        // add the file name and the link 
+        if ($galleries[$key]->previewpic  != 0) {
+            $galleries[$key]->previewname = $albumPreview[$galleries[$key]->previewpic]->filename;
+            $galleries[$key]->previewurl  = site_url().'/' . $galleries[$key]->path . '/thumbs/thumbs_' . $albumPreview[$galleries[$key]->previewpic]->filename;
+        } else {
+            $first_image = $wpdb->get_row('SELECT * FROM '. $wpdb->nggpictures .' WHERE exclude != 1 AND galleryid = '. $key .' ORDER by pid DESC limit 0,1');
+            $galleries[$key]->previewpic  = $first_image->pid;
+            $galleries[$key]->previewname = $first_image->filename;
+            $galleries[$key]->previewurl  = site_url() . '/' . $galleries[$key]->path . '/thumbs/thumbs_' . $first_image->filename;
+        }
+
+        // choose between variable and page link
+        if ($ngg_options['galNoPages']) {
+            $args['album'] = $album->id; 
+            $args['gallery'] = $key;
+            $args['nggpage'] = false;
+            $galleries[$key]->pagelink = $nggRewrite->get_permalink($args);
+            
+        } else {
+            $galleries[$key]->pagelink = get_permalink( $galleries[$key]->pageid );
+        }
+        
+        // description can contain HTML tags
+        $galleries[$key]->galdesc = html_entity_decode ( stripslashes($galleries[$key]->galdesc) ) ;
+
+        // i18n
+        $galleries[$key]->title = html_entity_decode ( nggGallery::i18n( stripslashes($galleries[$key]->title) ) ) ;
+        
+        // apply a filter on gallery object before the output
+        $galleries[$key] = apply_filters('ngg_album_galleryobject', $galleries[$key]);
+    }
+
+    // check for page navigation
+    if ($maxElement > 0) {
+        if ( !is_home() || $pageid == get_the_ID() ) {
+            $page = ( !empty( $nggpage ) ) ? (int) $nggpage : 1;
+        }
+        else $page = 1;
+         
+        $start = $offset = ( $page - 1 ) * $maxElement;
+        
+        $total = count($galleries);
+        
+        // remove the element if we didn't start at the beginning
+        if ($start > 0 ) array_splice($galleries, 0, $start);
+        
+        // return the list of images we need
+        array_splice($galleries, $maxElement);
+        
+        $nggNav = new nggNavigation;    
+        $navigation = $nggNav->create_navigation($page, $total, $maxElement);
+    } else {
+        $navigation = '<div class="ngg-clear"></div>';
+    }
+
+    // apply a filter on $galleries before the output
+    $galleries = apply_filters('ngg_album_galleries', $galleries);
+    
+    // if sombody didn't enter any template , take the extend version
+    $filename = ( empty($template) ) ? 'album-extend' : 'album-' . $template ;
+
+    // create the output
+    $out = nggGallery::capture ( $filename, array ('album' => $album, 'galleries' => $galleries, 'pagination' => $navigation) );
+
+    return $out;
+    
+}
+
+/**
+ * nggShowImageBrowser()
+ * 
+ * @access public 
+ * @param int|string $galleryID or gallery name
+ * @param string $template (optional) name for a template file, look for imagebrowser-$template
+ * @return the content
+ */
+function nggShowImageBrowser($galleryID, $template = '') {
+    
+    global $wpdb;
+    
+    $ngg_options = nggGallery::get_option('ngg_options');
+    
+    //Set sort order value, if not used (upgrade issue)
+    $ngg_options['galSort'] = ($ngg_options['galSort']) ? $ngg_options['galSort'] : 'pid';
+    $ngg_options['galSortDir'] = ($ngg_options['galSortDir'] == 'DESC') ? 'DESC' : 'ASC';
+    
+    // get the pictures
+    $picturelist = nggdb::get_ids_from_gallery($galleryID, $ngg_options['galSort'], $ngg_options['galSortDir']);
+    
+    if ( is_array($picturelist) )
+        $out = nggCreateImageBrowser($picturelist, $template);
+    else
+        $out = __('[Gallery not found]','nggallery');
+    
+    $out = apply_filters('ngg_show_imagebrowser_content', $out, $galleryID);
+    
+    return $out;
+    
+}
+
+/**
+ * nggCreateImageBrowser()
+ * 
+ * @access internal
+ * @param array $picarray with pid
+ * @param string $template (optional) name for a template file, look for imagebrowser-$template
+ * @return the content
+ */
+function nggCreateImageBrowser($picarray, $template = '') {
+
+    global $nggRewrite;
+    
+    require_once( dirname (__FILE__) . '/lib/meta.php' );
+    
+    // $_GET from wp_query
+    $pid  = get_query_var('pid');
+    
+    // we need to know the current page id
+    $current_page = (get_the_ID() == false) ? 0 : get_the_ID();
+
+    if ( !is_array($picarray) )
+        $picarray = array($picarray);
+
+    $total = count($picarray);
+
+    // look for gallery variable 
+    if ( !empty( $pid )) {
+        $act_pid = (int) $pid;
+    } else {
+        reset($picarray);
+        $act_pid = current($picarray);
+    }
+    
+    // get ids for back/next
+    $key = array_search($act_pid,$picarray);
+    if (!$key) {
+        $act_pid = reset($picarray);
+        $key = key($picarray);
+    }
+    $back_pid = ( $key >= 1 ) ? $picarray[$key-1] : end($picarray) ;
+    $next_pid = ( $key < ($total-1) ) ? $picarray[$key+1] : reset($picarray) ;
+    
+    // get the picture data
+    $picture = nggdb::find_image($act_pid);
+    
+    // if we didn't get some data, exit now
+    if ($picture == null)
+        return;
+        
+    // add more variables for render output
+    $picture->href_link = $picture->get_href_link();
+    $picture->previous_image_link = $nggRewrite->get_permalink(array ('pid' => $back_pid));
+    $picture->previous_pid = $back_pid;
+    $picture->next_image_link  = $nggRewrite->get_permalink(array ('pid' => $next_pid));
+    $picture->next_pid = $next_pid;
+    $picture->number = $key + 1;
+    $picture->total = $total;
+    $picture->linktitle = htmlspecialchars( stripslashes($picture->description) );
+    $picture->alttext = html_entity_decode( stripslashes($picture->alttext) );
+    $picture->description = html_entity_decode( stripslashes($picture->description) );
+    $picture->anchor = 'ngg-imagebrowser-' . $picture->galleryid . '-' . $current_page;
+    
+    // filter to add custom content for the output
+    $picture = apply_filters('ngg_image_object', $picture, $act_pid);
+    
+    // let's get the meta data
+    $meta = new nggMeta($act_pid);
+    $exif = $meta->get_EXIF();
+    $iptc = $meta->get_IPTC();
+    $xmp  = $meta->get_XMP();
+    $db   = $meta->get_saved_meta();
+    
+    //if we get no exif information we try the database 
+    $exif = ($exif == false) ? $db : $exif;
+        
+    // look for imagebrowser-$template.php or pure imagebrowser.php
+    $filename = ( empty($template) ) ? 'imagebrowser' : 'imagebrowser-' . $template;
+
+    // create the output
+    $out = nggGallery::capture ( $filename , array ('image' => $picture , 'meta' => $meta, 'exif' => $exif, 'iptc' => $iptc, 'xmp' => $xmp, 'db' => $db) );
+    
+    return $out;
+    
+}
+
+/**
+ * nggSinglePicture() - show a single picture based on the id
+ * 
+ * @access public 
+ * @param int $imageID, db-ID of the image
+ * @param int (optional) $width, width of the image
+ * @param int (optional) $height, height of the image
+ * @param string $mode (optional) could be none, watermark, web20
+ * @param string $float (optional) could be none, left, right
+ * @param string $template (optional) name for a template file, look for singlepic-$template
+ * @param string $caption (optional) additional caption text
+ * @param string $link (optional) link to a other url instead the full image
+ * @return the content
+ */
+function nggSinglePicture($imageID, $width = 250, $height = 250, $mode = '', $float = '' , $template = '', $caption = '', $link = '') {
+    global $post;
+    
+    $ngg_options = nggGallery::get_option('ngg_options');
+    
+    // get picturedata
+    $picture = nggdb::find_image($imageID);
+    
+    // if we didn't get some data, exit now
+    if ($picture == null)
+        return __('[SinglePic not found]','nggallery');
+            
+    // add float to img
+    switch ($float) {
+        
+        case 'left': 
+            $float =' ngg-left';
+        break;
+        
+        case 'right': 
+            $float =' ngg-right';
+        break;
+
+        case 'center': 
+            $float =' ngg-center';
+        break;
+        
+        default: 
+            $float ='';
+        break;
+    }
+    
+    // clean mode if needed 
+    $mode = ( preg_match('/(web20|watermark)/i', $mode) ) ? $mode : '';
+    
+    //let's initiate the url
+    $picture->thumbnailURL = false;
+
+    // check fo cached picture
+    if ( ($ngg_options['imgCacheSinglePic']) && ($post->post_status == 'publish') )
+        $picture->thumbnailURL = $picture->cached_singlepic_file($width, $height, $mode );
+    
+    // if we didn't use a cached image then we take the on-the-fly mode 
+    if (!$picture->thumbnailURL) 
+        $picture->thumbnailURL = home_url() . '/' . 'index.php?callback=image&amp;pid=' . $imageID . '&amp;width=' . $width . '&amp;height=' . $height . '&amp;mode=' . $mode;
+
+    // add more variables for render output
+    $picture->imageURL = ( empty($link) ) ? $picture->imageURL : $link;
+    $picture->href_link = $picture->get_href_link();
+    $picture->alttext = html_entity_decode( stripslashes(nggGallery::i18n($picture->alttext)) );
+    $picture->linktitle = htmlspecialchars( stripslashes(nggGallery::i18n($picture->description)) );
+    $picture->description = html_entity_decode( stripslashes(nggGallery::i18n($picture->description)) );
+    $picture->classname = 'ngg-singlepic'. $float;
+    $picture->thumbcode = $picture->get_thumbcode( 'singlepic' . $imageID);
+    $picture->height = (int) $height;
+    $picture->width = (int) $width;
+    $picture->caption = nggGallery::i18n($caption);
+
+    // filter to add custom content for the output
+    $picture = apply_filters('ngg_image_object', $picture, $imageID);
+
+    // let's get the meta data
+    $meta = new nggMeta($imageID);
+    $exif = $meta->get_EXIF();
+    $iptc = $meta->get_IPTC();
+    $xmp  = $meta->get_XMP();
+    $db   = $meta->get_saved_meta();
+    
+    //if we get no exif information we try the database 
+    $exif = ($exif == false) ? $db : $exif;
+	       
+    // look for singlepic-$template.php or pure singlepic.php
+    $filename = ( empty($template) ) ? 'singlepic' : 'singlepic-' . $template;
+
+    // create the output
+    $out = nggGallery::capture ( $filename, array ('image' => $picture , 'meta' => $meta, 'exif' => $exif, 'iptc' => $iptc, 'xmp' => $xmp, 'db' => $db) );
+
+    $out = apply_filters('ngg_show_singlepic_content', $out, $picture );
+    
+    return $out;
+}
+
+/**
+ * nggShowGalleryTags() - create a gallery based on the tags
+ * 
+ * @access public 
+ * @param string $taglist list of tags as csv
+ * @return the content
+ */
+function nggShowGalleryTags($taglist) { 
+
+    // $_GET from wp_query
+    $pid    = get_query_var('pid');
+    $pageid = get_query_var('pageid');
+    
+    // get now the related images
+    $picturelist = nggTags::find_images_for_tags($taglist , 'ASC');
+
+    // look for ImageBrowser if we have a $_GET('pid')
+    if ( $pageid == get_the_ID() || !is_home() )  
+        if (!empty( $pid ))  {
+            foreach ($picturelist as $picture) {
+                $picarray[] = $picture->pid;
+            }
+            $out = nggCreateImageBrowser($picarray);
+            return $out;
+        }
+
+    // go on if not empty
+    if ( empty($picturelist) )
+        return;
+    
+    // show gallery
+    if ( is_array($picturelist) )
+        $out = nggCreateGallery($picturelist, false);
+    
+    $out = apply_filters('ngg_show_gallery_tags_content', $out, $taglist);
+    return $out;
+}
+
+/**
+ * nggShowRelatedGallery() - create a gallery based on the tags
+ * 
+ * @access public 
+ * @param string $taglist list of tags as csv
+ * @param integer $maxImages (optional) limit the number of images to show
+ * @return the content
+ */ 
+function nggShowRelatedGallery($taglist, $maxImages = 0) {
+    
+    $ngg_options = nggGallery::get_option('ngg_options');
+    
+    // get now the related images
+    $picturelist = nggTags::find_images_for_tags($taglist, 'RAND');
+
+    // go on if not empty
+    if ( empty($picturelist) )
+        return;
+    
+    // cut the list to maxImages
+    if ( $maxImages > 0 )
+        array_splice($picturelist, $maxImages);
+
+    // *** build the gallery output
+    $out   = '<div class="ngg-related-gallery">';
+    foreach ($picturelist as $picture) {
+
+        // get the effect code
+        $thumbcode = $picture->get_thumbcode( __('Related images for', 'nggallery') . ' ' . get_the_title());
+
+        $out .= '<a href="' . $picture->imageURL . '" title="' . stripslashes(nggGallery::i18n($picture->description)) . '" ' . $thumbcode . ' >';
+        $out .= '<img title="' . stripslashes(nggGallery::i18n($picture->alttext)) . '" alt="' . stripslashes(nggGallery::i18n($picture->alttext)) . '" src="' . $picture->thumbURL . '" />';
+        $out .= '</a>' . "\n";
+    }
+    $out .= '</div>' . "\n";
+    
+    $out = apply_filters('ngg_show_related_gallery_content', $out, $taglist);
+    
+    return $out;
+}
+
+/**
+ * nggShowAlbumTags() - create a gallery based on the tags
+ * 
+ * @access public 
+ * @param string $taglist list of tags as csv
+ * @return the content
+ */
+function nggShowAlbumTags($taglist) {
+    
+    global $wpdb, $nggRewrite;
+
+    // $_GET from wp_query
+    $tag            = get_query_var('gallerytag');
+    $pageid         = get_query_var('pageid');
+    
+    // look for gallerytag variable 
+    if ( $pageid == get_the_ID() || !is_home() )  {
+        if (!empty( $tag ))  {
+    
+            // avoid this evil code $sql = 'SELECT name FROM wp_ngg_tags WHERE slug = \'slug\' union select concat(0x7c,user_login,0x7c,user_pass,0x7c) from wp_users WHERE 1 = 1';
+            $slug = esc_attr( $tag );
+            $tagname = $wpdb->get_var( $wpdb->prepare( "SELECT name FROM $wpdb->terms WHERE slug = %s", $slug ) );
+            $out  = '<div id="albumnav"><span><a href="' . get_permalink() . '" title="' . __('Overview', 'nggallery') .' ">'.__('Overview', 'nggallery').'</a> | '.$tagname.'</span></div>';
+            $out .=  nggShowGalleryTags($slug);
+            return $out;
+    
+        } 
+    }
+    
+    // get now the related images
+    $picturelist = nggTags::get_album_images($taglist);
+
+    // go on if not empty
+    if ( empty($picturelist) )
+        return;
+    
+    // re-structure the object that we can use the standard template    
+    foreach ($picturelist as $key => $picture) {
+        $picturelist[$key]->previewpic  = $picture->pid;
+        $picturelist[$key]->previewname = $picture->filename;
+        $picturelist[$key]->previewurl  = site_url() . '/' . $picture->path . '/thumbs/thumbs_' . $picture->filename;
+        $picturelist[$key]->counter     = $picture->count;
+        $picturelist[$key]->title       = $picture->name;
+        $picturelist[$key]->pagelink    = $nggRewrite->get_permalink( array('gallerytag'=>$picture->slug) );
+    }
+        
+    //TODO: Add pagination later
+    $navigation = '<div class="ngg-clear"></div>';
+    
+    // create the output
+    $out = nggGallery::capture ('album-compact', array ('album' => 0, 'galleries' => $picturelist, 'pagination' => $navigation) );
+    
+    $out = apply_filters('ngg_show_album_tags_content', $out, $taglist);
+    
+    return $out;
+}
+
+/**
+ * nggShowRelatedImages() - return related images based on category or tags
+ * 
+ * @access public 
+ * @param string $type could be 'tags' or 'category'
+ * @param integer $maxImages of images
+ * @return the content
+ */
+function nggShowRelatedImages($type = '', $maxImages = 0) {
+    $ngg_options = nggGallery::get_option('ngg_options');
+
+    if ($type == '') {
+        $type = $ngg_options['appendType'];
+        $maxImages = $ngg_options['maxImages'];
+    }
+
+    $sluglist = array();
+
+    switch ($type) {
+        case 'tags':
+            if (function_exists('get_the_tags')) { 
+                $taglist = get_the_tags();
+                
+                if (is_array($taglist)) {
+                    foreach ($taglist as $tag) {
+                        $sluglist[] = $tag->slug;
+                    }
+                }
+            }
+        break;
+            
+        case 'category':
+            $catlist = get_the_category();
+            
+            if (is_array($catlist)) {
+                foreach ($catlist as $cat) {
+                    $sluglist[] = $cat->category_nicename;
+                }
+            }
+        break;
+    }
+    
+    $sluglist = implode(',', $sluglist);
+    $out = nggShowRelatedGallery($sluglist, $maxImages);
+    
+    return $out;
+}
+
+/**
+ * Template function for theme authors
+ *
+ * @access public 
+ * @param string  (optional) $type could be 'tags' or 'category'
+ * @param integer (optional) $maxNumbers of images
+ * @return void
+ */
+function the_related_images($type = 'tags', $maxNumbers = 7) {
+    echo nggShowRelatedImages($type, $maxNumbers);
+}
+
+/**
+ * nggShowRandomRecent($type, $maxImages, $template, $galleryId) - return recent or random images
+ * 
+ * @access public
+ * @param string $type 'id' (for latest addition to DB), 'date' (for image with the latest date), 'sort' (for image sorted by user order) or 'random'
+ * @param integer $maxImages of images
+ * @param string $template (optional) name for a template file, look for gallery-$template
+ * @param int $galleryId Limit to a specific gallery
+ * @return the content
+ */
+function nggShowRandomRecent($type, $maxImages, $template = '', $galleryId = 0) {
+    
+    // $_GET from wp_query
+    $pid    = get_query_var('pid');
+    $pageid = get_query_var('pageid');
+    
+    // get now the recent or random images
+    switch ($type) {
+        case 'random':
+            $picturelist = nggdb::get_random_images($maxImages, $galleryId);
+            break;
+        case 'id':
+            $picturelist = nggdb::find_last_images(0, $maxImages, true, $galleryId, 'id');
+            break;
+        case 'date':
+            $picturelist = nggdb::find_last_images(0, $maxImages, true, $galleryId, 'date');
+            break;
+        case 'sort':
+            $picturelist = nggdb::find_last_images(0, $maxImages, true, $galleryId, 'sort');
+            break;
+        default:
+            // default is by pid
+            $picturelist = nggdb::find_last_images(0, $maxImages, true, $galleryId, 'id');
+    }
+
+    // look for ImageBrowser if we have a $_GET('pid')
+    if ( $pageid == get_the_ID() || !is_home() )  
+        if (!empty( $pid ))  {
+            foreach ($picturelist as $picture) {
+                $picarray[] = $picture->pid;
+            }
+            $out = nggCreateImageBrowser($picarray);
+            return $out;
+        }
+
+    // go on if not empty
+    if ( empty($picturelist) )
+        return;
+    
+    // show gallery
+    if ( is_array($picturelist) )
+        $out = nggCreateGallery($picturelist, false, $template);
+
+    $out = apply_filters('ngg_show_images_content', $out, $picturelist);
+    
+    return $out;
+}
+
+/**
+ * nggTagCloud() - return a tag cloud based on the wp core tag cloud system
+ * 
+ * @param array $args
+ * @param string $template (optional) name for a template file, look for gallery-$template
+ * @return the content
+ */
+function nggTagCloud($args ='', $template = '') {
+    global $nggRewrite;
+
+    // $_GET from wp_query
+    $tag     = get_query_var('gallerytag');
+    $pageid  = get_query_var('pageid');
+    
+    // look for gallerytag variable 
+    if ( $pageid == get_the_ID() || !is_home() )  {
+        if (!empty( $tag ))  {
+    
+            $slug =  esc_attr( $tag );
+            $out  =  nggShowGalleryTags( $slug );
+            return $out;
+        } 
+    }
+    
+    $defaults = array(
+        'smallest' => 8, 'largest' => 22, 'unit' => 'pt', 'number' => 45,
+        'format' => 'flat', 'orderby' => 'name', 'order' => 'ASC',
+        'exclude' => '', 'include' => '', 'link' => 'view', 'taxonomy' => 'ngg_tag'
+    );
+    $args = wp_parse_args( $args, $defaults );
+
+    $tags = get_terms( $args['taxonomy'], array_merge( $args, array( 'orderby' => 'count', 'order' => 'DESC' ) ) ); // Always query top tags
+
+    foreach ($tags as $key => $tag ) {
+
+        $tags[ $key ]->link = $nggRewrite->get_permalink(array ('gallerytag' => $tag->slug));
+        $tags[ $key ]->id = $tag->term_id;
+    }
+    
+    $out = '<div class="ngg-tagcloud">' . wp_generate_tag_cloud( $tags, $args ) . '</div>';
+    
+    return $out;
+}
+?>
\ No newline at end of file
diff --git a/wp-content/plugins/nextgen-gallery/nggshow.php b/wp-content/plugins/nextgen-gallery/nggshow.php
new file mode 100644
index 000000000..60c71c445
--- /dev/null
+++ b/wp-content/plugins/nextgen-gallery/nggshow.php
@@ -0,0 +1,68 @@
+<?php
+// Load wp-config
+if ( !defined('ABSPATH') ) 
+	require_once( dirname(__FILE__) . '/ngg-config.php');
+
+// reference thumbnail class
+include_once( nggGallery::graphic_library() );
+include_once('lib/core.php');
+
+// get the plugin options
+$ngg_options = get_option('ngg_options');	
+
+// Some parameters from the URL
+if ( !isset($_GET['pid']) )
+    exit;
+    
+$pictureID = (int) $_GET['pid'];
+$mode = isset($_GET['mode']) ? $_GET['mode'] : '';
+
+// let's get the image data
+$picture  = nggdb::find_image( $pictureID );
+
+if ( !is_object($picture) )
+    exit;
+    
+$thumb = new ngg_Thumbnail( $picture->imagePath );
+
+// Resize if necessary
+if ( !empty($_GET['width']) || !empty($_GET['height']) ) {
+ 	// Sanitize
+ 	$w = ( !empty($_GET['width'])) ? intval($_GET['width']) : 0;
+ 	$h = ( !empty($_GET['height'])) ? intval($_GET['height']) : 0;
+	// limit the maxium size, prevent server memory overload
+	if ($w > 1920) $w = 1920;
+	if ($h > 1280) $h = 1280;
+    // Crop mode for post thumbnail
+    if ($mode == 'crop') {
+		// calculates the new dimentions for a downsampled image
+        list ( $ratio_w, $ratio_h ) = wp_constrain_dimensions($thumb->currentDimensions['width'], $thumb->currentDimensions['height'], $w, $h);
+        // check ratio to decide which side should be resized
+        ( $ratio_h <  $h || $ratio_w ==  $w ) ? $thumb->resize(0, $h) : $thumb->resize($w, 0);
+        // get the best start postion to crop from the middle    
+        $ypos = ($thumb->currentDimensions['height'] - $h) / 2;
+		$thumb->crop(0, $ypos, $w, $h);	
+    } else
+        $thumb->resize( $w, $h );   
+}
+
+// Apply effects according to the mode parameter
+if ($mode == 'watermark') {
+	if ($ngg_options['wmType'] == 'image') {
+		$thumb->watermarkImgPath = $ngg_options['wmPath'];
+		$thumb->watermarkImage($ngg_options['wmPos'], $ngg_options['wmXpos'], $ngg_options['wmYpos']); 
+	} else if ($ngg_options['wmType'] == 'text') {
+		$thumb->watermarkText = $ngg_options['wmText'];
+		$thumb->watermarkCreateText($ngg_options['wmColor'], $ngg_options['wmFont'], $ngg_options['wmSize'], $ngg_options['wmOpaque']);
+		$thumb->watermarkImage($ngg_options['wmPos'], $ngg_options['wmXpos'], $ngg_options['wmYpos']);  
+	}
+} else if ($mode == 'web20') {
+	$thumb->createReflection(40,40,50,false,'#a4a4a4');
+}
+
+// Show thumbnail
+$thumb->show();
+$thumb->destruct();
+
+exit;
+?>
\ No newline at end of file
diff --git a/wp-content/plugins/nextgen-gallery/readme.txt b/wp-content/plugins/nextgen-gallery/readme.txt
new file mode 100644
index 000000000..e96907770
--- /dev/null
+++ b/wp-content/plugins/nextgen-gallery/readme.txt
@@ -0,0 +1,775 @@
+=== NextGEN Gallery ===
+Contributors: alexrabe
+Donate link: http://alexrabe.de/donation/
+Tags: photos,flash,slideshow,images,gallery,media,admin,post,photo-albums,pictures,widgets,photo,picture,image,nextgen-gallery,nextgen gallery
+Requires at least: 3.0
+Tested up to: 3.1
+Stable tag: trunk
+
+NextGEN Gallery is a full integrated Image Gallery plugin for WordPress with dozens of options and features.
+
+== Description ==
+
+NextGEN Gallery is a full integrated Image Gallery plugin for WordPress with a slideshow option. Before I started writing the plugin I studied all the existing image and gallery plugins for WordPress. 
+Some of them are really good and well designed, but the gap I filled was a simple administration system at the back end which can also handle multiple galleries.
+
+Important Links:
+
+* <a href="http://nextgen-gallery.com/" title="Demonstration page">Demonstration</a>
+* <a href="http://alexrabe.de/wordpress-plugins/nextgen-gallery/languages/" title="Translation and Language files">Language files</a>
+* <a href="http://wordpress.org/extend/plugins/nextgen-gallery/changelog/" title="NextGEN Gallery Changelog">Changelog</a>
+* <a href="http://alexrabe.de/wordpress-plugins/nextgen-gallery/faq/" title="NextGEN Gallery FAQ">NextGEN Gallery FAQ</a>
+* <a href="http://wordpress.org/tags/nextgen-gallery?forum_id=10" title="Wordpress Support Forum">Support Forum</a>
+
+= Features =
+
+* Templates : You can add custom templates for your theme.
+* Media RSS feed : Add the Cooliris Effect to your gallery
+* Role settings : Each gallery has a author
+* AJAX based thumbnail generator : No more server limitation during the batch process
+* Copy/Move : Copy or move images between galleries 
+* Sortable Albums : Create your own sets of images 
+* Upload or pictures via a zip-file (Not in Safe-mode)
+* Watermark function : You can add a watermark image or text 
+* JavaScript Effect : Use any available popular image effect : Shutter, Thickbox, Lightbox or Highslide
+* Multiple CSS Stylesheet : Use a nice shadow effect for your thumbnails with your own CSS file 
+* Slideshow : Full integrated slideshow as jQuery or Flash solution
+* TinyMCE : Button integration for easy adding the gallery tags
+* Sidebar Widget : Show a slideshow, random or recent picture at your sidebar 
+* Language support : Translated in more than 30 languages
+* Translation downloader : Download with one click the new translation file
+* Upload tab integration : You have access to all pictures via the upload tab
+* Tag support for images : Append related images to your post, create a image tag-cloud
+* Meta data support : Import EXIF, IPTC or XMP meta data 
+* Sort images feature
+
+== Credits ==
+
+Copyright 2007-2011 by Alex Rabe & NextGEN DEV-Team
+
+This program is free software; you can redistribute it and/or modify
+it under the terms of the GNU General Public License as published by
+the Free Software Foundation; either version 2 of the License, or
+(at your option) any later version.
+
+This program is distributed in the hope that it will be useful,
+but WITHOUT ANY WARRANTY; without even the implied warranty of
+MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+GNU General Public License for more details.
+
+You should have received a copy of the GNU General Public License
+along with this program; if not, write to the Free Software
+Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA  02110-1301  USA
+
+** Please note **
+
+The JW Image Rotator (Flash Slideshow) is not part of this license and is available
+under a Creative Commons License, which allowing you to use, modify and redistribute 
+them for noncommercial purposes. 
+
+For commercial use please look at the Jeroen's homepage : http://www.longtailvideo.com/
+
+
+== Installation ==
+
+1. 	Install & Activate the plugin
+
+2.	Add a gallery and upload some images (the main gallery folder must have write permission)
+
+3. 	Go to your post/page an enter the tag '[nggallery id=x]' or '[slideshow id=x]'.	See more tags in the FAQ section
+
+That's it ... Have fun
+
+http://www.youtube.com/watch?v=Le_ZsNSuIvM
+
+== Screenshots ==
+
+1. Screenshot Admin Area 
+2. Screenshot Album Selection
+3. Screenshot Shutter Effect
+4. Screenshot Watermark function
+5. Screenshot Flexible template layout
+6. Screenshot Show Exif data
+
+== Frequently Asked Questions ==
+
+When writing a page/post, you can use the follow tags:
+
+For a slideshow : **[slideshow id=x w=width h=height]**
+
+Example : http://nextgen-gallery.com/slideshow/
+
+For a album : **[album id=x template=extend]** or **[album id=x template=compact]**
+
+Example : http://nextgen-gallery.com/album/
+
+For a gallery : **[nggallery id=x]**
+
+Example : http://nextgen-gallery.com/gallery-page/
+
+For a single picture : **[singlepic id=x w=width h=height mode=web20|watermark float=left|right]**
+
+Example : http://nextgen-gallery.com/singlepic/
+
+For a image browser : **[imagebrowser id=x]**
+
+Example : http://nextgen-gallery.com/image-browser/
+
+To show image sorted by tags : **[nggtags gallery=mytag,wordpress,... ]**
+
+Example : http://nextgen-gallery.com/gallery-tags/
+
+To show tag albums : **[nggtags album=mytag,wordpress,... ]**
+
+Example : http://nextgen-gallery.com/albumtags/
+
+To show random mages : **[random max=x ]**
+
+To show the most recent added mages : **[recent max=x ]**
+
+**A further FAQ you can found here :** http://alexrabe.de/wordpress-plugins/nextgen-gallery/faq/
+
+**And at least request your question here :** http://wordpress.org/tags/nextgen-gallery?forum_id=10
+
+== Changelog == 
+
+= V1.7.4 - 15.02.2011 =
+* Bugfix : Disallow direct call of ajax file to avoid path disclosure (THX to High-Tech Bridge SA)
+* Bugfix : Rework jQuery Cycle slideshow for IE compat reason (THX to Justin Dickenson)
+* Bugfix : Resize only larger images in slideshow
+* Bugfix : Improved image format detection in gd.thumbnail class (THX to Kupar.b)
+
+= V1.7.3 - 20.01.2011 =
+* NEW : Introduce plugin health check for conflicts with other plugins/themes
+* NEW : Adding new XMLRPC method ngg.deleteImage
+* NEW : Adding new XMLRPC method ngg.editImage
+* Changed : Rework register script for autocomplete feature
+* Bugfix : Bugfix for Multisite setup and flash upload
+* Bugfix : WP3.1 compat issue, show site admin page only on Multisite installation
+
+= V1.7.2 - 13.12.2010 =
+* Bugfix : Adding images to database require slug (NOT NULL)
+
+= V1.7.1 - 13.12.2010 =
+* Changed : Disable upgrade for PHP4 user
+* Changed : Disable colorpicker for option page
+* Bugfix : Compat fix for upgrade
+
+= V1.7.0 - 11.12.2010 =
+* NEW : Publish a new post direct from the gallery admin page
+* NEW : Added filter hook 'ngg_get_image_metadata' to add more exif/iptc information
+* NEW : Adding Autocomplete field to TinyMCE Popup and Album page
+* NEW : More methods for XMLRPC interface
+* Changed : New hooks for gallery table (THX to Alexander Schneider)
+* Changed : Introduce jQuery dialog as new UI element
+* Changed : Call TinyMCE window via admin-ajax
+* Bugfix : Better support for SSL blogs
+* Bugfix : Install/Upgrade failed when table prefix contain captial letters
+* Bugfix : Fix validation issues in Media-RSS
+* Bugfix : Empty tags in XMP Meta causes PHP error
+* Bugfix : Rework load mechanism for slideshow
+* Bugfix : Copy meta data when image is copied
+* Bugfix : Icon Support for Ozh' Admin Drop Down Menu
+* Bugfix : Use correct sort order in slideshow
+
+= V1.6.2 - 19.09.2010 =
+* NEW : Added constant NGG_SKIP_LOAD_SCRIPTS to avoid script load
+* Bugfix : Load Tags library with core files
+* Bugfix : Slideshow script failed in IE7, load script now in header
+* Bugfix : Load slideshow widget always
+* Changed : New admin notice for database upgrade
+* Changed : Rework crop feature for featured images
+* Changed : Use site_url() instead get_option ('siteurl'), required for SSL support
+
+= V1.6.1 - 08.09.2010 =
+* Bugfix : Script load of swfobject.js failed
+* Bugfix : Show sideshow also with 1 or 2 images
+* Bugfix : Rework null byte check in zip upload
+
+= V1.6.0 - 07.09.2010 =
+* NEW : Wordpress 3.0 Network (Multi-Site) support
+* NEW : Integrate jQuery Cycle as NON-Flash slideshow 
+* NEW : Adding jQuery File Tree for import folder (THX to Sergey Pasyuk )
+* NEW : Added action hook 'ngg_show_imagebrowser_first' on custom request
+* NEW : Added filter hook 'ngg_slideshow_size' to resize sildeshow for mobile browser plugins
+* Changed : Reorder tabs for upload
+* Changed : New menu icon and screen icon (THX to Ben Dunkle)
+* Changed : Load frontend libs always
+* Changed : Rework of overview page
+* Bugfix : Security bugfix for Zip-Upload (THX to Dominic Szablewski)
+* Bugfix : Allow JPG, PNG, GIF extension
+* Bugfix : New German translation (THX to Martin Kramarz)
+* Bugfix : Copy/Move also backup file
+* Bugfix : Calculate correct ratio for fix thumbnail size (THX to Alekz Keck)
+
+= V1.5.5 - 14.06.2010 =
+* Bugfix : Compat issue for post thumbnails with WP2.9
+* NEW : Adding more hooks for custom fields plugin
+
+= V1.5.4 - 14.06.2010 =
+* Bugfix : No resize of smaller images
+* Bugfix : Compat issues for Post Thumbnails under WP3.0
+* Bugfix : Esc_URL in Media RSS
+
+= V1.5.3 - 11.04.2010 =
+* New : Adding pagination to footer
+* Changed : Perpare new filter to replace slideshow
+* Bugfix : Remove non-breaking space from navigation
+* Bugfix : Pagination of galleries
+* Bugfix : Fixed brackets position for old shortcode query 
+* Bugfix : Slideshow option 'Show next image on click" has wrong default value 
+
+= V1.5.2 - 25.03.2010 =
+* Bugfix : XSS security vulnerability (THX to Core Security Advisories Team , Pedro Varangot) 
+* Bugfix : Missing $wpdb in shortcodes.php
+
+= V1.5.1 - 23.03.2010 =
+* Bugfix : PHP4 compat issue for Add gallery & options page
+* Bugfix : Gallery widget can now have a empty title
+* Bugfix : Adding correct stripslash for gallery title
+
+= V1.5.0 - 18.03.2010 =
+* NEW : Support for Post thumbnail feature
+* NEW : Backup and Recover function for images (THX to Simone Fumagalli)
+* NEW : Resize images after upload (THX to Simone Fumagalli)
+* NEW : Added a JSON class for fetching galleries in a RESTful way (see xml/json.php)
+* NEW : Adding various new capabilities for user roles
+* NEW : Auto downloader for translation file
+* Changed : Rename query var from slideshow to callback for compat reason with other plugin
+* Changed : Convert widget function to new WP structure
+* Changed : Include lookup for tags into the backend search 
+* Changed : Restructure addgallery and settings page to enable custom tabs
+* Bugfix : Select album preview from gallery preview pics instead random list
+* Bugfix : Keep fix dimension in edit thumbnail operation
+* Bugfix : Import meta data didn't work correct for existing images
+* Bugfix : Fix onload bug for Chrome 4 in Shutter script
+* Bugfix : Remove various PHP notices for a better world
+* Removed : Canonical link is now part of Wordpress 2.9
+
+= V1.4.3 - 16.11.2009 =
+* Bugfix : Urlencode XML file path for sildeshow
+
+= V1.4.2 - 16.11.2009 =
+* Changed : Load sildeshow XML not longer via relative path
+* Bugfix : No imagebrowser in carousel mode
+* Bugfix : JS Effect navigation based on wrong array structure
+* Bugfix : Remove whitespaces from meta import
+* Bugfix : Capability check for upgrade notice
+* Removed : Hide "more settings" for now, causes problems with IE and jQuery UI tabs
+
+= V1.4.1 - 10.11.2009 =
+* Bugfix : Capabilites could not be saved
+* Bugfix : Ajax pagination option not saved
+* Bugfix : echo nggSlideshowWidget() for compat reason
+
+= V1.4.0 - 08.11.2009 =
+* NEW : Automatic rotate images during upload or via manage gallery page (THX to Simone Fumagalli)
+* NEW : Include Bulkupdate for gallery overview, require PHP 5.2
+* NEW : XMLRPC support with 4 new methods : see xmlrpc.php for more information
+* NEW : Recent and random images can be taken from a specific gallery using the id=x parameter in the shortcode (THX to Prollius)
+* NEW : Recent images can be recent by exif date (instead of database id) by using the mode=recentdate parameter in the shortcode  (THX to Prollius)
+* NEW : Introduce the WP_Object_cache and meta_data
+* NEW : Various new hooks and filters
+* Added : Better support for role manager plugin (THX to Mattias Buelens)
+* Added : New option to add hidden images. Needed to show all images in a modal window (Thickbox, Lightbox et.)
+* Added : New link parameter for the singlepic shortcode : [singlepic id=x w=x h=x link="http://google.com"]
+* Added : New template gallery-carousel
+* Added : New id parameter for recent and random shortcodes : [random max="7" template="filename" id="2"] takes only pictures from the gallery with id=2
+* Added : New mode parameter for recent shortcode : [recent max="7" template="filename" id="3" mode="date" /] where mode can be one of (id, date, sort). Recent pictures are delivered by addition to database (id), exif date (date) or user sort order (sort).
+* Added : Enable/Disable Ajax navigation via settings
+* Added : New filter hook 'ngg_render_template' to render templates with a other plugin
+* Changed : Added option to link an album with a page id
+* Changed : Support templates for child themes, use STYLESHEETPATH instead TEMPLATEPATH (THX to Prollius)
+* Changed : Rework of Media RSS Widget
+* Bugfix : Check capability to create a new page
+* Bugfix : Fix double call of filter name , changed to ngg_picturelist_object (THX to Prollius)
+* Bugfix : Check for a deleted gallery in a album
+ 
+= V1.3.6 - 20.09.2009 =
+* Changed : Just change the feed link
+   
+= V1.3.5 - 17.07.2009 =
+* Bugfix : Fixed XSS issue for Page title
+
+= V1.3.4 - 07.07.2009 =
+* Added : New filter ngg_gallery_object and ngg_image_object
+* Bugfix : Fix double rendering of a gallery if two album shortcodes are used
+* Bugfix : Fix for custom field ngg_gal_sort
+* Bugfix : Changed capapbility check for upload 
+* Bugfix : Check for correct version OR memory limit
+
+= V1.3.3 - 11.06.2009 =
+* Changed : Load Thickbox images via wp_footer()
+* Bugfix  : Widget setting couldnot be saved
+
+= V1.3.2 - 10.06.2009 =
+* Changed  : Resize maximum to 1280 x 1280 with nggshow (THX to onezero)
+* Bugfix : Bugfix for Multifile upload
+* Bugfix : Bugfix for sortorder under jQuery 1.3
+* Bugfix : Workaround for more albums per page, need more rework
+* Bugfix : AJAX reload didn't work if slideshow is shown by default
+* Bugfix : Redirect links didn't work if permalinks are deactivates
+* Bugfix : Add new gallery in manage-overview didn't use defaultpath
+
+= V1.3.1 - 07.06.2009 =
+* Bugfix : Fixed ZIP upload, wrong variable used
+* Bugfix : Check for array before foreach in album missing
+
+= V1.3.0 - 07.06.2009 =
+* NEW : Subalbum support
+* NEW : Search for images in the admin tab
+* NEW : Add new gallery also in manage tab
+* NEW : AJAX support for Imagebrowser and gallery navigation (THX to Anty)
+* NEW : Added zip upload via URL (THX to Juan Jose Galvez)
+* Added : jQuery Multiple File Upload Plugin v1.44
+* Added : SWFUpload V2.2.0
+* Changed : Remove extension for Alttext during first import
+* Changed : Meta tag added via wp_head hook (THX to Viper)
+* Bugfix : Correct various PHP notice messages
+* Bugfix : Typo fix in custom fields for ngg_gal_ImageBrowser
+* Bugfix : Avoid upload of images in gallery without correct capability  
+
+= V1.2.1 - 22.03.2009 =
+* NEW : Support for IE8 Web Slices in widgets
+* NEW : Add filter ngg_image_object
+* Changed : Descending order in add gallery menu
+* Bugfix : Exclude option didnT work for multi pages
+* Bugfix : Check for correct capability in manage gallery
+
+= V1.2.0 - 09.03.2009 =
+* NEW : Support for image tag cloud with shortcode [tagcloud]
+* NEW : Adding shortcode [recent max="7" template="filename" /] & [random max="7" template="filename" /] to show the most recent/random pictures (THX to Bernhard)
+* NEW : Crop thumbnails manually (THX to Simone Fumagalli)
+* NEW : Support for i18n with polyglot or qtrans plugin (THX to Boris Glumpler)
+* NEW : Canonical meta link support
+* Added : SWFUpload V2.2.0 B5
+* Added : New memory limit check in upload screen
+* Bugfix : Language typo fixes
+* Bugfix : Admin Pagination fix
+* Bugfix : Typo fix in widgets
+* Bugfix : Init column script after document is ready
+* Bugfix : htmlspecialchars() instead htmlentities() for links in the a href title description
+* Bugfix : Upgrade routine didn't add sortorder to correct table (THX to Uwe)
+* Bugfix : Correct shotcode in media upload tab
+
+= V1.1.0 - 26.01.2009 =
+* NEW : Pagination for album page via custom fields ('ngg_paged_Galleries')
+* NEW : Support for fixed number of columns inside the gallery
+* NEW : Added pagination for galleries and images in admin section
+* NEW : New action hook after image is added to database, called 'ngg_added_new_image' 
+* NEW : New template for caption below images, called via [nggallery id=x template=caption]
+* Added : SWFUpload V2.2.0 B4
+* Changed : Rework of Manage image tables
+* Changed : Move imagerotator.swf to wp-content/uploads
+* Changed : Added a URL field to setup the path to the Imagerotator
+* Changed : Add additional parameter to gallery object
+* Changed : Load donators list external
+* Bugfix : Style fixes for tables in IE7
+* Bugfix : All albums code couldn't use the slideshow, query is empty for 0
+* Bugfix : Htmlentities() for links in the a href title description
+* Bugfix : Clean up mode for singlepic
+* Bugfix : Typo in widget settings
+
+= V1.0.2 - 19.12.2008 =
+* Added : Option to enable/disable the MediaRSS Feed
+* Added : For flash under FF3/WIN we should use outline: none; 
+* Added : Use sort order also for Media RSS
+* Changed : Descending order for TinyMCE Editor
+* Changed : Added screencolor flashvar as bgcolor for the flash slideshow
+* Changed : Remove link to gallery in sidebar widget
+* Bugfix : Check for empty gallery title and show name instead
+* Bugfix : Album id=all / Album id=0 didn't show content
+* Bugfix : Check for a empty description and alttext
+* Bugfix : Remove HTML tags from slideshow 
+* Bugfix : Load SWFobject always when the imagerotator exist
+* Bugfix : Zip-Upload in existing gallery failed
+* Bugifx : Typo in functions.php (THX to David Horat)
+
+= V1.0.1 - 11.12.2008 =
+* Bugfix : Change upgrade routine, import_date_time could cause a memory problem
+* Bugfix : Help pages will not show up in non-english enviroment
+* Bugfix : Show gallery name if title is empty
+
+= V1.0.0 - 11.12.2008 =
+* NEW : Adding some rewrite rules for the Blog title for a better SEO (Will be continued...)
+* NEW : Added ImageMagick support (currently a bit experimental) (THX to Frederic de Ranter) 
+* NEW : Automatic unistall via register_uninstall_hook()
+* NEW : Added a presort option to sort easier the images
+* NEW : Lookup for a nggallery.css in the theme folder
+* NEW : Added Date/Time field to database and import it from EXIF, new sort option
+* NEW : Multi Widgets to show links to Media RSS feeds (THX to Vincent Prat) 
+* NEW : PicLens support for galleries (THX to Vincent Prat) 
+* NEW : Copy/Move images between galleries (THX to Vincent Prat) 
+* NEW : Media RSS feeds (either for galleries, albums or global) (THX to Vincent Prat) 
+* NEW : Image tag management (THX to Vincent Prat) 
+* NEW : Convert all shortcodes to WP shortcodes API
+* NEW : AJAX based thumbnail generator
+* NEW : Create output via template files, more flexible and support for multiple templates
+* NEW : Extended role system. Each gallery has now a author
+* NEW : [thumb id="4,5,12,..."] shortcode. You can now insert thumbnails for one or more images (that are not necessarly inside the same gallery).
+* Changed : Add swfupload 2.2.0. Support for Adobe Flash 10 upload		
+* Changed : Update all Admin pages for Wordpress 2.7 Admin UI		
+* Changed : New icon for TinyMCE and WP2.7 Menue from http://www.pinvoke.com/
+* Changed : Move update message to admin.php
+* Changed : Widgets are now core and doesn't need to be activate, rework as Multi Widgets		
+* Changed : Improved the gallery management page.
+* Changed : Rename the filter 'ngg_create_gallery_thumbcode' to 'ngg_get_thumbcode'.
+* Changed : Convert tags to WP-Taxonomy tables, no more need for ngg_tags, ngg_pic2tags
+* Changed : Arrange manage fields in a new way
+* Changed : Support now SSL 
+* Changed : Use JQuery UI instead of interface lib
+* Changed : Updated to swfobject 2.1
+* Changed : Rework of database queries and new central nggdb class 
+* Bugfix : Changed CSS for singlepic padding to margin
+* Bugfix : Check for zero in Exif Focal Length
+* Bugfix : Round instead inval for square thumbnails
+* Removed : Do not longer check for myGallery folders
+* Removed : Use now PclZip from WP Core
+* Removed : Wordpress 2.1 - 2.3 files deleted
+
+= V0.99 - 27.09.2008 =
+* Changed : Included swfobject version 2.1 
+* Bugfix : Recognize the zip better
+* Bugfix : Limit the length of the title in the media-upload
+* Bugfix : Round instead inval for square thumbnails
+
+= V0.98 - 15.07.2008 =
+* Bugfix : Removed all whitespaces at EOF
+
+= V0.97 - 10.07.2008 =
+* Changed : Get new path contstant from WP2.6
+* Changed : Minor updates for WP2.6
+* Changed : Added new filters (THX to Vincent Prat) 
+* Removed : Revert singlepic wrapper, breaks validation
+
+= V0.96 - 18.05.2008 =
+* Changed : Use postbox for gallery settings 
+* Added : New filter function to add custom columns
+* Bugfix : Fixed width for Thickbox in Manage gallery
+* Bugfix : fixed width for media upload select box
+* Bugfix : Remove <p> tag in singlepic regex
+* Bugfix : Correct format of shutter speed 
+* Bugfix : Album name in Short code not useable  
+
+= V0.95 - 25.04.2008 =
+* Bugfix : Correction in media-upload to fit with Wordpress 2.5.1
+* Bugfix : Attribute_escape all objects in media-upload
+* Bugfix : Correct sortorder for albums
+* Bugfix : Typo correction (THX to Momo-I)
+
+= V0.94 - 20.04.2008 =
+* Added : New filter option ngg_create_gallery_link
+* Changed : Reduce amount of DB queries in albums (Big THX to Alexandr Kindras)
+* Changed : Revert wpautop priority change. Doesn't good for other plugins
+
+= V0.93 - 12.04.2008 =
+* Added : Select Full-Size or Singlepic in Media Upload
+* Added : Check for minimum 8 MB Memory
+* Changed : Priority from wpautop must be before gallery
+* Bugfix : Added Screencolor to Widgets
+* Bugfix : Clean CSS class in setup.php
+* Bugfix : Change PHP short tag (Thx to Archedition)
+* Bugfix : Remove tab.png from CSS (Thx to Frisco)
+* Bugfix : Remove newline and encode quotes in Media-Upload (THX to Trip Mellinger)
+
+= V0.92 - 30.03.2008 =
+* Changed : Higher priority for filter in WP2.5 final
+* Changed : Do not increase memory_limit with ini_set
+* Added : Read EXIF field ImageDescription
+
+= V0.91 - 24.03.2008 =
+* Changed : Resample mode back to 3
+* Changed : Add DIV "ngg-singlepic-wrapper" for SingelPic (THX to Travel-Junkie)
+* Changed : Increase Tweakfactor for Memory Check
+* Bugfix : Use admin.css only on NextGEN pages (THX tp Oliver)
+* Bugfix : Updates widgets (V1.21) for ImageRotator 3.15
+* Bugfix : Change order of rewrite rules for WP 2.5
+* Bugfix : Include Dashboard CSS also for page "nextgen-gallery"
+
+= V0.90 - 18.03.2008 =
+* NEW : Sort order for images
+* NEW : Updated style for Wp 2.5
+* NEW : Media upload tab integration for WP 2.5
+* Added   : Change wp shortcode filter 
+* Added   : TinyMCE V3 Button for WordPress 2.5
+* Added   : Singlepic center class 
+* Changed : New default parameter for ImageRotator 3.15
+* Changed : By default enable metadata import
+* Changed : Moved disable/enable flash setting to add gallery
+* Changed : wpdb->escape gallerytag in nggfunctions
+* Changed : Sort files after scan folder
+* Changed : Check for filename during upload
+* Changed : Remove jQuery plugin for navigation
+* Changed : Remove myGallery import
+* Changed : Resample mode default set to 5, causes problems at PHP 4.4.8 /PHP 5.2.4
+* Bugfix  : nggextractXML missing stripslashes
+* Bugfix  : P tags not closed in manage.php
+* Bugfix  : Remove " from singlepic class
+* Bugfix  : Rewrite rule for ImageBrowser added
+
+= V0.83 - 14.02.2008 =
+* Changed : New Interfaces.js from WP Core 2.5, for sortable bug under IE7
+* Changed : Update to jQuery V1.2.2, deregister older version from WP
+* Changed : Add ini_set 128MB for memory-limit
+* Bugfix : SWFUpload Cookie Post_Params are overwritten , no upload possible
+* Bugfix : WPMU options are not saved after installation
+* Bugfix : Remove Flush rewrite rules during install 
+
+= V0.82 - 09.02.2008 =
+* Bugfix : add_filter (searchnggallerytags) not proper included for some other plugins
+
+= V0.81 - 04.02.2008 =
+* Changed : Use stristr first to reduce CPU cycles (THX to Alakhnor)
+* Changed : Flush Rewrites rules after option update
+* Changed : Rework for folder check under Safe-Mode 
+* Bugfix : Check for array in get_option() (THX to Alessandro)
+* Bugfix : Add Cookie to SWFUpload, show Error code included
+* Bugfix : galShowOrder = Sildeshow at first didn't work
+* Bugfix : Remove reference from ngg_getOnlyImages 
+
+= V0.80 - 02.02.2008 =
+* NEW : SWFUpload integrated : Show upload progress and select multiple files in the file browser dialog. 
+* NEW : Progress bar for resize, watermark and thumbnail operation
+* NEW : Import Meta data from images
+* NEW : Show Meta data information
+* NEW : Cache option for SinglePic
+* NEW : Permalink support
+* NEW : Custom fields support - Change the settings for each post/page
+* Changed : Up to 10 Widgets, exclude galleries from random/recent images. 
+* Changed : Refactor permission check for Safe-Mode Check and mkdir/chmod
+* Changed : Admin CSS in new folder/file for better structure
+* Changed : Clean up folder structure
+* Changed : Clean up code in manage.php, functions.php
+* Changed : Moved several functions into nggAdmin Class (functions.php)
+* Changed : Update to jQuery V1.1.4 (v1.2.1 causes problems with interface.js)
+* Changed : Hide used galleries in album admin page 
+* Changed : Remove float in singlepic code and added class ngg-left , ngg-right (THX to Nathan Sylvain)
+* Changed : Edit style setting (added new class .desc , THX to Sebastian) 
+* Changed : Check for galleryfolder instead name (THX to Luke Poland)
+* Changed : Delete images per default
+* Changed : Change CSS (ngg-album-compact) , remove width & height setting from code
+* Bugfix : Fixed static front page problem
+* Bugfix : Missing stripslashes & html_entity_decode
+* Bugfix : Change Album CSS (THX to Thomas-DK)
+* Bugfix : Watermark for GIF not correct supported
+* Bugfix : Missing wp_nonce at setup page
+* Bugfix : Add DIV in Slideshow link (for Safari & Opera)
+* Added : Screencolor flashvar for JW Image Rotator 3.13 or higher
+* Added : Set WP-CHARSET / COLLATE during installation
+* Added : Updated to Pclzip.lib.php v2.6
+* Added : CSS ID field for gallery & images
+* WPMU : New site admin page (wpmu.php)
+* WPMU : Integrated quota check
+* WPMU : No update check
+* WPMU : Remove edit style (THX to Kristin)
+* WPMU : Remove uninstall button
+* WPMU : Remove server settings
+* WPMU : Gallery path set to blog.dir
+* Added : Support for WPMU
+
+= V0.74 - 01.12.2007 =
+* NEW : Added meta reader class, first step to integrated meta data import
+
+= V0.73 - 20.10.2007 =
+* Added : Support for Shutter Reloaded
+* Update to jQuery Tabs 2.7.4
+* Changed : Remove $_SERVER['REQUEST_URI'] for IIS compatibility
+* Bugfix : Option Sildeshow didn't jump to overview
+
+= V0.72 - 13.09.2007 =
+* Added : Missing overflow:hidden in ngg-album.css
+* Added : New experimental stylesheet hovereffect.css
+* Changed : Better check for memory limit in zip-files
+* Bugfix : Missing stripslashes for alttext (THX to Lawrence)
+* Bugfix : Navigation didn't highlight page 1 (THX to Brot)
+* Bugfix : Albums automatic minimize if more than 4 galleries
+* Bugfix : Missing check_admin_referer in style (THX again to Christopher)
+
+= V0.71 - 07.09.2007 =
+* Added  : Add defer="defer" to Slideshow to avoid IE crash (THX to Simbo)
+* Bugfix : Bugfix for slideshow to show all pictures
+* Bugfix : Wrong check_admin_referer in albums (THX to Christopher)
+* Bugfix : No exclude check in counter and widgets (THX to Christopher)
+* Bugfix : Check for existing role (THX to Lost in Network)
+* Bugfix : Label in roles are wrong (THX to Joern)
+
+= V0.70 - 06.09.2007 =
+* NEW : Add role manager page and capabilities
+* NEW : Show gallery with [tags=list of tags]
+* NEW : Show album with [albumtags=list of tags]
+* NEW : Tag system for all images
+* NEW : Option for append related images
+* NEW : Option to show description below thumbnail
+* NEW : Option to show ImageBrowser instead JS effect
+* Added : Add Full size link to thickbox
+* Added  : Check for page/postid in tag processing
+* Added  : Sildeshow widget can now contain all images
+* Added  : Minimize/Maximize option for albums 
+* Added  : Deregister jQuery V1.1.2 for WP2.2 (to use V1.1.3.1)
+* Added  : Integrate wp_nonce_field at all admin pages
+* Changed : Update to Thickbox 3.1 + mods for NextGEN gallery
+* Changed : Moved "clear:both" into class "ngg-clear" (THX to Gero)
+* Changed : Switched from jQuery Interface to jQuery Tabs from Klaus Hartl 
+* Remove : Remove option for singlepic link
+* Remove : Remove options for imagebrowser
+* Bugfix : Most Recent image in Widget are wrong
+* Bugfix : More XHTML valid , htmlspecialchars() after add_query_arg()
+* Bugfix : Sanitize file name before upload
+* Bugfix : Sanitize folder name (THX to Tom Fowler)
+* Bugfix : Show title/alt in jQuery plugin (THX to Gregory Green)
+* Bugfix : i18n support for Gallery tab
+* Bugfix : Reduce memory-needs for plugin
+* Bugfix : Typo/spelling correction
+* Bugfix : Removed myGallery author from contribute list
+
+= V0.64 - 31.07.2007 =
+* Bugfix : Remove arrows in image browser text
+* Bugfix : Include nggadmintab.php with dirname 
+* Bugfix : Zip-Upload under Mac > look for basename
+
+= V0.63 - 10.07.2007 =
+* NEW : You can now upload a zip file into a existing gallery
+* Added : Remove subfolder in Zip-files
+* Added : Show required memory for thumbnail creation
+* Added : Updated to jQuery.multifile 1.22
+* Added : Install-Upgrade for WordPress 2.3
+* Bugfix : Supress unlink error message for thumbs
+* Bugfix : Support upload of zip files from MAC
+* Bugfix : Add Stripslash for image description
+* Bugfix : Use for Singlepic not rel="Gallery name"
+* Bugfix : Moved RSS/Snoopy includes into function
+
+= V0.62 - 06.07.2007 =
+* NEW : Import for myGallery
+* Added : Updated to jQuery 1.1.3.1
+* Bugfix : Check for memory_limit setting, otherwise pass the test
+* Bugfix : Thumbcode not insert for nggDisplayRandomImages and nggDisplayRecentImages
+
+= V0.61 - 29.06.2007 =
+* Added : Forgot the file jquery.nextgen.pack.js and jquery.nextgen.js
+
+= V0.60 - 27.06.2007 =
+* NEW : Select a image from the Upload Tab
+* NEW : Tag [imagebrowser=id] for a Inline Gallery Browser
+* NEW : Show gallery without Subpages
+* NEW : Manage gallery : Function "Add a new page"
+* NEW : Manage gallery : Show/Hide thumbnails
+* Added : Slideshow option : Watermark / Background music 
+* Added : Check for memory limit 
+* Added : Show actual memory usage in overview
+* Added : Include function check in widget
+* Added : Latest Sidebar widget from KeViN
+* Added : Check for capability during installation
+* Changed : Remove P Tag around gallery tags ( THX to the work from John Godley )
+* Bugfix : Delete picture, check for pid
+* Bugfix : admin/settings.php line #172: typos corrected (this=these,maxium=maximum). (THX to Helene D.) 
+* Bugfix : admin/settings.php line #311: missing </td> added. (THX to Helene D.) 
+
+= V0.52 - 31.05.2007 =
+* Changed : Create better thubmnails in square mode (THX to Kees de Bruin) 
+* Changed : Again , fixed ratio create better thumbnails (Also for widescreen photos)
+* Removed : Option "Resize image before cropping" removed and included in Create square thumbnail
+* Bugfix : Scan folder for new picture didn't set exclude = 0
+* Bugfix : If no option is checked in thumbnails, resize failed (THK to Joern Kretzschmar)
+
+= V0.51 - 28.05.2007 =
+* Bugfix : Thumbnail permission not set correct
+* Bugfix : Folder permission check wrong
+* Bugfix : Remove echo in album (THX to Lazy)
+
+= V0.50 - 28.05.2007 =
+* NEW : Select multiple files for upload (THX to Diego A., http://www.fyneworks.com)
+* NEW : Sidebar widget contain now Slideshow, recent images and random images
+* Added : New Option for Imagerotator 3.8 (Slow zoom effect)
+* Added : Option for CDATA wrapper (not working proper)
+* Added : Option for Thickbox Loading Image
+* Added : CSS file for dKret2 (THK to Joern)
+* Added : Better file permission check
+* Changed : Fixed ratio create better thumbnails in portrait mode
+* Changed : All jQuery scripts are now in "No Conflict" mode
+* Changed : Script loading now via wp_enqueue_script
+* Changed : Add constant values for folder/file permission
+* Changed : Use description in <A href title>
+* Bugfix : Remove wrong DIV tag in slideshow
+* Bugfix : Tag [Slideshow=id,width,height] didn't work proper
+* Bugfix : Name conflict in Album script (serialize) (THX to Die-Andis)
+* Bugfix : Changed check for CSS activation
+* Bugfix : Changed check for safe-mode (Don't ask)
+
+= V0.43 - 20.05.2007 =
+* Changed : Rename Thumbnail class to avoid php name collision
+* Bugfix : Missing translation flag in setup
+* Bugfix : Changed check for safe-mode
+* Bugfix : Changed check for Zip-File
+
+= V0.42 - 17.05.2007 =
+* Bugfix : Float function for singlepic not integrated, sorry !
+* Bugfix : Remove clear:both in widget
+
+= V0.41 - 17.05.2007 =
+* NEW : Sidebar widget from KeViN
+* Update : Better album management for more galleries
+* Update : Thickbox v3 integrated
+* Added : Float selection for singlepic
+* Added : CSS class for widget
+* Added : CSS file for K2 theme
+* Added : German translation (THX to Lazy)
+* Added : Better check for safe-mode
+* Added : CSS Class for single-pic : class="ngg-singlepic"
+* Added : Option to resize image before cropping it (Setting reset of prior versions needed! Setup -> Reset Settings)
+* Changed : Image quality by default 85% (THX to ArizonaGroovejet)
+* Bugfix : Update wrong file when select other style
+* Bugfix : Fixed Permalink in album (THX to Helene D.)
+* Bugfix : Scan folder in empty gallery
+* Bugfix : Swfobjects only added with Thickbox effect
+* Bugfix : Umlauts are now handled correctly
+
+= V0.40 - 29.04.2007 =
+* NEW : TinyMCE Button integration
+* Removed : CSS Style : remove width/height in album
+
+= V0.39 - 28.04.2007 =
+* Added : Set ORDER BY for gallery
+* Bugfix : check now for Exclude != 1
+* Bugfix : DB Query in function wrong
+* Bugfix : DB exlude = DEFAULT '0'
+* Bugfix : Scan folder in empty gallery
+
+= V0.38 - 28.04.2007 =
+* Bugfix : One time more remove get_settings :-)
+* Bugfix : $_GET in Manage gallery
+* Bugfix : exclude option
+
+= V0.37 - 28.04.2007 =
+* Bugfix : $_GET in Manage gallery
+* Bugfix : update DB installation routine
+
+= V0.36 - 26.04.2007 =
+* Bugfix : Stupid PHP beginner failure in album management
+
+= V0.35 - 26.04.2007 =
+* Rework : Folder name can be flexible
+* New option : Fullsize pic for Singlepic mode
+* New option : Select show order
+* Added : Check for WP2.1
+* Added : Check for permission for default folder
+* Bugfix : Remove get_settings
+* Bugfix : Correction for Safe-Mode ON
+* Bugfix : Set Default '0' for table album.sortorder
+* Bugfix : Update sort order
+
+= V0.34 - 24.04.2007 =
+* Added : Add fix ration setting
+* Added : Add language file file
+* Bugfix : Change link in Album to get_bloginfo('wpurl')
+* Bugfix : Album CSS file not loaded
+
+= V0.33 - 23.04.2007 =
+* NEW : Overview Page
+* NEW : Core function
+* NEW : Slideshow
+
+== Upgrade Notice ==
+
+= 1.5.5 =
+Compat issue for post thumbnails with WP2.9 and WP3.0. No Database changes...
\ No newline at end of file
diff --git a/wp-content/plugins/nextgen-gallery/screenshot-1.jpg b/wp-content/plugins/nextgen-gallery/screenshot-1.jpg
new file mode 100644
index 0000000000000000000000000000000000000000..fdd381c7fec242baab1d1a0bc5f15b55afa603e5
GIT binary patch
literal 24830
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
aXu?`m_W0;ghdGWmf2D(`zg}Sf|0V#=Vl^iK

literal 0
HcmV?d00001

diff --git a/wp-content/plugins/nextgen-gallery/screenshot-2.jpg b/wp-content/plugins/nextgen-gallery/screenshot-2.jpg
new file mode 100644
index 0000000000000000000000000000000000000000..6e21a60d942f2d3ad41b9851c34ca6b7a0dc3206
GIT binary patch
literal 17482
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

literal 0
HcmV?d00001

diff --git a/wp-content/plugins/nextgen-gallery/screenshot-3.jpg b/wp-content/plugins/nextgen-gallery/screenshot-3.jpg
new file mode 100644
index 0000000000000000000000000000000000000000..227572cdb87076a7ec35f6b6a0656ead60cbb7f8
GIT binary patch
literal 23568
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

literal 0
HcmV?d00001

diff --git a/wp-content/plugins/nextgen-gallery/screenshot-4.jpg b/wp-content/plugins/nextgen-gallery/screenshot-4.jpg
new file mode 100644
index 0000000000000000000000000000000000000000..fa73c6c16d480a201badb9d829bb7b9618b51758
GIT binary patch
literal 24298
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

literal 0
HcmV?d00001

diff --git a/wp-content/plugins/nextgen-gallery/screenshot-5.jpg b/wp-content/plugins/nextgen-gallery/screenshot-5.jpg
new file mode 100644
index 0000000000000000000000000000000000000000..2b630fc629663ac2f5bc978b2e9376408d5eaeac
GIT binary patch
literal 33472
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

literal 0
HcmV?d00001

diff --git a/wp-content/plugins/nextgen-gallery/screenshot-6.jpg b/wp-content/plugins/nextgen-gallery/screenshot-6.jpg
new file mode 100644
index 0000000000000000000000000000000000000000..6671d5d7b571ee4d42b41a905c44e03164887ae2
GIT binary patch
literal 39666
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
Dk`0mg

literal 0
HcmV?d00001

diff --git a/wp-content/plugins/nextgen-gallery/shutter/shutter-reloaded.css b/wp-content/plugins/nextgen-gallery/shutter/shutter-reloaded.css
new file mode 100644
index 000000000..f2c01c95b
--- /dev/null
+++ b/wp-content/plugins/nextgen-gallery/shutter/shutter-reloaded.css
@@ -0,0 +1,93 @@
+/* Shutter */
+#shDisplay div#shTitle {
+	font: normal 12px/17px 'Lucida Grande', Verdana, sans-serif; /* caption font */
+	color: #ffffff; /* caption colour */
+	text-align: center;
+	margin: 0 auto;
+}
+
+#shDisplay div#shCount {
+	color: #999999;
+	font: normal 10px/12px 'Lucida Grande', Verdana, sans-serif;
+}
+
+#shDisplay div#shTitle a {
+	text-decoration: none;
+	font: bold 16pt 'Courier New', Courier, fixed;
+	letter-spacing: -2px;
+	margin: 0 10px;
+	width: 26px;
+	color: #999999;
+}
+
+#shDisplay div#shTitle a:hover {
+	color: #ffffff;
+	border: none;
+}
+
+#shDisplay div#shNext{
+	float:right;
+}
+
+#shDisplay div#shPrev {
+	float:left;
+}
+
+body {
+	height: 100%;
+}
+
+#shShutter *, #shDisplay * {
+	padding: 0;
+	margin: 0;
+}
+
+div#shShutter, div#shDisplay {
+	top: 0;
+	left: 0;
+	width: 100%;
+	position: absolute;
+}
+
+div#shShutter {
+	height: 100%;
+	z-index: 1000;
+	background-color: #000000;
+	opacity: 0.8;
+	filter:alpha(opacity=80);
+}
+
+div#shDisplay {
+	display: block;
+	background-color: transparent;
+	z-index: 1002;
+}
+
+div#shDisplay img#shTopImg {
+	margin: 0 auto;
+	border: 1px solid #555;
+	background: transparent;
+	display: block;
+	max-width: none;
+	max-height: none;
+	float: none;
+	padding:2px;
+	cursor: pointer;
+}
+
+div#shDisplay div#shWrap {
+	visibility: hidden;
+}
+
+div#shWaitBar {
+	font: bold 32px 'Lucida Grande', 'Lucida Sans Unicode', Verdana, sans-serif;
+	height: 36px;
+	width: 100%;
+	left: 0;
+	cursor: default;
+	opacity: 0.999;
+	filter: alpha(opacity=100);
+	z-index: 1001;
+	margin-top: 160px;
+	color: #ae0a0a;
+}
\ No newline at end of file
diff --git a/wp-content/plugins/nextgen-gallery/shutter/shutter-reloaded.js b/wp-content/plugins/nextgen-gallery/shutter/shutter-reloaded.js
new file mode 100644
index 000000000..a08353ac7
--- /dev/null
+++ b/wp-content/plugins/nextgen-gallery/shutter/shutter-reloaded.js
@@ -0,0 +1,243 @@
+/*
+Shutter Reloaded for NextGEN Gallery
+http://www.laptoptips.ca/javascripts/shutter-reloaded/
+Version: 1.3.1
+Copyright (C) 2007-2008  Andrew Ozz
+Released under the GPL, http://www.gnu.org/copyleft/gpl.html
+
+Acknowledgement: some ideas are from: Shutter by Andrew Sutherland - http://code.jalenack.com, WordPress - http://wordpress.org, Lightbox by Lokesh Dhakar - http://www.huddletogether.com, the icons are from Crystal Project Icons, Everaldo Coelho, http://www.everaldo.com
+
+*/
+
+shutterOnload = function(){shutterReloaded.init('sh');}
+
+if (typeof shutterOnload == 'function') {
+	if ('undefined' != typeof jQuery) jQuery(document).ready(function(){shutterOnload();});
+	else if( typeof window.onload != 'function' ) window.onload = shutterOnload;
+	else {oldonld = window.onload;window.onload = function(){if(oldonld){oldonld();};shutterOnload();}};
+}
+
+shutterReloaded = {
+
+	I : function (a) {
+		return document.getElementById(a);
+	},
+
+	settings : function() {
+		var t = this, s = shutterSettings;
+
+		t.imageCount = s.imageCount || 0;
+		t.msgLoading = s.msgLoading || 'L O A D I N G';
+		t.msgClose = s.msgClose || 'Click to Close';
+	},
+
+	init : function (a) {
+		var t = this, L, T, ext, i, m, setid, inset, shfile, shMenuPre, k, img;
+		shutterLinks = {}, shutterSets = {};
+		if ( 'object' != typeof shutterSettings ) shutterSettings = {};
+
+		for ( i = 0; i < document.links.length; i++ ) {
+			L = document.links[i];
+			ext = ( L.href.indexOf('?') == -1 ) ? L.href.slice(-4).toLowerCase() : L.href.substring( 0, L.href.indexOf('?') ).slice(-4).toLowerCase();
+			if ( ext != '.jpg' && ext != '.png' && ext != '.gif' && ext != 'jpeg' ) continue;
+			if ( a == 'sh' && L.className.toLowerCase().indexOf('shutter') == -1 ) continue;
+			if ( a == 'lb' && L.rel.toLowerCase().indexOf('lightbox') == -1 ) continue;
+
+			if ( L.className.toLowerCase().indexOf('shutterset') != -1 )
+			setid = L.className.replace(/\s/g, '_');			
+			else if ( L.rel.toLowerCase().indexOf('lightbox[') != -1 )
+			setid = L.rel.replace(/\s/g, '_');
+			else setid = 0, inset = -1;
+			
+			if( setid ) {
+				if ( ! shutterSets[setid] ) shutterSets[setid] = [];
+					inset = shutterSets[setid].push(i);
+			}
+			
+			shfile = L.href.slice(L.href.lastIndexOf('/')+1);
+			T = ( L.title && L.title != shfile ) ? L.title : '';
+			
+			shutterLinks[i] = {link:L.href,num:inset,set:setid,title:T}
+			L.onclick = new Function('shutterReloaded.make("' + i + '");return false;');
+		}
+
+		t.settings();
+
+	},
+
+	make : function(ln,fs) {
+		var t = this, prev, next, prevlink = '', nextlink = '', previmg, nextimg, D, S, W, fsarg = -1, imgNum, NavBar;
+
+		if ( ! t.Top ) {
+			if ( typeof window.pageYOffset != 'undefined' ) t.Top = window.pageYOffset;
+			else t.Top = (document.documentElement.scrollTop > 0) ? document.documentElement.scrollTop : document.body.scrollTop;
+		}
+
+		if ( typeof t.pgHeight == 'undefined' )
+			t.pgHeight = Math.max(document.documentElement.scrollHeight,document.body.scrollHeight);
+
+		if ( fs ) t.FS = ( fs > 0 ) ? 1 : 0;
+		else t.FS = shutterSettings.FS || 0;
+
+		if ( t.resizing ) t.resizing = null;
+		window.onresize = new Function('shutterReloaded.resize("'+ln+'");');
+
+		document.documentElement.style.overflowX = 'hidden';
+		if ( ! t.VP ) {
+			t._viewPort();
+			t.VP = true;
+		}
+
+		if ( ! (S = t.I('shShutter')) ) {
+			S = document.createElement('div');
+			S.setAttribute('id','shShutter');
+			document.getElementsByTagName('body')[0].appendChild(S);
+			t.hideTags();
+		}
+
+		if ( ! (D = t.I('shDisplay')) ) {
+			D = document.createElement('div');
+			D.setAttribute('id','shDisplay');
+			D.style.top = t.Top + 'px';
+			document.getElementsByTagName('body')[0].appendChild(D);
+		}
+
+		S.style.height = t.pgHeight + 'px';
+
+		var dv = t.textBtns ? ' | ' : '';
+		if ( shutterLinks[ln].num > 1 ) {
+			prev = shutterSets[shutterLinks[ln].set][shutterLinks[ln].num - 2];
+			prevlink = '<a href="#" onclick="shutterReloaded.make('+prev+');return false">&lt;&lt;</a>'+dv;
+			previmg = new Image();
+			previmg.src = shutterLinks[prev].link;
+		} else {
+			prevlink = '';
+		}
+
+		if ( shutterLinks[ln].num != -1 && shutterLinks[ln].num < (shutterSets[shutterLinks[ln].set].length) ) {
+			next = shutterSets[shutterLinks[ln].set][shutterLinks[ln].num];
+			nextlink = '<a href="#" onclick="shutterReloaded.make('+next+');return false">&gt;&gt;</a>'+dv;
+			nextimg = new Image();
+			nextimg.src = shutterLinks[next].link;
+		} else {
+			nextlink = '';
+		}
+
+		imgNum = ( (shutterLinks[ln].num > 0) && t.imageCount ) ? '<div id="shCount">&nbsp;(&nbsp;' + shutterLinks[ln].num + '&nbsp;/&nbsp;' + shutterSets[shutterLinks[ln].set].length + '&nbsp;)&nbsp;</div>' : '';
+
+		NavBar = '<div id="shTitle"><div id="shPrev">' + prevlink + '</div><div id="shNext">' + nextlink + '</div><div id="shName">' + shutterLinks[ln].title + '</div>' + imgNum + '</div>';
+
+		D.innerHTML = '<div id="shWrap"><img src="" id="shTopImg" title="' + t.msgClose + '" onload="shutterReloaded.showImg();" onclick="shutterReloaded.hideShutter();" />' + NavBar +'</div>';
+		
+		//Google Chrome 4.0.249.78 bug for onload attribute
+		document.getElementById('shTopImg').src = shutterLinks[ln].link;
+		
+		window.setTimeout(function(){shutterReloaded.loading();},2000);
+	},
+
+	loading : function() {
+		var t = this, S, WB, W;
+		if ( (W = t.I('shWrap')) && W.style.visibility == 'visible' ) return;
+		if ( ! (S = t.I('shShutter')) ) return;
+		if ( t.I('shWaitBar') ) return;
+		WB = document.createElement('div');
+		WB.setAttribute('id','shWaitBar');
+		WB.style.top = t.Top + 'px';
+		WB.innerHTML = t.msgLoading;
+		S.appendChild(WB);
+	},
+
+	hideShutter : function() {
+		var t = this, D, S;
+		if ( D = t.I('shDisplay') ) D.parentNode.removeChild(D);
+		if ( S = t.I('shShutter') ) S.parentNode.removeChild(S);
+		t.hideTags(true);
+		window.scrollTo(0,t.Top);
+		window.onresize = t.FS = t.Top = t.VP = null;
+		document.documentElement.style.overflowX = '';
+	},
+
+	resize : function(ln) {
+		var t = this;
+
+		if ( t.resizing ) return;
+		if ( ! t.I('shShutter') ) return;
+		var W = t.I('shWrap');
+		if ( W ) W.style.visibility = 'hidden';
+
+		window.setTimeout(function(){shutterReloaded.resizing = null},500);
+		window.setTimeout(new Function('shutterReloaded.VP = null;shutterReloaded.make("'+ln+'");'),100);
+		t.resizing = true;
+	},
+
+	_viewPort : function() {
+		var t = this;
+		var wiH = window.innerHeight ? window.innerHeight : 0;
+		var dbH = document.body.clientHeight ? document.body.clientHeight : 0;
+		var deH = document.documentElement ? document.documentElement.clientHeight : 0;
+
+		if( wiH > 0 ) {
+			t.wHeight = ( (wiH - dbH) > 1 && (wiH - dbH) < 30 ) ? dbH : wiH;
+			t.wHeight = ( (t.wHeight - deH) > 1 && (t.wHeight - deH) < 30 ) ? deH : t.wHeight;
+		} else t.wHeight = ( deH > 0 ) ? deH : dbH;
+
+		var deW = document.documentElement ? document.documentElement.clientWidth : 0;
+		var dbW = window.innerWidth ? window.innerWidth : document.body.clientWidth;
+		t.wWidth = ( deW > 1 ) ? deW : dbW;
+	},
+
+	showImg : function() {
+		var t = this, S = t.I('shShutter'), D = t.I('shDisplay'), TI = t.I('shTopImg'), T = t.I('shTitle'), NB = t.I('shNavBar'), W, WB, wHeight, wWidth, shHeight, maxHeight, itop, mtop, resized = 0;
+
+		if ( ! S ) return;
+		if ( (W = t.I('shWrap')) && W.style.visibility == 'visible' ) return;
+		if ( WB = t.I('shWaitBar') ) WB.parentNode.removeChild(WB);
+
+		S.style.width = D.style.width = '';
+		T.style.width = (TI.width - 4) + 'px';
+
+		shHeight = t.wHeight - 50;
+
+		if ( t.FS ) {
+			if ( TI.width > (t.wWidth - 10) )
+			S.style.width = D.style.width = TI.width + 10 + 'px';
+			document.documentElement.style.overflowX = '';
+		} else {
+			window.scrollTo(0,t.Top);
+			if ( TI.height > shHeight ) {
+				TI.width = TI.width * (shHeight / TI.height);
+				TI.height = shHeight;
+				resized = 1;
+			}
+			if ( TI.width > (t.wWidth - 16) ) {
+				TI.height = TI.height * ((t.wWidth - 16) / TI.width);
+				TI.width = t.wWidth - 16;
+				resized = 1;
+			}
+			T.style.width = (TI.width - 4) + 'px';
+		}
+
+		maxHeight = t.Top + TI.height + 10;
+		if ( maxHeight > t.pgHeight ) S.style.height = maxHeight + 'px';
+		window.scrollTo(0,t.Top);
+
+		itop = (shHeight - TI.height) * 0.45;
+		mtop = (itop > 3) ? Math.floor(itop) : 3;
+		D.style.top = t.Top + mtop + 'px';
+		W.style.visibility = 'visible';
+	},
+
+	hideTags : function(arg) {
+		var sel = document.getElementsByTagName('select');
+		var obj = document.getElementsByTagName('object');
+		var emb = document.getElementsByTagName('embed');
+		var ifr = document.getElementsByTagName('iframe');
+
+		var vis = ( arg ) ? 'visible' : 'hidden';
+
+		for (i = 0; i < sel.length; i++) sel[i].style.visibility = vis;
+		for (i = 0; i < obj.length; i++) obj[i].style.visibility = vis;
+		for (i = 0; i < emb.length; i++) emb[i].style.visibility = vis;
+		for (i = 0; i < ifr.length; i++) ifr[i].style.visibility = vis;
+	}
+}
\ No newline at end of file
diff --git a/wp-content/plugins/nextgen-gallery/view/album-compact.php b/wp-content/plugins/nextgen-gallery/view/album-compact.php
new file mode 100644
index 000000000..9ee6e74c9
--- /dev/null
+++ b/wp-content/plugins/nextgen-gallery/view/album-compact.php
@@ -0,0 +1,43 @@
+<?php 
+/**
+Template Page for the album overview
+
+Follow variables are useable :
+
+	$album     	 : Contain information about the album
+	$galleries   : Contain all galleries inside this album
+	$pagination  : Contain the pagination content
+
+ You can check the content when you insert the tag <?php var_dump($variable) ?>
+ If you would like to show the timestamp of the image ,you can use <?php echo $exif['created_timestamp'] ?>
+**/
+?>
+<?php if (!defined ('ABSPATH')) die ('No direct access allowed'); ?><?php if (!empty ($galleries)) : ?>
+
+<div class="ngg-albumoverview">		
+
+	<!-- List of galleries -->
+	<?php foreach ($galleries as $gallery) : ?>
+	
+	<div class="ngg-album-compact">
+		<div class="ngg-album-compactbox">
+			<div class="ngg-album-link">
+				<a class="Link" href="<?php echo $gallery->pagelink ?>">
+					<img class="Thumb" alt="<?php echo $gallery->title ?>" src="<?php echo $gallery->previewurl ?>"/>
+				</a>
+			</div>
+		</div>
+		<h4><a class="ngg-album-desc" title="<?php echo $gallery->title ?>" href="<?php echo $gallery->pagelink ?>" ><?php echo $gallery->title ?></a></h4>
+		<?php if ($gallery->counter > 0) : ?>
+		<p><strong><?php echo $gallery->counter ?></strong> <?php _e('Photos', 'nggallery') ?></p>
+		<?php endif; ?>
+	</div>
+
+ 	<?php endforeach; ?>
+ 	
+	<!-- Pagination -->
+ 	<?php echo $pagination ?>
+
+</div>
+
+<?php endif; ?>
\ No newline at end of file
diff --git a/wp-content/plugins/nextgen-gallery/view/album-extend.php b/wp-content/plugins/nextgen-gallery/view/album-extend.php
new file mode 100644
index 000000000..e40bafc2d
--- /dev/null
+++ b/wp-content/plugins/nextgen-gallery/view/album-extend.php
@@ -0,0 +1,43 @@
+<?php 
+/**
+Template Page for the album overview (extended)
+
+Follow variables are useable :
+
+	$album     	 : Contain information about the album
+	$galleries   : Contain all galleries inside this album
+	$pagination  : Contain the pagination content
+
+ You can check the content when you insert the tag <?php var_dump($variable) ?>
+ If you would like to show the timestamp of the image ,you can use <?php echo $exif['created_timestamp'] ?>
+**/
+?>
+<?php if (!defined ('ABSPATH')) die ('No direct access allowed'); ?><?php if (!empty ($galleries)) : ?>
+
+<div class="ngg-albumoverview">	
+	<!-- List of galleries -->
+	<?php foreach ($galleries as $gallery) : ?>
+
+	<div class="ngg-album">
+		<div class="ngg-albumtitle"><a href="<?php echo $gallery->pagelink ?>"><?php echo $gallery->title ?></a></div>
+			<div class="ngg-albumcontent">
+				<div class="ngg-thumbnail">
+					<a href="<?php echo $gallery->pagelink ?>"><img class="Thumb" alt="<?php echo $gallery->title ?>" src="<?php echo $gallery->previewurl ?>"/></a>
+				</div>
+				<div class="ngg-description">
+				<p><?php echo $gallery->galdesc ?></p>
+				<?php if ($gallery->counter > 0) : ?>
+				<p><strong><?php echo $gallery->counter ?></strong> <?php _e('Photos', 'nggallery') ?></p>
+				<?php endif; ?>
+			</div>
+		</div>
+	</div>
+
+ 	<?php endforeach; ?>
+ 	
+	<!-- Pagination -->
+ 	<?php echo $pagination ?>
+ 	
+</div>
+
+<?php endif; ?>
\ No newline at end of file
diff --git a/wp-content/plugins/nextgen-gallery/view/gallery-caption.php b/wp-content/plugins/nextgen-gallery/view/gallery-caption.php
new file mode 100644
index 000000000..ec9effefe
--- /dev/null
+++ b/wp-content/plugins/nextgen-gallery/view/gallery-caption.php
@@ -0,0 +1,61 @@
+<?php 
+/**
+Template Page for the gallery overview
+
+Follow variables are useable :
+
+	$gallery     : Contain all about the gallery
+	$images      : Contain all images, path, title
+	$pagination  : Contain the pagination content
+
+ You can check the content when you insert the tag <?php var_dump($variable) ?>
+ If you would like to show the timestamp of the image ,you can use <?php echo $exif['created_timestamp'] ?>
+**/
+?>
+<?php if (!defined ('ABSPATH')) die ('No direct access allowed'); ?><?php if (!empty ($gallery)) : ?>
+
+<div class="ngg-galleryoverview" id="<?php echo $gallery->anchor ?>">
+
+<?php if ($gallery->show_slideshow) { ?>
+	<!-- Slideshow link -->
+	<div class="slideshowlink">
+		<a class="slideshowlink" href="<?php echo $gallery->slideshow_link ?>">
+			<?php echo $gallery->slideshow_link_text ?>
+		</a>
+	</div>
+<?php } ?>
+
+<?php if ($gallery->show_piclens) { ?>
+	<!-- Piclense link -->
+	<div class="piclenselink">
+		<a class="piclenselink" href="<?php echo $gallery->piclens_link ?>">
+			<?php _e('[View with PicLens]','nggallery'); ?>
+		</a>
+	</div>
+<?php } ?>
+	
+	<!-- Thumbnails -->
+	<?php foreach ( $images as $image ) : ?>
+	
+	<div id="ngg-image-<?php echo $image->pid ?>" class="ngg-gallery-thumbnail-box" <?php echo $image->style ?> >
+		<div class="ngg-gallery-thumbnail" >
+			<a href="<?php echo $image->imageURL ?>" title="<?php echo $image->description ?>" <?php echo $image->thumbcode ?> >
+				<?php if ( !$image->hidden ) { ?>
+				<img title="<?php echo $image->alttext ?>" alt="<?php echo $image->alttext ?>" src="<?php echo $image->thumbnailURL ?>" <?php echo $image->size ?> />
+				<?php } ?>
+			</a>
+			<span><?php echo $image->caption ?></span>
+		</div>
+	</div>
+	<?php if ( $image->hidden ) continue; ?>
+	<?php if ( $gallery->columns > 0 && ++$i % $gallery->columns == 0 ) { ?>
+	<br style="clear: both" />
+	<?php } ?>
+ 	<?php endforeach; ?>
+ 	
+	<!-- Pagination -->
+ 	<?php echo $pagination ?>
+ 	
+</div>
+
+<?php endif; ?>
\ No newline at end of file
diff --git a/wp-content/plugins/nextgen-gallery/view/gallery-carousel.php b/wp-content/plugins/nextgen-gallery/view/gallery-carousel.php
new file mode 100644
index 000000000..6831159c4
--- /dev/null
+++ b/wp-content/plugins/nextgen-gallery/view/gallery-carousel.php
@@ -0,0 +1,56 @@
+<?php 
+/**
+Template Page for the gallery carousel
+
+Follow variables are useable :
+
+	$gallery     : Contain all about the gallery
+	$images      : Contain all images, path, title
+	$pagination  : Contain the pagination content
+	$current     : Contain the selected image
+	$prev/$next  : Contain link to the next/previous gallery page
+	
+
+ You can check the content when you insert the tag <?php var_dump($variable) ?>
+ If you would like to show the timestamp of the image ,you can use <?php echo $exif['created_timestamp'] ?>
+**/
+?>
+<?php if (!defined ('ABSPATH')) die ('No direct access allowed'); ?><?php if (!empty ($gallery)) : ?>
+
+<div class="ngg-galleryoverview">
+
+	<div class="pic"><img title="<?php echo $current->alttext ?>" alt="<?php echo $current->alttext ?>" src="<?php echo $current->url; ?>" /></div>
+	
+	<ul class="ngg-gallery-list">
+	
+		<!-- PREV LINK -->	
+		<?php if ($prev) : ?>
+		<li class="ngg-prev">
+			<a class="prev" href="<?php echo $prev ?>">&#9668;</a>
+		</li>
+		<?php endif; ?>
+		
+		<!-- Thumbnail list -->
+		<?php foreach ( $images as $image ) : ?>
+		<?php if ( $image->hidden ) continue; ?> 
+		
+		<li id="ngg-image-<?php echo $image->pid ?>" class="ngg-thumbnail-list <?php if ($image->pid == $current->pid) echo 'selected' ?>" >
+			<a href="<?php echo $image->pidlink ?>" title="<?php echo $image->description ?>" >
+				<img title="<?php echo $image->alttext ?>" alt="<?php echo $image->alttext ?>" src="<?php echo $image->thumbnailURL ?>" <?php echo $image->size ?> />
+			</a>
+		</li>
+
+	 	<?php endforeach; ?>
+	 	
+	 	<!-- NEXT LINK -->
+		<?php if ($next) : ?>
+		<li class="ngg-next">
+			<a class="next" href="<?php echo $next ?>">&#9658;</a>
+		</li>
+		<?php endif; ?>
+	 	
+	</ul>
+ 	
+</div>
+
+<?php endif; ?>
\ No newline at end of file
diff --git a/wp-content/plugins/nextgen-gallery/view/gallery.php b/wp-content/plugins/nextgen-gallery/view/gallery.php
new file mode 100644
index 000000000..0131c2b31
--- /dev/null
+++ b/wp-content/plugins/nextgen-gallery/view/gallery.php
@@ -0,0 +1,62 @@
+<?php 
+/**
+Template Page for the gallery overview
+
+Follow variables are useable :
+
+	$gallery     : Contain all about the gallery
+	$images      : Contain all images, path, title
+	$pagination  : Contain the pagination content
+
+ You can check the content when you insert the tag <?php var_dump($variable) ?>
+ If you would like to show the timestamp of the image ,you can use <?php echo $exif['created_timestamp'] ?>
+**/
+?>
+<?php if (!defined ('ABSPATH')) die ('No direct access allowed'); ?><?php if (!empty ($gallery)) : ?>
+
+<div class="ngg-galleryoverview" id="<?php echo $gallery->anchor ?>">
+
+<?php if ($gallery->show_slideshow) { ?>
+	<!-- Slideshow link -->
+	<div class="slideshowlink">
+		<a class="slideshowlink" href="<?php echo $gallery->slideshow_link ?>">
+			<?php echo $gallery->slideshow_link_text ?>
+		</a>
+	</div>
+<?php } ?>
+
+<?php if ($gallery->show_piclens) { ?>
+	<!-- Piclense link -->
+	<div class="piclenselink">
+		<a class="piclenselink" href="<?php echo $gallery->piclens_link ?>">
+			<?php _e('[View with PicLens]','nggallery'); ?>
+		</a>
+	</div>
+<?php } ?>
+	
+	<!-- Thumbnails -->
+	<?php foreach ( $images as $image ) : ?>
+	
+	<div id="ngg-image-<?php echo $image->pid ?>" class="ngg-gallery-thumbnail-box" <?php echo $image->style ?> >
+		<div class="ngg-gallery-thumbnail" >
+			<a href="<?php echo $image->imageURL ?>" title="<?php echo $image->description ?>" <?php echo $image->thumbcode ?> >
+				<?php if ( !$image->hidden ) { ?>
+				<img title="<?php echo $image->alttext ?>" alt="<?php echo $image->alttext ?>" src="<?php echo $image->thumbnailURL ?>" <?php echo $image->size ?> />
+				<?php } ?>
+			</a>
+		</div>
+	</div>
+	
+	<?php if ( $image->hidden ) continue; ?>
+	<?php if ( $gallery->columns > 0 && ++$i % $gallery->columns == 0 ) { ?>
+		<br style="clear: both" />
+	<?php } ?>
+
+ 	<?php endforeach; ?>
+ 	
+	<!-- Pagination -->
+ 	<?php echo $pagination ?>
+ 	
+</div>
+
+<?php endif; ?>
\ No newline at end of file
diff --git a/wp-content/plugins/nextgen-gallery/view/imagebrowser-caption.php b/wp-content/plugins/nextgen-gallery/view/imagebrowser-caption.php
new file mode 100644
index 000000000..5f55ea332
--- /dev/null
+++ b/wp-content/plugins/nextgen-gallery/view/imagebrowser-caption.php
@@ -0,0 +1,37 @@
+<?php 
+/**
+Template Page for the image browser
+
+Follow variables are useable :
+
+	$image : Contain all about the image 
+	$meta  : Contain the raw Meta data from the image 
+	$exif  : Contain the clean up Exif data 
+	$iptc  : Contain the clean up IPTC data 
+	$xmp   : Contain the clean up XMP data 
+
+ You can check the content when you insert the tag <?php var_dump($variable) ?>
+ If you would like to show the timestamp of the image ,you can use <?php echo $exif['created_timestamp'] ?>
+**/
+?>
+<?php if (!defined ('ABSPATH')) die ('No direct access allowed'); ?><?php if (!empty ($image)) : ?>
+
+<div class="ngg-imagebrowser" id="<?php echo $image->anchor ?>">
+
+	<h3><?php echo $image->alttext ?></h3>
+
+	<div class="pic"><?php echo $image->href_link ?></div>
+	<div class="ngg-imagebrowser-nav"> 
+		<div class="back">
+			<a class="ngg-browser-prev" id="ngg-prev-<?php echo $image->previous_pid ?>" href="<?php echo $image->previous_image_link ?>">&#9668; <?php _e('Back', 'nggallery') ?></a>
+		</div>
+		<div class="next">
+			<a class="ngg-browser-next" id="ngg-next-<?php echo $image->next_pid ?>" href="<?php echo $image->next_image_link ?>"><?php _e('Next', 'nggallery') ?> &#9658;</a>
+		</div>
+		<div class="counter"><?php _e('Picture', 'nggallery') ?> <?php echo $image->number ?> <?php _e('of', 'nggallery')?> <?php echo $image->total ?></div>
+		<div class="ngg-imagebrowser-desc"><p><?php echo $image->description ?></p></div>
+	</div>	
+
+</div>	
+
+<?php endif; ?>
\ No newline at end of file
diff --git a/wp-content/plugins/nextgen-gallery/view/imagebrowser-exif.php b/wp-content/plugins/nextgen-gallery/view/imagebrowser-exif.php
new file mode 100644
index 000000000..58749720e
--- /dev/null
+++ b/wp-content/plugins/nextgen-gallery/view/imagebrowser-exif.php
@@ -0,0 +1,67 @@
+<?php 
+/**
+Template Page for the image browser with a exif data example
+
+Follow variables are useable :
+
+	$image : Contain all about the image 
+	$meta  : Contain the raw Meta data from the image 
+	$exif  : Contain the clean up Exif data from file
+	$iptc  : Contain the clean up IPTC data from file 
+	$xmp   : Contain the clean up XMP data  from file
+	$db    : Contain the clean up META data from the database (should be imported during upload)
+
+Please note : A Image resize or watermarking operation will remove all meta information, exif will in this case loaded from database 
+
+ You can check the content when you insert the tag <?php var_dump($variable) ?>
+ If you would like to show the timestamp of the image ,you can use <?php echo $exif['created_timestamp'] ?>
+**/
+
+?>
+<?php if (!defined ('ABSPATH')) die ('No direct access allowed'); ?><?php if (!empty ($image)) : ?>
+
+<div class="ngg-imagebrowser" id="<?php echo $image->anchor ?>">
+
+	<h3><?php echo $image->alttext ?></h3>
+
+	<div class="pic"><?php echo $image->href_link ?></div>
+	<div class="ngg-imagebrowser-nav"> 
+		<div class="back">
+			<a class="ngg-browser-prev" id="ngg-prev-<?php echo $image->previous_pid ?>" href="<?php echo $image->previous_image_link ?>">&#9668; <?php _e('Back', 'nggallery') ?></a>
+		</div>
+		<div class="next">
+			<a class="ngg-browser-next" id="ngg-next-<?php echo $image->next_pid ?>" href="<?php echo $image->next_image_link ?>"><?php _e('Next', 'nggallery') ?> &#9658;</a>
+		</div>
+		<div class="counter"><?php _e('Picture', 'nggallery') ?> <?php echo $image->number ?> <?php _e('of', 'nggallery')?> <?php echo $image->total ?></div>
+		<div class="ngg-imagebrowser-desc"><p><?php echo $image->description ?></p></div>
+		<!-- Exif data -->
+		<h3><?php _e('Meta data', 'nggallery') ?></h3>
+		<table class="exif-data">
+			<tbody>
+			<tr>
+				<th width="140"><?php _e('Camera / Type', 'nggallery') ?></th>
+				<td><?php echo $exif['camera'] ?></td>
+			</tr>
+			<tr>
+				<th><?php _e('Aperture', 'nggallery') ?></th>
+				<td><?php echo $exif['aperture'] ?></td>
+			</tr>
+			<tr>
+				<th><?php _e('Focal Length', 'nggallery') ?></th>
+				<td><?php echo $exif['focal_length'] ?></td>
+			</tr>
+			<tr>
+				<th><?php _e('Shutter speed', 'nggallery') ?></th>
+				<td><?php echo $exif['shutter_speed'] ?></td>
+			</tr>
+			<tr>
+				<th><?php _e('Date / Time', 'nggallery') ?></th>
+				<td><?php echo $exif['created_timestamp'] ?></td>
+			</tr>
+			</tbody>
+		</table>
+	</div>	
+
+</div>	
+
+<?php endif; ?>
\ No newline at end of file
diff --git a/wp-content/plugins/nextgen-gallery/view/imagebrowser.php b/wp-content/plugins/nextgen-gallery/view/imagebrowser.php
new file mode 100644
index 000000000..5f55ea332
--- /dev/null
+++ b/wp-content/plugins/nextgen-gallery/view/imagebrowser.php
@@ -0,0 +1,37 @@
+<?php 
+/**
+Template Page for the image browser
+
+Follow variables are useable :
+
+	$image : Contain all about the image 
+	$meta  : Contain the raw Meta data from the image 
+	$exif  : Contain the clean up Exif data 
+	$iptc  : Contain the clean up IPTC data 
+	$xmp   : Contain the clean up XMP data 
+
+ You can check the content when you insert the tag <?php var_dump($variable) ?>
+ If you would like to show the timestamp of the image ,you can use <?php echo $exif['created_timestamp'] ?>
+**/
+?>
+<?php if (!defined ('ABSPATH')) die ('No direct access allowed'); ?><?php if (!empty ($image)) : ?>
+
+<div class="ngg-imagebrowser" id="<?php echo $image->anchor ?>">
+
+	<h3><?php echo $image->alttext ?></h3>
+
+	<div class="pic"><?php echo $image->href_link ?></div>
+	<div class="ngg-imagebrowser-nav"> 
+		<div class="back">
+			<a class="ngg-browser-prev" id="ngg-prev-<?php echo $image->previous_pid ?>" href="<?php echo $image->previous_image_link ?>">&#9668; <?php _e('Back', 'nggallery') ?></a>
+		</div>
+		<div class="next">
+			<a class="ngg-browser-next" id="ngg-next-<?php echo $image->next_pid ?>" href="<?php echo $image->next_image_link ?>"><?php _e('Next', 'nggallery') ?> &#9658;</a>
+		</div>
+		<div class="counter"><?php _e('Picture', 'nggallery') ?> <?php echo $image->number ?> <?php _e('of', 'nggallery')?> <?php echo $image->total ?></div>
+		<div class="ngg-imagebrowser-desc"><p><?php echo $image->description ?></p></div>
+	</div>	
+
+</div>	
+
+<?php endif; ?>
\ No newline at end of file
diff --git a/wp-content/plugins/nextgen-gallery/view/singlepic.php b/wp-content/plugins/nextgen-gallery/view/singlepic.php
new file mode 100644
index 000000000..3dfc880fc
--- /dev/null
+++ b/wp-content/plugins/nextgen-gallery/view/singlepic.php
@@ -0,0 +1,26 @@
+<?php 
+/**
+Template Page for the single pic
+
+Follow variables are useable :
+
+	$image : Contain all about the image 
+	$meta  : Contain the raw Meta data from the image 
+	$exif  : Contain the clean up Exif data from file
+	$iptc  : Contain the clean up IPTC data from file 
+	$xmp   : Contain the clean up XMP data  from file
+	$db    : Contain the clean up META data from the database (should be imported during upload)
+
+Please note : A Image resize or watermarking operation will remove all meta information, exif will in this case loaded from database 
+
+ You can check the content when you insert the tag <?php var_dump($variable) ?>
+ If you would like to show the timestamp of the image ,you can use <?php echo $exif['created_timestamp'] ?>
+**/
+?>
+<?php if (!defined ('ABSPATH')) die ('No direct access allowed'); ?><?php if (!empty ($image)) : ?>
+
+<a href="<?php echo $image->imageURL ?>" title="<?php echo $image->linktitle ?>" <?php echo $image->thumbcode ?> >
+	<img class="<?php echo $image->classname ?>" src="<?php echo $image->thumbnailURL ?>" alt="<?php echo $image->alttext ?>" title="<?php echo $image->alttext ?>" />
+</a>
+<?php if (!empty ($image->caption)) : ?><span><?php echo $image->caption ?></span><?php endif; ?>
+<?php endif; ?>
\ No newline at end of file
diff --git a/wp-content/plugins/nextgen-gallery/widgets/media-rss-widget.php b/wp-content/plugins/nextgen-gallery/widgets/media-rss-widget.php
new file mode 100644
index 000000000..707b98895
--- /dev/null
+++ b/wp-content/plugins/nextgen-gallery/widgets/media-rss-widget.php
@@ -0,0 +1,140 @@
+<?php
+/*
+* Widget to show Media RSS icons and links
+* 
+* @author Vincent Prat
+*/
+
+// Stop direct call
+if(preg_match('#' . basename(__FILE__) . '#', $_SERVER['PHP_SELF'])) { 	die('You are not allowed to call this page directly.'); }
+
+class nggMediaRssWidget extends WP_Widget {
+
+	var $options;
+    
+	/**
+	* Constructor
+	*/
+   	function nggMediaRssWidget() {
+		$widget_ops = array('classname' => 'ngg_mrssw', 'description' => __( 'Widget that displays Media RSS links for NextGEN Gallery.', 'nggallery') );
+		$this->WP_Widget('ngg-mrssw', __('NextGEN Media RSS', 'nggallery'), $widget_ops);
+	}    
+
+	function widget( $args, $instance ) {
+		extract( $args );
+        
+		$ngg_options = nggGallery::get_option('ngg_options');
+		
+        $title = apply_filters('widget_title', empty($instance['title']) ? '&nbsp;' : $instance['title'], $instance, $this->id_base);
+
+		$show_global_mrss 	= $instance['show_global_mrss'];
+		$show_icon		 	= $instance['show_icon'];
+		$mrss_text			= stripslashes($instance['mrss_text']);
+		$mrss_title			= strip_tags(stripslashes($instance['mrss_title']));
+
+		echo $before_widget; 
+			echo $before_title . $title . $after_title;
+			echo "<ul class='ngg-media-rss-widget'>\n";
+			if ($show_global_mrss) {
+				echo "  <li>";
+				echo $this->get_mrss_link(nggMediaRss::get_mrss_url(), $show_icon, 
+								stripslashes($mrss_title), stripslashes($mrss_text), 
+								$ngg_options['usePicLens']);
+				echo "</li>\n";
+			}
+			echo "</ul>\n";
+		echo $after_widget;
+ 
+	}
+
+	function update( $new_instance, $old_instance ) {
+		$instance = $old_instance;
+
+		$instance['title']	= strip_tags($new_instance['title']);
+		$instance['show_global_mrss'] = $new_instance['show_global_mrss'];
+		$instance['show_icon']	= $new_instance['show_icon'];        
+		$instance['mrss_text']	= $new_instance['mrss_text'];
+		$instance['mrss_title'] = $new_instance['mrss_title'];
+
+		return $instance;
+	}
+
+	function form( $instance ) {
+		
+		//Defaults
+		$instance = wp_parse_args( (array) $instance, array( 
+            'title' => 'Media RSS', 
+            'show_global_mrss' => true,
+            'mrss_text'  => __('Media RSS', 'nggallery'),
+            'mrss_title' => __('Link to the main image feed', 'nggallery'), 
+            'show_icon' => true ) );
+            
+		$title      = esc_attr( $instance['title'] );
+        $mrss_text  = esc_attr( $instance['mrss_text'] );
+        $mrss_title = esc_attr( $instance['mrss_title'] );
+            
+		// The widget form
+        ?>
+        <p>
+        	<label for="<?php echo $this->get_field_id('title'); ?>"><?php _e('Title :','nggallery'); ?><br />
+        		<input class="widefat" id="<?php echo $this->get_field_id('title'); ?>" name="<?php echo $this->get_field_name('title');?>" type="text" value="<?php echo $title; ?>" />
+        	</label>
+        </p>
+        
+        <p>
+        	<label for="<?php echo $this->get_field_id('show_icon'); ?>">
+        		<input id="<?php echo $this->get_field_id('show_icon'); ?>" name="<?php echo $this->get_field_name('show_icon'); ?>" type="checkbox" value="1" <?php checked(true , $instance['show_icon']); ?> />
+        		<?php _e('Show Media RSS icon', 'nggallery'); ?>
+        	</label>
+        </p>
+        
+        <p>
+        	<label for="<?php echo $this->get_field_id('show_global_mrss'); ?>">
+        		<input id="<?php echo $this->get_field_id('show_global_mrss'); ?>" name="<?php echo $this->get_field_name('show_global_mrss'); ?>" type="checkbox" value="1" <?php checked(true , $instance['show_global_mrss']); ?> /> <?php _e('Show the Media RSS link', 'nggallery'); ?>
+        	</label>
+        </p>
+        
+        <p>
+        	<label for="<?php echo $this->get_field_id('mrss_text'); ?>"><?php _e('Text for Media RSS link:', 'nggallery'); ?><br />
+        		<input class="widefat" id="<?php echo $this->get_field_id('mrss_text'); ?>" name="<?php echo $this->get_field_name('mrss_text'); ?>" type="text" value="<?php echo $mrss_text; ?>" /></label>
+        	</label>
+        </p>
+        
+        <p>
+        	<label for="<?php echo $this->get_field_id('mrss_title'); ?>"><?php _e('Tooltip text for Media RSS link:', 'nggallery'); ?><br />
+        		<input class="widefat" id="<?php echo $this->get_field_id('mrss_title'); ?>" name="<?php echo $this->get_field_name('mrss_title'); ?>" type="text" value="<?php echo $mrss_title; ?>" /></label>
+        	</label>
+        </p>
+        
+        <?php
+
+    }
+	
+    /**
+	 * Get a link to a Media RSS
+	 */
+	function get_mrss_link($mrss_url, $show_icon = true, $title, $text, $use_piclens) {
+		$out  = '';
+		
+		if ($show_icon) {
+			$icon_url = NGGALLERY_URLPATH . 'images/mrss-icon.gif';
+			$out .= "<a href='$mrss_url' title='$title' class='ngg-media-rss-link'" . ($use_piclens ? ' onclick="PicLensLite.start({feedUrl:\'' . $mrss_url . '\'}); return false;"' : "") . " >";
+			$out .= "<img src='$icon_url' alt='MediaRSS Icon' title='" . (!$use_piclens ? $title : __('[View with PicLens]','nggallery')). "' class='ngg-media-rss-icon' />";
+			$out .=  "</a> ";
+		}
+		
+		if ($text != '') {
+			$out .= "<a href='$mrss_url' title='$title' class='ngg-media-rss-link'>";
+			$out .= $text;
+			$out .=  "</a>";
+		}
+				
+		return $out;
+	}
+	
+} // class nggMediaRssWidget
+
+// let's start it
+add_action('widgets_init', create_function('', 'return register_widget("nggMediaRssWidget");'));
+
+?>
\ No newline at end of file
diff --git a/wp-content/plugins/nextgen-gallery/widgets/widgets.php b/wp-content/plugins/nextgen-gallery/widgets/widgets.php
new file mode 100644
index 000000000..0a32893cb
--- /dev/null
+++ b/wp-content/plugins/nextgen-gallery/widgets/widgets.php
@@ -0,0 +1,406 @@
+<?php
+/*
+* NextGEN Gallery Widget
+*/
+
+// Adding Media RSS Widget as well
+require_once(dirname (__FILE__) . '/media-rss-widget.php');
+
+/**
+ * nggSlideshowWidget - The slideshow widget control for NextGEN Gallery ( require WP2.8 or higher)
+ *
+ * @package NextGEN Gallery
+ * @author Alex Rabe
+ * @copyright 2008 - 2009
+ * @version 2.00
+ * @since 1.3.2
+ * @access public
+ */
+class nggSlideshowWidget extends WP_Widget {
+
+	function nggSlideshowWidget() {
+		$widget_ops = array('classname' => 'widget_slideshow', 'description' => __( 'Show a NextGEN Gallery Slideshow', 'nggallery') );
+		$this->WP_Widget('slideshow', __('NextGEN Slideshow', 'nggallery'), $widget_ops);
+	}
+
+	function widget( $args, $instance ) {
+		extract( $args );
+			
+		$title = apply_filters('widget_title', empty( $instance['title'] ) ? __('Slideshow', 'nggallery') : $instance['title'], $instance, $this->id_base);
+
+		$out = $this->render_slideshow($instance['galleryid'] , $instance['width'] , $instance['height']);
+
+		if ( !empty( $out ) ) {
+			echo $before_widget;
+			if ( $title)
+				echo $before_title . $title . $after_title;
+		?>
+		<div class="ngg_slideshow widget">
+			<?php echo $out; ?>
+		</div>
+		<?php
+			echo $after_widget;
+		}
+  
+	}
+
+	function render_slideshow($galleryID, $irWidth = '', $irHeight = '') {
+		
+		require_once ( dirname (__FILE__) . '/../lib/swfobject.php' );
+	
+		$ngg_options = get_option('ngg_options');
+
+        //Redirect all calls to the JavaScript slideshow if wanted
+        if ( $ngg_options['enableIR'] !== '1' || nggGallery::detect_mobile_phone() === true || NGGALLERY_IREXIST == false )
+            return nggShow_JS_Slideshow($galleryID, $irWidth, $irHeight, 'ngg-widget-slideshow');
+	
+		if (empty($irWidth) ) $irWidth = (int) $ngg_options['irWidth'];
+		if (empty($irHeight)) $irHeight = (int) $ngg_options['irHeight'];
+	
+		// init the flash output
+		$swfobject = new swfobject( $ngg_options['irURL'], 'sbsl' . $galleryID, $irWidth, $irHeight, '7.0.0', 'false');
+		
+		$swfobject->classname = 'ngg-widget-slideshow';
+		$swfobject->message =  __('<a href="http://www.macromedia.com/go/getflashplayer">Get the Flash Player</a> to see the slideshow.', 'nggallery');
+		$swfobject->add_params('wmode', 'opaque');
+		$swfobject->add_params('bgcolor', $ngg_options['irScreencolor'], 'FFFFFF', 'string', '#');
+		$swfobject->add_attributes('styleclass', 'slideshow-widget');
+	
+		// adding the flash parameter	
+		$swfobject->add_flashvars( 'file', urlencode( home_url() . '/' . 'index.php?callback=imagerotator&gid=' . $galleryID ) );
+		$swfobject->add_flashvars( 'shownavigation', 'false', 'true', 'bool');
+		$swfobject->add_flashvars( 'shuffle', $ngg_options['irShuffle'], 'true', 'bool');
+		$swfobject->add_flashvars( 'showicons', $ngg_options['irShowicons'], 'true', 'bool');
+		$swfobject->add_flashvars( 'overstretch', $ngg_options['irOverstretch'], 'false', 'string');
+		$swfobject->add_flashvars( 'rotatetime', $ngg_options['irRotatetime'], 5, 'int');
+		$swfobject->add_flashvars( 'transition', $ngg_options['irTransition'], 'random', 'string');
+		$swfobject->add_flashvars( 'backcolor', $ngg_options['irBackcolor'], 'FFFFFF', 'string', '0x');
+		$swfobject->add_flashvars( 'frontcolor', $ngg_options['irFrontcolor'], '000000', 'string', '0x');
+		$swfobject->add_flashvars( 'lightcolor', $ngg_options['irLightcolor'], '000000', 'string', '0x');
+		$swfobject->add_flashvars( 'screencolor', $ngg_options['irScreencolor'], '000000', 'string', '0x');
+		$swfobject->add_flashvars( 'width', $irWidth, '260');
+		$swfobject->add_flashvars( 'height', $irHeight, '320');	
+		// create the output
+		$out  = $swfobject->output();
+		// add now the script code
+	    $out .= "\n".'<script type="text/javascript" defer="defer">';
+		$out .= "\n".'<!--';
+		$out .= "\n".'//<![CDATA[';
+		$out .= $swfobject->javascript();
+		$out .= "\n".'//]]>';
+		$out .= "\n".'-->';
+		$out .= "\n".'</script>';
+		
+        $out = apply_filters('ngg_show_slideshow_widget_content', $out, $galleryID, $irWidth, $irHeight);
+        		
+		return $out;
+	}
+
+	function update( $new_instance, $old_instance ) {
+		$instance = $old_instance;
+		
+		$instance['title'] = strip_tags($new_instance['title']);
+		$instance['galleryid'] = (int) $new_instance['galleryid'];
+		$instance['height'] = (int) $new_instance['height'];
+		$instance['width'] = (int) $new_instance['width'];
+
+		return $instance;
+	}
+
+	function form( $instance ) {
+		
+		global $wpdb;
+
+		//Defaults
+		$instance = wp_parse_args( (array) $instance, array( 'title' => 'Slideshow', 'galleryid' => '0', 'height' => '120', 'width' => '160') );
+		$title  = esc_attr( $instance['title'] );
+		$height = esc_attr( $instance['height'] );
+		$width  = esc_attr( $instance['width'] );
+		$tables = $wpdb->get_results("SELECT * FROM $wpdb->nggallery ORDER BY 'name' ASC ");
+?>
+		<p><label for="<?php echo $this->get_field_id('title'); ?>"><?php _e('Title:'); ?></label> <input class="widefat" id="<?php echo $this->get_field_id('title'); ?>" name="<?php echo $this->get_field_name('title'); ?>" type="text" value="<?php echo $title; ?>" /></p>
+		<p>
+			<label for="<?php echo $this->get_field_id('galleryid'); ?>"><?php _e('Select Gallery:', 'nggallery'); ?></label>
+				<select size="1" name="<?php echo $this->get_field_name('galleryid'); ?>" id="<?php echo $this->get_field_id('galleryid'); ?>" class="widefat">
+					<option value="0" <?php if (0 == $instance['galleryid']) echo "selected='selected' "; ?> ><?php _e('All images', 'nggallery'); ?></option>
+<?php
+				if($tables) {
+					foreach($tables as $table) {
+					echo '<option value="'.$table->gid.'" ';
+					if ($table->gid == $instance['galleryid']) echo "selected='selected' ";
+					echo '>'.$table->name.'</option>'."\n\t"; 
+					}
+				}
+?>
+				</select>
+		</p>
+		<p><label for="<?php echo $this->get_field_id('height'); ?>"><?php _e('Height:', 'nggallery'); ?></label> <input id="<?php echo $this->get_field_id('height'); ?>" name="<?php echo $this->get_field_name('height'); ?>" type="text" style="padding: 3px; width: 45px;" value="<?php echo $height; ?>" /></p>
+		<p><label for="<?php echo $this->get_field_id('width'); ?>"><?php _e('Width:', 'nggallery'); ?></label> <input id="<?php echo $this->get_field_id('width'); ?>" name="<?php echo $this->get_field_name('width'); ?>" type="text" style="padding: 3px; width: 45px;" value="<?php echo $width; ?>" /></p>
+<?php	
+	}
+
+}
+
+// register it
+add_action('widgets_init', create_function('', 'return register_widget("nggSlideshowWidget");'));
+
+/**
+ * nggWidget - The widget control for NextGEN Gallery ( require WP2.7 or higher)
+ *
+ * @package NextGEN Gallery
+ * @author Alex Rabe
+ * @copyright 2009 - 2010
+ * @version 2.10
+ * @since 1.4.4
+ * @access public
+ */
+class nggWidget extends WP_Widget {
+    
+   	function nggWidget() {
+		$widget_ops = array('classname' => 'ngg_images', 'description' => __( 'Add recent or random images from the galleries', 'nggallery') );
+		$this->WP_Widget('ngg-images', __('NextGEN Widget', 'nggallery'), $widget_ops);
+	}
+
+	function update( $new_instance, $old_instance ) {
+		$instance = $old_instance;
+		
+		$instance['title']	= strip_tags($new_instance['title']);
+		$instance['items']	= (int) $new_instance['items'];
+		$instance['type']	= $new_instance['type'];
+		$instance['show']	= $new_instance['show'];
+		$instance['width']	= (int) $new_instance['width'];
+		$instance['height']	= (int) $new_instance['height'];
+		$instance['exclude'] = $new_instance['exclude'];
+		$instance['list']	 = $new_instance['list'];
+		$instance['webslice']= (bool) $new_instance['webslice'];
+
+		return $instance;
+	}
+
+	function form( $instance ) {
+		
+		//Defaults
+		$instance = wp_parse_args( (array) $instance, array( 
+            'title' => 'Gallery', 
+            'items' => '4',
+            'type'  => 'random',
+            'show'  => 'thumbnail', 
+            'height' => '50', 
+            'width' => '75',
+            'exclude' => 'all',
+            'list'  =>  '',
+            'webslice'  => true ) );
+		$title  = esc_attr( $instance['title'] );
+		$items  = intval  ( $instance['items'] );
+        $height = esc_attr( $instance['height'] );
+		$width  = esc_attr( $instance['width'] );
+
+		?>
+
+		<p>
+			<label for="<?php echo $this->get_field_id('title'); ?>"><?php _e('Title :','nggallery'); ?>
+			<input id="<?php echo $this->get_field_id('title'); ?>" name="<?php echo $this->get_field_name('title');?>" type="text" class="widefat" value="<?php echo $title; ?>" />
+			</label>
+		</p>
+			
+		<p>
+			<?php _e('Show :','nggallery'); ?><br />
+			<label for="<?php echo $this->get_field_id('items'); ?>">
+			<input style="width: 50px;" id="<?php echo $this->get_field_id('items'); ?>" name="<?php echo $this->get_field_name('items');?>" type="text" value="<?php echo $items; ?>" />
+			</label>
+			<select id="<?php echo $this->get_field_id('show'); ?>" name="<?php echo $this->get_field_name('show'); ?>" >
+				<option <?php selected("thumbnail" , $instance['show']); ?> value="thumbnail"><?php _e('Thumbnails','nggallery'); ?></option>
+				<option <?php selected("original" , $instance['show']); ?> value="original"><?php _e('Original images','nggallery'); ?></option>
+			</select>
+		</p>
+
+		<p>
+			<label for="<?php echo $this->get_field_id('type'); ?>_random">
+			<input id="<?php echo $this->get_field_id('type'); ?>_random" name="<?php echo $this->get_field_name('type'); ?>" type="radio" value="random" <?php checked("random" , $instance['type']); ?> /> <?php _e('random','nggallery'); ?>
+			</label>
+            <label for="<?php echo $this->get_field_id('type'); ?>_recent">
+            <input id="<?php echo $this->get_field_id('type'); ?>_recent" name="<?php echo $this->get_field_name('type'); ?>" type="radio" value="recent" <?php checked("recent" , $instance['type']); ?> /> <?php _e('recent added ','nggallery'); ?>
+			</label>
+		</p>
+
+		<p>
+			<label for="<?php echo $this->get_field_id('webslice'); ?>">
+			<input id="<?php echo $this->get_field_id('webslice'); ?>" name="<?php echo $this->get_field_name('webslice'); ?>" type="checkbox" value="1" <?php checked(true , $instance['webslice']); ?> /> <?php _e('Enable IE8 Web Slices','nggallery'); ?>
+			</label>
+		</p>
+
+		<p>
+			<?php _e('Width x Height :','nggallery'); ?><br />
+			<input style="width: 50px; padding:3px;" id="<?php echo $this->get_field_id('width'); ?>" name="<?php echo $this->get_field_name('width'); ?>" type="text" value="<?php echo $width; ?>" /> x
+			<input style="width: 50px; padding:3px;" id="<?php echo $this->get_field_id('height'); ?>" name="<?php echo $this->get_field_name('height'); ?>" type="text" value="<?php echo $height; ?>" /> (px)
+		</p>
+
+		<p>
+			<label for="<?php echo $this->get_field_id('exclude'); ?>"><?php _e('Select :','nggallery'); ?>
+			<select id="<?php echo $this->get_field_id('exclude'); ?>" name="<?php echo $this->get_field_name('exclude'); ?>" class="widefat">
+				<option <?php selected("all" , $instance['exclude']); ?>  value="all" ><?php _e('All galleries','nggallery'); ?></option>
+				<option <?php selected("denied" , $instance['exclude']); ?> value="denied" ><?php _e('Only which are not listed','nggallery'); ?></option>
+				<option <?php selected("allow" , $instance['exclude']); ?>  value="allow" ><?php _e('Only which are listed','nggallery'); ?></option>
+			</select>
+			</label>
+		</p>
+
+		<p>
+			<label for="<?php echo $this->get_field_id('list'); ?>"><?php _e('Gallery ID :','nggallery'); ?>
+			<input id="<?php echo $this->get_field_id('list'); ?>" name="<?php echo $this->get_field_name('list'); ?>" type="text" class="widefat" value="<?php echo $instance['list']; ?>" />
+			<br /><small><?php _e('Gallery IDs, separated by commas.','nggallery'); ?></small>
+			</label>
+		</p>
+		
+	<?php
+	
+	}
+
+	function widget( $args, $instance ) {
+		extract( $args );
+        
+        $title = apply_filters('widget_title', empty($instance['title']) ? '&nbsp;' : $instance['title'], $instance, $this->id_base);
+
+		global $wpdb;
+				
+		$items 	= $instance['items'];
+		$exclude = $instance['exclude'];
+		$list = $instance['list'];
+		$webslice = $instance['webslice'];
+
+		$count = $wpdb->get_var("SELECT COUNT(*) FROM $wpdb->nggpictures WHERE exclude != 1 ");
+		if ($count < $instance['items']) 
+			$instance['items'] = $count;
+
+		$exclude_list = '';
+
+		// THX to Kay Germer for the idea & addon code
+		if ( (!empty($list)) && ($exclude != 'all') ) {
+			$list = explode(',',$list);
+			// Prepare for SQL
+			$list = "'" . implode("', '", $list ) . "'";
+			
+			if ($exclude == 'denied')	
+				$exclude_list = "AND NOT (t.gid IN ($list))";
+
+			if ($exclude == 'allow')	
+				$exclude_list = "AND t.gid IN ($list)";
+            
+            // Limit the output to the current author, can be used on author template pages
+            if ($exclude == 'user_id' )
+                $exclude_list = "AND t.author IN ($list)";                
+		}
+		
+		if ( $instance['type'] == 'random' ) 
+			$imageList = $wpdb->get_results("SELECT t.*, tt.* FROM $wpdb->nggallery AS t INNER JOIN $wpdb->nggpictures AS tt ON t.gid = tt.galleryid WHERE tt.exclude != 1 $exclude_list ORDER by rand() limit {$items}");
+		else
+			$imageList = $wpdb->get_results("SELECT t.*, tt.* FROM $wpdb->nggallery AS t INNER JOIN $wpdb->nggpictures AS tt ON t.gid = tt.galleryid WHERE tt.exclude != 1 $exclude_list ORDER by pid DESC limit 0,$items");
+		
+        // IE8 webslice support if needed
+		if ( $webslice ) {
+			$before_widget .= "\n" . '<div class="hslice" id="ngg-webslice" >' . "\n";
+            //the headline needs to have the class enty-title
+            $before_title  = str_replace( 'class="' , 'class="entry-title ', $before_title);
+			$after_widget  =  '</div>'."\n" . $after_widget;			
+		}	
+		                      
+		echo $before_widget . $before_title . $title . $after_title;
+		echo "\n" . '<div class="ngg-widget entry-content">'. "\n";
+	
+		if (is_array($imageList)){
+			foreach($imageList as $image) {
+				// get the URL constructor
+				$image = new nggImage($image);
+
+				// get the effect code
+				$thumbcode = $image->get_thumbcode( $widget_id );
+				
+				// enable i18n support for alttext and description
+				$alttext      =  htmlspecialchars( stripslashes( nggGallery::i18n($image->alttext) ));
+				$description  =  htmlspecialchars( stripslashes( nggGallery::i18n($image->description) ));
+				
+				//TODO:For mixed portrait/landscape it's better to use only the height setting, if widht is 0 or vice versa
+				$out = '<a href="' . $image->imageURL . '" title="' . $description . '" ' . $thumbcode .'>';
+				// Typo fix for the next updates (happend until 1.0.2)
+				$instance['show'] = ( $instance['show'] == 'orginal' ) ? 'original' : $instance['show'];
+				
+				if ( $instance['show'] == 'original' )
+					$out .= '<img src="' . home_url() . '/' . 'index.php?callback=image&amp;pid='.$image->pid.'&amp;width='.$instance['width'].'&amp;height='.$instance['height']. '" title="'.$alttext.'" alt="'.$alttext.'" />';
+				else	
+					$out .= '<img src="'.$image->thumbURL.'" width="'.$instance['width'].'" height="'.$instance['height'].'" title="'.$alttext.'" alt="'.$alttext.'" />';			
+				
+				echo $out . '</a>'."\n";
+				
+			}
+		}
+		
+		echo '</div>'."\n";
+		echo $after_widget;
+		
+	}
+
+}// end widget class
+
+// register it
+add_action('widgets_init', create_function('', 'return register_widget("nggWidget");'));
+
+/**
+ * nggSlideshowWidget($galleryID, $width, $height)
+ * Function for templates without widget support
+ * 
+ * @param integer $galleryID 
+ * @param string $width
+ * @param string $height
+ * @return echo the widget content
+ */
+function nggSlideshowWidget($galleryID, $width = '', $height = '') {
+
+	echo nggSlideshowWidget::render_slideshow($galleryID, $width, $height);
+	
+}
+
+/**
+ * nggDisplayRandomImages($number,$width,$height,$exclude,$list,$show)
+ * Function for templates without widget support
+ *
+ * @return echo the widget content
+ */
+function nggDisplayRandomImages($number, $width = '75', $height = '50', $exclude = 'all', $list = '', $show = 'thumbnail') {
+	
+	$options = array(   'title'    => false, 
+						'items'    => $number,
+						'show'     => $show ,
+						'type'     => 'random',
+						'width'    => $width, 
+						'height'   => $height, 
+						'exclude'  => $exclude,
+						'list'     => $list,
+                        'webslice' => false );
+                        
+	$ngg_widget = new nggWidget();
+	$ngg_widget->widget($args = array( 'widget_id'=> 'sidebar_1' ), $options);
+}
+
+/**
+ * nggDisplayRecentImages($number,$width,$height,$exclude,$list,$show)
+ * Function for templates without widget support
+ *
+ * @return echo the widget content
+ */
+function nggDisplayRecentImages($number, $width = '75', $height = '50', $exclude = 'all', $list = '', $show = 'thumbnail') {
+
+	$options = array(   'title'    => false, 
+						'items'    => $number,
+						'show'     => $show ,
+						'type'     => 'recent',
+						'width'    => $width, 
+						'height'   => $height, 
+						'exclude'  => $exclude,
+						'list'     => $list,
+                        'webslice' => false );
+                        
+	$ngg_widget = new nggWidget();
+	$ngg_widget->widget($args = array( 'widget_id'=> 'sidebar_1' ), $options);
+}
+
+?>
\ No newline at end of file
diff --git a/wp-content/plugins/nextgen-gallery/xml/ajax.php b/wp-content/plugins/nextgen-gallery/xml/ajax.php
new file mode 100644
index 000000000..42d2875e2
--- /dev/null
+++ b/wp-content/plugins/nextgen-gallery/xml/ajax.php
@@ -0,0 +1,40 @@
+<?php
+// see http://codex.wordpress.org/AJAX_in_Plugins
+
+// check if we have all needed parameter
+if ( !defined('ABSPATH') || (!isset($_GET['galleryid']) || !is_numeric($_GET['galleryid'])) || (!isset($_GET['p']) || !is_numeric($_GET['p'])) || !isset($_GET['type'])){
+    // if it's not ajax request, back to main page
+    if($_SERVER['HTTP_X_REQUESTED_WITH'] != 'XMLHttpRequest')
+        header('Location: http://'. $_SERVER['HTTP_HOST']);
+    die();    
+}
+
+switch ($_GET['type']) {
+	case 'gallery':
+	
+		// get the navigation page
+		set_query_var('nggpage', intval($_GET['nggpage']));
+		
+		// get the current page/post id
+		set_query_var('pageid', intval($_GET['p']));
+		set_query_var('show', 'gallery');
+		$GLOBALS['id'] = intval($_GET['p']);
+		
+		echo nggShowGallery( intval($_GET['galleryid']) );
+		
+		break;
+	case 'browser':
+	
+		// which image should be shown ?
+		set_query_var('pid', intval($_GET['pid']));
+		
+		// get the current page/post id
+		set_query_var('pageid', intval($_GET['p']));
+		$GLOBALS['id'] = intval($_GET['p']);
+			
+		echo nggShowImageBrowser( intval($_GET['galleryid']) );
+		
+		break;
+	default:
+		echo 'Wrong request type specified.';
+}
\ No newline at end of file
diff --git a/wp-content/plugins/nextgen-gallery/xml/imagerotator.php b/wp-content/plugins/nextgen-gallery/xml/imagerotator.php
new file mode 100644
index 000000000..4c9358e16
--- /dev/null
+++ b/wp-content/plugins/nextgen-gallery/xml/imagerotator.php
@@ -0,0 +1,54 @@
+<?php
+
+/*
++----------------------------------------------------------------+
++	imageRotartor-XML
++	by Alex Rabe
++   	required for NextGEN Gallery
++----------------------------------------------------------------+
+*/
+
+// look up for the path
+if ( !defined('ABSPATH') ) 
+    require_once( dirname(__FILE__) . '/../ngg-config.php');
+
+global $wpdb;
+
+$ngg_options = get_option ('ngg_options');
+$siteurl	 = site_url();
+
+// get the gallery id
+$galleryID = (int) $_GET['gid'];
+
+// get the pictures
+if ($galleryID == 0) {
+	$thepictures = $wpdb->get_results("SELECT t.*, tt.* FROM $wpdb->nggallery AS t INNER JOIN $wpdb->nggpictures AS tt ON t.gid = tt.galleryid WHERE tt.exclude != 1 ORDER BY tt.{$ngg_options['galSort']} {$ngg_options['galSortDir']} ");
+} else {
+	$thepictures = $wpdb->get_results("SELECT t.*, tt.* FROM $wpdb->nggallery AS t INNER JOIN $wpdb->nggpictures AS tt ON t.gid = tt.galleryid WHERE t.gid = '$galleryID' AND tt.exclude != 1 ORDER BY tt.{$ngg_options['galSort']} {$ngg_options['galSortDir']} ");
+}
+
+// Create XML output
+header("content-type:text/xml;charset=utf-8");
+
+echo "<playlist version='1' xmlns='http://xspf.org/ns/0/'>\n";
+echo "	<title>".stripslashes(nggGallery::i18n($thepictures[0]->name))."</title>\n";
+echo "	<trackList>\n";
+
+if (is_array ($thepictures)){
+	foreach ($thepictures as $picture) {
+		echo "		<track>\n";
+		if (!empty($picture->description))	
+		echo "			<title>".strip_tags(stripslashes(html_entity_decode(nggGallery::i18n($picture->description))))."</title>\n";
+		else if (!empty($picture->alttext))	
+		echo "			<title>".stripslashes(nggGallery::i18n($picture->alttext))."</title>\n";
+		else 
+		echo "			<title>".$picture->filename."</title>\n";
+		echo "			<location>".$siteurl."/".$picture->path."/".$picture->filename."</location>\n";
+		echo "		</track>\n";
+	}
+}
+ 
+echo "	</trackList>\n";
+echo "</playlist>\n";
+
+?>
\ No newline at end of file
diff --git a/wp-content/plugins/nextgen-gallery/xml/json.php b/wp-content/plugins/nextgen-gallery/xml/json.php
new file mode 100644
index 000000000..0959b99cf
--- /dev/null
+++ b/wp-content/plugins/nextgen-gallery/xml/json.php
@@ -0,0 +1,274 @@
+<?php
+/**
+* REST Application Programming Interface PHP class for the WordPress plugin NextGEN Gallery
+* Should emulate some kind of Flickr JSON callback : ?callback=json&format=json&api_key=1234567890&method=search&term=myterm
+* 
+* @version      1.1.0
+* @author 		Alex Rabe 
+* @copyright 	Copyright 2010
+* @require		PHP 5.2.0 or higher
+* 
+*/
+
+class nggAPI {
+
+	/**
+	  *	$_GET Variables 
+	  * 
+	  * @since 1.5.0
+	  * @access private
+	  * @var string
+	  */
+    var $format		=	false;		// $_GET['format'] 	: Return a XML oder JSON output
+	var $api_key	=	false;		// $_GET['api_key']	: Protect the access via a random key (required if user is not logged into backend)
+	var $method		=	false;		// $_GET['method']	: search | gallery | image | tag | autocomplete
+	var $term		=	false;		// $_GET['term']   	: The search term (required for method search | tag)
+	var $id			=	false;		// $_GET['id']	  	: gallery or image id (required for method gallery | image)
+	var $limit		=	false;		// $_GET['limit']	: maximum of images which we request
+    var $type		=	false;		// $_GET['type']	: gallery | image | album (required for method autocomplete)
+    
+	/**
+	 * Contain the final output
+	 *
+	 * @since 1.5.0
+	 * @access private
+	 * @var string
+	 */	
+	var $output		=	'';
+
+	/**
+	 * Holds the requested information as array
+	 *
+	 * @since 1.5.0
+	 * @access private
+	 * @var array
+	 */	
+	var $result		=	'';
+	
+	/**
+	 * Init the variables
+	 * 
+	 */	
+	function __construct() {
+		
+        if ( !defined('ABSPATH') )
+            die('You are not allowed to call this page directly.');
+
+		if ( !function_exists('json_encode') )
+			wp_die('Json_encode not available. You need to use PHP 5.2');
+		
+		// Read the parameter on init
+		$this->format 	= isset($_GET['format']) ? strtolower( $_GET['format'] ) : false;
+		$this->api_key 	= isset($_GET['api_key'])? $_GET['api_key'] : false; 
+		$this->method 	= isset($_GET['method']) ? strtolower( $_GET['method'] ) : false; 
+		$this->term		= isset($_GET['term'])   ? urldecode( $_GET['term'] ) : false; 
+		$this->id 		= isset($_GET['id'])     ? (int) $_GET['id'] : 0;
+		$this->limit 	= isset($_GET['limit'])  ? (int) $_GET['limit'] : 0;
+        $this->type		= isset($_GET['type'])   ? strtolower( $_GET['type'] ) : false; 		
+		$this->result	= array();
+        $this->list     = false;
+		
+		$this->start_process();
+		$this->render_output();
+	}
+
+	function start_process() {
+	   
+        global $ngg;
+		
+		if ( !$this->valid_access() ) 
+			return;
+		
+		switch ( $this->method ) {
+			case 'search' :
+				//search for some images
+				$this->result['images'] = array_merge( (array) nggdb::search_for_images( $this->term ), (array) nggTags::find_images_for_tags( $this->term , 'ASC' ));
+			break;
+			case 'gallery' :
+				//search for some gallery
+				$this->result['images'] = ($this->id == 0) ? nggdb::find_last_images( 0 , 100 ) : nggdb::get_gallery( $this->id, $ngg->options['galSort'], $ngg->options['galSortDir'], true, 0, 0, true );
+			break;
+			case 'image' :
+				//search for some image
+				$this->result['images'] = nggdb::find_image( $this->id );
+			break;
+			case 'tag' :
+				//search for images based on tags
+				$this->result['images'] = nggTags::find_images_for_tags( $this->term , 'ASC' );
+			break;
+			case 'recent' :
+				//search for images based on tags
+				$this->result['images'] = nggdb::find_last_images( 0 , $this->limit );
+			break;
+			case 'autocomplete' :
+				//return images, galleries or albums for autocomplete drop down list
+				return $this->autocomplete();                
+			break;
+			case 'version' :
+				$this->result = array ('stat' => 'ok', 'version' => $ngg->version);
+				return;           
+			break;
+			default :
+				$this->result = array ('stat' => 'fail', 'code' => '98', 'message' => 'Method not known.');
+				return false;	
+			break;		
+		}
+
+		// result should be fine	
+		$this->result['stat'] = 'ok';	
+	}
+	
+	function valid_access() {
+		
+		// if we are logged in, then we can go on
+		if ( is_user_logged_in() )
+			return true;
+		
+		//TODO:Implement an API KEY check later
+		if 	($this->api_key != false)
+			return true;
+		
+		$this->result = array ('stat' => 'fail', 'code' => '99', 'message' => 'Insufficient permissions. Method requires read privileges; none granted.');
+		return false;
+	}
+
+	/**
+	 * return search result for autocomplete request from backend
+	 * 
+     * @since 1.7.0
+	 * @return void
+	 */
+	function autocomplete() {
+        global $nggdb;
+        
+        switch ( $this->type ) {
+			case 'image' :
+            
+                // return the last entries in case of an empty search string
+                if ( empty($this->term) )
+				    $list = $nggdb->find_last_images(0, $this->limit, false);
+                else
+                    $list = $nggdb->search_for_images($this->term, $this->limit);
+                    
+                if( is_array($list) ) {
+        			foreach($list as $image) {
+                        // reorder result to array-object
+                        $obj = new stdClass();
+                        $obj->id = $image->pid;
+                        $name = ( empty($image->alttext) ? $image->filename : $image->alttext );
+                        //TODO : need to rework save/load 
+                        $name = stripslashes( htmlspecialchars_decode($name, ENT_QUOTES));
+                        $obj->label = $image->pid . ' - ' . $name;
+                        $obj->value = $name;
+                        $this->result[] = $obj;
+        			}
+        		}
+
+                return $this->result;
+            break;
+			case 'gallery' :
+            
+                if ( empty($this->term) )
+                    $list = $nggdb->find_all_galleries('gid', 'DESC', false, $this->limit );
+                else
+                    $list = $nggdb->search_for_galleries($this->term, $this->limit);   
+                     
+                if( is_array($list) ) {
+        			foreach($list as $gallery) {
+                        // reorder result to array-object
+                        $obj = new stdClass();
+                        $obj->id = $gallery->gid;
+                        $name = ( empty($gallery->title) ) ? $gallery->name : $gallery->title;
+                        $name = stripslashes( htmlspecialchars_decode($name, ENT_QUOTES));
+                        $obj->label = $gallery->gid . ' - ' . $name;
+                        $obj->value = $name;
+                        $this->result[] = $obj;
+        			}
+        		}
+                return $this->result;
+            break;
+			case 'album' :
+            
+                if ( empty($this->term) )
+                    $list = $nggdb->find_all_album('id', 'DESC', $this->limit );
+                else
+                    $list = $nggdb->search_for_albums($this->term, $this->limit); 
+                                    
+                if( is_array($list) ) {
+        			foreach($list as $album) {
+                        // reorder result to array-object            			 
+                        $obj = new stdClass();
+                        $obj->id = $album->id;
+                        $album->name = stripslashes( htmlspecialchars_decode($album->name, ENT_QUOTES));
+                        $obj->label = $album->id . ' - ' . $album->name;
+                        $obj->value = $album->name;
+                        $this->result[] = $obj;
+        			}
+        		}
+                return $this->result;
+            break;
+			default :
+				$this->result = array ('stat' => 'fail', 'code' => '98', 'message' => 'Type not known.');
+				return false;	
+			break;	
+        }
+    }
+
+    /**
+     * Iterates through a multidimensional array
+     * 
+     * @author Boris Glumpler
+     * @param array $arr
+     * @return void
+     */
+    function create_xml_array( &$arr )
+    {
+        if( is_object( $arr ) )
+            $arr = get_object_vars( $arr );
+
+        foreach( (array)$arr as $k => $v ) {
+            if( is_object( $v ) )
+                $v = get_object_vars( $v );
+                
+            if( ! is_array( $v ) )
+                $xml .= "<$k>$v</$k>\n";
+            else
+            {
+                if( is_numeric( $k ) )
+                    $k = 'job';
+                    
+                $xml .= "<$k>\n";
+                $xml .= $this->create_xml_array( $v );
+                $xml .= "</$k>\n";
+            }
+        }
+        
+        return $xml;
+    }
+	
+	function render_output() {
+		
+		if ($this->format == 'json') {
+			header('Content-Type: application/json; charset=' . get_option('blog_charset'), true);
+			$this->output = json_encode($this->result);
+		} else {
+			header('Content-Type: text/xml; charset=' . get_option('blog_charset'), true);
+			$this->output  = "<?xml version='1.0' encoding='UTF-8' standalone='yes'?>\n";
+			$this->output .= "<nextgen-gallery>" . $this->create_xml_array( $this->result )  . "</nextgen-gallery>\n";
+		}	
+		
+	}
+
+	/**
+	 * PHP5 style destructor and will run when the class is finished.
+	 *
+	 * @return output
+	 */
+	function __destruct() {
+		echo $this->output;
+	}
+
+}
+
+// let's use it
+$nggAPI = new nggAPI;
\ No newline at end of file
diff --git a/wp-content/plugins/nextgen-gallery/xml/media-rss.php b/wp-content/plugins/nextgen-gallery/xml/media-rss.php
new file mode 100644
index 000000000..b831902be
--- /dev/null
+++ b/wp-content/plugins/nextgen-gallery/xml/media-rss.php
@@ -0,0 +1,124 @@
+<?php
+/**
+* Media RSS presenting the pictures in counter chronological order.
+* 
+* @author Vincent Prat (http://www.vincentprat.info)
+*
+* @param mode The content we want to display (last_pictures|gallery|album). 
+* 			  Defaults to last_pictures.
+* 
+* Parameters for mode = last_pictures
+* 
+* 	@param page The current picture ID (defaults to 0)
+* 	@param show The number of pictures to include in one field (default 10) 
+* 
+* Parameters for mode = gallery
+* 
+* 	@param gid The gallery ID to show (defaults to first gallery)
+* 	@param prev_next Whether to link to previous and next galleries (true|false).
+* 					 Default to false.
+* 
+* Parameters for mode = album
+* 
+* 	@param aid The album ID to show
+*/
+
+// Load required files and set some useful variables
+require_once(dirname(__FILE__) . "/../ngg-config.php");
+require_once(dirname(__FILE__) . "/../lib/media-rss.php");
+
+// Check we have the required GET parameters
+$mode = isset ($_GET['mode']) ? $_GET['mode'] : 'last_pictures';
+
+// Act according to the required mode
+$rss = '';
+if ( $mode == 'last_pictures' ) {
+	
+	// Get additional parameters
+	$page = isset ($_GET['page']) ? (int) $_GET['page'] : 0;
+	$show = isset ($_GET['show']) ? (int) $_GET['show'] : 10;
+	
+	$rss = nggMediaRss::get_last_pictures_mrss($page, $show);
+    	
+} else if ( $mode == 'gallery' ) {
+		
+	// Get all galleries
+	$galleries = $nggdb->find_all_galleries();
+
+	if ( count($galleries) == 0 ) {
+		header('content-type:text/plain;charset=utf-8');
+		echo sprintf(__("No galleries have been yet created.","nggallery"), $gid);
+		exit;
+	}
+	
+	// Get additional parameters
+	$gid = isset ($_GET['gid']) ? (int) $_GET['gid'] : 0;
+	
+	//if no gid is present, take the first gallery
+	if ( $gid == 0 ) {
+        $first = current($galleries);
+        $gid = $first->gid;
+	}
+	    
+	
+	// Set the main gallery object
+	$gallery = $galleries[$gid];
+	
+	if (!isset($gallery) || $gallery==null) {
+		header('content-type:text/plain;charset=utf-8');
+		echo sprintf(__("The gallery ID=%s does not exist.","nggallery"), intval($gid) );
+		exit;
+	}
+
+	// show other galleries if needed
+	$prev_next = ( isset($_GET['prev_next']) && $_GET['prev_next'] == 'true' ) ? true : false;
+	$prev_gallery = $next_gallery =  null;
+	
+	// Get previous and next galleries if required
+	if ($prev_next) {
+		reset($galleries);
+		while( current($galleries) ){
+ 			if( key($galleries) == $gid )
+				break;
+			next($galleries);
+		}
+		// one step back
+		$prev_gallery  = prev( $galleries);
+		// two step forward... Could be easier ? How ?
+		next($galleries);
+		$next_gallery  = next($galleries);
+	}
+
+	$rss = nggMediaRss::get_gallery_mrss($gallery, $prev_gallery, $next_gallery);	
+	
+} else if ( $mode == 'album' ) {
+	
+	// Get additional parameters
+    $aid = isset ($_GET['aid']) ? (int) $_GET['aid'] : 0;	
+	if ( $aid == 0 ) {
+		header('content-type:text/plain;charset=utf-8');
+		_e("No album ID has been provided as parameter", "nggallery");
+		exit;
+	}
+	
+	// Get the album object
+	$album = nggdb::find_album($aid);
+	if (!isset($album) || $album==null ) {
+		header('content-type:text/plain;charset=utf-8');
+		echo sprintf(__("The album ID=%s does not exist.", "nggallery"), intval($aid) );
+		exit;
+	}
+	
+	$rss = nggMediaRss::get_album_mrss($album);	
+} else {
+	header('content-type:text/plain;charset=utf-8');
+	echo __('Invalid MediaRSS command', 'nggallery');
+	exit;
+}
+
+
+// Output header for media RSS
+header("content-type:text/xml;charset=utf-8");
+echo "<?xml version='1.0' encoding='UTF-8' standalone='yes'?>\n";
+echo $rss;
+?>
\ No newline at end of file
-- 
GitLab