diff --git a/COPYING.txt b/COPYING.txt index 173971b24..5b7d3bd90 100644 --- a/COPYING.txt +++ b/COPYING.txt @@ -2,7 +2,7 @@ COPYRIGHT Piwigo - a photo library manager - Copyright(C) 2008-2019 Piwigo Team https://piwigo.org + Copyright(C) 2008-2020 Piwigo Team https://piwigo.org Copyright(C) 2003-2008 PhpWebGallery Team http://phpwebgallery.net Copyright(C) 2002-2003 Pierrick LE GALL http://pierrick.le-gall.net @@ -15,4 +15,4 @@ SOFTWARE LICENSE TRADEMARK - Piwigo is a registered trademark. \ No newline at end of file + Piwigo is a registered trademark. diff --git a/README.md b/README.md index caf32d54d..2b046dd03 100644 --- a/README.md +++ b/README.md @@ -1,24 +1,15 @@ -[](http://piwigo.org) ---------- + -Piwigo is photo gallery software for the web, built by an active community of users and developers. +Manage your photo library. Piwigo is open source photo gallery software for the web. Designed for organisations, teams and individuals. -Extensions make Piwigo easily customizable. Icing on the cake, Piwigo is free and open source. + - - - * [piwigo.org](http://piwigo.org) - * [Demo](http://piwigo.org/demo) - * [Downloads](http://piwigo.org/basics/downloads) - * [User guide](http://piwigo.org/doc) - * [Plugins and themes](http://piwigo.org/ext) - * [Forum](http://piwigo.org/forum) - * [News](http://piwigo.org/news) +The [piwigo.org](https://piwigo.org) website introduces you to Piwigo. You'll find a demo, forums, wiki and news. ## Requirements * A webserver (Apache or nginx recommended) - * PHP 5.3 or greater + * PHP 5.3 or greater (7+ recommended) * MySQL 5 or greater or MariaDB equivalent * ImageMagick (recommended) or PHP GD @@ -26,26 +17,26 @@ Extensions make Piwigo easily customizable. Icing on the cake, Piwigo is free an ### NetInstall - * Download the [NetInstall script](http://piwigo.org/download/dlcounter.php?code=netinstall) + * Download the [NetInstall script](https://piwigo.org/download/dlcounter.php?code=netinstall) * Transfer the script to your web space with any FTP client * Open the script in you web browser (for example http://example.com/piwigo-netinstall.php) and follow the steps -[More information](http://piwigo.org/basics/installation_netinstall) +[More information](https://piwigo.org/guides/install/netinstall) ### Manual - * Download the [latest stable version](http://piwigo.org/download/dlcounter.php?code=latest) and unzip it + * Download the [latest stable version](https://piwigo.org/download/dlcounter.php?code=latest) and unzip it * Transfer everything to your web space with any FTP client * Open your website (for example http://example.com/piwigo) and follow the steps -[More information](http://piwigo.org/basics/installation_manual) +[More information](https://piwigo.org/guides/install/manual) -If you do not have your own server, consider the [piwigo.com](http://piwigo.com/) hosting solution. +If you do not have your own server, consider the [piwigo.com](https://piwigo.com/) hosting solution. ## Contributing -Piwigo is widely driven by its community; if you want to improve the code, fork this repo and submit your changes to the `master` branch. +Piwigo is widely driven by its community; if you want to improve the code, fork this repo and submit your changes to the `master` branch. See our [Contribution guide](https://github.com/Piwigo/Piwigo/blob/master/docs/CONTRIBUTING.md). ## License -Piwigo is released under the GPL v2 license. +Piwigo is released under the GPL v2 license. See our [Copying details](https://github.com/Piwigo/Piwigo/blob/master/COPYING.txt). diff --git a/action.php b/action.php index 1d6b23c8c..3b071bc68 100644 --- a/action.php +++ b/action.php @@ -220,7 +220,9 @@ if (ini_get('safe_mode') == 0) { @set_time_limit(0); } - +// Without clean and flush there may be some image download problems, or image can be corrupted after download +ob_clean(); +flush(); @readfile($file); -?> \ No newline at end of file +?> diff --git a/admin.php b/admin.php index 36d1c3b44..9051d3893 100644 --- a/admin.php +++ b/admin.php @@ -181,7 +181,9 @@ $template->assign( 'U_CONFIG_LANGUAGES' => $link_start.'languages', 'U_CONFIG_THEMES'=> $link_start.'themes', 'U_CATEGORIES'=> $link_start.'cat_list', + 'U_CAT_MOVE'=> $link_start.'cat_move', 'U_CAT_OPTIONS'=> $link_start.'cat_options', + 'U_CAT_SEARCH'=> $link_start.'cat_search', 'U_CAT_UPDATE'=> $link_start.'site_update&site=1', 'U_RATING'=> $link_start.'rating', 'U_RECENT_SET'=> $link_start.'batch_manager&filter=prefilter-last_import', @@ -238,15 +240,14 @@ if ($nb_photos_in_caddie > 0) } // any photos with no md5sum ? -$nb_no_md5sum = count(get_photos_no_md5sum()); -if ($nb_no_md5sum > 0) +if (in_array($page['page'], array('site_update', 'batch_manager'))) { - $template->assign( - array( - 'NB_NO_MD5SUM' => $nb_no_md5sum, - 'U_NO_MD5SUM' => $link_start.'batch_manager&filter=prefilter-no_sync_md5sum', - ) - ); + $nb_no_md5sum = count(get_photos_no_md5sum()); + + if ($nb_no_md5sum > 0) + { + $page['no_md5sum_number'] = $nb_no_md5sum; + } } // any orphan photo? @@ -262,19 +263,6 @@ if ($nb_orphans > 0) ); } -// +-----------------------------------------------------------------------+ -// | Plugin menu | -// +-----------------------------------------------------------------------+ - -$plugin_menu_links = trigger_change('get_admin_plugin_menu_links', array() ); - -function UC_name_compare($a, $b) -{ - return strcmp(strtolower($a['NAME']), strtolower($b['NAME'])); -} -usort($plugin_menu_links, 'UC_name_compare'); -$template->assign('plugin_menu_items', $plugin_menu_links); - // +-----------------------------------------------------------------------+ // | Refresh permissions | // +-----------------------------------------------------------------------+ diff --git a/admin/batch_manager.php b/admin/batch_manager.php index 739bb7777..47ac1bf9c 100644 --- a/admin/batch_manager.php +++ b/admin/batch_manager.php @@ -125,6 +125,8 @@ if (isset($_POST['submitFilter'])) if (isset($_POST['filter_category_use'])) { + check_input_parameter('filter_category', $_POST, false, PATTERN_ID); + $_SESSION['bulk_manager_filter']['category'] = $_POST['filter_category']; if (isset($_POST['filter_category_recursive'])) @@ -603,7 +605,7 @@ foreach ($filter_sets as $set) { $current_set = array_intersect($current_set, $set); } -$page['cat_elements_id'] = $current_set; +$page['cat_elements_id'] = empty($current_set) ? [] : $current_set; // +-----------------------------------------------------------------------+ diff --git a/admin/batch_manager_global.php b/admin/batch_manager_global.php index 688bb5c49..038b8a3eb 100644 --- a/admin/batch_manager_global.php +++ b/admin/batch_manager_global.php @@ -453,11 +453,21 @@ if ($conf['enable_synchronization']) $prefilters[] = array('ID' => 'no_sync_md5sum', 'NAME' => l10n('With no checksum')); } +function UC_name_compare($a, $b) +{ + return strcmp(strtolower($a['NAME']), strtolower($b['NAME'])); +} + $prefilters = trigger_change('get_batch_manager_prefilters', $prefilters); -usort($prefilters, 'UC_name_compare'); + +// Sort prefilters by localized name. +usort($prefilters, function ($a, $b) { + return strcmp(strtolower($a['NAME']), strtolower($b['NAME'])); +}); $template->assign( array( + 'conf_checksum_compute_blocksize' => $conf['checksum_compute_blocksize'], 'prefilters' => $prefilters, 'filter' => $_SESSION['bulk_manager_filter'], 'selection' => $collection, @@ -469,6 +479,15 @@ $template->assign( ) ); +if (isset($page['no_md5sum_number'])) +{ + $template->assign( + array( + 'NB_NO_MD5SUM' => $page['no_md5sum_number'], + ) + ); +} + // +-----------------------------------------------------------------------+ // | caddie options | // +-----------------------------------------------------------------------+ @@ -545,6 +564,8 @@ $template->assign('filter_category_selected', $selected_category); // Dissociate from a category : categories listed for dissociation can only // represent virtual links. We can't create orphans. Links to physical // categories can't be broken. +$associated_categories = array(); + if (count($page['cat_elements_id']) > 0) { $query = ' @@ -559,9 +580,11 @@ SELECT ) ;'; - $template->assign('associated_categories', query2array($query, 'id', 'id')); + $associated_categories = query2array($query, 'id', 'id'); } +$template->assign('associated_categories', $associated_categories); + if (count($page['cat_elements_id']) > 0) { // remove tags @@ -651,10 +674,15 @@ if (count($page['cat_elements_id']) > 0) $is_category = true; } + // If using the 'duplicates' filter, + // order by the fields that are used to find duplicates. if (isset($_SESSION['bulk_manager_filter']['prefilter']) - and 'duplicates' == $_SESSION['bulk_manager_filter']['prefilter']) + and 'duplicates' === $_SESSION['bulk_manager_filter']['prefilter'] + and isset($duplicates_on_fields)) { - $conf['order_by'] = ' ORDER BY file, id'; + // The $duplicates_on_fields variable is defined in ./batch_manager.php + $order_by_fields = array_merge( $duplicates_on_fields, array( 'id' ) ); + $conf['order_by'] = ' ORDER BY '.join(', ', $order_by_fields); } $query = ' @@ -690,7 +718,7 @@ SELECT id,path,representative_ext,file,filesize,level,name,width,height,rotation ;'; $result = pwg_query($query); - $thumb_params = ImageStdParams::get_by_type(IMG_THUMB); + $thumb_params = ImageStdParams::get_by_type(IMG_SQUARE); // template thumbnail initialization while ($row = pwg_db_fetch_assoc($result)) { diff --git a/admin/cat_list.php b/admin/cat_list.php index ab0f7d54d..d5a46b82a 100644 --- a/admin/cat_list.php +++ b/admin/cat_list.php @@ -161,7 +161,7 @@ elseif (isset($_POST['submitAdd'])) $output_create = create_virtual_category( $_POST['virtual_name'], @$_GET['parent_id'] - ); + ); invalidate_user_cache(); if (isset($output_create['error'])) @@ -174,86 +174,6 @@ elseif (isset($_POST['submitAdd'])) $page['infos'][] = $output_create['info'].' '.l10n('Edit album').''; } } -// save manual category ordering -elseif (isset($_POST['submitManualOrder'])) -{ - asort($_POST['catOrd'], SORT_NUMERIC); - save_categories_order(array_keys($_POST['catOrd'])); - - $page['infos'][] = l10n('Album manual order was saved'); -} -elseif (isset($_POST['submitAutoOrder'])) -{ - if (!isset($sort_orders[ $_POST['order_by'] ])) - { - die('Invalid sort order'); - } - - $query = ' -SELECT id - FROM '.CATEGORIES_TABLE.' - WHERE id_uppercat '. - (!isset($_GET['parent_id']) ? 'IS NULL' : '= '.$_GET['parent_id']).' -;'; - $category_ids = array_from_query($query, 'id'); - - if (isset($_POST['recursive'])) - { - $category_ids = get_subcat_ids($category_ids); - } - - $categories = array(); - $sort = array(); - - list($order_by_field, $order_by_asc) = explode(' ', $_POST['order_by']); - - $order_by_date = false; - if (strpos($order_by_field, 'date_') === 0) - { - $order_by_date = true; - - $ref_dates = get_categories_ref_date( - $category_ids, - $order_by_field, - 'ASC' == $order_by_asc ? 'min' : 'max' - ); - } - - $query = ' -SELECT id, name, id_uppercat - FROM '.CATEGORIES_TABLE.' - WHERE id IN ('.implode(',', $category_ids).') -;'; - $result = pwg_query($query); - while ($row = pwg_db_fetch_assoc($result)) - { - if ($order_by_date) - { - $sort[] = $ref_dates[ $row['id'] ]; - } - else - { - $sort[] = remove_accents($row['name']); - } - - $categories[] = array( - 'id' => $row['id'], - 'id_uppercat' => $row['id_uppercat'], - ); - } - - array_multisort( - $sort, - SORT_REGULAR, - 'ASC' == $order_by_asc ? SORT_ASC : SORT_DESC, - $categories - ); - - save_categories_order($categories); - - $page['infos'][] = l10n('Albums automatically sorted'); -} - // +-----------------------------------------------------------------------+ // | Navigation path | // +-----------------------------------------------------------------------+ diff --git a/admin/cat_modify.php b/admin/cat_modify.php index c817f93bc..e3daa0def 100644 --- a/admin/cat_modify.php +++ b/admin/cat_modify.php @@ -109,9 +109,9 @@ if (isset($_POST['submit'])) if ($conf['activate_comments']) { - $data['commentable'] = isset($_POST['commentable'])?$_POST['commentable']:'false'; + $data['commentable'] = isset($_POST['commentable'])? 'true':'false'; } - + single_update( CATEGORIES_TABLE, $data, @@ -131,13 +131,15 @@ UPDATE '.CATEGORIES_TABLE.' // retrieve cat infos before continuing (following updates are expensive) $cat_info = get_cat_info($_GET['cat_id']); - if ($_POST['visible']=='true_sub') + $visible = false; + if (!isset($_POST['locked'])) { - set_cat_visible(array($_GET['cat_id']), true, true); + $visible = true; } - elseif ($cat_info['visible'] != get_boolean( $_POST['visible'] ) ) + + if ($visible !== $cat_info['visible']) { - set_cat_visible(array($_GET['cat_id']), $_POST['visible']); + set_cat_visible(array($_GET['cat_id']), $visible); } // in case the use moves his album to the gallery root, we force @@ -275,7 +277,7 @@ $template->assign( 'CAT_ID' => $category['id'], 'CAT_NAME' => @htmlspecialchars($category['name']), 'CAT_COMMENT' => @htmlspecialchars($category['comment']), - 'CAT_VISIBLE' => boolean_to_string($category['visible']), + 'IS_LOCKED' => !get_boolean($category['visible']), 'U_JUMPTO' => make_index_url( array( @@ -317,7 +319,7 @@ SELECT if ($min_date == $max_date) { - $intro = l10n( + $info_title = l10n( 'This album contains %d photos, added on %s.', $image_count, format_date($min_date) @@ -325,19 +327,64 @@ SELECT } else { - $intro = l10n( + $info_title = l10n( 'This album contains %d photos, added between %s and %s.', $image_count, format_date($min_date), format_date($max_date) ); } + $info_photos = l10n('%d photos', $image_count); + + $template->assign( + array( + 'INFO_PHOTO' => $info_photos, + 'INFO_TITLE' => $info_title + ) + ); + } -else -{ - $intro = l10n('This album contains no photo.'); + +// date creation +$query = ' +SELECT occured_on + FROM `'.ACTIVITY_TABLE.'` + WHERE object_id = '.$category['id'].' + AND object = "album" + AND action = "add" +'; +$result = query2array($query); + +if (count($result) > 0) { + $template->assign( + array( + 'INFO_CREATION' => l10n('Created on %s',format_date($result[0]['occured_on'], array('day', 'month','year'))) + ) + ); } +// Sub Albums +$query = ' +SELECT COUNT(*) + FROM `'.CATEGORIES_TABLE.'` + WHERE id_uppercat = '.$category['id'].' +'; +$result = query2array($query); + +if ($result[0]['COUNT(*)'] > 0) { + $template->assign( + array( + 'INFO_DIRECT_SUB' => l10n('%d sub-albums',$result[0]['COUNT(*)']) + ) + ); +} + +$template->assign(array( + 'INFO_ID' => l10n('Numeric identifier : %d',$category['id']), + 'INFO_LAST_MODIFIED'=> l10n('Edited on %s',format_date($category['lastmodified'], array('day', 'month','year'))) + ) + ); + // info for deletion $template->assign( array( @@ -349,10 +396,7 @@ $template->assign( ) ); -$intro.= ''.l10n('Numeric identifier : %d', $category['id']); - $template->assign(array( - 'INTRO' => $intro, 'U_MANAGE_RANKS' => $base_url.'element_set_ranks&cat_id='.$category['id'], 'CACHE_KEYS' => get_admin_client_cache_keys(array('categories')), )); @@ -393,7 +437,7 @@ if ($category['has_images'] or !empty($category['representative_picture_id'])) // representant ? if (!empty($category['representative_picture_id'])) { - $tpl_representant['picture'] = get_category_representant_properties($category['representative_picture_id']); + $tpl_representant['picture'] = get_category_representant_properties($category['representative_picture_id'], IMG_SMALL); } // can the admin choose to set a new random representant ? diff --git a/admin/cat_move.php b/admin/cat_move.php index 18f94971c..9824b9b26 100644 --- a/admin/cat_move.php +++ b/admin/cat_move.php @@ -19,27 +19,95 @@ include_once(PHPWG_ROOT_PATH.'admin/include/functions.php'); check_status(ACCESS_ADMINISTRATOR); // +-----------------------------------------------------------------------+ -// | functions | +// | categories auto order | // +-----------------------------------------------------------------------+ +$open_cat = -1; -// +-----------------------------------------------------------------------+ -// | categories movement | -// +-----------------------------------------------------------------------+ +$sort_orders = array( + 'name ASC', + 'name DESC', + 'date_creation DESC', + 'date_creation ASC', + 'date_available DESC', + 'date_available ASC' +); -if (isset($_POST['submit'])) +if (isset($_POST['simpleAutoOrder']) || isset($_POST['recursiveAutoOrder']) ) { - if (count($_POST['selection']) > 0) + + if (!in_array($_POST['order'],$sort_orders)) { - // TODO: tests - move_categories($_POST['selection'], $_POST['parent']); + die('Invalid sort order'); } - else + + $query = ' +SELECT id + FROM '.CATEGORIES_TABLE.' + WHERE id_uppercat '. + (($_POST['id'] === '-1') ? 'IS NULL' : '= '.$_POST['id']).' +;'; + $category_ids = array_from_query($query, 'id'); + + if (isset($_POST['recursiveAutoOrder'])) { - $page['errors'][] = l10n('Select at least one album'); + $category_ids = get_subcat_ids($category_ids); } + + $categories = array(); + $sort = array(); + + list($order_by_field, $order_by_asc) = explode(' ', $_POST['order']); + + $order_by_date = false; + if (strpos($order_by_field, 'date_') === 0) + { + $order_by_date = true; + + $ref_dates = get_categories_ref_date( + $category_ids, + $order_by_field, + 'ASC' == $order_by_asc ? 'min' : 'max' + ); + } + + $query = ' +SELECT id, name, id_uppercat + FROM '.CATEGORIES_TABLE.' + WHERE id IN ('.implode(',', $category_ids).') +;'; + $result = pwg_query($query); + while ($row = pwg_db_fetch_assoc($result)) + { + if ($order_by_date) + { + $sort[] = $ref_dates[ $row['id'] ]; + } + else + { + $sort[] = remove_accents($row['name']); + } + + $categories[] = array( + 'id' => $row['id'], + 'id_uppercat' => $row['id_uppercat'], + ); + } + + array_multisort( + $sort, + SORT_REGULAR, + 'ASC' == $order_by_asc ? SORT_ASC : SORT_DESC, + $categories + ); + + save_categories_order($categories); + + $open_cat = $_POST['id']; } +$template->assign('open_cat', $open_cat); + // +-----------------------------------------------------------------------+ // | template initialization | // +-----------------------------------------------------------------------+ @@ -47,47 +115,146 @@ $template->set_filename('cat_move', 'cat_move.tpl'); $template->assign( array( - 'U_HELP' => get_root_url().'admin/popuphelp.php?page=cat_move', 'F_ACTION' => get_root_url().'admin.php?page=cat_move', ) ); - -// +-----------------------------------------------------------------------+ -// | tabs | -// +-----------------------------------------------------------------------+ - -$page['tab'] = 'move'; -include(PHPWG_ROOT_PATH.'admin/include/albums_tab.inc.php'); // +-----------------------------------------------------------------------+ -// | Categories display | +// | Album display | // +-----------------------------------------------------------------------+ +//Get all albums $query = ' -SELECT id,name,uppercats,global_rank - FROM '.CATEGORIES_TABLE.' - WHERE dir IS NULL -;'; -display_select_cat_wrapper( - $query, - array(), - 'category_to_move_options' - ); - -$query = ' -SELECT id,name,uppercats,global_rank +SELECT id,name,rank,status, uppercats FROM '.CATEGORIES_TABLE.' ;'; -display_select_cat_wrapper( - $query, - array(), - 'category_parent_options' - ); +$allAlbum = query2array($query); +//Make an id tree +$associatedTree = array(); + +foreach ($allAlbum as $album) +{ + $parents = explode(',',$album['uppercats']); + $the_place = &$associatedTree[strval($parents[0])]; + for ($i=1; $i < count($parents); $i++) + { + $the_place = &$the_place['children'][strval($parents[$i])]; + } + $the_place['cat'] = $album; +} + +//Make an ordered tree +function cmpCat($a, $b) +{ + if ($a['rank'] == $b['rank']) + { + return 0; + } + return ($a['rank'] < $b['rank']) ? -1 : 1; +} + +function assocToOrderedTree($assocT) +{ + $orderedTree = array(); + + foreach($assocT as $cat) + { + $orderedCat = array(); + $orderedCat['rank'] = $cat['cat']['rank']; + $orderedCat['name'] = $cat['cat']['name']; + $orderedCat['status'] = $cat['cat']['status']; + $orderedCat['id'] = $cat['cat']['id']; + if (isset($cat['children'])) + { + $orderedCat['children'] = assocToOrderedTree($cat['children']); + } + array_push($orderedTree, $orderedCat); + } + usort($orderedTree, 'cmpCat'); + return $orderedTree; +} + +$template->assign('album_data', assocToOrderedTree($associatedTree)); +$template->assign('PWG_TOKEN', get_pwg_token()); // +-----------------------------------------------------------------------+ // | sending html code | // +-----------------------------------------------------------------------+ $template->assign_var_from_handle('ADMIN_CONTENT', 'cat_move'); + +// +-----------------------------------------------------------------------+ +// | functions | +// +-----------------------------------------------------------------------+ +function get_categories_ref_date($ids, $field='date_available', $minmax='max') +{ + // we need to work on the whole tree under each category, even if we don't + // want to sort sub categories + $category_ids = get_subcat_ids($ids); + + // search for the reference date of each album + $query = ' +SELECT + category_id, + '.$minmax.'('.$field.') as ref_date + FROM '.IMAGE_CATEGORY_TABLE.' + JOIN '.IMAGES_TABLE.' ON image_id = id + WHERE category_id IN ('.implode(',', $category_ids).') + GROUP BY category_id +;'; + $ref_dates = query2array($query, 'category_id', 'ref_date'); + + // the iterate on all albums (having a ref_date or not) to find the + // reference_date, with a search on sub-albums + $query = ' +SELECT + id, + uppercats + FROM '.CATEGORIES_TABLE.' + WHERE id IN ('.implode(',', $category_ids).') +;'; + $uppercats_of = query2array($query, 'id', 'uppercats'); + + foreach (array_keys($uppercats_of) as $cat_id) + { + // find the subcats + $subcat_ids = array(); + + foreach ($uppercats_of as $id => $uppercats) + { + if (preg_match('/(^|,)'.$cat_id.'(,|$)/', $uppercats)) + { + $subcat_ids[] = $id; + } + } + + $to_compare = array(); + foreach ($subcat_ids as $id) + { + if (isset($ref_dates[$id])) + { + $to_compare[] = $ref_dates[$id]; + } + } + + if (count($to_compare) > 0) + { + $ref_dates[$cat_id] = 'max' == $minmax ? max($to_compare) : min($to_compare); + } + else + { + $ref_dates[$cat_id] = null; + } + } + + // only return the list of $ids, not the sub-categories + $return = array(); + foreach ($ids as $id) + { + $return[$id] = $ref_dates[$id]; + } + + return $return; +} ?> diff --git a/admin/cat_search.php b/admin/cat_search.php new file mode 100644 index 000000000..665181647 --- /dev/null +++ b/admin/cat_search.php @@ -0,0 +1,61 @@ +set_filename('cat_search', 'cat_search.tpl'); +$template->assign('data_cat', $categories); + +// +-----------------------------------------------------------------------+ +// | sending html code | +// +-----------------------------------------------------------------------+ +$template->assign_var_from_handle('ADMIN_CONTENT', 'cat_search'); +?> diff --git a/admin/configuration.php b/admin/configuration.php index cfb753f3a..95ba049d4 100644 --- a/admin/configuration.php +++ b/admin/configuration.php @@ -43,6 +43,8 @@ $main_checkboxes = array( 'log', 'history_admin', 'history_guest', + 'show_mobile_app_banner_in_gallery', + 'show_mobile_app_banner_in_admin', ); $sizes_checkboxes = array( diff --git a/admin/element_set_ranks.php b/admin/element_set_ranks.php index 70914c56f..07b20c95b 100644 --- a/admin/element_set_ranks.php +++ b/admin/element_set_ranks.php @@ -109,7 +109,7 @@ SELECT * ;'; $category = pwg_db_fetch_assoc(pwg_query($query)); -if ($category['image_order']=='rank ASC') +if ($category['image_order']=='rank ASC' or $category['image_order']=='`rank` ASC') { $image_order_choice = 'rank'; } diff --git a/admin/group_list.php b/admin/group_list.php index b3fa225c8..db672fe60 100644 --- a/admin/group_list.php +++ b/admin/group_list.php @@ -35,333 +35,8 @@ if (!empty($_POST) or isset($_GET['delete']) or isset($_GET['toggle_is_default'] { check_pwg_token(); } -// +-----------------------------------------------------------------------+ -// | add a group | -// +-----------------------------------------------------------------------+ - -if (isset($_POST['submit_add'])) -{ - if (empty($_POST['groupname'])) - { - $page['errors'][] = l10n('The name of a group must not contain " or \' or be empty.'); - } - if (count($page['errors']) == 0) - { - // is the group not already existing ? - $query = ' -SELECT COUNT(*) - FROM `'.GROUPS_TABLE.'` - WHERE name = \''.$_POST['groupname'].'\' -;'; - list($count) = pwg_db_fetch_row(pwg_query($query)); - if ($count != 0) - { - $page['errors'][] = l10n('This name is already used by another group.'); - } - } - if (count($page['errors']) == 0) - { - // creating the group - $query = ' -INSERT INTO `'.GROUPS_TABLE.'` - (name) - VALUES - (\''.pwg_db_real_escape_string($_POST['groupname']).'\') -;'; - pwg_query($query); - - $page['infos'][] = l10n('group "%s" added', $_POST['groupname']); - - $inserted_id = pwg_db_insert_id(GROUPS_TABLE); - pwg_activity('group', $inserted_id, 'add'); - } -} - -// +-----------------------------------------------------------------------+ -// | action send | -// +-----------------------------------------------------------------------+ -if (isset($_POST['submit']) and isset($_POST['selectAction']) and isset($_POST['group_selection'])) -{ - // if the user tries to apply an action, it means that there is at least 1 - // photo in the selection - $groups = $_POST['group_selection']; - if (count($groups) == 0) - { - $page['errors'][] = l10n('Select at least one group'); - } - - $action = $_POST['selectAction']; - - // + - // |rename a group - // + - - if ($action=="rename") - { - // is the group not already existing ? - $query = ' -SELECT name - FROM `'.GROUPS_TABLE.'` -;'; - $group_names = array_from_query($query, 'name'); - foreach($groups as $group) - { - $_POST['rename_'.$group] = stripslashes($_POST['rename_'.$group]); - - if (in_array($_POST['rename_'.$group], $group_names)) - { - $page['errors'][] = $_POST['rename_'.$group].' | '.l10n('This name is already used by another group.'); - } - elseif ( !empty($_POST['rename_'.$group.''])) - { - $query = ' - UPDATE `'.GROUPS_TABLE.'` - SET name = \''.pwg_db_real_escape_string($_POST['rename_'.$group]).'\' - WHERE id = '.$group.' - ;'; - pwg_query($query); - pwg_activity('group', $group, 'edit', array('action'=>$action)); - } - } - } - - // + - // |delete a group - // + - - if ($action=="delete" and isset($_POST['confirm_deletion']) and $_POST['confirm_deletion']) - { - foreach($groups as $group) - { - // destruction of the access linked to the group - $query = ' - DELETE - FROM '.GROUP_ACCESS_TABLE.' - WHERE group_id = '.$group.' - ;'; - pwg_query($query); - - // destruction of the users links for this group - $query = ' - DELETE - FROM '.USER_GROUP_TABLE.' - WHERE group_id = '.$group.' - ;'; - pwg_query($query); - - $query = ' - SELECT id, name - FROM `'.GROUPS_TABLE.'` - WHERE id = '.$group.' - ;'; - - $group_list = query2array($query, 'id', 'name'); - $groupids = array_keys($group_list); - list($groupname) = array_values($group_list); - - // destruction of the group - $query = ' - DELETE - FROM `'.GROUPS_TABLE.'` - WHERE id = '.$group.' - ;'; - pwg_query($query); - - trigger_notify('delete_group', $groupids); - pwg_activity('group', $groupids, 'delete'); - - $page['infos'][] = l10n('group "%s" deleted', $groupname); - } - } - - // + - // |merge groups into a new one - // + - - if ($action=="merge" and count($groups) > 1) - { - // is the group not already existing ? - $query = ' -SELECT COUNT(*) - FROM `'.GROUPS_TABLE.'` - WHERE name = \''.pwg_db_real_escape_string($_POST['merge']).'\' -;'; - list($count) = pwg_db_fetch_row(pwg_query($query)); - if ($count != 0) - { - $page['errors'][] = l10n('This name is already used by another group.'); - } - else - { - // creating the group - $query = ' - INSERT INTO `'.GROUPS_TABLE.'` - (name) - VALUES - (\''.pwg_db_real_escape_string($_POST['merge']).'\') - ;'; - pwg_query($query); - $query = ' - SELECT id - FROM `'.GROUPS_TABLE.'` - WHERE name = \''.pwg_db_real_escape_string($_POST['merge']).'\' - ;'; - list($groupid) = pwg_db_fetch_row(pwg_query($query)); - pwg_activity('group', $groupid, 'add', array('action'=>$action, 'groups'=>implode(',', $groups))); - } - $grp_access = array(); - $usr_grp = array(); - foreach($groups as $group) - { - $query = ' - SELECT * - FROM '.GROUP_ACCESS_TABLE.' - WHERE group_id = '.$group.' - ;'; - $res=pwg_query($query); - while ($row = pwg_db_fetch_assoc($res)) - { - $new_grp_access= array( - 'cat_id' => $row['cat_id'], - 'group_id' => $groupid - ); - if (!in_array($new_grp_access,$grp_access)) - { - $grp_access[]=$new_grp_access; - } - } - - $query = ' - SELECT * - FROM '.USER_GROUP_TABLE.' - WHERE group_id = '.$group.' - ;'; - $res=pwg_query($query); - while ($row = pwg_db_fetch_assoc($res)) - { - $new_usr_grp= array( - 'user_id' => $row['user_id'], - 'group_id' => $groupid - ); - if (!in_array($new_usr_grp,$usr_grp)) - { - $usr_grp[]=$new_usr_grp; - } - } - } - mass_inserts(USER_GROUP_TABLE, array('user_id','group_id'), $usr_grp); - mass_inserts(GROUP_ACCESS_TABLE, array('group_id','cat_id'), $grp_access); - - $page['infos'][] = l10n('group "%s" added', $_POST['merge']); - } - - // + - // |duplicate a group - // + - - if ($action=="duplicate" ) - { - foreach($groups as $group) - { - if ( empty($_POST['duplicate_'.$group.'']) ) - { - break; - } - // is the group not already existing ? - $query = ' - SELECT COUNT(*) - FROM `'.GROUPS_TABLE.'` - WHERE name = \''.pwg_db_real_escape_string($_POST['duplicate_'.$group.'']).'\' - ;'; - list($count) = pwg_db_fetch_row(pwg_query($query)); - if ($count != 0) - { - $page['errors'][] = l10n('This name is already used by another group.'); - break; - } - // creating the group - $query = ' - INSERT INTO `'.GROUPS_TABLE.'` - (name) - VALUES - (\''.pwg_db_real_escape_string($_POST['duplicate_'.$group.'']).'\') - ;'; - pwg_query($query); - $query = ' - SELECT id - FROM `'.GROUPS_TABLE.'` - WHERE name = \''.pwg_db_real_escape_string($_POST['duplicate_'.$group.'']).'\' - ;'; - - list($groupid) = pwg_db_fetch_row(pwg_query($query)); - pwg_activity('group', $groupid, 'add', array('action'=>$action, 'group'=>$group)); - $query = ' - SELECT * - FROM '.GROUP_ACCESS_TABLE.' - WHERE group_id = '.$group.' - ;'; - $grp_access = array(); - $res=pwg_query($query); - while ($row = pwg_db_fetch_assoc($res)) - { - $grp_access[] = array( - 'cat_id' => $row['cat_id'], - 'group_id' => $groupid - ); - } - mass_inserts(GROUP_ACCESS_TABLE, array('group_id','cat_id'), $grp_access); - - $query = ' - SELECT * - FROM '.USER_GROUP_TABLE.' - WHERE group_id = '.$group.' - ;'; - $usr_grp = array(); - $res=pwg_query($query); - while ($row = pwg_db_fetch_assoc($res)) - { - $usr_grp[] = array( - 'user_id' => $row['user_id'], - 'group_id' => $groupid - ); - } - mass_inserts(USER_GROUP_TABLE, array('user_id','group_id'), $usr_grp); - - $page['infos'][] = l10n('group "%s" added', $_POST['duplicate_'.$group.'']); - } - } - // + - // | toggle_default - // + - - if ($action=="toggle_default") - { - foreach($groups as $group) - { - $query = ' - SELECT name, is_default - FROM `'.GROUPS_TABLE.'` - WHERE id = '.$group.' - ;'; - list($groupname, $is_default) = pwg_db_fetch_row(pwg_query($query)); - - // update of the group - $query = ' - UPDATE `'.GROUPS_TABLE.'` - SET is_default = \''.boolean_to_string(!get_boolean($is_default)).'\' - WHERE id = '.$group.' - ;'; - pwg_query($query); - - pwg_activity('group', $group, 'edit', array('action'=>$action)); - - $page['infos'][] = l10n('group "%s" updated', $groupname); - } - } - invalidate_user_cache(); -} // +-----------------------------------------------------------------------+ // | template init | // +-----------------------------------------------------------------------+ @@ -373,6 +48,7 @@ $template->assign( 'F_ADD_ACTION' => get_root_url().'admin.php?page=group_list', 'U_HELP' => get_root_url().'admin/popuphelp.php?page=group_list', 'PWG_TOKEN' => get_pwg_token(), + 'CACHE_KEYS' => get_admin_client_cache_keys(array('groups', 'users')), ) ); @@ -389,6 +65,7 @@ $result = pwg_query($query); $admin_url = get_root_url().'admin.php?page='; $perm_url = $admin_url.'group_perm&group_id='; +$users_url = $admin_url.'user_list&group='; $del_url = $admin_url.'group_list&delete='; $toggle_is_default_url = $admin_url.'group_list&toggle_is_default='; @@ -418,6 +95,7 @@ SELECT u.'. $conf['user_fields']['username'].' AS username 'MEMBERS' => l10n_dec('%d member', '%d members', count($members)), 'U_DELETE' => $del_url.$row['id'].'&pwg_token='.get_pwg_token(), 'U_PERM' => $perm_url.$row['id'], + 'U_USERS' => $users_url.$row['id'], 'U_ISDEFAULT' => $toggle_is_default_url.$row['id'].'&pwg_token='.get_pwg_token(), ) ); diff --git a/admin/group_perm.php b/admin/group_perm.php index 667479ca1..079831dee 100644 --- a/admin/group_perm.php +++ b/admin/group_perm.php @@ -18,19 +18,26 @@ include_once(PHPWG_ROOT_PATH.'admin/include/functions.php'); // +-----------------------------------------------------------------------+ check_status(ACCESS_ADMINISTRATOR); +if (!empty($_POST)) +{ + check_pwg_token(); + check_input_parameter('cat_true', $_POST, true, PATTERN_ID); + check_input_parameter('cat_false', $_POST, true, PATTERN_ID); +} + // +-----------------------------------------------------------------------+ // | variables init | // +-----------------------------------------------------------------------+ -if (isset($_GET['group_id']) and is_numeric($_GET['group_id'])) +if (!isset($_GET['group_id'])) { - $page['group'] = $_GET['group_id']; -} -else -{ - die('group_id URL parameter is missing'); + fatal_error('group_id URL parameter is missing'); } +check_input_parameter('group_id', $_GET, false, PATTERN_ID); + +$page['group'] = $_GET['group_id']; + // +-----------------------------------------------------------------------+ // | updates | // +-----------------------------------------------------------------------+ @@ -157,6 +164,8 @@ $query_false.= ' ;'; display_select_cat_wrapper($query_false,array(),'category_option_false'); +$template->assign('PWG_TOKEN', get_pwg_token()); + // +-----------------------------------------------------------------------+ // | html code display | // +-----------------------------------------------------------------------+ diff --git a/admin/include/add_core_tabs.inc.php b/admin/include/add_core_tabs.inc.php index 924780b37..628cea866 100644 --- a/admin/include/add_core_tabs.inc.php +++ b/admin/include/add_core_tabs.inc.php @@ -32,8 +32,8 @@ function add_core_tabs($sheets, $tab_id) case 'albums': global $my_base_url; $sheets['list'] = array('caption' => ''.l10n('List'), 'url' => $my_base_url.'cat_list'); - $sheets['move'] = array('caption' => ''.l10n('Move'), 'url' => $my_base_url.'cat_move'); $sheets['permalinks'] = array('caption' => ''.l10n('Permalinks'), 'url' => $my_base_url.'permalinks'); + $sheets['search'] = array('caption' => ''.l10n('Search'), 'url' => $my_base_url.'cat_search'); break; case 'batch_manager': @@ -149,6 +149,10 @@ function add_core_tabs($sheets, $tab_id) $sheets['pwg'] = array('caption' => l10n('Piwigo Update'), 'url' => $my_base_url); $sheets['ext'] = array('caption' => l10n('Extensions Update'), 'url' => $my_base_url.'&tab=ext'); break; + case 'site_update': + global $my_base_url; + $sheets['synchronization'] = array('caption' => l10n('Database synchronization with files'), 'url' => $my_base_url.'site_update&site=1'); + break; } return $sheets; diff --git a/admin/include/configuration_sizes_process.inc.php b/admin/include/configuration_sizes_process.inc.php index cc2d35652..9d936858a 100644 --- a/admin/include/configuration_sizes_process.inc.php +++ b/admin/include/configuration_sizes_process.inc.php @@ -250,7 +250,7 @@ else $template->append( 'sizes', array( - $field => $_POST[$field] + $field => strip_tags($_POST[$field]) // strip_tags prevents from XSS attempt ), true ); diff --git a/admin/include/functions.php b/admin/include/functions.php index 5d6958afc..3d8ffa756 100644 --- a/admin/include/functions.php +++ b/admin/include/functions.php @@ -989,15 +989,20 @@ SELECT uppercats /** */ -function get_category_representant_properties($image_id) +function get_category_representant_properties($image_id, $size = NULL) { $query = ' SELECT id,representative_ext,path FROM '.IMAGES_TABLE.' WHERE id = '.$image_id.' ;'; + $row = pwg_db_fetch_assoc(pwg_query($query)); - $src = DerivativeImage::thumb_url($row); + if ($size == NULL) { + $src = DerivativeImage::thumb_url($row); + } else { + $src = DerivativeImage::url($size, $row); + } $url = get_root_url().'admin.php?page=photo-'.$image_id; return array( @@ -1571,7 +1576,7 @@ SELECT id, uppercats, global_rank, visible, status WHERE cat_id = '.$insert['id_uppercat'].' ;'; $granted_users = query2array($query, null, 'user_id'); - add_permission_on_category($inserted_id, array_unique(array_merge(get_admins(), array($user['id']), $granted_users))); + add_permission_on_category($inserted_id, $granted_users); } elseif ('private' == $insert['status']) { @@ -1582,7 +1587,7 @@ SELECT id, uppercats, global_rank, visible, status pwg_activity('album', $inserted_id, 'add'); return array( - 'info' => l10n('Virtual album added'), + 'info' => l10n('Album added'), 'id' => $inserted_id, ); } @@ -2454,6 +2459,57 @@ SELECT name return $groupname; } +function delete_groups($group_ids) +{ + + if (count($group_ids) == 0) + { + trigger_error('There is no group to delete', E_USER_WARNING); + return false; + } + + $group_id_string = implode(',', $group_ids); + + // destruction of the access linked to the group + $query = ' +DELETE + FROM '. GROUP_ACCESS_TABLE .' + WHERE group_id IN ('. $group_id_string .') +;'; + pwg_query($query); + + // destruction of the users links for this group + $query = ' +DELETE + FROM '. USER_GROUP_TABLE .' + WHERE group_id IN ('. $group_id_string .') +;'; + pwg_query($query); + + $query = ' +SELECT id, name + FROM `'. GROUPS_TABLE .'` + WHERE id IN ('. $group_id_string .') +;'; + + $group_list = query2array($query, 'id', 'name'); + $groupids = array_keys($group_list); + + // destruction of the group + $query = ' +DELETE + FROM `'. GROUPS_TABLE .'` + WHERE id IN ('. $group_id_string .') +;'; + pwg_query($query); + + trigger_notify('delete_group', $groupids); + pwg_activity('group', $groupids, 'delete'); + + + return $group_list; +} + /** * Returns the username corresponding to the given user identifier if exists. * @@ -2521,6 +2577,7 @@ function get_active_menu($menu_page) case 'cat_list': case 'cat_move': case 'cat_options': + case 'cat_search': case 'permalinks': return 1; @@ -2531,10 +2588,6 @@ function get_active_menu($menu_page) case 'notification_by_mail': return 2; - case 'plugins': - case 'plugin': - return 3; - case 'site_manager': case 'site_update': case 'stats': @@ -2542,7 +2595,7 @@ function get_active_menu($menu_page) case 'maintenance': case 'comments': case 'updates': - return 4; + return 3; case 'configuration': case 'derivatives': @@ -2551,10 +2604,10 @@ function get_active_menu($menu_page) case 'themes': case 'theme': case 'languages': - return 5; + return 4; default: - return 0; + return -1; } } diff --git a/admin/include/functions_history.inc.php b/admin/include/functions_history.inc.php index 303e47c2b..43996c166 100644 --- a/admin/include/functions_history.inc.php +++ b/admin/include/functions_history.inc.php @@ -400,6 +400,7 @@ SELECT if ($count <= $conf['history_autopurge_keep_lines']) { + history_remove_summarized_column(); return; // no need to purge for now } @@ -463,6 +464,39 @@ DELETE WHERE id < '.$history_id_delete_before.' ;'; pwg_query($query); + + history_remove_summarized_column(); +} + +function history_remove_summarized_column() +{ + global $conf; + + if (isset($conf['history_summarized_dropped']) and $conf['history_summarized_dropped']) + { + return; + } + + $query = ' +SELECT + COUNT(*) + FROM '.HISTORY_TABLE.' +;'; + list($count) = pwg_db_fetch_row(pwg_query($query)); + + if ($count > $conf['history_autopurge_keep_lines']+$conf['history_autopurge_blocksize']) + { + // it's not yet time to remove history.summarized + return; + } + + $result = pwg_query('SHOW COLUMNS FROM `'.HISTORY_TABLE.'` LIKE "summarized";'); + if (pwg_db_num_rows($result)) + { + pwg_query('ALTER TABLE `'.HISTORY_TABLE.'` DROP COLUMN `summarized`;'); + } + + conf_update_param('history_summarized_dropped', true); } add_event_handler('get_history', 'get_history'); diff --git a/admin/include/functions_upgrade.php b/admin/include/functions_upgrade.php index 8581527cc..e36960dcd 100644 --- a/admin/include/functions_upgrade.php +++ b/admin/include/functions_upgrade.php @@ -100,9 +100,7 @@ function deactivate_non_standard_themes() global $page, $conf; $standard_themes = array( - 'clear', - 'Sylvia', - 'dark', + 'modus', 'elegant', 'smartpocket', ); @@ -146,9 +144,26 @@ SELECT theme // if the default theme has just been deactivated, let's set another core theme as default if (in_array($default_theme, $theme_ids)) { + // make sure default Piwigo theme is active + $query = ' +SELECT + COUNT(*) + FROM '.PREFIX_TABLE.'themes + WHERE id = \''.PHPWG_DEFAULT_TEMPLATE.'\' +;'; + list($counter) = pwg_db_fetch_row(pwg_query($query)); + if ($counter < 1) + { + // we need to activate theme first + include_once(PHPWG_ROOT_PATH.'admin/include/themes.class.php'); + $themes = new themes(); + $themes->perform_action('activate', PHPWG_DEFAULT_TEMPLATE); + } + + // then associate it to default user $query = ' UPDATE '.PREFIX_TABLE.'user_infos - SET theme = \'elegant\' + SET theme = \''.PHPWG_DEFAULT_TEMPLATE.'\' WHERE user_id = '.$conf['default_user_id'].' ;'; pwg_query($query); diff --git a/admin/include/functions_upload.inc.php b/admin/include/functions_upload.inc.php index 4869eb795..eed0a236e 100644 --- a/admin/include/functions_upload.inc.php +++ b/admin/include/functions_upload.inc.php @@ -237,11 +237,13 @@ SELECT } else { + unlink($source_filepath); die('unexpected file type'); } } else { + unlink($source_filepath); die('forbidden file type'); } @@ -398,6 +400,8 @@ SELECT fetchRemote($derivative_url, $dest); + trigger_notify('loc_end_add_uploaded_file', $image_infos); + return $image_id; } diff --git a/admin/include/mysqldump.php b/admin/include/mysqldump.php deleted file mode 100644 index 1432675c8..000000000 --- a/admin/include/mysqldump.php +++ /dev/null @@ -1,421 +0,0 @@ - -* $connection = @mysql_connect($dbhost,$dbuser,$dbpsw); -* $dumper = new MySQLDump($dbname,'filename.sql',false,false); -* $dumper->doDump(); -* -* -* Special thanks to: -* - Andrea Ingaglio helping in development of all class code -* - Dylan Pugh for precious advices halfing the size of the output file and for helping in debug -* -* @name MySQLDump -* @author Daniele Viganò - CreativeFactory.it -* @version 2.20 - 02/11/2007 -* @license http://opensource.org/licenses/gpl-license.php GNU Public License -*/ - -class MySQLDump { - /** - * @access private - */ - var $database = null; - - /** - * @access private - */ - var $compress = false; - - /** - * @access private - */ - var $hexValue = false; - - /** - * The output filename - * @access private - */ - var $filename = null; - - /** - * The pointer of the output file - * @access private - */ - var $file = null; - - /** - * @access private - */ - var $isWritten = false; - - /** - * Class constructor - * @param string $db The database name - * @param string $filepath The file where the dump will be written - * @param boolean $compress It defines if the output file is compress (gzip) or not - * @param boolean $hexValue It defines if the outup values are base-16 or not - */ - function __construct($db = null, $filepath = 'dump.sql', $compress = false, $hexValue = false){ - $this->compress = $compress; - if ( !$this->setOutputFile($filepath) ) - return false; - return $this->setDatabase($db); - } - - /** - * Sets the database to work on - * @param string $db The database name - */ - function setDatabase($db){ - $this->database = $db; - if ( !@mysql_select_db($this->database) ) - return false; - return true; - } - - /** - * Returns the database where the class is working on - * @return string - */ - function getDatabase(){ - return $this->database; - } - - /** - * Sets the output file type (It can be made only if the file hasn't been already written) - * @param boolean $compress If it's true, the output file will be compressed - */ - function setCompress($compress){ - if ( $this->isWritten ) - return false; - $this->compress = $compress; - $this->openFile($this->filename); - return true; - } - - /** - * Returns if the output file is or not compressed - * @return boolean - */ - function getCompress(){ - return $this->compress; - } - - /** - * Sets the output file - * @param string $filepath The file where the dump will be written - */ - function setOutputFile($filepath){ - if ( $this->isWritten ) - return false; - $this->filename = $filepath; - $this->file = $this->openFile($this->filename); - return $this->file; - } - - /** - * Returns the output filename - * @return string - */ - function getOutputFile(){ - return $this->filename; - } - - /** - * Writes to file the $table's structure - * @param string $table The table name - */ - function getTableStructure($table){ - if ( !$this->setDatabase($this->database) ) - return false; - // Structure Header - $structure = "-- \n"; - $structure .= "-- Table structure for table `{$table}` \n"; - $structure .= "-- \n\n"; - // Dump Structure - $structure .= 'DROP TABLE IF EXISTS `'.$table.'`;'."\n"; - $structure .= "CREATE TABLE `".$table."` (\n"; - $records = @mysql_query('SHOW FIELDS FROM `'.$table.'`'); - if ( @mysql_num_rows($records) == 0 ) - return false; - while ( $record = mysql_fetch_assoc($records) ) { - $structure .= '`'.$record['Field'].'` '.$record['Type']; - if ( isset($record['Default']) ) - $structure .= ' DEFAULT \''.$record['Default'].'\''; - if ( @strcmp($record['Null'],'YES') != 0 ) - $structure .= ' NOT NULL'; - elseif ( is_null($record['Default']) ) - $structure .= ' DEFAULT NULL'; - if ( !empty($record['Extra']) ) - $structure .= ' '.$record['Extra']; - $structure .= ",\n"; - } - $structure = @ereg_replace(",\n$", null, $structure); - - // Save all Column Indexes - $structure .= $this->getSqlKeysTable($table); - $structure .= "\n)"; - - //Save table engine - $records = @mysql_query("SHOW TABLE STATUS LIKE '".$table."'"); - - if ( $record = @mysql_fetch_assoc($records) ) { - if ( !empty($record['Engine']) ) - $structure .= ' ENGINE='.$record['Engine']; - if ( !empty($record['Auto_increment']) ) - $structure .= ' AUTO_INCREMENT='.$record['Auto_increment']; - } - - $structure .= ";\n\n-- --------------------------------------------------------\n\n"; - $this->saveToFile($this->file,$structure); - } - - /** - * Writes to file the $table's data - * @param string $table The table name - * @param boolean $hexValue It defines if the output is base 16 or not - */ - function getTableData($table,$hexValue = true) { - if ( !$this->setDatabase($this->database) ) - return false; - // Header - $data = "-- \n"; - $data .= "-- Dumping data for table `$table` \n"; - $data .= "-- \n\n"; - - $records = mysql_query('SHOW FIELDS FROM `'.$table.'`'); - $num_fields = @mysql_num_rows($records); - if ( $num_fields == 0 ) - return false; - // Field names - $selectStatement = "SELECT "; - $insertStatement = "INSERT INTO `$table` ("; - $hexField = array(); - for ($x = 0; $x < $num_fields; $x++) { - $record = @mysql_fetch_assoc($records); - if ( ($hexValue) && ($this->isTextValue($record['Type'])) ) { - $selectStatement .= 'HEX(`'.$record['Field'].'`)'; - $hexField [$x] = true; - } - else - $selectStatement .= '`'.$record['Field'].'`'; - $insertStatement .= '`'.$record['Field'].'`'; - $insertStatement .= ", "; - $selectStatement .= ", "; - } - $insertStatement = @substr($insertStatement,0,-2).') VALUES'."\n"; - $selectStatement = @substr($selectStatement,0,-2).' FROM `'.$table.'`'; - - $records = @mysql_query($selectStatement); - $num_rows = @mysql_num_rows($records); - $num_fields = @mysql_num_fields($records); - // Dump data - if ( $num_rows > 0 ) { - $data .= $insertStatement; - for ($i = 0; $i < $num_rows; $i++) { - $record = @mysql_fetch_assoc($records); - $data .= ' ('; - for ($j = 0; $j < $num_fields; $j++) { - $field_name = @mysql_field_name($records, $j); - if ( @$hexField[$j] && (@strlen($record[$field_name]) > 0) ) - $data .= "0x".$record[$field_name]; - elseif (is_null($record[$field_name])) - $data .= "NULL"; - else - $data .= "'".@str_replace('\"','"',@mysql_real_escape_string($record[$field_name]))."'"; - $data .= ','; - } - $data = @substr($data,0,-1).")"; - $data .= ( $i < ($num_rows-1) ) ? ',' : ';'; - $data .= "\n"; - //if data in greather than 1MB save - if (strlen($data) > 1048576) { - $this->saveToFile($this->file,$data); - $data = ''; - } - } - $data .= "\n-- --------------------------------------------------------\n\n"; - $this->saveToFile($this->file,$data); - } - } - - /** - * Writes to file all the selected database tables structure - * @return boolean - */ - function getDatabaseStructure(){ - $records = @mysql_query('SHOW TABLES'); - if ( @mysql_num_rows($records) == 0 ) - return false; - $structure = ''; - while ( $record = @mysql_fetch_row($records) ) { - $structure .= $this->getTableStructure($record[0]); - } - return true; - } - - /** - * Writes to file all the selected database tables data - * @param boolean $hexValue It defines if the output is base-16 or not - */ - function getDatabaseData($hexValue = true){ - $records = @mysql_query('SHOW TABLES'); - if ( @mysql_num_rows($records) == 0 ) - return false; - while ( $record = @mysql_fetch_row($records) ) { - $this->getTableData($record[0],$hexValue); - } - } - - /** - * Writes to file the selected database dump - */ - function doDump() { - $this->saveToFile($this->file,"SET FOREIGN_KEY_CHECKS = 0;\n\n"); - $this->getDatabaseStructure(); - $this->getDatabaseData($this->hexValue); - $this->saveToFile($this->file,"SET FOREIGN_KEY_CHECKS = 1;\n\n"); - $this->closeFile($this->file); - return true; - } - - /** - * @deprecated Look at the doDump() method - */ - function writeDump($filename) { - if ( !$this->setOutputFile($filename) ) - return false; - $this->doDump(); - $this->closeFile($this->file); - return true; - } - - /** - * @access private - */ - function getSqlKeysTable ($table) { - $primary = ""; - $unique = array(); - $index = array(); - $fulltext = array(); - $results = mysql_query("SHOW KEYS FROM `{$table}`"); - if ( @mysql_num_rows($results) == 0 ) - return false; - while($row = mysql_fetch_object($results)) { - if (($row->Key_name == 'PRIMARY') AND ($row->Index_type == 'BTREE')) { - if ( $primary == "" ) - $primary = " PRIMARY KEY (`{$row->Column_name}`"; - else - $primary .= ", `{$row->Column_name}`"; - } - if (($row->Key_name != 'PRIMARY') AND ($row->Non_unique == '0') AND ($row->Index_type == 'BTREE')) { - if ( (empty($unique)) OR (empty($unique[$row->Key_name])) ) - $unique[$row->Key_name] = " UNIQUE KEY `{$row->Key_name}` (`{$row->Column_name}`"; - else - $unique[$row->Key_name] .= ", `{$row->Column_name}`"; - } - if (($row->Key_name != 'PRIMARY') AND ($row->Non_unique == '1') AND ($row->Index_type == 'BTREE')) { - if ( (empty($index)) OR (empty($index[$row->Key_name])) ) - $index[$row->Key_name] = " KEY `{$row->Key_name}` (`{$row->Column_name}`"; - else - $index[$row->Key_name] .= ", `{$row->Column_name}`"; - } - if (($row->Key_name != 'PRIMARY') AND ($row->Non_unique == '1') AND ($row->Index_type == 'FULLTEXT')) { - if ( (empty($fulltext)) OR (empty($fulltext[$row->Key_name])) ) - $fulltext[$row->Key_name] = " FULLTEXT `{$row->Key_name}` (`{$row->Column_name}`"; - else - $fulltext[$row->Key_name] .= ", `{$row->Column_name}`"; - } - } - $sqlKeyStatement = ''; - // generate primary, unique, key and fulltext - if ( $primary != "" ) { - $sqlKeyStatement .= ",\n"; - $primary .= ")"; - $sqlKeyStatement .= $primary; - } - if (!empty($unique)) { - foreach ($unique as $keyName => $keyDef) { - $sqlKeyStatement .= ",\n"; - $keyDef .= ")"; - $sqlKeyStatement .= $keyDef; - - } - } - if (!empty($index)) { - foreach ($index as $keyName => $keyDef) { - $sqlKeyStatement .= ",\n"; - $keyDef .= ")"; - $sqlKeyStatement .= $keyDef; - } - } - if (!empty($fulltext)) { - foreach ($fulltext as $keyName => $keyDef) { - $sqlKeyStatement .= ",\n"; - $keyDef .= ")"; - $sqlKeyStatement .= $keyDef; - } - } - return $sqlKeyStatement; - } - - /** - * @access private - */ - function isTextValue($field_type) { - switch ($field_type) { - case "tinytext": - case "text": - case "mediumtext": - case "longtext": - case "binary": - case "varbinary": - case "tinyblob": - case "blob": - case "mediumblob": - case "longblob": - return True; - break; - default: - return False; - } - } - - /** - * @access private - */ - function openFile($filename) { - $file = false; - if ( $this->compress ) - $file = @gzopen($filename, "w9"); - else - $file = @fopen($filename, "w"); - return $file; - } - - /** - * @access private - */ - function saveToFile($file, $data) { - if ( $this->compress ) - @gzwrite($file, $data); - else - @fwrite($file, $data); - $this->isWritten = true; - } - - /** - * @access private - */ - function closeFile($file) { - if ( $this->compress ) - @gzclose($file); - else - @fclose($file); - } -} -?> diff --git a/admin/include/plugins.class.php b/admin/include/plugins.class.php index a5c69e590..76a3b04f3 100644 --- a/admin/include/plugins.class.php +++ b/admin/include/plugins.class.php @@ -285,6 +285,7 @@ DELETE FROM '. PLUGINS_TABLE .' 'uri'=>'', 'description'=>'', 'author'=>'', + 'hasSettings'=>false, ); $plg_data = file_get_contents($path.'/main.inc.php', null, null, 0, 2048); @@ -316,6 +317,10 @@ DELETE FROM '. PLUGINS_TABLE .' { $plugin['author uri'] = trim($val[1]); } + if (preg_match("/Has Settings:\\s*(true|True)/", $plg_data, $val)) + { + $plugin['hasSettings'] = true; + } if (!empty($plugin['uri']) and strpos($plugin['uri'] , 'extension_view.php?eid=')) { list( , $extension) = explode('extension_view.php?eid=', $plugin['uri']); diff --git a/admin/include/updates.class.php b/admin/include/updates.class.php index 82d52e1bb..57530e2a7 100644 --- a/admin/include/updates.class.php +++ b/admin/include/updates.class.php @@ -1,10 +1,10 @@ -types = array($page); } - $this->default_themes = array('clear', 'dark', 'Sylvia', 'elegant', 'smartpocket'); + $this->default_themes = array('modus', 'elegant', 'smartpocket'); $this->default_plugins = array('AdminTools', 'TakeATour', 'language_switch', 'LocalFilesEditor'); foreach ($this->types as $type) @@ -77,6 +77,7 @@ class updates $url = PHPWG_URL.'/download/all_versions.php'; $url.= '?rand='.md5(uniqid(rand(), true)); // Avoid server cache + $url.= '&show_requirements'; if (@fetchRemote($url, $result) and $all_versions = @explode("\n", $result) @@ -84,29 +85,34 @@ class updates { $new_versions['piwigo.org-checked'] = true; $last_version = trim($all_versions[0]); + list($last_version_number, $last_version_php) = explode('/', trim($all_versions[0])); - if (version_compare(PHPWG_VERSION, $last_version, '<')) + if (version_compare(PHPWG_VERSION, $last_version_number, '<')) { - $last_branch = get_branch_from_version($last_version); + $last_branch = get_branch_from_version($last_version_number); if ($last_branch == $actual_branch) { - $new_versions['minor'] = $last_version; + $new_versions['minor'] = $last_version_number; + $new_versions['minor_php'] = $last_version_php; } else { - $new_versions['major'] = $last_version; + $new_versions['major'] = $last_version_number; + $new_versions['major_php'] = $last_version_php; // Check if new version exists in same branch foreach ($all_versions as $version) { - $branch = get_branch_from_version($version); + list($version_number, $version_php) = explode('/', trim($version)); + $branch = get_branch_from_version($version_number); if ($branch == $actual_branch) { - if (version_compare(PHPWG_VERSION, $version, '<')) + if (version_compare(PHPWG_VERSION, $version_number, '<')) { - $new_versions['minor'] = $version; + $new_versions['minor'] = $version_number; + $new_versions['minor_php'] = $version_php; } break; } @@ -448,60 +454,6 @@ class updates } } - static function dump_database($include_history=false) - { - global $page, $conf, $cfgBase; - - if (version_compare(PHPWG_VERSION, '2.1', '<')) - { - $conf['db_base'] = $cfgBase; - } - - include(PHPWG_ROOT_PATH.'admin/include/mysqldump.php'); - - $path = PHPWG_ROOT_PATH.$conf['data_location'].'update'; - - if (@mkgetdir($path) - and ($backupFile = tempnam($path, 'sql')) - and ($dumper = new MySQLDump($conf['db_base'],$backupFile,false,false))) - { - foreach (get_defined_constants() as $constant => $value) - { - if (preg_match('/_TABLE$/', $constant)) - { - $dumper->getTableStructure($value); - if ($constant == 'HISTORY_TABLE' and !$include_history) - { - continue; - } - $dumper->getTableData($value); - } - } - } - - if (@filesize($backupFile)) - { - $http_headers = array( - 'Content-Length: '.@filesize($backupFile), - 'Content-Type: text/x-sql', - 'Content-Disposition: attachment; filename="database.sql";', - 'Content-Transfer-Encoding: binary', - ); - - foreach ($http_headers as $header) { - header($header); - } - - @readfile($backupFile); - deltree(PHPWG_ROOT_PATH.$conf['data_location'].'update'); - exit(); - } - else - { - $page['errors'][] = l10n('Unable to dump database.'); - } - } - static function upgrade_to($upgrade_to, &$step, $check_current_version=true) { global $page, $conf, $template; diff --git a/admin/intro.php b/admin/intro.php index 09ec496b5..0b5bfe82c 100644 --- a/admin/intro.php +++ b/admin/intro.php @@ -44,28 +44,6 @@ $tabsheet->assign(); // | actions | // +-----------------------------------------------------------------------+ -//check if images have no md5sum in database -$query = ' -SELECT COUNT(*) - FROM '.CATEGORIES_TABLE.' - WHERE dir IS NOT NULL -;'; -list($counter) = pwg_db_fetch_row(pwg_query($query)); -if ($counter > 0) -{ - $query = ' - SELECT COUNT(*) - FROM '.IMAGES_TABLE.' - WHERE storage_category_id IS NOT NULL - AND md5sum IS NULL - ;'; - list($counter) = pwg_db_fetch_row(pwg_query($query)); - if ($counter > 0) - { - $page['warnings'][] = ''.l10n('Some checksums are missing.').''; - } -} - if (isset($page['nb_pending_comments'])) { $message = l10n('User comments').' '; @@ -209,6 +187,220 @@ SELECT MIN(date_available) trigger_notify('loc_end_intro'); +// +-----------------------------------------------------------------------+ +// | get activity data | +// +-----------------------------------------------------------------------+ + +$nb_weeks = $conf['dashboard_activity_nb_weeks']; +$date = new DateTime(); +//Array for the JS tooltip +$activity_last_weeks = array(); +//Count mondays +$mondays = 0; +//Get mondays number for the chart legend +$week_number = array(); +//Array for sorting days in circle size +$temp_data = array(); + +//Get data from $nb_weeks last weeks +while ($mondays < $nb_weeks) +{ + if ($date->format('D') == 'Mon') + { + $week_number[] = $date->format('W'); + $mondays += 1; + } + + $date->sub(new DateInterval('P1D')); +} + +$week_number = array_reverse($week_number); + +$date_string = $date->format('Y-m-d'); +$query = ' +SELECT * + FROM `'.ACTIVITY_TABLE.'` + WHERE occured_on >= "'.$date_string.'%" +;'; + +$result = query2array($query, null); + +foreach ($result as $row) +{ + $day_date = new DateTime($row['occured_on']); + + $week = 0; + for ($i=0; $i < $nb_weeks; $i++) + { + if ($week_number[$i] == $day_date->format('W')) + { + $week = $i; + } + } + $day_nb = $day_date->format('N'); + + @$activity_last_weeks[$week][$day_nb]['details'][ucfirst($row['object'])][ucfirst($row['action'])] += 1; + @$activity_last_weeks[$week][$day_nb]['number'] += 1; + @$activity_last_weeks[$week][$day_nb]['date'] = format_date($day_date->getTimestamp()); +} + +foreach($activity_last_weeks as $week => $i) +{ + foreach($i as $day => $j) + { + $details = $j['details']; + ksort($details); + $activity_last_weeks[$week][$day]['details'] = $details; + if ($j['number'] > 0) + { + $temp_data[] = array('x' => $j['number'], 'd'=>$day, 'w'=>$week); + } + } +} + +// Algorithm to sort days in circle size : +// * Get the difference between sorted numbers of activity per day (only not null numbers) +// * Split days max $circle_sizes time on the biggest difference (but not below 120%) +// * Set the sizes according to the groups created + +//Function to sort days by number of activity +function cmp_day($a, $b) +{ + if ($a['x'] == $b['x']) + { + return 0; + } + return ($a['x'] < $b['x']) ? -1 : 1; +} + +usort($temp_data, 'cmp_day'); + +//Get the percent difference +$diff_x = array(); + +for ($i=1; $i < count($temp_data); $i++) +{ + $diff_x[] = $temp_data[$i]['x']/$temp_data[$i-1]['x']*100; +} + +$split = 0; +//Split (split represented by -1) +if (count($diff_x) > 0) +{ + while (max($diff_x) > 120) + { + $diff_x[array_search(max($diff_x), $diff_x)] = -1; + $split++; + } +} + +//Fill empty chart data for the template +$chart_data = array(); +for ($i=0; $i < $nb_weeks; $i++) +{ + for ($j=1; $j <= 7; $j++) + { + $chart_data[$i][$j] = 0; + } +} + +$size = 1; +$chart_data[$temp_data[0]['w']][$temp_data[0]['d']] = $size; +//Set sizes in chart data +for ($i=1; $i < count($temp_data); $i++) +{ + if ($diff_x[$i-1] == -1) + { + $size++; + } + $chart_data[$temp_data[$i]['w']][$temp_data[$i]['d']] = $size; +} + +//Assign data for the template +$template->assign('ACTIVITY_WEEK_NUMBER',$week_number); +$template->assign('ACTIVITY_LAST_WEEKS', $activity_last_weeks); +$template->assign('ACTIVITY_CHART_DATA',$chart_data); +$template->assign('ACTIVITY_CHART_NUMBER_SIZES',$size); + +// +-----------------------------------------------------------------------+ +// | get storage data | +// +-----------------------------------------------------------------------+ + +$video_format = array('webm','webmv','ogg','ogv','mp4','m4v'); +$data_storage = array(); + +//Select files in Image_Table +$query = ' +SELECT file, filesize + FROM `'.IMAGES_TABLE.'` +;'; + +$result = query2array($query, null); + +foreach ($result as $file) +{ + $tabString = explode('.',$file['file']); + $ext = $tabString[count($tabString) -1]; + $size = $file['filesize']; + if (in_array($ext, $conf['picture_ext'])) + { + if (isset($data_storage['Photos'])) + { + $data_storage['Photos'] += $size; + } else { + $data_storage['Photos'] = $size; + } + } elseif (in_array($ext, $video_format)) { + if (isset($data_storage['Videos'])) + { + $data_storage['Videos'] += $size; + } else { + $data_storage['Videos'] = $size; + } + } else { + if (isset($data_storage['Others'])) + { + $data_storage['Others'] += $size; + } else { + $data_storage['Others'] = $size; + } + } +} + +//Select files from format table +$query = ' +SELECT SUM(filesize) + FROM `'.IMAGE_FORMAT_TABLE.'` +;'; + +$result = query2array($query); + +if (isset($result[0]['SUM(filesize)'])) +{ + $data_storage['Formats'] = $result[0]['SUM(filesize)']; +} + +//If the host is not windows, get the cache size +if (strtoupper(substr(PHP_OS, 0, 3)) !== 'WIN') +{ + $f = './_data'; + $io = popen ( '/usr/bin/du -sk ' . $f, 'r' ); + $size = fgets ($io, 4096); + $size = substr ( $size, 0, strpos ( $size, "\t" ) ); + pclose ( $io ); + $data_storage['Cache'] = $size; +} + +//Calculate total storage +$total_storage = 0; +foreach ($data_storage as $value) +{ + $total_storage += $value; +} + +//Pass data to HTML +$template->assign('STORAGE_TOTAL',$total_storage); +$template->assign('STORAGE_CHART_DATA',$data_storage); // +-----------------------------------------------------------------------+ // | sending html code | // +-----------------------------------------------------------------------+ diff --git a/admin/notification_by_mail.php b/admin/notification_by_mail.php index a75d64f78..d6b556b43 100644 --- a/admin/notification_by_mail.php +++ b/admin/notification_by_mail.php @@ -496,12 +496,24 @@ if (!isset($_POST) or (count($_POST) ==0)) // +-----------------------------------------------------------------------+ // | Treatment of tab post | // +-----------------------------------------------------------------------+ + +if (!empty($_POST)) +{ + check_pwg_token(); +} + switch ($page['mode']) { case 'param' : { if (isset($_POST['param_submit'])) { + $_POST['nbm_send_mail_as'] = strip_tags($_POST['nbm_send_mail_as']); + + check_input_parameter('nbm_send_html_mail', $_POST, false, '/^(true|false)$/'); + check_input_parameter('nbm_send_detailed_content', $_POST, false, '/^(true|false)$/'); + check_input_parameter('nbm_send_recent_post_dates', $_POST, false, '/^(true|false)$/'); + $updated_param_count = 0; // Update param $result = pwg_query('select param, value from '.CONFIG_TABLE.' where param like \'nbm\\_%\''); @@ -509,17 +521,8 @@ switch ($page['mode']) { if (isset($_POST[$nbm_user['param']])) { - $value = $_POST[$nbm_user['param']]; - - $query = ' -update -'.CONFIG_TABLE.' -set - value = \''. str_replace("\'", "''", $value).'\' -where - param = \''.$nbm_user['param'].'\';'; - pwg_query($query); - $updated_param_count += 1; + conf_update_param($nbm_user['param'], $_POST[$nbm_user['param']], true); + $updated_param_count++; } } @@ -527,9 +530,6 @@ where '%d parameter was updated.', '%d parameters were updated.', $updated_param_count ); - - // Reload conf with new values - load_conf_from_db('param like \'nbm\\_%\''); } } case 'subscribe' : @@ -574,6 +574,7 @@ $template->assign ( array ( + 'PWG_TOKEN' => get_pwg_token(), 'U_HELP' => get_root_url().'admin/popuphelp.php?page=notification_by_mail', 'F_ACTION'=> $base_url.get_query_string_diff(array()) ) diff --git a/admin/permalinks.php b/admin/permalinks.php index aecaad636..eaebb6c64 100644 --- a/admin/permalinks.php +++ b/admin/permalinks.php @@ -26,7 +26,13 @@ function parse_sort_variables( { $base_url .= $is_first ? '?' : '&'; $is_first = false; - $base_url .= $key.'='.urlencode($value); + + if (!in_array($key, array('page', 'psf', 'dpsf', 'pwg_token'))) + { + fatal_error('unexpected URL get key'); + } + + $base_url .= urlencode($key).'='.urlencode($value); } } diff --git a/admin/picture_modify.php b/admin/picture_modify.php index 27663b7d0..e5cc2feee 100644 --- a/admin/picture_modify.php +++ b/admin/picture_modify.php @@ -235,7 +235,7 @@ $template->assign( 'PATH'=>$row['path'], - 'TN_SRC' => DerivativeImage::url(IMG_THUMB, $src_image), + 'TN_SRC' => DerivativeImage::url(IMG_MEDIUM, $src_image), 'FILE_SRC' => DerivativeImage::url(IMG_LARGE, $src_image), 'NAME' => @@ -246,6 +246,8 @@ $template->assign( 'DIMENSIONS' => @$row['width'].' * '.@$row['height'], + 'FORMAT' => ($row['width'] >= $row['height'])? 1:0,//0:horizontal, 1:vertical + 'FILESIZE' => @$row['filesize'].' KB', 'REGISTRATION_DATE' => format_date($row['date_available']), @@ -280,13 +282,17 @@ while ($user_row = pwg_db_fetch_assoc($result)) $row['added_by'] = $user_row['username']; } +$extTab = explode('.',$row['file']); + $intro_vars = array( - 'file' => l10n('Original file : %s', $row['file']), - 'add_date' => l10n('Posted %s on %s', time_since($row['date_available'], 'year'), format_date($row['date_available'], array('day', 'month', 'year'))), + 'file' => l10n('%s', $row['file']), + 'date' => l10n('Posted the %s', format_date($row['date_available'], array('day', 'month', 'year'))), + 'age' => l10n(ucfirst(time_since($row['date_available'], 'year'))), 'added_by' => l10n('Added by %s', $row['added_by']), 'size' => $row['width'].'×'.$row['height'].' pixels, '.sprintf('%.2f', $row['filesize']/1024).'MB', 'stats' => l10n('Visited %d times', $row['hit']), - 'id' => l10n('Numeric identifier : %d', $row['id']), + 'id' => l10n($row['id']), + 'ext' => l10n('%s file type',strtoupper(end($extTab))) ); if ($conf['rate'] and !empty($row['rating_score'])) @@ -416,7 +422,7 @@ else if (isset($url_img)) { - $template->assign( 'U_JUMPTO', $url_img ); + $template->assign( 'U_JUMPTO', $url_img ); } // associate to albums diff --git a/admin/plugins_installed.php b/admin/plugins_installed.php index 9878f502d..75490e538 100644 --- a/admin/plugins_installed.php +++ b/admin/plugins_installed.php @@ -83,6 +83,21 @@ if (isset($_GET['incompatible_plugins'])) exit; } +//--------------------------------------------------------Get the menu with the depreciated version + +$plugin_menu_links_deprec = trigger_change('get_admin_plugin_menu_links', array()); + +$settings_url_for_plugin_deprec = array(); + +foreach ($plugin_menu_links_deprec as $value) +{ + if (preg_match('/^admin\.php\?page=plugin-(.*)$/', $value["URL"], $matches)) { + $settings_url_for_plugin_deprec[$matches[1]] = $value["URL"]; + } elseif (preg_match('/^.*section=(.*)[\/&%].*$/', $value["URL"], $matches)) { + $settings_url_for_plugin_deprec[$matches[1]] = $value["URL"]; + } +} + // +-----------------------------------------------------------------------+ // | start template output | // +-----------------------------------------------------------------------+ @@ -91,7 +106,7 @@ $plugins->sort_fs_plugins('name'); $merged_extensions = $plugins->get_merged_extensions(); $merged_plugins = false; $tpl_plugins = array(); -$active_plugins = 0; +$count_types_plugins = array("active"=>0, "inactive"=>0, "missing"=>0, "merged"=>0); foreach($plugins->fs_plugins as $plugin_id => $fs_plugin) { @@ -102,6 +117,13 @@ foreach($plugins->fs_plugins as $plugin_id => $fs_plugin) unset($_SESSION['incompatible_plugins']); } + $setting_url = ''; + if (isset($settings_url_for_plugin_deprec[$plugin_id])) { //old version + $setting_url = $settings_url_for_plugin_deprec[$plugin_id]; + } else if ($fs_plugin['hasSettings']) { // new version + $setting_url = "admin.php?page=plugin-".$plugin_id; + } + $tpl_plugin = array( 'ID' => $plugin_id, 'NAME' => $fs_plugin['name'], @@ -111,6 +133,7 @@ foreach($plugins->fs_plugins as $plugin_id => $fs_plugin) 'AUTHOR' => $fs_plugin['author'], 'AUTHOR_URL' => @$fs_plugin['author uri'], 'U_ACTION' => sprintf($action_url, $plugin_id), + 'SETTINGS_URL' => $setting_url, ); if (isset($plugins->db_plugins_by_id[$plugin_id])) @@ -133,10 +156,7 @@ foreach($plugins->fs_plugins as $plugin_id => $fs_plugin) $merged_plugins = true; } - if ($tpl_plugin['STATE'] == 'active') - { - $active_plugins++; - } + $count_types_plugins[$tpl_plugin['STATE']]++; $tpl_plugins[] = $tpl_plugin; } @@ -184,7 +204,7 @@ usort($tpl_plugins, 'cmp'); $template->assign( array( 'plugins' => $tpl_plugins, - 'active_plugins' => $active_plugins, + 'count_types_plugins' => $count_types_plugins, 'PWG_TOKEN' => $pwg_token, 'base_url' => $base_url, 'show_details' => $show_details, diff --git a/admin/popuphelp.php b/admin/popuphelp.php index 83ac55074..a4dd88a02 100644 --- a/admin/popuphelp.php +++ b/admin/popuphelp.php @@ -61,6 +61,12 @@ $template->assign( 'HELP_CONTENT' => $help_content )); +if (isset($_GET['output']) and 'content_only' == $_GET['output']) +{ + echo $help_content; + exit(); +} + // +-----------------------------------------------------------------------+ // | html code display | // +-----------------------------------------------------------------------+ diff --git a/admin/site_update.php b/admin/site_update.php index b51b4c962..afd3d977d 100644 --- a/admin/site_update.php +++ b/admin/site_update.php @@ -67,6 +67,23 @@ else $site_reader = new LocalSiteReader($site_url); } +if (isset($page['no_md5sum_number'])) +{ + $page['messages'][] = ''.l10n('Some checksums are missing.').''; +} + +// +-----------------------------------------------------------------------+ +// | tabs | +// +-----------------------------------------------------------------------+ + +include_once(PHPWG_ROOT_PATH.'admin/include/tabsheet.class.php'); +$my_base_url = get_root_url().'admin.php?page='; + +$tabsheet = new tabsheet(); +$tabsheet->set_id('site_update'); +$tabsheet->select('synchronization'); +$tabsheet->assign(); + // +-----------------------------------------------------------------------+ // | Quick sync | // +-----------------------------------------------------------------------+ @@ -252,7 +269,7 @@ SELECT id_uppercat, MAX(`rank`)+1 AS next_rank else { $insert['uppercats'] = $insert['id']; - $insert{'rank'} = $next_rank['NULL']++; + $insert['rank'] = $next_rank['NULL']++; $insert['global_rank'] = $insert['rank']; } @@ -263,7 +280,7 @@ SELECT id_uppercat, MAX(`rank`)+1 AS next_rank ); // add the new category to $db_categories and $db_fulldirs array - $db_categories[$insert{'id'}] = + $db_categories[$insert['id']] = array( 'id' => $insert['id'], 'parent' => (isset($parent)) ? $parent : Null, @@ -273,7 +290,7 @@ SELECT id_uppercat, MAX(`rank`)+1 AS next_rank 'global_rank' => $insert['global_rank'] ); $db_fulldirs[$fulldir] = $insert['id']; - $next_rank[$insert{'id'}] = 1; + $next_rank[$insert['id']] = 1; } else { @@ -309,7 +326,7 @@ SELECT id_uppercat, MAX(`rank`)+1 AS next_rank pwg_activity('album', $category_ids, 'add', array('sync'=>true)); $category_up=implode(',',array_unique($category_up)); - if ($conf['inheritance_by_default']) + if ($conf['inheritance_by_default'] and !empty($category_up)) { $query = ' SELECT * @@ -390,13 +407,6 @@ SELECT id_uppercat, MAX(`rank`)+1 AS next_rank ); } } - foreach (get_admins() as $granted_user) - { - $insert_granted_users[] = array( - 'user_id' => $granted_user, - 'cat_id' => $ids - ); - } } } mass_inserts(GROUP_ACCESS_TABLE, array('group_id','cat_id'), $insert_granted_grps); diff --git a/admin/stats.php b/admin/stats.php index a3f0db9a0..47625c7df 100644 --- a/admin/stats.php +++ b/admin/stats.php @@ -6,9 +6,9 @@ // | file that was distributed with this source code. | // +-----------------------------------------------------------------------+ -if (!defined("PHPWG_ROOT_PATH")) +if (!defined('PHPWG_ROOT_PATH')) { - die ("Hacking attempt!"); + die ('Hacking attempt!'); } include_once(PHPWG_ROOT_PATH.'admin/include/functions.php'); @@ -18,7 +18,8 @@ include_once(PHPWG_ROOT_PATH.'admin/include/functions_history.inc.php'); // | Functions | // +-----------------------------------------------------------------------+ -function get_summary($year = null, $month = null, $day = null) +//Get the last unit of time for years, months, days and hours +function get_last($last_number=60, $type='year') { $query = ' SELECT @@ -29,42 +30,45 @@ SELECT nb_pages FROM '.HISTORY_SUMMARY_TABLE; - if (isset($day)) + if ($type === 'hour') { $query.= ' - WHERE year = '.$year.' - AND month = '.$month.' - AND day = '.$day.' + WHERE year IS NOT NULL + AND month IS NOT NULL + AND day IS NOT NULL AND hour IS NOT NULL ORDER BY - year ASC, - month ASC, - day ASC, - hour ASC + year DESC, + month DESC, + day DESC, + hour DESC + LIMIT '.$last_number.' ;'; } - elseif (isset($month)) + elseif ($type === 'day') { $query.= ' - WHERE year = '.$year.' - AND month = '.$month.' + WHERE year IS NOT NULL + AND month IS NOT NULL AND day IS NOT NULL AND hour IS NULL ORDER BY - year ASC, - month ASC, - day ASC + year DESC, + month DESC, + day DESC + LIMIT '.$last_number.' ;'; } - elseif (isset($year)) + elseif ($type === 'month') { $query.= ' - WHERE year = '.$year.' + WHERE year IS NOT NULL AND month IS NOT NULL AND day IS NULL ORDER BY - year ASC, - month ASC + year DESC, + month DESC + LIMIT '.$last_number.' ;'; } else @@ -73,7 +77,8 @@ SELECT WHERE year IS NOT NULL AND month IS NULL ORDER BY - year ASC + year DESC + LIMIT '.$last_number.' ;'; } @@ -88,6 +93,130 @@ SELECT return $output; } +function get_month_of_last_years ($last = 'all') +{ + + $query = ' +SELECT + year, + month, + day, + hour, + nb_pages +FROM '.HISTORY_SUMMARY_TABLE.' +WHERE month IS NOT NULL + AND day IS NULL +ORDER BY + year DESC, + month DESC'; + + if ($last !== 'all') + { + $date = new DateTime(); + $limit = ($last - 1)*12+$date->format('n') - 1; + $query .= +' LIMIT '.$limit; + $result = query2array($query.';'); + $lastDate = $date->sub(new DateInterval('P'.($last - 1).'Y'.($date->format('n') - 1).'M')); + return set_missing_values('month', $result, $lastDate, new DateTime()); + } + + if (count(query2array($query.';')) > 1 ) + { + return set_missing_values('month', query2array($query.';')); + } else { + $last_year_date = new DateTime(); + return set_missing_values( + 'month', + query2array($query.';'), + $last_year_date->sub(new DateInterval('P1Y')), + new DateTime() + ); + } +} + +function get_month_stats() +{ + $result = array(); + $date = new DateTime(); + $date_last_month = clone $date; + $date_last_year = clone $date; + $months = array(); + + $date_last_month->sub(new DateInterval('P1M')); + $date_last_year->sub(new DateInterval('P1Y')); + $query = ' +SELECT + year, + month, + day, + hour, + nb_pages +FROM '.HISTORY_SUMMARY_TABLE.' +WHERE + ( + (year = '.$date->format('Y').' AND month = '.$date->format('n').') + OR (year = '.$date_last_month->format('Y').' AND month = '.$date_last_month->format('n').') + OR (year = '.$date_last_year->format('Y').' AND month = '.$date_last_year->format('n').') + ) + AND day IS NOT NULL + AND hour IS NULL +ORDER BY + year DESC, + month DESC +;'; + + foreach (query2array($query) as $value) + { + $date = get_date_object($value); + @$months[$date->format('Y/m/1')][] = $value; + } + + $actual_date = new DateTime(); + if (!isset($months[$actual_date->format('Y/m/1')])) + { + @$months[$actual_date->format('Y/m/1')][] = array( + 'year' => $actual_date->format('Y'), + 'month'=> $actual_date->format('n'), + 'day'=> null, + 'hour'=> null, + 'nb_pages' => 0 + ); + } + + foreach ($months as $key => $val) + { + $lastDate = new DateTime($key); + $lastDate = $lastDate->add(new DateInterval('P1M')); + $lastDate = $lastDate->sub(new DateInterval('P1D')); + if ($lastDate > new DateTime()) + { + $lastDate = new DateTime(); + } + $result['month'][] = set_missing_values('day',$val, new DateTime($key), $lastDate); + } + + $query = ' +SELECT + AVG(nb_pages) +FROM '.HISTORY_SUMMARY_TABLE.' +WHERE + ( + year = '.$date->format('Y').' OR + (year = '.($date->format('Y')-1).' and month > '.$date->format('n').') + ) + AND day IS NOT NULL + AND hour IS NULL +ORDER BY + year DESC, + month DESC +;'; + + $result['avg'] = query2array($query)[0]['AVG(nb_pages)']; + + return $result; +} + // +-----------------------------------------------------------------------+ // | Check Access and exit when user status is not ok | // +-----------------------------------------------------------------------+ @@ -101,87 +230,9 @@ check_status(ACCESS_ADMINISTRATOR); history_summarize(); // +-----------------------------------------------------------------------+ -// | Page parameters check | +// | Display statistics header | // +-----------------------------------------------------------------------+ -foreach (array('day', 'month', 'year') as $key) -{ - if (isset($_GET[$key])) - { - $page[$key] = (int)$_GET[$key]; - } -} - -if (isset($page['day'])) -{ - if (!isset($page['month'])) - { - die('month is missing in URL'); - } -} - -if (isset($page['month'])) -{ - if (!isset($page['year'])) - { - die('year is missing in URL'); - } -} - -$summary_lines = get_summary( - @$page['year'], - @$page['month'], - @$page['day'] - ); - -// +-----------------------------------------------------------------------+ -// | Display statistics header | -// +-----------------------------------------------------------------------+ - -// page title creation -$title_parts = array(); - -$url = PHPWG_ROOT_PATH.'admin.php?page=stats'; - -$title_parts[] = ''.l10n('Overall').''; - -$period_label = l10n('Year'); - -if (isset($page['year'])) -{ - $url.= '&year='.$page['year']; - - $title_parts[] = ''.$page['year'].''; - - $period_label = l10n('Month'); -} - -if (isset($page['month'])) -{ - $url.= '&month='.$page['month']; - - $title_parts[] = ''.$lang['month'][$page['month']].''; - - $period_label = l10n('Day'); -} - -if (isset($page['day'])) -{ - $url.= '&day='.$page['day']; - - $time = mktime(12, 0, 0, $page['month'], $page['day'], $page['year']); - - $day_title = sprintf( - '%u (%s)', - $page['day'], - $lang['day'][date('w', $time)] - ); - - $title_parts[] = ''.$day_title.''; - - $period_label = l10n('Hour'); -} - $template->set_filename('stats', 'stats.tpl'); // TabSheet initialization @@ -191,135 +242,154 @@ $base_url = get_root_url().'admin.php?page=history'; $template->assign( array( - 'L_STAT_TITLE' => implode($conf['level_separator'], $title_parts), - 'PERIOD_LABEL' => $period_label, 'U_HELP' => get_root_url().'admin/popuphelp.php?page=history', 'F_ACTION' => $base_url, ) ); // +-----------------------------------------------------------------------+ -// | Display statistic rows | +// | Set missing rows to 0 | // +-----------------------------------------------------------------------+ -$max_width = 400; - -$datas = array(); - -if (isset($page['day'])) +function set_missing_values($unit, $data, $firstDate = null, $lastDate = null) { - $key = 'hour'; - $min_x = 0; - $max_x = 23; -} -elseif (isset($page['month'])) -{ - $key = 'day'; - $min_x = 1; - $max_x = date( - 't', - mktime(12, 0, 0, $page['month'], 1, $page['year']) - ); -} -elseif (isset($page['year'])) -{ - $key = 'month'; - $min_x = 1; - $max_x = 12; -} -else -{ - $key = 'year'; -} - -$max_pages = 1; -foreach ($summary_lines as $line) -{ - if ($line['nb_pages'] > $max_pages) + $limit = count($data); + $result = array(); + + if ($firstDate == null) { - $max_pages = $line['nb_pages']; + $date = get_date_object($data[count($data) - 1]); + } else { + $date = $firstDate; + } + if ($lastDate == null) + { + $date_end = get_date_object($data[0]); + } else { + $date_end = $lastDate; } - $datas[ $line[$key] ] = $line['nb_pages']; -} - -if (!isset($min_x) and !isset($max_x) and count($datas) > 0) -{ - $min_x = min(array_keys($datas)); - $max_x = max(array_keys($datas)); -} - -if (count($datas) > 0) -{ - for ($i = $min_x; $i <= $max_x; $i++) + //Declare variable according the unit + if ($unit == 'year') { - if (!isset($datas[$i])) - { - $datas[$i] = 0; - } - - $url = null; - - if (isset($page['day'])) - { - $value = sprintf('%02u', $i); - } - else if (isset($page['month'])) - { - $url = - get_root_url().'admin.php' - .'?page=stats' - .'&year='.$page['year'] - .'&month='.$page['month'] - .'&day='.$i - ; - - $time = mktime(12, 0, 0, $page['month'], $i, $page['year']); - - $value = $i.' ('.$lang['day'][date('w', $time)].')'; - } - else if (isset($page['year'])) - { - $url = - get_root_url().'admin.php' - .'?page=stats' - .'&year='.$page['year'] - .'&month='.$i - ; - - $value = $lang['month'][$i]; - } - else - { - // at least the year is defined - $url = - get_root_url().'admin.php' - .'?page=stats' - .'&year='.$i - ; - - $value = $i; - } - - if ($datas[$i] != 0 and isset($url)) - { - $value = ''.$value.''; - } - - $template->append( - 'statrows', - array( - 'VALUE' => $value, - 'PAGES' => $datas[$i], - 'WIDTH' => ceil(($datas[$i] * $max_width) / $max_pages ), - ) - ); + $date_format = 'Y'; + $date_add = 'P1Y'; + } + else if ($unit == 'month') + { + $date_format = 'Y-m'; + $date_add = 'P1M'; + } + else if ($unit == 'day') + { + $date_format = 'Y-m-d'; + $date_add = 'P1D'; + } + else if ($unit == 'hour') + { + $date_format = 'Y-m-d\TH:00'; + $date_add = 'PT1H'; } + + //Fill an empty array with all the dates + while ($date <= $date_end) { + $result[$date->format($date_format)] = 0; + $date->add(new DateInterval($date_add)); + } + + //Overload with database rows + foreach ($data as $value) + { + $str = get_date_object($value)->format($date_format); + if (isset($result[$str])) + { + $result[$str] += $value['nb_pages']; + } + } + + return $result; +} + +//Get a DateTime object for a database row +function get_date_object($row) +{ + $date_string = $row['year']; + if ($row['month'] != null) + { + $date_string = $date_string.'-'.$row['month'] ; + if ($row['day'] != null) + { + $date_string = $date_string.'-'.$row['day']; + if ($row['hour'] != null) + { + $date_string = $date_string.' '.$row['hour'].':00'; + } + } + } + else + { + $date_string .= '-1'; + } + + return new DateTime($date_string); } // +-----------------------------------------------------------------------+ -// | Sending html code | +// | Send data to template | // +-----------------------------------------------------------------------+ +$actual_date = new DateTime(); +$actual_date->add(new DateInterval('PT1S')); + +$first_date = new DateTime(); +$last_hours = set_missing_values( + 'hour', + get_last(72, 'hour'), + $first_date->sub(new DateInterval("P3D")), + $actual_date +); + +$first_date = new DateTime(); +$last_days = set_missing_values( + 'day', + get_last(90, 'day'), + $first_date->sub(new DateInterval("P90D")), + $actual_date +); + +$first_date = new DateTime(); +$last_months = set_missing_values( + 'month', + get_last(60, 'month'), + $first_date->sub(new DateInterval("P60M")), + $actual_date +); + +if (count(get_last(60, 'year')) > 1 ) +{ + $last_years = set_missing_values( + 'year', + get_last(60, 'year') + ); +} else { + $last_year_date = new DateTime(); + $last_years = set_missing_values( + 'year', + get_last(60, 'year'), + $last_year_date->sub(new DateInterval('P1Y')), + new DateTime() + ); +} + +$template->assign(array( + 'compareYears' => get_month_of_last_years($conf['stat_compare_year_displayed']), + 'monthStats' => get_month_stats(), + 'lastHours' => $last_hours, + 'lastDays' => $last_days, + 'lastMonths' => $last_months, + 'lastYears' => $last_years, + 'langCode' => strval($user['language']) +)); + $template->assign_var_from_handle('ADMIN_CONTENT', 'stats'); ?> \ No newline at end of file diff --git a/admin/tags.php b/admin/tags.php index a957c889d..e1a401399 100644 --- a/admin/tags.php +++ b/admin/tags.php @@ -14,16 +14,6 @@ if( !defined("PHPWG_ROOT_PATH") ) include_once(PHPWG_ROOT_PATH.'admin/include/functions.php'); check_status(ACCESS_ADMINISTRATOR); -if (!empty($_POST)) -{ - check_pwg_token(); - check_input_parameter('tags', $_POST, true, PATTERN_ID); - check_input_parameter('selectAction', $_POST, false, '/^[a-zA-Z0-9_-]+$/'); - check_input_parameter('edit_list', $_POST, false, '/^\d+(,\d+)*$/'); - check_input_parameter('merge_list', $_POST, false, '/^\d+(,\d+)*$/'); - check_input_parameter('destination_tag', $_POST, false, PATTERN_ID); -} - // +-----------------------------------------------------------------------+ // | tabs | // +-----------------------------------------------------------------------+ @@ -37,312 +27,21 @@ $tabsheet->set_id('tags'); $tabsheet->select(''); $tabsheet->assign(); -// +-----------------------------------------------------------------------+ -// | edit tags | -// +-----------------------------------------------------------------------+ - -if (isset($_POST['edit_submit'])) -{ - $query = ' -SELECT name - FROM '.TAGS_TABLE.' -;'; - $existing_names = array_from_query($query, 'name'); - - - $current_name_of = array(); - $query = ' -SELECT id, name - FROM '.TAGS_TABLE.' - WHERE id IN ('.$_POST['edit_list'].') -;'; - $result = pwg_query($query); - while ($row = pwg_db_fetch_assoc($result)) - { - $current_name_of[ $row['id'] ] = $row['name']; - } - - $updates = array(); - // we must not rename tag with an already existing name - foreach (explode(',', $_POST['edit_list']) as $tag_id) - { - $tag_name = stripslashes($_POST['tag_name-'.$tag_id]); - - if ($tag_name != $current_name_of[$tag_id]) - { - if (in_array($tag_name, $existing_names)) - { - $page['errors'][] = l10n('Tag "%s" already exists', $tag_name); - } - else if (!empty($tag_name)) - { - $updates[] = array( - 'id' => $tag_id, - 'name' => addslashes($tag_name), - 'url_name' => trigger_change('render_tag_url', $tag_name), - ); - } - } - } - mass_updates( - TAGS_TABLE, - array( - 'primary' => array('id'), - 'update' => array('name', 'url_name'), - ), - $updates - ); - - pwg_activity('tag', explode(',', $_POST['edit_list']), 'edit'); -} -// +-----------------------------------------------------------------------+ -// | dulicate tags | -// +-----------------------------------------------------------------------+ - -if (isset($_POST['duplic_submit'])) -{ - $query = ' -SELECT name - FROM '.TAGS_TABLE.' -;'; - $existing_names = array_from_query($query, 'name'); - - - $current_name_of = array(); - $query = ' -SELECT id, name - FROM '.TAGS_TABLE.' - WHERE id IN ('.$_POST['edit_list'].') -;'; - $result = pwg_query($query); - while ($row = pwg_db_fetch_assoc($result)) - { - $current_name_of[ $row['id'] ] = $row['name']; - } - - $updates = array(); - // we must not rename tag with an already existing name - foreach (explode(',', $_POST['edit_list']) as $tag_id) - { - $tag_name = stripslashes($_POST['tag_name-'.$tag_id]); - - if ($tag_name != $current_name_of[$tag_id]) - { - if (in_array($tag_name, $existing_names)) - { - $page['errors'][] = l10n('Tag "%s" already exists', $tag_name); - } - else if (!empty($tag_name)) - { - single_insert( - TAGS_TABLE, - array( - 'name' => $tag_name, - 'url_name' => trigger_change('render_tag_url', $tag_name), - ) - ); - $destination_tag_id = pwg_db_insert_id(TAGS_TABLE); - - pwg_activity('tag', $destination_tag_id, 'add', array('action'=>'duplicate', 'source_tag'=>$tag_id)); - - $query = ' - SELECT - image_id - FROM '.IMAGE_TAG_TABLE.' - WHERE tag_id = '.$tag_id.' - ;'; - $destination_tag_image_ids = array_from_query($query, 'image_id'); - - $inserts = array(); - foreach ($destination_tag_image_ids as $image_id) - { - $inserts[] = array( - 'tag_id' => $destination_tag_id, - 'image_id' => $image_id - ); - } - - if (count($inserts) > 0) - { - mass_inserts( - IMAGE_TAG_TABLE, - array_keys($inserts[0]), - $inserts - ); - } - - $page['infos'][] = l10n( - 'Tag "%s" is now a duplicate of "%s"', - stripslashes($tag_name), - $current_name_of[$tag_id] - ); - } - } - } - - mass_updates( - TAGS_TABLE, - array( - 'primary' => array('id'), - 'update' => array('name', 'url_name'), - ), - $updates - ); -} - -// +-----------------------------------------------------------------------+ -// | merge tags | -// +-----------------------------------------------------------------------+ - -if (isset($_POST['merge_submit'])) -{ - if (!isset($_POST['destination_tag'])) - { - $page['errors'][] = l10n('No destination tag selected'); - } - else - { - $destination_tag_id = $_POST['destination_tag']; - $tag_ids = explode(',', $_POST['merge_list']); - - if (is_array($tag_ids) and count($tag_ids) > 1) - { - $name_of_tag = array(); - $query = ' -SELECT - id, - name - FROM '.TAGS_TABLE.' - WHERE id IN ('.implode(',', $tag_ids).') -;'; - $result = pwg_query($query); - while ($row = pwg_db_fetch_assoc($result)) - { - $name_of_tag[ $row['id'] ] = trigger_change('render_tag_name', $row['name'], $row); - } - - $tag_ids_to_delete = array_diff( - $tag_ids, - array($destination_tag_id) - ); - - $query = ' -SELECT - DISTINCT(image_id) - FROM '.IMAGE_TAG_TABLE.' - WHERE tag_id IN ('.implode(',', $tag_ids_to_delete).') -;'; - $image_ids = array_from_query($query, 'image_id'); - - delete_tags($tag_ids_to_delete); - - $query = ' -SELECT - image_id - FROM '.IMAGE_TAG_TABLE.' - WHERE tag_id = '.$destination_tag_id.' -;'; - $destination_tag_image_ids = array_from_query($query, 'image_id'); - - $image_ids_to_link = array_diff( - $image_ids, - $destination_tag_image_ids - ); - - $inserts = array(); - foreach ($image_ids_to_link as $image_id) - { - $inserts[] = array( - 'tag_id' => $destination_tag_id, - 'image_id' => $image_id - ); - } - - if (count($inserts) > 0) - { - mass_inserts( - IMAGE_TAG_TABLE, - array_keys($inserts[0]), - $inserts - ); - } - - $tags_deleted = array(); - foreach ($tag_ids_to_delete as $tag_id) - { - $tags_deleted[] = $name_of_tag[$tag_id]; - } - - $page['infos'][] = l10n( - 'Tags %s merged into tag %s', - implode(', ', $tags_deleted), - $name_of_tag[$destination_tag_id] - ); - } - } -} - - -// +-----------------------------------------------------------------------+ -// | delete tags | -// +-----------------------------------------------------------------------+ - -if (isset($_POST['delete']) and isset($_POST['tags'])) -{ - if (!isset($_POST['confirm_deletion'])) - { - $page['errors'][] = l10n('You need to confirm deletion'); - } - else - { - $query = ' -SELECT name - FROM '.TAGS_TABLE.' - WHERE id IN ('.implode(',', $_POST['tags']).') -;'; - $tag_names = array_from_query($query, 'name'); - - delete_tags($_POST['tags']); - - $page['infos'][] = l10n_dec( - 'The following tag was deleted', 'The %d following tags were deleted', - count($tag_names) - ) - .' : '.implode(', ', $tag_names); - } -} - // +-----------------------------------------------------------------------+ // | delete orphan tags | // +-----------------------------------------------------------------------+ +$message_tags = ""; + if (isset($_GET['action']) and 'delete_orphans' == $_GET['action']) { check_pwg_token(); delete_orphan_tags(); - $_SESSION['page_infos'] = array(l10n('Orphan tags deleted')); + $message_tags = array(l10n('Orphan tags deleted')); redirect(get_root_url().'admin.php?page=tags'); } -// +-----------------------------------------------------------------------+ -// | add a tag | -// +-----------------------------------------------------------------------+ - -if (isset($_POST['add']) and !empty($_POST['add_tag'])) -{ - $ret = create_tag($_POST['add_tag']); - - if (isset($ret['error'])) - { - $page['errors'][] = $ret['error']; - } - else - { - $page['infos'][] = $ret['info']; - } -} - // +-----------------------------------------------------------------------+ // | template init | // +-----------------------------------------------------------------------+ @@ -360,6 +59,8 @@ $template->assign( // | orphan tags | // +-----------------------------------------------------------------------+ +$warning_tags = ""; + $orphan_tags = get_orphan_tags(); $orphan_tag_names = array(); @@ -370,18 +71,28 @@ foreach ($orphan_tags as $tag) if (count($orphan_tag_names) > 0) { - $page['warnings'][] = sprintf( - l10n('You have %d orphan tags: %s.').' '.l10n('Delete orphan tags').'', + $warning_tags = sprintf( + l10n('You have %d orphan tags %s'), count($orphan_tag_names), - implode(', ', $orphan_tag_names), - get_root_url().'admin.php?page=tags&action=delete_orphans&pwg_token='.get_pwg_token() + '' + .l10n('Review').'' ); } +$template->assign( + array( + 'warning_tags' => $warning_tags, + 'message_tags' => $message_tags + ) + ); + // +-----------------------------------------------------------------------+ // | form creation | // +-----------------------------------------------------------------------+ - +$per_page = 100; // tag counters $query = ' @@ -392,7 +103,7 @@ $tag_counters = simple_hash_from_query($query, 'tag_id', 'counter'); // all tags $query = ' -SELECT * +SELECT name, id, url_name FROM '.TAGS_TABLE.' ;'; $result = pwg_query($query); @@ -401,9 +112,11 @@ while ($tag = pwg_db_fetch_assoc($result)) { $raw_name = $tag['name']; $tag['name'] = trigger_change('render_tag_name', $raw_name, $tag); - $tag['counter'] = intval(@$tag_counters[ $tag['id'] ]); - $tag['U_VIEW'] = make_index_url(array('tags'=>array($tag))); - $tag['U_EDIT'] = 'admin.php?page=batch_manager&filter=tag-'.$tag['id']; + $counter = intval(@$tag_counters[ $tag['id'] ]); + if ($counter > 0) + { + $tag['counter'] = intval(@$tag_counters[ $tag['id'] ]); + } $alt_names = trigger_change('get_tag_alt_names', array(), $raw_name); $alt_names = array_diff( array_unique($alt_names), array($tag['name']) ); @@ -415,46 +128,15 @@ while ($tag = pwg_db_fetch_assoc($result)) } usort($all_tags, 'tag_alpha_compare'); - - $template->assign( array( - 'all_tags' => $all_tags, + 'first_tags' => array_slice($all_tags, 0, $per_page), + 'data' => $all_tags, + 'total' => count($all_tags), + 'per_page' => $per_page ) ); -if ((isset($_POST['edit']) or isset($_POST['duplicate']) or isset($_POST['merge'])) and isset($_POST['tags'])) -{ - $list_name = 'EDIT_TAGS_LIST'; - if (isset($_POST['duplicate'])) - { - $list_name = 'DUPLIC_TAGS_LIST'; - } - elseif (isset($_POST['merge'])) - { - $list_name = 'MERGE_TAGS_LIST'; - } - - $template->assign($list_name, implode(',', $_POST['tags'])); - - $query = ' -SELECT id, name - FROM '.TAGS_TABLE.' - WHERE id IN ('.implode(',', $_POST['tags']).') -;'; - $result = pwg_query($query); - while ($row = pwg_db_fetch_assoc($result)) - { - $template->append( - 'tags', - array( - 'ID' => $row['id'], - 'NAME' => $row['name'], - ) - ); - } -} - // +-----------------------------------------------------------------------+ // | sending html code | // +-----------------------------------------------------------------------+ diff --git a/admin/themes/clear/images/resizable-e.gif b/admin/themes/clear/images/resizable-e.gif deleted file mode 100644 index 32d05b9ca..000000000 Binary files a/admin/themes/clear/images/resizable-e.gif and /dev/null differ diff --git a/admin/themes/clear/images/resizable-n.gif b/admin/themes/clear/images/resizable-n.gif deleted file mode 100644 index 6a62dc8e2..000000000 Binary files a/admin/themes/clear/images/resizable-n.gif and /dev/null differ diff --git a/admin/themes/clear/images/resizable-ne.gif b/admin/themes/clear/images/resizable-ne.gif deleted file mode 100644 index 09ad9fc81..000000000 Binary files a/admin/themes/clear/images/resizable-ne.gif and /dev/null differ diff --git a/admin/themes/clear/images/resizable-nw.gif b/admin/themes/clear/images/resizable-nw.gif deleted file mode 100644 index c33bd0fcc..000000000 Binary files a/admin/themes/clear/images/resizable-nw.gif and /dev/null differ diff --git a/admin/themes/clear/images/resizable-s.gif b/admin/themes/clear/images/resizable-s.gif deleted file mode 100644 index b1d72c5ce..000000000 Binary files a/admin/themes/clear/images/resizable-s.gif and /dev/null differ diff --git a/admin/themes/clear/images/resizable-se.gif b/admin/themes/clear/images/resizable-se.gif deleted file mode 100644 index ad6bd1fbc..000000000 Binary files a/admin/themes/clear/images/resizable-se.gif and /dev/null differ diff --git a/admin/themes/clear/images/resizable-sw.gif b/admin/themes/clear/images/resizable-sw.gif deleted file mode 100644 index 5bf25ce07..000000000 Binary files a/admin/themes/clear/images/resizable-sw.gif and /dev/null differ diff --git a/admin/themes/clear/images/resizable-w.gif b/admin/themes/clear/images/resizable-w.gif deleted file mode 100644 index e4ed876e7..000000000 Binary files a/admin/themes/clear/images/resizable-w.gif and /dev/null differ diff --git a/admin/themes/clear/theme.css b/admin/themes/clear/theme.css index c4cf8472d..03d08de42 100644 --- a/admin/themes/clear/theme.css +++ b/admin/themes/clear/theme.css @@ -79,17 +79,14 @@ h3, .throw, .row1 { background-color: #ddd; } .content dl, dd { margin:5px; } - -UL.thumbnails span.wrap2:hover { background-color:#7CBA0F; color:#999; } UL.thumbnails span.wrap2 { - background-color:#ddd; + background-color:transparent; } /* borders */ fieldset { border: none; - border-top: 2px solid #ddd; } fieldset.with-border { @@ -105,21 +102,17 @@ TEXTAREA { cursor:text; font-size: 13px; } ul.thumbnails input { color:#666; font-size:10px; margin:0; background-color:#bbb; text-align: center;} .throw { font-size: 120%; line-height: 26px; padding-top: 10px; font-weight: bold; } label { cursor:pointer } -.categoryLi, .menuLi { background: #F3F3F3; } +.menuLi { background: #F3F3F3; } .menuLi_hidden { background: #ccc !important; } a.Piwigo { font-family: verdana, arial, helvetica, sans-serif !important; font-size: 11px; font-weight: normal; letter-spacing: 0; color : #0cc; text-decoration: none; border: 0; } a.Piwigo:hover span.Piwigo { - border-bottom: 1px solid #0cc9c; + border-bottom: 1px solid #0cc; } TABLE.table2 { border: 2px solid #dddddd; } -.categoryUl>li:not(.virtual_cat) { - background:url(images/stripe-cat.png); -} - *, *:focus, *:active, input:active, a:active, input:focus, a:focus { outline: none; -moz-outline-width: 0px; } A{ color:#3A3A3A; @@ -130,7 +123,6 @@ A:hover, A:active { cursor: pointer; } -.content .navigationBar {color:#999;} ul.actions, .content form#waiting {text-align:center;} /* jQuery tooltips */ @@ -152,14 +144,6 @@ ul.actions, .content form#waiting {text-align:center;} .ui-resizable .ui-resizable-handle { display: block; } body .ui-resizable-disabled .ui-resizable-handle { display: none; } /* use 'body' to make it more specific (css order) */ body .ui-resizable-autohide .ui-resizable-handle { display: none; } /* use 'body' to make it more specific (css order) */ -.ui-resizable-n { cursor: n-resize; height: 6px; width: 100%; top: 0px; left: 0px; background: transparent url(images/resizable-n.gif) no-repeat scroll center top; } -.ui-resizable-s { cursor: s-resize; height: 6px; width: 100%; bottom: 0px; left: 0px; background: transparent url(images/resizable-s.gif) no-repeat scroll center top; } -.ui-resizable-e { cursor: e-resize; width: 6px; right: 0px; top: 0px; height: 100%; background: transparent url(images/resizable-e.gif) no-repeat scroll right center; } -.ui-resizable-w { cursor: w-resize; width: 6px; left: 0px; top: 0px; height: 100%; background: transparent url(images/resizable-w.gif) no-repeat scroll right center; } -.ui-resizable-se { cursor: se-resize; width: 9px; height: 9px; right: 0px; bottom: 0px; background: transparent url(images/resizable-se.gif); } -.ui-resizable-sw { cursor: sw-resize; width: 9px; height: 9px; left: 0px; bottom: 0px; background: transparent url(images/resizable-sw.gif); } -.ui-resizable-nw { cursor: nw-resize; width: 9px; height: 9px; left: 0px; top: 0px; background: transparent url(images/resizable-nw.gif); } -.ui-resizable-ne { cursor: ne-resize; width: 9px; height: 9px; right: 0px; top: 0px; background: transparent url(images/resizable-ne.gif); } #ui-datepicker-div {background-color: #f1f1f1; border:2px solid #aaa;} #ui-datepicker-div .ui-datepicker-title {color:black;} @@ -180,7 +164,7 @@ body .ui-resizable-autohide .ui-resizable-handle { display: none; } /* use 'body #ui-datepicker-div .ui-datepicker-week-end-cell, #ui-datepicker-div .ui-datepicker-week-end-cell a { background-color: #ddd; color: #0cc; border-color: #bbb; border-top-color: #ddd; border-left-color: #ddd;} #ui-datepicker-div .ui-datepicker-title-row { background-color: #eee;} #ui-datepicker-div .ui-datepicker-title-row .ui-datepicker-week-end-cell a { color: #0cc;} -#ui-datepicker-div a:hover { color: #0cccc !important; background-color: #eee !important;} +#ui-datepicker-div a:hover { color: #0cc !important; background-color: #eee !important;} #ui-datepicker-div .ui-datepicker-header select { background-color:#bbb; color:#666; font-weight:normal;} #ui-datepicker-div .ui-datepicker-links { background-color:#ddd;} #ui-datepicker-div .ui-datepicker-header { background-color:#bbb;} @@ -192,7 +176,7 @@ img.ui-datepicker-trigger{margin:-2px 10px 1px -2px;} .ui-slider .ui-slider-range { background:#aaa;border-radius:2px; } .ui-slider .ui-slider-handle { - background-color: #eee; + background-color: #ddd; border: 1px solid #aaa; border-radius: 3px; } @@ -210,11 +194,12 @@ INPUT[type="text"].large { width: 317px; } *+html .bigbutton input, * html .bigbutton input { left:0px; position:relative; top:-40px; } * html .bigtext { margin-right: 300px; } -.themeBox {background-color:#ddd;} -.themeBox IMG {border:1px solid white;} +.themeBox {background-color:#fafafa; box-shadow: 0px 0px 5px #acacac;} .themeName {color:black;} +.themeActions span {background-color: #ddd;} #themesContent H3 {border-bottom:1px solid #aaa;} -.themeDefault {background-color:#dbe8f3;} +.themeSelect {background-color: #fafafa;} +.themeSelect.themeDefault {background-color: #ffd7ad;} #pluginsMenuSeparator {border:1px solid #555;} @@ -226,7 +211,7 @@ INPUT[type="text"].large { width: 317px; } #pwgHead A, #footer A {color:#ccc;} #pwgHead A:hover, #footer A:hover {color:white;} -.pluginBox, .pluginMiniBox, .groups li {background-color:#ddd;color:#353535;border-color:#ddd;} +.pluginBox, .pluginMiniBox {background-color:#ddd;color:#353535;border-color:#ddd;} .pluginBoxNameCell, .pluginMiniBoxNameCell {color:#111;} .pluginBox.incompatible, .pluginMiniBox.incompatible {border-color:#a00 !important;} .pluginBoxes .merged, .pluginBoxes .missing {background-color:#d99;border:1px solid #a00;} @@ -242,42 +227,47 @@ UL.thumbnails li.rank-of-image {background-color: #ddd;} color:#999; } -#batchManagerGlobal .thumbnails li:hover .font-checkbox [class*="icon-check"]::before { - color:white; -} - #batchManagerGlobal li.thumbSelected .font-checkbox [class*="icon-check"]::before { - color:white; + color: white; + display: block; } #batchManagerGlobal UL.thumbnails li:hover .wrap2 { - background-color: #ff7700; + background-color: transparent; color: #999; } #batchManagerGlobal .thumbSelected { background-color:transparent !important } #batchManagerGlobal .thumbSelected .wrap2 { - background-color: #444 !important; + background-color: transparent !important; } #batchManagerGlobal #selectedMessage { - background-color: #555; - color:white; + color: #FFA646; + font-weight: bold; } -/* beta-test begins: specific changes on Batch Manager */ -#batchManagerGlobal legend { - background-color:#ddd; - color:#555; - padding:5px 10px; +#batchManagerGlobal #applyFilter,#batchManagerGlobal .addFilter-button { + color: #3C3C3C; + background-color: #ececec; } -#batchManagerGlobal fieldset { - margin-top:2em; +#batchManagerGlobal #applyFilter:hover, #batchManagerGlobal .addFilter-button:hover { + color: #111; + background-color: #ff9b32 ; } -/* beta-test ends */ +#batchManagerGlobal .addFilter-button.highlight { + color: #3C3C3C; + background-color: #ffc17e; +} + +#batchManagerGlobal .addFilter-button.highlight:hover { + background-color: #ff7700; + color: white; + text-decoration: none; +} .slider-info {color:#ff7700;font-weight:bold;} @@ -302,10 +292,10 @@ UL.thumbnails li.rank-of-image {background-color: #ddd;} font-size:14px; } -.buttonLike:disabled, input[type="submit"]:disabled, input[type="button"]:disabled, input[type="reset"]:disabled { - background-color: #ECECEC; - color: #D5D5D5; - cursor:not-allowed; +.buttonLike:disabled, .buttonGradient:disabled, input[type="submit"]:disabled, input[type="button"]:disabled, input[type="reset"]:disabled { + background: #ECECEC !important; + color: #D5D5D5 !important; + cursor: not-allowed; } #formCreateAlbum input[name="virtual_name"] {border: 1px solid #D5D5D5; transition: all 125ms ease-out;} @@ -313,16 +303,293 @@ UL.thumbnails li.rank-of-image {background-color: #ddd;} p.albumTitle img {margin-bottom:-3px;} -.groups label>p { +.groups .GroupContainer, +.groups .showCreateGroup, +.groups .addGroupFormBlock{ font-size: 1.2em; - color: #111; - background-color:#ccc; + background-color:#fafafa; } + +.groups .Group-name>p, +.addGroupForm .addGroupFormTitle{ + color:#3c3c3c; + font-size: 1.2em; +} + +.groups .GroupContainer, +.groups .showCreateGroup, +.groups .addGroupFormBlock{ + box-shadow: 0px 2px 5px #00000024; +} + +.groups #addGroupForm:hover #addGroup, +.groups .addGroupFormTitle{ + color:#3c3c3c; + text-decoration:none; +} + +.groups #addGroup{ + color:#777; +} + +.groups .group_number_users{ + color:#d5d5d5; +} + +.addGroupLabel{ + color:#3c3c3c; +} + +.addUserButton:hover{ + text-decoration:none; + color:#3c3c3c; + background-color:#f3f3f3; +} + +.groups p.list_user{ + color:#3c3c3c; +} + label>p.group_select { color: #000; background-color:#C2F5C2; } +.groups input[type="text"]{ + background-color:white; + border:1px solid #d5d5d5; +} + +.groups .AddUser .icon-user-add::before{ + background-color:#f3f3f3; + color:#e0e0e0; +} + + +/*Edit group name*/ + +.groups .Group-name{ + color:#3c3c3c; +} + +.groups .Group-name .Group-name-container p:focus{ + border:1px solid #3c3c3c!important; + background-color:white; +} + +/*Add Group */ + +.groups fieldset INPUT[type="text"]::placeholder{ + color:#d5d5d5; +} + +.groups button.submit{ + background-color:#ffa744; + color:#3c3c3c; +} + +.groups button.submit:hover{ + background-color:#ff7700; +} + +/*Group manager buttons*/ + +.groups .manage-users, +.groups .manage-permissions{ + border:1px solid #e7e7e7; + background-color:transparent; +} + + +.groups .manage-users:hover, +.groups .manage-permissions:hover{ + background-color:#ffa744; + border:1px solid #ffa744; + cursor:pointer; +} + +/*UserList Pop in*/ + + +.UserListPopInContainer{ + background-color:#f3f3f3; + border-radius:10px; + +} + +#UserList .AddUserBlock button{ + background-color:#ffa744; + color:#3c3c3c; +} + +#UserList .AddUserBlock button:hover{ + background-color:#ff7700; +} + +#UserList .AddUserBlock input, +#UserList .FilterUserBlock input{ + background-color:white; +} + +#UserList .AddUserBlock p, +#UserList .FilterUserBlock{ + color:#3c3c3c; +} + +.UsersInGroupList span{ + color:#d5d5d5; +} + +.UsersInGroupList .icon-cancel:hover{ + color:#ff7700; +} + +.LinkUserManager{ + color:#3c3c3c; +} + +/* Selection mode */ + +.slider { + background-color: #e0e0e0; +} + +.slider:before { + background-color: white; +} + +input:checked + .slider { + background-color: #ffa646; +} + +input:focus + .slider { + box-shadow: 0 0 1px #ffa646; +} + +#selection-mode-block{ + background-color: #FAFAFA; + border-left:1px solid #e6e6e6; +} + +.GroupBackgroudSelected{ + background-color:#ffd7ad!important; +} + +.OrangeIcon{ + background-color:#f98100!important; + color:#ffe4c7!important; +} + +.OrangeFont{ + color:#ff7700!important; +} + +/*Selection mode content*/ + +.SelectionModeGroupList{ + color:#a0a0a0; +} + +#selection-mode-block button{ + border: 1px solid #e7e7e7; +} + + +#selection-mode-block button:hover{ + background-color: #ffa744; + border: 1px solid #ffa744; +} + +#ConfirmGroupAction{ + color:#3c3c3c; +} + +#ConfirmGroupAction p{ + color: #777; +} + +.ConfirmDeleteButton{ + background-color: #ffa744; +} + +/*Merge Options*/ + + +#MergeOptionsBlock p{ + color: #777; +} + +#MergeOptionsBlock a{ + color:#3c3c3c; +} + +/*Merge options Radio buttons*/ + +.ConfirmMergeButton{ + background-color: #ffa744; +} + +.MergeOptionsContainer select{ + background-color: white; + box-shadow: 0 0 2px #c5c5c5; +} + +/*Group checkbox*/ + +.groups .group-checkmark { + border:2px solid #ffa646; +} + +.groups .Group-checkbox:hover input ~ .group-checkmark { + background-color: #ffa646; +} + +.groups .Group-checkbox input:checked ~ .group-checkmark { + background-color: #ffa646; +} + + +/*Group manager buttons*/ + +.groups .manage-users, +.groups .manage-users:hover, +.groups .manage-permissions, +.groups .manage-permissions:hover{ + color:#3c3c3c; +} + +/*UserList Pop in*/ + +.CloseUserList{ + color:white; +} + +#UserList .group-name-block p{ + color:#3c3c3c; +} + +.UsernameBlock{ + background-color:#f9f9f9; +} + +.Tooltip p.TooltipText{ + + background-color:#f3f3f3; + color: #3c3c3c; + border:1px solid #3c3c3c; +} + +.ValidationUserAssociated, .ValidationUserDissociated{ + color:#00aa00 !important; + background-color:#c2f5c2; +} + +.ValidationUserAssociated p, .ValidationUserDissociated p { + color:#00aa00 !important; +} + +/*------*/ + .userSeparator { visibility: hidden; } @@ -371,25 +638,8 @@ table.dataTable thead th, table.dataTable.no-footer { color:#444; } -/* beta-test begins: specific changes on album edition page*/ -#catModify input[type="text"], #catModify textarea { - border: 2px solid #ddd; - background-color:#fff; - padding:5px; -} - -#catModify input[type="text"].large, #catModify textarea.description { - width:590px; -} - -#catModify input[type="text"]:focus, #catModify textarea:focus { - border-color: #ff7700; - background-color:#fff; -} - FORM#categoryOrdering p.albumTitle a { color: #5B5B5B; } -FORM#categoryOrdering p.albumActions a { border-left:1px solid #D6D6D6; } -.albumInfos {color: #999999;} +FORM#categoryOrdering p.albumActions a { border-left:1px solid #D6D6D6; background-color: #E8E8E8;} FORM#categoryOrdering p.albumActions a:hover {background-color: #FFA844; color: #3A3A3A;} FORM#categoryOrdering p.albumActions .userSeparator {border: 1px solid #E1E1E1;} #addAlbumOpen, #autoOrderOpen {border: 1px solid #D6D6D6; color: #5B5B5B;} @@ -412,11 +662,114 @@ li.plupload_delete a {background: url("images/cancel.svg")!important; background li.plupload_delete a:hover {background: url("images/cancelhover.svg")!important; background-size: cover!important;} .addAlbumEmpty {color: #3C3C3C;} -.addAlbumEmpty a {background-color: #FFA646; box-shadow: 0 1px 2px #0D0303;} -.addAlbumEmpty a:hover{background-color: #ff7700; color: #3C3C3C; box-shadow: 0 2px 4px #0D0303;} +#permitAction p {background: #FFF;} #addAlbumForm input[name="category_name"] {border:none!important; margin-top: 5px!important;} #addAlbumForm input[name="category_name"]:focus {background-color: #DDDDDD;} .buttonSeparator {color: #3C3C3C;} #uploadForm li.plupload_droptext {background-color: #F5F5F5!important;} .addFilesButtonChanged {background-color: #E5E5E5;} -.addFilesButtonChanged:hover {background-color: #BBB;} \ No newline at end of file + +.addFilesButtonChanged:hover {background-color: #BBB;} + +#checkActions a, .deleteDerivButtons a {background-color: #E8E8E8;} +#filterList select, .pictureLevels select, #permitAction select {background-color: #FFF; color: #4E4E4E; border: 2px solid #7070704f !important; outline: none !important;} +#filter_category .selectize-input.items.full.has-options.has-items, #filter_tags .selectize-input.items.not-full.has-options, +#filter_tags .selectize-input.items.not-full, #filter_search input, #action_associate .selectize-input.items.full.has-options.has-items, +#action_dissociate .selectize-input.items.full.has-options.has-items { + border: 2px solid #7070704f !important; + background: #FFF; + color: #3C3C3CBD; +} +#action_associate a:last-child {background: #FFF; border: 1px solid #787777a6; box-shadow: none;} +#forbidAction, .selectionEmptyBlock, .noFilter {background-color: #f3f3f3;} +#action_title .large, #action_author .large {background-color: #FFF; color: #4E4E4E;} +#filter_dimension .slider-choice, #filter_filesize .slider-choice {background-color: #EEE; color: #777;} +#filter_dimension .slider-choice:hover, #filter_filesize .slider-choice:hover, .dimension-cancel:hover { + text-decoration: none; background-color: #ffa646 !important; color: initial; +} +#filterList .ui-slider .ui-slider-range {background: rgba(255,166,70, 0.9); margin-top: -1px; border: 1px solid #ffaf58;} +#filterList .ui-widget-content {border: 1px solid #EEE; background: #DDD;} + +#batchManagerGlobal option[disabled] {background-color: #EEE;} +.dimension-cancel {background-color: #F8F8F8 !important;} +.pageNumberSelected {color: #FFF !important; font-weight: bold;} + +#batchManagerGlobal .ui-state-default, #batchManagerGlobal .ui-widget-content .ui-state-default,#batchManagerGlobal .ui-widget-header .ui-state-default { + border: 1px solid #ffaf58; background: #ffaf58; +} +#batchManagerGlobal .ui-state-hover,#batchManagerGlobal .ui-widget-content .ui-state-hover, #batchManagerGlobal .ui-widget-header .ui-state-hover { + background: #ffaf58; +} +#batchManagerGlobal .ui-state-focus, #batchManagerGlobal .ui-widget-content .ui-state-focus,#batchManagerGlobal .ui-widget-header .ui-state-focus { + border: 1px solid #ffaf58; background: #ffaf58; +} +#batchManagerGlobal .ui-state-active, #batchManagerGlobal .ui-widget-content .ui-state-active,#batchManagerGlobal .ui-widget-header .ui-state-active { + background: #ffaf58; +} +#batchManagerGlobal .ui-slider-range.ui-widget-header.ui-corner-all {border: 1px solid #ffaf58;} +#batchManagerGlobal .font-checkbox.selected {color: #777;} + +/* Category List */ +.categoryContainer { + margin: 0; +} + +.categoryBox, .addAlbum{ + background-color: #fafafa; + box-shadow: 0px 2px 5px #00000024; +} + +.addAlbumHead p { + color: #3C3C3C; +} + +.addAlbum form input { + background-color: white; + border: 1px solid #d5d5d5; +} + +.albumTitle { + color: #3c3c3c; +} + +.albumInfos { + color: #d5d5d5; +} + +.albumActions a { + color: #848484; +} + +.albumActions a:hover { + color: #FFA646; + text-decoration: none; +} + +.albumActions > span { + color: #c6c6c6; +} + +.icon-red { + background-color: #ffcfcf; + color: #ff5252; +} + +.icon-yellow { + color: #ffa744; + background-color: #ffe9cf; +} + +.icon-purple { + background-color: #e0daf4; + color: #896af3; +} + +.icon-blue { + background-color: #cfebff; + color: #2883c3; +} + +.icon-green { + background-color: #d6ffcf; + color: #6ece5e; +} \ No newline at end of file diff --git a/admin/themes/default/fontello/config.json b/admin/themes/default/fontello/config.json index fc8a55ddf..65d90208d 100644 --- a/admin/themes/default/fontello/config.json +++ b/admin/themes/default/fontello/config.json @@ -575,6 +575,222 @@ "css": "link-1", "code": 59450, "src": "websymbols" + }, + { + "uid": "c8585e1e5b0467f28b70bce765d5840c", + "css": "docs", + "code": 61637, + "src": "fontawesome" + }, + { + "uid": "750058837a91edae64b03d60fc7e81a7", + "css": "ellipsis-vert", + "code": 61762, + "src": "fontawesome" + }, + { + "uid": "0d6ab2d08779e9f9d2b9199270b95909", + "css": "user-minus", + "code": 59451, + "src": "custom_icons", + "selected": true, + "svg": { + "path": "M1218.8 406.3H843.8C826.6 406.3 812.5 420.3 812.5 437.5V500C812.5 517.2 826.6 531.3 843.8 531.3H1218.8C1235.9 531.3 1250 517.2 1250 500V437.5C1250 420.3 1235.9 406.3 1218.8 406.3ZM437.5 500C575.6 500 687.5 388.1 687.5 250S575.6 0 437.5 0 187.5 111.9 187.5 250 299.4 500 437.5 500ZM612.5 562.5H579.9C536.5 582.4 488.3 593.8 437.5 593.8S338.7 582.4 295.1 562.5H262.5C117.6 562.5 0 680.1 0 825V906.3C0 958 42 1000 93.8 1000H781.3C833 1000 875 958 875 906.3V825C875 680.1 757.4 562.5 612.5 562.5Z", + "width": 1250 + }, + "search": [ + "user-minus" + ] + }, + { + "uid": "31972e4e9d080eaa796290349ae6c1fd", + "css": "users-1", + "code": 59453, + "src": "fontawesome" + }, + { + "uid": "c0d665a4c7e90d20d29dfa9ee67da445", + "css": "clone", + "code": 59454, + "src": "custom_icons", + "selected": true, + "svg": { + "path": "M906.3 0C958 0 1000 42 1000 93.8V656.3C1000 708 958 750 906.3 750H343.8C292 750 250 708 250 656.3V93.8C250 42 292 0 343.8 0H906.3M343.8 812.5C257.6 812.5 187.5 742.4 187.5 656.3V250H93.8C42 250 0 292 0 343.8V906.3C0 958 42 1000 93.8 1000H656.3C708 1000 750 958 750 906.3V812.5H343.8Z", + "width": 1000 + }, + "search": [ + "clone" + ] + }, + { + "uid": "301069b48d6466f5ec4866d375620908", + "css": "object-group", + "code": 59455, + "src": "custom_icons", + "selected": true, + "svg": { + "path": "M937.5 250V187.5H976.6C989.5 187.5 1000 177 1000 164.1V85.9C1000 73 989.5 62.5 976.6 62.5H898.4C885.5 62.5 875 73 875 85.9V125H125V85.9C125 73 114.5 62.5 101.6 62.5H23.4C10.5 62.5 0 73 0 85.9V164.1C0 177 10.5 187.5 23.4 187.5H62.5V812.5H23.4C10.5 812.5 0 823 0 835.9V914.1C0 927 10.5 937.5 23.4 937.5H101.6C114.5 937.5 125 927 125 914.1V875H875V914.1C875 927 885.5 937.5 898.4 937.5H976.6C989.5 937.5 1000 927 1000 914.1V835.9C1000 823 989.5 812.5 976.6 812.5H937.5V250ZM187.5 539.1V273.4C187.5 260.5 198 250 210.9 250H539.1C552 250 562.5 260.5 562.5 273.4V539.1C562.5 552 552 562.5 539.1 562.5H210.9C198 562.5 187.5 552 187.5 539.1ZM812.5 726.6C812.5 739.5 802 750 789.1 750H460.9C448 750 437.5 739.5 437.5 726.6V625H578.1C604 625 625 604 625 578.1V437.5H789.1C802 437.5 812.5 448 812.5 460.9V726.6Z", + "width": 1000 + }, + "search": [ + "object-group" + ] + }, + { + "uid": "712d59357fea0bf3b685efe7c6ea6504", + "css": "ellipsis-v", + "code": 59456, + "src": "custom_icons", + "selected": true, + "svg": { + "path": "M187.5 359.4C265.2 359.4 328.1 422.3 328.1 500S265.2 640.6 187.5 640.6 46.9 577.7 46.9 500 109.8 359.4 187.5 359.4ZM46.9 156.3C46.9 234 109.8 296.9 187.5 296.9S328.1 234 328.1 156.3 265.2 15.6 187.5 15.6 46.9 78.5 46.9 156.3ZM46.9 843.8C46.9 921.5 109.8 984.4 187.5 984.4S328.1 921.5 328.1 843.8 265.2 703.1 187.5 703.1 46.9 766 46.9 843.8Z", + "width": 375 + }, + "search": [ + "ellipsis-v" + ] + }, + { + "uid": "4f25b5bf13b487450dd239c13eb99862", + "css": "users-cog", + "code": 59457, + "src": "custom_icons", + "selected": true, + "svg": { + "path": "M1192.4 666.6C1197.5 639.1 1197.5 610.9 1192.4 583.4L1242.8 554.3C1248.6 551 1251.2 544.1 1249.2 537.7 1236.1 495.5 1213.7 457.2 1184.4 425.6 1179.9 420.7 1172.7 419.5 1166.8 422.9L1116.4 452C1095.1 433.8 1070.7 419.7 1044.3 410.4V352.1C1044.3 345.5 1039.6 339.6 1033.2 338.3 989.6 328.5 945.3 328.9 903.9 338.3 897.5 339.6 892.8 345.5 892.8 352.1V410.4C866.4 419.7 842 433.8 820.7 452L770.3 422.9C764.6 419.5 757.2 420.7 752.7 425.6 723.4 457.2 701 495.5 687.9 537.7 685.9 544.1 688.7 551 694.3 554.3L744.7 583.4C739.6 610.9 739.6 639.1 744.7 666.6L694.3 695.7C688.5 699 685.9 705.9 687.9 712.3 701 754.5 723.4 792.6 752.7 824.4 757.2 829.3 764.5 830.5 770.3 827.1L820.7 798C842 816.2 866.4 830.3 892.8 839.6V897.9C892.8 904.5 897.5 910.4 903.9 911.7 947.5 921.5 991.8 921.1 1033.2 911.7 1039.6 910.4 1044.3 904.5 1044.3 897.9V839.6C1070.7 830.3 1095.1 816.2 1116.4 798L1166.8 827.1C1172.5 830.5 1179.9 829.3 1184.4 824.4 1213.7 792.8 1236.1 754.5 1249.2 712.3 1251.2 705.9 1248.4 699 1242.8 695.7L1192.4 666.6ZM968.8 719.7C916.4 719.7 874 677.1 874 625S916.6 530.3 968.8 530.3 1063.5 572.9 1063.5 625 1021.1 719.7 968.8 719.7ZM187.5 437.5C256.4 437.5 312.5 381.4 312.5 312.5S256.4 187.5 187.5 187.5 62.5 243.6 62.5 312.5 118.6 437.5 187.5 437.5ZM625 500C628.7 500 632.2 499 635.9 498.8 652.1 456.4 676 416.6 706.8 383.2 721.3 367.6 741.8 358.6 763.3 358.6 776.8 358.6 790 362.1 801.6 368.9L817 377.9C818.6 377 820.1 376.2 821.7 375.2 835.4 346.7 843.6 315 843.6 281.4 843.6 160.5 745.7 62.7 624.8 62.7S406.3 160.4 406.3 281.3C406.3 402.1 504.1 500 625 500ZM830.5 879.9C826 877.5 821.5 874.8 817.2 872.3 801.2 881.6 787.3 891.4 763.5 891.4 742.2 891.4 721.7 882.4 707 866.8 671.3 828.1 643.9 781.1 628.5 730.9 607.6 663.5 677.1 633.8 678.9 632.6 678.7 627.5 678.7 622.5 678.9 617.4L663.5 608.4C656.1 604.1 649.8 598.6 644.3 592.6 637.9 593 631.6 593.8 625.2 593.8 577.1 593.8 532.2 582 491.4 562.5H475.2C350.8 562.5 250 663.3 250 787.5V843.8C250 895.5 292 937.5 343.8 937.5H842.6C835.4 925.8 830.5 912.5 830.5 897.9V879.9ZM338.1 536.3C315.4 513.9 284.4 500 250 500H125C56.1 500 0 556.1 0 625V687.5C0 722.1 27.9 750 62.5 750H191.2C203.5 657.4 259.4 579.5 338.1 536.3Z", + "width": 1250 + }, + "search": [ + "users-cog" + ] + }, + { + "uid": "a2a74f5e7b7d9ba054897d8c795a326a", + "css": "list-bullet", + "code": 61642, + "src": "fontawesome" + }, + { + "uid": "c1b9e810202506fe4283cc98e8493677", + "css": "trash-1", + "code": 59458, + "src": "custom_icons", + "selected": true, + "svg": { + "path": "M843.8 62.5H609.4L591 26A46.9 46.9 0 0 0 549 0H325.8A46.3 46.3 0 0 0 284 26L265.6 62.5H31.3A31.3 31.3 0 0 0 0 93.8V156.3A31.3 31.3 0 0 0 31.3 187.5H843.8A31.3 31.3 0 0 0 875 156.3V93.8A31.3 31.3 0 0 0 843.8 62.5ZM103.9 912.1A93.8 93.8 0 0 0 197.5 1000H677.5A93.8 93.8 0 0 0 771.1 912.1L812.5 250H62.5Z", + "width": 875 + }, + "search": [ + "trash" + ] + }, + { + "uid": "53d72bdf3f8e3c18f2f668af5649d7f5", + "css": "user-1", + "code": 59452, + "src": "custom_icons", + "selected": true, + "svg": { + "path": "M437.5 500C575.6 500 687.5 388.1 687.5 250S575.6 0 437.5 0 187.5 111.9 187.5 250 299.4 500 437.5 500ZM612.5 562.5H579.9C536.5 582.4 488.3 593.8 437.5 593.8S338.7 582.4 295.1 562.5H262.5C117.6 562.5 0 680.1 0 825V906.3C0 958 42 1000 93.8 1000H781.3C833 1000 875 958 875 906.3V825C875 680.1 757.4 562.5 612.5 562.5Z", + "width": 875 + }, + "search": [ + "user" + ] + }, + { + "uid": "1bad022b39d6d7c7a1c8a81be5193b67", + "css": "zoom-square", + "code": 59459, + "src": "custom_icons", + "selected": true, + "svg": { + "path": "M142.9 642.9H0V1000H357.1V857.1H142.9V642.9ZM0 357.1H142.9V142.9H357.1V0H0V357.1ZM857.1 857.1H642.9V1000H1000V642.9H857.1V857.1ZM642.9 0V142.9H857.1V357.1H1000V0H642.9Z", + "width": 1000 + }, + "search": [ + "full-screen" + ] + }, + { + "uid": "107ce08c7231097c7447d8f4d059b55f", + "css": "ellipsis", + "code": 61761, + "src": "fontawesome" + }, + { + "uid": "3c961c1a8d874815856fc6637dc5a13c", + "css": "file-image", + "code": 61893, + "src": "fontawesome" + }, + { + "uid": "2a4e6c99b732a57da40e32fa2a7800a4", + "css": "toggle-off", + "code": 61956, + "src": "fontawesome" + }, + { + "uid": "3256ef03b16e7ab51235bc7378b53bb5", + "css": "toggle-on", + "code": 61957, + "src": "fontawesome" + }, + { + "uid": "0044cf1c514969dfd8c27a4a0d9df7c8", + "css": "grip-vertical-solid", + "code": 59460, + "src": "custom_icons", + "selected": true, + "svg": { + "path": "M187.5 62.5H62.5C28 62.5 0 90.5 0 125V250C0 284.5 28 312.5 62.5 312.5H187.5C222 312.5 250 284.5 250 250V125C250 90.5 222 62.5 187.5 62.5ZM187.5 375H62.5C28 375 0 403 0 437.5V562.5C0 597 28 625 62.5 625H187.5C222 625 250 597 250 562.5V437.5C250 403 222 375 187.5 375ZM187.5 687.5H62.5C28 687.5 0 715.5 0 750V875C0 909.5 28 937.5 62.5 937.5H187.5C222 937.5 250 909.5 250 875V750C250 715.5 222 687.5 187.5 687.5ZM562.5 62.5H437.5C403 62.5 375 90.5 375 125V250C375 284.5 403 312.5 437.5 312.5H562.5C597 312.5 625 284.5 625 250V125C625 90.5 597 62.5 562.5 62.5ZM562.5 375H437.5C403 375 375 403 375 437.5V562.5C375 597 403 625 437.5 625H562.5C597 625 625 597 625 562.5V437.5C625 403 597 375 562.5 375ZM562.5 687.5H437.5C403 687.5 375 715.5 375 750V875C375 909.5 403 937.5 437.5 937.5H562.5C597 937.5 625 909.5 625 875V750C625 715.5 597 687.5 562.5 687.5Z", + "width": 625 + }, + "search": [ + "grip-vertical-solid" + ] + }, + { + "uid": "a8cf4d1eb65bbd42341e14891db539a3", + "css": "dice-solid", + "code": 59461, + "src": "custom_icons", + "selected": true, + "svg": { + "path": "M1156.3 375H924.3C949.1 432.8 938.2 502.3 891.1 549.5L625 815.6V906.3C625 958 667 1000 718.8 1000H1156.3C1208 1000 1250 958 1250 906.3V468.8C1250 417 1208 375 1156.3 375ZM937.5 734.4C911.6 734.4 890.6 713.4 890.6 687.5 890.6 661.6 911.6 640.6 937.5 640.6S984.4 661.6 984.4 687.5C984.4 713.4 963.4 734.4 937.5 734.4ZM846.9 369.7L505.3 28.1C467.9-9.4 407.2-9.4 369.7 28.1L28.1 369.7C-9.4 407.1-9.4 467.8 28.1 505.3L369.7 846.9C407.1 884.4 467.8 884.4 505.3 846.9L846.9 505.3C884.4 467.8 884.4 407.1 846.9 369.7ZM187.5 484.4C161.6 484.4 140.6 463.4 140.6 437.5 140.6 411.6 161.6 390.6 187.5 390.6S234.4 411.6 234.4 437.5C234.4 463.4 213.4 484.4 187.5 484.4ZM437.5 734.4C411.6 734.4 390.6 713.4 390.6 687.5 390.6 661.6 411.6 640.6 437.5 640.6S484.4 661.6 484.4 687.5C484.4 713.4 463.4 734.4 437.5 734.4ZM437.5 484.4C411.6 484.4 390.6 463.4 390.6 437.5 390.6 411.6 411.6 390.6 437.5 390.6S484.4 411.6 484.4 437.5C484.4 463.4 463.4 484.4 437.5 484.4ZM437.5 234.4C411.6 234.4 390.6 213.4 390.6 187.5 390.6 161.6 411.6 140.6 437.5 140.6S484.4 161.6 484.4 187.5C484.4 213.4 463.4 234.4 437.5 234.4ZM687.5 484.4C661.6 484.4 640.6 463.4 640.6 437.5 640.6 411.6 661.6 390.6 687.5 390.6S734.4 411.6 734.4 437.5C734.4 463.4 713.4 484.4 687.5 484.4Z", + "width": 1250 + }, + "search": [ + "dice-solid" + ] + }, + { + "uid": "7411608e7611ffd477aeec7d239f87e9", + "css": "dice", + "code": 59401, + "src": "custom_icons", + "selected": false, + "svg": { + "path": "M959 251.9V748.1C959 772.7 944.8 795.1 922.6 805.7L527.5 993.8C518.8 997.9 509.4 1000 500 1000S481.2 997.9 472.5 993.8L77.4 805.7C55.2 795.1 41 772.7 41 748.1V251.9C41 239.1 44.8 226.9 51.6 216.7 57.9 207.2 66.7 199.4 77.4 194.3L472.5 6.2C489.9-2.1 510.1-2.1 527.5 6.2L922.6 194.3C933.3 199.4 942.1 207.2 948.4 216.7 955.2 226.9 959 239.1 959 251.9ZM948.4 216.7C942.1 207.2 933.3 199.4 922.6 194.3L527.5 6.2C510.1-2.1 489.9-2.1 472.5 6.2L469.8 7.5 862.2 194.3C872.9 199.4 881.7 207.2 888 216.7 894.8 226.9 898.6 239.1 898.6 251.9V748.1C898.6 772.7 884.4 795.1 862.2 805.7L469.8 992.5 472.5 993.8C481.2 997.9 490.6 1000 500 1000S518.8 997.9 527.5 993.8L922.6 805.7C944.8 795.1 959 772.7 959 748.1V251.9C959 239.1 955.2 226.9 948.4 216.7ZM500 430.2V1000C490.6 1000 481.2 997.9 472.5 993.8L77.4 805.7C55.2 795.1 41 772.7 41 748.1V251.9C41 239.1 44.8 226.9 51.6 216.7ZM959 251.9V748.1C959 772.4 945.1 794.7 923.3 805.4 923 805.5 922.8 805.6 922.6 805.7L527.5 993.8C518.8 997.9 509.4 1000 500 1000V430.2L948.4 216.7C955.2 226.9 959 239.1 959 251.9ZM948.4 216.7L897.6 240.9C898.2 244.5 898.6 248.2 898.6 251.9V748.1C898.6 772.4 884.7 794.7 862.9 805.4 862.6 805.5 862.4 805.6 862.2 805.7L500 978.1V1000C509.4 1000 518.8 997.9 527.5 993.8L922.6 805.7C922.8 805.6 923 805.5 923.3 805.4 945.1 794.7 959 772.4 959 748.1V251.9C959 239.1 955.2 226.9 948.4 216.7Z", + "width": 1000 + }, + "search": [ + "dice" + ] + }, + { + "uid": "2dcb438d02f429cbd49c94515bc39498", + "css": "dice", + "code": 59402, + "src": "custom_icons", + "selected": false, + "svg": { + "path": "M959 251.9V748.1C959 772.7 944.8 795.1 922.6 805.7L527.5 993.8C518.8 997.9 509.4 1000 500 1000S481.2 997.9 472.5 993.8L77.4 805.7C55.2 795.1 41 772.7 41 748.1V251.9C41 239.1 44.8 226.9 51.6 216.7 57.9 207.2 66.7 199.4 77.4 194.3L472.5 6.2C489.9-2.1 510.1-2.1 527.5 6.2L922.6 194.3C933.3 199.4 942.1 207.2 948.4 216.7 955.2 226.9 959 239.1 959 251.9ZM948.4 216.7C942.1 207.2 933.3 199.4 922.6 194.3L527.5 6.2C510.1-2.1 489.9-2.1 472.5 6.2L469.8 7.5 862.2 194.3C872.9 199.4 881.7 207.2 888 216.7 894.8 226.9 898.6 239.1 898.6 251.9V748.1C898.6 772.7 884.4 795.1 862.2 805.7L469.8 992.5 472.5 993.8C481.2 997.9 490.6 1000 500 1000S518.8 997.9 527.5 993.8L922.6 805.7C944.8 795.1 959 772.7 959 748.1V251.9C959 239.1 955.2 226.9 948.4 216.7ZM500 430.2V1000C490.6 1000 481.2 997.9 472.5 993.8L77.4 805.7C55.2 795.1 41 772.7 41 748.1V251.9C41 239.1 44.8 226.9 51.6 216.7ZM959 251.9V748.1C959 772.4 945.1 794.7 923.3 805.4 923 805.5 922.8 805.6 922.6 805.7L527.5 993.8C518.8 997.9 509.4 1000 500 1000V430.2L948.4 216.7C955.2 226.9 959 239.1 959 251.9ZM948.4 216.7L897.6 240.9C898.2 244.5 898.6 248.2 898.6 251.9V748.1C898.6 772.4 884.7 794.7 862.9 805.4 862.6 805.5 862.4 805.6 862.2 805.7L500 978.1V1000C509.4 1000 518.8 997.9 527.5 993.8L922.6 805.7C922.8 805.6 923 805.5 923.3 805.4 945.1 794.7 959 772.4 959 748.1V251.9C959 239.1 955.2 226.9 948.4 216.7Z", + "width": 1000 + }, + "search": [ + "dice" + ] } ] } \ No newline at end of file diff --git a/admin/themes/default/fontello/css/fontello-codes.css b/admin/themes/default/fontello/css/fontello-codes.css index 6da952b1c..27e150567 100644 --- a/admin/themes/default/fontello/css/fontello-codes.css +++ b/admin/themes/default/fontello/css/fontello-codes.css @@ -74,20 +74,38 @@ .icon-th-1:before { content: '\e838'; } /* 'î ¸' */ .icon-flow-tree:before { content: '\e839'; } /* 'î ¹' */ .icon-link-1:before { content: '\e83a'; } /* 'î º' */ +.icon-user-minus:before { content: '\e83b'; } /* 'î »' */ +.icon-user-1:before { content: '\e83c'; } /* 'î ¼' */ +.icon-users-1:before { content: '\e83d'; } /* 'î ½' */ +.icon-clone:before { content: '\e83e'; } /* 'î ¾' */ +.icon-object-group:before { content: '\e83f'; } /* 'î ¿' */ +.icon-ellipsis-v:before { content: '\e840'; } /* 'î¡€' */ +.icon-users-cog:before { content: '\e841'; } /* 'î¡' */ +.icon-trash-1:before { content: '\e842'; } /* 'î¡‚' */ +.icon-zoom-square:before { content: '\e843'; } /* '' */ +.icon-grip-vertical-solid:before { content: '\e844'; } /* 'î¡„' */ +.icon-dice-solid:before { content: '\e845'; } /* 'î¡…' */ .icon-hdd:before { content: '\f0a0'; } /* 'ï‚ ' */ .icon-tasks:before { content: '\f0ae'; } /* 'ï‚®' */ .icon-filter:before { content: '\f0b0'; } /* 'ï‚°' */ +.icon-docs:before { content: '\f0c5'; } /* '' */ +.icon-list-bullet:before { content: '\f0ca'; } /* '' */ .icon-mail-alt:before { content: '\f0e0'; } /* 'ïƒ ' */ .icon-sitemap:before { content: '\f0e8'; } /* '' */ .icon-circle-empty:before { content: '\f10c'; } /* '' */ .icon-crop:before { content: '\f125'; } /* 'ï„¥' */ +.icon-ellipsis:before { content: '\f141'; } /* 'ï…' */ +.icon-ellipsis-vert:before { content: '\f142'; } /* 'ï…‚' */ .icon-sort-name-up:before { content: '\f15d'; } /* 'ï…' */ .icon-sort-alt-up:before { content: '\f160'; } /* 'ï… ' */ .icon-sort-alt-down:before { content: '\f161'; } /* 'ï…¡' */ .icon-sort-number-up:before { content: '\f162'; } /* 'ï…¢' */ .icon-right:before { content: '\f178'; } /* 'ï…¸' */ .icon-dot-circled:before { content: '\f192'; } /* '' */ +.icon-file-image:before { content: '\f1c5'; } /* '' */ .icon-lifebuoy:before { content: '\f1cd'; } /* 'ï‡' */ +.icon-toggle-off:before { content: '\f204'; } /* '' */ +.icon-toggle-on:before { content: '\f205'; } /* '' */ .icon-television:before { content: '\f26c'; } /* '' */ .icon-picture:before { content: '🌄'; } /* '\1f304' */ .icon-shuffle:before { content: '🔀'; } /* '\1f500' */ diff --git a/admin/themes/default/fontello/css/fontello-embedded.css b/admin/themes/default/fontello/css/fontello-embedded.css index 9141466b7..338d10477 100644 --- a/admin/themes/default/fontello/css/fontello-embedded.css +++ b/admin/themes/default/fontello/css/fontello-embedded.css @@ -2,16 +2,16 @@ @font-face { font-family: 'fontello'; - src: url('../font/fontello.eot?47325343'); - src: url('../font/fontello.eot?47325343#iefix') format('embedded-opentype'), - url('../font/fontello.svg?47325343#fontello') format('svg'); + src: url('../font/fontello.eot?74624895'); + src: url('../font/fontello.eot?74624895#iefix') format('embedded-opentype'), + url('../font/fontello.svg?74624895#fontello') format('svg'); font-weight: normal; font-style: normal; } @font-face { font-family: 'fontello'; - src: url('data:application/octet-stream;base64,d09GRgABAAAAAE8kAA8AAAAAfbgAAQAAAAAAAAAAAAAAAAAAAAAAAAAAAABHU1VCAAABWAAAADsAAABUIIslek9TLzIAAAGUAAAAQwAAAFZ8JmEvY21hcAAAAdgAAALZAAAHVuJYdXxjdnQgAAAEtAAAABMAAAAgBt3/AmZwZ20AAATIAAAFkAAAC3CKkZBZZ2FzcAAAClgAAAAIAAAACAAAABBnbHlmAAAKYAAAPj0AAF8qSERecmhlYWQAAEigAAAAMwAAADYVo5UkaGhlYQAASNQAAAAgAAAAJAf2BGZobXR4AABI9AAAALgAAAGAWuf/hmxvY2EAAEmsAAAAwgAAAMKW7X9GbWF4cAAASnAAAAAgAAAAIAHUDLhuYW1lAABKkAAAAXcAAALNzJ0fIXBvc3QAAEwIAAACoAAAA9u79QC0cHJlcAAATqgAAAB6AAAAhuVBK7x4nGNgZGBg4GIwYLBjYHJx8wlh4MtJLMljkGJgYYAAkDwymzEnMz2RgQPGA8qxgGkOIGaDiAIAJjsFSAB4nGNgZJ7LOIGBlYGBqYppDwMDQw+EZnzAYMjIBBRlYGVmwAoC0lxTGBzUWP//Zw76n8UQxRzGMB0ozAiSAwD2uAwoAHic3dTJTtUAGMXxf+FyFbyg4gCKKA60ooIDTqA4z/M847T2AXwAn8CEhTv3RmJc+BS68QnY9dvZanSLpz0uTIwbl96bH+U2t0kp5xygA2iXbdKAts8k+o3ko84m9fl2uurzjeS1Pu9nSN/rT5vpq/RL1pn1ZDNzb/OuvDsfykfyqfxDTBavi9niXTFXRNkqh8vp8mn5vHxZfvr6bH4e0o6/XskfVz7+/cp/eiW648m/vmf/eL//9a6ubNPf3tATarKAhXTqOSyiRTc9LGYJS+llGctZwUr66GcVqxlgDYOsZZ2e0no2sJFNDJOSsZkRtrBVz3OUMbazg53sYpzd7GEv+3SXE7qfAxxkikMc5ghHOcZxTnCSU5zmDGc5x3kucJFLXOYKV7nGdW5wk1vc5o5uuPmPz+h/erWqH40Xvz49qvJmVZrTpuk/S/rKqvSnX6xqQNZpVTOyHlMCyGZMWWDurSkV5F2mfJB3W9WYfMiUGfIRq+4unzKq734wJYrAlC0iMaWMaDPljWg3JY9omDJIdJjSSDRNuSQWmBJKLDRlleg0pZboMuWXWGRKMtEyZZroNqWb6DHlnFhsSjyxxJR9YqmpBUSvqQ/EMlMziOWmjhArTG0hVpp6Q/SZGkT0m7pErDK1ilht6hcxYGoascbUOWLQqpWLtaYeEutMjSSGTN0k1ptaSmww9ZXYaGouscnUYWLY1GYiNfWayEwNJzabuk6MmFpPbDH1n9hqWgJim2kTiFHTOhBjpp0gtpsWg9hh2g5ip2lFiF2mPSHGTctC7DZtDLHHtDbEXtPuEPtMC0TsN20RMWFaJWLStE/ab9NSUcyaNovinWm9KOZMO0YRpkWjbJm2jXLYtHKU06a9o3xsWj7KJ6YNpHxqWkPK56ZdpHxpWkjKT6at5Osz02om3xo1uEvynRrc07G3Bvd17KvBAx2zGkzreKMGD0l+vKlpc34CCa1AtAAAAHicY2BAAxIQyBz2PxOEARKOA+MAeJytVml300YUHXlJnIQsJQstamHExGmwRiZswYAJQbJjIF2crZWgixQ76b7xid/gX/Nk2nPoN35a7xsvJJC053Cak6N3583VzNtlElqS2AvrkZSbL8XU1iaN7DwJ6YZNy1F8KDt7IWWKyd8FURCtltq3HYdERCJQta6wRBD7HlmaZHzoUUbLtqRXTcotPekuW+NBvVXffho6yrE7oaRmM3RoPbIlVRhVokimPVLSpmWo+itJK7y/wsxXzVDCiE4iabwZxtBI3htntMpoNbbjKIpsstwoUiSa4UEUeZTVEufkigkMygfNkPLKpxHlw/yIrNijnFawS7bT/L4vead3OT+xX29RtuRAH8iO7ODsdCVfhFtbYdy0k+0oVBF213dCbNnsVP9mj/KaRgO3KzK90IxgqXyFECs/ocz+IVktnE/5kkejWrKRE0HrZU7sSz6B1uOIKXHNGFnQ3dEJEdT9kjMM9pg+Hvzx3imWCxMCeBzLekclnAgTKWFzNEnaMHJgJWWLKqn1rpg45XVaxFvCfu3a0ZfOaONQd2I8Ww8dWzlRyfFoUqeZTJ3aSc2jKQ2ilHQmeMyvAyg/oklebWM1iZVH0zhmxoREIgIt3EtTQSw7saQpBM2jGb25G6a5di1apMkD9dyj9/TmVri501PaDvSzRn9Wp2I62AvT6WnkL/Fp2uUiRen66Rl+TOJB1gIykS02w5SDB2/9DtLL15YchdcG2O7t8yuofdZE8KQB+xvQHk/VKQlMhZhViFZAYq1rWZbJ1awWqcjUd0OaVr6s0wSKchwXx76Mcf1fMzOWmBK+34nTsyMuPXPtSwjTHHybdT2a16nFcgFxZnlOp1mW7+s0x/IDneZZntfpCEtbp6MsP9RpgeVHOh1jeUELmnTfwZCLMOQCDpAwhKUDQ1hegiEsFQxhuQhDWBZhCMslGMLyYxjCchmGsLysZdXUU0nj2plYBmxCYGKOHrnMReVqKrlUQrtoVGpDnhJulVQUz6p/ZaBePPKGObAWSJfIml8xzpWPRuX41hUtbxo7V8Cx6m8fjvY58VLWi4U/Bf/V1lQlvWLNw5Or8BuGnmwnqjapeHRNl89VPbr+X1RUWAv0G0iFWCjKsmxwZyKEjzqdhmqglUPMbMw8tOt1y5qfw/03MUIWUP34NxQaC9yDTllJWe3grNXX27LcO4NyOBMsSTE38/pW+CIjs9J+kVnKno98HnAFjEpl2GoDrRW82ScxD5neJM8EcVtRNkja2M4EiQ0c84B5850EJmHqqg3kTuGGDfgFYW7BeSdconqjLIfuRezzKKT8W6fiRPaoaIzAs9kbYa/vQspvcQwkNPmlfgxUFaGpGDUV0DRSbqgGX8bZum1Cxg70Iyp2w7Ks4sPHFveVkm0ZhHykiNWjo5/WXqJOqtx+ZhSX752+BcEgNTF/e990cZDKu1rJMkdtA1O3GpVT15pD41WH6uZR9b3j7BM5a5puuiceel/TqtvBxVwssPZtDtJSJhfU9WGFDaLLxaVQ6mU0Se+4BxgWGNDvUIqN/6v62HyeK1WF0XEk307Ut9HnYAz8D9h/R/UD0Pdj6HINLs/3mhOfbvThbJmuohfrp+g3MGutuVm6BtzQdAPiIUetjrjKDXynBnF6pLkc6SHgY90V4gHAJoDF4BPdtYzmUwCj+Yw5PsDnzGHQZA6DLeYw2GbOGsAOcxjsMofBHnMYfMGcdYAvmcMgZA6DiDkMnjAnAHjKHAZfMYfB18xh8A1z7gN8yxwGMXMYJMxhsK/p1jDMLV7QXaC2QVWgA1NPWNzD4lBTZcj+jheG/b1BzP7BIKb+qOn2kPoTLwz1Z4OY+otBTP1V050h9TdeGOrvBjH1D4OY+ky/GMtlBr+MfJcKB5RdbD7n74n3D9vFQLkAAQAB//8AD3icpXwLeBzFnWdV9bunp6dnpqd7NBqNRvPUyyN5nrIsy2NZlmR5bIQshGyMUIxsjGRbjnEcLsGsA3yEEM5mnSxHHJbFOUJYAlliSMJxLMklJLsfITmSzQK7yd6XL9nLmeweyeXYPeK1xvf/94xk2UCS+86Wuruqq1tdVf/H7/+oIpSQiy9zZ7gyaSaFsurzqDwnEEaHtzxtj02VNUoJI4cIYxrb3FhWocAWoI7s3fGVJtPmBLuDmh7qD5g67aKSGEsV8iV/Go/JUjHbTAWLO+N5uVsLaP92XrM02v1dvZkGb3dFtWM0GKVvap5vV9/UXAaV7rpL8qm8TO1ve7SA0Fq17WorfMny9ymkjZTL3nCDqbsVWRIFjmp/0IeWlWTCtnwGJ5gdtNRFPdSWSra/9tnx2Pt8NvvoE/80d/M/f7Htb/6mCh2w1ffuQOyx2N/+beyxf1pYoGdrfQm/T0+I05cvczs5F5HJHNlUHtizo7KBJ/xalVGSb200eI5yw0TghQWRQv0CIZQsEMrRBcIxbgE6t3fXdduv3jzS0R6L+n2SYHXQfCqmUytbTAZM0UNFybItU9JpGvolSvC/g0Ln0qk0dBKOqXypn5ZSXTRD04V8cT0tluqVOeh1sQT/19Ks1UwtG8bBrr9MgooIZWvHbx1nk0cmaViW9qkuf6soeMbckrS1IaRIvHGbrBmN9lWiIQ5ZvCC3qh55ryRTVdgn63ay1lbeGgwpMue9TdKoJ2xfJXikEZPnlVpjlU6vnZg4OjFxK943IoHGrKiLgTEq9LnlSthQpZsUrU8QyxFBF7WsJ9zooZrktG0IRVdJmmSOrWjqWisIG8P1piEDyIUQEebgMN/FbYY58JFG8hHyVfK/yEPlz7z1d4zX565ngvzqC4c4Irz45CMfGq9sijcplDzzcJljtHcVE9mfHGcuThr+Hz9m+qY7qGtQpbIiKLJwgIhMYqJ0gOiEV3R+higyUSaI4KaECmSGMJGyCaRSiaPSDOFcLm6CcJxrirg4V+W///yvvvPE45+898D+2d07d+SzHe1+0zT9Po8QcqZYNGGKhXxKpzZecVgVodmidPmsv+ekFy7N+Tr6B8x5wHTeiFNOAya8zsIjMgq8DYih9kp4BbwNHoYCvDKXhadteLnzAvwe78pnU2nn2T/wUfo2EsHRCfpUZ08nbe/tpPXzGzJ/raj5m3leGzSEcsASJd69T1TdfnuAd4tjvJCQ3dI1giwLk5Kr1k4VxbI/KEocNqTQcoPgFq7mg17ZLV4jinTvdlENs0EqBJpcmkvq5Ogg16RK27dLahOXNyjfLnu9YZtnG1lYgep663bZac3/zsZL9Pzzpk7W2tzU3s52wGFte/v3boJv0f12Y1LUeO8An3WJfY1uGT5Iy/L8Fo8gyJ1a0HJT4DRhuaVgQEtV7gs5LV2rsSUvRgLuRr/G5Op/3abIHn29zlhrY5JSV562MgZlj6xsUxTDjXciSh6IsNWmabzlNhSWg3u1p9J4S8unaw8p8JC8/JCL0vTyQzIh3MWLIMvOsW+RBrKGbAbJvK7RRzmO+UEmEzYMAoswjhwAEcYInScgyTmBTRPK83SCUMpPEZ7ylcK6VQ3tbSJQedKLlKuzdDwGsglIJO01rVJLtugvdNGUmG6JiZIJAinCl3LZfg6oB4jaa4pSSyxV8uaLuZYsqBpf4E92hBN9jSzUH2uaeiDg00SuCHKFcRwvXngZrrbPH+GjvmhQY65QxIwIR/ZH8sP55IWXE0WaT3LFJHT1SdO4ZTQYirBQxBq9xTCrEyBiVDau64LAOE2c3jCxiwvrJlRaWoTtmgiOFxbPJPO0mGA3JPN5kDO8I+u3sosgcUwYowS5u2yDDBWaLF3iOdYAAp1wFOQBDxrMBxosTQQmgIznGEh7wqHwp+RGkeKIjcOJ8tfikG1pLKfe3ZIsvLvhjrKPkJZo0DY8IItEIpqSEOiwS2kpkAvQfDwmUTFg5rIlWoSpjRdQkacd7Wd9N3tnboTeoAl89Qe8W+BpFxc5V+0+x201rz93vbnWutOUcnfm+oYZkG/1hzwcaYb/4Llq15v0dFPg+jd3BQJ3WgR13sVFGIcbQOfFSTfZUO5HedhMYQSGgU5AtRHugEA5Hn7miQQdkegM4UWRnyA8L04RkRcrgUA8kYwnTFkId9BCPiXF4QB0IkoBONgBoJMcHOxctlgq4AHASCzD+mkWBvwLln7S0oc9Jj2pW9DFS4Wzh79z7q8Pih954e3nb6e9I3D3JNyA5qZnZSH3oZeOHHnpl3jAeYX+fJP7W/juVaRENpAtpL2c3jI8sKGvp9GrS4KLbEIkwsgEgg82hTik0tHm6+BAWftTRRCrIlIxLWVLVrEE534KMjBdsODCBnmmcyAvW1LpWltLhKt+Cldm/coGMZ9KUz6VVwogpyNStrWrMba7oXGqSQOIw2govvrWVAvfsm6ye7AzsKr6uYnAgFjslQN8e1a7lfWVebmnlz7ID/RSUejN8uyFZNRqfK4pHvlSvo8m03w6KTcb0UCLFk6psVUDDcEhs+HwwduafeIhenpVazDxg7ZOPUWb2yLRlnfWxjrTlHQEUy3VrlRrF9AjufhbkAvHiJfESI4MlTe6GOMZTDtMOeGBaHnuADQD8p9fEg4iYbzIZkBRCo5wEKaIQIWKbSXMQNCShMYO6DLoBjED018SpQiNArOmpBjQL2hDADIw6wIoGj6aQM1W7KS8DdLgmuOxU6+eih2/ZstPKf+z6tcM19CsYRmD3YA3/861rfpO9e+r72xzubZRmaaovM1Fe+/a0Lvxpk+z+2/e2LvhrsP33EM3Q9vZTS7DcHUPGq/4/R87ffpj/pR5/DR7+HaTOP39Sz7hYLomkifd5VUplIAU+8ovAIcTekiAbhI2ASdGphAHVqINbT0hH8o9Pyr1CCtSU0L9WlfSJVSKMNlYidqTFvN4K16rPg+qkLX2p9g1ZvUta61Z/WAg0t70ZtNIgJ40Xw9AXZMJeEcMBODOSNMx50aATUXaWaqcELurfxeBRgGsHGk619ROI9iwyak0vPDcWrwVcWrruPVpR9Yngd7Xl/s2h2Ha1lOOtKFgHVaBjYeylA0C+wJUhTFBvMocfIMcwLHKQLm/Lx6L8yCAKHBnPJZGaQ89K6TyxcJ6VpRK/awEgj/vcK1t4iQD+TdzDphFdQDjkLaQu/uhVTpCOd/cs/Pd2aFrAo0ghSgDmcJRQHs6v2kbnXv2tWfnXhsbFDS5UeEFANZMlcLm5FC2+z8cinp3PjqwqULdIxP081vvqiirbYFXJZSfnAgviQhBn9F6ZOO2uyqVu36y8What9QWFyeAymaySnnBXq2Mctmu/N2jHe3pWx1M+WXOBzTgASuqi6wlG8lNZLb8gWs3MVFua2nwKlQEUh8WAEWCHKbkAA+UIIlEmge4qMi6MuNxM1lTASTK4jSRXC5pgkgSgkPJVdkz+4Hp63ZsH7+qsnl4w3ozYabwX9wQmjooaEAH7IEGRBBn/56y39viNSMUlGU/pTkY1bgISgHbQMM4qNK0FyYFKXAtSiYkw2aAiRaNqHJCVp3DyUuXJ1SpdimpI1VNlhl9lcly9RPnG3nhyyJP/0mVi/lktRtUYwHbPZlWOq2zdruSfgoG8mvVr2Ml3YDH97muzjLv4q80U1VNtmeDALJhO/zFxV9lBgcyzO98xPWBMI2Y16sOJnmaO8NeAl70wizs/0qCco6FqDj6VQTLSuQPAEtyHJkFSMIzAYA6kDCbAJHNTaGVVUH9uqIl2JTv03BHWS0kWnOZoA8llABknaHFCF2+8CM6EQCXAzIBkm9BI7OfFTgEOEVQVhEmWniP7mnvbWeZYob+pn4xZGqL/0lyM+qxmM+7+G2gP9nYfdhjsqD7pKKLKpMpe1i3pCanOZ9qXrpg5erP3CYbjOmNVtiydDFohDn6XTNiUVEzNItDpUxhnF5mj7H/Ra4im8tDRJZkYFjgII4dUMAaVoG7JTIDgw2jB1KLUjbFw21WoWRk0/r+nkKmsy0dbbItwy3y5Cp6lQtNazRSQKsVLTtQI7oSSOZUDbaJaZRiIKhtZGHQ3jFJTJUKDlEW0SgoZi0JBLiFFNcEyi6dYqPJYjFpBUIW7W4+aehKYHD3IHV7VfNkSyf1WcHGVLGYCgRCQZqJnvRrXn1oZogGVMNzsrnbNIP01ODMCHN7Nd/9zRmf1RBK5fMpy4LXZZrvN3TVHJwtM3zddS0Zs9EM4u1QQ8CkmZbr8DaBeScXf8adZ38PCBc1/Y1kL9lT3t0RYxLdWwhyTLJhhNa5mMwNUEHuExlQzTCMHQhBiUloxAtgzSMIJgdBinIy42aIDNh+nKCFQgRZGN0ze+PMdTsnrxm/emS4p5hO+hWUkQAEwN5KoazTubSj9oolMKDSeZCYxVwpn84DcMs2gfVUBIswYHloAEZOsEooWE0QpukUYKN40vJZODUFZHTnoujHMedyHPeTyNi0yqKMn+xvNzIjsz35cl+2zO7TeJBD/ENMzojqw6LMZF5+Wpu8rfpYOMbHQp2Ph/sicqKPyazar06O8ZNi9uluJk7y6mNMnlHvuH+EZsdfGGApke97ridVmcjI4lDvRDlrzAbBgC6CWgwf5OG1+yz4Q+3wG9k78lNRe00Ld95hBaeGRB87G66+9Y7IP/Yo43kfs+TqC1SuzQfYHMtydj3Q7zXl8c1UUtZQQWqjnNAANLthdUtN4ArDRJEUmAtBWiACJyCRE9BKAMwcmEGmZBG+BsqVrVtS9X9xFcRqqU7BNUGYtd5VvkKsXln2X1EGkTmPIg0Or628lPZLqnN4/T0bZJYu1PIzeIWHj1dfdITjABy/v3gOr1kQjtS68DIWuCIcazr7E/yXuSxZTfaQVeX267aPbV6/rphvMogLeHkYm4ANQRliFLp3/OreNau77QAPnFxwfAQg/fOoeGsGO5RAYC0Z9BICLzvCAMcG7BZab7Hivs7sWoMAYPUMAwpOgzAAisY3mq2bmgLJVtrs11fpIGn759Z0TPTHOJ7XV3m80dZU0+2zhs+kF06x/6IJjM9O7ZrM86DkExpYMiqNRbzZIU9VlC3N7lvdKMicoruTqyVPyOXyj6Ybk4G0r7fDl+4ozfXTVP94e6nR397ra/MnG9Ojfk+m1eftA/DzNzEjGl811cPyuzriUSPWrbd4VdA00T5DMYPSx11SKtauNaR8sU5VNUTVEzMQ/5+/eJr731yIdAD+nyTTpKkc2jFVXs+TQUZr+IfsbQo3hryOw9GvUzOOA1bjZjCvcCTxopS1s3gDnWwA5GGIANnhBU3B8CctCWQgGmTQBXTRWNgWmjovsWjJdl75WVlkXg9vaEMuN4vyYnsEKvSUdXf+IyHNvDU61hnjZbWi8+2979DTPrPbMqq7ZXlEY1kjmt3X0zk+OBjUYWiPaxqvxXQ+1ZsSWxnvu/B4tfKvpi9j0fNy2PK4ed1X0TQW5MVwt6hHjJ0ik/PBnt4MA+6W+e5gtpqwjHbdR9+QtX75G/v6p0Ja57ZtQ8HeEaunR/SJ2qCaDbf2a73A8YuD70z+xjQyvrpP9Drg6QQZJteXd25MMlHpooKIslUGduaBi2VRVsQDEtQyUWAHQBlxIuPmwX5Elj4A+l4UZHGmzt+g3acQhVaGNqWSyWIyVTATyNXUDCD0dNxiy6wseigaY8tuMH+d1YEHUIIuedNKBXSXOR4yi9uS+MfPXP1g34gLVex53WLK1tbZ0ugdaTHIa8CuumnUascPbYFKW9AWJI0mfvGZq0/jQ0EqcPSB5/vXjLicx62wa2uinY72qz1ujT5Xr9laK4t8vSXa0hcvfot7k32ZBIGrt5ZHO2BAUqBk0PXNuGFFZGQQRkJcIACGAcyCnQXWFkPvC08FfhpHm42jdTqJ7D/qT/ltf9hE+ILuY6kFD6h30C2Hehh9KugNxOFCPwtaWi2orAGac+dUeZGosiidFYRnBI/KEeikc7WIVyCKiKrDzb+cl1SKv+JZ0SOcFUCiqbRVFs6KmjgPP7IKP1Dv9O+3fAPQgo+0kc5yG+F4bgFtREbrShRws+MZQLOCZ5V4b7xYEIQGJwjhYKwM2CX9iG+tdKAlJnpAD5bqQtjpDt/g+8/BydTiGX+Yel8ITibZDf7IN6rdhcPxF4B/6Wjumdwo7cqP0PVe8x/CrXrMOf7FznzbP3CSwFgwNzqa843WfBsXLt7OvcGNEjfoI/krzSbAslUdpaIjCMUSulipRfDasWAcPiZHU9PjWmLyxAQv5oPc/lD10aOpSVn2RaIxQy63HqUvPRFTx6YTEz4txIt9T7DHQ9XBI6kBUY9FoiCGJlJH6KTjX3qeHecY6SQF0g+8M1W+JhVttgKaKHJ0WJUYx4s8Jx5AMCsK89A5GaiC8jMKBUUqTMBJQD4RSKW8vlQc3Lh+uDy8trfYX+rP57q7OtpRhDnAzkSnBPygBe5ESrw1wAaSPlBEu61WFNAWR8Dnr51Miy5dsOOjYue23kx7ez7IDw3NDo2M4KF1d28+65QXn23taW/vaR0M47GVPlk7s3vHIr2T+aCuG9HuRGQsOzSU3RajH4lV8KoSeyUS8Vl9mahTDLe29ra2Lg7hsbeVTdXOhNR9EjvBLqjhhlI53wpcIwMLgFGGzMEhvOcIIuCZFfAAHWsVAFyFVM5xUQZq7kbEsSVkDSin62W7Xo6vLO8wjQu/ctxInNdj0d9Rmh12Lp0jNUYcT5VzpPowiAO4Adek3pf/xFvseWKCxFxDIuXGjBf6QYcdV8MCw5BXId+atn28YHUkMQIA/FyiDs8Cl9iWSTkM1mVoyd9P0csPYKnO9Oka54MiMukURk6qF0REsQYfFsUf/1ikg68yXYzJIv0B06S4JNP90EIXw4Lw4x8LQhguofUmKAJx4bUItwz+Jz8WdbZtsUsCTc1pMnsVXqAyvXqy+m+1h378E2gNf6J6QTBq2OUhwHlR0kryZEt5JBI2DZ5JIOd4tgJfw7yBhKhJBhE9EWwcToybFGAeuVFAyKu7uzKrOjva2xqCfhlwdRKFQAGxDXoQ0d2AYj6dAur1UCuAZE4B2SRzgTgAl3ghV8ix/c9e+GkiMz2UkRGs8rzMi7v+cRfoQ6brOlMzI3TwgQdm4ed4uXfuZV2LDfVZ+W4t1G2YAF1SxSNHilNyLBzhNS1TtPqG3sK2DxDHDquC7tsB8q6brCv3rgLjVqEOSdYdoyC+aU18UyJQMEBB8KEBis5zxlfSaX864VAmrSstR2fpzIywmqMEZxfjd+gN5Wrqy6HK87bfC8qpd66SyVTmegeOtvFesSIwse9LN1z7yKERvnzrg9eNP7huxNvJvgX6aJWxdSs0PALtewsiFbbyujg6RgePPPylh48Mgnry+Wu0CYdz7KvEgh4NI+pcm0uFdY2XHIcYhmR5is5qNC0xqMntbUw1NrY5AQBQyDgXeQcZibYT1grEY3Yhv54BrdYFDhBxE9xoyVBaTGNLrLTRZESvMFCx74sDLJ4sNEdXj2juw9384YavWw+uSWboruM7t607FWTxxZ/rJv27wUxzfHVbfMPjvsaj2YOeubtD4lh6V09XG/MfO+SSS/a6kw2PN6pDYXsyV9m/v3JzITKkNj6e5FmQ7pg75mcdbf3jq8dU6+4oO7mmsSDjfF64+Ap3D/sNCZGWcgSmTcD+XoazzXiLNxFz5sxyvC46hWMcvS4FPCCj2tythmpNMN145ZVvhvUJSzXo/UanQccMq/qyrmu0WH3ZNGnRMugpw3Bkwp9xJ7kIyIRW0kcOlQ+kqcLTYUNlvMIvuCV0SB7yu5giU9GjiNOml3l0qnEebdonMHieG8czRyYZujxG29oCAULa+tr61vQUgI+6Mh3tgdZAazLREm2ONIZsC/6UGff6/d4AaN8ksIvpgARgGdC2JTDmvTQQ9zr6wot8lO+nlhQQ6nVpr9MQ6gJeVi7FOmM9PbFAMEbp3aVod7SnJ5pJsMXPlKJdUQqF7uivDn3BjsXsLxyi/ycYoVG7qtCrDlVVrKP/eujxYITFrMcPLVT/nVPz8QUadKqq50jNfwk9PMmeAq2pkFDZVkSe8g5J1gLsMC0+hsH0ZKElQJPeFi/9m+p67lh1kL5w4U568IcHDlSf+WF1C/2qI5u+ycXYL4kXZhkwihexKHr8QTA5/DrjoCxk07qvFzBWmheCIHyApLscf65RjCLdJpc0JsdHgplE9MXR8eMvPkvJNzLV4D1P3w4/22LhTDT6YvuLlHz1xeNTo09M3XP72btvx+8mF+dARo4D4hsrb3VRRZVURTrgppKsSvK8iIIEPsvByvAzr1EZuI7IdJqoqjYCvOfmNm8or+tbuyafy3TCR3qTgRa/qTtAuY754uhUcAqoHwBFFZyJXoEQcwXojlNA9QIUHcgt40PXCVfEfB3UmOukGlFPAtgded3ECyzXb7jCrqUb0JxO664/pN3KNyMOe+fiV7l/5jDIFSc3b3naNTZVboXe82QBMA/lYYoFuoDmgyjcSESOE8cJoKQdhBO5rY3l9Hs2FRaubLmjrHljfi9Y+16vgsMkxJFzQcbWwWeqC223nIRx9RY0J9I5+jblH33xMfaGzyeG+YR14VUrwYfV9od3P3FW5ltpZ6vMn31iNye/fRHmtHpW7fSdNkMh83R3cP8d8sGD8h3OXDty9VHShBE0xG9AuiIR4TtByCw44UD031E2DidGp3i4pBVKQkG/V9dcqiyJPGmiTTLCuawzT4VcWgI1B5NXzGXtlBNDsewie2f2vvtmX5x7+kv73hndP1fRRfbQwZ33BcP0rXteuufFX/zixX2n9jEttP/BfeO8g4HPXzzEhbhJ0kBWEaPs9lGgSMAgHe0U/5iF4NfDUJrj6JQcbYvWbDEDYlx3NBT8MjCJOdGc2TtQPjq0T49WNJMZsklZUPedODx3dn/ENzEbkWVOYJa00dCDYGKx2SPf8WnqN7XHwrzOG/ruSIjekR2a+5xp3vFC51y/2alZiiGZwmpNNphOwEokF09xD3LtgAMbSRrs9wGyjVxPbiYfK9+eiAJsZru6U5Ggyksc3ZoJgUwQyTV9RY4X9g1v6u8B9McLw2hkgt15QKboyRfnAV9TwNdEQBNrnoCu46V5IkkHCU4IygE6pTjz0RSm5KY9105Wtqztza2Ot4TTTWnioR4V/QQxKQX6zLLFgGmLUkpyjoC1oYY692CWoMafQkcKtsxl8Z6Nhqsooac1LdZegTdozQ2DVkdxHS1yll1PxEgXf2qZ3Z3F0V19It9fNA6afeZANpWR6VjY6u2Z2HbrwcpkaO6RO3g91ReK6MHpVuNoyujNZm4V2QMvHt45qA2C/W+doDMP8OWBYLl7Vp0NIRia3N9bPEjfUfOV0c5Up2GIRncPvzsWOnx07o6DM/3ZIO3W28ORfj0RquaDU6YaDHdmTHn/XfoDeobXT012Z9VEZebpxOj9dzB9N/3hPa9YnT6xhz911LTU9sV/VmVfbKzcrj3isAPo2vu501wnzKofrMXd5Rs0wErxWNDmBQmEsQR2sCQcIGj88PMwWQpIQcIQ5osSJ86owO2Un1Ax6jMF9jKtBEwV4FcqEY00NphtgTZDV/yqX+BBZsqOHVQEu5QHiW7HxICIfuxCngOYhZEpEIDoLLBhloDS6XdepIZY/dfqXdW3RKr9pj3DYtFU5tnI/ryvO6ir7aHuyNEeI29pWiLEtbPqO7WWKr2N+h7oDoWjndHexS/l88FE6pGZ3kwoFntwHwGqRZl/BmQ+mNoEvaB+YgMlN4PUywE1r3U8oreQB8t/siHJmnybVyU4fxMbbmlmTX6laaKR+htsN6fIfuWGoKVxcsArgeUjC9OmASrI4+KAtHk6HaI+X2QqSiMRbURXER6Ep0g47A5vPnzowNxNe2+cuf66ye1bK5sG1/eD/uhd04Oe/tVdbel4DPEBer8agkhxfp+3/s+IgcC0QVvgb3rFmV5x5pZj+xjWzxbpival+j27fq9UD1rV3KyFJTM/V7+SUHsNnznz7bNnv710pJ995pnXzp6lT54589ozz7ykiQlJpbXjZ52q186c8aly3HFgxGX19c7whbea2tubRvLJRDL/WjERTxbpcFP7VWfOnEmcPXs2cWbxpTPn8ZA4S7vPOG87g09XU3DvzJn5FVWdiwV8FftuU3sxmc9jfAOP7WRJxn+ePUgC6FH0UDTpHNhIlpyKpm3W8i1rgeIlrVtTvdznjWoUMGL1lx5PBc6P0oNwrBjMsuCGB6wbp2h8ni4YRsVzGf9YQDdT5Wt6iowT/MAlwD0ij3wD3AOyj5uvu5FA2xBeJPyM7OiaCdnRNYgzKsg56VQs2tTo1RVLtWpco6zkGj/wSzGFYSLJtGw/Sqx4DGQUAoZ63pmEasLjpLDVaqGHV/DSC5EUS0VYGI7hx0Nz4+XWQf6gYWzTDEPWLFUNuESd38+LVjhzJWMtRlLhSCoBv4yOxDq3VULt+3g+FA6aZtBnabJHkr2KbPbKvGaYhi/mYL3fcvPsW6ArymSgvN7EfsPgMLCUnMFhODhLVih1cvxmsLDSCWnFG5LtybTjZDMtRApO3LvulArYTpVD8V4nhyXCajOM8KvmpiwhQWPcn+4BgqCyfHbj9PTGs7KKkTksOplHz4pMZEx0VX/gClvoQ9TPW2EX7XJlmE/QwRyY3kjv2Tityi5FdIPlnk9Vb4UHeSbTTt1VfVU1PWcs/TWPSc+g7xIqSI0uAVvdw/mAShrLQZdDlzqlm5bJMhh2oDOodJ1lmCj54xxYnhGuyM3phjxzz0R/7+DRsZ2zz+3aedtIz+DOx9k+UdfufSAS6o62DlQfYa/GBlpjg6PZ2t+7+OuLf8T9E7eJrCGestZJySb8I36K1jsQRmrJk4YhirqjreZDt616agAa9lKhWKvDlBqRu3bTDTv/auf04PXJeCh0De/XGgcysi4pm0INlr1x9Obd39lYWEOjbdvHvrfnQx/+0K6ZrjhjPSVD2RRvEZPpwev/6KPHjt/I25JXyvQ3upXRmenrpjeOmr5NW9c9ODZe+UB5XSxG2/z+oc2Hxndc+9gma8lXM8e6QV43gl22GzN+C1nGuCIM+tRWBvASk32B1dBJh5w1DyTHCwx9URwyFgWcToibbN4+HmpMpJtCEtqNYDKaEYpBUoc8+mm+ljMCxCTgUID+L2L0z5/vZzBKhRJIC9ts5qyUFTd1BmAsJRbEJtrPCvlsAF4FJnYXc/JDWffM7t0zT77xJJ6+9KMvVSM+Xt51211TemRm7tb75bDW0LSLzb49y+9c5fd6tYjGVFHWPB4W2ykfGcwPfETc1eFzC5rEs4Od+6b7du3NHI1t2xY7mtm7q296X+fR6LZtUVGXxXxWNYvVUV8koQfDuyLZYjEb3dnhDwRYt+rz6arHMFiM7owO8KnuWCQS607xA5FdbX5dNjWrnpPyW+4RzgWoE1BcectayotJQGCo+oErJIYZuTwT+QPOkCJAq7HrMpuSy9jUtAPpwppCzkkyC1zSK6WWrI0AX4zDmLbUubQlW3TcFQjKLD+9ZBEtiWOT801vrHYjn9JX4xGFkxoBjbg1JxWimKCvJvNCAnAI7/pYdY07of9a19fpCf1T9GYo9Lvpli/XHh2YpjrvF8MC5ep5FMXEv5eFOHSNCtVeXf+1096ND7rhDfVx8ddjpB3lVhBHDl6dISit0a+JvnPKKoxEGi2/KhEP8wgoqFd0Djqesr2XDYLFPrji4/O3XerewAz71vLH4c0dy3em6cxlOYAJshozpCIBjeMZGjFokjKBzAD0Rt8WWi9151bANsNmg+N2zXfRUhF9OzEPTeNBNJuphAcru57aeLg85+9j6p49qpoDo3PPHldEzbpccHZl1QicoTKnvrEi9e+nOt5tci21gsvLy/9+ZQIgysNfsR+xu6EvkXJjrMGQeFyFwNHlBQfw3aZj79cNZ+kK72ozLV1yxrIf1dT1ozX1DGfjUtnjefRRzyELLz7/ec+7G3oy2MD5pt86+Udx0lZOgULiHdRwCKgGiRxOQOWOZ6cSzyXjufiSzzCN5jyqo1Khnp9RWgJPNoInzhe1zkWteStKzwEXQCFiz8MFFr6GtW9aUBt4s15rRbH5ivkOkBjOt1TTmyuWNDC6cGU6TcC2TdOJ5Vw51RamqNorJ/h7as4Vdv3j7XDIqerLMLG0S71vZT7ncwZO+89vx2lvhhYqNNiyYiJxzJ7nnoBvTJNkOYYZejiJy846tAgWCM/vtRJrkjH8LK9jKEuOjkZPjlXyO3AmVUthl5Zg2al9Vw/oYJdqGreG56VvSqJ7q6by42s23vRpur765w2joeoTZea76VTXec2ghvakxhTqUnRD/Vr01E3TI9UDzc30UyMr/RphmNkPfyXiDGPNvdGGYaUFRQZZJqI7FQaUd1zgNzqCbRwF2w4UbFsbQQa8Z1sne/iypjvK3qampnhT3Ot3HB1FFYRh8ne5N9JCMufNebm//t3uje7qheqFx178zru9G6+9/TYlF2v55GjbuKGnnaDzry/vbA4yjvf7MMbrFoF6N1KJZqkigQnOi5yIaaQUU4alA0QFwKqKM+j3rws7iSiypMwQWXbLm9f1FXImLvZJmfG4Cz03S7SfXkn7yyaEQ/s2qFXRtPopdTxeYOQB9fERZqO/ma1VpWNoNmj0mIPvjzlJcFgYOfXqKfihkfY+8+uzHx07ta/M+vafePTE/j666esB+unaQ2hf1B46hmkbx9SGm06xB15+ULyverqpPfD1Tf1z93/uxMFefmDvA1s/Ovv1wMox8jgR4LXlHkWG3tIuOESowHHoFWJUrAWxgJpRywk8J8wAJbv5zXYcRiEVdxJqV8SuMFr6e3tbfdHpJx34A3vodO33d4q7+C8gK/43UKGHtIAVWyhnG71AmwqtLSMAlS0wJ2G4rsQwtX0XEQRN2Gz3pEEnOyoCjAm0LAAUOWngaT/AQKiQRFAjjqnIUQsDIdjjVImCFHE6tZR+Q1VBkj4iyoKiSTfJmkyfNANKzHfhMV9MCZj0KSWWim2fw3mCA9Vep1TEHHX5oiDDaBsX3orHvT5qGvE45/OaZh2fvMQ9yd4BC72JbC+PhQCfgGHslwGMSMCDOFccD2R8QAA4COrQMa84kaADedlxRGp+vIZgwPR5PTpAd57Y1K778Qx06JRqGXWgvHNSOtdP7VzAltLMfOKtt5649/DQ+Oztzz57/ix/4rnnbuPfumPojuwD7J1fV5/89VSl79nqs0/e9v3vP3buxVeg2pGJtXjUatJfXttOOSHZhJYfMByHOfrAcOhMxoAU2oXv8nS3Fey4nRBrIJUhVzkaD9Pdcc1GhqGLxHIiVUh3zRipB3uH2zF4+JHJmS/18UJF9PJtRzf27htrZ5nK/oXZ1q1ev30ejJJO70jf6fFrHz4yQKfhODi+GQy9rQIVC731yFRrcquxCqyeoN83sqZ/8MjDiMExZ+xb3Dn2ZfT8k34ySK4l15Yn8o2AtLeDvUTGN4K4HxtoS8NMipSvLb/DyDDMAvRXhJ95mCn4ATOYO4iBdycDAbvMk0pliz/TkDCbEJknSxinKomS9a7k9JIZEBmCyNoKKFzhUluAZZeKTo6tJVl+UMV+TPlGv2jcWbOVLgE6t2ixo7uHxo5fM03nVqSwv7z2l2vDgioNKg1jd4Oym7zwH7LZZkHldFfCRZXA1OY/5c+7rPTET25r+/Bfb9pwfbywO+q6+ar43DpMbr+f3rQytf1DPL25uvPmrJIWVak9cetWb7vvzgfVoiKKpghYc3Hb8UYabJj2+xOrZuZG1btuni2vT+wu+muY6CHuSS5K2tFGjEYsH++4L5ZMxMaQny1HX/NL0VfufaKv7KevXJh4ZXqwU61FWDHkyu/86S5Rq4Vc5czQ8ZHs3Fx2BEOtxYym8ZHwu4Ot3Xmrb8j5NoyNNYF8aSqHXDDjmxhdCvtQ0BvogcVMrWS2hNlBBEEQTh375s2z7b/+7AvVt5+/v+ftsz1//DzV/vL0rztmb37yNwSoiVx82HkvriO0SZQkSRfpIRvIKLmt/O+8lAiiQMCwo5IsUdlZ8QCcNGNQ3kMFMElmdB8T/W4GqEGa0ahMFFUGfaW6XOoEUVVM/VZdld41DUFKRoYHN/avW7Ohd0M+l1nV3ppMxGNN4WC0IYpeE6+huWr+FrMmFnSaYUBxYoY6oTghnzVjElZj4rEfS4Lj7cc85WQKo3A6TfnxJoYGOBGuoE6kP9h1Fzv+wnH+nlOxzhiG56q3Liz02DEWAQwWHVtYoDbWsmgmStNGNBPjQ8VP4prYTDR6g9EdYbHOhMj673rOec0T0DKSD3HRj5cWvhDtjsJP9culhR4rBs1YdMbIRFmiPSFSf+0mvrIbqjpBR/wW5NKfg1y6mnyAfJBMlK/uoQIdo7zgcWscQztalJgkgs3HOMlJDHPc8dPAoZLIS+8y9g7u3zs7ff3kNVtGNg2s6y3ITsqtxC0pCLQn8ilMg8Rku9TSuVS7yKf66XqGy3b6mR1wtGf9UTS+wXoCYJi2BNGxpOBVKVy7hoBxqYwtJe5TlnZaLScXFzvGPLobJD4oNp87COqBl1TN4kArMNWthkA1yKKqCKLoEkzTCEj0z9sy7s+Yrflqo0cT9I2MMyLCF3gaWHyeiTLdLutMY6JSfUrSWS8H1Ldd0jkXXGANCPPmtqqU6KZ9ncmYxy0JOmiyUKAvIFouxW32m0IQ/r5bHwjwJmhDl1c1VZ+sor1Zbq2KAynq9aR9Oku5/bJ32Xeqic/Ur1Hz1+Xul/kPw5yhr9pNvGAL7C3fSARVWPBQlVMXNMrJ3IJOgW4XXE7uigJTBwBmwQ3alRfH4STyk4D1+FGfT9dlkAKE+AK+gOnXvbrX8AC0c2suVeElXgJmA5zoNXAmvXGv8xtoAWiKV0ks7TlJ95xgL//bJ4bZd09iabr6MxqhkcWXWN/isRFu54W36NvV7fSp1xaPsTvJ8hq+HU4fWkAnbiJXl7d1tMdjIJDosBsUOpXZEMGVI7LKA9YE9S2DVgSdQUQ6LYCsURQyjmeiTIHIUCrldT0FO5Xz+td6MbmqqcNuKbQIOTC30f0iLScQxb25OjCTuDq2WXJ6C8srNWoNMIL2Gn0KvvztEU34UyEsR+zqi2CXjYxEA/QHYKRhRrEzL3icjdiLPseWY4Jd9DxkWNJrr9G35ZD0kKjVTbjFonOmkbMIec7is+rieaxib1nRoP6nniKOj1Jb63VZPvYNIFj/iJwkV5UrXhBuBlAiJ4kzHoVxusycBCuXwJwUKzxTMqWiJ4BUTnzy7jtv/+jRWw7O771x+rrJ7du2FOr/cj4Yp2TdUHVyq3K1NM30ss2ategV95cyYtJ1SE/fpz06zn5X+6XFWP4rMsBpJGqddYbxyuPeFYXqQ+93xyngiL5nq/oNeuny9H7H0t4P0xkBRIInx+aOVr+34g5LzGN7PFRf+X9tROXl+to6+XfPbV95jYtiJifOqQIM7CwawZUiOKG4UoRMORk+lSumUPtDp3BF+tx7TsmK9Dv/inQ7ZIT3nRL23ai1+GaN5m07slh6/3v0stL/36BfNp6IQ/4H91XWhquBy5bb8aNfShg3bR/GdpQVkR1bWXIlfrG6W42o1d0u1/Vwpq201RXWdrnoyeqNLhf9U1dE3eVyVd+AatcuV7j2t77BHuQG4W+t+gp1/tSWp8NjU2UX3jyEjmW6ubGsLAO0Hc/aNnrxFVbL9liZMshOVF+nbap6vSvswm+gD8NHXK+yJ6pvVF93LlX6Z/hdDzvfV7d95ugrYNMx0APesr6cZuPz4l9ppC1+ruUXv6jmf/ELbFb99OJd9GBNntRyWt4d3/yj8m0oPxo8luIXcPXodMhru0xBEPhJTHPitRFNhD9MJ4PugOQDUnTTzdFoOBwMgtI0NK2mPqLxaDzWEm4ON0eago3BxlCDaZsAogy/4fd5NY8Gqlh2yZcrlUZQKoFCLsDVf/3vc30e/x1bcXzg/Hn64drvou+9r5dslHsAP+fJRlIh15BpchM5XF7oyzFBDXkYFTpiDYZCQLcD0FFdgksVDng0JlOFygqGDlyq6JqRMKsck3xmDN3NwVgqE86FAiyJmohUZm6YvfGGm2Zuun7XjqmJ7WNXbRkNFK1SsGgVTS/y53J+byEPfJcOXCojH+q0ia5ogSy5jl5KBDadaJawtFeFfzkZeHn3iqVkYG7WSf6tzHbGnItIZjaWEp3LyanZinOxbXZycnEnpgD3tP+olhp8b61Eg7XU4EOxbbVs4MPbtFeWrl/RUmHt8PKd8v78fUupwvfl95d/FnFShNkb9VThVK3cWs8URrq9GejvatJAsuSPy65GGQZfclIytzzdCPyTIxwDTbYHyFMUpT0wqAJVBMfbIqG3pea9BlqE2/KOmvOpsVyoPQVTBY8BID3wBz23o6xnu32+ZAJ+4/X1CzULEi1+kBCOjSnFcUWCIKXijrPUsgF+5nB9Qy06wZ3b9hfbFj4wekso0tn8F819qxq6lbfuGvv7h6rH6lX9HQ1ZyalyWrLhQ5Wnt62/xdv8dNOOfhq0Prbtob+qlfpqpf8G94FmMVef21Ffa9lCOtDyKQ/7KeUVtJ4bwcgBalWgu4qEkIgHUDfDofMR+g5dxj06JoggyFNEFuTKut5S3J9K+k2/D7uaRDrrp85K4PoF2owttbwABNK0hctQJyCzFK0p4R4+/RRVh+232GAoEWbBVuuP6+cNmri4wwGp7AuSujjOPjXFdKm6BVAyezifXNyRKFLloJKP0K80Z9WDyhd9IedJs34+8MwlnEt91I2uo+rpZzCC/4wepuNNKZqIVL8UXqk7a3KsEUZnLbmhvKuTCq48Vfkw5RSTwpgMw12BdzmGCogcdQYGDGiFw5UassTkmfqWCNPwUpGM4/41U5j4VektZbvaW1OpZC25wlGvgCTT8JvEZIorVKn/96hOtpburZ5+DYDwS3TP66/TiKVfmKklpz/inN63VB55bfj14cVzJ5yaEx4nZb2+00Itmf0khqLxQKhjxwXZt0AvBctg77PLvAQ9aSeQbEnUW99vJlXw0hR+IOdRvNX/aUmSRz2pVv+nzx9kL9vsKQsqq7ttlXOddOnUQ/3eztq6DNyb5E1nb5IezEJWMMpAh+ubKNVyKi7L8QebLtGbw4R5urylCAaPIww3G8HFWmhPY3qCs0GJA9ZxMZuTQe7sPHKuvoVIQ/PLlWhqsJGFB1qbb/haNFhs+2G+oMUibqZFvBF3TPzUjC/eRzMdXBGaf6e6qRY2+8+N1idKwVCYhsL24G3W1zvHmk7F04oPobdPDnN7BnR7PNHRm6/H5GvrIK/ByCfRXBrYTC7VteBRJIET6gtmZADW5KBOVbAjJ+CkskmRMpWNToxftbUyCpbv2t6eQq7Q4k3ib86oY7QlmGvDLccRvgKHvU8dUtklL3rtthQPtNRzcLhzdSBbqP68sAKbXVlsj9CmyypoU1MnhZrTz+DTcKDz8xH7fQrQdD4aqJcjdL49Mh9ZEYvSgBp+VzyUEtvyGpJINKo58dCYziIUZj/D6IrYE31q+31jbOKeJ+6e5LedoNetCDqxE+P3PXrfuHOovnrZtiG1XADuDHwHYqISrmqIU1HKRRiAaYYLrmHWMINNGMYl2NKCTEWE1WBHqujzrueuYdJuId+VwVCGGU/4HRsyietdW2pweXn+WuoJ5TWDZTk3qgXVBegRLwLuEq1UPwu/z7I7nWDEvKxWI/JSQAKL9MefEHWXcC9U3QMNvwe/n5i/1IL+zGlVK94ruHTxE9WkumQ7z3F/BlhOJTHST7bRWNljU8LlO5kopyhVONCpftCpm0BFMFCm0EdVZOq8n6qKot6IiQ8acU+bPkPnNQ91yZprGhf6SbI47aUcB8pSUegONDoA6jVuedqElw29x8tEVZn/f31bebj2Iid/+v/nTTt2lFvXr4/H129bv21rZcvo5pHhoU2DGwc2lOP98f51a73eBpzIiBFABZ9DmRfHDCi6lHUN87aUKoRzJgRaCv7ielqI42THgRs5kEoBjMYV/FDOpeOY1lvI+XN+9pndrSIQOQi/6t+LZwVdfAaQxbwzZTi3P6w+/31JEGVRvWMjXfd9XhZlwfXJD51pD90Tan8kffy64+zgR0IKc6mquDhUW+enBDiCs71I1NE7sjTtEkDclI9nq2/gDhqUDdB/6esbG+vrox+snqxj2xqmt52M22FyLdlV3nH1Zo1T2YY1TFZWt8E4tzQAW/C4hkkURCogQpIlRZ5GxATsMENAek25oCcwurhsDXgY82Ku2b51y6aNNq7bhkE0HTX4vgNXU3nID7kVi7VWlqX4JQOfu9Lg/+y7R5BtVeVqt7Mc+1WogMJnncIep3Aer887lyfxEg6Zdw3iVctLvKl16TIw72CNK6rJZePpuXw8w5zKXxpPBePZ/LBAORHkC71sPLnaePIwng7kRC3IrhhPGE07FcfxFK4Yh/cb3+QV7fx1CLI0vv4rxpt94dKwVN9+D+r88GUjeNnIXhrzhuXBWf+uof2vf8h41uRUf11OlQFj7S7fcNW2zSNDtujiC1RGt5y8ijKJH9bdzAUwzaVOo6lKFTKDG7oQ9O/PaLWxlCQ2hWvQ3Gzzhg0bxjeMXz2G3L5+XTLdCmNqAUpHGsUNMACsO7sWvc9wmjqHwSIA+86WGaW4s3TZWYTMgQzA9MhCHBFJupTzsl91x5piralwa/WL7zGUn9OjnQOpeIOuWoocCHT1KNSVCa6t0LF1m3Z5q+evB/UiqPFV84MfSvTS9v7OSPe7RrM5PtDfGVZ4fj3PpIFutzF2y/gc7SmXL0hMkSQ12n1T9VNLeawvsR5iYX6MRusQrw63JrHFaMpxNjgirqapakThhAQt7iXhddlaHHF2NnjOkl8Hi1YWvy0r2jEnVntMU+VvibUc8CXdLjuZJn3lNZcWCwO45OYJCBMw4ZykTN4JAKCdxfEVVYk2hxoMjxJQA/WNNE2xFgFJv7feX9798v731f9Lu/39y/vAAPFiFWjtl0BrBmCRFtJOcmAXHCzPB/2MY7bJJG5NT6E50gi2ZWuSCWJbgvECrjgAZcRJMy4wGTAtd0ZxNpKSYVS1kaUEdlQ2nR3xmM9LSXdXR64zl07F2uPtQE4NvgZFJphq4sSHIpzOnAWBdkyyi1m7lKKlVL6UFk2aLeE+jZJVyhYzAHWtpF3MQ9Gkb+997p4KP3H8Gy994/gEX7nnub1zN+zPTGcOzFTD+w1jf44+NTdzACr23zC343b2ka/eKt5Fb9yfy+03uPGxu1746xfuGqufhnPOA4v31p7/UfUvaxWv3/70cf7W545+aP8NP8JX1XE83+X4IHO475QiIxQi8cZaUFoizj41hIpOWBrTP3CWMd2pPs2FllTKm0rFMakv6c0vJ/BhlMbZnscBs5hKuSSaQI3WNxR0VvieU+ULdzqygzsmaUP5ZHXPt50dihwJ9FJ1T23XwGPJ/GlmO5zyJhxZ8+KbAOuHL22UNFxMMBuRviNzlvsl172r15THm0xGOUz71t2aAsg9HGA843HRJE8YfwDwBeVAlDs+A4YGNFCGE4jGzdJ4oeI1Mh3A4rbR7G32+32ykymu46ot3MazpVCyabLee9xVMV3P8JNW9Jbu6d/ZDz+s78JbZ3fSJhpZ0XeqXg0mzp3L/WXeVf1sYHKA762ePz//zA7adAZ6v9OJM7DHZNW3uLO2IeJjTre5WhyeKxMfaK0Pkv9YDs5T6kI/aBsDUl9NeWEyzTheqG/omwE7VyBOmjVPcGENsMghlQJOxmU3wAK8TDEtfYa4XJoLEFuRuKhr4fc+BbQxASeeA/7heNzFyT54YO7m66bGxwbK6/pw6XsuUAxqQrADYBhGqS+Bgkvr4mIimIBCuljC7SjrC968l+7qzNkDZclcrD/ez5wIorD8BD0S6zDlSChj1RD0J9n3nf0TuiORUNqdCbaGEu6WDs2IhDqDJ529FJzbJxs7oyHN12AEE742uziQqj3d2J4wDW8orCUSmWK5tfYAG8rvaTNSIY052mDx2zK8AjQhGsSqalkpMz/bEGk3TVbbhIH+c72BEYs1xtYls4OBrlDQos7TvmiiIb6uP1Tu7oxpXH3XhnouLrsT6FkCam4vpwW07J3Vh2B4HyTOQhuyvM4m7k8W/Yaz9x2IfNzSVqgTIoa0HGuybjc+Q5twF1j66rJX3vvpVx5gGL76/P61E2xs3Rkn0hUN0AGwAPfv/fSn9+6POLT2PPcgt5mEQb7uIj8uh3qpIlw7DLzkdzEqccOTHUwZwh17h7Y8rQK1dROBU3hhDwgU+HR07BFJQSYjuJzrA9BFsAZ2gf5Ad5WscWhvpOC5LD7HCQrG+RmYcAf+gCfLPe96SCacgJHDdz0sik5+DXp9mFgBY0LfMWXb4VY7GAqajqPMSZaUbFxFh5t3oF9iKTO2uJRJWU+iTGcYWupOukkz3F1e2IlS/1IGs2WiWkBNvMo4YmQMi9Moi1qyrvOW37jFs8oYN6of9txidMKFccST8dqAPSO2oksuHoiEvt09nvl45pbM6tXdH+860tU13nV313Lpi7bniOGzOEP0wEfzKm95M54jHs/VBv0zy7jF8Ix7OuGl8E5dV2BSedzex+Wtnhjourqr+5auj3evXg2vuTsznuk6krmnVqrZ10edfHCZmCRDdpSNFDB7a9rH4Q5PYHgO12YsVNtUBDdndBakL8UmHKsv+D439+74Wji+KujDPNASkCwAhGJyafBohCZrW26nnHwLG+3rAG5oDHT8mhkxGUwW3Vu9M9BrrQ0E6G3WBP2Mu/GOq/adOrUvOtSgKP9xP2vf0uJRm3SL+aI+PvSv1TtNc5251qK3lSb+wUpumaanXr2fmYbok6aP9bGGVaa6Ev+YgCYyuAevDiaYg/0xdY7DdEiMD2CKhKM4+PdQHAErYMUvJQVewvBLvpw8QAEuAihoZY41fVuVz9a8ALgF4Lnxex9bgkUfXekSiZ1HPym0eAkav7L9XmDaE587AS3v3X6Zg6S2d98OzgAe8JE4ShEXbpGL6JHDldWYSY7bqpLlXVXthlQC86xpPk0BIvczwdn9gEomgGeW4TB9kf2ku3pdZWf/obHs4g/p57fsAvBG2U8GDz/y5OcODbGBIw8//dDRMp3ZOVrdlc2OHb6Zfj47dmL8uuumHjkMt48+9OzpW/vF0f2Pkf8LD1/DWAAAAHicY2BkYGAAYp4btWLx/DZfGbiZXwBFGG58XHEARv//8D+TZSNzGJDLwcAEEgUAhpgO4AB4nGNgZGBgDvqfxcDAsvH/h/+vWDYyAEVQQAIAqqIHY3icTVA7DsIwDA1JRpYOnKNcJxfpjFAP0bETElIXrsCI2LiE2ViQKCp9uI5TeXiyZb/3/AnkXOgVyblYcyRgyUPCLzwYVOqMauEC/sScZ67Fi2i+omFtrLl3xeQP1lP8ZoktpnXmTnuEj8Qt+3QcO+WQyVvhvfxetZXuWJn8rF68o4DwDkPeQ7wGc2+PMTamp/A35zZ3w8+7I9+PUf5DOq94FX1a+fw3zLHRfyy+R/tr7rPnH7amfE4AAAAAAFAAtgF4AxwDrAQwBJgFKAWgBhIGogdmB/oIjglWCewKmAtAC9YMRgyeDNwNcg3YDkoOvg8mD6YP4hByEJgQ3BFiEdISIBJ2E1wT1hTEFPwVjhYQFkgWrhdcF+gYMhiYGOIZKhl8Gc4aRBrWG0AbrBwGHHAdIh1wHZweUh8sH44gHiEMIbQh6iIqIkYiwiOGJBwkqiU2JWol2iZwJrQnLCgwKNgpgCooKl4qtitOK7osNC0iLWouZC7eL0QvlQAAAAEAAABgAPIADwAAAAAAAgBEAFQAcwAAAK0LcAAAAAB4nHWQy07CQBSG/5GLCokaTdw6KwMxlkviAhISEgxsdEMMW1NKaUtKh0wHEl7Dd/BhfAmfxZ92MAZim+l855szZ04HwDW+IZA/Txw5C5wxyvkEp+hZLtA/Wy6SXyyXUMWb5TL9u+UKHhBYruIGH6wgiueMFvi0LHAlLi2f4ELcWS7QP1ouknuWS7gVr5bL9J7lCiYitVzFvfgaqNVWR0FoZG1Ql+1mqyOnW6moosSNpbs2odKp7Mu5Sowfx8rx1HLPYz9Yx67eh/t54us0UolsOc29GvmJr13jz3bV003QNmYu51ot5dBmyJVWC98zTmjMqtto/D0PAyissIVGxKsKYSBRo61zbqOJFjqkKTMkM/OsCAlcxDQu1twRZisp4z7HnFFC6zMjJjvw+F0e+TEp4P6YVfTR6mE8Ie3OiDIv2ZfD7g6zRqQky3QzO/vtPcWGp7VpDXftutRZVxLDgxqS97FbW9B49E52K4a2iwbff/7vB+x4hFUAeJxtUmeX2zYQ1EgsoiSfnd6bnZ4wiVKcXp3m9N6LQXBJ4hHEMiin6H59QOmdPwXvAbsAFjuzs5jNZ8exmv3/uIE5FkiQIkOOJQqssMYGF3CCi7iEW3ArbsPtuAN34i7cjXtwL+7D/XgAD+IhPIxHcBlX8Cgew+N4Ak/iKTyNZ/AsSjyH5/ECtngRL+FlvIKreBWv4XW8gTfxFt7GO3gX7+F9fIBr+BAf4WN8gk9xHZ/hc3yBL/EVvsY3+Bbf4Xv8gB/xE37GL/gVv+F3/IE/8Rf+xg2IWeK8sKtpKWkY/X4huc3jLIX2ySCUzkYyUunNqIMrpbJSU70QTi9oT4kXrUtkJ3zqrXBdVgnXk8/GcHamaamFaYNoKXOqNUKnwZF1qWfWrhDW8i4m3C3p35jAtLRuWNdkS46AaWWD69aN5l1ZWWFklwxkQiK5puWUphR1PZe7tLUcxqTjgQr6JwitzshmE+1ymzkSdnrIp5SFUbOoN0dTSs2hXvS0zw35Hdv+RJmGz6srt0spNJla2Dn3m470eH6VaW45+KTRok3dqMzVouNgWy2cS2VHsl8f1qOWJzIyJ33z8XGbTEquuD8/jgDC+lgm92SWNe/MxDE/Yx5KZZYHGzEL4T0Zr9hsKhERlCm9Gmgh5S6PrSi5aZJJmeXAbOLtae7CwSYVc19EjScQYbMo6jju577LfVdq5XwxYR5kLzQ1/uCtD/0pJQ8VJzFuWxx64S1RppXpy+2iq+vUx367rFHaT8CT7PHb5E55GsS4ORZ41CKRlseN40jCiIHKMK4Pmxgf/Qs3/YnLyTEsDFVsdBhTq9rOr2v255IttWqoCrxfedJ0qlxUJR+V9MFS7rrQNJoSzbJPJq7ZzsYv3KVyOkmraZ3N/gPPECGWeJxj8N7BcCIoYiMjY1/kBsadHAwcDMkFGxlYnTYxMDJogRibuZgYOSAsPgYwi81pF9MBoDQnkM3utIvBAcJmZnDZqMLYERixwaEjYiNzistGNRBvF0cDAyOLQ0dySARISSQQbOZhYuTR2sH4v3UDS+9GJgYXAAx2I/QAAA==') format('woff'), - url('data:application/octet-stream;base64,AAEAAAAPAIAAAwBwR1NVQiCLJXoAAAD8AAAAVE9TLzJ8JmEvAAABUAAAAFZjbWFw4lh1fAAAAagAAAdWY3Z0IAbd/wIAAHGgAAAAIGZwZ22KkZBZAABxwAAAC3BnYXNwAAAAEAAAcZgAAAAIZ2x5ZkhEXnIAAAkAAABfKmhlYWQVo5UkAABoLAAAADZoaGVhB/YEZgAAaGQAAAAkaG10eFrn/4YAAGiIAAABgGxvY2GW7X9GAABqCAAAAMJtYXhwAdQMuAAAaswAAAAgbmFtZcydHyEAAGrsAAACzXBvc3S79QC0AABtvAAAA9twcmVw5UErvAAAfTAAAACGAAEAAAAKADAAPgACREZMVAAObGF0bgAaAAQAAAAAAAAAAQAAAAQAAAAAAAAAAQAAAAFsaWdhAAgAAAABAAAAAQAEAAQAAAABAAgAAQAGAAAAAQAAAAEDnQGQAAUAAAJ6ArwAAACMAnoCvAAAAeAAMQECAAACAAUDAAAAAAAAAAAAAAAAAAAAAAAAAAAAAFBmRWQAQCYF//8DUv9qAFoDVgCXAAAAAQAAAAAAAAAAAAUAAAADAAAALAAAAAQAAALSAAEAAAAAAcwAAwABAAAALAADAAoAAALSAAQBoAAAADgAIAAEABgmBiaZJu8nCScOJ5XgrecK5w3nIOcp5z3ntug68KDwrvCw8ODw6PEM8SXxXfFi8XjxkvHN8mz//wAAJgUmmSbvJwknDieV4K3nCucN5yDnKec957boAPCg8K7wsPDg8OjxDPEl8V3xYPF48ZLxzfJs//8AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAQA4ADoAOgA6ADoAOgA6ADoAOgA6ADoAOgA6ADoArgCuAK4ArgCuAK4ArgCuAK4AsgCyALIAsgAAAAEAAgADAAQABQAGAAcACAAJAAoACwAMAA0ADgAPABAAEQASABMAFAAVABYAFwAYABkAGgAbABwAHQAeAB8AIAAhACIAIwAkACUAJgAnACgAKQAqACsALAAtAC4ALwAwADEAMgAzADQANQA2ADcAOAA5ADoAOwA8AD0APgA/AEAAQQBCAEMARABFAEYARwBIAEkASgBLAEwATQBOAE8AUABRAFIAUwBUAFUAVgBXAFgAAAEGAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAwAAAAABIQAAAAAAAAAXwAAJgUAACYFAAAAAQAAJgYAACYGAAAAAgAAJpkAACaZAAAAAwAAJu8AACbvAAAABAAAJwkAACcJAAAABQAAJw4AACcOAAAABgAAJ5UAACeVAAAABwAA4K0AAOCtAAAACAAA5woAAOcKAAAACQAA5w0AAOcNAAAACgAA5yAAAOcgAAAACwAA5ykAAOcpAAAADAAA5z0AAOc9AAAADQAA57YAAOe2AAAADgAA6AAAAOgAAAAADwAA6AEAAOgBAAAAEAAA6AIAAOgCAAAAEQAA6AMAAOgDAAAAEgAA6AQAAOgEAAAAEwAA6AUAAOgFAAAAFAAA6AYAAOgGAAAAFQAA6AcAAOgHAAAAFgAA6AgAAOgIAAAAFwAA6AkAAOgJAAAAGAAA6AoAAOgKAAAAGQAA6AsAAOgLAAAAGgAA6AwAAOgMAAAAGwAA6A0AAOgNAAAAHAAA6A4AAOgOAAAAHQAA6A8AAOgPAAAAHgAA6BAAAOgQAAAAHwAA6BEAAOgRAAAAIAAA6BIAAOgSAAAAIQAA6BMAAOgTAAAAIgAA6BQAAOgUAAAAIwAA6BUAAOgVAAAAJAAA6BYAAOgWAAAAJQAA6BcAAOgXAAAAJgAA6BgAAOgYAAAAJwAA6BkAAOgZAAAAKAAA6BoAAOgaAAAAKQAA6BsAAOgbAAAAKgAA6BwAAOgcAAAAKwAA6B0AAOgdAAAALAAA6B4AAOgeAAAALQAA6B8AAOgfAAAALgAA6CAAAOggAAAALwAA6CEAAOghAAAAMAAA6CIAAOgiAAAAMQAA6CMAAOgjAAAAMgAA6CQAAOgkAAAAMwAA6CUAAOglAAAANAAA6CYAAOgmAAAANQAA6CcAAOgnAAAANgAA6CgAAOgoAAAANwAA6CkAAOgpAAAAOAAA6CoAAOgqAAAAOQAA6CsAAOgrAAAAOgAA6CwAAOgsAAAAOwAA6C0AAOgtAAAAPAAA6C4AAOguAAAAPQAA6C8AAOgvAAAAPgAA6DAAAOgwAAAAPwAA6DEAAOgxAAAAQAAA6DIAAOgyAAAAQQAA6DMAAOgzAAAAQgAA6DQAAOg0AAAAQwAA6DUAAOg1AAAARAAA6DYAAOg2AAAARQAA6DcAAOg3AAAARgAA6DgAAOg4AAAARwAA6DkAAOg5AAAASAAA6DoAAOg6AAAASQAA8KAAAPCgAAAASgAA8K4AAPCuAAAASwAA8LAAAPCwAAAATAAA8OAAAPDgAAAATQAA8OgAAPDoAAAATgAA8QwAAPEMAAAATwAA8SUAAPElAAAAUAAA8V0AAPFdAAAAUQAA8WAAAPFgAAAAUgAA8WEAAPFhAAAAUwAA8WIAAPFiAAAAVAAA8XgAAPF4AAAAVQAA8ZIAAPGSAAAAVgAA8c0AAPHNAAAAVwAA8mwAAPJsAAAAWAAB8wQAAfMEAAAAWQAB9QAAAfUAAAAAWgAB9RIAAfUSAAAAWwAB9RcAAfUXAAAAXAAB9ScAAfUnAAAAXQAB9VQAAfVUAAAAXgAB9qsAAfarAAAAXwAAAAEAAP/KA6EDQAAfADVAChIPCgQDBQACAUdLsBdQWEAMAQEAAgBwAAICDAJJG0AKAAIAAm8BAQAAZlm1HRQXAwUXKwEUDwETFRQOAS8BBwYiJjU0NxMnJjU0NyU3NjIfAQUWA6EPyjAMFQz7+gwWDAEwyw4fARh+CyAMfQEYIAHpDA/F/ukMCxABB4SEBxIKBAgBF8UPDBUFKP4XF/4oBQACAAD/ygOhA0AACQApAEBAERwZFA4NCQgHBgUDAQwAAgFHS7AXUFhADAEBAAIAcAACAgwCSRtACgACAAJvAQEAAGZZQAklJBcWEhADBRQrATcvAQ8BFwc3FxMUDwETFRQjIi8BBwYiJjU0NxMnJjU0NyU3NjIfAQUWAnuq62pp7Ksp09P+D8owFwoM+/oMFgwBMMsOHwEYfgsgDH0BGCABIqYi1dUiputvbwGyDA/F/ukMHAeEhAcSCgQIARfFDwwVBSj+Fxf+KAUAAAACAAD/sQNaAwsACABqAEVAQmVZTEEEAAQ7CgIBADQoGxAEAwEDRwAFBAVvBgEEAARvAAABAG8AAQMBbwADAgNvAAICZlxbU1FJSCsqIiATEgcFFisBNCYiDgEWMjYlFRQGDwEGBxYXFhQHDgEnIi8BBgcGBwYrASImNScmJwcGIicmJyY0Nz4BNyYvAS4BJzU0Nj8BNjcmJyY0Nz4BMzIfATY3Njc2OwEyFh8BFhc3NjIXFhcWFAcOAQcWHwEeAQI7UnhSAlZ0VgEcCAdoCgsTKAYFD1ANBwdNGRoJBwQQfAgMEBsXTwYQBkYWBAUIKAoPCGYHCAEKBWgIDhclBgUPUA0HCE0YGgkIAxF8BwwBDxwXTwUPB0gUBAQJKAoPCGYHCgFeO1RUdlRUeHwHDAEQHhUbMgYOBhVQAQU8DQhMHBAKB2cJDDwFBkAeBQ4GDDIPHBsPAQwHfAcMARAZGiAtBwwHFFAFPA0ITBwQCgdnCQs7BQVDHAUOBgwyDxwaEAEMAAAABgAA/3IELwNJAAgAEgAbAHoAtgDxAJxAme7ZAgQOal0CBQjQvHADAAW+rKB1UkxFIx0JAQCznkADAgE6LQIGApWAAgsDB0fn2wIORYIBC0QKAQgJBQkIBW0ABgIHAgYHbQAOAAQJDgRgAAkIAAlUAAUNAQABBQBgAAIGAQJUDAEBAAcDAQdgAAMLCwNUAAMDC1gACwMLTOXjx8aqqIuKbWxkYlpZNDIrKhMUFBQTEg8FGisBNCYiBhQWMjYFNCYOARcUFjI2AzQmIgYeATI2BxUUBg8BBgcWFxYUBw4BIi8BBgcGBwYrASImNScmJwcGIicmNTQ3PgE3Ji8BLgE9ATQ2PwE2NyYnJjQ3PgEzMh8BNjc2NzY7ATIWHwEWFzc2MhcWFRQPAQYHFh8BHgEBFRQHBgcWFRQHBiMiLwEGIicOAQciJyY1NDcmJyY9ATQ3NjcmNTQ/ATYzMhYXNxc2PwEyFxYVFAcWFxYRFRQHBgcWFRQHBiMiJicGIicOASInJjU0NyYnJj0BNDc2NyY1ND8BNjMyFhc3FzY/ATIXFhUUBxYXFgH0VHZUVHZUAa0sOCwBKjosASw4LAEqOizYCARXBgwTHwQEDEQQBUAVFgYHBA1oBgoNExdCBA0GUAQFJAgNB1UFCAgFVgcLEx8EBAxECgYGQBMYBgcDDWgGCgENExdBBQ0FUQQYEQgNBlUGBgFmUwYKHAJEAQUVHQsMCwcsAwFEAx0KB1NTBwodAzQQAQQqCBERHBcEAkMCHAkHU1MGChwCRAEFKggLDAsHLAREAx0KB1NTBwodAzQQAQQqCBERHBcEAkMCHAkHUwFeO1RUdlRU4x0sAigfHSoqAlkdKio7KirNZwYKAQ4TFxslBgwEEUIEMgsGPBsNCAZVBgwyBARLDwUFCCwMGBYNAQgHaAUKAQ4TFxslBgwFEEIEMgoIPBoNCAZVBgsxBARLDwQGHhUNGxMMAgj+z04JCA8OPw4CAigbJQEBCzQBKAICDj8ODwgJTgkJEA0/DgICHgk0DAEBKBcBJwICDj8NEAkCM04JCQ8OPw4CAic0DAEBDDQnAgIOPw4PCQlOCQgQDT8OAgIeCTQLAQEnFwEnAgIOPw0QCAAAA////7ED6ALDABkAOQBJAEBAPRsSAQMDAhMAAgEAAkcAAwIAAgMAbQAAAQIAAWsABQACAwUCXgABBAQBVAABAQRYAAQBBEw1PS0ZKikGBRorJREGBwYHDgInIyIuAScmJyYnERQWNyEyNhM1LwEmBichIgYHFBcWFx4ENzMyPgM3Njc+ATcRFAYHISImNxE0NjMhMhYDoRIVlVkcJDwbAho+Ih1YlhUSDAYDNgcKAQIDAwQG/MoHCgFTa3QEIBIgGAwCCxoeFB4FdGweNEc0JfzKJDYBNCUDNiU0CwGsFBBzShgaHgIaHhZKcxAU/lQHDAEKAlIODgUFAgMMBl5BVFwDHA4UDAEKFgweAlxUGFI1/aElNAE2JAJfJTQ0AAAABAAA/7EDTQL/AAYAFAAZACQAhkAXHgECBR0WDgcEAwIZAwIDAAMBAQEABEdLsBJQWEAnAAUCBW8AAgMCbwADAANvAAABAQBjBgEBBAQBUgYBAQEEVwAEAQRLG0AmAAUCBW8AAgMCbwADAANvAAABAG8GAQEEBAFSBgEBAQRXAAQBBEtZQBIAACEgGBcQDwkIAAYABhQHBRUrFzcnBxUzFQE0IyIHAQYVFDMyNwE2JxcBIzUBFA8BJzc2Mh8BFssygzNIAV8MBQT+0QQNBQQBLwMe6P4w6ANNFF3oXRQ7FoMUBzODMzxHAgYMBP7SBAYMBAEuBHHo/i/pAZodFV3pXBUVgxYAAAAAAv/9/7EDXwMLACMAMABBQD4NAQABHwEEAwJHAgEAAQMBAANtBQEDBAEDBGsABwABAAcBYAAEBgYEVAAEBAZYAAYEBkwVFSMkJSMkFAgFHCsBNTQmByM1NCYnIyIGBxUjIgYXFRQWNzMVFBYXMzI2NzUzMjY3FA4BIi4CPgEyHgECpxYOjxYORw8UAY8OFgEUD48WDkcPFAGPDhaycsboyG4Gerz0un4BOkgOFgGPDxQBFg6PFA9IDhYBjw8UARYOjxQzdcR0dMTqxHR0xAAAAAT//f/CA9UDAQAtADcAQQBLACpAJ0tHQkE8OBsRDgcFCwBFAQEAAgIAVAEBAAACWAACAAJMKykSKwMFFisTJjYWHwEGFxYXHgE3MjcWNjceATc+AT8BNic1Fjc+ARcWBgcOAwcGIyEmJxMmNhYfARYGJicTPgEWHwEUBiYnEz4BFhcHDgEmJwEEJjQJNQ8BBh4HMigvGyJiGRtYHQwQAwUCARojMXgmIQQhPVYwRCwVLf6iVBVCBjY6CBUEKjIMeAI8QAQIODoBmARCOgEGBToyBAK8JSAWG7gdIx6uNDwBJScEJyUIHxAgFSEMHCYKIi1CGRhGFBlybnwfEgZwAZotKBgk0SksDiYBHykeICH4OyIsJwEAKxgmIf4vJigvAAMAAP/5A+gCfQARACIAMwBGQEMLAgIEAg0BAAMCRwAEAgMCBANtAAMAAgMAawAAAQIAAWsABgACBAYCYAABBQUBVAABAQVYAAUBBUwXFiQUFRgWBwUbKwEmJxYVFAYuATU0NwYHHgEgNgE0JgciBhUUFjI2NTQ2MzI2BRQHBgQgJCcmNDc2LAEEFxYDoVWAIpLQkiKAVUvgAQTi/rcQC0ZkEBYQRDALEAHZC07++P7a/vhOCwtOAQgBJgEITgsBOoRBOkNnlAKQaUM6QYRyiIgBSQsQAWRFCxAQCzBEEMwTE4GamoETJhSAmgKefhQAAAMAAP+9BCQDCwAIAB0ANAAwQC0mAAIBAAFHAAQCBG8DAQEAAXAFAQIAAAJUBQECAgBYAAACAEwgGSk4GhIGBRorEzQmDgEeAjYBFAcBBiInAS4BPQE0NjczMhYXARYXFAcBBiMiJicBNjQnAS4BIzMyFhcBFvoqOiwCKD4mAlUU/u4WOxT+cRUeKh3pHUgVAY8U1xX+7hYdFBoQAQYVFf5xFUgdfR1IFQGPFQJYHioCJkAkBjD+2R4V/u4VFQGPFUgd6B0qAR4V/nEVHR4V/u4VEBEBBhU7FQGPFR4eFf5xFQAAAAIAAP+wA+gCwwAlAEsAP0A8SRwCAAE/AQMAKQECAwNHCgEDAUYyAQJEAAEAAW8AAAMAbwADAgIDVAADAwJYAAIDAkxCQD48IyIjBAUVKwEUDgEjIicGBwYHIyImNSY0NjU/AjYHNz4CNy4BJzQ+ATIeARcUBgceAR8BFh8DFAcOAScmJyYnBiMiJxYzMjY3PgEnNCceAQMSarRrMDJGVRUbAgYMAQIBBAMDARwFDg4ERU4BarTWtGrWUEQFDAgbCQQFBAMBAgoHHBRWRjIwl3AgEVqkQkVMAQ1IVAGlTYRMCTEXBQQKBwEEBAEDBgMDAR4FGBIQKHRDToRMTITcQ3YnDhYKIQsDBQYKAQIICgEEBRcxCUoDMi80hkorKid4AAYAAP+xAxIDCwAPAB8ALwA7AEMAZwBkQGFXRQIGCCkhGREJAQYAAQJHBQMCAQYABgEAbQQCAgAHBgAHawAOAAkIDglgDw0CCAwKAgYBCAZeAAcLCwdUAAcHC1gACwcLTGVkYV5bWVNST0xJR0E/FCQUJiYmJiYjEAUdKwERFAYrASImNRE0NjsBMhYXERQGKwEiJjURNDY7ATIWFxEUBisBIiY1ETQ2OwEyFhMRIREUHgEzITI+AQEzJyYnIwYHBRUUBisBERQGIyEiJicRIyImPQE0NjsBNz4BNzMyFh8BMzIWAR4KCCQICgoIJAgKjwoIJAgKCggkCAqOCgckCAoKCCQHCkj+DAgIAgHQAggI/on6GwQFsQYEAesKCDY0Jf4wJTQBNQgKCgisJwksFrIXKgknrQgKAbf+vwgKCggBQQgKCgj+vwgKCggBQQgKCgj+vwgKCggBQQgKCv5kAhH97wwUCgoUAmVBBQEBBVMkCAr97y5EQi4CEwoIJAgKXRUcAR4UXQoAA////7ADoQLEAAgAEQA7AGy1JAEDAgFHS7AJUFhAJwAGBQQFBgRtAQEAAwMAZAAFAAQCBQRgAAIDAwJUAAICA1gAAwIDTBtAJgAGBQQFBgRtAQEAAwBwAAUABAIFBGAAAgMDAlQAAgIDWAADAgNMWUAKNSQoMy4YEgcFGysFFA4BLgE2HgEFFA4BLgE2HgETERQGBwUWFAchMhYOASMhIiY1ND4CNQMjIi4BNhczMh4CBhYHITIWAWUqOioCLjYuAfIqOioCLjYuRhQM/bkHDQIBDxYCEhH9xQ4WCggQYnIPFAIYDY8JDgYKAggBAp4OFgcdKgIuNi4EJh8dKgIuNi4EJgJA/uINFAJEIg4bFhwWFg4GGBAcAwHLFB4WAQYMEAwWAxYAAAAB////ygKmAvEATwBJQEYACAcIbwADAQIBAwJtCQEHBgoCAAEHAGAFAQEDAgFUBQEBAQJYBAECAQJMAQBIRT8+ODUuLCknIB0XFhANBgQATwFPCwUUKwEiBhQWNzI3NhYXFRQGKwEiJjc2NTQmIgYHFBcWBicjIiYnNTQ2FxYzMjY0JiciBwYmNzU0NjsBMjYnJjU0NjIWBxQHBhY3MzIWHQEUBicmAkolNjYlFhUaFgEwH48QDgkVRGJEAQ0RChSPISwBEhYYGyY2NiYVFRoYAS4gjxMMEQ5GYEYBFQoQD48fMBQUGAGSRGBIAg0RDBKQHy4SFhkaJjQ0JhYWGhYBLh+QEA4KFERkQAINEQoUWyEuFBsUGCY0NCYaGRUUAS4hWxAOChQAAAUAAP/iA/oC2gA5AEEASwBjAGYAZUBiKyICBwFmNRgDAgcXAQMCPQsCCANCAQUIPAYCBAUGRwABBwFvAAcCB28GAQQFAAUEAG0AAABuAAIAAwgCA2AACAUFCFIACAgFVgAFCAVKZWRjYFtaVlVSUUhHODYnJRMJBRUrARYGByIvASY3PgEnDgMnLgE1NDc2NycOASc0JjUmNjM3NCc0MzI3Mh0BNjM2FxQWFRYPARUzMhYFFjcnBgcGFDc+AicmIyIGIyUWEhYUKwEiNScjBgcUKwEiNTYTNjsBMgMzAwPcHlBeCgIgAgRWPioQLkhkODRAPDJAAowMBAoCBgScAgguBgqeBggCCAQIsAxWfP6mHCIEIhosqBw8HggkPAIIAv4+ClZQBFYGMrAwAgZWBAqmAghgCoKQSAEyUrxCAiYGBDy4OCZMVC4IBkY6VEAyEGQYAgYCNgQCBBxuBAgCCGgWBAoCKgQKAh5mSOAGDNYMHCyCFhhYRgYSArIc/u74BgSmpAIEBBICFgj+vAEIAAAFAAD/sQPoAwsADwAfAC8APwBPAFVAUkkBBwk5AQUHKQEDBRkBAQNBMSERCQEGAAEFRwAJBwlvAAcFB28ABQMFbwADAQADVAABAAABVAABAQBYCAYEAgQAAQBMTUsmJiYmJiYmJiMKBR0rNxUUBisBIiY9ATQ2OwEyFjcVFAYrASImPQE0NjsBMhY3ERQGKwEiJjURNDY7ATIWNxEUBisBIiY1ETQ2OwEyFhMRFAYrASImNRE0NjsBMhaPCghrCAoKCGsICtYKCGsICgoIawgK1goHbAcKCgdsBwrXCghrCAoKCGsICtYKCGsICgoIawgKLmsICgoIawgKCkCzCAoKCLMICgqH/r4ICgoIAUIICgrO/egICgoIAhgICgoBFvzKCAoKCAM2CAoKAAACAAD/iQSxAzIAMQBlAC1AKltTUEk/PTY0HRAACwECAUcAAAIAbwACAQJvAwEBAWZSUTo5MTAXFQQFFCs1Nj8BNjc+ATc0JyYnJjU0NyYnJj4BNzIeAgcGBxYVFAcGBwYVFBYXHgIXHgEVFyEBNDcmJyY+AR4CBwYHFhUUBwYHDgIXFBYXHgIXFSM1NC4CJy4BJzY1NC8BJicmJyYUKEUdFSUoAR8TDi0OBQQFPmo5K1Q+IgMEBA4tDxEgKCYdfmQQEhQB/JICwQwFAgQyWFxWNAQCBgwkDA8JCAoBIh4RMkYP/gYIFgwXPDEbBQgDCQ4NJTEHDxoLCxNKJxslFScSOisSJys3aj4BJj5SKjcbEyo6EikTJRsnShMPLigSETwVFQHTIhAgIy1YOAI0XCsjIBAiMA4hEQoMFAogPBAJFBgHhwsHJiIqDBkmEiIsCgoQBgoPIhAAAAT/+v+aA/MDGgArADcAVgBeAB1AGllYQD8EAEQCAQEAAW8AAABmHRwbGhEQAwUUKxMOARQjBwYHBi8BJjc+ATc2Mj4BNzI+ATc2NzIXMgcGBwYXFhcWDwEGJy4BFwEWDwEGJwEmPwE2JRYHBicmDwEnNz4BJjc2NzYWBwYHBhYXFjc+ATc2FgE3FwcGLwEmmwgGAhEPBBAMRgsNAiAEBioeCAYCDiYWhjR6GgwUeCBQLCIECApMDgQqOvgBmhIUMBYQ/mIICEgMAjIQIDJoOCxSREQYDgIGDIAMDAQMIg4EJjomBigCBBL8qP5M9hQSLhYB+ggcFg8NBA4STAwMAhgEBhwwBg4eEFoGAgg0GDg6LgIIBkYIBDAYMv4kFhAqDhIB2AgMPgjAaD5YGgwsTk5GGDpIFjg4BhIGDEQKMhwoPgw6BAoC/UT4VvIUEC4SAAIAAP+xA1sDCwAkAEcAXUBaQyUCBgkvAQUGFwEDAggBAQMERwAJCAYICQZtBwEFBgIGBQJtBAECAwYCA2sAAQMAAwEAbQAIAAYFCAZgAAMBAANUAAMDAFgAAAMATEZFJiUlNiUmNRQkCgUdKwEUFQ4BIyImJwcGIiY9ATQ2OwEyFgYPAR4BNzI2NzY3NjsBMhYTFRQGKwEiJjY/ASYjIgYHBgcGKwEiJjc1PgEzMhYXNzYyFgNLJOSZUZg8SAscFhYO+g4WAglNKGQ3SoInBhgEDGsICg4UEPoOFgIJTVJwS4InBhcFDG8HDAEk5plRmjxICxwYAQUDAZa6PjlICxYO+g4WFhwLTSQqAUo+CjgNDAG4+g4WFhwLTU1KPgo4DQwGBJa6PjlICxYAAAL////DA+kCsQAYADEATUBKKwEFBiYBBAUBAAIAAgNHCQYCAEQABgUGbwABBAMEAQNtAAMCBAMCawAFAAQBBQReAAIAAAJSAAICAFYAAAIAShMmExcTHBQHBRsrJRUUBgchFRQGByIvASY0PwE2MhYdASEyFgMUDwEGIiY9ASEiJjc1NDYzITU0NjIfARYD6AoI/QAKCAYHsgUFswUPCgMABwwBBbMFDwr9AAcMAQoIAwAKDgeyBb1rBwoBawcKAQayBg8FsgUKCGsKASgIBbIGDAZrDAZrCAprCAoFsgUAAv////kEGQMLABIAKQAsQCkAAwQDbwABAgACAQBtAAAAbgAEAgIEVAAEBAJYAAIEAkwjOiM2NQUFGSsBFA8BDgEjISIuAT8BPgEzITIWJxUhIgYPAicmNxE0NjsBMhYdASEyFgQZErsYVib9oRMcARG8GFYlAl8THsD+MDVyI7wCAQEBSjOzM0oBLzRIAT8RFN0cKA4iFN0cKA6vWjQp3QMHBQICGDNKSjMSSgAAAAAC//z/fgPYA0oADQAfAAi1HxQIAQItKzc2HgIHBgcGNzQ3PgEBFgAHBgcGJyYnJicmNzY3NgB2Jl5SDCRWjlQEBjQYA2wa/qR2JlYICBIeICIQCEAodgHEqiIKUF4kVBIMGgQGPKoCqBr+RHQmQgYOIh4gEAYKVCZ0AVYABAAA/7oCgAMCACwANQA+AEcAWEBVJiAfFhUMBgYDAUcKBwIDBAYEAwZtAAYFBAYFawIBAQgBBAMBBGAJAQUAAAVUCQEFBQBYAAAFAExAPzc2REM/R0BHOzo2Pjc+NDMwLysqGxoREAsFFCsBFAcOAwcOAwcWFRQGIiY1NDcRJjU0NjIWFRQHFTY3PgI3JjU0NjIWBRQWMjY0JiIGEzI2NCYiBhQWATI2NCYiBhQWAoBKBixOOi4qKjQYBEZGZEZISEZkRkgoYjo0MgRGRmRG/bQoOCoqOChEHCoqOCgoAawcKio4KCgCilAeOlY0GA4OECAwJB5QMkZGMk4iAXoiTDJGRjJMIsweHhIWPC4gTDJGRjIcKCg6KCj9Rig6KCg6KAJYKDooKDooAAAAAwAA//kDWgLEAA8AHwAvADdANCgBBAUIAAIAAQJHAAUABAMFBGAAAwACAQMCYAABAAABVAABAQBYAAABAEwmNSY1JjMGBRorJRUUBgchIiYnNTQ2NyEyFgMVFAYnISImJzU0NhchMhYDFRQGIyEiJic1NDYXITIWA1kUEPzvDxQBFg4DEQ8WARQQ/O8PFAEWDgMRDxYBFBD87w8UARYOAxEPFmRHDxQBFg5HDxQBFgEQSA4WARQPSA4WARQBDkcOFhYORw8WARQAAAAAAwAA/7kEFgK6ABQAJAA5AB5AGy4RAgABAUcDAQEAAW8CAQAAZjU0KCcXEgQFFislBwYiJwEmNDcBNjIfARYUDwEXFhQBAw4BLwEuATcTPgEfAR4BCQEGIi8BJjQ/AScmND8BNjIXARYUAVgcBQ4G/vwGBgEEBRAEHAYG29sGAUTQAg4GIggGAdECDAcjBwgBbP78Bg4GHAUF29sFBRwGDgYBBAVFHAUFAQUFDgYBBAYGHAUQBNzbBg4CTv0vBwgDCQMMCALQCAYBCgIO/o/++wUFHAYOBtvcBQ4GHAYG/vwFEAAAAgAA/5wD6AMgACgANABLQEgeHBQQBAIHBQEABAJHAAEHAW8ABwIHbwAEAwADBABtAAAAbgYBAgMDAlIGAQICA1YFAQMCA0o0MzIxMC8uLSwrKikZGBMIBRUrJRYdASE1Njc+ATU0JicuASc0Nj8BJicmNjIWDwEWFQ4DBw4BFRQWJTMVIxUjNSM1MzUzAmy0/OAkLl5GLggCKgQKBAQIBAZc5FwEDhICDg4OAgouSAFElpZklpZkgEA6asoODCJGPBY0MAwaMBAUAgQyJjZ0dDZYCCIcHgQMDC42FjxG7mSWlmSWAAAAAAH//v+xA1kDCwAwAD1AOi0BAQUJAQABAkcAAAEDAQADbQADAgEDAmsABQABAAUBYAACBAQCVAACAgRYAAQCBEwnJxMnJDMGBRorARUUBisBIiY/ASYjIg4CFB4CMzI2Nz4BHwEeAQcOAQciLgI+AzMyFhc3NhYDWRQQ+hcTEU1ScDpqTC4uTGo6QnYpBBEGTAUCBjyuX1egcEgEQHiYW1KYPUgRLALD+g4WLRBNTS5ManRqTC46NQYBBU0EDgZKUAFEdJ6unnREPjlIEhMAAAADAAAAAAPoArYAFgAwAEcALUAqOzMmHA4MBAcBAAFHAAIAAm8EAQABAG8FAQEDAW8AAwNmGyYbGykpBgUaKz0BND8BJic0NzY3MhcGFwYPAQYHFSMiFzU0PwIuATc0NjIWFRQHHwEWHQEGByEuAQE2JzY3MhcWFRQHFxYdARQHIzU0LwEmEqtCAiMlNR8gMUgMDXIwBHIZvxaYOSUuAVyAWk49khgCI/3jDhQB2UQuHyMxKSNBqBIbdjJuD2qGGgZQJ1w4LykCE31wCwg3Fz2PGagbCkYcF1YzTGxsTGk1HkYKG6glBAIYAVlqfRMCKyk+UjFQChaGIAKPORs1CAAAAf/8/8wDiALyABoAIUAeAAUABW8EAQACAG8AAgECbwMBAQFmFCMhESQiBgUaKwEWBisBERQOASsBESMRIyImNREjIiY3ATYyFwN4EAoWVAIOEMzMwhwOVBYKEAGQECwQAVAQFv7KDg4MATb+yhQUATYWEAGSEBAAAwAA/58DjwMeABQAKAA8AHBAbScBCQQBRxAKAgQJBG8NBwIBAAFwEwsCCQgBBg8JBl4UEQIPDgEMAw8MXhIFAgMAAANSEgUCAwMAVgIBAAMASikpFRUAACk8KTw5ODU0MzIvLisqFSgVKCUkISAfHhsaFxYAFAAUIxETExEVBRkrJRUjFRQGIiY9ASM1MxE0NjcyFgcRARUjERQGIiY1ESM1MzU0PgEWBxUFFSMRFAYiJicRIzUzETQ+ARYVEQJANyIsIjg4IhUYIgEBhjcgMCA4OCAuJAL9mTcgLyABODggMCDvcKcXIiIXp3AB9xgeASAX/gkBT3D+ChciIhcB9nCoGB4CIhaocG/+eRciIhcBh28BGBgeAiIW/ugAAAAAAgAAAAADjwKtAAQACQAaQBcJBgQBBAEAAUcAAAEAbwABAWYUEgIFFisBJTUhFQElESERAdP+PwN9/kQBvPyDAW7SbW3+s9L+SwG2AAIAAP/CAyIC6gARABoALEApEQECAwYBAAICRwABAAMCAQNgAAIAAAJUAAICAFgAAAIATBMXEycEBRgrJRYPAQYvAQYjIiYQNiAWFRQHJRQWMjY0JiIGAwQeGC4kIL5KUoC+tAEAwC7+GIiwfoiwfk4iHC4gIL4qvgEAtr6AWEqqWIh+soZ+AAABAAD/agPoA1IARABQQE0LAQkKBwoJB20NAQcICgcIawYBAAECAQACbQQBAgMBAgNrDAEIBQEBAAgBXgAKCgxIAAMDDQNJQUA9PDs5NDMuLBMXExElFSETFA4FHSsBFA8BBiImPQEjFTMyFhQPAQYiLwEmNDY7ATUjFRQGIi8BJjQ/ATYyFh0BMzUjIiY0PwE2Mh8BFhQGKwEVMzU0NjIfARYD6AuOCx4U10gOFguPCh4KjwsWDkjXFB4KjwsLjwoeFNdIDhYLjwscC48LFg5I1xQeC44LAV4OC48LFg5I1xQeCo8LC48KHhTXSA4WC48LHAuPCxYOSNcUHguOCwuOCx4U10gOFguPCgAAAv/4/7YD7AMIAAYAIwBpS7ALUFhAKAIBAAQAbwgBBAEEbwABBQFvBwEFBgYFYwAGAwMGUgAGBgNZAAMGA00bQCcCAQAEAG8IAQQBBG8AAQUBbwcBBQYFbwAGAwMGUgAGBgNZAAMGA01ZQAwRIhMRFjcREREJBR0rAQUjESMRIwEeAQ8BDgEjISImLwEmPwEzBzMyHwEhNzY7ASczAfQBBKS+pgLYEhIGHAQkFvzQFiQEHAoqnmKqsggEKAEsKAgEsqpiAwj0/wABAP6yCiwSmhQaGhSaMBhsgghubgiCAAABAAAAAAPoAqQAHQBBQD4JAQUAAUcABgAGbwcBAAUAbwAFAgVvAwECAQECUgMBAgIBWAQBAQIBTAEAGhgTEQ4MCwoIBwYEAB0BHQgFFCsBMhYUBisBNTMnBzMVIyImNDYzMhcmNTQ2MzIWFzYC+GSMjGS+arCuaPhKbGpMDgYCnG5ajBgcAe6IxIi+5ua+aJJoAgwabJhoUgQAAAAC//r/cAMaA1YAGQAtABBADRIBAEQAAABmKyoBBRQrARYGBwYnDwIGDwEGJi8BJjcBJicmNjc2Fgc2LgEGBw4BHwEeAR8BHgIyPgEDBhRgZkJAdkZoDiBMDBQCEAgUAQIYDhKOcmqybB4SVGQeCAgDBQIWB0MQDhgOFBACZHTGEgwKwgymHAQOBBAOYh4aAYIyRmqiFBSCvCxqPhQsDBYJEAcUBTEMCBACDgAACAAA/5IDmAMqAA8AGwAnADcAQgBOAF0AaQCBQH4kIAYDAQJcMCYeGAoEBwMBTS4aEgIFBgBVPDYDBAVoR0U+OBQGBwQFRwADAQABAwBtCAEABgEABmsABgUBBgVrAAUEAQUEawAEBwEEB2sABwduAAIBAQJUAAICAVgJAQECAUwdHAEAZ2VXVkxLOzozMSMhHCcdJwAPAQ8KBRQrEyIHJic2NxYXBhUUFwYHJgcUFwYHJjU0NxYXBgEiByYnNjMyFwYHJhMmJzY1NCc2NxYzMjcWFwYXNjc2NwYHNjU0JicGByYnNjcWMzI3FgEWFRQHBgcmJyYnNj0BNgMWFxYVFAcGIyInNuAWFDAsNkpcPAYEPjYQbhQ8FEIyJi4IAVAcFjo4VE54bkxWGmqgggQOJjwaHg4YXigQdiYQOjIueAYClr5yWkQMRAYOHhaOAWCWBEBCGEAwZApkGg4SAg5WbDo2bgH4CjRMSiwmLBAQBhAwOARiIhpydmqCbmA+MhgBMA4qHB4+DiQa/jQYWBQKGBwsLhQIbIQOlg4uBA6SVjAyCiRMYLAkSpCCAg5iAdKIzBYsEgY4BJJ2FBYKKv3sCggSIlBAKgygAAAAAAP//P+QA5oDLAAIABMAKQBiQF8MAQMCIyIYFwQFBwJHAAcGBQYHBW0ABQQGBQRrCAEACQECAwACYAADAAYHAwZgCgEEAQEEVAoBBAQBWAABBAFMFRQKCQEAJiQgHhsZFCkVKRAOCRMKEwUEAAgBCAsFFCsBNgASAAQAAgAXIgYVBhYzMjY1NAMyNjcnBiMiPwE2IyIGBxc2MzIPAQYBxr4BEAb+9v6E/u4GAQzyKi4CIiAmLrQebDQSMBgOCioaMB52OBA0FgwMJBoDKgL++P6E/u4GAQoBfAESljAaHCAsIDr9rjQ0GCQmoGA6LhoiIphoAAAPAAD/agOhA1IAAwAHAAsADwATABcAGwAfACMAMwA3ADsAPwBPAHMAmECVQSUCHRJJLSQDEx0CRyEfAh0TCR1UGwETGRcNAwkIEwlfGBYMAwgVEQcDBQQIBV4UEAYDBA8LAwMBAAQBXhoBEhIeWCABHh4MSA4KAgMAABxYABwcDRxJcnBtamdmY2BdW1ZTTUxFRD8+PTw7Ojk4NzY1NDEvKScjIiEgHx4dHBsaGRgXFhUUExIRERERERERERAiBR0rFzM1IxczNSMnMzUjFzM1IyczNSMBMzUjJzM1IwEzNSMnMzUjAzU0JicjIgYHFRQWNzMyNgEzNSMnMzUjFzM1Izc1NCYnIyIGFxUUFjczMjY3ERQGIyEiJjURNDY7ATU0NjsBMhYdATM1NDY7ATIWBxUzMhZHoaHFsrLFoaHFsrLFoaEBm7Oz1rKyAayhodazs8QMBiQHCgEMBiQHCgGboaHWs7PWoaESCggjBwwBCggjCArXLBz87h0qKh1INCUkJTTWNiQjJTYBRx0qT6GhoSSysrIkof3Eofqh/cShJLIBMKEHCgEMBqEHDAEK/iayJKGhoWuhBwoBDAahBwwBCiz9NR0qKh0Cyx0qNiU0NCU2NiU0NCU2KgAAAAEAAAAAA6UCmAAVAB1AGg8BAAEBRwACAQJvAAEAAW8AAABmFBcUAwUXKwEUBwEGIicBJjQ/ATYyHwEBNjIfARYDpRD+IBAsEP7qDw9MECwQpAFuECwQTBACFhYQ/iAPDwEWECwQTBAQpQFvEBBMDwAD//z/kAOaAywACAAWAD8AWEBVODYCAwUTAQIDAkcABgQFBAYFbQAFAwQFA2sAAwIEAwJrBwEAAAQGAARgCAECAQECVAgBAgIBWAABAgFMCgkBACcmIiAdGxEOCRYKFgUEAAgBCAkFFCsBNgASAAQAAgATMjY1NiYrASIGBxQWFxM2NTQmIyIHBgcVMzU0NzYyFxYVFAcGDwEGDwEGBwYHFTM1NDc2PwE2Aca+ARAG/vb+hP7uBgEMvB4mAiYeAhwmAiYcqBpqUkAoRARuEBBODBAQCAwWCgoVCwYOBGwEBhYcLgMqAv74/oT+7gYBCgF8ARL9HiYcHiYkHB4mAgFIIixOTBoqaAQEGhwYFBQYEhYMCA8HCBEJCBQ6CAQMEBQQEiIAAgAA//kDawLDACcAQABCQD8UAQIBAUcABgIFAgYFbQAFAwIFA2sABAMAAwQAbQABAAIGAQJgAAMEAANUAAMDAFgAAAMATBYjGSUqJScHBRsrJRQWDwEOAQcjIiY1ETQ2OwEyFhUXFg8BDgEnIyIGBxEUFhczMh4CARQHAQYiJj0BIyImPQE0NjczNTQ2FhcBFgFlAgECAQgIskNeXkOyCAoBAQECAQgIsiU0ATYktAYCBgICBgv+0QscFvoOFhYO+hYcCwEvCy4CEgUOCQQBXkMBiENeCggLCQYNBwgBNCb+eCU0AQQCCAEsDgv+0AoUD6EWDtYPFAGhDhYCCf7QCgAAAAABAAD/tgOIAxIAFgAbQBgLAQABAUcOAQFFAAEAAW8AAABmGBwCBRYrATYWBw4CLgIGBxMjAzc+AR4DNgNqDhAIYIhUPjpEdlBaZLhcWnxIOERaqAJoBg4MipYeGjAgKEL+oALQIkIoIkRKMgoAAAAAAf/w/38D6wNFADkAD0AMLAEARQAAAGYTAQUVKyUGBwYmJyYnJicmNzY/ATY3Nh4CBwYHBgcGFxYXFhcWNjc+ASc0JyYnLgEHNTYXFhcWFxYXFgYHBgNXRV9ax1peRF0lIxoaVQQTDBtCLggOBwlFGhkWF0NKaWLGQzU5ASApU1DNZXV3dVxgLyMCAjg3EAlFIyEGJSdEXX97fYBjBBcHEQcuPhsNCUpgXlteQ0oUEkVNPZhQUkxhQD0iIgEpExNGSXBSWVemRRYAAAAAAwAA/2oCMANSABsAKABiAEVAQjUyAgIDNgEEAlhNAgAGA0cABQQGBAUGbQAGAAQGAGsAAgAEBQIEYAADAwFYAAEBDEgAAAANAElTUhobJCcdGgcFGisBFA4BFB4BHQEUBiImPQE0PgE0LgE9ATQ2MhYVBQcGFxYzMjc2JyYjIhM0PgI/ATY1NwYiJxcUHwMWJhYjFA4CDwIGJgY1Bh0BPgI1NDIVFB4BFzU0LwImLwEuAQIwYGJiYKzYrGBiYmCu1K7+HhIECFx8hFgOHmBqeJAIHAwZHVwCZPRkBFotExERDB4MAgoGCAwPDwIiWgh0RDRCegZcKxINBQwHBAJuLGhePFxmLnYiTk4idi5mXDxeaCx2IE5OIAYOCAY0MgoUNv5KEh4kDhgcXB4yNjYyIForExUVAjAKEhIOCg8QEAIiAVogQgQmMCIeHiIwJgRCHlwpEw4IFAwWAAAAAgAA//kDoAMLAC0AQgBOQEs7AQQGJQEFBAJHAAcBAgEHAm0ABgIEAgYEbQAEBQIEBWsABQMCBQNrAAEAAgYBAmAAAwAAA1QAAwMAWAAAAwBMFBcVJzU5NTMIBRwrARUUBiMhIiY1ETQ2NyEyFx4BDwEGIycmIyEiBgcRFBYXITI2PQE0PwE2MzIXFhMBBiIvASY0PwE2Mh8BATYyHwEWFAMSXkP+MENeXkMB0CMeCQMHGwYHBQ0M/jAlNAE2JAHQJTQFJAYHAwQLgf45DSQO8A4OPQ4kDpMBaQ0kDj4NAUuxQ15eQwHQQl4BDgQTBhwFAQM0Jf4wJTQBNiSNCAUjBgIEAQX+Og4O8A0kDj4NDZMBaQ0NPQ4kAAIAAP/5AxMDCwAPAB8AK0AoAAMEAQABAwBgAAECAgFUAAEBAlgAAgECTAIAHhsWEwoHAA8CDwUFFCsBISIGBxEUFhchMjY1ETQmFxEUBiMhIiY1ETQ2NyEyFgJx/jAlNAE2JAHQJTQ0fF5D/jBDXl5DAdBCYALDNCX+MCU0ATYkAdAlNFn+MENeXkMB0EJeAWAAAAAC//3/sQNfAwsAJAAxADBALR4VDAMEAgABRwAFAQEAAgUAYAMBAgQEAlQDAQICBFgABAIETBUXFBwUGQYFGislNC8BNzY0LwEmIg8BJyYiDwEGFB8BBwYUHwEWMj8BFxYyPwE2NxQOASIuAj4BMh4BAoEKZWUKCjMKHgplZQseCjILC2VlCwsyCh4LZWUKHgozCthyxujIbgZ6vPS6fuAOC2VlCx0LMgsLZWULCzILHQtlZQsdCzILC2VlCwsyC411xHR0xOrEdHTEAAABAAD/7wLUAoYAJAAeQBsiGRAHBAACAUcDAQIAAm8BAQAAZhQcFBQEBRgrJRQPAQYiLwEHBiIvASY0PwEnJjQ/ATYyHwE3NjIfARYUDwEXFgLUD0wQLBCkpBAsEEwQEKSkEBBMECwQpKQQLBBMDw+kpA9wFhBMDw+lpQ8PTBAsEKSkECwQTBAQpKQQEEwPLg+kpA8AAQAA//kDEgMLACMAKUAmAAQDBG8AAQABcAUBAwAAA1QFAQMDAFgCAQADAEwjMyUjMyMGBRorARUUBicjFRQGByMiJjc1IyImJzU0NjczNTQ2OwEyFhcVMzIWAxIgFuggFmsWIAHoFx4BIBboHhdrFx4B6BceAbdrFiAB6RYeASAV6R4XaxceAegWICAW6CAAAv/9/7EDXwMLABUAIgAwQC0HAQIBAUcABAAEbwAAAQBvAAECAW8AAgMDAlQAAgIDWAADAgNMFRcXFBQFBRkrATQvASYiDwEnJiIPAQYUHwEWMjcBNhcUDgEiLgI+ATIeAQLNCjMLHAvkfgscCzMKCsoKHgsBLwqMcsboyG4Gerz0un4BuBAKMgsL434LCzIKHwrKCgoBLwpLdcR0dMTqxHR0xAABAAD/ugOqAwsAJwAlQCIFAQIAAUcDAQACAG8AAgECbwABBAFvAAQEZhYkOSUiBQUZKxE0NjMyFwcUFhczMhYPAQYWNxM2JisBIiY/ATYzMhYHFAcBBiInASaSaFFCDhIMCgwMAzkEBAfCBwYNTQwKBFI5Q2eUAT/+qRlKGv6qQAISZ5Iv+gwQARAMrAwCCQELCQ4QCrcgkmdeSP5tHx8Bk0gAAAL/+P+2A+wDCAAcACMAd7UeAQIBAUdLsAtQWEApAAcGB28JCAIGAQZvBQEBAgFvBAECAwMCYwADAAADUgADAwBZAAADAE0bQCgABwYHbwkIAgYBBm8FAQECAW8EAQIDAm8AAwAAA1IAAwMAWQAAAwBNWUARHR0dIx0jERMRIhMRFjYKBRwrJR4BDwEOASMhIiYvASY/ATMHMzIfASE3NjsBJzMnBSUzETMRA8gSEgYcBCQW/NAWJAQcCiqeYqqyCAQoASwoCASyqmIw/vz+/Ka+xgosEpoUGhoUmjAYbIIIbm4Igtb09AEA/wAAA////2oDoQMNACMALABFAF1AWh8YAgMEExIBAwADDQYCAQBDAQcBMgEJBwVHAAQGAwYEA20AAQAHAAEHbQAKAAYECgZgBQEDAgEAAQMAYAAHAAkIBwlgAAgIDQhJPTw1MxQTFRQjJhQjIwsFHSsBFRQGJyMVFAYnIyImNzUjIiYnNTQ2OwE1NDY7ATIWFxUzMhYXNC4BBhQWPgEBFAYiLwEGIyIuAj4EHgIXFAcXFgI7Cgd9DAYkBwwBfQcKAQwGfQoIJAcKAX0HCkiS0JKS0JIBHio8FL9ke1CSaEACPGyOpI5sPAFFvxUBlCQHDAF9BwwBCgh9CggkBwp9CAoKCH0KGWeSApbKmAaM/podKhW/RT5qkKKObjoEQmaWTXtkvxUAAAP///9qA6EDDQAPABgAMQA7QDgJCAEDAAEvAQMAHgEFAwNHAAYAAgEGAmAAAQAAAwEAYAADAAUEAwVgAAQEDQRJFyMUExUmIwcFGysBFRQGJyEiJic1NDYzITIWFzQuAQYUFj4BARQGIi8BBiMiLgI+BB4CFxQHFxYCOwoH/r4HCgEMBgFCBwpIktCSktCSAR4qPBS/ZHtQkmhAAjxsjqSObDwBRb8VAZQkBwwBCggkBwoKGWeSApbKmAaM/podKhW/RT5qkKKObjoEQmaWTXtkvxUAA//1/7ED8wNSAA8AIQAzADVAMhsRAgMCCQECAQACRwACBQMFAgNtAAMAAAEDAGAAAQAEAQRcAAUFDAVJFzgnJyYjBgUaKyU1NCYrASIGHQEUFhczMjYnEzQnJisBIgcGFRcUFjczMjYDARYHDgEHISImJyY3AT4BMhYCOwoHbAcKCgdsBwoBCgUHB3oGCAUJDAdnCAwIAawUFQkiEvymEiIJFRQBrQkiJiJTaggKCghqCAoBDNcBAQYEBgYECP8FCAEGAhD87iMjERIBFBAjIwMSERQUAAAAAgAA/8QDrAL4ABcAHQBTQFAaAQQGHRwbEwgFAgQHAQECA0cABgMEAwYEbQUBBAIDBAJrBwEAAAMGAANgAAIBAQJUAAICAVgAAQIBTAEAGRgVFBIRDw4LCQYEABcBFwgFFCsBMhYQBiMiJzcWMzI2NCYiBgczByczPgEXMxUXBycCFKru7qqKckZSZH60tPqyBI64uHwE7oJGgjKWAvjw/qzwWEw8tP60rHzOzqbovsyCMpYAAQAA/7EDWQMLADEAPkA7KgEDBSUdAgQDAkcABAMBAwQBbQABAgMBAmsABQADBAUDYAACAAACVAACAgBYAAACAEwpNRcjFyQGBRorARQOAiMiJicmND8BNhYXHgEzMj4DLgIiBgcXFgYrASImJzU0Nh8BPgEzMh4CA1lEcqBWYK48BAVMBhEEKXZDOmhQKgIuTGxvZChNERMX+g8UASwRSDyaUleedEIBXleedERSSQYOBE0FAQY1Oi5ManRqTC4oJU0QLRYO+hgTEkg5PkR0ngAAAAAFAAD/wwPoArEACQAaAD4ARABXAFdAVDQbAgAEUwYCAgBSQwIBAlBCKScIAQYGAQRHAAUEBW8AAgABAAIBbQABBgABBmsABgMABgNrAAMDbgAEAAAEVAAEBABYAAAEAExMSxMuGSQUHQcFGislNy4BNzQ3BgcWATQmByIGFRQWMjY1NDYzMjY3FBUGAg8BBiMiJyY1NDcuAScmNDc+ATMyFzc2MzIWHwEWBxYTFAYHExYXFAcGBw4BIzc+ATcmJzceARcWATYrMDgBIoBVXgFqEAtGZBAWEEQwCxDKO+o7HAUKB0QJGVCGMgsLVvyXMjIfBQoDDgskCwEJFVhJnQT6CxYnVNx8KXfIRUFdIzViIAtpTyNqPUM6QYSQAWcLEAFkRQsQEAswRBB1BAFp/lppMgknBgoHKiR4TREqEoOYCjYJBgYUBgEF/v1OgBsBGBleExMkLWBqSgqEaWRAPyRiNhMAAAEAAP+cA6wDIAAqABtAGCAeFhIEAAEBRwABAAFvAAAAZhsaEwIFFSslFh0BITU0Nz4BNTQmJy4DJzQ2PwEmJyY2MhYPARYVDgMHDgEVFBYC4Mz8VMxeRCwKAg4ODgIKBAQIBARa4FwGDBICDg4OAgguRoBIMmpqMkgiRjwWNi4MDAQeHBAUAgQyJjZ0dDZYCCIcHgQMDDA0FjxGAAEAAP+fA48DHQAPAB1AGgsCAgBFAgEAAQBvAAEBZgEABgQADwEPAwUUKyUyNw4BIyIANTQ2NwYVFBYCwmlkKvCbvP70upA49LI4kboBDL2a8CtkaazyAAAJAAD/ngOPAx0ACAASABcAIAAlAC8AOABBAEoAfEB5EQEABQYFAAZtAAEHCAcBCG0AAwACBAMCYBABBA8BBQAEBWAOEgIGEw0CBwEGB2AMAQgACQoICWAACgsLClQACgoLWAALCgtMOjkZGAEASEdEQz49OUE6QTQzLi0qKCUkIyIdHBggGSAXFhUUERAMCwUEAAgBCBQFFCsBMhYOAS4CNjcUBi4BNDY3MhYFNDIUIgcyFg4BIi4BNhM0MhQiBTQ2MzIWDgEuASUmND4BFg4BJhMiLgE2MhYUBgMGIi4BPgEWBgHRXIQCgLyABIiSIiwiIhUYIv54b284FyICHjIeASBQb28BFyIVGCICIC4gAScQIC4iBBo2ixggASIuICBfEDAeAiIsJAYCPoS4hAKAvICqGCICHjQaAyCHN2+nIDAgIDAg/rE3bzgWIiIsJAIgYBAuIAIkKiQGARMgMCAgMCABJxAgMCACJCwAA//5/7EDqQMLAFEAYQBxAFRAUTgBBQFQAQQFDw0MAwIGA0cABgcCBwYCbQACAwcCA2sAAQAFBAEFXgAEAAcGBAdgAAMAAANUAAMDAFgAAAMATG5sZmReXVZVS0hFQj06NQgFFSsBFgcDDgEHISImJyY/ATY3NCY1Nj8BPgE3NiY2PwE+ATc2Jjc2PwE+ATc0Jj4BPwI+AT8BPgIXFTYzITIWBwMOAQchIgYXFjMhMjY3EzYnFgUGFhchMjY/ATYmJyEiBg8BBhYXITI2PwE2JgchIgYHA5MWDJoKQCX9/StQDw4NAQECBAEEEg0YBQIEBAcKDBYDAQQCAgoNChoDBAIIBgoJBQYGCwUUFBAVBwGpKS4NmRQoNP4bDwwFDkMCAxAeBacEARX9ugIGCAFTCA4CDAIGCf6tBw4COgMIBwFTBw4DCwMIB/6tBw4DAkcfKf4HJDABPCwlIg8NBwUOBAYGGhU8FQYWCwkNFD4UBRgEBwoNDkIVBBQJDAcLEQoUChIICgIEAQVAKP4GQiYBEQ8nEg4CJg0TCBEHCgEMBiQHCgEMBrMHCgEMBiQHDAEKCAAAAAUAAP+xBHcDCwADAAcADQARABUAZkBjAAUKBW8PAQoDCm8MAQMIA28OAQgBCG8LAQEAAW8JBwIDAAYAbw0BBgQEBlINAQYGBFYABAYEShISDg4ICAQEAAASFRIVFBMOEQ4REA8IDQgNDAsKCQQHBAcGBQADAAMREAUVKwERIxEBESMRARUhETMRAREjESURIxEBZY8BZY4CyvuJRwLLjwFljwFe/uIBHgEe/cQCPP19SANa/O4B9P5TAa3W/X0CgwAAAAAEAAD/sQNZAwsAAwAhADEARQBRQE4rKiMiBAgEAUcNAQQGAQgCRgAKBwEECAoEYAAIAAMGCANgAAYAAQAGAV4FAgIACQkAUgUCAgAACVgACQAJTEA9ODUXJjMREzsRERALBR0rFyE1IQUzETQmLwEuAQcVFAYjISImJzUjETM1NDYzITIWBwM1NCYrASIGFxUUFjczMjYFERQGIyEiJicRNDYzITIWHwEeAdYBrf5TAfRIDAWdBRwIHhf+vhYeAUhIIBUB0RYgAdYKCGsHDAEKCGsHDAFkHhf9EhceASAWAgUXNg+cEBYH1tYB9AgaB5wGDAHoFiAgFuj9NugWICAWAR6yCAoKCLIHDAEKCv36FiAgFgLuFiAYDp0PNgAAAAAJAAD/+QPoAwsADwAfAC8APwBPAF8AbwB/AI8AT0BMEQ0CBxAMAgYDBwZgDwkCAw4IAgIBAwJgCwUCAQAAAVQLBQIBAQBYCgQCAAEATI6LhoN+e3ZzbmtmY15bVlNOSzU1NTU1NTU1MxIFHSslFRQGByMiJic1NDYXMzIWExUUBicjIiYnNTQ2NzMyFgEVFAYHIyImJzU0NhczMhYBFRQGKwEiJic1NDY7ATIWARUUBicjIiYnNTQ2NzMyFgEVFAYHIyImPQE0NhczMhYBFRQGKwEiJic1NDY7ATIWARUUBicjIiY9ATQ2NzMyFhMVFAYrASImPQE0NjsBMhYBHiAWshceASAWshceASAWshceASAWshceAWYgFrIXHgEgFrIXHv6cIBayFx4BIBayFx4BZiAWshceASAWshceAWYgFrIWICAWshce/pwgFrIXHgEgFrIXHgFmIBayFiAgFrIXHgEgFrIWICAWshcemmwWHgEgFWwWIAEeAQZrFiABHhdrFx4BIP7NbBYeASAVbBYgAR4CJGsWICAWaxYgIP7MaxYgAR4XaxceASD+zWwWHgEgFWwWIAEeAiRrFiAgFmsWICD+zGsWIAEeF2sXHgEgAQhrFiAgFmsWICAAAAYAAP/5A+gDCwAPAB8ALwA/AE8AXwA8QDkLAQcKAQYDBwZgCQEDCAECAQMCYAUBAQAAAVQFAQEBAFgEAQABAExeW1ZTTks1NTU1NTU1NTMMBR0rJRUUBgcjIiYnNTQ2FzMyFhMVFAYnIyImJzU0NjczMhYBFRQGByEiJic1NDYXITIWARUUBisBIiYnNTQ2OwEyFgEVFAYnISImJzU0NjchMhYTFRQGIyEiJic1NDYzITIWAR4gFrIXHgEgFrIXHgEgFrIXHgEgFrIXHgLLIBb96RceASAWAhcXHv03IBayFx4BIBayFx4CyyAW/ekXHgEgFgIXFx4BIBb96RceASAWAhcXHppsFh4BIBVsFiABHgEGaxYgAR4XaxceASD+zWwWHgEgFWwWIAEeAiRrFiAgFmsWICD+zGsWIAEeF2sXHgEgAQhrFiAgFmsWICAAAAEAAP/nA7YCKQAUABlAFg0BAAEBRwIBAQABbwAAAGYUFxIDBRcrCQEGIicBJjQ/ATYyFwkBNjIfARYUA6v+YgoeCv5iCwtdCh4KASgBKAscDFwLAY/+YwsLAZ0LHgpcCwv+2AEoCwtcCxwAAAEAAP/AApgDRAAUAC21AQEAAQFHS7AcUFhACwAAAQBwAAEBDAFJG0AJAAEAAW8AAABmWbQXFwIFFisJAhYUDwEGIicBJjQ3ATYyHwEWFAKO/tcBKQoKXQscC/5iCwsBngoeCl0KAqr+2P7XCh4KXQoKAZ8KHgoBngsLXQoeAAAAAgAA/2oBzANSAAIABQARQA4AAAEAbwABAWYSEQIFFisbASETAyHm5v405uYBzANS/pT9hAFuAAAJAAD/agPoA1IAAwAHAAsADwATABcAGwAfACMAf0B8DggCAhkPFgkTBQMAAgNeGhEXCxQFBQUEVhAKAgQEDEgMBgIAAAFWGA0VBxIFAQENAUkgIBwcGBgUFBAQDAwICAQEAAAgIyAjIiEcHxwfHh0YGxgbGhkUFxQXFhUQExATEhEMDwwPDg0ICwgLCgkEBwQHBgUAAwADERsFFSsVNTMVAzUzFQM1MxUTNTMVAzUzFQM1MxUTNTMVAzUzFQM1MxX6+vr6+n36+vr6+n36+vr6+pb6+gF3+voBd/r6/RL6+gF3+voBd/r6/RL6+gF3+voBd/r6AAAAAAUAAP+IA6wDNABDAEwAVQBeAGcAckBvPDMCBQoaDwIBBSsiGRAJAAYIAQNHAAoLBQsKBW0PDAIIAQkBCAltAAYACwoGC2AHAQUDAQEIBQFgEA4NAwkAAAlUEA4NAwkJAFgEAgIACQBMYF9kY19nYGddXFlYVFNQT0tKFTYWNxg2FjYUEQUdKyUWFRQGIiY1NDc1NCsBIicVFhUUBiImNTQ3NQYrASIOAR0BFhUUBiImNTQ3NTQ2OwEyPQEmNTQ2MhYVFAcVFDsBMhYVBTQmIgYUFjI2ExQWMjY0JiIGEzQmIgYUFjI2BTI2NCYiBhQWA2RIRmRGSExkLCJIRmRGSB4uZCImBkhGZEZIVlhkTEhGZEZITmRWVv1aKjgoKDgq1Cg4Kio4KIoqOCgoOCoBGBwqKjgoKHAiTjJGRjJOInJODMwiTjJGRjJOIswMJhwMciJOMkZGMk4ickBsNIwiTDJGRjJMIow0bEDiHigoOigoAtgcKCg6KCj9Jh4oKDooKCgoOigoOigAAgAA/2kD6ANRABkAMgCRQAsbCAIBBQcBAAECR0uwG1BYQDMAAwIJAgNlAAcABgYHZQAJAAUBCQVgAAEAAAcBAGAAAgIEWAAEBAxIAAYGCFkACAgNCEkbQDUAAwIJAgMJbQAHAAYABwZtAAkABQEJBWAAAQAABwEAYAACAgRYAAQEDEgABgYIWQAICA0ISVlADjIwEhIlJBISJSMkCgUdKwEUDwEGIyInNxYzMj8BNjQmByIGByM3NjIWBQcmIyIPAQYUFhcyNjczBwYiJjQ/ATYzMgPoTq9Ob2FKcxoeLB+vHzwtGTAJ7oRQ2pz+fXMaHiwfrx8+KxkyB+6EUNqcTq9Ob2ECR3BMsE4/cxEfsB1ZPgEYFoFOnMdzER+wHVk8ARgWgU6c3kywTgAABf////kDWQLEAAgAEQAhACsAQQBKQEcTAQEECQACAAEbAQUAA0cACQAHBgkHYAAGAAQBBgRgAwEBAgEABQEAYAAFCAgFVAAFBQhYAAgFCEw9OjcjEyYlExQTEgoFHSslFAYiJj4BHgEXFAYiJj4BHgEXNTQmJyEiBgcVFBYXITI2ASEDLgEjISIGBwEVFAYjISImNzU0NxM+ARchMhYXExYCRBokHAIYKBaRGiQcAhgoFkEMBv1ZBwoBDAYCpwcK/VICk1gCDgf+SwcOAgKeNCX9WSQ2AQluCTQeAbUfMgpuCasSGhokHAIYFBIaGiQcAhhtswcKAQwGswcKAQwBEgENBwoKB/6asyU0NCWzDhwBUh0mASQe/q4cAAAGAAD/+QPoAwsAAwAHAAsAGwArADsAX0BcLAEFCzQBCgQcAQMJFAEGAARHAAsABQQLBV4ABAAKCQQKYAAJAAMCCQNeAAIACAcCCGAABwABAAcBXgAABgYAUgAAAAZYAAYABkw6NzIvKigmJiURERERERAMBR0rJSE1ISchNSElMzUjARUUBgchIiYnNTQ2FyEyFhMVFAYnISImJzU0NjchMhYTFRQGIyEiJic1NDYzITIWAjsBZv6a1gI8/cQBZdfXAR4WDvxgDxQBFg4DoA8UARYO/GAPFAEWDgOgDxQBFg78YA8UARYOA6APFEBI1kfXR/3ojg8UARYOjg8WARQBDo8OFgEUD48PFAEWARCPDhYWDo8OFhYAAf/5/7EDGALDABQAGEAVDgMCAAEBRwABAAFvAAAAZjgnAgUWKwEWBwERFAcGIyIvASY1EQEmNjMhMgMPCRH+7RYHBw8Kjwr+7RITGALKFwKtFhH+7f5iFwoDC48LDgEPARMRLAAAAAAC////sQPpAsMAGQA4AC1AKgkAAgIDAUcAAwIDbwACAQJvAAEAAAFUAAEBAFgAAAEATDc0JiQ6MwQFFisBERQGByEiJjcRFhcWFx4CNzMyPgE3Njc2NxQGBwYPAQ4CJyMiJi8BLgEvASYnLgEnNDYzITIWA+g0JfzKJDYBGR/KTCAmRBsCHEIoH1+3IBg2KdI0NQwiHg0CDB4RHg0iBpNgEiM8AS4rAzYkNgHG/kUlNAE2JAG7GxaJNxgaHAEaHBdEfBa/LFAdkiMnCRIMAQoKEggcA2VCDhdSJCs6NAAAAAEAAP+xA+gDCwBVAE5ASwAMCwxvDQELCgtvDwkHBQMFAQIAAgEAbQgEAgAAbg4BCgICClQOAQoKAlYGAQIKAkpUUk9NTEpFQj07Ojg1MzUhESU1IRElMxAFHSslFRQGKwEiJj0BNDYXMzUhFTMyFhcVFAYrASImJzU0NhczNSEVMzIWFxUUBisBIiYnNTQ2FzM1NDYXITUjIiYnNTQ2OwEyFhcVFAYHIxUhMhYHFTMyFgPoIBayFiAgFjX+4zUXHgEgFrIXHgEgFjX+4zUXHgEgFrIXHgEgFjUqHgEdNRceASAWshceASAWNQEdHSwBNRcemrMWICAWsxYgAWtrHhezFiAgFrMWIAFrax4XsxYgIBazFiABax0sAWsgFbMWICAWsxYeAWsqHmseAAL//f+xA18DCwAMABkAK0AoAAMEAQABAwBgAAECAgFUAAEBAlgAAgECTAEAFxYREAcGAAwBDAUFFCsBIg4CHgEyPgEuAgEUDgEiLgI+ATIeAQGtU4xQAlSIqoZWBE6OAVtyxujIbgZ6vPS6fgKOUoykjFJSjKSMUv7QdcR0dMTqxHR0xAAAAAADAAD/agOhAwsAAgAFADcAS0BIIwEGBzMeAgEGAwICAAEHAQIADAEDAgVHCQEHBgdvCAEGBQEBAAYBXgoBAAQBAgMAAmAAAwMNA0k1NC8uFCMmFBQjJBMQCwUdKyUhEQkBIQEVFAYrARUUBisBIiY9ASEiJjURIyImPQE0NjsBNTQ2OwEyFh0BITc2MhYUDwERMzIWATcBTP6bAUz+tAKDCgh9CghrCAr+HggKfQgKCgh9CghrCAoB24kGDgsFin0ICogBTP7NAUz+iWsICn0ICgoIfQoIAeIKCGsICn0ICgoIfYoFCw4Gif4lCgAAAAAEAAD/agOfA1IACgAiAD4ATgEiQA8XAQADNCwCBggmAQEJA0dLsBNQWEBFAAcGAgYHZQQBAgoGAgprEwEKCQkKYwAAAA0MAA1eFBIQDgQMDwELCAwLXgAIAAYHCAZeEQEDAwxIAAkJAVkFAQEBDQFJG0uwFFBYQEYABwYCBgdlBAECCgYCCmsTAQoJBgoJawAAAA0MAA1eFBIQDgQMDwELCAwLXgAIAAYHCAZeEQEDAwxIAAkJAVkFAQEBDQFJG0BHAAcGAgYHAm0EAQIKBgIKaxMBCgkGCglrAAAADQwADV4UEhAOBAwPAQsIDAteAAgABgcIBl4RAQMDDEgACQkBWQUBAQENAUlZWUAoPz8jIz9OP05NTEtKSUhHRkVEQ0JBQCM+Iz49OxERGRQUIyQeEBUFHSsBMy8BJjUjDwEGBwEUDwEGIi8BJjY7ARE0NjsBMhYVETMyFgUVITUTNj8BNSMGKwEVIzUhFQMGDwEVNzY7ATUTFSM1MycjBzMVIzUzEzMTApliKAYCAgECAgP+2gayBQ4GswgIDWsKCGsICmsICgHS/rrOBwUGCAYKgkMBPc4ECAYIBQuLdaEqGogaKqAngFuAAm56GgkCCwoKBv1GBgeyBQWzCRUDAAgKCgj9AApKgjIBJwsFBQECQIAy/tgECgcBAQJCAfU8PFBQPDwBcf6PAAAABQAA/2oD6ANSABcAJwA3AEcAVwBcQFlRSQwDCgJBOQIICTEpAgYHIRkCAAUERwMBAQYFBgEFbQAJAAgHCQheAAcABgEHBmAACgoCWAsBAgIMSAAFBQBYBAEAAA0ASVVTTUtFQxcmJiYmFCMkFAwFHSslFA8BBiIvASY2OwERNDY7ATIWFREzMhYFFRQGIyEiJj0BNDYzITIWAxUUBiMhIiY9ATQ2MyEyFgMVFAYHIyImPQE0NjsBMhYDFRQGKwEiJj0BNDY7ATIWAZsGsgUOBrMICA1rCghrCAprCAoCTQoI/jAICgoIAdAICmsKCP6bCAoKCAFlCAprCgj6CAoKCPoICmsKCI8ICgoIjwgKLgYHsgUFswkVAwAICgoI/QAKT2sICgoIawgKCgEWawgKCghrCAoKARVrBwoBDAZrCAoKARZrCAoKCGsICgoAAAAABQAA/2oD6ANSAA8AJwA3AEcAVwBcQFlRSRwDCgRBOQIICTEpAgYHCQECAAEERwUBAwYBBgMBbQAJAAgHCQheAAcABgMHBmAACgoEWAsBBAQMSAABAQBYAgEAAA0ASVVTTUtFQxcmJhQjJBcmIwwFHSsFFRQGKwEiJj0BNDY7ATIWJRQPAQYiLwEmNjsBETQ2OwEyFhURMzIWJRUUBisBIiY9ATQ2OwEyFhMVFAYHISImPQE0NjMhMhYTFRQGIyEiJj0BNDYzITIWAqcKCI8ICgoIjwgK/vQGsgUOBrMICA1rCghrCAprCAoBdwoI+ggKCgj6CAprCgj+mwgKCggBZQgKawoI/jAICgoIAdAIChlrCAoKCGsICgo/BgeyBQWzCRUDAAgKCgj9AArPawgKCghrCAoKARVrBwoBDAZrCAoKARZrCAoKCGsICgoAAAAABAAA/2oDPgNSAAoAIgBAAFIAYkBfT05JSEYXBgsENQEIAS4BBwgtAQIHBEcODQILAAoJCwpeAAkAAAEJAGAFAwIBAAgHAQhgDAEEBAxIAAcHAlgGAQICDQJJQUFBUkFSUVBFRENCPz0lJygUIyQWIyIPBR0rJTQmJyIGFBYzMjYFFA8BBiIvASY2OwERNDY7ATIWFREzMhYlFA4DIyInJic3FhcWMzI2NyMOASMiJj4BMzIWAxUhNTM1NDc1IwcGDwEnNzMRAu8wIh0iKCYcKP6rBrIFDgazCAgNawoIawgKawgKAaIOICxCJiMZDgoWCQgVFS84CQELLhg7TAFQPUVcEf76XQECAwUKIy1rRHUkOgEqPiweMAYHsgUFswkVAwAICgoI/QAKHyNCPiwcCQQEPwQCB0IwDRBQc1JqAThAQPwHAgkHBwogMGf+kwAAAQAAAAADxAI4ABYAHkAbDAEAAQFHAAEAAAFUAAEBAFYAAAEASiYXAgUWKwEUDwEGJj0BISImPQE0NjMhNTQ2HwEWA8QF1wgW/UgICgoIArgWCNcFAWAIBsUICQx9CgdsBwp9DAoIwwYAAAAAA//9/7EDXwMLAAgAFQAiADxAOQABAgACAQBtAAADAgADawAFBgECAQUCYAADBAQDVAADAwRYAAQDBEwKCSAfGhkQDwkVChUTEgcFFisBFAYiLgE2MhYnIg4CHgEyPgEuAgEUDgEiLgI+ATIeAQI7UnhSAlZ0VpBTjFACVIiqhlYETo4BW3LG6MhuBnq89Lp+AV47VFR2VFT1UoykjFJSjKSMUv7QdcR0dMTqxHR0xAAG//7/agPqA1IAEAAZACEAKgAzADsAbkBrGBMCAwIXFAIHAzk4NR8eGwYGByglAgUGKSQCBAUFRwADAAcGAwdgCwEGAAUEBgVgCQECAgBYCAEAAAxICgEEBAFYAAEBDQFJLCsjIhIRAQAwLyszLDMnJiIqIyoWFREZEhkJCAAQARAMBRQrATIeAw4CIi4CPgMXIgcXNjIXNyYBNyY0NycGFAEyNycGIicHFjcyNi4BDgIWJRc2NCcHFhQB9Ga4iEwEVIDAxMCAVARMiLhmal9sLl4ubWD+HGwQEGwzAa1qYG0uXi5sX2pZfgJ6tngGhAFjbDMzbBADUlCEvMi8hFBQhLzIvIRQRzNsEBBsM/2KbC5eLm1g1P69M2wQEGwz136wgAR4uHZ1bF/UYG0uXgAAAv///7EELwMLAA8AMwA/QDwJCAEABAEAIxsCBAMCRwAHAAABBwBgAAEGAQIDAQJgBQEDBAQDVAUBAwMEWAAEAwRMNSEmJhEmJiMIBRwrJRE0JiMhIgYHERQWMyEyNhMRFAYHIRUzMhYdARQGIyEiJj0BNDY7ATUhIiY3ETQ2NyEyFgPoCgj8gwcKAQwGA30HDEY0Jf5lxQgKCgj+MAgKCgjE/mUkNgE0JQN9JTSaAhcICgoI/ekICgoCH/3pJTQBRwoIJAgKCggkCApHNiQCFyU0ATYAAAAABP///7EELwMLAAgADwAfAC8AVUBSHRQCAQMPAQABDg0MCQQCABwVAgQCBEcAAgAEAAIEbQAGBwEDAQYDYAABAAACAQBgAAQFBQRUAAQEBVgABQQFTBEQLismIxkXEB8RHxMTEggFFysBFA4BJjQ2HgEBFSE1NxcBJSEiBgcRFBY3ITI2JxE0JhcRFAYHISImNxE0NjchMhYBZT5aPj5aPgI8/O6yWgEdAR78gwcKAQwGA30HDAEKUTQl/IMkNgE0JQN9JTQCES0+AkJWQgQ6/vr6a7NZAR2hCgj9WgcMAQoIAqYIChL9WiU0ATYkAqYlNAE2AAMAAP/DA+gDQAASADcAcQCjQBhrAQELDQEAASkCAgUGMQEEBVYnAgMEBUdLsBdQWEAuAAYABQAGBW0ABQQABQRrAAIDAnAKAQEHAQAGAQBgCQEECAEDAgQDYAALCwwLSRtANgALAQtvAAYABQAGBW0ABQQABQRrAAIDAnAKAQEHAQAGAQBgCQEEAwMEVAkBBAQDWAgBAwQDTFlAF25tamlbWFJQQkA9PDQzMC8zFTYYDAUYKwEGBycuAycjIiY9ATQ2OwEyARQPAQYiJj0BIyIGLwEuBSc2Nx4ENzM1NDYyHwEWERQPAQYiJj0BIyIOAgcGBw4CDwEOAicjIiY9ATQ2OwEyPgI3Nj8BPgU3MzU0NjIfARYBdCIrFAgeGi4WfQgKCgh9iwLOBbMFDwowHh4aJw0uGCgaJA0hKwwQHhosGI8KDgeyBQWzBQ8KjxssIBoMEhkQGCQSKRc2QiZ9CAoKCH0bKiQUEBEaHAwkJC42QCiPCg4HsgUCRjRlKRAmGgwCCghrCAr9xQgFswUMBmsCAgMBCgoWFiYUNGQZHioUFAJrCAoFsgUB7AgFswUMBmsQIiIbIj0lMkQVLxoYFgEKCGsIChIgJBkjPT4aQDAsIgwDawgKBbIFAAAAAgAA//kCgwMLAAcAHwAqQCcFAwIAAQIBAAJtAAICbgAEAQEEVAAEBAFYAAEEAUwjEyU2ExAGBRorEyE1NCYOARcFERQGByEiJicRNDYXMzU0NjIWBxUzMhazAR1UdlQBAdAgFv3pFx4BIBYRlMyWAhIXHgGlbDtUAlA9of6+Fh4BIBUBQhYgAWxmlJRmbB4AAwAA/7oDmANJABwAOwBcANtAGjoBCQVXRwIABBMLAgEHA0dWKwIJRgYCBwJGS7AKUFhAMAAFAwkEBWUAAQcCAAFlAAkAAAcJAGAABAAHAQQHYQACAAYCBlwAAwMIWAAICAwDSRtLsCZQWEAyAAUDCQMFCW0AAQcCBwECbQAJAAAHCQBgAAQABwEEB2EAAgAGAgZcAAMDCFgACAgMA0kbQDgABQMJAwUJbQABBwIHAQJtAAgAAwUIA2AACQAABwkAYAAEAAcBBAdhAAIGBgJUAAICBlgABgIGTFlZQA5ZWBcXHCgXGBoYFAoFHSslNC8BJiIHFx4BHwEUBgciLgEvAQYUHwEWMj8BNgE0LwEmIg8BBhQfARYyNycuAjU0NhcyFh8BFh8BNgEUDwEGIi8BJjQ3JwYiLwEmND8BNjIfARYUBxc2Mh8BFgMtEHQQLhAWAwwBAiAWCA4OBBYTEHMPLRBSEP53D3MQLBBSEBB0Dy4RFwMKBB4XCQ4HCwQIChIB9DBSLocucy4xMTCHL3QvL1Ivhi9zLjExMIcvdC+rFw90EBIWAxAGDxceAQQKBBYRLg90Dw9REAGfFhBzEA9SDywQdA8RFwMODgkWIAEEBQgDCQsR/o5CL1EvMHMvhzAxMS90L4YuUi4vdC6IMDExL3QvAAADAAD/dgOgAwsACAAUAC4AWUAQJgEEAygnEgMCBAABAQADR0uwJlBYQBoAAwQDbwAEAgRvAAIAAm8AAAEAbwABAQ0BSRtAGAADBANvAAQCBG8AAgACbwAAAQBvAAEBZlm3HCMtGBIFBRkrNzQmDgIeATYlAQYiLwEmNDcBHgElFAcOASciJjQ2NzIWFxYUDwEVFzY/ATYyFtYUHhQCGBoYAWb+gxU6FjsVFQF8FlQBmQ0bgk9okpJoIEYZCQmjbAIqSyEPCh0OFgISIBIEGvb+gxQUPRQ7FgF8N1TdFiVLXgGS0JACFBAGEgdefTwCGS0UCgAAA//9/7EDXwMLABQAIQAuAEBAPQ4BAQIJAQIAAQJHAAIDAQMCAW0ABgADAgYDYAABAAAEAQBgAAQFBQRUAAQEBVgABQQFTBUWFRYjJiMHBRsrARUUBisBIiY9ATQ2OwE1NDY7ATIWFzQuAQ4DHgI+ATcUDgEiLgI+ATIeAQH0CgiyCAoKCH0KByQICuhSiqaMUAJUiKqGVntyxujIbgZ6vPS6fgIi+gcKCgckCArECAoKzFOKVAJQjqKOUAJUilN1xHR0xOrEdHTEAAAAA////7ADWQMQAAkAEgAjACpAJwsDAgMAAQFHAAMAAQADAWAAAAICAFQAAAACWAACAAJMFxkmJAQFGCsBNCcBFjMyPgIFASYjIg4BBxQlFA4CLgM+BB4CAtww/ltMWj5wUDL90gGlS1xTjFABAtxEcqCsonBGAkJ0nrCcdkABYFpK/lwyMlByaQGlMlCOUltbWKByRgJCdpy0mng+BkpspgAAAAABAAAAAQAADNh9Fl8PPPUACwPoAAAAANjxqMAAAAAA2PGowP/w/2kEsQNWAAAACAACAAAAAAAAAAEAAANS/2oAAASx//D/6gSxAAEAAAAAAAAAAAAAAAAAAABgA+gAAAOgAAADoAAAA1kAAAQvAAAD6P//A1kAAANZ//0D0//9A+gAAAQvAAAD6AAAAxEAAAOg//8Cpv//A+kAAAPoAAAEsQAAA+j/+gNZAAAD6P//BC///wPC//wCgAAAA1kAAAQvAAAD6AAAA1n//gPoAAADhP/8A6AAAAOgAAADFQAAA+gAAAPo//gD6AAAAwz/+gOYAAADmP/8A6AAAAPoAAADmP/8A6AAAAOEAAAD6P/wAjAAAAOgAAADEQAAA1n//QMRAAADEQAAA1n//QOpAAAD6P/4A6D//wOg//8D6P/1A6wAAANZAAAD6AAAA6wAAAOgAAADoAAAA6D/+QR2AAADWQAAA+gAAAPoAAAD6AAAAsoAAAHMAAAD6AAAA6wAAAPoAAADWf//A+gAAAMR//kD6P//A+gAAANZ//0DoAAAA6AAAAPoAAAD6AAAA1kAAAPoAAADWf/9A+j//gR2//8EL///A+gAAAKCAAADoAAAA6AAAANZ//0DWf//AAAAAABQALYBeAMcA6wEMASYBSgFoAYSBqIHZgf6CI4JVgnsCpgLQAvWDEYMngzcDXIN2A5KDr4PJg+mD+IQchCYENwRYhHSEiASdhNcE9YUxBT8FY4WEBZIFq4XXBfoGDIYmBjiGSoZfBnOGkQa1htAG6wcBhxwHSIdcB2cHlIfLB+OIB4hDCG0IeoiKiJGIsIjhiQcJKolNiVqJdomcCa0JywoMCjYKYAqKCpeKrYrTiu6LDQtIi1qLmQu3i9EL5UAAAABAAAAYADyAA8AAAAAAAIARABUAHMAAACtC3AAAAAAAAAAEgDeAAEAAAAAAAAANQAAAAEAAAAAAAEACAA1AAEAAAAAAAIABwA9AAEAAAAAAAMACABEAAEAAAAAAAQACABMAAEAAAAAAAUACwBUAAEAAAAAAAYACABfAAEAAAAAAAoAKwBnAAEAAAAAAAsAEwCSAAMAAQQJAAAAagClAAMAAQQJAAEAEAEPAAMAAQQJAAIADgEfAAMAAQQJAAMAEAEtAAMAAQQJAAQAEAE9AAMAAQQJAAUAFgFNAAMAAQQJAAYAEAFjAAMAAQQJAAoAVgFzAAMAAQQJAAsAJgHJQ29weXJpZ2h0IChDKSAyMDE5IGJ5IG9yaWdpbmFsIGF1dGhvcnMgQCBmb250ZWxsby5jb21mb250ZWxsb1JlZ3VsYXJmb250ZWxsb2ZvbnRlbGxvVmVyc2lvbiAxLjBmb250ZWxsb0dlbmVyYXRlZCBieSBzdmcydHRmIGZyb20gRm9udGVsbG8gcHJvamVjdC5odHRwOi8vZm9udGVsbG8uY29tAEMAbwBwAHkAcgBpAGcAaAB0ACAAKABDACkAIAAyADAAMQA5ACAAYgB5ACAAbwByAGkAZwBpAG4AYQBsACAAYQB1AHQAaABvAHIAcwAgAEAAIABmAG8AbgB0AGUAbABsAG8ALgBjAG8AbQBmAG8AbgB0AGUAbABsAG8AUgBlAGcAdQBsAGEAcgBmAG8AbgB0AGUAbABsAG8AZgBvAG4AdABlAGwAbABvAFYAZQByAHMAaQBvAG4AIAAxAC4AMABmAG8AbgB0AGUAbABsAG8ARwBlAG4AZQByAGEAdABlAGQAIABiAHkAIABzAHYAZwAyAHQAdABmACAAZgByAG8AbQAgAEYAbwBuAHQAZQBsAGwAbwAgAHAAcgBvAGoAZQBjAHQALgBoAHQAdABwADoALwAvAGYAbwBuAHQAZQBsAGwAbwAuAGMAbwBtAAAAAAIAAAAAAAAACgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAYAECAQMBBAEFAQYBBwEIAQkBCgELAQwBDQEOAQ8BEAERARIBEwEUARUBFgEXARgBGQEaARsBHAEdAR4BHwEgASEBIgEjASQBJQEmAScBKAEpASoBKwEsAS0BLgEvATABMQEyATMBNAE1ATYBNwE4ATkBOgE7ATwBPQE+AT8BQAFBAUIBQwFEAUUBRgFHAUgBSQFKAUsBTAFNAU4BTwFQAVEBUgFTAVQBVQFWAVcBWAFZAVoBWwFcAV0BXgFfAWABYQAEc3RhcgpzdGFyLWVtcHR5A2NvZwdjb2ctYWx0BG1haWwGcGVuY2lsDHBsdXMtY2lyY2xlZANhc2wDZXllBHRhZ3MEY2hhdAV0cmFzaAZiYXNrZXQGcHV6emxlCGxhbmd1YWdlBnNpZ25hbAV1c2VycwV0b29scwlhcnJvd3MtY3cIZXhjaGFuZ2ULZm9sZGVyLW9wZW4FYnJ1c2gLZmxvdy1icmFuY2gEbWVudQRjb2RlCHVzZXItYWRkAmN3BWdyb3VwBGhvbWUJZXF1YWxpemVyBm1haWwtMQZzZWFyY2gEbW92ZQZ1cGxvYWQMdXBsb2FkLWNsb3VkA2tleQduZXR3b3JrDmluZm8tY2lyY2xlZC0xCGNhbGVuZGFyAm9rDGhlbHAtY2lyY2xlZAZsb2dvdXQEZmxhZwVzcGluNglob3VyZ2xhc3MFY2hlY2sLY2hlY2stZW1wdHkOY2FuY2VsLWNpcmNsZWQGY2FuY2VsBHBsdXMKb2stY2lyY2xlZAxoZWFydC1icm9rZW4IZG93bmxvYWQHem9vbS1pbgh6b29tLW91dAlhdHRlbnRpb24MYmFjay1pbi10aW1lA2NjdwdleWUtb2ZmBHVzZXIIbW9vbi1pbnYHc3VuLWludgRib29rCWNoYXJ0LWJhcgZmbG9wcHkCdGgHdGgtbGlzdAlkb3duLW9wZW4JbGVmdC1vcGVuC2Fycm93LWNvbWJvBHRoLTEJZmxvdy10cmVlBmxpbmstMQNoZGQFdGFza3MGZmlsdGVyCG1haWwtYWx0B3NpdGVtYXAMY2lyY2xlLWVtcHR5BGNyb3AMc29ydC1uYW1lLXVwC3NvcnQtYWx0LXVwDXNvcnQtYWx0LWRvd24Oc29ydC1udW1iZXItdXAFcmlnaHQLZG90LWNpcmNsZWQIbGlmZWJ1b3kKdGVsZXZpc2lvbgdwaWN0dXJlB3NodWZmbGUEbG9jawRsaW5rBndyZW5jaAVjbG9jawVibG9jawAAAAABAAH//wAPAAAAAAAAAAAAAAAAAAAAAAAYABgAGAAYA1b/aQNW/2mwACwgsABVWEVZICBLuAAOUUuwBlNaWLA0G7AoWWBmIIpVWLACJWG5CAAIAGNjI2IbISGwAFmwAEMjRLIAAQBDYEItsAEssCBgZi2wAiwgZCCwwFCwBCZasigBCkNFY0VSW1ghIyEbilggsFBQWCGwQFkbILA4UFghsDhZWSCxAQpDRWNFYWSwKFBYIbEBCkNFY0UgsDBQWCGwMFkbILDAUFggZiCKimEgsApQWGAbILAgUFghsApgGyCwNlBYIbA2YBtgWVlZG7ABK1lZI7AAUFhlWVktsAMsIEUgsAQlYWQgsAVDUFiwBSNCsAYjQhshIVmwAWAtsAQsIyEjISBksQViQiCwBiNCsQEKQ0VjsQEKQ7ABYEVjsAMqISCwBkMgiiCKsAErsTAFJbAEJlFYYFAbYVJZWCNZISCwQFNYsAErGyGwQFkjsABQWGVZLbAFLLAHQyuyAAIAQ2BCLbAGLLAHI0IjILAAI0JhsAJiZrABY7ABYLAFKi2wBywgIEUgsAtDY7gEAGIgsABQWLBAYFlmsAFjYESwAWAtsAgssgcLAENFQiohsgABAENgQi2wCSywAEMjRLIAAQBDYEItsAosICBFILABKyOwAEOwBCVgIEWKI2EgZCCwIFBYIbAAG7AwUFiwIBuwQFlZI7AAUFhlWbADJSNhRESwAWAtsAssICBFILABKyOwAEOwBCVgIEWKI2EgZLAkUFiwABuwQFkjsABQWGVZsAMlI2FERLABYC2wDCwgsAAjQrILCgNFWCEbIyFZKiEtsA0ssQICRbBkYUQtsA4ssAFgICCwDENKsABQWCCwDCNCWbANQ0qwAFJYILANI0JZLbAPLCCwEGJmsAFjILgEAGOKI2GwDkNgIIpgILAOI0IjLbAQLEtUWLEEZERZJLANZSN4LbARLEtRWEtTWLEEZERZGyFZJLATZSN4LbASLLEAD0NVWLEPD0OwAWFCsA8rWbAAQ7ACJUKxDAIlQrENAiVCsAEWIyCwAyVQWLEBAENgsAQlQoqKIIojYbAOKiEjsAFhIIojYbAOKiEbsQEAQ2CwAiVCsAIlYbAOKiFZsAxDR7ANQ0dgsAJiILAAUFiwQGBZZrABYyCwC0NjuAQAYiCwAFBYsEBgWWawAWNgsQAAEyNEsAFDsAA+sgEBAUNgQi2wEywAsQACRVRYsA8jQiBFsAsjQrAKI7ABYEIgYLABYbUQEAEADgBCQopgsRIGK7ByKxsiWS2wFCyxABMrLbAVLLEBEystsBYssQITKy2wFyyxAxMrLbAYLLEEEystsBkssQUTKy2wGiyxBhMrLbAbLLEHEystsBwssQgTKy2wHSyxCRMrLbAeLACwDSuxAAJFVFiwDyNCIEWwCyNCsAojsAFgQiBgsAFhtRAQAQAOAEJCimCxEgYrsHIrGyJZLbAfLLEAHistsCAssQEeKy2wISyxAh4rLbAiLLEDHistsCMssQQeKy2wJCyxBR4rLbAlLLEGHistsCYssQceKy2wJyyxCB4rLbAoLLEJHistsCksIDywAWAtsCosIGCwEGAgQyOwAWBDsAIlYbABYLApKiEtsCsssCorsCoqLbAsLCAgRyAgsAtDY7gEAGIgsABQWLBAYFlmsAFjYCNhOCMgilVYIEcgILALQ2O4BABiILAAUFiwQGBZZrABY2AjYTgbIVktsC0sALEAAkVUWLABFrAsKrABFTAbIlktsC4sALANK7EAAkVUWLABFrAsKrABFTAbIlktsC8sIDWwAWAtsDAsALABRWO4BABiILAAUFiwQGBZZrABY7ABK7ALQ2O4BABiILAAUFiwQGBZZrABY7ABK7AAFrQAAAAAAEQ+IzixLwEVKi2wMSwgPCBHILALQ2O4BABiILAAUFiwQGBZZrABY2CwAENhOC2wMiwuFzwtsDMsIDwgRyCwC0NjuAQAYiCwAFBYsEBgWWawAWNgsABDYbABQ2M4LbA0LLECABYlIC4gR7AAI0KwAiVJiopHI0cjYSBYYhshWbABI0KyMwEBFRQqLbA1LLAAFrAEJbAEJUcjRyNhsAlDK2WKLiMgIDyKOC2wNiywABawBCWwBCUgLkcjRyNhILAEI0KwCUMrILBgUFggsEBRWLMCIAMgG7MCJgMaWUJCIyCwCEMgiiNHI0cjYSNGYLAEQ7ACYiCwAFBYsEBgWWawAWNgILABKyCKimEgsAJDYGQjsANDYWRQWLACQ2EbsANDYFmwAyWwAmIgsABQWLBAYFlmsAFjYSMgILAEJiNGYTgbI7AIQ0awAiWwCENHI0cjYWAgsARDsAJiILAAUFiwQGBZZrABY2AjILABKyOwBENgsAErsAUlYbAFJbACYiCwAFBYsEBgWWawAWOwBCZhILAEJWBkI7ADJWBkUFghGyMhWSMgILAEJiNGYThZLbA3LLAAFiAgILAFJiAuRyNHI2EjPDgtsDgssAAWILAII0IgICBGI0ewASsjYTgtsDkssAAWsAMlsAIlRyNHI2GwAFRYLiA8IyEbsAIlsAIlRyNHI2EgsAUlsAQlRyNHI2GwBiWwBSVJsAIlYbkIAAgAY2MjIFhiGyFZY7gEAGIgsABQWLBAYFlmsAFjYCMuIyAgPIo4IyFZLbA6LLAAFiCwCEMgLkcjRyNhIGCwIGBmsAJiILAAUFiwQGBZZrABYyMgIDyKOC2wOywjIC5GsAIlRlJYIDxZLrErARQrLbA8LCMgLkawAiVGUFggPFkusSsBFCstsD0sIyAuRrACJUZSWCA8WSMgLkawAiVGUFggPFkusSsBFCstsD4ssDUrIyAuRrACJUZSWCA8WS6xKwEUKy2wPyywNiuKICA8sAQjQoo4IyAuRrACJUZSWCA8WS6xKwEUK7AEQy6wKystsEAssAAWsAQlsAQmIC5HI0cjYbAJQysjIDwgLiM4sSsBFCstsEEssQgEJUKwABawBCWwBCUgLkcjRyNhILAEI0KwCUMrILBgUFggsEBRWLMCIAMgG7MCJgMaWUJCIyBHsARDsAJiILAAUFiwQGBZZrABY2AgsAErIIqKYSCwAkNgZCOwA0NhZFBYsAJDYRuwA0NgWbADJbACYiCwAFBYsEBgWWawAWNhsAIlRmE4IyA8IzgbISAgRiNHsAErI2E4IVmxKwEUKy2wQiywNSsusSsBFCstsEMssDYrISMgIDywBCNCIzixKwEUK7AEQy6wKystsEQssAAVIEewACNCsgABARUUEy6wMSotsEUssAAVIEewACNCsgABARUUEy6wMSotsEYssQABFBOwMiotsEcssDQqLbBILLAAFkUjIC4gRoojYTixKwEUKy2wSSywCCNCsEgrLbBKLLIAAEErLbBLLLIAAUErLbBMLLIBAEErLbBNLLIBAUErLbBOLLIAAEIrLbBPLLIAAUIrLbBQLLIBAEIrLbBRLLIBAUIrLbBSLLIAAD4rLbBTLLIAAT4rLbBULLIBAD4rLbBVLLIBAT4rLbBWLLIAAEArLbBXLLIAAUArLbBYLLIBAEArLbBZLLIBAUArLbBaLLIAAEMrLbBbLLIAAUMrLbBcLLIBAEMrLbBdLLIBAUMrLbBeLLIAAD8rLbBfLLIAAT8rLbBgLLIBAD8rLbBhLLIBAT8rLbBiLLA3Ky6xKwEUKy2wYyywNyuwOystsGQssDcrsDwrLbBlLLAAFrA3K7A9Ky2wZiywOCsusSsBFCstsGcssDgrsDsrLbBoLLA4K7A8Ky2waSywOCuwPSstsGossDkrLrErARQrLbBrLLA5K7A7Ky2wbCywOSuwPCstsG0ssDkrsD0rLbBuLLA6Ky6xKwEUKy2wbyywOiuwOystsHAssDorsDwrLbBxLLA6K7A9Ky2wciyzCQQCA0VYIRsjIVlCK7AIZbADJFB4sAEVMC0AS7gAyFJYsQEBjlmwAbkIAAgAY3CxAAVCsgABACqxAAVCswoCAQgqsQAFQrMOAAEIKrEABkK6AsAAAQAJKrEAB0K6AEAAAQAJKrEDAESxJAGIUViwQIhYsQNkRLEmAYhRWLoIgAABBECIY1RYsQMARFlZWVmzDAIBDCq4Af+FsASNsQIARAAA') format('truetype'); + src: url('data:application/octet-stream;base64,d09GRgABAAAAAFu4AA8AAAAAkvwAAQAAAAAAAAAAAAAAAAAAAAAAAAAAAABHU1VCAAABWAAAADsAAABUIIslek9TLzIAAAGUAAAAQwAAAFZ8JmGvY21hcAAAAdgAAANhAAAIetnYKzBjdnQgAAAFPAAAABMAAAAgBt3/AmZwZ20AAAVQAAAFkAAAC3CKkZBZZ2FzcAAACuAAAAAIAAAACAAAABBnbHlmAAAK6AAASZEAAHH+osqcOGhlYWQAAFR8AAAAMwAAADYaqG2+aGhlYQAAVLAAAAAgAAAAJAgoBKlobXR4AABU0AAAANUAAAHInDH/g2xvY2EAAFWoAAAA5gAAAOZ2WVr8bWF4cAAAVpAAAAAgAAAAIAHxDLhuYW1lAABWsAAAAXQAAALNzZ0XGHBvc3QAAFgkAAADFwAABLy151+vcHJlcAAAWzwAAAB6AAAAhuVBK7x4nGNgZGBg4GIwYLBjYHJx8wlh4MtJLMljkGJgYYAAkDwymzEnMz2RgQPGA8qxgGkOIGaDiAIAJjsFSAB4nGNgZJ7LOIGBlYGBqYppDwMDQw+EZnzAYMjIBBRlYGVmwAoC0lxTGA6osf7/zxz0P4shijmMYTpQmBEkBwACRwyoAHic1dXJbxN3GMbxrxPbkOAECEvCFsKSGcK+7wESSHfoRnfSUrq36Xbj70DiwK33CsSJ/yAXJKoeEOfc5j1UYn6u2it9Zp6IE5w41aOPxx7ZP3nG7/MM0AJ6Zbc09XKUhl7RM6Kjjfp4L/318WbjL72f5py+05O1s1vZ47wvH8xvLtwu+ouBYqyYKCaLezFT/lbeKe+W8+X9cqGM1EnjaTrNpmvperqR5tODbqs79+QJZK3nrsEz1pjSGlefrtH0Gi/4aOh8Ljx3++MZ25/aHj7dHtVr9OgaNXVV2ixhKX26XsvoMMAgy1nBSoZYxWrWsJZhRljHejawkU2MspkxtrCVbWxnnIycHUywk1267nvYyz72c4CDHOIwRzjKMY5zgpOc4jSTnOGs/o0pncN5/doZXuJlXuFVXuN13uAil3iTt3ibd3iXy7zH+3zAh3zEx3zCFWb5lM+4yudc4wu+5Cu+5hu+5Tu+10m1X/ja/v8fneqpdWXx3a/VxFqVjKxt+vfJblmVpOyxVWnK+6xKWT5omhLym6Z5YeG2aXIo+k0zRDFgVfqKMdNcUUxY9euKSaP67D3T1BGY5o9omCaR6DHNJNFrmk6iaZpTomWaWKJtml1iiWmKiaWmeSb6TJNN9JtmnFhmmnaiY5p7YsCUAGLQlAViuSkVxApTPoiVpqQQQ6bMEKtM6SFWm3JErDElilhryhYxbEoZMWLKG7HOlDxivSmDxAZTGomNplwSm6xqzBg1ZZXYbEotMWbKL7HFlGRiqynTxDZTuontppwT46bEE5kp+0RuagFih6kPiAlTMxA7TR1B7DK1BbHb1BvEHlODEHtNXULsM7UKsd/UL8QBU9MQB02dQxwytQ9x2NRDxBFTIxFHTd1EHDO1FHHc1FfECVNzESdNHUacMrUZcdrUa8SkqeGIM6auI86aWo84Z+o/YsrUhMS0qROJ86Z2JC6YepKYMTWm7kKm7qS8Y2pRyrumPqWcNzUr5X1Tx1IumNqWMky9S+qYGpg0bupi0pSplUnTpn4mzZqamrRInU1apPYmLVKPk66bGp10w9TtpHlTy5MemPqebtPU/HRbpnsA3TnT3aDxd7MGP9D4hxrMaT9Ugx+1H67BT9rnNfhZ+8s1+IXGv7/X1KX/AaxMjmwAAAB4nGNgQAMSEMgc9j8ThAESjgPjAHicrVZpd9NGFB15SZyELCULLWphxMRpsEYmbMGACUGyYyBdnK2VoIsUO+m+8Ynf4F/zZNpz6Dd+Wu8bLySQtOdwmpOjd+fN1czbZRJaktgL65GUmy/F1NYmjew8CemGTctRfCg7eyFlisnfBVEQrZbatx2HREQiULWusEQQ+x5ZmmR86FFGy7akV03KLT3pLlvjQb1V334aOsqxO6GkZjN0aD2yJVUYVaJIpj1S0qZlqPorSSu8v8LMV81QwohOImm8GcbQSN4bZ7TKaDW24yiKbLLcKFIkmuFBFHmU1RLn5IoJDMoHzZDyyqcR5cP8iKzYo5xWsEu20/y+L3mndzk/sV9vUbbkQB/Ijuzg7HQlX4RbW2HctJPtKFQRdtd3QmzZ7FT/Zo/ymkYDtysyvdCMYKl8hRArP6HM/iFZLZxP+ZJHo1qykRNB62VO7Es+gdbjiClxzRhZ0N3RCRHU/ZIzDPaYPh788d4plgsTAngcy3pHJZwIEylhczRJ2jByYCVliyqp9a6YOOV1WsRbwn7t2tGXzmjjUHdiPFsPHVs5UcnxaFKnmUyd2knNoykNopR0JnjMrwMoP6JJXm1jNYmVR9M4ZsaERCICLdxLU0EsO7GkKQTNoxm9uRumuXYtWqTJA/Xco/f05la4udNT2g70s0Z/VqdiOtgL0+lp5C/xadrlIkXp+ukZfkziQdYCMpEtNsOUgwdv/Q7Sy9eWHIXXBtju7fMrqH3WRPCkAfsb0B5P1SkJTIWYVYhWQGKta1mWydWsFqnI1HdDmla+rNMEinIcF8e+jHH9XzMzlpgSvt+J07MjLj1z7UsI0xx8m3U9mtepxXIBcWZ5TqdZlu/rNMfyA53mWZ7X6QhLW6ejLD/UaYHlRzodY3lBC5p038GQizDkAg6QMISlA0NYXoIhLBUMYbkIQ1gWYQjLJRjC8mMYwnIZhrC8rGXV1FNJ49qZWAZsQmBijh65zEXlaiq5VEK7aFRqQ54SbpVUFM+qf2WgXjzyhjmwFkiXyJpfMc6Vj0bl+NYVLW8aO1fAsepvH472OfFS1ouFPwX/1dZUJb1izcOTq/Abhp5sJ6o2qXh0TZfPVT26/l9UVFgL9BtIhVgoyrJscGcihI86nYZqoJVDzGzMPLTrdcuan8P9NzFCFlD9+DcUGgvcg05ZSVnt4KzV19uy3DuDcjgTLEkxN/P6VvgiI7PSfpFZyp6PfB5wBYxKZdhqA60VvNknMQ+Z3iTPBHFbUTZI2tjOBIkNHPOAefOdBCZh6qoN5E7hhg34BWFuwXknXKJ6oyyH7kXs8yik/Fun4kT2qGiMwLPZG2Gv70LKb3EMJDT5pX4MVBWhqRg1FdA0Um6oBl/G2bptQsYO9CMqdsOyrOLDxxb3lZJtGYR8pIjVo6Of1l6iTqrcfmYUl++dvgXBIDUxf3vfdHGQyrtayTJHbQNTtxqVU9eaQ+NVh+rmUfW94+wTOWuabronHnpf06rbwcVcLLD2bQ7SUiYX1PVhhQ2iy8WlUOplNEnvuAcYFhjQ71CKjf+r+th8nitVhdFxJN9O1LfR52AM/A/Yf0f1A9D3Y+hyDS7P95oTn2704WyZrqIX66foNzBrrblZugbc0HQD4iFHrY64yg18pwZxeqS5HOkh4GPdFeIBwCaAxeAT3bWM5lMAo/mMOT7A58xh0GQOgy3mMNhmzhrADnMY7DKHwR5zGHzBnHWAL5nDIGQOg4g5DJ4wJwB4yhwGXzGHwdfMYfANc+4DfMscBjFzGCTMYbCv6dYwzC1e0F2gtkFVoANTT1jcw+JQU2XI/o4Xhv29Qcz+wSCm/qjp9pD6Ey8M9WeDmPqLQUz9VdOdIfU3Xhjq7wYx9Q+DmPpMvxjLZQa/jHyXCgeUXWw+5++J9w/bxUC5AAEAAf//AA94nKW9DXwb1ZkvfM6ZT41Go5E0GsmyLMv69FdkR5Ilx3EcxXFsx3Ec4xjjhGDc4ASI8wWkgW0Jm0JeSlmWsGmXSynLkl4KLIU2DbTl9rK0b0u7+6Nsl35sYLfd9+2v3bcbtru0t8v20mysvM9zRnacAG33dxN5Zs7HjOac85zn+T8f54hQQi68IpwUKqSRdFU0v1cTBYkwOrTpVGh8uqJTShg5SBjT2cb6igYJdgDyyO5tX2ywQoIUaqOWlwaClkE7qCInMl3FciCLx3S5lG+kki2c9L7SqQf1/zyn2zrt/LbRSMN3uOP6ERqO0zd17zerb+pukyrHjil+TVRp6JtePSg1V0OhajO8ydL7uUgLqVR80TrL8LhURZYEqv9eL1pxpVMh228KktVGyx3US0NKORRwXjuZeJ/XZh9++ud7bvzXz7Z8//tVaEBIe+8GJJ5I/N3fJZ74+YED9LTTluj7tITwtnxB2C64iUr2kA2V/l3bRteJRFytMUqKzfWmKFBhiEiidECmkH+AEEoOECrQA0RgwgFo3O4dV2+9YuNwW2siHvArkt1Gi5mEQe18KR20ZC+VFTtkW4pBs9AuWYH/bRQal81koZFwzBTLfbSc6aA5mu0qltbSUrmWWYBWl8rwfzXN243UDkE/hGoPUyAjRtnqidsm2NShKRpVlRs0d6BZlrzjHkXZXBdxKaJ5u6qb9aEtsikP2qKkNmtedbeiUk26QTVCaaeuujkccamC73ZFp95oaIvkVYYtUXQ5lTU6s3py8vDk5G1YbsaC9XnZkIPjVOr1qKNRU1Oud+m9klyJSYas573Rei/VFV63LhJfoeiKNb6sqnu1JK2P1qpGTCAXQmQYg5vFDmEjjIGf1JMPkS+R/0UeqXzyrb9norHnGiapr714UCDSS8889sGJ0Q3JBhclzz1aERjtWcFk9qdHmVtQhv75h8zYcCd1D2hUdUkuVdpHZKYwWdlHDCK6DHGWuFTimiSShxIqkVnCZMomkUoVgSqzRHC7hUkiCO5p4hbco//fT//qW08/9Uf37ts7t3P7tmK+rTVgWVbA75UifIhlC4ZYKmYMGsIrAbNiNF9SLh319xz0rotjvob+HmMetPgTcchp0ILH2XjEiQJPA2JwHgmPgKfBzZCARxbycHcIHs4fgO/jW35vJsvv/T1vpW8jERyepM+2d7fT1p52Wju/oYpXyXqgURT1AVOqBG1ZET03yJonEOoXPfK4KKVUj3KlpKrSlOJ26mmyXAmEZUXAihRqrpM80hVi2Kd65Ctlme7eKmtRNkClYINbdyvtAh0QGjRl61ZFaxCKJhVbVZ8vGhLZehZ1QXatdqvKa4u/tfIiPf+0oZ01Nza0trJtcFjd2vo318O7GIFQfVrWRV+/mHfLvfUeFV5Iz4viJq8kqe162PZQmGnSUk3JhJqa2hvhNd0rsaYox4Ke+oDO1OrfjrlUr7HWYKy5Pk2pu0ibGYO0V3WNuVymB0tiriIQYXOIZrHIY7pYAcqcu7JYpBezzk0uuElduslNaXbpJpUQ4cIF4GVn2TdIHVlFNgJnXlPvp4LAAsCTCRsChkWYQPYBC2OEzhPg5ILEZggVRTpJKBWniUjF0a41K+paW2Sg8rQPKddg2WQCeBOQSNZn2eWmfCnQ1UEzcrYpISsWMKSYWC7k+wSgHiBqnyUrTYlM2VcsFZryIGr8wT/dFk311rNIX6Jh+sGgX5eFEvAVJgiifP4VuNo6f0iM++NhnbkjMSsmHdobKw4V0+dfSZVoMS2U0tDUZyzzlpFwJMYiMXvkFtOqTgKL0diEYUgSE3R5Zt3kDiFqWJBp6zG2YzI80bVwMl2kpRS7Nl0sAp8ROa/fzC4Ax7Ggj1Lk7koIeKjUYBuKKLA6YOhEoMAPRJBgfpBgWSIxCXi8wIDbEwGZPyXXyRR7bAJOVLwKu2xTfSXz7prkwLsrbqv4CWmKh0OmF3iRTGRLkYJtoXJWCRaCtJhMKFQOWoV8mZZgaJNdKMizXPrZ387fVRim1+qSWP2u6JFE2iHEzlY7zwqbrWvOXmOttu+ylMJdhd4hBuRb/Z4IR5oTbzpb7XiTPtwQvObNHcHgXTZBmXdhAfrhWpB5SdJJ1lX6kB82UuiBIaATEG1E2CdRQYTPPFGgIQqdJaIsi5NEFOVpIovyaDCYTKWTKUuVom20q5hRknAAOpGVIBxCQaCTAhxChXyp3IUHACOJHOujeejwJ23juG0MeS163LChiRcTp2/+1tm/3i9/6MW3v3IH7RmG0uNQANUt7/JE4YMvHzr08r/gAccV2vN14e/gvVeQMllHNpHWSnbTUP+63u56n6FIbrIBkQgjkwg+2DTikNG2Fn+bAMI6kCkBW5WRimk5X7ZLZTj3UeCB2S4bLkLAzwwB+GVTJuvUtWW46qNwZdWuQsDmM1kqZoquLuDTMSXf3FGf2FlXP92gA8RhNJJceVumSWxaM9U50B5cUf30ZLBfLvWoQbE1r9/Geiui2t1DHxL7e6gs9eRF9mI6bte/0JCMfa7YS9NZMZtWG814sEmPZrTEiv668KBVd/P+2xv98kH68IrmcOq7Le1Ghja2xOJN76xOtGcpaQtnmqodmeYOoEdy4TfAF44QH0mQAhmsrHczJjIYdhhyIgLRisI+qAbkP7/IHGTCRJnNgqCUOHOQpolEpdGQnbKCYVuR6tugySAb5BwMf1lWYjQOkzWjJIB+QRoCkIFRl0DQiPEUSrZSOxVDwA2uPJo48dqJxNErN/2Yij+pftl0D86ZtjnQCXjz791j1Xeq/1B9Z8ztHqMqzVB1zE17jq3rWX/9J9gDN67vWXfs5nvuoRuh7twGt2m6OwfMVwOBjzz88EcCGevow+zROyzC2/uXYopjugZSJJ2VFRnkgBTbKh6AGU7oQQmaSdgknBiZRhw4Gq9r6Y74ke8FUKjHWIlaCsrXmpAuo1CEwcZMlJ60VMSipJN9DkQha+7LsCut6lv2aqt6UzDW2vBmw3CQHrdeD0JegwV4Rw4GoWS44QgvCLLpWCvLVFJyZ/XvY1ApiJnDDWcbWmkMKzbwTNMH963GohjPreHWU5zXp4He11Z6N0Zh2NZSgbQgYx3SYBoP5ikbgOkLUBX6BPEq4/gGZ4DARvsrfb3JRFIEBkRhdiYTWeT20LKuTLHUtZaVlHIfKwPjL/JZG7JwkIH8GwUOZlEcQD9kbZzdfVArG6OCf8/z8535wSuD9cCFKAOeIlBAe4a4YYzuef7M83vOjA9IulrvEiUA1kxTotbUYL7zvx2M+7Y/3r9hlHqGJ+lnNh8bda0MSaKmIP8UZHhITAr7zeZD68eOjY4e+9H6w1nD1prcggQim6kaFaXQSteIkO8o3j3S1pq9jWPKLwh+oAEvaFEdZDVZT64nc5UPXLWByWpLU53PRWUg9SEJUCTwYUr2iUAJikyUeYCLLtVwzXo9TNU1AImqPEMUt1uZJIqC4FBxj+6a+8DM1du2TmwZ3Ti0bq2VsjL4L2lKDW0UJCAHeyABEcSFfkc64GvyWTEKwrKP0gL0alIGoYB1oGISRGnWB4OCFLgaOROSYSPARJvGNDWlavxw/OLl/ZriXCracFVXVUZfY6pa/di5elH6gizSn2tqqZiudoJo7MJ6z2Rd7fbpUKsr+yx05JerX8VMug6P73NdnWO+hV/olqZZbNc6CXjDVvjGhV/kBvpzLMBf4ppglMasazSOSU4JJ9nLMBd9MAp7v5iiAtcQXVy+yqBZyeI+mJKCQOYAkohMAqAOJMwmgWUL06hljaJ8XVYTdMr3qbitonWlmgu5sB85lARknaOlGF26CCA6kQCXAzIBkm9CJbOPdQkIcEogrGJMtrGM7mrtaWW5Uo7+qnYxaOkL/0PxMOq1md+38E2gP9XcebPXYmHPcZcha0yl7FHDVhp4dTHTuHjBKtWfeCw2kDDq7ahtG3LYjAr021bMprJu6raAQplCP73CnmD/i2whGyuDRFVUmLAwgwS2zwXasAazWyGz0NnQe8C1KGXTIhSzUUqGN6zt6+7Ktbdk4w0h2/TIItlCt7hRtUYlBaRayQ4FHaIrA2fOOLBNziIXA0YdwikM0juhyJlyFyfKEioFpbytAAO3keIaQNhlM2wkXSql7WDEpp2Nx03DFRzYOUA9Ps063tRO/Xa4PlMqZYLBSJjm4scDus8YnB2kQc30Hm/stKwwPTEwO8w8Pt3/QGPOb9dFMsVixrbhcbnGB0xDswbmKgwfd3VTzqq3wlgcqQtaNNd0NRYTGHdy4SfCOfYPgHBR0l9HdpNdlZ1tCabQ3V1hgSkh6KE1bqYK/VRSe2UGVDMEfQdMUGEKKvESaPMIgsl+4KKCyoRZogK2nyCooRBJlUZ2zV03e/X2qSsnrhge6i5l0wEX8kgAAqBvZZDXGUKWi71SGRSobBE4ZqlQLmaLANzyDaA9lUAjDNpeGoSek+wyMlYLmGk2A9gombb9Ng5NF050flEKYJ8LBUH4UWx8RmNxJk71tZq54bnuYqU3X2H36SLwIfERpuZk7VFZZaqontKnbq8+EU2IiUj7U9HemJrqZSqr9mlT4+KUnD/VyeQpUXuCqbPanQ8M0/zEi/0sI4u9L3RnRidzqjzYM1nJm3NhUKBLIBaj+0V47A02fFEr/MV2D/9Y1s/o0fY77fD0oOxnp6PVt96RxSceZ6LoZ7ZafZGqzniAzrHEZ9cC/V5ZmdhIFdcqKiktVJDqgGbXrWxyGK40RFyKC8ZCUg4QSZCQyAlIJQBmHGaQaVWGt4H06OZNmdq/pAZstVyjYIcR5u13pS9jq5enA5elgWXOI0uDw5nll8peReOH19+zQm7xQqs8h1d4+Gj1Jc4c++H4nYWzeM3CcKT2+VcwIZTg6Mjsj4lfEPJkJdlFVlRar946vnHtmlKxwSRumMtDWAV0CMoQo9DdE1f0rFrZGQqKMJO7uI0AuH8RBa+jsEMKGNaiQq8g8ArFGODYYKiJ1mosKzdYyKkQBKyeY0DBWWAGQNH4RKt5Q0Mw3UwbA8YKAzht355VbZN9CUEUjRVeX7w503DHnOm36PkT7P/WJSbmp3dMFUUQ8ikdNBmNJmK+/KC3Kqu2HupdWS+pgsvwpFcq3ojbHRjJ1qeDWX9Pmz/bVt7TRzN9E63l+kBrj78lkK7PjgS8uWa/rxfAz/cTZjy5YrqbFXe0JeNmotNo8mkgaeK9pssKKx91K5lEq16X8SfaNc2UNW/CRPx/7sLDwr8LEdIG+H+KzJCGSmTbdGWtSAYYdfAP2d0QrY/4uMExYFAriR3mzGZQr7An8aKcD+WxAI1sAOShiwDZ4QXNQPenbQV4ICpk0AQ00dhYF6ryh9i0HOKP/JQqM59XNPVBt4fFRbk1BhlGxr67+KGIbt0WH29PiKo2aoitPe/Qh/1Wp21Wd6rqsM7yZjx/Q3f7xMBA2ICuParrop4wxExPRm5mov/8U9XRX1v+nE3PqVHb6xEN/6ius7AoRztlI2Zul5laDHf35BjMblXsDOerKdtsNfz0DVXvU792Q990RG8fGxsM9wzb3d2yX9YHtHy0uU/vgRm/MPDO1K8sM+ev2USvhjmdIkPkmsr29WkmuzqoJCNvVWE6izCLVVl1yfsUyGWyxPaBMBJkJsyD/ohTeh/Ie1lS5dna/AbpPo0odHRwQyadLqUzXVYKZzW1ggg9uVlsaSrLXorK2JIZLFCb6jAHkIMuWtPKXWgu4xYyW9iU+qdPXvFQ77AbRew5w2auzc1z5ZE7s3JY1GG6Gpbp5E4c3ASZIUk/oOg09bNPXvEw3hSmkkAf/ErfqmE3v92OujenWulIn9bt0ekLtZzNTloWazVRl75w4RvCm+wLJAyzenNlpA06JANCBk3fTBhyyYwMQE/IBwiAYQCzoGeBtsXQ+iJSSZzB3mYTqJ1O4fQfCWQCoUDUQviC5mOlCQ8od9Ash3IYbSpoDcTuQjsLalpNKKwBmgtnNXWBaKqsnJak5ySvJhBoJL9awCtgRUQzoPAv5xWN4p98WvZKpyXgaBptVqXTsi7Pw0fV4AP5vH2/EeuAFvykhbRXWoggCgdQR2S0JkQBN3PLAKoVIhtN9iRLXZJUx50QHGPlQC/pQ3xrZ4NNCdkLcrBcY8K8OWKd/3+GpzILJwNR6nsxPJVm1wZiX6t2dt2cfBHmLx0pPFcYoR3FYbrWZ/1jtNlI8OPntxdb/lFQJMbChZGRgn/EsW2cv3CH8IYwQjwgj9QvNloAy1a0lUucEcplNLFSm+A112D4PCaHMzMTemrq/klRLoaFvZHq44czU6rqj8UTplppPkxffjqhjc+kJv16RJR7n2ZPRaoDhzL9spGIxYENTWYO0SluX/oKOyow0k66SB/MnenKlZl4ox3UZVmgQ5rCBFEWBXkfgllZmofGqUAVVJx1URCk0iScJJwnEhmtrC2XBtavHaoMre4p9ZX7ioXOjrZWZGEc2FlolIAPauDcU+JzABtw+mAJ9TYnKaEujoAv4Jwsmy5esKMjcvtYT661tRgWBwfnBoeH8dC8s6eY5+mF55u7W1u7mweieGymzzhndu94rGeqGDYMM96Zio3nBwfzYwn6ocQoXo0mXo3F/HZvLs6T0ebmnubmhUE89jSzaedMSM0msR30Agc3lCvFZpg1KkwBUMpwcggI7wWCCHh2GTxAw9ooAK6uTIGbKIOOuRFxbBmnBqSztXSolk4uT2+zzPO/4GYkwee16W9JzQ3xS36k5jC3VPEjNYaAHUABXJNaW/6HaLOvEAs45ioSq9TnfNAOOsRNDQcYury6is3ZkF+U7LY0egBgPpcpn7MwS0K2RQV01uVoOdBH0coPYKk26bPOzAdBZNFp9JxUz8uIYk0xKss//KFMB15jhpxQZfpdpitJRaV7oYYhRyXphz+UpChcQu0NkATiwmsZikzxRz+UDTa20KGApBZ0lb0GD9CYUT1e/U/nph/+CGrDV1TPS6aDXR4BnBcnzaRINlWGY1HLFJkCfE5ky/A1jBtwCIczyGiJYBNwYsKUBOMojABCXtnZkVvR3tbaUhcOqICr08gEuhDboAURzQ3I5rMZoF4vtYNI5hSQTboQTAJwSXYVugps7/Pnf5zKzQzmVASroqiK8o5/2gHykBmGwbTcMB148ME5+Byt9Ox5xdATg712sVOPdJoWQJdM6dCh0rSaiMZEXc+V7N7Bt7Dug4TrYVWQfduA33WSNZWeFaDcuignyZphFNg3ddg3JRIFBRQYHyqgaDxn4mg2G8imOGXSmtDiMstgVow5hhIcXfTfoTVUcMQXp8pzoYAPhFPPntFcbnRPT//hFtEnj0pM7v3ctVc9dnBYrNz20NUTD60Z9rWzb4A8WmFu3gwVD0H9ni6ZSptFQx4ZpwOHHv3co4cGQDz5Aw5twuEs+xKxoUVDiDpXFzJRQxcVbhBDl6xI0ViNqiU6NYXd9Zn6+hbuAACBjGNR5MhIDnG3VjCZCHUV1zKg1RrDASJugIKmHKWlLNbEzBCqjGgVBir2f7afJdNdjfGVw7rn5k7x5rqv2g+tSufojqPbx9acCLPkwk8Ni/79QK4xubIlue4pf/3h/H7vnrsj8nh2R3dHCwscOehWy6E1x+ueqtcGo6GpwujevaM3dsUGtfqn0iIL0217jgRYW0vfxMpxzb47zo6vqu9ScTzPX3hVuIf9ikRIUyUGwyZhey/B2VayyZdK8DGzudXFoHBMotWlCw84UUPCbaZmTzLDfPXVr0eNSVsz6QNmu0nHTbv6imHotFR9xbJoyTbpCdPkPOHPheNCDHhCM+klByv7stQl0iFTY6JLPOBR0CB5MOBmLpXKXpc8Y/mY16C64NVn/BKD+4UJPAtkiqHJY6SlJRgkpKW3pXdVdxfMo45cW2uwOdicTjXFG2P1kZANX2UlfYGALwjSNw3TxeIgAaYMSNsyKPM+Gkz6uLzw4Twq9lFbCUq1vKyPV4S8oI9Vyon2RHd3IhhOUHp3Od4Z7+6O51Js4ZPleEecQqIz/ouDT4YSidCTB+n/DsdoPFR10S0Hqxrm0V8ffCocYwn7qYMHqn/Acz56gIZ5VvUsceyX0MLj7FmQmi4SqYRcskhFTpKOgx2Gxc/QmZ7uagrStK/JR79fXSscqQ7QF8/fRfd/b9++6nPfq26iX+K86etCgv0L8cEoA0bxIRZFiz8wJj5fZznKwmlas/UCxsqKUhiYD5B0B7fnmqU40m16UWIKYiycS8VfGpk4+tLzlHwtVw3fc+oO+Iwlorl4/KXWlyj50ktHp0eenr7njtN334HvTS7sAR45AYhvvLLZTV2aormUfR6qqJqizsvISOC1OFaGz7xOVZh1RKUzRNP0YZh7HmHjusqa3tWrioVcO7ykLx1sClgGB8o1zJdEowJPoHwAFNXFB3oZQix0QXN4AsULUHSwsIQP3fe7Y9brIMbcx7WYdhzA7vDrFl5gulbgjroXC6A6nTHcv0+95U9GHPbOhS8J/yqgkytJbtx0yj0+XWmG1ovkAGAeKsIQS/QAqg+ydB2RBUGeIICSthFBFjbXV7LvWVU6cHnNbRXdlwj4QNv3+VzYTVISZy7w2Br4zHSg7lZQ0K/ehOpEtkDfpuLjLz3B3vD75aiYss+/ZqfEqNb66M6nT6tiM21vVsXTT+8U1LcvwJhWT2vt/oetSMR6uDO89051/371Tj7WnK8+ThrQg4b4DUhXJjK8JzCZA9wdiPY7yibgxOi0CJd0lJJIOOAzdLemKrJIGmiDinAuz8epq5BVQMzB4JUK+VCG+1DsUIm9M3fffXMv7Tn1uRveGdm7Z9SQ2SP7t98XjtK37nn5npd+9rOXbjhxA9Mjex+6YULkGPjchYNCRJgidWQFMSsePwWKBAzS1krxy2wEv16G3Bx7p8ylLWqzpRywcYNLKPhjoBILsjW7u79yePAGIz6qW8xULcrChv/+m/ec3hvzT87FVFWQmK2sN40wqFhs7tC3/Lr2df2JqGiIprEzFqF35gf3fNqy7nyxfU+f1a7bLlOxpJW6ajKDgJZILpwQHhJaAQfWkyzo7/1kjFxDbiQfqdyRigNsZjs6M7GwJioC3ZyLAE+QyZW9JUGUbhja0NcN6E+UhlDJBL1zn0rRki/PA76mgK+JhCrWPAFZJyrzRFH2ExwQ5AN02sXHoyFKyfW7rpoa3bS6p7Ay2RTNNmSJl3o1tBMklAzIMzskB62QrGQUfgSsDTmUl8EoQU4gg4YUrFnIY1kIFVdZQUtrVnYegQXUMcOg1lFaQ0uCHaoFYmRLP7atzvbSyI5eWewrmfutXqs/n8mpdDxq93RPjt22f3QqsuexO0Uj0xuJGeGZZvNwxuzJ526T2YMv3bx9QB8A/d++n84+KFb6w5XOOW0ugmBoam9PaT99RyuOjrRn2k1TNju7xZ2JyM2H99y5f7YvH6adRms01mekItVieNrSwtH2nKXuPWY8aORE48RUZ15Ljc6eSo08cCczdtLv3fOq3e6Xu8UThy1ba134V031J8YrrfpjfDqArH1AeFhoh1ENgLa4s3KtDlgpmQiHREkBZqyAHqxI+wgqP+I8DJYLuCBhCPNlRZBnNZjtVJzU0OszDfoyHQ1aGsCvTCoeq6+zWoItpuEKaAFJBJ6pcj2oBHqpCBw9lJCDMtqxu4oCwCz0TAEDRGNBCEYJKJ1+6yVqytVfV49V35Kp/qvWHEvEM7nnY3uL/s6wobVGOmOHu82ireupiNDKqu84NTV6O/U/2BmJxtvjPQufKxbDqcxjsz25SCLx0A0EqBZ5/kng+aBqE7SCBkgIKLkRuF4BqHk1t4jeQh6q/Om6NGvwb1yREgINbKipkTUEXA2T9TRQF/IILjXgujZs64Ia9Cmg+ajSjGWCCPK6BSBtkc5EqN8fm47TWEwfNjSEB9FpEo16ohtvPrhvz/W7r5u95uqprZtHNwys7QP50bOqGy39KztasskE4gO0ftWFkeICfl/tn5kAhhkCaYF/2WVnetlZWPLto1s/X6LL6pdrZaFaWbnmtHLMrF2Lan6hdqWg9Bo6efKbp09/c/FIP/Xcc2dOn6bPnDx55rnnXtbllKJR5/gpnnXm5Em/pia5ASOpaq+3R8+/1dDa2jBcTKfSxTOlVDJdokMNrVtOnjyZOn36dOrkwssnz+EhdZp2nuRPO4l3VzNQdvLk/LKs9oUufBT7dkNrKV0son8Dj61kkcd/hj1EgmhR9FJU6ThsJItGRStkOfGWjqN4Ueo6olf4jFmNA0as/ovXOwrnx+l+OI6azLahwAvaDU+an6EHTHPUe8n8sYFupitXdpeYIAVglsDskUWcNzB7gPcJ8zUzEkgbIspEnFW5rJlUuaxBnDGKMyebScQb6n2Gy9ZsZ9a4ls+aAMyXUgbdRIplhwLIsZIJ4FEIGGpxZwqKCS8PYXNyoYWXzaUXYxmWibEoHKNPRfZMVJoHxP2mOaabpqrbmhZ0y4a4V5TtaO7yibUQy0RjmRT8MTqcaB8bjbTeIIqRaNiywn5bV72K6nOpVo8q6qZl+hMc6/1GmGffAFlRIf2VtRa2GzqHgabEO4dh5yxqoZTH+M1iYrkR0k7WpVvTWW5ks2xECtzvXTNKBUM8i1O8j8ewxJgzwgi/HDNlGQka/f50FxAEVdXT62dm1p9WNfTMYZJHHj0vM5kx2V39rjtqow3ROGdH3bTDnWN+yQB1YGY9vWf9jKa6XbIHNPdipnob3CgylbYb7uprmuU9aRtnvBY9ibZLyCAOXQK2ukfwA5XUV8JuTpcGpRuWyDIc5dAZRLrBckxWAkkBNM+YUBL2GKY6e89kX8/A4fHtcy/s2H77cPfA9qfYDbKh3/tgLNIZb+6vPsZeS/Q3JwZG8s73XfjlhT8Ufi5sIKuIt6K3U7IBvyRAUXsHwsgsWtLQRVEztDk29JBdCw1AxV7pKjl5GFIjC1dtuHb7X22fGbgmnYxErhQDen1/TjUU14ZInR1aP3Ljzm+t71pF4y1bx/9m1wdv/eCO2Y4kY91l07Uh2SSnswPX/OGHjxy9TgwpPiXXV+9xjczOXD2zfsTyb9i85qHxidEPVNYkErQlEBjceHBi21VPbLAXbTV7WCfw63rQy3ZixG9XnjGhBJ0+vZkBvMRgX5hqaKTDmTUPJCdKDG1RAk4sCjidEA/ZuHUiUp/KNkQU1BtBZbRiFJ2knDz6aNGJGQFikrArQP6X0PsXKPYx6KWuMnCLkNUo2Bk7aRkMwFhG7pIbaB/rKuaD8ChQsTsYjw9lnbM7d84+88YzePrcDz5XjflFdcftx6aN2Oye2x5Qo3pdww429/acuH1FwOfTYzrTZFX3elliu3pooNj/IXlHm98j6YrI9rffMNO7Y3fucGJsLHE4t3tH78wN7YfjY2Nx2VDlYl6zStURfyxlhKM7YvlSKR/f3hYIBlmn5vcbmtc0WYJuj/eLmc5ELJbozIj9sR0tAUO1dLsWk/Ib4THBDagTUFxl02oqymlAYCj6YVYoDCNyRSaL+3iXIkBzpuvSNCWXTFMrFMx2reoq8CCz4EW5Um7KhxDgy0no06baLG3Kl7i5AkGZHaAXNaJFdmwJ/pn11U6cp/S1ZMwlKPWARjw6D4Uopehr6aKUAhwiuj9SXeVJGb80jDVGyvg4vRESfR666QvOrf0z1BADclSiQi2OopT6Y1VKQtOoVO0xjF/y+h680QNPqPVLoOYjbas0AzvieHWWILdGuybazikbZSRWbwc0hXiZV0JGvaxx0PBMyHdJJ9jspmUvX7z9YvP6Z9k3ll4OC7ctlczQ2UtiAFNkJUZIxYK6IDJUYlAlZRKZBeiNti3UXmrGrWDIilp13Oxa7KDlEtp2El6axYNsNVIFD3Z+LQ3h4dKYv49ou3ZpWgGUzl273DEt73bD2Z3XYnCGzIL2xrLQvx8bWNrgXqwFl5em/3h5ACDyw1+wH7C7oS2xSn2izlREXIUg0KUFB/DeFtf3a4qzcpl1tZGWLxpj2Q8ccf24I57hbF5Me72PP+49aOPFZz7jfXdFbw4r8Hf6DY8/SpKWSgYEkshRw0GgGiRyOAGVc8vOaLKQThaSizbDLKrzKI7KXbX4jPIieAoheBL8cfts3J634/QszAJIxELzcIGJL2PumzbkBt+s5dpxrL5svIMkgeOtOHJz2ZIGRg9cHk4TDIUsi/tyLh9qG0NUQ8sH+G+0gjvq/qc74FDQtFdgYGmHdt/yeM4XTBz2n96Bw94INTSosGnZQGKffUV4Gt4xS9KVBEbo4SAuGetQIzhARHG3nVqVTuBr+biirHAZjZYcuxzgcCbjhLAri7DsxA1X9Bugl+q6sEoUla8rsmezrokTq9Zf/wm6tvoXdSOR6tMV5r/+RMc53aSm/ozOXNTtMkzty/ET188MV/c1NtKPDy+3a0RhZG/9Yox3o2PeaEG30gGXCrxMRnMqdKjITeDXccY2gYxtGzK2zfXAA96zLo8evqTqtoqvoaEh2ZD0Bbiho6QBM0z/NvNGVkoXfAWf8Ne/3bzRWT1fPf/ES996t3XjzNtvU3LBiSdH3cYDLW0HmX9NZXtjmAliwI8+Xo8M1LueKjRPXQqo4KIsyBhGSjFkWNlHNACsmjyLdv8as1OIS1Vcs0RVPerGNb1dBQsX+2SsZNKNlptF2s8up/0lFYLTfgjEqmzZfZRyixcoeUB9YoyF0N7MVmvKEVQbdHqE4/sjPAgOE8MnXjsBHxpr7bW+Ovfh8RM3VFjv3vsfv39vL93w1SD9hHMT6hfOTUcwbOOIVnf9CfbgKw/J91UfbmgNfnVD354HPn3//h6xf/eDmz8899Xg8j7ycg/w6kq3S4XW0g44xKgkCGgVYlR2nFhAzSjlJFGQZoGSPeLGUBJ6IZPkAbXLfFfoLf2dra2+xNtJ+3/PFvKm/e5GCRf+A3jFvwMVekkTaLFdlXy9D2jTRZ1lBCCyJcYDhmtCDEPbdxBJ0qWNoe4syGQuIkCZQM0CQBEPA88GAAZChiKDGOGqokBtdIRgizNlClyEN2ox/IZqkqJ8SFYll65cr+oqfcYKuhL+80/4E66gRZ91JTKJrXtwnOBA9dcplTFGXb0gqdDb5vm3kkmfn1pmMin4fZZVwycvC8+wd0BDbyBbK+MRwCegGAdUACMKzEEcK0EEMt4nARwEccjVK0EmaEBeMhwRx45XFw5afp/XAOgukhAN1ex4Jhp0yk5EHQjvgpIt9NFQIRhSssx6+q23nr735sGJuTuef/7cafH+F164XXzrzsE78w+yd35ZfeaX06O9z1eff+b273znibMvvQrZnCc6/qiVpK+yupUKUroBNT+YcALG6MOEQ2MyOqRQL3yXpbulK5QMpWQHpDKcVVziYbg7rtnIMTSR2NxThXTXiJ560HeEbQM3PzY1+7leURqVfWLL4fU9N4y3stzo3gNzzZt9gdA5UErafcO9D09c9eihfjoDx4GJjaDobZao3NVT80w1pzebK0DrCQf8w6v6Bg49ihgcY8a+IZxlX0DLP+kjA+QqclVlslgPSHsr6EtkYj2w+/H+liyMpExFZ/kdeoZhFKC9MnzmYaTgA2qwsB8d7zwCAZssktHRTYFcXcpqQGSeLqOfqiwr9ruC08tWUGYIIp0VULjCxVmAFSqXeIytrdgBEMUBDPlGu2iSr9nKlgGd27TU1tlNE0evnKF7loWwv7L6X1ZHJU0ZcNWN3w3Cbur8f8vnGyVNMNwpN3UFpzf+mXjObWcnf3R7y61/vWHdNcmunXH3jVuSe9ZgcPsD9Prloe0fFOmN1e035l1ZWVNaU7dt9rX673pIK7lk2ZIBay6MHa2n4bqZQCC1YnbPiHbsxrnK2tTOUsDBRI8Izwhx0oo6Yjxm+0VuvlhUEesjAbbkfS0uel+F9/G+sh+/en7y1ZmBds3xsKLLVdz+4x2y7rhc1dzg0eH8nj35YXS1lnK6Lsai73a2dhbt3kH+bugbawD+0lCJuGHENzC66PahIDfQAouRWul8GaODCIIgHDr29RvnWn/5qRerb3/lge63T3f/yVeo/pcP/7Jt7sZnfkWAmsiFR/lzcR1hiMRJmnSQbrKOjJDbK3/go0SSJQKKHVVUhap8xQPMpFmTil4qgUoya/iZHPAwQA3KrE5V4tJUkFea261NEk3D0G/NPdqzqi5MyfDQwPq+NavW9awrFnIrWpvTqWSiIRqO18XRauIzdbdjb7EctmDQHAOKk3OUu+KkYt5KKJiNgccBTEnc2o9xyukMeuEMmglgIboGBBmuIE+m391xjB198ah4z4lEewLdc9XbDhzoDiVYDDBYfPzAARrCXBbPxWnWjOcSYqT0R7gmNhePX2t2xliiPSWzvmMv8Mc8DTVjxYgQ/2j5wJPxzjh8ql8oH+i2E1CNxWfNXJylWlMyDTiF+MhOyGoHGfEb4Et/AXzpCvIBchOZrFzRTSU6TkXJ69EFhnq0rDBFBp2PCQoPDOPm+BmYoYosKu9S9vbv3T03c83UlZuGN/Sv6elSecitIiwKCNQnihkMg8Rgu8ziuexcFDN9dC3DZTt9LBTk0rN2KyrfoD0BMMzaksw1KXhUBteuIWBcTGNNRfi4rT+sVdILC23jXsMDHB8Em98TBvEgKppuCyAVmObRIiAaVFlzSbLslizLDCr0L1pynk9azcVqvVeXjPVMMGPSkyINLnyFySrdqhpMZ7Kr+qxisB4BqG+rYghuuMAcYOaNLVUl1Ul729MJr0eRDJBkkWBvULbdLo/VZ0lh+H6P0R8ULZCGbp9maX5VQ32z0lyV+zPU5836DZbxBFTfku1Ul5+rXaPkr/HdL4i3wpihrdpDfKAL7K5cRyRNOuClmqAd0KmgCgcMCnR7wM1jV1wwdABgDnhAuoryBJxkcQqwnjji9xuGClyAEH/QH7QChs/wmV6Adh7drblERVRgsgFO9Jk4kr6kj/8FmwCa4lUaU7uO0133s1f+82ND7NvHMTVT/QmN0djCy6x34ciwsP38W/Tt6lb67JmFI+wusrSGbxtvQxPIxA3kispYW2syAQyJDnlAoFOVDRJcOaJqImBNEN8qSEWQGUSmMxLwGpeLTOCZuKaBZbhGK2u6u0KZgi+w2ofBVQ1toaauJqkA6jaaX5SlAKKkr1ADZopQwzaLRm9paaWGUwE9aGfos/Dmbw/r0p9JUTUWqr4EetnwcDxIvwtKGkYU83HB41wstODnuhyTQiXvI6atnDlD31YjyiOyXlPhFkr8TGOnEfKcxnu1hXOYxd6y42Hjz7wl7B+Xs9brknjsa4Gx/iE5TrZURn3A3EygREGRZ70uJhgq4wFWbonxECs8UzKtoSWAjN7/R3ffdceHD9+yf373dTNXT20d29RV+1fwQz+la4oqj60qOGGa2SWdNW/Ty8oXI2KyNUhP36c+Gs5+W/3FxViByyLAaSxun+bdePlx97JE9ZH3K+EJ7NH3rFUroBcvH97LNe29MJwxQCR44jp3vPo3y0pYah7r46H66n+1ElWX8p118u8e297KKjfFSE4cUxdMYL5oBFeK4IDiShEyzSN8Ri8bQv33HcJl4XPvOSTLwu8Cy8LtcCK875Cwb8fthTcdmg+FYgvl9y+jl6T+zzr9kv5EHPLPwpdYC64Grtgebke/GDBuhfzo23Et8+yEXIumxM9Wd2oxrbrT7b4GzrSZNruj+g43PV69zu2mf+aOaTvc7uobkO3e4Y463/U19pAwAN+14ouUf9WmU9Hx6YobCw+iYZlurK+4lgDatudDIbTiu5gT7bE8ZJDdX32dtmjaNe6oG9+BPgovcY3Gnq6+UX2dX2r0z/G9HuXvV9N99tBXQadjIAd8FWMpzMbvw2+pp00BoelnP6sWf/YzrFb9xMIxut/hJ05My7v9m39YuR35R53XdgUkXD06E/GF3JYkSeIUhjmJ+rAuwxfTqbAnqPiBFD10YzwejYbDIDRNXXfERzwZTyaaoo3RxlhDuD5cH6mzQhaAKDNgBvw+3auDKFbd6qVCpR6ESrCrEBRqf4H3uT6H/44sOz547hy91flb8L/39aKOcg/g5yJZT0bJlWSGXE9urhzoLTBJi3gZldoSdaaLgGwHoKO5Jbcm7fPqTKUuqrrQdeDWZPesglHlGOQzaxoeAfrSNckvXDAlURKR0dlr56679vrZ66/ZsW16cuv4lk0jwZJdDpfskuXD+bkU39tVhHmXDV5M4zw0aANdVgOn5Bp6MRDY4t4saXGvisBSMPDS7hWLwcDCHA/+HZ1rT/CLWG4ukZH55dT03Ci/GJubmlrYjiHA3a0/cEKD73VSNOyEBh9MjDnRwDeP6a8uXr+qZ6L6zUsllb3F+xZDhe8r7q38JMZDhNkbtVDhjJNurkUKI93eCPR3BakjefInFXe9Cp2v8JDMTafqYf4UiMBAku0C8pRlZRd0qkRdEre2KGhtcazXQItQrG5zjE/1lS7nLhgquA0A6b7f675tFSPf6fenU/CXrK1fcDRI1PiBQ3AdU0niigRJySS5sdQOAfws4PoGxzshnB37/NiBD4zcEom1N36+sXdFXafrrWPj//BI9Ugtq6+tLq/wLF6TDR0cPTW29hZf46mGbX00bH9k7JG/clK9Tur/gfKab0v8ibAVZmkUemu8stlFa1qzzNEioPN9BHpPUjD6glBQCdGvBW1UFI+yMdbgMxlpb0k2xRsb8rF8yDajvqjjjnDX3BFozik4vpaMlOeOrgR3foWSwKOSnCSXauSo+I3qxzx+v4feCsfzPxu4Zf36W+7Bw783bTgxGB/6g6Fyln0+Wx66jb7o96zFqnCYqVWCQ18cK12RLZezV8AFWeRlwl5op04SaBW5GFinMCeyjggSFaR5x10nSR5pI8B5Eq0LAET1JIyEIhOd6o7J5ne2gX7pt732b39XGe2DYgfwTx+MyGoyQKYQj1X2bjEYroMlbpfqcqv7TICtLpXNe+HtgS7nFeoEGO/TNbZo8BDhM29QAVoC7HbWR10uaB23Is5cs33b1OTE+KaRjUPr+9f2gY4atOrKyUCTiUiNOg6FYiHPNzkAVZrW5HSxT0JzD9/woJyPiSHuwkQGQlFZ7WO2hIjAiXACGu+joXx2qcqm7T2bVlToBrG1vymTFthdE+ur4QFQAnUznulpklO54fHBuhZTTXRn4qZBF75V20TmY3ecOspuf/5DdH1fbtOq7SuEdLppoFncMFQrnxEG2tu/aUeoJ2iOVa/uHxvrj3X3dxczdjgaYbYZ0ZidKXb3R9lxZzeX6i+23cE+9KXb5GPfb8vRAWHdmBn0hMO0VlyjmbPcppkgOzadCgLraJCoszCe8iUtjF6HseriNqdP6yvRS8vpgeXF2ypBn0lJYzQUNBO+hEsmXmoojrYfXOanK/hAd8c4Yhlya0Ql3Is0svAdPLYOt87gmeWzZWFiMRdT538AZfTBxayZRf/1U9AOi3STYbIdY0SIobk1w70PJA3gPI3zLqIZTJsFeQ3KmAdXl4DcnITposi6MoOrTORplcqSPDo9tfWKsU1DA2t7u0uFQFdTGg9eJBnctQMnuWPDbVpmzV1NsTXOFdZpCi5eYR1a04EW+0ByTmsofx5gyqDwdFbzeLQtLmPBz0+Gq7kZj1s0D3uLnzxaFsvosGYYWvUFyL/JOd9n1T8ObZte69HGsCybxeOY5lk4blyaY1AfqEjwpOqv4Xgan787GvhjQ+N9+CG6UVgPHVJHMqRYWVnby4uwA3LNECUBCuNmR1HcTUkqGWsI2T7T4Rs4ygGYStz9hd7+LPCOJT7iW554MVPJZCqj6zKZdddn1o2uS9cSi1f053jNMzLfztRK0usWWjN44iUc9z8l/lQIcCyyjdxEHiRPkCcrj++yDYGJYdDnGK4YSTCmuo7dWUmJRD10c093Z05WdHnIWWYrCmjQ3gcCibmZ7N5HqNvlpiD/XCqwoHlQlN0qmQfWoruJDvzToKAlMiQhXXHrswSt8rj/gTYNyrU2un372OYNA49/+pFPfuLEffd+7KMf/oPtN22/ae/8dR+Y3Lp529i2jcMDoxtGTbThlXC9JI8A8VJUDLIZRcb1AtkMjxPhu68oBuU7sKyluFI9ZJcxQrKM4SPwP5OVHH5jyZdwaylfLpRqW2ZhtNtiPs2gg5dHVjoLvFbyfbeWc/ZMF6j2NQCFxNtHxadcroIoMmuFoImFxhb32n53c7wgasIKiwpiQVEKokCd0ngzlrY0FiSXU1p9q7ncPdbdff7Vpp5EoqcfDqvo60yUwh3uBtP2eSV79dxtc6tXz1FNlEXqVQ1vU7gc8kSNoFfTAgP95prr15Sz9N/1asC/ou5IYlUiHTmqbf4yhqa5pHUdIhMa6r09bsHrFbUeb30DDHzHOlFjPHhNE/tzImVYQxMNQ3BjDUbFXD/UCOObjXXT+sSqgVXO262llaLbo7mEjo7Vu3p6dt06t7p6jILu7xLkcO9oa6NXM12SRuPwVquyZb9N9/gC8E59kfSGm/iawBu5/K3DKMdKJ4akCZK4jyHaFwCgf8ARvJxPUpJMNEYtn64pIqmjdZxFJrO8+2UvTV4KKSjfCKNUDjQJoz/3yyHP/+sJyf6fIy4QVsBxwcvKafrjdIm1LvgFK6Ubhp4KePqwQp8ncP5z6UIhzR7kdiKH30tAwj7QWQYq6zQYKgwNwzhhJhI276KiKE3pbiZJ+jAydzqlUK6m+P3+kJ+HSy5FS3pwEXrS19SVFApdha4mmgw2+ZJCsBAs+I4fp7vOHD9+pvopYdsZuuv4mTPH/7b6qeP07TPHzz8JZeyu45Bd2+vuKXYT8O/lOvyuyk6vrIOGRRGvzZqqB71tMF+FWZ9mCCJoVJP8QpSm3RTY0ujEeH8l35mI+wGwbb9q/NqJa0eGKlv6t/SUO9fm17Zm4x2JjkjIbPQ3OvDNjyzrEq5dzAi/I03/i/VfPBJJpyNHIqlU5D2u6DW/tViw+DldBznVv7pYUP3r9OJ1mt30u+sQJ6YccfAEMYFCW2q4azMgr/+rcqeEZD4EgltXQBzuC1Ld62YoFmdtw9L8kgz9DpxvNqD6BFCVKQOVwONZVAU4bWwZG9ywprdYaGv1+yjZOjE2tWVqZOOGzYOb11V6B9YMdJcLq4urO3Kt+bZ8OtUQBVFY568D9mpSM8Sp35YV9KoUamE9dJG9CTSDO4BZISe+orjE90KLF9l3XSwVicfOBnzJ6q+BjXwR8EL1QiAazdTX768+Hd0ShUOUTsEFHBaucEr+2TkFLjnVMukP269NVv9jOwIPfFz1k5ibidK98IDoJY+cckrO/ZYT6NO4jljYVtsHpom0oVemMhQAzOJCz1494F3QpF2AUFwKmmtFKouzAgZGwCAApMH9AycByqvTRJXU0TU9AG4z6YAV8KMalkZI2kf5LkW1C/RnNTkxy2jkp01CjvJgscVIsjLuLwp4Fj3tAZsNRFJRFm62/6R2XqfLC9u4AZ09qWgLE+zj08xQqpsUg7FHi+mFbakSde13FWP0i415bb/rs/4Iv9Oqnfc9d9EGT/3UgwK0+vBzGF38nBGlEw0ZmopVPxddbtdzbCz10DurybWVHe1UchdBYkSp4LJACxBBXQBQ4uZOFM0lAsJzoR4r4CpyVWHqbG27NoCKskwmkN9M46KU0Z5yvqO1OZNJO6yMm/6aupqyTYj4upKXm/kCv8Osx1bT3dWHz7DehZfprtdfpzHbOD/rLJx9jJ/eN1UZPjP0+tDC2ft5zv1evpy2tgucs9D2OIbJ4oFQ7mMKs28Qi4QrQcA6l3gwu7M8yNVWAHE5e2EC3qYZfEHB6/JV/81WFK92XKv+mz8QZq+E2LM2ZFZ3hjTBfdxtABoJ+NoXbT2OrGgE3SBNCqSX7K3cmKQE2JuLZONMkYQhHRRml0RcM1BfESUgUhgDFcdAJcytAlSSZQybAm3aQ91uHisKzKJYpKTYW+xdvarU1dmRa29pTqcSTZGQoYPG0EhjhqMxhHyLI1BzI6Bby4l7KRW8tECVQqjc5YSG+XC5P2Bwbqv1Cacvmkir34WDbf6Tt2RjOFimaejJJ6ufevLJfafOxEJvwjCxzOux0Fl2O9Tfzm97LG7TW+2S959MO25/OXTrk/TIk18/9SbGkIH8skvVMXbXWTtOqw87dPoD4U32z7U53Ep6yAjS6UDvakFzF9sBftYHAPUISKea7NZm0LqCdmmgU9Rvly3olnBBtwR9iHsgLC3sHh6srO0upQPBkI1TG+nUcZr2UbtrSe2sUSf3AzRxTfViQbJWUKgt/laWpc/0be9b+gh+TV3YzvdqeULRz//be+XS5YlKe4X17uhllV+t4I+o/nzRgwMznJHFzMX4FY3avAQ3U9A4ZvoC9B3uzdmNq3BdGGVHh2qKh7Om4JI17uViJtVTwAXjdGlLTQyejjHcbBM3K0F/Mobn8w06ubMKN3PhK6h568/WttCsa3xlNJ4ZqGfR/ubGa78cD5davlfs0hMxD9NjvpgnIX981p/spbk2oQTVv1Xd4ISN/s96+2PlcCRKI9HQwO32V9vHG04ksy4/up78alTY1W+EJlJtPcVaTLqzD9CVGPkLWoR+AKaB5j7gdcHskWobRqgiIMT9BtUY0ybhpLEpgF0aG5mc2LJ5dGRD/5rVPd0Irnxp/CuYNR/FopsnBEU8EGyZH+J98pCTXYwic4oVgGy1NSjC2Zojp6v6065lvonLk60x2nBJBm1oaKeQ8/BzeDcc6Px8LPQ+Cag6Hw/W0jE63xqbjy2LxUT987fFA1NyUenk8cAJg3HlMsfosthL+uzW+8bZ5D1P3z0ljt1Pr14WdMnun7jv8fsm+KH62iXbZjr2QuEkvAf6BMq4qj8JelkhxiiofrjhGIwaruCShnALMuUAmgwo96NqGPNVW7uFi1a7ih05DOWzkqkA96Gmcb+nJsddtDR+TbUF1Y7DbmltUBOaSy0v9aHDqUxHq5+Cv+fZXTwYD2ZPNaYuBuRhkv7wY7Lhlu6FrHug4t/A38fmL9agP+G1nOS9ktuQP1ZNa2RpLbyf/lsNeycqjbj7H3eTCdzviUZ5mHqOf4zvBHmZP0xaik+8NL3okjxT8zPx8NwG5+RkNTpeJ3t+MUx3ec33uF7cI4O8vuTvw91XfsfGGBffvHyZZ0+4rCXCZZ68M7/jffD6fX1vl7jVarrXn4M81dA+S8ZoouINUSKAhJDVDAUtc2jTqcD4dGUDwD0mK7uAljSZafMBqrlc2nW4wEInnhnLbxqi7qVuVXfP4IZCiirP+Cg3WLtcdJvk6Gr1m05Z8LDB93iYrLnm/6tPqww5D+LrtP9PnrRtW6V57dpkcu3Y2rHNo5tGNg4PDW4YWN+/rpLsS/atWe3z1eGEiZlBtLcVEL8kcaUVXVzdDQOzuCTJx4mtqSsAwKAriZMqCVxPAO4fxKjfrgCkC9kkLh/uKgQKAfbJnc0yMBMQMtV/kE9Lhvycqnrm+dTAOfS96le+o0iyKmt3rqdrviOqsiq5/+iDJ1sj90RaH8sevfoo2/+hiIu5NU1eGHT2E3IFBYKzaoFoI3fmadYtAVuvHM1X38CdOinrp//R2zs+3ttLb6oevwRXhfjK3iFyFdlR2XbFRl3Q2LpVgBZWtkA/N9UB+xFxrxRZkqmEnhhVcakcO1DEDiAlQOtljJvyuTMb199cuXXzpg3rQ7g/HHSixSHt+3bcu3HBu3BC8mIggRC8LLDgU+/uQbZZU6udfNu31yADEp/iiV08cQ6vz/HL43gJh9y7OnHL0lZyABWWLoMXUcOy7EtxqvfS/owKmnixP7nPRxySqCADH6eX9Kfg9KcI/VnTZ/kihEv6E3ozlElif0qX9cP79W/6snqBy3BX4LL+Zk9e7Jbq2+9Bnbde0oOX9OzFPq9b6py17+rav/19+tPhU301PlUBfWln5dotYxuHB0OyW+yiKob/qCsoU8Qhw8MA0roQ0rqA07rILBcdGEc4qzt9qShsGm1IHrZx3bp1E+smrhjH2b52TTrbDH1qJxNoV0/jRpuyZfPdkd+nOy1D4LbLss235iwn+RZpfLMzAXgALsPsSiLyy5YLPvaLzkRDojkTba5+9j268tNGvL0/k6wzNNulBoMd3S7qzoVXj9LxNRt2+KrnrgExLmnJFfMDH0z10Na+9ljnu3qzMdnf1x51ieJakSn9nR5z/JaJPbS7UjmvMJeiaPHO66sfX1wv+zLrJjauw9FpTV2rSagprDGS4UENnMU5iMAhCh56bAsvS6+r9sIwh9wv2OrrEp1V5W+qLv0Ix9RHdE39huysNV/EUCpf0dJbWXVxUzJQFIV5AsyEUYkv/hR5oCEacQRxVHPFGyN1ptcV1IK1H+ywZCfSMvve+GrpVzYeeF+ctfirAv/xPnDLmbvbgNYCJEKSoDsVyNWVaYsysRWIrKU5mxJlhQdNoq9m38WtSTXggSpqm2Jt+eHiJmE4advb6us7O9oK7YVMuj5ZnwxkrK6SGxfsxGhwUaWsLRYLAe7F5SIBH4cBTbi3SFc5VF4yMgkF016KRKNvg1Y48j1J+bz8LdQlq1vZXQvfnB96vfoTR9Nhd5jF8MIdvLJwO9c7M9/zyZ9Xzp9ivfHgm+efOHd6fn7ozJCjWHFfaBX64F9qdrkm3geryf7KfDjABBaymCKs6u5qjNXLstKcZpLckgJlEnd3AIEsKLNuKvOtA2ZdfNNu9GDrw4ubBaDAbW9LJtAk5/RINpNoTbY6xjcXN77pXNeOCQbjmy+FEkqolA+VM7ScKZazskXzZfxNDMUu50s5UKvsdKhUhKRF3979wj2j4uTRr738taOT4ug9L+zec+3e3Exu32w1utc09xbos3tm90HG3mv3LDoi6XV7C4W9pjAxfuzFv37x2HjtNFTgNyzc69z/g+pfOhmv33HqqHjbC4c/uPfaH+CjnLUlvxZvBZ3RhN4qkWwlRTBOj/LFefxXG3D/otrPNpS7080hiwf6F3PM2XEq38fSkEBqMKgCaiMrW6AtNiVyAlw25WOM3VWL1K+d6DPtYzesfmP9GBvZ8AbuRTXUM3P3UHXr8LHZbtB+7xmkz+Ilnem5eA9uV4XJ/IPPPJjHxPDdO/qE7p1HHzw6V2Tds8dqPvv/Ld7GbTlp3J+fONN0VnTWrYsX163bwVhDMG2ny0UJ5qav2MdAZuCg4XszCRqRExKGEGP4Zs7r8DdzXlLw4auw1vHdt+0ebxXzw/vpzEbIh9c4cWyml8Frff/SJju6udjBcXYB91J3qajekGS9s9BCIXzvZUJlvtQClzQhR8ElfDWW0tWUyfgymSQuVE37ikuLUtHAy7ec5gpqA70oBgGy1X4kg+9ad1ZTz9/F5ZRwRNEHi+nqrm/yXbe5tHu5usv5JYwj6eLDLMS58ptwZI0Lb4KqPnRx8++hUoqFUHvn8m2pXWpNg7iyMtFggeKAWxkYHt0F2ng0yEQm4kZgImHiPuA/VADYwDULhoZX7nwg6HlAf+ioz8y1gTgJmY2+xkDAr/LdDwzciQh/mgYZCk3XWo+/FJKtrVpVlrWW7nJYAus9/9bp7bSBxpa1nWpXFNPn71pqL/Ot6GP9U/1iT/XcufnnttGGk2iU4ZYX9oSq+Re2Oz/y8QRvtuCsLREqxA8I6Sby3yvheUrdGNvXwoClrKSiNJVlgijVfqQqR4CpEL51ANqi5nFr/IMaBd0Xt5IBViOqFLdamCVut+4G7aBE3NR94HfeBbQxie4lAfiUIOLO5KH9+/bcePU0em7Qe9DZUQiWwroUxugMXHlxEYBe3OspIXfQnJQtlfEnVmqbOPkulhqM7+u7aAKq3Q5TG82H0tId9FCizVJjkZztaMV/xL7D9wTtjMUiWU8u3BxJeZradDMWaQ8f5/uD8uLj9e3xiO6vM8Mpf0uo1J9x7q5vTVmmLxLVU6lcqdLs3MAGi7tazExEZxx5LHxThUcA6kIjl6bZdsYqztXFWi2LORuL0n+tVTATifrEmnR+INgRCduU3+2Pp+qSa/oilc72hC7UdiKtrS9ndwE9K0DNwEMktAjzwB/C2H7CN48hS3vHJAPpUsDkWjxGLxg0JC2TiNxCVLMFPUcbMOiEvrYUaer7xKsPMhSEn9m7epKNrznJo7fjQdoPSu/e3Z/4xO69MU5rXxEeEjaSKMixHeSHlUgPdUlXDcFcCrgZBXE+1cZcg/grVIObTmlAbegqdYnSLmAo8OoYrEYUF04yglsUfQCaCJrnDsAq6OZQdQF12wzcl8f7BMmFa1eYQtm+3+POSve7blKJIGE0/LtulmW+Zgy9BUweBcXV2DYdCkWbQ+FI2OIOFr4AWEFDBsUNadHWuLjau7S4Ori2MDibY2h04EuoGqF0abMylK4XV+XbFopfRH0rzENmzrQFnbK4rRqGaAfMW7wrzAmzeqv3FrMdLsxD3pwvBHpOLOQyFLcIRELf7pzIfTR3S27lys6Pdhzq6JjouLtjKfXZkPeQ6bcFU/bCS4uaaPty3kNe7xUm/XPbvMX0Tnjb4aHwTMNwwaCKuGW121e9v7/jio7OWzo+2rlyJTzm7txEruNQ7h4n5dhkDvM9DlSQZDmyrWJmYLI3Z/0C7lpOCZo2cMQizka5+IMjPK5kMd6WWxjC71O4e9uXo8kVYT+ubS4DyQIYLaUXOw+EeNr5GbkMX0MUQptZEH+kC+j4jBWzGAwW3V29K9hjrw4G6e32JP2kp/7OLTecOHFDfLDO5frve1nrpiav1mDYzB/3i5FfV++yrDXWapveXp78Rzu9aYaeeO0BZpmyX5k50svqVljacqxtAQ7J4e9KGSCzuZ6Jy0EFXOKLMa/ccYqCQ3wPwRG0g3by4kLXi/rion22CJBLwFC05fsG0Lc19bRj2cOftTg7ce8TixD8w8vNnIlzaHaHGi9D5Ve33guT9v5P3w817916idHT+T2KbYIJc8CPOLySdePPPqGmIuBugbg7Av5UEFn6paBQXSaFewfQYpZiBByT+I6eVLFAUQMsgkty2Y86q1ePbu87OJ5f+B79zKYdoChQ9qOBmx975tMHB1n/oUdPPXK4Qme3j1R35PPjN99IP5Mfv3/i6qunH7sZig8/8vzDt/XJI3ufIP8/yNf0/wAAAHicY2BkYGAAYrXLBzfG89t8ZeBmfgEUYbgdLcoLo/9/+J/J8pg5DMjlYGACiQIAWjwMVAB4nGNgZGBgDvqfxcDA8uj/h/+vWB4zAEVQQBEAszMH2HicTVExDsIwDEyTjCwZeEf5Tt/AxFJWhPqIjp2QkLrwBUbEhsQDmMLGgkRRqbEdBzxY557Pl0vqojGuk6qM8SViBKDeVfBxF6yYeaxAWgC7Q809cf7AO2/ewV1f4uwIo91oT/abGBsYf2fOZRbhxThDnxaxFU1UfcO6h13IbpCMQfV78cKMXBGerk852KtX9+1g8LWaSdmTMcVZ6emON8Ql3YU8E1esM584u5LvSjQBhr+vcJRRspur5MianIM06S0nX+N7YkZGOdtu9T8jLcAXgveNxQAAAAAAAAAAUAC2AXgDHAOsBDAEmAUoBaAGEgaiB2YH+giOCVYJ7AqYC0AL1gxGDJ4M3A1yDdgOSg6+DyYPpg/iEHIQmBDcEWIR0hIgEnYTXBPWFMQU/BWOFhAWSBauF1wX6BgyGJgY4hkqGXwZzhpEGtYbQBusHAYccB0iHXAdnB5SHywfjiAeIQwhtCHqIioiRiLCI4YkHCSQJOYlqiYOJrAnCChQKKIo7imgKmoq+CuEK7gsTCzqLVot8C40LqwvBC9gMGQxDDG0MlwykjLqM2w0BDRqNLg1JDWeNow21DfOOEg4rjj/AAAAAQAAAHIA8gAPAAAAAAACAEQAVABzAAAAuAtwAAAAAHicdZDNSsNAFEa/0frXgoqCW+9KWsQ0BtwUCoWKbnQj0q2kaZqkpJkymRb6Gr6DD+NL+Cx+TaciFhMmc+6ZO3cmF8AZvqCwfu441qxwyGjNOzhA1/Eu/b3jGvnJ8R4aeHW8T//muI5rJI4bOMc7K6jaEaMJPhwrnKoTxzs4VpeOd+lvHNfIXcd7uFDPjvfpI8d1DFTpuIEr9dnXs6XJktRKs9+SwA98GS5FU2VFmEs4t6k2pfRkrAsb57n2Ij3d8EuczPPQbMLNPIhNmelCbj1/ox7jIjahjUer6uUiCawdy9joqTy4DJkZPYkj66XWzjrt9u/z0IfGDEsYZGxVCgtBk7bFOYBfDcGQGcLMdVaGAiFymhBz7kirlZJxj2PMqKCNmZGTPUT8Trf8Cynh/pxVzNbq33hAWp2RVV5wy7r+VtYjqagyw8qOfu5eYsHTAlrLXatbmupWgoc/NYT9WK1NaCJ6r+qKpe2gzfef//sG1FOERXicbVNnl+M2DPSsVW3vplx6751JnHLpvffeK0VBEk8UqWNZx/vrQ8nPly/heyJBEcQAM+DiZHEYq8X/D4sTLJEgRYYcBUqssMYGpzjDdbgeN+BGXMJNuBm34FbchttxB+7EXbgb9+Be3If78QAexEN4GI/gUTyGx/EEnsRTYHgaz+BZbPEcnscLeBGX8RJexit4Fa/hdbyBN/EW3sY7eBfv4X18gA/xET7GJ/gUn+FzfIEv8RW+xjf4Ft/he/yAH/ETfsYv+BW/4Xf8gT/xF/4GRwWBGoQGLTpIXEEPhQEaBiOuwsItEue5XU0To2H0+6UwbR4/xpVPBi5VNpIWUm1GFRwT0gpF9ZI7taQ9JZ63LhEd96m33HVZxV1PPhvDxYWiQnHdBt5S5mSruUqDI+tSb4xyJbfW7GLAXUH/xAC6pXVjVE2WmQiYVja4bt0os2OV5Vp0yUA6JMLUVExhGK/rE7FLW2vCmHRmoJKuBq7kBdlsSpttM0fcThfNOWVhVIbXm8PChDKhXva0zzX5nbH9mdSNOVbHtoXginTN7YnpNx2p8XiUKdOa4JNG8TZ1o9SXy84E2yruXCo6Ev16ng9cnomYOalrlw/bZGJyZfrj7wjArY9lmp50UZudnnLML4wZmNTFvEbMkntP2kujNxWPCFIzLwdaCrHLoxTMNE0yMVMMxuh4ep67MK9JZUxfRo4nEG6zSOo47k98l/uOKel8OWHOtJeKGj9b61kfJsxQmST6bctZC2+JMiV1z7arWYZB6uCy2dzms75sm0Z6NW1MdYWEZ7NCK1JKjk46dl4evKY2m3uGbddziS7KZ+lSa+XIzsl6GTVgzihZr2op6GAuu7pOfWwylzVSebJJbYRbT1WwKihFvpjFj82bO+lp4OPmQPNBkURYMxbHZE7/yyoCbpyJDGk+EAvjet7EMNE+vWZPRJ0d3MJQxZrDmFrZdn5dG3/UcxUzIyaH2PiFkg1VwexX3rStmkUqj6ZeeVJ0Ll2UNB+l8MFS7rrQNIoSZUSfTERnOxvfXzdxKvq0mubF4l+9uG2iAHicY/DewXAiKGIjI2Nf5AbGnRwMHAzJBRsZWJ02MTAyaIEYm7mYGDkgLD4GMIvNaRfTAaA0J5DN7rSLwQHCZmZw2ajC2BEYscGhI2Ijc4rLRjUQbxdHAwMji0NHckgESEkkEGzmYWLk0drB+L91A0vvRiYGFwAMdiP0AAA=') format('woff'), + url('data:application/octet-stream;base64,AAEAAAAPAIAAAwBwR1NVQiCLJXoAAAD8AAAAVE9TLzJ8JmGvAAABUAAAAFZjbWFw2dgrMAAAAagAAAh6Y3Z0IAbd/wIAAIbkAAAAIGZwZ22KkZBZAACHBAAAC3BnYXNwAAAAEAAAhtwAAAAIZ2x5ZqLKnDgAAAokAABx/mhlYWQaqG2+AAB8JAAAADZoaGVhCCgEqQAAfFwAAAAkaG10eJwx/4MAAHyAAAAByGxvY2F2WVr8AAB+SAAAAOZtYXhwAfEMuAAAfzAAAAAgbmFtZc2dFxgAAH9QAAACzXBvc3S151+vAACCIAAABLxwcmVw5UErvAAAknQAAACGAAEAAAAKADAAPgACREZMVAAObGF0bgAaAAQAAAAAAAAAAQAAAAQAAAAAAAAAAQAAAAFsaWdhAAgAAAABAAAAAQAEAAQAAAABAAgAAQAGAAAAAQAAAAEDnQGQAAUAAAJ6ArwAAACMAnoCvAAAAeAAMQECAAACAAUDAAAAAAAAAAAAAAAAAAAAAAAAAAAAAFBmRWQAwCYF//8DUv9qAFoDVgCXAAAAAQAAAAAAAAAAAAUAAAADAAAALAAAAAQAAAMeAAEAAAAAAhgAAwABAAAALAADAAoAAAMeAAQB7AAAAEIAQAAFAAImBiaZJu8nCScOJ5XgrecK5w3nIOcp5z3ntuhF8KDwrvCw8MXwyvDg8OjxDPEl8ULxXfFi8XjxkvHF8c3yBfJs//8AACYFJpkm7ycJJw4nleCt5wrnDecg5ynnPee26ADwoPCu8LDwxfDK8ODw6PEM8SXxQfFd8WDxePGS8cXxzfIE8mz//wAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAQBCAEQARABEAEQARABEAEQARABEAEQARABEAEQAzgDOAM4AzgDOAM4AzgDOAM4AzgDQANAA1ADUANQA1ADUANYAAAABAAIAAwAEAAUABgAHAAgACQAKAAsADAANAA4ADwAQABEAEgATABQAFQAWABcAGAAZABoAGwAcAB0AHgAfACAAIQAiACMAJAAlACYAJwAoACkAKgArACwALQAuAC8AMAAxADIAMwA0ADUANgA3ADgAOQA6ADsAPAA9AD4APwBAAEEAQgBDAEQARQBGAEcASABJAEoASwBMAE0ATgBPAFAAUQBSAFMAVABVAFYAVwBYAFkAWgBbAFwAXQBeAF8AYABhAGIAYwBkAGUAZgBnAGgAaQBqAAABBgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAMAAAAAAVcAAAAAAAAAHEAACYFAAAmBQAAAAEAACYGAAAmBgAAAAIAACaZAAAmmQAAAAMAACbvAAAm7wAAAAQAACcJAAAnCQAAAAUAACcOAAAnDgAAAAYAACeVAAAnlQAAAAcAAOCtAADgrQAAAAgAAOcKAADnCgAAAAkAAOcNAADnDQAAAAoAAOcgAADnIAAAAAsAAOcpAADnKQAAAAwAAOc9AADnPQAAAA0AAOe2AADntgAAAA4AAOgAAADoAAAAAA8AAOgBAADoAQAAABAAAOgCAADoAgAAABEAAOgDAADoAwAAABIAAOgEAADoBAAAABMAAOgFAADoBQAAABQAAOgGAADoBgAAABUAAOgHAADoBwAAABYAAOgIAADoCAAAABcAAOgJAADoCQAAABgAAOgKAADoCgAAABkAAOgLAADoCwAAABoAAOgMAADoDAAAABsAAOgNAADoDQAAABwAAOgOAADoDgAAAB0AAOgPAADoDwAAAB4AAOgQAADoEAAAAB8AAOgRAADoEQAAACAAAOgSAADoEgAAACEAAOgTAADoEwAAACIAAOgUAADoFAAAACMAAOgVAADoFQAAACQAAOgWAADoFgAAACUAAOgXAADoFwAAACYAAOgYAADoGAAAACcAAOgZAADoGQAAACgAAOgaAADoGgAAACkAAOgbAADoGwAAACoAAOgcAADoHAAAACsAAOgdAADoHQAAACwAAOgeAADoHgAAAC0AAOgfAADoHwAAAC4AAOggAADoIAAAAC8AAOghAADoIQAAADAAAOgiAADoIgAAADEAAOgjAADoIwAAADIAAOgkAADoJAAAADMAAOglAADoJQAAADQAAOgmAADoJgAAADUAAOgnAADoJwAAADYAAOgoAADoKAAAADcAAOgpAADoKQAAADgAAOgqAADoKgAAADkAAOgrAADoKwAAADoAAOgsAADoLAAAADsAAOgtAADoLQAAADwAAOguAADoLgAAAD0AAOgvAADoLwAAAD4AAOgwAADoMAAAAD8AAOgxAADoMQAAAEAAAOgyAADoMgAAAEEAAOgzAADoMwAAAEIAAOg0AADoNAAAAEMAAOg1AADoNQAAAEQAAOg2AADoNgAAAEUAAOg3AADoNwAAAEYAAOg4AADoOAAAAEcAAOg5AADoOQAAAEgAAOg6AADoOgAAAEkAAOg7AADoOwAAAEoAAOg8AADoPAAAAEsAAOg9AADoPQAAAEwAAOg+AADoPgAAAE0AAOg/AADoPwAAAE4AAOhAAADoQAAAAE8AAOhBAADoQQAAAFAAAOhCAADoQgAAAFEAAOhDAADoQwAAAFIAAOhEAADoRAAAAFMAAOhFAADoRQAAAFQAAPCgAADwoAAAAFUAAPCuAADwrgAAAFYAAPCwAADwsAAAAFcAAPDFAADwxQAAAFgAAPDKAADwygAAAFkAAPDgAADw4AAAAFoAAPDoAADw6AAAAFsAAPEMAADxDAAAAFwAAPElAADxJQAAAF0AAPFBAADxQQAAAF4AAPFCAADxQgAAAF8AAPFdAADxXQAAAGAAAPFgAADxYAAAAGEAAPFhAADxYQAAAGIAAPFiAADxYgAAAGMAAPF4AADxeAAAAGQAAPGSAADxkgAAAGUAAPHFAADxxQAAAGYAAPHNAADxzQAAAGcAAPIEAADyBAAAAGgAAPIFAADyBQAAAGkAAPJsAADybAAAAGoAAfMEAAHzBAAAAGsAAfUAAAH1AAAAAGwAAfUSAAH1EgAAAG0AAfUXAAH1FwAAAG4AAfUnAAH1JwAAAG8AAfVUAAH1VAAAAHAAAfarAAH2qwAAAHEAAAABAAD/ygOhA0AAHwA1QAoSDwoEAwUAAgFHS7AXUFhADAEBAAIAcAACAgwCSRtACgACAAJvAQEAAGZZtR0UFwMFFysBFA8BExUUDgEvAQcGIiY1NDcTJyY1NDclNzYyHwEFFgOhD8owDBUM+/oMFgwBMMsOHwEYfgsgDH0BGCAB6QwPxf7pDAsQAQeEhAcSCgQIARfFDwwVBSj+Fxf+KAUAAgAA/8oDoQNAAAkAKQBAQBEcGRQODQkIBwYFAwEMAAIBR0uwF1BYQAwBAQACAHAAAgIMAkkbQAoAAgACbwEBAABmWUAJJSQXFhIQAwUUKwE3LwEPARcHNxcTFA8BExUUIyIvAQcGIiY1NDcTJyY1NDclNzYyHwEFFgJ7qutqaeyrKdPT/g/KMBcKDPv6DBYMATDLDh8BGH4LIAx9ARggASKmItXVIqbrb28BsgwPxf7pDBwHhIQHEgoECAEXxQ8MFQUo/hcX/igFAAAAAgAA/7EDWgMLAAgAagBFQEJlWUxBBAAEOwoCAQA0KBsQBAMBA0cABQQFbwYBBAAEbwAAAQBvAAEDAW8AAwIDbwACAmZcW1NRSUgrKiIgExIHBRYrATQmIg4BFjI2JRUUBg8BBgcWFxYUBw4BJyIvAQYHBgcGKwEiJjUnJicHBiInJicmNDc+ATcmLwEuASc1NDY/ATY3JicmNDc+ATMyHwE2NzY3NjsBMhYfARYXNzYyFxYXFhQHDgEHFh8BHgECO1J4UgJWdFYBHAgHaAoLEygGBQ9QDQcHTRkaCQcEEHwIDBAbF08GEAZGFgQFCCgKDwhmBwgBCgVoCA4XJQYFD1ANBwhNGBoJCAMRfAcMAQ8cF08FDwdIFAQECSgKDwhmBwoBXjtUVHZUVHh8BwwBEB4VGzIGDgYVUAEFPA0ITBwQCgdnCQw8BQZAHgUOBgwyDxwbDwEMB3wHDAEQGRogLQcMBxRQBTwNCEwcEAoHZwkLOwUFQxwFDgYMMg8cGhABDAAAAAYAAP9yBC8DSQAIABIAGwB6ALYA8QCcQJnu2QIEDmpdAgUI0LxwAwAFvqygdVJMRSMdCQEAs55AAwIBOi0CBgKVgAILAwdH59sCDkWCAQtECgEICQUJCAVtAAYCBwIGB20ADgAECQ4EYAAJCAAJVAAFDQEAAQUAYAACBgECVAwBAQAHAwEHYAADCwsDVAADAwtYAAsDC0zl48fGqqiLim1sZGJaWTQyKyoTFBQUExIPBRorATQmIgYUFjI2BTQmDgEXFBYyNgM0JiIGHgEyNgcVFAYPAQYHFhcWFAcOASIvAQYHBgcGKwEiJjUnJicHBiInJjU0Nz4BNyYvAS4BPQE0Nj8BNjcmJyY0Nz4BMzIfATY3Njc2OwEyFh8BFhc3NjIXFhUUDwEGBxYfAR4BARUUBwYHFhUUBwYjIi8BBiInDgEHIicmNTQ3JicmPQE0NzY3JjU0PwE2MzIWFzcXNj8BMhcWFRQHFhcWERUUBwYHFhUUBwYjIiYnBiInDgEiJyY1NDcmJyY9ATQ3NjcmNTQ/ATYzMhYXNxc2PwEyFxYVFAcWFxYB9FR2VFR2VAGtLDgsASo6LAEsOCwBKjos2AgEVwYMEx8EBAxEEAVAFRYGBwQNaAYKDRMXQgQNBlAEBSQIDQdVBQgIBVYHCxMfBAQMRAoGBkATGAYHAw1oBgoBDRMXQQUNBVEEGBEIDQZVBgYBZlMGChwCRAEFFR0LDAsHLAMBRAMdCgdTUwcKHQM0EAEEKggRERwXBAJDAhwJB1NTBgocAkQBBSoICwwLBywERAMdCgdTUwcKHQM0EAEEKggRERwXBAJDAhwJB1MBXjtUVHZUVOMdLAIoHx0qKgJZHSoqOyoqzWcGCgEOExcbJQYMBBFCBDILBjwbDQgGVQYMMgQESw8FBQgsDBgWDQEIB2gFCgEOExcbJQYMBRBCBDIKCDwaDQgGVQYLMQQESw8EBh4VDRsTDAII/s9OCQgPDj8OAgIoGyUBAQs0ASgCAg4/Dg8ICU4JCRANPw4CAh4JNAwBASgXAScCAg4/DRAJAjNOCQkPDj8OAgInNAwBAQw0JwICDj8ODwkJTgkIEA0/DgICHgk0CwEBJxcBJwICDj8NEAgAAAP///+xA+gCwwAZADkASQBAQD0bEgEDAwITAAIBAAJHAAMCAAIDAG0AAAECAAFrAAUAAgMFAl4AAQQEAVQAAQEEWAAEAQRMNT0tGSopBgUaKyURBgcGBw4CJyMiLgEnJicmJxEUFjchMjYTNS8BJgYnISIGBxQXFhceBDczMj4DNzY3PgE3ERQGByEiJjcRNDYzITIWA6ESFZVZHCQ8GwIaPiIdWJYVEgwGAzYHCgECAwMEBvzKBwoBU2t0BCASIBgMAgsaHhQeBXRsHjRHNCX8yiQ2ATQlAzYlNAsBrBQQc0oYGh4CGh4WSnMQFP5UBwwBCgJSDg4FBQIDDAZeQVRcAxwOFAwBChYMHgJcVBhSNf2hJTQBNiQCXyU0NAAAAAQAAP+xA00C/wAGABQAGQAkAIZAFx4BAgUdFg4HBAMCGQMCAwADAQEBAARHS7ASUFhAJwAFAgVvAAIDAm8AAwADbwAAAQEAYwYBAQQEAVIGAQEBBFcABAEESxtAJgAFAgVvAAIDAm8AAwADbwAAAQBvBgEBBAQBUgYBAQEEVwAEAQRLWUASAAAhIBgXEA8JCAAGAAYUBwUVKxc3JwcVMxUBNCMiBwEGFRQzMjcBNicXASM1ARQPASc3NjIfARbLMoMzSAFfDAUE/tEEDQUEAS8DHuj+MOgDTRRd6F0UOxaDFAczgzM8RwIGDAT+0gQGDAQBLgRx6P4v6QGaHRVd6VwVFYMWAAAAAAL//f+xA18DCwAjADAAQUA+DQEAAR8BBAMCRwIBAAEDAQADbQUBAwQBAwRrAAcAAQAHAWAABAYGBFQABAQGWAAGBAZMFRUjJCUjJBQIBRwrATU0JgcjNTQmJyMiBgcVIyIGFxUUFjczFRQWFzMyNjc1MzI2NxQOASIuAj4BMh4BAqcWDo8WDkcPFAGPDhYBFA+PFg5HDxQBjw4WsnLG6MhuBnq89Lp+ATpIDhYBjw8UARYOjxQPSA4WAY8PFAEWDo8UM3XEdHTE6sR0dMQAAAAE//3/wgPVAwEALQA3AEEASwAqQCdLR0JBPDgbEQ4HBQsARQEBAAICAFQBAQAAAlgAAgACTCspEisDBRYrEyY2Fh8BBhcWFx4BNzI3FjY3HgE3PgE/ATYnNRY3PgEXFgYHDgMHBiMhJicTJjYWHwEWBiYnEz4BFh8BFAYmJxM+ARYXBw4BJicBBCY0CTUPAQYeBzIoLxsiYhkbWB0MEAMFAgEaIzF4JiEEIT1WMEQsFS3+olQVQgY2OggVBCoyDHgCPEAECDg6AZgEQjoBBgU6MgQCvCUgFhu4HSMerjQ8ASUnBCclCB8QIBUhDBwmCiItQhkYRhQZcm58HxIGcAGaLSgYJNEpLA4mAR8pHiAh+DsiLCcBACsYJiH+LyYoLwADAAD/+QPoAn0AEQAiADMARkBDCwICBAINAQADAkcABAIDAgQDbQADAAIDAGsAAAECAAFrAAYAAgQGAmAAAQUFAVQAAQEFWAAFAQVMFxYkFBUYFgcFGysBJicWFRQGLgE1NDcGBx4BIDYBNCYHIgYVFBYyNjU0NjMyNgUUBwYEICQnJjQ3NiwBBBcWA6FVgCKS0JIigFVL4AEE4v63EAtGZBAWEEQwCxAB2QtO/vj+2v74TgsLTgEIASYBCE4LATqEQTpDZ5QCkGlDOkGEcoiIAUkLEAFkRQsQEAswRBDMExOBmpqBEyYUgJoCnn4UAAADAAD/vQQkAwsACAAdADQAMEAtJgACAQABRwAEAgRvAwEBAAFwBQECAAACVAUBAgIAWAAAAgBMIBkpOBoSBgUaKxM0Jg4BHgI2ARQHAQYiJwEuAT0BNDY3MzIWFwEWFxQHAQYjIiYnATY0JwEuASMzMhYXARb6KjosAig+JgJVFP7uFjsU/nEVHiod6R1IFQGPFNcV/u4WHRQaEAEGFRX+cRVIHX0dSBUBjxUCWB4qAiZAJAYw/tkeFf7uFRUBjxVIHegdKgEeFf5xFR0eFf7uFRARAQYVOxUBjxUeHhX+cRUAAAACAAD/sAPoAsMAJQBLAD9APEkcAgABPwEDACkBAgMDRwoBAwFGMgECRAABAAFvAAADAG8AAwICA1QAAwMCWAACAwJMQkA+PCMiIwQFFSsBFA4BIyInBgcGByMiJjUmNDY1PwI2Bzc+AjcuASc0PgEyHgEXFAYHHgEfARYfAxQHDgEnJicmJwYjIicWMzI2Nz4BJzQnHgEDEmq0azAyRlUVGwIGDAECAQQDAwEcBQ4OBEVOAWq01rRq1lBEBQwIGwkEBQQDAQIKBxwUVkYyMJdwIBFapEJFTAENSFQBpU2ETAkxFwUECgcBBAQBAwYDAwEeBRgSECh0Q06ETEyE3EN2Jw4WCiELAwUGCgECCAoBBAUXMQlKAzIvNIZKKyoneAAGAAD/sQMSAwsADwAfAC8AOwBDAGcAZEBhV0UCBggpIRkRCQEGAAECRwUDAgEGAAYBAG0EAgIABwYAB2sADgAJCA4JYA8NAggMCgIGAQgGXgAHCwsHVAAHBwtYAAsHC0xlZGFeW1lTUk9MSUdBPxQkFCYmJiYmIxAFHSsBERQGKwEiJjURNDY7ATIWFxEUBisBIiY1ETQ2OwEyFhcRFAYrASImNRE0NjsBMhYTESERFB4BMyEyPgEBMycmJyMGBwUVFAYrAREUBiMhIiYnESMiJj0BNDY7ATc+ATczMhYfATMyFgEeCggkCAoKCCQICo8KCCQICgoIJAgKjgoHJAgKCggkBwpI/gwICAIB0AIICP6J+hsEBbEGBAHrCgg2NCX+MCU0ATUICgoIrCcJLBayFyoJJ60ICgG3/r8ICgoIAUEICgoI/r8ICgoIAUEICgoI/r8ICgoIAUEICgr+ZAIR/e8MFAoKFAJlQQUBAQVTJAgK/e8uREIuAhMKCCQICl0VHAEeFF0KAAP///+wA6ECxAAIABEAOwBstSQBAwIBR0uwCVBYQCcABgUEBQYEbQEBAAMDAGQABQAEAgUEYAACAwMCVAACAgNYAAMCA0wbQCYABgUEBQYEbQEBAAMAcAAFAAQCBQRgAAIDAwJUAAICA1gAAwIDTFlACjUkKDMuGBIHBRsrBRQOAS4BNh4BBRQOAS4BNh4BExEUBgcFFhQHITIWDgEjISImNTQ+AjUDIyIuATYXMzIeAgYWByEyFgFlKjoqAi42LgHyKjoqAi42LkYUDP25Bw0CAQ8WAhIR/cUOFgoIEGJyDxQCGA2PCQ4GCgIIAQKeDhYHHSoCLjYuBCYfHSoCLjYuBCYCQP7iDRQCRCIOGxYcFhYOBhgQHAMByxQeFgEGDBAMFgMWAAAAAf///8oCpgLxAE8ASUBGAAgHCG8AAwECAQMCbQkBBwYKAgABBwBgBQEBAwIBVAUBAQECWAQBAgECTAEASEU/Pjg1LiwpJyAdFxYQDQYEAE8BTwsFFCsBIgYUFjcyNzYWFxUUBisBIiY3NjU0JiIGBxQXFgYnIyImJzU0NhcWMzI2NCYnIgcGJjc1NDY7ATI2JyY1NDYyFgcUBwYWNzMyFh0BFAYnJgJKJTY2JRYVGhYBMB+PEA4JFURiRAENEQoUjyEsARIWGBsmNjYmFRUaGAEuII8TDBEORmBGARUKEA+PHzAUFBgBkkRgSAINEQwSkB8uEhYZGiY0NCYWFhoWAS4fkBAOChREZEACDREKFFshLhQbFBgmNDQmGhkVFAEuIVsQDgoUAAAFAAD/4gP6AtoAOQBBAEsAYwBmAGVAYisiAgcBZjUYAwIHFwEDAj0LAggDQgEFCDwGAgQFBkcAAQcBbwAHAgdvBgEEBQAFBABtAAAAbgACAAMIAgNgAAgFBQhSAAgIBVYABQgFSmVkY2BbWlZVUlFIRzg2JyUTCQUVKwEWBgciLwEmNz4BJw4DJy4BNTQ3NjcnDgEnNCY1JjYzNzQnNDMyNzIdATYzNhcUFhUWDwEVMzIWBRY3JwYHBhQ3PgInJiMiBiMlFhIWFCsBIjUnIwYHFCsBIjU2EzY7ATIDMwMD3B5QXgoCIAIEVj4qEC5IZDg0QDwyQAKMDAQKAgYEnAIILgYKngYIAggECLAMVnz+phwiBCIaLKgcPB4IJDwCCAL+PgpWUARWBjKwMAIGVgQKpgIIYAqCkEgBMlK8QgImBgQ8uDgmTFQuCAZGOlRAMhBkGAIGAjYEAgQcbgQIAghoFgQKAioECgIeZkjgBgzWDBwsghYYWEYGEgKyHP7u+AYEpqQCBAQSAhYI/rwBCAAABQAA/7ED6AMLAA8AHwAvAD8ATwBVQFJJAQcJOQEFBykBAwUZAQEDQTEhEQkBBgABBUcACQcJbwAHBQdvAAUDBW8AAwEAA1QAAQAAAVQAAQEAWAgGBAIEAAEATE1LJiYmJiYmJiYjCgUdKzcVFAYrASImPQE0NjsBMhY3FRQGKwEiJj0BNDY7ATIWNxEUBisBIiY1ETQ2OwEyFjcRFAYrASImNRE0NjsBMhYTERQGKwEiJjURNDY7ATIWjwoIawgKCghrCArWCghrCAoKCGsICtYKB2wHCgoHbAcK1woIawgKCghrCArWCghrCAoKCGsICi5rCAoKCGsICgpAswgKCgizCAoKh/6+CAoKCAFCCAoKzv3oCAoKCAIYCAoKARb8yggKCggDNggKCgAAAgAA/4kEsQMyADEAZQAtQCpbU1BJPz02NB0QAAsBAgFHAAACAG8AAgECbwMBAQFmUlE6OTEwFxUEBRQrNTY/ATY3PgE3NCcmJyY1NDcmJyY+ATcyHgIHBgcWFRQHBgcGFRQWFx4CFx4BFRchATQ3JicmPgEeAgcGBxYVFAcGBw4CFxQWFx4CFxUjNTQuAicuASc2NTQvASYnJicmFChFHRUlKAEfEw4tDgUEBT5qOStUPiIDBAQOLQ8RICgmHX5kEBIUAfySAsEMBQIEMlhcVjQEAgYMJAwPCQgKASIeETJGD/4GCBYMFzwxGwUIAwkODSUxBw8aCwsTSicbJRUnEjorEicrN2o+ASY+Uio3GxMqOhIpEyUbJ0oTDy4oEhE8FRUB0yIQICMtWDgCNFwrIyAQIjAOIREKDBQKIDwQCRQYB4cLByYiKgwZJhIiLAoKEAYKDyIQAAAE//r/mgPzAxoAKwA3AFYAXgAdQBpZWEA/BABEAgEBAAFvAAAAZh0cGxoREAMFFCsTDgEUIwcGBwYvASY3PgE3NjI+ATcyPgE3NjcyFzIHBgcGFxYXFg8BBicuARcBFg8BBicBJj8BNiUWBwYnJg8BJzc+ASY3Njc2FgcGBwYWFxY3PgE3NhYBNxcHBi8BJpsIBgIRDwQQDEYLDQIgBAYqHggGAg4mFoY0ehoMFHggUCwiBAgKTA4EKjr4AZoSFDAWEP5iCAhIDAIyECAyaDgsUkREGA4CBgyADAwEDCIOBCY6JgYoAgQS/Kj+TPYUEi4WAfoIHBYPDQQOEkwMDAIYBAYcMAYOHhBaBgIINBg4Oi4CCAZGCAQwGDL+JBYQKg4SAdgIDD4IwGg+WBoMLE5ORhg6SBY4OAYSBgxECjIcKD4MOgQKAv1E+FbyFBAuEgACAAD/sQNbAwsAJABHAF1AWkMlAgYJLwEFBhcBAwIIAQEDBEcACQgGCAkGbQcBBQYCBgUCbQQBAgMGAgNrAAEDAAMBAG0ACAAGBQgGYAADAQADVAADAwBYAAADAExGRSYlJTYlJjUUJAoFHSsBFBUOASMiJicHBiImPQE0NjsBMhYGDwEeATcyNjc2NzY7ATIWExUUBisBIiY2PwEmIyIGBwYHBisBIiY3NT4BMzIWFzc2MhYDSyTkmVGYPEgLHBYWDvoOFgIJTShkN0qCJwYYBAxrCAoOFBD6DhYCCU1ScEuCJwYXBQxvBwwBJOaZUZo8SAscGAEFAwGWuj45SAsWDvoOFhYcC00kKgFKPgo4DQwBuPoOFhYcC01NSj4KOA0MBgSWuj45SAsWAAAC////wwPpArEAGAAxAE1ASisBBQYmAQQFAQACAAIDRwkGAgBEAAYFBm8AAQQDBAEDbQADAgQDAmsABQAEAQUEXgACAAACUgACAgBWAAACAEoTJhMXExwUBwUbKyUVFAYHIRUUBgciLwEmND8BNjIWHQEhMhYDFA8BBiImPQEhIiY3NTQ2MyE1NDYyHwEWA+gKCP0ACggGB7IFBbMFDwoDAAcMAQWzBQ8K/QAHDAEKCAMACg4HsgW9awcKAWsHCgEGsgYPBbIFCghrCgEoCAWyBgwGawwGawgKawgKBbIFAAL////5BBkDCwASACkALEApAAMEA28AAQIAAgEAbQAAAG4ABAICBFQABAQCWAACBAJMIzojNjUFBRkrARQPAQ4BIyEiLgE/AT4BMyEyFicVISIGDwInJjcRNDY7ATIWHQEhMhYEGRK7GFYm/aETHAERvBhWJQJfEx7A/jA1ciO8AgEBAUozszNKAS80SAE/ERTdHCgOIhTdHCgOr1o0Kd0DBwUCAhgzSkozEkoAAAAAAv/8/34D2ANKAA0AHwAItR8UCAECLSs3Nh4CBwYHBjc0Nz4BARYABwYHBicmJyYnJjc2NzYAdiZeUgwkVo5UBAY0GANsGv6kdiZWCAgSHiAiEAhAKHYBxKoiClBeJFQSDBoEBjyqAqga/kR0JkIGDiIeIBAGClQmdAFWAAQAAP+6AoADAgAsADUAPgBHAFhAVSYgHxYVDAYGAwFHCgcCAwQGBAMGbQAGBQQGBWsCAQEIAQQDAQRgCQEFAAAFVAkBBQUAWAAABQBMQD83NkRDP0dARzs6Nj43PjQzMC8rKhsaERALBRQrARQHDgMHDgMHFhUUBiImNTQ3ESY1NDYyFhUUBxU2Nz4CNyY1NDYyFgUUFjI2NCYiBhMyNjQmIgYUFgEyNjQmIgYUFgKASgYsTjouKio0GARGRmRGSEhGZEZIKGI6NDIERkZkRv20KDgqKjgoRBwqKjgoKAGsHCoqOCgoAopQHjpWNBgODhAgMCQeUDJGRjJOIgF6IkwyRkYyTCLMHh4SFjwuIEwyRkYyHCgoOigo/UYoOigoOigCWCg6KCg6KAAAAAMAAP/5A1oCxAAPAB8ALwA3QDQoAQQFCAACAAECRwAFAAQDBQRgAAMAAgEDAmAAAQAAAVQAAQEAWAAAAQBMJjUmNSYzBgUaKyUVFAYHISImJzU0NjchMhYDFRQGJyEiJic1NDYXITIWAxUUBiMhIiYnNTQ2FyEyFgNZFBD87w8UARYOAxEPFgEUEPzvDxQBFg4DEQ8WARQQ/O8PFAEWDgMRDxZkRw8UARYORw8UARYBEEgOFgEUD0gOFgEUAQ5HDhYWDkcPFgEUAAAAAAMAAP+5BBYCugAUACQAOQAeQBsuEQIAAQFHAwEBAAFvAgEAAGY1NCgnFxIEBRYrJQcGIicBJjQ3ATYyHwEWFA8BFxYUAQMOAS8BLgE3Ez4BHwEeAQkBBiIvASY0PwEnJjQ/ATYyFwEWFAFYHAUOBv78BgYBBAUQBBwGBtvbBgFE0AIOBiIIBgHRAgwHIwcIAWz+/AYOBhwFBdvbBQUcBg4GAQQFRRwFBQEFBQ4GAQQGBhwFEATc2wYOAk79LwcIAwkDDAgC0AgGAQoCDv6P/vsFBRwGDgbb3AUOBhwGBv78BRAAAAIAAP+cA+gDIAAoADQAS0BIHhwUEAQCBwUBAAQCRwABBwFvAAcCB28ABAMAAwQAbQAAAG4GAQIDAwJSBgECAgNWBQEDAgNKNDMyMTAvLi0sKyopGRgTCAUVKyUWHQEhNTY3PgE1NCYnLgEnNDY/ASYnJjYyFg8BFhUOAwcOARUUFiUzFSMVIzUjNTM1MwJstPzgJC5eRi4IAioECgQECAQGXORcBA4SAg4ODgIKLkgBRJaWZJaWZIBAOmrKDgwiRjwWNDAMGjAQFAIEMiY2dHQ2WAgiHB4EDAwuNhY8Ru5klpZklgAAAAAB//7/sQNZAwsAMAA9QDotAQEFCQEAAQJHAAABAwEAA20AAwIBAwJrAAUAAQAFAWAAAgQEAlQAAgIEWAAEAgRMJycTJyQzBgUaKwEVFAYrASImPwEmIyIOAhQeAjMyNjc+AR8BHgEHDgEHIi4CPgMzMhYXNzYWA1kUEPoXExFNUnA6akwuLkxqOkJ2KQQRBkwFAgY8rl9XoHBIBEB4mFtSmD1IESwCw/oOFi0QTU0uTGp0akwuOjUGAQVNBA4GSlABRHSerp50RD45SBITAAAAAwAAAAAD6AK2ABYAMABHAC1AKjszJhwODAQHAQABRwACAAJvBAEAAQBvBQEBAwFvAAMDZhsmGxspKQYFGis9ATQ/ASYnNDc2NzIXBhcGDwEGBxUjIhc1ND8CLgE3NDYyFhUUBx8BFh0BBgchLgEBNic2NzIXFhUUBxcWHQEUByM1NC8BJhKrQgIjJTUfIDFIDA1yMARyGb8WmDklLgFcgFpOPZIYAiP94w4UAdlELh8jMSkjQagSG3Yybg9qhhoGUCdcOC8pAhN9cAsINxc9jxmoGwpGHBdWM0xsbExpNR5GChuoJQQCGAFZan0TAispPlIxUAoWhiACjzkbNQgAAAH//P/MA4gC8gAaACFAHgAFAAVvBAEAAgBvAAIBAm8DAQEBZhQjIREkIgYFGisBFgYrAREUDgErAREjESMiJjURIyImNwE2MhcDeBAKFlQCDhDMzMIcDlQWChABkBAsEAFQEBb+yg4ODAE2/soUFAE2FhABkhAQAAMAAP+fA48DHgAUACgAPABwQG0nAQkEAUcQCgIECQRvDQcCAQABcBMLAgkIAQYPCQZeFBECDw4BDAMPDF4SBQIDAAADUhIFAgMDAFYCAQADAEopKRUVAAApPCk8OTg1NDMyLy4rKhUoFSglJCEgHx4bGhcWABQAFCMRExMRFQUZKyUVIxUUBiImPQEjNTMRNDY3MhYHEQEVIxEUBiImNREjNTM1ND4BFgcVBRUjERQGIiYnESM1MxE0PgEWFRECQDciLCI4OCIVGCIBAYY3IDAgODggLiQC/Zk3IC8gATg4IDAg73CnFyIiF6dwAfcYHgEgF/4JAU9w/goXIiIXAfZwqBgeAiIWqHBv/nkXIiIXAYdvARgYHgIiFv7oAAAAAAIAAAAAA48CrQAEAAkAGkAXCQYEAQQBAAFHAAABAG8AAQFmFBICBRYrASU1IRUBJREhEQHT/j8Dff5EAbz8gwFu0m1t/rPS/ksBtgACAAD/wgMiAuoAEQAaACxAKREBAgMGAQACAkcAAQADAgEDYAACAAACVAACAgBYAAACAEwTFxMnBAUYKyUWDwEGLwEGIyImEDYgFhUUByUUFjI2NCYiBgMEHhguJCC+SlKAvrQBAMAu/hiIsH6IsH5OIhwuICC+Kr4BALa+gFhKqliIfrKGfgAAAQAA/2oD6ANSAEQAUEBNCwEJCgcKCQdtDQEHCAoHCGsGAQABAgEAAm0EAQIDAQIDawwBCAUBAQAIAV4ACgoMSAADAw0DSUFAPTw7OTQzLiwTFxMRJRUhExQOBR0rARQPAQYiJj0BIxUzMhYUDwEGIi8BJjQ2OwE1IxUUBiIvASY0PwE2MhYdATM1IyImND8BNjIfARYUBisBFTM1NDYyHwEWA+gLjgseFNdIDhYLjwoeCo8LFg5I1xQeCo8LC48KHhTXSA4WC48LHAuPCxYOSNcUHguOCwFeDguPCxYOSNcUHgqPCwuPCh4U10gOFguPCxwLjwsWDkjXFB4LjgsLjgseFNdIDhYLjwoAAAL/+P+2A+wDCAAGACMAaUuwC1BYQCgCAQAEAG8IAQQBBG8AAQUBbwcBBQYGBWMABgMDBlIABgYDWQADBgNNG0AnAgEABABvCAEEAQRvAAEFAW8HAQUGBW8ABgMDBlIABgYDWQADBgNNWUAMESITERY3ERERCQUdKwEFIxEjESMBHgEPAQ4BIyEiJi8BJj8BMwczMh8BITc2OwEnMwH0AQSkvqYC2BISBhwEJBb80BYkBBwKKp5iqrIIBCgBLCgIBLKqYgMI9P8AAQD+sgosEpoUGhoUmjAYbIIIbm4IggAAAQAAAAAD6AKkAB0AQUA+CQEFAAFHAAYABm8HAQAFAG8ABQIFbwMBAgEBAlIDAQICAVgEAQECAUwBABoYExEODAsKCAcGBAAdAR0IBRQrATIWFAYrATUzJwczFSMiJjQ2MzIXJjU0NjMyFhc2AvhkjIxkvmqwrmj4SmxqTA4GApxuWowYHAHuiMSIvubmvmiSaAIMGmyYaFIEAAAAAv/6/3ADGgNWABkALQAQQA0SAQBEAAAAZisqAQUUKwEWBgcGJw8CBg8BBiYvASY3ASYnJjY3NhYHNi4BBgcOAR8BHgEfAR4CMj4BAwYUYGZCQHZGaA4gTAwUAhAIFAECGA4SjnJqsmweElRkHggIAwUCFgdDEA4YDhQQAmR0xhIMCsIMphwEDgQQDmIeGgGCMkZqohQUgrwsaj4ULAwWCRAHFAUxDAgQAg4AAAgAAP+SA5gDKgAPABsAJwA3AEIATgBdAGkAgUB+JCAGAwECXDAmHhgKBAcDAU0uGhICBQYAVTw2AwQFaEdFPjgUBgcEBUcAAwEAAQMAbQgBAAYBAAZrAAYFAQYFawAFBAEFBGsABAcBBAdrAAcHbgACAQECVAACAgFYCQEBAgFMHRwBAGdlV1ZMSzs6MzEjIRwnHScADwEPCgUUKxMiByYnNjcWFwYVFBcGByYHFBcGByY1NDcWFwYBIgcmJzYzMhcGByYTJic2NTQnNjcWMzI3FhcGFzY3NjcGBzY1NCYnBgcmJzY3FjMyNxYBFhUUBwYHJicmJzY9ATYDFhcWFRQHBiMiJzbgFhQwLDZKXDwGBD42EG4UPBRCMiYuCAFQHBY6OFROeG5MVhpqoIIEDiY8Gh4OGF4oEHYmEDoyLngGApa+clpEDEQGDh4WjgFglgRAQhhAMGQKZBoOEgIOVmw6Nm4B+Ao0TEosJiwQEAYQMDgEYiIacnZqgm5gPjIYATAOKhwePg4kGv40GFgUChgcLC4UCGyEDpYOLgQOklYwMgokTGCwJEqQggIOYgHSiMwWLBIGOASSdhQWCir97AoIEiJQQCoMoAAAAAAD//z/kAOaAywACAATACkAYkBfDAEDAiMiGBcEBQcCRwAHBgUGBwVtAAUEBgUEawgBAAkBAgMAAmAAAwAGBwMGYAoBBAEBBFQKAQQEAVgAAQQBTBUUCgkBACYkIB4bGRQpFSkQDgkTChMFBAAIAQgLBRQrATYAEgAEAAIAFyIGFQYWMzI2NTQDMjY3JwYjIj8BNiMiBgcXNjMyDwEGAca+ARAG/vb+hP7uBgEM8iouAiIgJi60Hmw0EjAYDgoqGjAedjgQNBYMDCQaAyoC/vj+hP7uBgEKAXwBEpYwGhwgLCA6/a40NBgkJqBgOi4aIiKYaAAADwAA/2oDoQNSAAMABwALAA8AEwAXABsAHwAjADMANwA7AD8ATwBzAJhAlUElAh0SSS0kAxMdAkchHwIdEwkdVBsBExkXDQMJCBMJXxgWDAMIFREHAwUECAVeFBAGAwQPCwMDAQAEAV4aARISHlggAR4eDEgOCgIDAAAcWAAcHA0cSXJwbWpnZmNgXVtWU01MRUQ/Pj08Ozo5ODc2NTQxLyknIyIhIB8eHRwbGhkYFxYVFBMSEREREREREREQIgUdKxczNSMXMzUjJzM1IxczNSMnMzUjATM1IyczNSMBMzUjJzM1IwM1NCYnIyIGBxUUFjczMjYBMzUjJzM1IxczNSM3NTQmJyMiBhcVFBY3MzI2NxEUBiMhIiY1ETQ2OwE1NDY7ATIWHQEzNTQ2OwEyFgcVMzIWR6GhxbKyxaGhxbKyxaGhAZuzs9aysgGsoaHWs7PEDAYkBwoBDAYkBwoBm6Gh1rOz1qGhEgoIIwcMAQoIIwgK1ywc/O4dKiodSDQlJCU01jYkIyU2AUcdKk+hoaEksrKyJKH9xKH6of3EoSSyATChBwoBDAahBwwBCv4msiShoaFroQcKAQwGoQcMAQos/TUdKiodAssdKjYlNDQlNjYlNDQlNioAAAABAAAAAAOlApgAFQAdQBoPAQABAUcAAgECbwABAAFvAAAAZhQXFAMFFysBFAcBBiInASY0PwE2Mh8BATYyHwEWA6UQ/iAQLBD+6g8PTBAsEKQBbhAsEEwQAhYWEP4gDw8BFhAsEEwQEKUBbxAQTA8AA//8/5ADmgMsAAgAFgA/AFhAVTg2AgMFEwECAwJHAAYEBQQGBW0ABQMEBQNrAAMCBAMCawcBAAAEBgAEYAgBAgEBAlQIAQICAVgAAQIBTAoJAQAnJiIgHRsRDgkWChYFBAAIAQgJBRQrATYAEgAEAAIAEzI2NTYmKwEiBgcUFhcTNjU0JiMiBwYHFTM1NDc2MhcWFRQHBg8BBg8BBgcGBxUzNTQ3Nj8BNgHGvgEQBv72/oT+7gYBDLweJgImHgIcJgImHKgaalJAKEQEbhAQTgwQEAgMFgoKFQsGDgRsBAYWHC4DKgL++P6E/u4GAQoBfAES/R4mHB4mJBweJgIBSCIsTkwaKmgEBBocGBQUGBIWDAgPBwgRCQgUOggEDBAUEBIiAAIAAP/5A2sCwwAnAEAAQkA/FAECAQFHAAYCBQIGBW0ABQMCBQNrAAQDAAMEAG0AAQACBgECYAADBAADVAADAwBYAAADAEwWIxklKiUnBwUbKyUUFg8BDgEHIyImNRE0NjsBMhYVFxYPAQ4BJyMiBgcRFBYXMzIeAgEUBwEGIiY9ASMiJj0BNDY3MzU0NhYXARYBZQIBAgEICLJDXl5DsggKAQEBAgEICLIlNAE2JLQGAgYCAgYL/tELHBb6DhYWDvoWHAsBLwsuAhIFDgkEAV5DAYhDXgoICwkGDQcIATQm/nglNAEEAggBLA4L/tAKFA+hFg7WDxQBoQ4WAgn+0AoAAAAAAQAA/7YDiAMSABYAG0AYCwEAAQFHDgEBRQABAAFvAAAAZhgcAgUWKwE2FgcOAi4CBgcTIwM3PgEeAzYDag4QCGCIVD46RHZQWmS4XFp8SDhEWqgCaAYODIqWHhowIChC/qAC0CJCKCJESjIKAAAAAAH/8P9/A+sDRQA5AA9ADCwBAEUAAABmEwEFFSslBgcGJicmJyYnJjc2PwE2NzYeAgcGBwYHBhcWFxYXFjY3PgEnNCcmJy4BBzU2FxYXFhcWFxYGBwYDV0VfWsdaXkRdJSMaGlUEEwwbQi4IDgcJRRoZFhdDSmlixkM1OQEgKVNQzWV1d3VcYC8jAgI4NxAJRSMhBiUnRF1/e32AYwQXBxEHLj4bDQlKYF5bXkNKFBJFTT2YUFJMYUA9IiIBKRMTRklwUllXpkUWAAAAAAMAAP9qAjADUgAbACgAYgBFQEI1MgICAzYBBAJYTQIABgNHAAUEBgQFBm0ABgAEBgBrAAIABAUCBGAAAwMBWAABAQxIAAAADQBJU1IaGyQnHRoHBRorARQOARQeAR0BFAYiJj0BND4BNC4BPQE0NjIWFQUHBhcWMzI3NicmIyITND4CPwE2NTcGIicXFB8DFiYWIxQOAg8CBiYGNQYdAT4CNTQyFRQeARc1NC8CJi8BLgECMGBiYmCs2KxgYmJgrtSu/h4SBAhcfIRYDh5ganiQCBwMGR1cAmT0ZARaLRMREQweDAIKBggMDw8CIloIdEQ0QnoGXCsSDQUMBwQCbixoXjxcZi52Ik5OInYuZlw8XmgsdiBOTiAGDggGNDIKFDb+ShIeJA4YHFweMjY2MiBaKxMVFQIwChISDgoPEBACIgFaIEIEJjAiHh4iMCYEQh5cKRMOCBQMFgAAAAIAAP/5A6ADCwAtAEIATkBLOwEEBiUBBQQCRwAHAQIBBwJtAAYCBAIGBG0ABAUCBAVrAAUDAgUDawABAAIGAQJgAAMAAANUAAMDAFgAAAMATBQXFSc1OTUzCAUcKwEVFAYjISImNRE0NjchMhceAQ8BBiMnJiMhIgYHERQWFyEyNj0BND8BNjMyFxYTAQYiLwEmND8BNjIfAQE2Mh8BFhQDEl5D/jBDXl5DAdAjHgkDBxsGBwUNDP4wJTQBNiQB0CU0BSQGBwMEC4H+OQ0kDvAODj0OJA6TAWkNJA4+DQFLsUNeXkMB0EJeAQ4EEwYcBQEDNCX+MCU0ATYkjQgFIwYCBAEF/joODvANJA4+DQ2TAWkNDT0OJAACAAD/+QMTAwsADwAfACtAKAADBAEAAQMAYAABAgIBVAABAQJYAAIBAkwCAB4bFhMKBwAPAg8FBRQrASEiBgcRFBYXITI2NRE0JhcRFAYjISImNRE0NjchMhYCcf4wJTQBNiQB0CU0NHxeQ/4wQ15eQwHQQmACwzQl/jAlNAE2JAHQJTRZ/jBDXl5DAdBCXgFgAAAAAv/9/7EDXwMLACQAMQAwQC0eFQwDBAIAAUcABQEBAAIFAGADAQIEBAJUAwECAgRYAAQCBEwVFxQcFBkGBRorJTQvATc2NC8BJiIPAScmIg8BBhQfAQcGFB8BFjI/ARcWMj8BNjcUDgEiLgI+ATIeAQKBCmVlCgozCh4KZWULHgoyCwtlZQsLMgoeC2VlCh4KMwrYcsboyG4Gerz0un7gDgtlZQsdCzILC2VlCwsyCx0LZWULHQsyCwtlZQsLMguNdcR0dMTqxHR0xAAAAQAA/+8C1AKGACQAHkAbIhkQBwQAAgFHAwECAAJvAQEAAGYUHBQUBAUYKyUUDwEGIi8BBwYiLwEmND8BJyY0PwE2Mh8BNzYyHwEWFA8BFxYC1A9MECwQpKQQLBBMEBCkpBAQTBAsEKSkECwQTA8PpKQPcBYQTA8PpaUPD0wQLBCkpBAsEEwQEKSkEBBMDy4PpKQPAAEAAP/5AxIDCwAjAClAJgAEAwRvAAEAAXAFAQMAAANUBQEDAwBYAgEAAwBMIzMlIzMjBgUaKwEVFAYnIxUUBgcjIiY3NSMiJic1NDY3MzU0NjsBMhYXFTMyFgMSIBboIBZrFiAB6BceASAW6B4XaxceAegXHgG3axYgAekWHgEgFekeF2sXHgHoFiAgFuggAAL//f+xA18DCwAVACIAMEAtBwECAQFHAAQABG8AAAEAbwABAgFvAAIDAwJUAAICA1gAAwIDTBUXFxQUBQUZKwE0LwEmIg8BJyYiDwEGFB8BFjI3ATYXFA4BIi4CPgEyHgECzQozCxwL5H4LHAszCgrKCh4LAS8KjHLG6MhuBnq89Lp+AbgQCjILC+N+CwsyCh8KygoKAS8KS3XEdHTE6sR0dMQAAQAA/7oDqgMLACcAJUAiBQECAAFHAwEAAgBvAAIBAm8AAQQBbwAEBGYWJDklIgUFGSsRNDYzMhcHFBYXMzIWDwEGFjcTNiYrASImPwE2MzIWBxQHAQYiJwEmkmhRQg4SDAoMDAM5BAQHwgcGDU0MCgRSOUNnlAE//qkZShr+qkACEmeSL/oMEAEQDKwMAgkBCwkOEAq3IJJnXkj+bR8fAZNIAAAC//j/tgPsAwgAHAAjAHe1HgECAQFHS7ALUFhAKQAHBgdvCQgCBgEGbwUBAQIBbwQBAgMDAmMAAwAAA1IAAwMAWQAAAwBNG0AoAAcGB28JCAIGAQZvBQEBAgFvBAECAwJvAAMAAANSAAMDAFkAAAMATVlAER0dHSMdIxETESITERY2CgUcKyUeAQ8BDgEjISImLwEmPwEzBzMyHwEhNzY7ASczJwUlMxEzEQPIEhIGHAQkFvzQFiQEHAoqnmKqsggEKAEsKAgEsqpiMP78/vymvsYKLBKaFBoaFJowGGyCCG5uCILW9PQBAP8AAAP///9qA6EDDQAjACwARQBdQFofGAIDBBMSAQMAAw0GAgEAQwEHATIBCQcFRwAEBgMGBANtAAEABwABB20ACgAGBAoGYAUBAwIBAAEDAGAABwAJCAcJYAAICA0IST08NTMUExUUIyYUIyMLBR0rARUUBicjFRQGJyMiJjc1IyImJzU0NjsBNTQ2OwEyFhcVMzIWFzQuAQYUFj4BARQGIi8BBiMiLgI+BB4CFxQHFxYCOwoHfQwGJAcMAX0HCgEMBn0KCCQHCgF9BwpIktCSktCSAR4qPBS/ZHtQkmhAAjxsjqSObDwBRb8VAZQkBwwBfQcMAQoIfQoIJAcKfQgKCgh9ChlnkgKWypgGjP6aHSoVv0U+apCijm46BEJmlk17ZL8VAAAD////agOhAw0ADwAYADEAO0A4CQgBAwABLwEDAB4BBQMDRwAGAAIBBgJgAAEAAAMBAGAAAwAFBAMFYAAEBA0ESRcjFBMVJiMHBRsrARUUBichIiYnNTQ2MyEyFhc0LgEGFBY+AQEUBiIvAQYjIi4CPgQeAhcUBxcWAjsKB/6+BwoBDAYBQgcKSJLQkpLQkgEeKjwUv2R7UJJoQAI8bI6kjmw8AUW/FQGUJAcMAQoIJAcKChlnkgKWypgGjP6aHSoVv0U+apCijm46BEJmlk17ZL8VAAP/9f+xA/MDUgAPACEAMwA1QDIbEQIDAgkBAgEAAkcAAgUDBQIDbQADAAABAwBgAAEABAEEXAAFBQwFSRc4JycmIwYFGislNTQmKwEiBh0BFBYXMzI2JxM0JyYrASIHBhUXFBY3MzI2AwEWBw4BByEiJicmNwE+ATIWAjsKB2wHCgoHbAcKAQoFBwd6BggFCQwHZwgMCAGsFBUJIhL8phIiCRUUAa0JIiYiU2oICgoIaggKAQzXAQEGBAYGBAj/BQgBBgIQ/O4jIxESARQQIyMDEhEUFAAAAAIAAP/EA6wC+AAXAB0AU0BQGgEEBh0cGxMIBQIEBwEBAgNHAAYDBAMGBG0FAQQCAwQCawcBAAADBgADYAACAQECVAACAgFYAAECAUwBABkYFRQSEQ8OCwkGBAAXARcIBRQrATIWEAYjIic3FjMyNjQmIgYHMwcnMz4BFzMVFwcnAhSq7u6qinJGUmR+tLT6sgSOuLh8BO6CRoIylgL48P6s8FhMPLT+tKx8zs6m6L7MgjKWAAEAAP+xA1kDCwAxAD5AOyoBAwUlHQIEAwJHAAQDAQMEAW0AAQIDAQJrAAUAAwQFA2AAAgAAAlQAAgIAWAAAAgBMKTUXIxckBgUaKwEUDgIjIiYnJjQ/ATYWFx4BMzI+Ay4CIgYHFxYGKwEiJic1NDYfAT4BMzIeAgNZRHKgVmCuPAQFTAYRBCl2QzpoUCoCLkxsb2QoTRETF/oPFAEsEUg8mlJXnnRCAV5XnnREUkkGDgRNBQEGNTouTGp0akwuKCVNEC0WDvoYExJIOT5EdJ4AAAAABQAA/8MD6AKxAAkAGgA+AEQAVwBXQFQ0GwIABFMGAgIAUkMCAQJQQiknCAEGBgEERwAFBAVvAAIAAQACAW0AAQYAAQZrAAYDAAYDawADA24ABAAABFQABAQAWAAABABMTEsTLhkkFB0HBRorJTcuATc0NwYHFgE0JgciBhUUFjI2NTQ2MzI2NxQVBgIPAQYjIicmNTQ3LgEnJjQ3PgEzMhc3NjMyFh8BFgcWExQGBxMWFxQHBgcOASM3PgE3Jic3HgEXFgE2KzA4ASKAVV4BahALRmQQFhBEMAsQyjvqOxwFCgdECRlQhjILC1b8lzIyHwUKAw4LJAsBCRVYSZ0E+gsWJ1TcfCl3yEVBXSM1YiALaU8jaj1DOkGEkAFnCxABZEULEBALMEQQdQQBaf5aaTIJJwYKByokeE0RKhKDmAo2CQYGFAYBBf79ToAbARgZXhMTJC1gakoKhGlkQD8kYjYTAAABAAD/nAOsAyAAKgAbQBggHhYSBAABAUcAAQABbwAAAGYbGhMCBRUrJRYdASE1NDc+ATU0JicuAyc0Nj8BJicmNjIWDwEWFQ4DBw4BFRQWAuDM/FTMXkQsCgIODg4CCgQECAQEWuBcBgwSAg4ODgIILkaASDJqajJIIkY8FjYuDAwEHhwQFAIEMiY2dHQ2WAgiHB4EDAwwNBY8RgABAAD/nwOPAx0ADwAdQBoLAgIARQIBAAEAbwABAWYBAAYEAA8BDwMFFCslMjcOASMiADU0NjcGFRQWAsJpZCrwm7z+9LqQOPSyOJG6AQy9mvArZGms8gAACQAA/54DjwMdAAgAEgAXACAAJQAvADgAQQBKAHxAeREBAAUGBQAGbQABBwgHAQhtAAMAAgQDAmAQAQQPAQUABAVgDhICBhMNAgcBBgdgDAEIAAkKCAlgAAoLCwpUAAoKC1gACwoLTDo5GRgBAEhHREM+PTlBOkE0My4tKiglJCMiHRwYIBkgFxYVFBEQDAsFBAAIAQgUBRQrATIWDgEuAjY3FAYuATQ2NzIWBTQyFCIHMhYOASIuATYTNDIUIgU0NjMyFg4BLgElJjQ+ARYOASYTIi4BNjIWFAYDBiIuAT4BFgYB0VyEAoC8gASIkiIsIiIVGCL+eG9vOBciAh4yHgEgUG9vARciFRgiAiAuIAEnECAuIgQaNosYIAEiLiAgXxAwHgIiLCQGAj6EuIQCgLyAqhgiAh40GgMghzdvpyAwICAwIP6xN284FiIiLCQCIGAQLiACJCokBgETIDAgIDAgAScQIDAgAiQsAAP/+f+xA6kDCwBRAGEAcQBUQFE4AQUBUAEEBQ8NDAMCBgNHAAYHAgcGAm0AAgMHAgNrAAEABQQBBV4ABAAHBgQHYAADAAADVAADAwBYAAADAExubGZkXl1WVUtIRUI9OjUIBRUrARYHAw4BByEiJicmPwE2NzQmNTY/AT4BNzYmNj8BPgE3NiY3Nj8BPgE3NCY+AT8CPgE/AT4CFxU2MyEyFgcDDgEHISIGFxYzITI2NxM2JxYFBhYXITI2PwE2JichIgYPAQYWFyEyNj8BNiYHISIGBwOTFgyaCkAl/f0rUA8ODQEBAgQBBBINGAUCBAQHCgwWAwEEAgIKDQoaAwQCCAYKCQUGBgsFFBQQFQcBqSkuDZkUKDT+Gw8MBQ5DAgMQHgWnBAEV/boCBggBUwgOAgwCBgn+rQcOAjoDCAcBUwcOAwsDCAf+rQcOAwJHHyn+ByQwATwsJSIPDQcFDgQGBhoVPBUGFgsJDRQ+FAUYBAcKDQ5CFQQUCQwHCxEKFAoSCAoCBAEFQCj+BkImAREPJxIOAiYNEwgRBwoBDAYkBwoBDAazBwoBDAYkBwwBCggAAAAFAAD/sQR3AwsAAwAHAA0AEQAVAGZAYwAFCgVvDwEKAwpvDAEDCANvDgEIAQhvCwEBAAFvCQcCAwAGAG8NAQYEBAZSDQEGBgRWAAQGBEoSEg4OCAgEBAAAEhUSFRQTDhEOERAPCA0IDQwLCgkEBwQHBgUAAwADERAFFSsBESMRAREjEQEVIREzEQERIxElESMRAWWPAWWOAsr7iUcCy48BZY8BXv7iAR4BHv3EAjz9fUgDWvzuAfT+UwGt1v19AoMAAAAABAAA/7EDWQMLAAMAIQAxAEUAUUBOKyojIgQIBAFHDQEEBgEIAkYACgcBBAgKBGAACAADBggDYAAGAAEABgFeBQICAAkJAFIFAgIAAAlYAAkACUxAPTg1FyYzERM7EREQCwUdKxchNSEFMxE0Ji8BLgEHFRQGIyEiJic1IxEzNTQ2MyEyFgcDNTQmKwEiBhcVFBY3MzI2BREUBiMhIiYnETQ2MyEyFh8BHgHWAa3+UwH0SAwFnQUcCB4X/r4WHgFISCAVAdEWIAHWCghrBwwBCghrBwwBZB4X/RIXHgEgFgIFFzYPnBAWB9bWAfQIGgecBgwB6BYgIBbo/TboFiAgFgEesggKCgiyBwwBCgr9+hYgIBYC7hYgGA6dDzYAAAAACQAA//kD6AMLAA8AHwAvAD8ATwBfAG8AfwCPAE9ATBENAgcQDAIGAwcGYA8JAgMOCAICAQMCYAsFAgEAAAFUCwUCAQEAWAoEAgABAEyOi4aDfnt2c25rZmNeW1ZTTks1NTU1NTU1NTMSBR0rJRUUBgcjIiYnNTQ2FzMyFhMVFAYnIyImJzU0NjczMhYBFRQGByMiJic1NDYXMzIWARUUBisBIiYnNTQ2OwEyFgEVFAYnIyImJzU0NjczMhYBFRQGByMiJj0BNDYXMzIWARUUBisBIiYnNTQ2OwEyFgEVFAYnIyImPQE0NjczMhYTFRQGKwEiJj0BNDY7ATIWAR4gFrIXHgEgFrIXHgEgFrIXHgEgFrIXHgFmIBayFx4BIBayFx7+nCAWshceASAWshceAWYgFrIXHgEgFrIXHgFmIBayFiAgFrIXHv6cIBayFx4BIBayFx4BZiAWshYgIBayFx4BIBayFiAgFrIXHppsFh4BIBVsFiABHgEGaxYgAR4XaxceASD+zWwWHgEgFWwWIAEeAiRrFiAgFmsWICD+zGsWIAEeF2sXHgEg/s1sFh4BIBVsFiABHgIkaxYgIBZrFiAg/sxrFiABHhdrFx4BIAEIaxYgIBZrFiAgAAAGAAD/+QPoAwsADwAfAC8APwBPAF8APEA5CwEHCgEGAwcGYAkBAwgBAgEDAmAFAQEAAAFUBQEBAQBYBAEAAQBMXltWU05LNTU1NTU1NTUzDAUdKyUVFAYHIyImJzU0NhczMhYTFRQGJyMiJic1NDY3MzIWARUUBgchIiYnNTQ2FyEyFgEVFAYrASImJzU0NjsBMhYBFRQGJyEiJic1NDY3ITIWExUUBiMhIiYnNTQ2MyEyFgEeIBayFx4BIBayFx4BIBayFx4BIBayFx4CyyAW/ekXHgEgFgIXFx79NyAWshceASAWshceAssgFv3pFx4BIBYCFxceASAW/ekXHgEgFgIXFx6abBYeASAVbBYgAR4BBmsWIAEeF2sXHgEg/s1sFh4BIBVsFiABHgIkaxYgIBZrFiAg/sxrFiABHhdrFx4BIAEIaxYgIBZrFiAgAAABAAD/5wO2AikAFAAZQBYNAQABAUcCAQEAAW8AAABmFBcSAwUXKwkBBiInASY0PwE2MhcJATYyHwEWFAOr/mIKHgr+YgsLXQoeCgEoASgLHAxcCwGP/mMLCwGdCx4KXAsL/tgBKAsLXAscAAABAAD/wAKYA0QAFAAttQEBAAEBR0uwHFBYQAsAAAEAcAABAQwBSRtACQABAAFvAAAAZlm0FxcCBRYrCQIWFA8BBiInASY0NwE2Mh8BFhQCjv7XASkKCl0LHAv+YgsLAZ4KHgpdCgKq/tj+1woeCl0KCgGfCh4KAZ4LC10KHgAAAAIAAP9qAcwDUgACAAUAEUAOAAABAG8AAQFmEhECBRYrGwEhEwMh5ub+NObmAcwDUv6U/YQBbgAACQAA/2oD6ANSAAMABwALAA8AEwAXABsAHwAjAH9AfA4IAgIZDxYJEwUDAAIDXhoRFwsUBQUFBFYQCgIEBAxIDAYCAAABVhgNFQcSBQEBDQFJICAcHBgYFBQQEAwMCAgEBAAAICMgIyIhHB8cHx4dGBsYGxoZFBcUFxYVEBMQExIRDA8MDw4NCAsICwoJBAcEBwYFAAMAAxEbBRUrFTUzFQM1MxUDNTMVEzUzFQM1MxUDNTMVEzUzFQM1MxUDNTMV+vr6+vp9+vr6+vp9+vr6+vqW+voBd/r6AXf6+v0S+voBd/r6AXf6+v0S+voBd/r6AXf6+gAAAAAFAAD/iAOsAzQAQwBMAFUAXgBnAHJAbzwzAgUKGg8CAQUrIhkQCQAGCAEDRwAKCwULCgVtDwwCCAEJAQgJbQAGAAsKBgtgBwEFAwEBCAUBYBAODQMJAAAJVBAODQMJCQBYBAICAAkATGBfZGNfZ2BnXVxZWFRTUE9LShU2FjcYNhY2FBEFHSslFhUUBiImNTQ3NTQrASInFRYVFAYiJjU0NzUGKwEiDgEdARYVFAYiJjU0NzU0NjsBMj0BJjU0NjIWFRQHFRQ7ATIWFQU0JiIGFBYyNhMUFjI2NCYiBhM0JiIGFBYyNgUyNjQmIgYUFgNkSEZkRkhMZCwiSEZkRkgeLmQiJgZIRmRGSFZYZExIRmRGSE5kVlb9Wio4KCg4KtQoOCoqOCiKKjgoKDgqARgcKio4KChwIk4yRkYyTiJyTgzMIk4yRkYyTiLMDCYcDHIiTjJGRjJOInJAbDSMIkwyRkYyTCKMNGxA4h4oKDooKALYHCgoOigo/SYeKCg6KCgoKDooKDooAAIAAP9pA+gDUQAZADIAkUALGwgCAQUHAQABAkdLsBtQWEAzAAMCCQIDZQAHAAYGB2UACQAFAQkFYAABAAAHAQBgAAICBFgABAQMSAAGBghZAAgIDQhJG0A1AAMCCQIDCW0ABwAGAAcGbQAJAAUBCQVgAAEAAAcBAGAAAgIEWAAEBAxIAAYGCFkACAgNCElZQA4yMBISJSQSEiUjJAoFHSsBFA8BBiMiJzcWMzI/ATY0JgciBgcjNzYyFgUHJiMiDwEGFBYXMjY3MwcGIiY0PwE2MzID6E6vTm9hSnMaHiwfrx88LRkwCe6EUNqc/n1zGh4sH68fPisZMgfuhFDanE6vTm9hAkdwTLBOP3MRH7AdWT4BGBaBTpzHcxEfsB1ZPAEYFoFOnN5MsE4AAAMAAP9qBOIDUwAPABwAMgBQQE0JAQIAAQACAW0GCgIEAQUBBAVtAAUHAQUHawgBAAABBAABYAADAwxIAAcHDQdJHh0REAIALCkjISAfHTIeMhcWEBwRHAoHAA8CDwsFFCsBISIGHQEUFjMhMjY9ATQmBTI+ATQuASIOARQeARcjBiInIyIOAR0BFBYzITI2PQE0LgEEw/6JDRISDQF3DRIS/OZEc0NDc4hzQ0Nz8yFFkkYgR3lHNycCryc3R3gBvBINPw0SEg0/DRJeQ3OIc0NDc4hzQz4gIEd5R1EnNzcnUUd5RwAAAAACAAD/agNsA1MADAAiAD5AOwYBAAECAQACbQQHAgIDAQIDawADBQEDBWsAAQEMSAAFBQ0FSQ4NAQAcGRMREA8NIg4iBwYADAEMCAUUKwEyPgE0LgEiDgEUHgEXIwYiJyMiDgEdARQWMyEyNj0BNC4BAbZEc0NDc4hzQ0Nz8yFFkkYgR3lHNycCryc3R3gBXkNziHNDQ3OIc0M+ICBHeUdRJzc3J1FHeUcAAAAABv///2oELwNSABEAMgA7AEQAVgBfAG9AbE8OAgMCAUcACwkICQsIbRABCAIJCAJrDwECAwkCA2sHAQUAAQAFAW0MCgIBBgABBmsABgQABgRrDgEDDQEABQMAYBEBCQkMSAAEBA0ESV5dWllWVFJQS0pJR0NCPz46ORkVFBk3IxMhEBIFHSsBBgcjIiY3NDMyHgE3MjcGFRQBFAYjISImJzQ+BTMyHgI+AT8BNjcyHgQXARQGIiY0NjIWARQGLgE+AhYFFAYnIyYnNjU0JxYzMj4BFzInFAYiJjQ2MhYBS1o6Sy1AAUUEKkIhJiUDAoNSQ/4YRFABBAwQICY6IQYkLkhQRhkpEAgiOCYgEA4B/cZUdlRUdlQBiX6wgAJ8tHoBQz4uSzlaLQMlJSFEKARFR1R2VFR2VAFeA0QsLMUWGgENFRBO/ltCTk5CHjhCODQmFhgcGgIWEBoKAhYmNDhCHAKPO1RUdlRU/u9ZfgJ6tngGhNMrLgFEA0FOEBUNGBgBjztUVHZUVAACAAD/agPoA1IADwAiAFxLsBVQWEAdBQEAAwBvAAMBA28AAQICAWMGAQICBFkABAQNBEkbQBwFAQADAG8AAwEDbwABAgFvBgECAgRZAAQEDQRJWUAVERABAB8cFxUQIhEiCQYADwEOBwUUKwEyFhURFAYjISImNRE0NjMRIi4BNREjIgYVERQWMyEyNj0BA4onNzcn/c4nNzcnKkgqXic3NycCMic3A1I3J/3OJzc3JwIyJzf81CpIKgGWNyf9zic3NydeAAAAAAMAAP+oA+gDFAA4AEgAWgBYQFUADgoLCg4LbQMBAQQBAAoBAGAAAgAKDgIKYAALAA0MCw1gCQEFBwYFVAAMAAcGDAdeCQEFBQZYCAEGBQZMWFZTUU5LR0Q/PDg2MxM1ISUzEzUhDwUdKwE1MzI2PQE0JisBIgYdASE1NCYrASIGHQEUFjsBESMiBh0BFBY7ATI2PQEhFRQWOwEyNj0BNCYrAQERNDYzITIWFREUBiMhIiYFFAYjISImPQEzMjY9ATMyFhUDqicKDQ0KTwkO/RINCk8JDg4JKCgJDg4JTwoNAu4OCU8KDQ0KJ/0SDQoBSAoODgr+uAoNAnEOCv64Cg2MFBukCg4CWD8NCk4KDg4KJycKDg4KTgoN/Y8OCk4KDg4KJycKDg4KTgoOAREBCgoNDQr+9goNDbIJDg4JZhwTjQ4KAAMAAP96AUkDQwAMABkAJgA0QDEAAwIDbwACAAJvBgEAAQBvAAEFAW8ABQQFbwAEBGYBACQjHh0XFhEQBwYADAEMBwUUKxMyHgEUDgEiLgE0PgEnFB4BMj4BNC4BIg4BERQeATI+ATQuASIOAbwmQCYmQExBJiZBZyZBTEElJkBMQSYmQUxBJSZATEEmAesmQUxBJiZBTEEmyyZBJiZBTEElJUH9KiZBJSVBTEEmJkEABgAA/6gE4wMTAEMATABZAHEAlgCmAKdApGUWDgMCBBgMAgYCHgEJASICAggJhIJAJAQACHRyOjgwLgYHDAZHAAUDBW8ABAMCAwQCbQ8BBgILAgYLbQABCwkLAQltAAkICwkIawAIAAsIAGsNAQAMCwAMawADDgECBgMCYAALAAwHCwxgAAcKCgdUAAcHClgACgcKTFpaTk1FRKSinJmUkoyKiYd7eVpxWnFsa2NhVFNNWU5ZSUhETEVMEAUUKyU2Jzc+AScmJy4BDwEmJzU0JyYHBh0BBgcnJgYHBgcGFh8BBhcHDgEXFhceAT8BFhcVFBcWNzY9ATY3FxY2NzY3NiYnBSImNDYyFhQGATI+ATQuASIOARQeAQUyNzM2Nz4BMzIfATc2NTQuASIOARQeAQEmLwEHBgcGIyInJicmNzY3MTUnJicHIicjIg4BHQEUFjMhJjUBLgErASIOAR0BFBY7AT4BBKgJCTMEBAIULQMKBDMfKQs/QgsoIDMECgMtFAEDBDMHBzMEAwEULQMKBDMgKAs/QgspHzMFCQMtFAEDBP7uKDc4Tjg4/MwhOiIiOkI6IiI5AdcCBAUYLwsdEBYRDwUWO2R4ZDs7ZAEKBAYEAQ8IDg8hGDcXDRwOFQ8KChNEQhA9Zz03JwHzDP4TEi0ZfSI5IiUagApNtyoqHQIJBUEvBAIDHRsPOgsDDw8ECjoPGx0DAgQvQQQKAh0qKh0CCgRCLgQBAh0bDzoKBA4OAws6DxsdAgEELkIECgIYOE44OE44ARsiOUQ5IiI6QjoiPwFANAsNCgkDLy87ZTo6ZXdkO/6EAQUCAQkDBhg8TCofDwoQCQUKASA9Zz05JzcSFgFqERMiOSI+GiVFcQAC////aQNsA1MAGQAjADNAMAAFAwQDBQRtAgYCAAADBQADYQABAQxIAAQEDQRJAQAjIh8cFBEMCgcEABkBGQcFFCsBIycuASsBIgYPASMiBh0BFBYzITI2PQE0JgEeATMhMjY3EyEDTOsSBhcN3w0XBhLrDRISDQMtDRIS/Q8CNyUB4CU2Air9EgMUJAwODgwkEw0+DRISDT4NE/yuJTMzJQKWAAQAAP9qA+gDUgAFAAsAEQAXAERAQQoBAwQABAMAbQgBAAIEAAJrCQEEBAVWDAsCBQUMSAYBAgIBVgcBAQENAUkSEhIXEhcWFRQTEREREREREREQDQUdKzcjESE1IwMzNTM1IQEjFSERIwMVMxUzEY+PAWXWj4/W/psDWdYBZY/W1o/P/puPAfTWj/ynjwFlAoOP1gFlAAAABgAA/6gCcQMUAA8AHwAvAD8ATwBfAGVAYg8GDAMABwEBAgABYBAIDQMCCQEDBAIDYBEKDgMEBQUEVBEKDgMEBAVYCwEFBAVMUlBCQDIwIiASEAIAWldQX1JfSkdAT0JPOjcwPzI/KicgLyIvGhcQHxIfCgcADwIPEgUUKxMjIgYdARQWOwEyNj0BNCYDIyIGHQEUFjsBMjY9ATQmAyMiBh0BFBY7ATI2PQE0JgEjIgYdARQWOwEyNj0BNCYDIyIGHQEUFjsBMjY9ATQmAyMiBh0BFBY7ATI2PQE0Jrx9GiUlGn0aJCQafRolJRp9GiQkGn0aJSUafRokJAFdfRolJRp9GiQkGn0aJSUafRokJBp9GiUlGn0aJCQDFCUafRokJRl9GiX+xyQafRolJRp9GiT+yCUafRolJRp9GiUCcSUafRokJRl9GiX+xyQafRolJRp9GiT+yCUafRolJRp9GiUAAAAIAAD/agTiA1IAEAAZACkAMgA7AEQATQBWAIVAggUBBQIBRxABAAwHDAAHbRUBDA8LAgcGDAdgFg4UChIFBgkBAwIGA2ATCBEDAgAFAQIFYAANDQRYAAQEDEgAAQENAUlPTkZFPTw0MysqEhEBAFNSTlZPVkpJRU1GTUFAPEQ9RDg3Mzs0Oy8uKjIrMiUkHRwWFREZEhkLCAAQARAXBRQrASMWBgcBFRQWMyEyNjURNCYBIiY0NjIWFAYDASYiBwEGFBcBFjI3ATY0BSImNDYyFhQGFyImNDYyFhQGJyImNDYyFhQGJyImNDYyFhQGFyImNDYyFhQGBIToExEj/vY3JwG1Jzc3/v8THBwmGxtu/qocTxz+qhwcAVYcTxwBVhz9URMcHCYbG+cTHBwmGxsTExwcJhsbExMcHCYbG+cTHBwmGxsB2yxfI/71Wic3NycBtSc3/pkcJhsbJhwBbAFWHBz+qhxPHP6qHBwBVhxPVhwmGxsmHPocJhsbJhz6HCYbGyYc+hwmGxsmHPocJhsbJhwAAAX////5A1kCxAAIABEAIQArAEEASkBHEwEBBAkAAgABGwEFAANHAAkABwYJB2AABgAEAQYEYAMBAQIBAAUBAGAABQgIBVQABQUIWAAIBQhMPTo3IxMmJRMUExIKBR0rJRQGIiY+AR4BFxQGIiY+AR4BFzU0JichIgYHFRQWFyEyNgEhAy4BIyEiBgcBFRQGIyEiJjc1NDcTPgEXITIWFxMWAkQaJBwCGCgWkRokHAIYKBZBDAb9WQcKAQwGAqcHCv1SApNYAg4H/ksHDgICnjQl/VkkNgEJbgk0HgG1HzIKbgmrEhoaJBwCGBQSGhokHAIYbbMHCgEMBrMHCgEMARIBDQcKCgf+mrMlNDQlsw4cAVIdJgEkHv6uHAAABgAA//kD6AMLAAMABwALABsAKwA7AF9AXCwBBQs0AQoEHAEDCRQBBgAERwALAAUECwVeAAQACgkECmAACQADAgkDXgACAAgHAghgAAcAAQAHAV4AAAYGAFIAAAAGWAAGAAZMOjcyLyooJiYlEREREREQDAUdKyUhNSEnITUhJTM1IwEVFAYHISImJzU0NhchMhYTFRQGJyEiJic1NDY3ITIWExUUBiMhIiYnNTQ2MyEyFgI7AWb+mtYCPP3EAWXX1wEeFg78YA8UARYOA6APFAEWDvxgDxQBFg4DoA8UARYO/GAPFAEWDgOgDxRASNZH10f96I4PFAEWDo4PFgEUAQ6PDhYBFA+PDxQBFgEQjw4WFg6PDhYWAAH/+f+xAxgCwwAUABhAFQ4DAgABAUcAAQABbwAAAGY4JwIFFisBFgcBERQHBiMiLwEmNREBJjYzITIDDwkR/u0WBwcPCo8K/u0SExgCyhcCrRYR/u3+YhcKAwuPCw4BDwETESwAAAAABQAA/2oD6ANSAB8AIgAlADMAPABsQGkjAQAGHQEJACcgAgcFA0cMAQAACQUACV4ABQAHBAUHYAAEAAoIBApgAAgAAgsIAmAABgYDWAADAwxIDQELCwFYAAEBDQFJNDQBADQ8NDw7OTY1MC8uLCkoJSQiIRoXDgwJBgAfAR4OBRQrATIWFxEUBgchIiYnNSEiJicRNDY/AT4BOwEyFhcVNjMPATMBBzMXNzUjFRQGByMRITU0NgERIxUUBicjEQOyFx4BIBb96RceAf7RFx4BFhDkDzYW6BceASYhR6en/punp22w1h4X6QEeFgIm1x4X6AJ8IBb9WhceASAWoCAWAXcWNg/kEBYgFrcXd6cBfafCsOnpFh4B/puPFjb+TgKD6BYgAf6aAAAGAAD/1APpAucACAARACEAKgA6AEoAX0BcRDw7AwoLNCwCCAkbEwIEBQNHAAsACgYLCl4ABwAGAwcGYAAJAAgCCQhgAAMAAgEDAmAAAQUAAVQABQAEAAUEXgABAQBYAAABAExIRkA/ODYlExUXFhMUExIMBR0rNxQGLgE0PgEWNRQGIiY0NjIWARUUBichIiY9ATQ2NyEyFgEUBiImNDYyFgEVFAYjISImPQE0NjMhMhYDFRQGByEiJj0BNDYzITIW1j5aPj5aPj5aPj5aPgMSCgj9WggKCggCpgcM/O0+Wj4+Wj4DEgoI/VoICgoIAqYHDAEKCP1aCAoKCAKmBwxALEACPFw8AkDyLT4+Wj4+/utrBwwBCghrBwoBDAIALT4+Wj4+/utsBwoKB2wHCgoBFmsHCgEMBmsICgoAAv///7ED6QLDABkAOAAtQCoJAAICAwFHAAMCA28AAgECbwABAAABVAABAQBYAAABAEw3NCYkOjMEBRYrAREUBgchIiY3ERYXFhceAjczMj4BNzY3NjcUBgcGDwEOAicjIiYvAS4BLwEmJy4BJzQ2MyEyFgPoNCX8yiQ2ARkfykwgJkQbAhxCKB9ftyAYNinSNDUMIh4NAgweER4NIgaTYBIjPAEuKwM2JDYBxv5FJTQBNiQBuxsWiTcYGhwBGhwXRHwWvyxQHZIjJwkSDAEKChIIHANlQg4XUiQrOjQAAAABAAD/sQPoAwsAVQBOQEsADAsMbw0BCwoLbw8JBwUDBQECAAIBAG0IBAIAAG4OAQoCAgpUDgEKCgJWBgECCgJKVFJPTUxKRUI9Ozo4NTM1IRElNSERJTMQBR0rJRUUBisBIiY9ATQ2FzM1IRUzMhYXFRQGKwEiJic1NDYXMzUhFTMyFhcVFAYrASImJzU0NhczNTQ2FyE1IyImJzU0NjsBMhYXFRQGByMVITIWBxUzMhYD6CAWshYgIBY1/uM1Fx4BIBayFx4BIBY1/uM1Fx4BIBayFx4BIBY1Kh4BHTUXHgEgFrIXHgEgFjUBHR0sATUXHpqzFiAgFrMWIAFrax4XsxYgIBazFiABa2seF7MWICAWsxYgAWsdLAFrIBWzFiAgFrMWHgFrKh5rHgAC//3/sQNfAwsADAAZACtAKAADBAEAAQMAYAABAgIBVAABAQJYAAIBAkwBABcWERAHBgAMAQwFBRQrASIOAh4BMj4BLgIBFA4BIi4CPgEyHgEBrVOMUAJUiKqGVgROjgFbcsboyG4Gerz0un4CjlKMpIxSUoykjFL+0HXEdHTE6sR0dMQAAAAAAwAA/2oDoQMLAAIABQA3AEtASCMBBgczHgIBBgMCAgABBwECAAwBAwIFRwkBBwYHbwgBBgUBAQAGAV4KAQAEAQIDAAJgAAMDDQNJNTQvLhQjJhQUIyQTEAsFHSslIREJASEBFRQGKwEVFAYrASImPQEhIiY1ESMiJj0BNDY7ATU0NjsBMhYdASE3NjIWFA8BETMyFgE3AUz+mwFM/rQCgwoIfQoIawgK/h4ICn0ICgoIfQoIawgKAduJBg4LBYp9CAqIAUz+zQFM/olrCAp9CAoKCH0KCAHiCghrCAp9CAoKCH2KBQsOBon+JQoAAAAAAwAAAAADEgHtAA8AHwAvACJAHwUDAgEAAAFUBQMCAQEAWAQCAgABAEw1NTU1NTMGBRorExUUBicjIiYnNTQ2NzMyFgUVFAYnIyImNzU0NjczMhYFFRQGJyMiJj0BNDY3MzIW1h4XaxceASAWaxYgAR0gFmsWIAEeF2sXHgEfIBZrFiAgFmsXHgG3axYgAR4XaxceASAWaxYgAR4XaxceASAWaxYgAR4XaxceASAAAAADAAD/+QDXAwsADwAfAC8ALEApAAUABAMFBGAAAwACAQMCYAABAAABVAABAQBYAAABAEw1NTU1NTMGBRorNxUUBgcjIiYnNTQ2FzMyFgMVFAYnIyImJzU0NjczMhYDFRQGKwEiJic1NDY7ATIW1h4XaxceASAWaxYgAR4XaxceASAWaxYgAR4XaxceASAWaxYgmmwWHgEgFWwWIAEeAQZrFiABHhdrFx4BIAEIaxYgIBZrFiAgAAAABAAA/2oDnwNSAAoAIgA+AE4BIkAPFwEAAzQsAgYIJgEBCQNHS7ATUFhARQAHBgIGB2UEAQIKBgIKaxMBCgkJCmMAAAANDAANXhQSEA4EDA8BCwgMC14ACAAGBwgGXhEBAwMMSAAJCQFZBQEBAQ0BSRtLsBRQWEBGAAcGAgYHZQQBAgoGAgprEwEKCQYKCWsAAAANDAANXhQSEA4EDA8BCwgMC14ACAAGBwgGXhEBAwMMSAAJCQFZBQEBAQ0BSRtARwAHBgIGBwJtBAECCgYCCmsTAQoJBgoJawAAAA0MAA1eFBIQDgQMDwELCAwLXgAIAAYHCAZeEQEDAwxIAAkJAVkFAQEBDQFJWVlAKD8/IyM/Tj9OTUxLSklIR0ZFRENCQUAjPiM+PTsRERkUFCMkHhAVBR0rATMvASY1Iw8BBgcBFA8BBiIvASY2OwERNDY7ATIWFREzMhYFFSE1EzY/ATUjBisBFSM1IRUDBg8BFTc2OwE1ExUjNTMnIwczFSM1MxMzEwKZYigGAgIBAgID/toGsgUOBrMICA1rCghrCAprCAoB0v66zgcFBggGCoJDAT3OBAgGCAULi3WhKhqIGiqgJ4BbgAJuehoJAgsKCgb9RgYHsgUFswkVAwAICgoI/QAKSoIyAScLBQUBAkCAMv7YBAoHAQECQgH1PDxQUDw8AXH+jwAAAAUAAP9qA+gDUgAXACcANwBHAFcAXEBZUUkMAwoCQTkCCAkxKQIGByEZAgAFBEcDAQEGBQYBBW0ACQAIBwkIXgAHAAYBBwZgAAoKAlgLAQICDEgABQUAWAQBAAANAElVU01LRUMXJiYmJhQjJBQMBR0rJRQPAQYiLwEmNjsBETQ2OwEyFhURMzIWBRUUBiMhIiY9ATQ2MyEyFgMVFAYjISImPQE0NjMhMhYDFRQGByMiJj0BNDY7ATIWAxUUBisBIiY9ATQ2OwEyFgGbBrIFDgazCAgNawoIawgKawgKAk0KCP4wCAoKCAHQCAprCgj+mwgKCggBZQgKawoI+ggKCgj6CAprCgiPCAoKCI8ICi4GB7IFBbMJFQMACAoKCP0ACk9rCAoKCGsICgoBFmsICgoIawgKCgEVawcKAQwGawgKCgEWawgKCghrCAoKAAAAAAUAAP9qA+gDUgAPACcANwBHAFcAXEBZUUkcAwoEQTkCCAkxKQIGBwkBAgABBEcFAQMGAQYDAW0ACQAIBwkIXgAHAAYDBwZgAAoKBFgLAQQEDEgAAQEAWAIBAAANAElVU01LRUMXJiYUIyQXJiMMBR0rBRUUBisBIiY9ATQ2OwEyFiUUDwEGIi8BJjY7ARE0NjsBMhYVETMyFiUVFAYrASImPQE0NjsBMhYTFRQGByEiJj0BNDYzITIWExUUBiMhIiY9ATQ2MyEyFgKnCgiPCAoKCI8ICv70BrIFDgazCAgNawoIawgKawgKAXcKCPoICgoI+ggKawoI/psICgoIAWUICmsKCP4wCAoKCAHQCAoZawgKCghrCAoKPwYHsgUFswkVAwAICgoI/QAKz2sICgoIawgKCgEVawcKAQwGawgKCgEWawgKCghrCAoKAAAAAAQAAP9qAz4DUgAKACIAQABSAGJAX09OSUhGFwYLBDUBCAEuAQcILQECBwRHDg0CCwAKCQsKXgAJAAABCQBgBQMCAQAIBwEIYAwBBAQMSAAHBwJYBgECAg0CSUFBQVJBUlFQRURDQj89JScoFCMkFiMiDwUdKyU0JiciBhQWMzI2BRQPAQYiLwEmNjsBETQ2OwEyFhURMzIWJRQOAyMiJyYnNxYXFjMyNjcjDgEjIiY+ATMyFgMVITUzNTQ3NSMHBg8BJzczEQLvMCIdIigmHCj+qwayBQ4GswgIDWsKCGsICmsICgGiDiAsQiYjGQ4KFgkIFRUvOAkBCy4YO0wBUD1FXBH++l0BAgMFCiMta0R1JDoBKj4sHjAGB7IFBbMJFQMACAoKCP0ACh8jQj4sHAkEBD8EAgdCMA0QUHNSagE4QED8BwIJBwcKIDBn/pMAAAEAAAAAA8QCOAAWAB5AGwwBAAEBRwABAAABVAABAQBWAAABAEomFwIFFisBFA8BBiY9ASEiJj0BNDYzITU0Nh8BFgPEBdcIFv1ICAoKCAK4FgjXBQFgCAbFCAkMfQoHbAcKfQwKCMMGAAAAAAP//f+xA18DCwAIABUAIgA8QDkAAQIAAgEAbQAAAwIAA2sABQYBAgEFAmAAAwQEA1QAAwMEWAAEAwRMCgkgHxoZEA8JFQoVExIHBRYrARQGIi4BNjIWJyIOAh4BMj4BLgIBFA4BIi4CPgEyHgECO1J4UgJWdFaQU4xQAlSIqoZWBE6OAVtyxujIbgZ6vPS6fgFeO1RUdlRU9VKMpIxSUoykjFL+0HXEdHTE6sR0dMQABQAA/2oDWQNSABMAGgAjACoAMwBbQFgUAQIEKgEHCCkoJyQEBgcDRwAGBwUHBgVtAAIAAwgCA2AACAoBBwYIB2AABAQBWAABAQxICQEFBQBYAAAADQBJLCsbGzAvKzMsMyYlGyMbIxMmFDU2CwUZKwEeARURFAYHISImJxE0NjchMhYXBxUzJi8BJhMRIyImJzUhESUVITU3FzcFIiY0NjIWFAYDMxAWHhf9EhceASAWAfQWNg9K0gUHrwbG6BceAf5TAoP9xWtH1/7iLT4+Wj4+An4QNBj9fhceASAWA3wXHgEWECbSEQavB/ywAjwgFen8pvqya2tH1kc+Wj4+Wj4AAAAG//7/agPqA1IAEAAZACEAKgAzADsAbkBrGBMCAwIXFAIHAzk4NR8eGwYGByglAgUGKSQCBAUFRwADAAcGAwdgCwEGAAUEBgVgCQECAgBYCAEAAAxICgEEBAFYAAEBDQFJLCsjIhIRAQAwLyszLDMnJiIqIyoWFREZEhkJCAAQARAMBRQrATIeAw4CIi4CPgMXIgcXNjIXNyYBNyY0NycGFAEyNycGIicHFjcyNi4BDgIWJRc2NCcHFhQB9Ga4iEwEVIDAxMCAVARMiLhmal9sLl4ubWD+HGwQEGwzAa1qYG0uXi5sX2pZfgJ6tngGhAFjbDMzbBADUlCEvMi8hFBQhLzIvIRQRzNsEBBsM/2KbC5eLm1g1P69M2wQEGwz136wgAR4uHZ1bF/UYG0uXgAAA/////YEdwLDABAAIQA2ACdAJAAFAgEAAQUAYAMBAQQEAVQDAQEBBFgABAEETDc4JSgXFAYFGisBNC4CIg4CFB4CMj4CJTQuAisBHgEOAQczMj4CNxQOAichIi4DPgI3ITIeAgKDLkxqdGpMLi5ManRqTC4BrCxOaDvYQ04CSkXYOmpMLkc6XoZH/lNIhGA4AjxciEYBrUiEYDgBXjpqTC4uTGp0akwuLkxqOjpqTC4ylqyWMi5MajpIhlw+AzhigJaAZDQCOGCEAAAAAgAA//cEeALDABQAJQAqQCcAAAADAgADYAQBAgEBAlQEAQICAVgAAQIBTBYVHh0VJRYlNzQFBRYrETQ+AjMhMh4DDgInISIuAgUyPgIuAyIOAx4COl6GRwGtSIRgOAI8XIhG/lNIhGA4AxE6akwuAipQZnhmUCoEMkhuAV5JhGA4OGCEkoRePAI4YoDTLkxqdGpMLi5ManRqTC4AAv///7EELwMLAA8AMwA/QDwJCAEABAEAIxsCBAMCRwAHAAABBwBgAAEGAQIDAQJgBQEDBAQDVAUBAwMEWAAEAwRMNSEmJhEmJiMIBRwrJRE0JiMhIgYHERQWMyEyNhMRFAYHIRUzMhYdARQGIyEiJj0BNDY7ATUhIiY3ETQ2NyEyFgPoCgj8gwcKAQwGA30HDEY0Jf5lxQgKCgj+MAgKCgjE/mUkNgE0JQN9JTSaAhcICgoI/ekICgoCH/3pJTQBRwoIJAgKCggkCApHNiQCFyU0ATYAAAAABP///7EELwMLAAgADwAfAC8AVUBSHRQCAQMPAQABDg0MCQQCABwVAgQCBEcAAgAEAAIEbQAGBwEDAQYDYAABAAACAQBgAAQFBQRUAAQEBVgABQQFTBEQLismIxkXEB8RHxMTEggFFysBFA4BJjQ2HgEBFSE1NxcBJSEiBgcRFBY3ITI2JxE0JhcRFAYHISImNxE0NjchMhYBZT5aPj5aPgI8/O6yWgEdAR78gwcKAQwGA30HDAEKUTQl/IMkNgE0JQN9JTQCES0+AkJWQgQ6/vr6a7NZAR2hCgj9WgcMAQoIAqYIChL9WiU0ATYkAqYlNAE2AAMAAP/DA+gDQAASADcAcQCjQBhrAQELDQEAASkCAgUGMQEEBVYnAgMEBUdLsBdQWEAuAAYABQAGBW0ABQQABQRrAAIDAnAKAQEHAQAGAQBgCQEECAEDAgQDYAALCwwLSRtANgALAQtvAAYABQAGBW0ABQQABQRrAAIDAnAKAQEHAQAGAQBgCQEEAwMEVAkBBAQDWAgBAwQDTFlAF25tamlbWFJQQkA9PDQzMC8zFTYYDAUYKwEGBycuAycjIiY9ATQ2OwEyARQPAQYiJj0BIyIGLwEuBSc2Nx4ENzM1NDYyHwEWERQPAQYiJj0BIyIOAgcGBw4CDwEOAicjIiY9ATQ2OwEyPgI3Nj8BPgU3MzU0NjIfARYBdCIrFAgeGi4WfQgKCgh9iwLOBbMFDwowHh4aJw0uGCgaJA0hKwwQHhosGI8KDgeyBQWzBQ8KjxssIBoMEhkQGCQSKRc2QiZ9CAoKCH0bKiQUEBEaHAwkJC42QCiPCg4HsgUCRjRlKRAmGgwCCghrCAr9xQgFswUMBmsCAgMBCgoWFiYUNGQZHioUFAJrCAoFsgUB7AgFswUMBmsQIiIbIj0lMkQVLxoYFgEKCGsIChIgJBkjPT4aQDAsIgwDawgKBbIFAAAAAgAA//kCgwMLAAcAHwAqQCcFAwIAAQIBAAJtAAICbgAEAQEEVAAEBAFYAAEEAUwjEyU2ExAGBRorEyE1NCYOARcFERQGByEiJicRNDYXMzU0NjIWBxUzMhazAR1UdlQBAdAgFv3pFx4BIBYRlMyWAhIXHgGlbDtUAlA9of6+Fh4BIBUBQhYgAWxmlJRmbB4AAwAA/7oDmANJABwAOwBcANtAGjoBCQVXRwIABBMLAgEHA0dWKwIJRgYCBwJGS7AKUFhAMAAFAwkEBWUAAQcCAAFlAAkAAAcJAGAABAAHAQQHYQACAAYCBlwAAwMIWAAICAwDSRtLsCZQWEAyAAUDCQMFCW0AAQcCBwECbQAJAAAHCQBgAAQABwEEB2EAAgAGAgZcAAMDCFgACAgMA0kbQDgABQMJAwUJbQABBwIHAQJtAAgAAwUIA2AACQAABwkAYAAEAAcBBAdhAAIGBgJUAAICBlgABgIGTFlZQA5ZWBcXHCgXGBoYFAoFHSslNC8BJiIHFx4BHwEUBgciLgEvAQYUHwEWMj8BNgE0LwEmIg8BBhQfARYyNycuAjU0NhcyFh8BFh8BNgEUDwEGIi8BJjQ3JwYiLwEmND8BNjIfARYUBxc2Mh8BFgMtEHQQLhAWAwwBAiAWCA4OBBYTEHMPLRBSEP53D3MQLBBSEBB0Dy4RFwMKBB4XCQ4HCwQIChIB9DBSLocucy4xMTCHL3QvL1Ivhi9zLjExMIcvdC+rFw90EBIWAxAGDxceAQQKBBYRLg90Dw9REAGfFhBzEA9SDywQdA8RFwMODgkWIAEEBQgDCQsR/o5CL1EvMHMvhzAxMS90L4YuUi4vdC6IMDExL3QvAAADAAD/dgOgAwsACAAUAC4AWUAQJgEEAygnEgMCBAABAQADR0uwJlBYQBoAAwQDbwAEAgRvAAIAAm8AAAEAbwABAQ0BSRtAGAADBANvAAQCBG8AAgACbwAAAQBvAAEBZlm3HCMtGBIFBRkrNzQmDgIeATYlAQYiLwEmNDcBHgElFAcOASciJjQ2NzIWFxYUDwEVFzY/ATYyFtYUHhQCGBoYAWb+gxU6FjsVFQF8FlQBmQ0bgk9okpJoIEYZCQmjbAIqSyEPCh0OFgISIBIEGvb+gxQUPRQ7FgF8N1TdFiVLXgGS0JACFBAGEgdefTwCGS0UCgAAA//9/7EDXwMLABQAIQAuAEBAPQ4BAQIJAQIAAQJHAAIDAQMCAW0ABgADAgYDYAABAAAEAQBgAAQFBQRUAAQEBVgABQQFTBUWFRYjJiMHBRsrARUUBisBIiY9ATQ2OwE1NDY7ATIWFzQuAQ4DHgI+ATcUDgEiLgI+ATIeAQH0CgiyCAoKCH0KByQICuhSiqaMUAJUiKqGVntyxujIbgZ6vPS6fgIi+gcKCgckCArECAoKzFOKVAJQjqKOUAJUilN1xHR0xOrEdHTEAAAAA////7ADWQMQAAkAEgAjACpAJwsDAgMAAQFHAAMAAQADAWAAAAICAFQAAAACWAACAAJMFxkmJAQFGCsBNCcBFjMyPgIFASYjIg4BBxQlFA4CLgM+BB4CAtww/ltMWj5wUDL90gGlS1xTjFABAtxEcqCsonBGAkJ0nrCcdkABYFpK/lwyMlByaQGlMlCOUltbWKByRgJCdpy0mng+BkpspgAAAAABAAAAAQAAJtPBsV8PPPUACwPoAAAAANtbFQ0AAAAA21sVDf/w/2kE4wNWAAAACAACAAAAAAAAAAEAAANS/2oAAATi//D/6gTjAAEAAAAAAAAAAAAAAAAAAAByA+gAAAOgAAADoAAAA1kAAAQvAAAD6P//A1kAAANZ//0D0//9A+gAAAQvAAAD6AAAAxEAAAOg//8Cpv//A+kAAAPoAAAEsQAAA+j/+gNZAAAD6P//BC///wPC//wCgAAAA1kAAAQvAAAD6AAAA1n//gPoAAADhP/8A6AAAAOgAAADFQAAA+gAAAPo//gD6AAAAwz/+gOYAAADmP/8A6AAAAPoAAADmP/8A6AAAAOEAAAD6P/wAjAAAAOgAAADEQAAA1n//QMRAAADEQAAA1n//QOpAAAD6P/4A6D//wOg//8D6P/1A6wAAANZAAAD6AAAA6wAAAOgAAADoAAAA6D/+QR2AAADWQAAA+gAAAPoAAAD6AAAAsoAAAHMAAAD6AAAA6wAAAPoAAAE4gAAA2sAAAQv//8D6AAAA+gAAAF3AAAE4gAAA2v//wPoAAACcQAABOIAAANZ//8D6AAAAxH/+QPoAAAD6AAAA+j//wPoAAADWf/9A6AAAAMRAAAA1gAAA6AAAAPoAAAD6AAAA1kAAAPoAAADWf/9A1kAAAPo//4Edv//BHYAAAR2//8EL///A+gAAAKCAAADoAAAA6AAAANZ//0DWf//AAAAAABQALYBeAMcA6wEMASYBSgFoAYSBqIHZgf6CI4JVgnsCpgLQAvWDEYMngzcDXIN2A5KDr4PJg+mD+IQchCYENwRYhHSEiASdhNcE9YUxBT8FY4WEBZIFq4XXBfoGDIYmBjiGSoZfBnOGkQa1htAG6wcBhxwHSIdcB2cHlIfLB+OIB4hDCG0IeoiKiJGIsIjhiQcJJAk5iWqJg4msCcIKFAooijuKaAqair4K4QruCxMLOotWi3wLjQurC8EL2AwZDEMMbQyXDKSMuozbDQENGo0uDUkNZ42jDbUN844SDiuOP8AAAABAAAAcgDyAA8AAAAAAAIARABUAHMAAAC4C3AAAAAAAAAAEgDeAAEAAAAAAAAANQAAAAEAAAAAAAEACAA1AAEAAAAAAAIABwA9AAEAAAAAAAMACABEAAEAAAAAAAQACABMAAEAAAAAAAUACwBUAAEAAAAAAAYACABfAAEAAAAAAAoAKwBnAAEAAAAAAAsAEwCSAAMAAQQJAAAAagClAAMAAQQJAAEAEAEPAAMAAQQJAAIADgEfAAMAAQQJAAMAEAEtAAMAAQQJAAQAEAE9AAMAAQQJAAUAFgFNAAMAAQQJAAYAEAFjAAMAAQQJAAoAVgFzAAMAAQQJAAsAJgHJQ29weXJpZ2h0IChDKSAyMDIwIGJ5IG9yaWdpbmFsIGF1dGhvcnMgQCBmb250ZWxsby5jb21mb250ZWxsb1JlZ3VsYXJmb250ZWxsb2ZvbnRlbGxvVmVyc2lvbiAxLjBmb250ZWxsb0dlbmVyYXRlZCBieSBzdmcydHRmIGZyb20gRm9udGVsbG8gcHJvamVjdC5odHRwOi8vZm9udGVsbG8uY29tAEMAbwBwAHkAcgBpAGcAaAB0ACAAKABDACkAIAAyADAAMgAwACAAYgB5ACAAbwByAGkAZwBpAG4AYQBsACAAYQB1AHQAaABvAHIAcwAgAEAAIABmAG8AbgB0AGUAbABsAG8ALgBjAG8AbQBmAG8AbgB0AGUAbABsAG8AUgBlAGcAdQBsAGEAcgBmAG8AbgB0AGUAbABsAG8AZgBvAG4AdABlAGwAbABvAFYAZQByAHMAaQBvAG4AIAAxAC4AMABmAG8AbgB0AGUAbABsAG8ARwBlAG4AZQByAGEAdABlAGQAIABiAHkAIABzAHYAZwAyAHQAdABmACAAZgByAG8AbQAgAEYAbwBuAHQAZQBsAGwAbwAgAHAAcgBvAGoAZQBjAHQALgBoAHQAdABwADoALwAvAGYAbwBuAHQAZQBsAGwAbwAuAGMAbwBtAAAAAAIAAAAAAAAACgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAcgECAQMBBAEFAQYBBwEIAQkBCgELAQwBDQEOAQ8BEAERARIBEwEUARUBFgEXARgBGQEaARsBHAEdAR4BHwEgASEBIgEjASQBJQEmAScBKAEpASoBKwEsAS0BLgEvATABMQEyATMBNAE1ATYBNwE4ATkBOgE7ATwBPQE+AT8BQAFBAUIBQwFEAUUBRgFHAUgBSQFKAUsBTAFNAU4BTwFQAVEBUgFTAVQBVQFWAVcBWAFZAVoBWwFcAV0BXgFfAWABYQFiAWMBZAFlAWYBZwFoAWkBagFrAWwBbQFuAW8BcAFxAXIBcwAEc3RhcgpzdGFyLWVtcHR5A2NvZwdjb2ctYWx0BG1haWwGcGVuY2lsDHBsdXMtY2lyY2xlZANhc2wDZXllBHRhZ3MEY2hhdAV0cmFzaAZiYXNrZXQGcHV6emxlCGxhbmd1YWdlBnNpZ25hbAV1c2VycwV0b29scwlhcnJvd3MtY3cIZXhjaGFuZ2ULZm9sZGVyLW9wZW4FYnJ1c2gLZmxvdy1icmFuY2gEbWVudQRjb2RlCHVzZXItYWRkAmN3BWdyb3VwBGhvbWUJZXF1YWxpemVyBm1haWwtMQZzZWFyY2gEbW92ZQZ1cGxvYWQMdXBsb2FkLWNsb3VkA2tleQduZXR3b3JrDmluZm8tY2lyY2xlZC0xCGNhbGVuZGFyAm9rDGhlbHAtY2lyY2xlZAZsb2dvdXQEZmxhZwVzcGluNglob3VyZ2xhc3MFY2hlY2sLY2hlY2stZW1wdHkOY2FuY2VsLWNpcmNsZWQGY2FuY2VsBHBsdXMKb2stY2lyY2xlZAxoZWFydC1icm9rZW4IZG93bmxvYWQHem9vbS1pbgh6b29tLW91dAlhdHRlbnRpb24MYmFjay1pbi10aW1lA2NjdwdleWUtb2ZmBHVzZXIIbW9vbi1pbnYHc3VuLWludgRib29rCWNoYXJ0LWJhcgZmbG9wcHkCdGgHdGgtbGlzdAlkb3duLW9wZW4JbGVmdC1vcGVuC2Fycm93LWNvbWJvBHRoLTEJZmxvdy10cmVlBmxpbmstMQp1c2VyLW1pbnVzBnVzZXItMQd1c2Vycy0xBWNsb25lDG9iamVjdC1ncm91cAplbGxpcHNpcy12CXVzZXJzLWNvZwd0cmFzaC0xC3pvb20tc3F1YXJlE2dyaXAtdmVydGljYWwtc29saWQKZGljZS1zb2xpZANoZGQFdGFza3MGZmlsdGVyBGRvY3MLbGlzdC1idWxsZXQIbWFpbC1hbHQHc2l0ZW1hcAxjaXJjbGUtZW1wdHkEY3JvcAhlbGxpcHNpcw1lbGxpcHNpcy12ZXJ0DHNvcnQtbmFtZS11cAtzb3J0LWFsdC11cA1zb3J0LWFsdC1kb3duDnNvcnQtbnVtYmVyLXVwBXJpZ2h0C2RvdC1jaXJjbGVkCmZpbGUtaW1hZ2UIbGlmZWJ1b3kKdG9nZ2xlLW9mZgl0b2dnbGUtb24KdGVsZXZpc2lvbgdwaWN0dXJlB3NodWZmbGUEbG9jawRsaW5rBndyZW5jaAVjbG9jawVibG9jawAAAAEAAf//AA8AAAAAAAAAAAAAAAAAAAAAABgAGAAYABgDVv9pA1b/abAALCCwAFVYRVkgIEu4AA5RS7AGU1pYsDQbsChZYGYgilVYsAIlYbkIAAgAY2MjYhshIbAAWbAAQyNEsgABAENgQi2wASywIGBmLbACLCBkILDAULAEJlqyKAEKQ0VjRVJbWCEjIRuKWCCwUFBYIbBAWRsgsDhQWCGwOFlZILEBCkNFY0VhZLAoUFghsQEKQ0VjRSCwMFBYIbAwWRsgsMBQWCBmIIqKYSCwClBYYBsgsCBQWCGwCmAbILA2UFghsDZgG2BZWVkbsAErWVkjsABQWGVZWS2wAywgRSCwBCVhZCCwBUNQWLAFI0KwBiNCGyEhWbABYC2wBCwjISMhIGSxBWJCILAGI0KxAQpDRWOxAQpDsAFgRWOwAyohILAGQyCKIIqwASuxMAUlsAQmUVhgUBthUllYI1khILBAU1iwASsbIbBAWSOwAFBYZVktsAUssAdDK7IAAgBDYEItsAYssAcjQiMgsAAjQmGwAmJmsAFjsAFgsAUqLbAHLCAgRSCwC0NjuAQAYiCwAFBYsEBgWWawAWNgRLABYC2wCCyyBwsAQ0VCKiGyAAEAQ2BCLbAJLLAAQyNEsgABAENgQi2wCiwgIEUgsAErI7AAQ7AEJWAgRYojYSBkILAgUFghsAAbsDBQWLAgG7BAWVkjsABQWGVZsAMlI2FERLABYC2wCywgIEUgsAErI7AAQ7AEJWAgRYojYSBksCRQWLAAG7BAWSOwAFBYZVmwAyUjYUREsAFgLbAMLCCwACNCsgsKA0VYIRsjIVkqIS2wDSyxAgJFsGRhRC2wDiywAWAgILAMQ0qwAFBYILAMI0JZsA1DSrAAUlggsA0jQlktsA8sILAQYmawAWMguAQAY4ojYbAOQ2AgimAgsA4jQiMtsBAsS1RYsQRkRFkksA1lI3gtsBEsS1FYS1NYsQRkRFkbIVkksBNlI3gtsBIssQAPQ1VYsQ8PQ7ABYUKwDytZsABDsAIlQrEMAiVCsQ0CJUKwARYjILADJVBYsQEAQ2CwBCVCioogiiNhsA4qISOwAWEgiiNhsA4qIRuxAQBDYLACJUKwAiVhsA4qIVmwDENHsA1DR2CwAmIgsABQWLBAYFlmsAFjILALQ2O4BABiILAAUFiwQGBZZrABY2CxAAATI0SwAUOwAD6yAQEBQ2BCLbATLACxAAJFVFiwDyNCIEWwCyNCsAojsAFgQiBgsAFhtRAQAQAOAEJCimCxEgYrsHIrGyJZLbAULLEAEystsBUssQETKy2wFiyxAhMrLbAXLLEDEystsBgssQQTKy2wGSyxBRMrLbAaLLEGEystsBsssQcTKy2wHCyxCBMrLbAdLLEJEystsB4sALANK7EAAkVUWLAPI0IgRbALI0KwCiOwAWBCIGCwAWG1EBABAA4AQkKKYLESBiuwcisbIlktsB8ssQAeKy2wICyxAR4rLbAhLLECHistsCIssQMeKy2wIyyxBB4rLbAkLLEFHistsCUssQYeKy2wJiyxBx4rLbAnLLEIHistsCgssQkeKy2wKSwgPLABYC2wKiwgYLAQYCBDI7ABYEOwAiVhsAFgsCkqIS2wKyywKiuwKiotsCwsICBHICCwC0NjuAQAYiCwAFBYsEBgWWawAWNgI2E4IyCKVVggRyAgsAtDY7gEAGIgsABQWLBAYFlmsAFjYCNhOBshWS2wLSwAsQACRVRYsAEWsCwqsAEVMBsiWS2wLiwAsA0rsQACRVRYsAEWsCwqsAEVMBsiWS2wLywgNbABYC2wMCwAsAFFY7gEAGIgsABQWLBAYFlmsAFjsAErsAtDY7gEAGIgsABQWLBAYFlmsAFjsAErsAAWtAAAAAAARD4jOLEvARUqLbAxLCA8IEcgsAtDY7gEAGIgsABQWLBAYFlmsAFjYLAAQ2E4LbAyLC4XPC2wMywgPCBHILALQ2O4BABiILAAUFiwQGBZZrABY2CwAENhsAFDYzgtsDQssQIAFiUgLiBHsAAjQrACJUmKikcjRyNhIFhiGyFZsAEjQrIzAQEVFCotsDUssAAWsAQlsAQlRyNHI2GwCUMrZYouIyAgPIo4LbA2LLAAFrAEJbAEJSAuRyNHI2EgsAQjQrAJQysgsGBQWCCwQFFYswIgAyAbswImAxpZQkIjILAIQyCKI0cjRyNhI0ZgsARDsAJiILAAUFiwQGBZZrABY2AgsAErIIqKYSCwAkNgZCOwA0NhZFBYsAJDYRuwA0NgWbADJbACYiCwAFBYsEBgWWawAWNhIyAgsAQmI0ZhOBsjsAhDRrACJbAIQ0cjRyNhYCCwBEOwAmIgsABQWLBAYFlmsAFjYCMgsAErI7AEQ2CwASuwBSVhsAUlsAJiILAAUFiwQGBZZrABY7AEJmEgsAQlYGQjsAMlYGRQWCEbIyFZIyAgsAQmI0ZhOFktsDcssAAWICAgsAUmIC5HI0cjYSM8OC2wOCywABYgsAgjQiAgIEYjR7ABKyNhOC2wOSywABawAyWwAiVHI0cjYbAAVFguIDwjIRuwAiWwAiVHI0cjYSCwBSWwBCVHI0cjYbAGJbAFJUmwAiVhuQgACABjYyMgWGIbIVljuAQAYiCwAFBYsEBgWWawAWNgIy4jICA8ijgjIVktsDossAAWILAIQyAuRyNHI2EgYLAgYGawAmIgsABQWLBAYFlmsAFjIyAgPIo4LbA7LCMgLkawAiVGUlggPFkusSsBFCstsDwsIyAuRrACJUZQWCA8WS6xKwEUKy2wPSwjIC5GsAIlRlJYIDxZIyAuRrACJUZQWCA8WS6xKwEUKy2wPiywNSsjIC5GsAIlRlJYIDxZLrErARQrLbA/LLA2K4ogIDywBCNCijgjIC5GsAIlRlJYIDxZLrErARQrsARDLrArKy2wQCywABawBCWwBCYgLkcjRyNhsAlDKyMgPCAuIzixKwEUKy2wQSyxCAQlQrAAFrAEJbAEJSAuRyNHI2EgsAQjQrAJQysgsGBQWCCwQFFYswIgAyAbswImAxpZQkIjIEewBEOwAmIgsABQWLBAYFlmsAFjYCCwASsgiophILACQ2BkI7ADQ2FkUFiwAkNhG7ADQ2BZsAMlsAJiILAAUFiwQGBZZrABY2GwAiVGYTgjIDwjOBshICBGI0ewASsjYTghWbErARQrLbBCLLA1Ky6xKwEUKy2wQyywNishIyAgPLAEI0IjOLErARQrsARDLrArKy2wRCywABUgR7AAI0KyAAEBFRQTLrAxKi2wRSywABUgR7AAI0KyAAEBFRQTLrAxKi2wRiyxAAEUE7AyKi2wRyywNCotsEgssAAWRSMgLiBGiiNhOLErARQrLbBJLLAII0KwSCstsEossgAAQSstsEsssgABQSstsEwssgEAQSstsE0ssgEBQSstsE4ssgAAQistsE8ssgABQistsFAssgEAQistsFEssgEBQistsFIssgAAPistsFMssgABPistsFQssgEAPistsFUssgEBPistsFYssgAAQCstsFcssgABQCstsFgssgEAQCstsFkssgEBQCstsFossgAAQystsFsssgABQystsFwssgEAQystsF0ssgEBQystsF4ssgAAPystsF8ssgABPystsGAssgEAPystsGEssgEBPystsGIssDcrLrErARQrLbBjLLA3K7A7Ky2wZCywNyuwPCstsGUssAAWsDcrsD0rLbBmLLA4Ky6xKwEUKy2wZyywOCuwOystsGgssDgrsDwrLbBpLLA4K7A9Ky2waiywOSsusSsBFCstsGsssDkrsDsrLbBsLLA5K7A8Ky2wbSywOSuwPSstsG4ssDorLrErARQrLbBvLLA6K7A7Ky2wcCywOiuwPCstsHEssDorsD0rLbByLLMJBAIDRVghGyMhWUIrsAhlsAMkUHiwARUwLQBLuADIUlixAQGOWbABuQgACABjcLEABUKyAAEAKrEABUKzCgIBCCqxAAVCsw4AAQgqsQAGQroCwAABAAkqsQAHQroAQAABAAkqsQMARLEkAYhRWLBAiFixA2REsSYBiFFYugiAAAEEQIhjVFixAwBEWVlZWbMMAgEMKrgB/4WwBI2xAgBEAAA=') format('truetype'); } /* Chrome hack: SVG is rendered more smooth in Windozze. 100% magic, uncomment if you need it. */ /* Note, that will break hinting! In other OS-es font will be not as sharp as it could be */ @@ -19,7 +19,7 @@ @media screen and (-webkit-min-device-pixel-ratio:0) { @font-face { font-family: 'fontello'; - src: url('../font/fontello.svg?47325343#fontello') format('svg'); + src: url('../font/fontello.svg?74624895#fontello') format('svg'); } } */ @@ -28,7 +28,7 @@ font-family: "fontello"; font-style: normal; font-weight: normal; - speak: none; + speak: never; display: inline-block; text-decoration: inherit; @@ -40,7 +40,7 @@ /* For safety - reset parent styles, that can break glyph codes*/ font-variant: normal; text-transform: none; - + /* fix buttons height, for twitter bootstrap */ line-height: 1em; @@ -127,20 +127,38 @@ .icon-th-1:before { content: '\e838'; } /* 'î ¸' */ .icon-flow-tree:before { content: '\e839'; } /* 'î ¹' */ .icon-link-1:before { content: '\e83a'; } /* 'î º' */ +.icon-user-minus:before { content: '\e83b'; } /* 'î »' */ +.icon-user-1:before { content: '\e83c'; } /* 'î ¼' */ +.icon-users-1:before { content: '\e83d'; } /* 'î ½' */ +.icon-clone:before { content: '\e83e'; } /* 'î ¾' */ +.icon-object-group:before { content: '\e83f'; } /* 'î ¿' */ +.icon-ellipsis-v:before { content: '\e840'; } /* 'î¡€' */ +.icon-users-cog:before { content: '\e841'; } /* 'î¡' */ +.icon-trash-1:before { content: '\e842'; } /* 'î¡‚' */ +.icon-zoom-square:before { content: '\e843'; } /* '' */ +.icon-grip-vertical-solid:before { content: '\e844'; } /* 'î¡„' */ +.icon-dice-solid:before { content: '\e845'; } /* 'î¡…' */ .icon-hdd:before { content: '\f0a0'; } /* 'ï‚ ' */ .icon-tasks:before { content: '\f0ae'; } /* 'ï‚®' */ .icon-filter:before { content: '\f0b0'; } /* 'ï‚°' */ +.icon-docs:before { content: '\f0c5'; } /* '' */ +.icon-list-bullet:before { content: '\f0ca'; } /* '' */ .icon-mail-alt:before { content: '\f0e0'; } /* 'ïƒ ' */ .icon-sitemap:before { content: '\f0e8'; } /* '' */ .icon-circle-empty:before { content: '\f10c'; } /* '' */ .icon-crop:before { content: '\f125'; } /* 'ï„¥' */ +.icon-ellipsis:before { content: '\f141'; } /* 'ï…' */ +.icon-ellipsis-vert:before { content: '\f142'; } /* 'ï…‚' */ .icon-sort-name-up:before { content: '\f15d'; } /* 'ï…' */ .icon-sort-alt-up:before { content: '\f160'; } /* 'ï… ' */ .icon-sort-alt-down:before { content: '\f161'; } /* 'ï…¡' */ .icon-sort-number-up:before { content: '\f162'; } /* 'ï…¢' */ .icon-right:before { content: '\f178'; } /* 'ï…¸' */ .icon-dot-circled:before { content: '\f192'; } /* '' */ +.icon-file-image:before { content: '\f1c5'; } /* '' */ .icon-lifebuoy:before { content: '\f1cd'; } /* 'ï‡' */ +.icon-toggle-off:before { content: '\f204'; } /* '' */ +.icon-toggle-on:before { content: '\f205'; } /* '' */ .icon-television:before { content: '\f26c'; } /* '' */ .icon-picture:before { content: '🌄'; } /* '\1f304' */ .icon-shuffle:before { content: '🔀'; } /* '\1f500' */ diff --git a/admin/themes/default/fontello/css/fontello-ie7-codes.css b/admin/themes/default/fontello/css/fontello-ie7-codes.css index ae4586d4a..51fe1597a 100644 --- a/admin/themes/default/fontello/css/fontello-ie7-codes.css +++ b/admin/themes/default/fontello/css/fontello-ie7-codes.css @@ -72,20 +72,38 @@ .icon-th-1 { *zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = ' '); } .icon-flow-tree { *zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = ' '); } .icon-link-1 { *zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = ' '); } +.icon-user-minus { *zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = ' '); } +.icon-user-1 { *zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = ' '); } +.icon-users-1 { *zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = ' '); } +.icon-clone { *zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = ' '); } +.icon-object-group { *zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = ' '); } +.icon-ellipsis-v { *zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = ' '); } +.icon-users-cog { *zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = ' '); } +.icon-trash-1 { *zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = ' '); } +.icon-zoom-square { *zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = ' '); } +.icon-grip-vertical-solid { *zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = ' '); } +.icon-dice-solid { *zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = ' '); } .icon-hdd { *zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = ' '); } .icon-tasks { *zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = ' '); } .icon-filter { *zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = ' '); } +.icon-docs { *zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = ' '); } +.icon-list-bullet { *zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = ' '); } .icon-mail-alt { *zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = ' '); } .icon-sitemap { *zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = ' '); } .icon-circle-empty { *zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = ' '); } .icon-crop { *zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = ' '); } +.icon-ellipsis { *zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = ' '); } +.icon-ellipsis-vert { *zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = ' '); } .icon-sort-name-up { *zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = ' '); } .icon-sort-alt-up { *zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = ' '); } .icon-sort-alt-down { *zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = ' '); } .icon-sort-number-up { *zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = ' '); } .icon-right { *zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = ' '); } .icon-dot-circled { *zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = ' '); } +.icon-file-image { *zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = ' '); } .icon-lifebuoy { *zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = ' '); } +.icon-toggle-off { *zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = ' '); } +.icon-toggle-on { *zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = ' '); } .icon-television { *zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = ' '); } .icon-picture { *zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = '🌄 '); } .icon-shuffle { *zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = '🔀 '); } diff --git a/admin/themes/default/fontello/css/fontello-ie7.css b/admin/themes/default/fontello/css/fontello-ie7.css index 51623e835..e4ffeb760 100644 --- a/admin/themes/default/fontello/css/fontello-ie7.css +++ b/admin/themes/default/fontello/css/fontello-ie7.css @@ -83,20 +83,38 @@ .icon-th-1 { *zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = ' '); } .icon-flow-tree { *zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = ' '); } .icon-link-1 { *zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = ' '); } +.icon-user-minus { *zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = ' '); } +.icon-user-1 { *zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = ' '); } +.icon-users-1 { *zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = ' '); } +.icon-clone { *zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = ' '); } +.icon-object-group { *zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = ' '); } +.icon-ellipsis-v { *zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = ' '); } +.icon-users-cog { *zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = ' '); } +.icon-trash-1 { *zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = ' '); } +.icon-zoom-square { *zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = ' '); } +.icon-grip-vertical-solid { *zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = ' '); } +.icon-dice-solid { *zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = ' '); } .icon-hdd { *zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = ' '); } .icon-tasks { *zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = ' '); } .icon-filter { *zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = ' '); } +.icon-docs { *zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = ' '); } +.icon-list-bullet { *zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = ' '); } .icon-mail-alt { *zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = ' '); } .icon-sitemap { *zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = ' '); } .icon-circle-empty { *zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = ' '); } .icon-crop { *zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = ' '); } +.icon-ellipsis { *zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = ' '); } +.icon-ellipsis-vert { *zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = ' '); } .icon-sort-name-up { *zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = ' '); } .icon-sort-alt-up { *zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = ' '); } .icon-sort-alt-down { *zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = ' '); } .icon-sort-number-up { *zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = ' '); } .icon-right { *zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = ' '); } .icon-dot-circled { *zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = ' '); } +.icon-file-image { *zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = ' '); } .icon-lifebuoy { *zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = ' '); } +.icon-toggle-off { *zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = ' '); } +.icon-toggle-on { *zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = ' '); } .icon-television { *zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = ' '); } .icon-picture { *zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = '🌄 '); } .icon-shuffle { *zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = '🔀 '); } diff --git a/admin/themes/default/fontello/css/fontello.css b/admin/themes/default/fontello/css/fontello.css index 916def92e..60f65d3f6 100644 --- a/admin/themes/default/fontello/css/fontello.css +++ b/admin/themes/default/fontello/css/fontello.css @@ -2,12 +2,12 @@ @font-face { font-family: 'fontello'; - src: url('../font/fontello.eot?22756229'); - src: url('../font/fontello.eot?22756229#iefix') format('embedded-opentype'), - url('../font/fontello.woff2?22756229') format('woff2'), - url('../font/fontello.woff?22756229') format('woff'), - url('../font/fontello.ttf?22756229') format('truetype'), - url('../font/fontello.svg?22756229#fontello') format('svg'); + src: url('../font/fontello.eot?16615516'); + src: url('../font/fontello.eot?16615516#iefix') format('embedded-opentype'), + url('../font/fontello.woff2?16615516') format('woff2'), + url('../font/fontello.woff?16615516') format('woff'), + url('../font/fontello.ttf?16615516') format('truetype'), + url('../font/fontello.svg?16615516#fontello') format('svg'); font-weight: normal; font-style: normal; } @@ -17,7 +17,7 @@ @media screen and (-webkit-min-device-pixel-ratio:0) { @font-face { font-family: 'fontello'; - src: url('../font/fontello.svg?22756229#fontello') format('svg'); + src: url('../font/fontello.svg?16615516#fontello') format('svg'); } } */ @@ -26,7 +26,7 @@ font-family: "fontello"; font-style: normal; font-weight: normal; - speak: none; + speak: never; display: inline-block; text-decoration: inherit; @@ -130,20 +130,38 @@ .icon-th-1:before { content: '\e838'; } /* 'î ¸' */ .icon-flow-tree:before { content: '\e839'; } /* 'î ¹' */ .icon-link-1:before { content: '\e83a'; } /* 'î º' */ +.icon-user-minus:before { content: '\e83b'; } /* 'î »' */ +.icon-user-1:before { content: '\e83c'; } /* 'î ¼' */ +.icon-users-1:before { content: '\e83d'; } /* 'î ½' */ +.icon-clone:before { content: '\e83e'; } /* 'î ¾' */ +.icon-object-group:before { content: '\e83f'; } /* 'î ¿' */ +.icon-ellipsis-v:before { content: '\e840'; } /* 'î¡€' */ +.icon-users-cog:before { content: '\e841'; } /* 'î¡' */ +.icon-trash-1:before { content: '\e842'; } /* 'î¡‚' */ +.icon-zoom-square:before { content: '\e843'; } /* '' */ +.icon-grip-vertical-solid:before { content: '\e844'; } /* 'î¡„' */ +.icon-dice-solid:before { content: '\e845'; } /* 'î¡…' */ .icon-hdd:before { content: '\f0a0'; } /* 'ï‚ ' */ .icon-tasks:before { content: '\f0ae'; } /* 'ï‚®' */ .icon-filter:before { content: '\f0b0'; } /* 'ï‚°' */ +.icon-docs:before { content: '\f0c5'; } /* '' */ +.icon-list-bullet:before { content: '\f0ca'; } /* '' */ .icon-mail-alt:before { content: '\f0e0'; } /* 'ïƒ ' */ .icon-sitemap:before { content: '\f0e8'; } /* '' */ .icon-circle-empty:before { content: '\f10c'; } /* '' */ .icon-crop:before { content: '\f125'; } /* 'ï„¥' */ +.icon-ellipsis:before { content: '\f141'; } /* 'ï…' */ +.icon-ellipsis-vert:before { content: '\f142'; } /* 'ï…‚' */ .icon-sort-name-up:before { content: '\f15d'; } /* 'ï…' */ .icon-sort-alt-up:before { content: '\f160'; } /* 'ï… ' */ .icon-sort-alt-down:before { content: '\f161'; } /* 'ï…¡' */ .icon-sort-number-up:before { content: '\f162'; } /* 'ï…¢' */ .icon-right:before { content: '\f178'; } /* 'ï…¸' */ .icon-dot-circled:before { content: '\f192'; } /* '' */ +.icon-file-image:before { content: '\f1c5'; } /* '' */ .icon-lifebuoy:before { content: '\f1cd'; } /* 'ï‡' */ +.icon-toggle-off:before { content: '\f204'; } /* '' */ +.icon-toggle-on:before { content: '\f205'; } /* '' */ .icon-television:before { content: '\f26c'; } /* '' */ .icon-picture:before { content: '🌄'; } /* '\1f304' */ .icon-shuffle:before { content: '🔀'; } /* '\1f500' */ diff --git a/admin/themes/default/fontello/demo.html b/admin/themes/default/fontello/demo.html index 2984ce5a0..5f702f349 100644 --- a/admin/themes/default/fontello/demo.html +++ b/admin/themes/default/fontello/demo.html @@ -229,11 +229,11 @@ body { } @font-face { font-family: 'fontello'; - src: url('./font/fontello.eot?27953453'); - src: url('./font/fontello.eot?27953453#iefix') format('embedded-opentype'), - url('./font/fontello.woff?27953453') format('woff'), - url('./font/fontello.ttf?27953453') format('truetype'), - url('./font/fontello.svg?27953453#fontello') format('svg'); + src: url('./font/fontello.eot?43967480'); + src: url('./font/fontello.eot?43967480#iefix') format('embedded-opentype'), + url('./font/fontello.woff?43967480') format('woff'), + url('./font/fontello.ttf?43967480') format('truetype'), + url('./font/fontello.svg?43967480#fontello') format('svg'); font-weight: normal; font-style: normal; } @@ -244,7 +244,7 @@ body { font-family: "fontello"; font-style: normal; font-weight: normal; - speak: none; + speak: never; display: inline-block; text-decoration: inherit; @@ -407,37 +407,65 @@ body { icon-link-10xe83a + icon-user-minus0xe83b + icon-user-10xe83c + icon-users-10xe83d + + + icon-clone0xe83e + icon-object-group0xe83f + icon-ellipsis-v0xe840 + icon-users-cog0xe841 + + + icon-trash-10xe842 + icon-zoom-square0xe843 + icon-grip-vertical-solid0xe844 + icon-dice-solid0xe845 + + icon-hdd0xf0a0 icon-tasks0xf0ae icon-filter0xf0b0 + icon-docs0xf0c5 + icon-list-bullet0xf0ca icon-mail-alt0xf0e0 icon-sitemap0xf0e8 icon-circle-empty0xf10c - icon-crop0xf125 + icon-crop0xf125 + icon-ellipsis0xf141 + icon-ellipsis-vert0xf142 icon-sort-name-up0xf15d + + icon-sort-alt-up0xf160 icon-sort-alt-down0xf161 icon-sort-number-up0xf162 - - icon-right0xf178 - icon-dot-circled0xf192 - icon-lifebuoy0xf1cd - icon-television0xf26c + icon-dot-circled0xf192 + icon-file-image0xf1c5 + icon-lifebuoy0xf1cd + icon-toggle-off0xf204 + + + icon-toggle-on0xf205 + icon-television0xf26c 🌄 icon-picture0x1f304 🔀 icon-shuffle0x1f500 - 🔒 icon-lock0x1f512 - 🔗 icon-link0x1f517 + 🔒 icon-lock0x1f512 + 🔗 icon-link0x1f517 🔧 icon-wrench0x1f527 🕔 icon-clock0x1f554 + + 🚫 icon-block0x1f6ab diff --git a/admin/themes/default/fontello/font/fontello.eot b/admin/themes/default/fontello/font/fontello.eot index 4f87b143b..cbc373a2f 100644 Binary files a/admin/themes/default/fontello/font/fontello.eot and b/admin/themes/default/fontello/font/fontello.eot differ diff --git a/admin/themes/default/fontello/font/fontello.svg b/admin/themes/default/fontello/font/fontello.svg index 05c485512..92c896f2b 100644 --- a/admin/themes/default/fontello/font/fontello.svg +++ b/admin/themes/default/fontello/font/fontello.svg @@ -1,7 +1,7 @@ -Copyright (C) 2019 by original authors @ fontello.com +Copyright (C) 2020 by original authors @ fontello.com @@ -152,12 +152,38 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + @@ -166,6 +192,10 @@ + + + + @@ -178,8 +208,14 @@ + + + + + + diff --git a/admin/themes/default/fontello/font/fontello.ttf b/admin/themes/default/fontello/font/fontello.ttf index 418f646e1..d0706b4cf 100644 Binary files a/admin/themes/default/fontello/font/fontello.ttf and b/admin/themes/default/fontello/font/fontello.ttf differ diff --git a/admin/themes/default/fontello/font/fontello.woff b/admin/themes/default/fontello/font/fontello.woff index ce401667c..5b212987e 100644 Binary files a/admin/themes/default/fontello/font/fontello.woff and b/admin/themes/default/fontello/font/fontello.woff differ diff --git a/admin/themes/default/fontello/font/fontello.woff2 b/admin/themes/default/fontello/font/fontello.woff2 index 3d7b0704e..e0da96f68 100644 Binary files a/admin/themes/default/fontello/font/fontello.woff2 and b/admin/themes/default/fontello/font/fontello.woff2 differ diff --git a/admin/themes/default/images/piwigo_app_banner.jpg b/admin/themes/default/images/piwigo_app_banner.jpg new file mode 100644 index 000000000..b5ad4f336 Binary files /dev/null and b/admin/themes/default/images/piwigo_app_banner.jpg differ diff --git a/admin/themes/default/js/batchManagerGlobal.js b/admin/themes/default/js/batchManagerGlobal.js index 88e8405fa..0216f187a 100644 --- a/admin/themes/default/js/batchManagerGlobal.js +++ b/admin/themes/default/js/batchManagerGlobal.js @@ -8,7 +8,11 @@ function filter_enable(filter) { $("input[type=checkbox][name="+filter+"_use]").prop("checked", true); /* forbid to select this filter in the addFilter list */ - $("#addFilter").children("option[value="+filter+"]").attr("disabled", "disabled"); + $("#addFilter").find("a[data-value="+filter+"]").addClass("disabled", "disabled"); + + /* hide the no filter message */ + $('.noFilter').hide(); + $('.addFilter-button').removeClass('highlight'); } function filter_disable(filter) { @@ -19,7 +23,14 @@ function filter_disable(filter) { $("input[name="+filter+"_use]").prop("checked", false); /* give the possibility to show it again */ - $("#addFilter").children("option[value="+filter+"]").removeAttr("disabled"); + $("#addFilter").find("a[data-value="+filter+"]").removeClass("disabled"); + + /* show the no filter message if no filter selected */ + if ($('#filterList li:visible').length == 0) { + $('.noFilter').show(); + $('.addFilter-button').addClass('highlight'); + } + } $(".removeFilter").addClass("icon-cancel-circled"); @@ -31,10 +42,9 @@ $(".removeFilter").click(function () { return false; }); -$("#addFilter").change(function () { - var filter = $(this).prop("value"); +$("#addFilter a").on('click', function () { + var filter = $(this).attr("data-value"); filter_enable(filter); - $(this).prop("value", -1); }); $("#removeFilters").click(function() { @@ -51,6 +61,13 @@ $('[data-slider=ratios]').pwgDoubleSlider(sliders.ratios); $('[data-slider=filesizes]').pwgDoubleSlider(sliders.filesizes); +$(document).mouseup(function (e) { + e.stopPropagation(); + if (!$(event.target).hasClass('addFilter-button')) { + $('.addFilter-dropdown').slideUp(); + } +}); + /* ********** Thumbs */ /* Shift-click: select all photos between the click and the shift+click */ @@ -152,13 +169,19 @@ var derivatives = { } }; +function progress_start() { + jQuery('#uploadingActions').show(); + jQuery('#uploadingActions .progress-bar').width("0%"); +} + +function progress_end() { + jQuery('#uploadingActions').hide(); +} + function progress(success) { - jQuery('#progressBar').progressBar(derivatives.done, { - max: derivatives.total, - textFormat: 'fraction', - boxImage: 'themes/default/images/progressbar.gif', - barImage: 'themes/default/images/progressbg_orange.gif' - }); + + percent = parseInt(derivatives.done / derivatives.total * 100); + jQuery('#uploadingActions .progressbar').width(percent.toString()+'%'); if (success !== undefined) { var type = success ? 'regenerateSuccess': 'regenerateError', s = jQuery('[name="'+type+'"]').val(); @@ -166,6 +189,7 @@ function progress(success) { } if (derivatives.finished()) { + progress_end(); jQuery('#applyAction').click(); } } @@ -176,8 +200,13 @@ function getDerivativeUrls() { jQuery("#action_generate_derivatives input").each( function(i, t) { if ($(t).is(":checked")) params.types.push( t.value ); - } ); - + } ); + jQuery('#applyActionBlock').hide(); + jQuery('.permitActionListButton').hide(); + jQuery('#confirmDel').hide(); + jQuery('#regenerationMsg').show(); + jQuery('#regenerationText').html(lang.generateMsg); + progress_start(); jQuery.ajax( { type: "POST", url: 'ws.php?format=json&method=pwg.getMissingDerivatives', @@ -187,15 +216,24 @@ function getDerivativeUrls() { if (!data.stat || data.stat != "ok") { return; } - derivatives.total += data.result.urls.length; + derivatives.total += data.result.urls.length; + jQuery('#regenerationStatus .badge-number').html(derivatives.done.toString() + "/" + derivatives.total.toString()); progress(); for (var i=0; i < data.result.urls.length; i++) { jQuery.manageAjax.add("queued", { type: 'GET', url: data.result.urls[i] + "&ajaxload=true", dataType: 'json', - success: ( function(data) { derivatives.done++; progress(true) }), - error: ( function(data) { derivatives.done++; progress(false) }) + success: ( function(data) { + derivatives.done++; + jQuery('#regenerationStatus .badge-number').html(derivatives.done.toString() + "/" + derivatives.total.toString()); + progress(true) + }), + error: ( function(data) { + derivatives.done++; + jQuery('#regenerationStatus .badge-number').html(derivatives.done.toString() + "/" + derivatives.total.toString()); + progress(false) + }) }); } if (derivatives.elements.length) @@ -205,17 +243,17 @@ function getDerivativeUrls() { } function selectGenerateDerivAll() { - $("#action_generate_derivatives input[type=checkbox]").prop("checked", true); + $("#action_generate_derivatives input[type=checkbox]").prop("checked", true).trigger("change"); } function selectGenerateDerivNone() { - $("#action_generate_derivatives input[type=checkbox]").prop("checked", false); + $("#action_generate_derivatives input[type=checkbox]").prop("checked", false).trigger("change"); } function selectDelDerivAll() { - $("#action_delete_derivatives input[type=checkbox]").prop("checked", true); + $('#action_delete_derivatives input[name="del_derivatives_type[]"]').prop("checked", true).trigger("change"); } function selectDelDerivNone() { - $("#action_delete_derivatives input[type=checkbox]").prop("checked", false); + $('#action_delete_derivatives input[name="del_derivatives_type[]"]').prop("checked", false).trigger("change"); } /* sync metadatas or delete photos by blocks, with progress bar */ @@ -228,7 +266,6 @@ jQuery('#applyAction').click(function(e) { e.stopPropagation(); jQuery('.bulkAction').hide(); jQuery('#regenerationText').html(lang.syncProgressMessage); - elements = Array(); if (jQuery('input[name=setSelected]').is(':checked')) { @@ -249,14 +286,10 @@ jQuery('#applyAction').click(function(e) { var image_ids = Array(); jQuery('#applyActionBlock').hide(); - jQuery('select[name="selectAction"]').hide(); + jQuery('.permitActionListButton').hide(); + jQuery('#confirmDel').hide(); jQuery('#regenerationMsg').show(); - jQuery('#progressBar').progressBar(0, { - max: progressBar_max, - textFormat: 'fraction', - boxImage: 'themes/default/images/progressbar.gif', - barImage: 'themes/default/images/progressbg_orange.gif' - }); + progress_bar_start(); for (i=0;i { + + formatedData = data; + + $('.tree').tree({ + data: formatedData, + autoOpen : false, + dragAndDrop: true, + onCreateLi : createAlbumNode, + onCanSelectNode: function(node) {return false} + }); + + function createAlbumNode(node, li) { + icon = ""; + title = "%name%"; + toggler_cont = "%content%"; + toggler_close = " "+str_show_sub+""; + toggler_open = " "+str_hide_sub+""; + actions = '' + +"" + +""+str_edit+"" + +"" + +''; + action_order = ""+str_apply_order+""; + + cont = li.find('.jqtree-element'); + cont.addClass('move-cat-container'); + cont.attr('id', 'cat-'+node.id) + cont.html(''); + cont.append($(icon.replace(/%icon%/g, 'icon-grip-vertical-solid'))); + + if (node.children.length != 0) { + cont.append($(icon.replace(/%icon%/g, 'icon-sitemap'))); + } else { + cont.append($(icon.replace(/%icon%/g, 'icon-folder-open'))); + } + + cont.append($(title.replace(/%name%/g, node.name))); + + if (node.status == 'private') { + cont.find(".move-cat-title").addClass('icon-lock'); + } + + cont.append(actions); + + if (node.children.length != 0) { + open_nodes = $('.tree').tree('getState').open_nodes; + if (open_nodes.includes(node.id)) { + toggler = toggler_open; + } else { + toggler = toggler_close; + } + cont.append($(toggler_cont + .replace(/%content%/g, toggler) + .replace(/%id%/g, node.id))); + + cont.find('.move-cat-action').append(action_order); + } + + var colors = ["icon-red", "icon-blue", "icon-yellow", "icon-purple", "icon-green"]; + var colorId = Number(node.id)%5; + cont.find(".icon-folder-open, .icon-sitemap").addClass(colors[colorId]); + } + + $('.tree').on( 'click', '.move-cat-toogler', function(e) { + var node_id = $(this).attr('data-id'); + var node = $('.tree').tree('getNodeById', node_id); + if (node) { + open_nodes = $('.tree').tree('getState').open_nodes; + if (!open_nodes.includes(node_id)) { + $(this).html(toggler_open); + $('.tree').tree('openNode', node); + } else { + $(this).html(toggler_close); + $('.tree').tree('closeNode', node); + } + } + }); + + $('.tree').on( + 'tree.open', + function(e) { + $('.move-cat-toogler[data-id='+e.node.id+']').html(toggler_open); + } + ); + + $('.tree').on( + 'tree.close', + function(e) { + $('.move-cat-toogler[data-id='+e.node.id+']').html(toggler_close); + } + ); + + $('.tree').on( + 'tree.move', + function(event) { + event.preventDefault(); + + if (event.move_info.moved_node.status != 'private') { + parentIsPrivate = false; + if (event.move_info.position == 'after') { + parentIsPrivate = (event.move_info.target_node.parent.status == 'private'); + } else if (event.move_info.position == 'inside') { + parentIsPrivate = (event.move_info.target_node.status == 'private'); + } + + if (parentIsPrivate) { + $.confirm({ + title: str_are_you_sure.replace(/%s/g, event.move_info.moved_node.name), + buttons: { + confirm: { + text: str_yes_change_parent, + btnClass: 'btn-red', + action: function () { + makePrivateHierarchy(event.move_info.moved_node); + applyMove(event); + }, + }, + cancel: { + text: str_no_change_parent + } + }, + ...jConfirm_confirm_options + }) + } else { + applyMove(event); + } + } else { + applyMove(event); + } + } + ); + + $('.tree').on( 'click', '.move-cat-order', function(e) { + var node_id = $(this).attr('data-id'); + var node = $('.tree').tree('getNodeById', node_id); + if (node) { + $('.cat-move-order-popin').fadeIn(); + $('.cat-move-order-popin .album-name').html(getPathNode(node)); + $('.cat-move-order-popin input[name=id]').val(node_id); + } + }); + + $('.order-root').on( 'click', function() { + $('.cat-move-order-popin').fadeIn(); + $('.cat-move-order-popin .album-name').html(str_root); + $('.cat-move-order-popin input[name=id]').val(-1); + }); + + if (openCat != -1) { + var node = $('.tree').tree('getNodeById', openCat); + $('.tree').tree('openNode', node); + $([document.documentElement, document.body]).animate({ + scrollTop: $("#cat-"+openCat).offset().top + }, 500); + } +}); + +function getId(parent) { + if (parent.getLevel() == 0) { + return 0; + } else { + return parent.id; + } +} + +function getRank(node, ignoreId = null) { + if (node.getPreviousSibling() != null) { + if (node.id != ignoreId) { + return 1 + getRank(node.getPreviousSibling(), ignoreId); + } else { + return getRank(node.getPreviousSibling(), ignoreId); + } + } else { + if (node.id != ignoreId) { + return 1; + } else { + return 0; + } + } +} + +function applyMove(event) { + waitingTimeout = setTimeout(() => { + $('.waiting-message').addClass('visible'); + }, 500); + id = event.move_info.moved_node.id; + moveParent = null; + moveRank = null; + previous_parent = event.move_info.previous_parent; + target = event.move_info.target_node; + if (event.move_info.position == 'after') { + if (getId(previous_parent) != getId(target.parent)) { + moveParent = getId(target.parent); + } + moveRank = getRank(target, id) + 1; + } else if (event.move_info.position == 'inside') { + if (getId(previous_parent) != getId(target)) { + moveParent = getId(target); + } + moveRank = 1; + } else if (event.move_info.position == 'before') { + moveRank = 1; + } + moveNode(id, moveRank, moveParent).then(() => { + event.move_info.do_move(); + clearTimeout(waitingTimeout); + $('.waiting-message').removeClass('visible'); + }) + .catch((message) => console.log('An error has occured : ' + message )); +} + +function moveNode(node, rank, parent) { + return new Promise ((res, rej) => { + if (parent != null) { + changeParent(node, parent).then(changeRank(node, rank)).then(() => res()).catch(() => rej()) + } else if (rank != null) { + changeRank(node, rank).then(() => res()).catch(() => rej()) + } + }) +} + +function changeParent(node, parent) { + return new Promise((res, rej) => { + jQuery.ajax({ + url: "ws.php?format=json&method=pwg.categories.move", + type: "POST", + data: { + category_id : node, + parent : parent, + pwg_token : pwg_token + }, + success: function (raw_data) { + data = jQuery.parseJSON(raw_data); + if (data.stat === "ok") { + res(); + } else { + rej(raw_data); + } + }, + error: function(message) { + rej(message); + } + }); + }) +} + +function changeRank(node, rank) { + return new Promise((res, rej) => { + jQuery.ajax({ + url: "ws.php?format=json&method=pwg.categories.setRank", + type: "POST", + data: { + category_id : node, + rank : rank + }, + success: function (raw_data) { + data = jQuery.parseJSON(raw_data); + if (data.stat === "ok") { + res(); + } else { + rej(raw_data); + } + }, + error: function(message) { + rej(message); + } + }); + }) +} + +function makePrivateHierarchy (node) { + node.status = 'private'; + node.children.forEach(node => { + makePrivateHierarchy(node); + }); +} + +function getPathNode(node) { + if (node.parent.getLevel() != 0) { + return getPathNode(node.parent) + ' / ' + node.name; + } else { + return node.name; + } +} diff --git a/admin/themes/default/js/common.js b/admin/themes/default/js/common.js index f6f03e147..11504da8b 100644 --- a/admin/themes/default/js/common.js +++ b/admin/themes/default/js/common.js @@ -125,4 +125,193 @@ function sprintf() { } return o.join(''); +} + +$('.search-cancel').on('click', function () { + $('.search-input').val(''); + $('.search-input').trigger ("input"); +}) + +$('.search-input').on('input', function() { + if ($('.search-input').val() == '') { + $('.search-cancel').hide(); + } else { + $('.search-cancel').show(); + } +}) + +// Class to implement a temporary state and reverse it +class TemporaryState { + //Arrays to reverse changes + attrChanges = []; //Attribute changes : {object(s), attribute, value} + classChanges = []; //Class changes : {object(s), state(add:true/remove:false), class} + htmlChanges = []; //Html changes : {object(s), html} + + /** + * Change temporaly an attribute of an object + * @param {Jquery Object(s)} obj HTML Object(s) + * @param {String} attr Attribute + * @param {String} tempVal Temporary value of the attribute + */ + changeAttribute(obj, attr, tempVal) { + for (let i = 0; i < obj.length; i++) { + this.attrChanges.push({ + object: $(obj[i]), + attribute: attr, + value: $(obj[i]).attr(attr) + }) + } + obj.attr(attr, tempVal) + } + + /** + * Add/remove a class temporarily + * @param {Jquery Object(s)} obj HTML Object + * @param {Boolean} st Add (true) or Remove (false) the class + * @param {String} loadclass Class Name + */ + changeClass(obj, st, tempclass) { + for (let i = 0; i < obj.length; i++) { + if (!($(obj[i]).hasClass(tempclass) && st)) { + this.classChanges.push({ + object: $(obj[i]), + state: !st, + class: tempclass + }) + if (st) + $(obj[i]).addClass(tempclass) + else + $(obj[i]).removeClass(tempclass) + } + } + } + + /** + * Add temporarily a class to the object + * @param {Jquery Object(s)} obj + * @param {string} tempclass + */ + addClass(obj, tempclass) { + this.changeClass(obj, true, tempclass); + } + + /** + * Remove temporarily a class to the object + * @param {Jquery Object(s)} obj + * @param {string} tempclass + */ + removeClass(obj, tempclass) { + this.changeClass(obj, false, tempclass); + } + + /** + * Change temporaly the html of objects (remove event handlers on the actual content) + * @param {Jquery Object(s)} obj + * @param {string} temphtml + */ + changeHTML(obj, temphtml) { + for (let i = 0; i < obj.length; i++) { + this.htmlChanges.push({ + object:$(obj[i]), + html:$(obj[i]).html() + }) + } + obj.html(temphtml); + } + + /** + * Reverse all the changes and clear the history + */ + reverse() { + this.attrChanges.forEach(function(change) { + if (change.value == undefined) { + change.object.removeAttr(change.attribute); + } else { + change.object.attr(change.attribute, change.value) + } + }) + this.classChanges.forEach(function(change) { + if (change.state) + change.object.addClass(change.class) + else + change.object.removeClass(change.class) + }) + this.htmlChanges.forEach(function(change) { + change.object.html(change.html); + }) + this.attrChanges = []; + this.classChanges = []; + this.htmlChanges = []; + } +} + +const jConfirm_alert_options = { + icon: 'icon-ok', + titleClass: "jconfirmAlert", + theme:"modern", + closeIcon: true, + draggable: false, + animation: "zoom", + boxWidth: '20%', + useBootstrap: false, + backgroundDismiss: true, + animateFromElement: false, + typeAnimated: false, +} + +const jConfirm_confirm_options = { + draggable: false, + titleClass: "jconfirmDeleteConfirm", + theme: "modern", + animation: "zoom", + boxWidth: '40%', + useBootstrap: false, + type: 'red', + animateFromElement: false, + backgroundDismiss: true, + typeAnimated: false, +} + +const jConfirm_confirm_with_content_options = { + draggable: false, + theme: "modern", + animation: "zoom", + boxWidth: '40%', + useBootstrap: false, + type: 'red', + animateFromElement: false, + backgroundDismiss: true, + typeAnimated: false, +} + + + +jQuery.fn.pwg_jconfirm_follow_href = function({ + alert_title = "TITLE", + alert_confirm = "CONFIRM", + alert_cancel = "CANCEL", + alert_content = "" +} = {}) { + let button_href = $(this).attr('href'); + const options = alert_content === "" ? jConfirm_confirm_options : jConfirm_confirm_with_content_options + $(this).click(function() { + $.confirm({ + content: alert_content, + title: alert_title, + buttons: { + confirm: { + text: alert_confirm, + btnClass: 'btn-red', + action: function () { + window.location.href = button_href; + } + }, + cancel: { + text: alert_cancel + } + }, + ...options + }); + return (false); + }); } \ No newline at end of file diff --git a/admin/themes/default/js/group_list.js b/admin/themes/default/js/group_list.js new file mode 100644 index 000000000..08355e3e2 --- /dev/null +++ b/admin/themes/default/js/group_list.js @@ -0,0 +1,942 @@ +const DELAY_FEEDBACK = 3000; +/*------- +Group Popin +-------*/ + +$(".group_details_popup_trigger").click(function () { + $(".Group_details-popup-container").show(); +}); + +$(".CloseGroupPopup").click(function () { + $(".Group_details-popup-container").hide(); +}); + +//Number On Badge +function updateBadge() { + $('.badge-number').html($('.GroupContainer').length - 2) //Less the add group div and the template +} + +/*------- + Add User toggle and reduces height of user list when add user form is visible + -------*/ + +$("#form-btn").click(function () { + $("#cancel").show(); + $("#addUserLabel").show(); + $(".UserSearch").show(); + $("#UserSubmit").show(); + $("#form-btn").hide(); + $(".groups .list_user").css("max-height", "100px"); +}); + +$("#cancel").click(function () { + $("#cancel").hide(); + $("#addUserLabel").hide(); + $(".UserSearch").hide(); + $("#UserSubmit").hide(); + $("#form-btn").show(); + $(".groups .list_user").css("max-height", "200px"); +}); + +/*------- + Add Group toggle + -------*/ +var isToggle = true; +$(".addGroupBlock").on("click", function() { + if (isToggle) deployAddGroupForm() + else hideAddGroupForm(); +}) + +var deployAddGroupForm = function () { + $(".addGroupBlock").animate({ + top: "20%", + padding: "0px" + }, 400, complete=function(){ + $("#addGroupForm form").fadeIn(); + }); + isToggle = false; +} + +var hideAddGroupForm = function () { + $("#addGroupForm form").fadeOut(function(){ + $(".addGroupBlock").animate({ + top: "50%", + padding: "100px 0" + }, 400) + }); + isToggle = true; +} + +/*------- + Add Group Submit + -------*/ + +jQuery(document).ready(function () { + $("#addGroupForm form").on("submit", function (e) { + e.preventDefault(); + let name = $("#addGroupForm input[type=text]").val(); + let loadState = new TemporaryState(); + loadState.changeHTML($(".actionButtons button"), " "); + loadState.changeAttribute($(".actionButtons button"), "style", "pointer-events: none"); + loadState.changeAttribute($(".actionButtons a"), "style", "pointer-events: none"); + jQuery.ajax({ + url: "ws.php?format=json&method=pwg.groups.add", + type: "POST", + data: "name=" + name + "&pwg_token=" + pwg_token, + success: function (raw_data) { + loadState.reverse(); + data = jQuery.parseJSON(raw_data); + if (data.stat === "ok") { + $(".addGroupFormLabelAndInput input").val(''); + group = data.result.groups[0]; + groupBox = createGroup(group) + groupBox.prependTo(".groups") + setupGroupBox(groupBox); + updateBadge(); + } else { + $("#addGroupForm .groupError").html(str_name_taken); + $("#addGroupForm .groupError").fadeIn(); + $("#addGroupForm .groupError").delay(DELAY_FEEDBACK).fadeOut(); + } + }, + error: function (err) { + console.log(err); + }, + }); + }); +}); + +var createGroup = function(group) { + //Setup the group + newgroup = $("#group-template").clone().attr("id", "group-" + group.id); + newgroup.attr("data-id", group.id); + newgroup.find("#group_name").html(group.name); + newgroup.find(".group_name-editable").val(group.name); + newgroup.find(".Group-checkbox label").attr("for", "Group-Checkbox-selection-" + group.id); + newgroup.find(".Group-checkbox input").attr("id", "Group-Checkbox-selection-" + group.id); + newgroup.find(".input-edit-group-name").attr("placeholder", group.name); + newgroup.find(".group_number_users").html(group.nb_users+" " + ((group.nb_users > 1)? str_members_default:str_member_default)); + newgroup.find(".group_name-editable").html(group.name); + newgroup.find(".manage-permissions").attr("href", "admin.php?page=group_perm&group_id="+group.id) + hideAddGroupForm(); + + //Setup the icon color + var colors = ["icon-red", "icon-blue", "icon-yellow", "icon-purple", "icon-green"]; + var colorId = Number(group.id)%5; + newgroup.find(".icon-users-1").addClass(colors[colorId]); + + //Place group in first Place + newgroup.find(".groupMessage").html(str_group_created); + newgroup.find(".groupMessage").fadeIn(); + newgroup.find(".groupMessage").delay(DELAY_FEEDBACK).fadeOut(); + return newgroup; +} + +/*------- + SETUP JS ON GROUP BOX + -------*/ +jQuery(document).ready(function () { + $(".GroupContainer").each(function () { + if ($(this).attr("id") != "group-template") + setupGroupBox($(this)); + }); +}); +var setupGroupBox = function (groupBox) { + var id = groupBox.data("id"); + + /* Change background color of group block if checked in selection mode */ + groupBox.find(".Group-checkbox input[type='checkbox']").change(function () { + toogleSelection(id, groupBox.find(".Group-checkbox input[type='checkbox']").is(":checked")); + }); + groupBox.find(".Group-checkbox input[type='checkbox']").attr("checked", false) + + /* Display the option on the click on "..." */ + groupBox.find(".group-dropdown-options").click(function GroupOptions() { + $(this).find("#GroupOptions").toggle(); + }); + + /* Set the delete action */ + groupBox.find("#GroupDelete").on("click", function () { + deleteGroup(id); + }); + + /* Set the rename action */ + groupBox.find(".Group-name .icon-pencil, #GroupEdit").on("click", function () { + displayRenameForm(true, id); + setTimeout(() => {groupBox.find("#GroupOptions").hide()}, 10) + }); + + groupBox.find(".group-rename .validate").on("click", function () { + groupBox.find(".group-rename form").trigger("submit"); + }); + + groupBox.find(".group-rename form").on("submit", function (e) { + e.preventDefault(); + renameGroup(id, groupBox.find(".group_name-editable").val()) + }); + + groupBox.find(".group-rename .icon-cancel").on('click', function() { + displayRenameForm(false, id) + groupBox.find(".group_name-editable").val(groupBox.find(".Group-name-container p").html()); + }) + + /* Hide group options and rename field on click on the screen */ + + $(document).mouseup(function (e) { + e.stopPropagation(); + let option_is_clicked = false + $("#GroupOptions div").each(function () { + if (!($(this).has(e.target).length === 0)) { + option_is_clicked = true; + } + }) + if (!option_is_clicked) { + groupBox.find("#GroupOptions").hide(); + } + }); + + /* Setup the default action */ + if (groupBox.data("default") == 1) { + setupDefaultActions(id, true); + } else if (groupBox.data("default") == 0) { + setupDefaultActions(id, false); + } + + groupBox.find(".manage-users").on("click", function(){openUserManager(id)}); + + groupBox.find("#GroupDuplicate").on("click", function(){duplicateAction(id)}) + +}; + +var toogleSelection = function(group_id, toggle) { + groupBox = $("#group-"+group_id); + if (toggle) { + groupBox.find(".Group-checkbox input").attr("checked", true); + groupBox.addClass("GroupBackgroudSelected"); + groupBox.find(".icon-users-1").addClass("OrangeIcon"); + groupBox.find(".group_number_users").addClass("OrangeFont"); + + //Display item selection on selection panel + item = $( + "" + + "" + + "" + + groupBox.find("#group_name").html() + + " " + ); + item.appendTo(".DeleteGroupList"); + item.find("a").on("click", function () { + groupBox.find(".Group-checkbox input").attr("checked", false); + toogleSelection(group_id); + }); + updateSelectionPanel(); + option = $(''+groupBox.find("#group_name").html()+'') + option.appendTo("#MergeOptionsChoices"); + } else { + groupBox.find(".Group-checkbox input").attr("checked", false); + groupBox.removeClass("GroupBackgroudSelected"); + groupBox.find(".icon-users-1").removeClass("OrangeIcon"); + groupBox.find(".group_number_users").removeClass("OrangeFont"); + $(".DeleteGroupList div").each(function () { + if ($(this).data("id") == group_id) { + $(this).remove(); + } + }); + updateSelectionPanel(); + $("#MergeOptionsChoices option").each(function () { + if ($(this).attr("value") == group_id) { + $(this).remove(); + } + }); + } +} + +/* Group Ajax and Display Functions */ +var deleteGroup = function (id) { + $.confirm({ + title: str_delete.replace("%s",$("#group-"+id+" #group_name").html()), + draggable: false, + titleClass: "jconfirmDeleteConfirm", + theme: "modern", + content: "", + animation: "zoom", + boxWidth: '30%', + useBootstrap: false, + type: 'red', + animateFromElement: false, + backgroundDismiss: true, + typeAnimated: false, + buttons: { + confirm: { + text: str_yes_delete_confirmation, + btnClass: 'btn-red', + action: function () { + let groupName = $("#group-"+id+" .Group-name-container p").html() + $.alert({ + ...{title : str_group_deleted.replace("%s",groupName), + content: function() { + return jQuery.ajax({ + url: "ws.php?format=json&method=pwg.groups.delete", + type: "POST", + data: "group_id=" + id + "&pwg_token=" + pwg_token, + success: function (raw_data) { + data = jQuery.parseJSON(raw_data); + if (data.stat === "ok") { + $("#group-" + id).remove(); + $(".DeleteGroupList div[data-id="+id+"]").remove() + $("#MergeOptionsChoices option[value="+ id +"]").remove() + } + updateBadge(); + }, + error: function (err) { + console.log(err); + }, + }) + }}, + ...jConfirm_alert_options + }); + } + }, + cancel: { + text: str_no_delete_confirmation + } + } + }); +}; + +var renameGroup = function(id, newName) { + let loadState = new TemporaryState(); + loadState.changeHTML($("#group-" + id + " .group-rename .validate"), "") + loadState.removeClass($("#group-" + id + " .group-rename .validate"), "icon-ok") + loadState.changeAttribute($("#group-" + id + " .group-rename span"), "style", "pointer-events: none"); + jQuery.ajax({ + url: "ws.php?format=json&method=pwg.groups.setInfo", + type: "POST", + data: "group_id=" + id + "&pwg_token=" + pwg_token + "&name="+newName, + success: function (raw_data) { + data = jQuery.parseJSON(raw_data); + loadState.reverse(); + if (data.stat === "ok") { + newName = data.result.groups[0].name; + //Display message + $("#group-" + id).find(".groupMessage").html(str_renaming_done); + $("#group-" + id).find(".groupMessage").fadeIn(); + $("#group-" + id).find(".groupMessage").delay(DELAY_FEEDBACK).fadeOut(); + $("#group-" + id).find("#group_name").html(newName); + + //Hide editable field + displayRenameForm(false, id); + } else { + //Display error message + $("#group-" + id).find(".groupError").html(str_name_taken); + $("#group-" + id).find(".groupError").fadeIn(); + $("#group-" + id).find(".groupError").delay(DELAY_FEEDBACK).fadeOut(); + } + }, + error: function (err) { + console.log(err); + }, + }); +} + +// Hide or display rename form +var displayRenameForm = function(doDisplay, grp_id) { + if (doDisplay) { + $("#group-" + grp_id).find(".group-rename").css("display", "flex"); + $("#group-" + grp_id).find(".Group-name-container .icon-pencil").hide(); + $("#group-" + grp_id).find(".Group-name-container p").css("opacity", 0) + } else { + $("#group-" + grp_id).find(".group-rename").hide(); + $("#group-" + grp_id).find(".Group-name-container .icon-pencil").removeAttr("style"); + $("#group-" + grp_id).find(".Group-name-container p").css("opacity", 1); + } +} + +var setDefaultGroup = function (id, is_default) { + $("#group-" + id + " #GroupDefault").css("width", $("#group-" + id + " #GroupDefault").width()) + $("#group-" + id + " #GroupDefault").html(" ") + $("#group-" + id + " #GroupDefault").removeClass("icon-star"); + $("#group-" + id + " #GroupDefault").attr("style", "pointer-events: none; text-align: center;") + $("#group-" + id).find(".is-default-token").addClass("icon-spin6").addClass("animate-spin").removeClass("icon-star") + jQuery.ajax({ + url: "ws.php?format=json&method=pwg.groups.setInfo", + type: "POST", + data: "group_id=" + id + "&pwg_token=" + pwg_token + "&is_default="+is_default, + success: function (raw_data) { + data = jQuery.parseJSON(raw_data); + $("#group-"+id+" #GroupOptions").hide(); + if (data.stat === "ok") { + if (is_default) { + setupDefaultActions(id,true) + } else { + setupDefaultActions(id,false) + } + } + }, + error: function (err) { + console.log(err); + }, + }); +}; + +var setupDefaultActions = function(id, is_default) { + $("#group-" + id + " #GroupDefault").attr("style", ""); + $("#group-" + id + " #GroupDefault").addClass("icon-star") + $("#group-" + id).find(".is-default-token").removeClass("icon-spin6").removeClass("animate-spin").addClass("icon-star") + if (is_default) { + $("#group-" + id).find("#GroupDefault").html(str_unset_default); + $("#group-" + id).find(".is-default-token").attr("title",str_unset_default) + $("#group-" + id).find("#GroupDefault").unbind("click"); + $("#group-" + id).find(".is-default-token").removeClass("deactivate"); + $("#group-" + id).find("#GroupDefault").on("click", function(){setDefaultGroup(id, false)}) + $("#group-" + id).find(".is-default-token").on("click", function(){setDefaultGroup(id, false)}) + } else { + $("#group-" + id).find("#GroupDefault").html(str_set_default); + $("#group-" + id).find(".is-default-token").attr("title",str_set_default) + $("#group-" + id).find(".is-default-token").addClass("deactivate"); + $("#group-" + id).find("#GroupDefault").on("click", function(){setDefaultGroup(id, true)}) + $("#group-" + id).find(".is-default-token").unbind("click"); + } +} + +var duplicateAction = function(id) { + let loadState = new TemporaryState(); + loadState.changeHTML($("#group-" + id + " #GroupDuplicate"), " ") + loadState.removeClass($("#group-" + id + " #GroupDuplicate"), "icon-docs"); + loadState.changeAttribute($("#group-" + id + " #GroupDuplicate"), "style", "pointer-events: none; text-align: center;") + copy_name = $("#group-" + id + " #group_name").html() + str_copy; + + let name_exist = function(name) { + exist = false; + $(".Group-name-container p").each(function () { + if ($(this).html() === name) + exist = true + }) + return exist; + } + + let i = 1; + while (name_exist(copy_name)) + { + copy_name = $("#group-" + id + " #group_name").html() + str_other_copy.replace("%s", i++) + } + + jQuery.ajax({ + url: "ws.php?format=json&method=pwg.groups.duplicate", + type: "POST", + data: "group_id=" + id + "&pwg_token=" + pwg_token + "©_name=" + copy_name, + success: function (raw_data) { + data = jQuery.parseJSON(raw_data); + loadState.reverse(); + if (data.stat === "ok") { + $("#group-"+id+" #GroupOptions").hide(); + group = data.result.groups[0]; + let groupbox = createGroup(group) + groupbox.insertAfter($("#group-"+id)); + setupGroupBox(groupbox); + updateBadge(); + } + }, + error: function (err) { + console.log(err); + }, + }); +} + + +/*------- + Selection mode toggle actions, + changes "..." in group block to checkbox, + disables group actions in selection mode + -------*/ + +$(function () { + $("#toggleSelectionMode").attr("checked", false) + $("#toggleSelectionMode").click(function () { + if ($(this).is(":checked")) { + $(".in-selection-mode").show(); + $(".not-in-selection-mode").hide(); + $(".GroupManagerButtons").removeClass("visible"); + } else { + $(".in-selection-mode").hide(); + $(".not-in-selection-mode").removeAttr("style"); + $(".Group-checkbox input").attr("checked", false); + $(".Group-checkbox input[type='checkbox']").trigger("change"); + } + }); +}); + +/*------- + Update Selection Panel + -------*/ +var state = "NoSelection"; + +var updateSelectionPanel = function (changedState = "") { + let numSelect = $(".DeleteGroupList div").length; + + if (numSelect == 0) { + updateStatePanel("NoSelection") + } else if (changedState == "") { + if (numSelect == 1 && state != "ConfirmDeletion") + updateStatePanel("OneSelected") + if (numSelect > 1 && state == "OneSelected") + updateStatePanel("Selection"); + } else { + if (changedState == "Selection" && numSelect == 1) + updateStatePanel("OneSelected") + else + updateStatePanel(changedState) + } + + $(".number-Selected").html(numSelect + ""); +}; + +/*Update the state of the panel in 5 states : + NoSelection, OneSelected, ConfirmDeletion, Selection, OptionMerge + */ +var updateStatePanel = function (newState = "Selection") { + state = newState; + switch (newState) { + case "OneSelected": + $("#DeleteSelectionMode").show(); + $("#MergeSelectionMode").show(); + buttonUnavailable($("#MergeSelectionMode")); + buttonAvailable($("#DeleteSelectionMode"), "updateSelectionPanel('ConfirmDeletion')"); + $("#MergeOptionsBlock").hide(); + $("#ConfirmGroupAction").hide(); + break; + case "ConfirmDeletion": + $("#DeleteSelectionMode").hide(); + $("#MergeSelectionMode").hide(); + $("#MergeOptionsBlock").hide(); + $("#ConfirmGroupAction").show(); + break; + case "Selection": + $("#DeleteSelectionMode").show(); + $("#MergeSelectionMode").show(); + buttonAvailable($("#MergeSelectionMode"), "updateSelectionPanel('OptionMerge')"); + buttonAvailable($("#DeleteSelectionMode"), "updateSelectionPanel('ConfirmDeletion')"); + $("#MergeOptionsBlock").hide(); + $("#ConfirmGroupAction").hide(); + break; + case "OptionMerge": + $("#DeleteSelectionMode").hide(); + $("#MergeSelectionMode").hide(); + $("#MergeOptionsBlock").show(); + $("#ConfirmGroupAction").hide(); + break; + } + if (newState == "NoSelection") { + $("#DeleteSelectionMode").show(); + $("#MergeSelectionMode").show(); + buttonUnavailable($("#MergeSelectionMode")); + buttonUnavailable($("#DeleteSelectionMode")); + $(".SelectionModeGroup").hide(); + $("#nothing-selected").show(); + $("#MergeOptionsBlock").hide(); + $("#ConfirmGroupAction").hide(); + } else { + $(".SelectionModeGroup").show(); + $("#nothing-selected").hide(); + } +}; + +var buttonAvailable = function(button, onClick) { + button.removeClass("unavailable"); + button.attr("OnClick", onClick); +} + +var buttonUnavailable = function(button) { + button.addClass("unavailable"); + button.removeAttr("OnClick"); +} + +/*------- + Merge function on button's pannel + -------*/ + +$('.ConfirmMergeButton').on("click", function() { + let loadState = new TemporaryState(); + loadState.changeAttribute($('.ConfirmMergeButton'), "style", "pointer-events: none"); + loadState.changeHTML($('.ConfirmMergeButton'), " "); + loadState.removeClass($('.ConfirmMergeButton'), "icon-ok"); + merge_group = []; + str_merge_group = ""; + name_merge = []; + name_dest = []; + dest_grp = $("#MergeOptionsChoices").val(); + + $(".DeleteGroupList div").each(function () { + if (dest_grp != $(this).attr("data-id")) + { + str_merge_group += "&merge_group_id[]="+$(this).attr("data-id"); + merge_group.push($(this).attr("data-id")); + name_merge.push($(this).find("p").html()) + } else { + name_dest = $(this).find("p").html(); + } + }) + + jQuery.ajax({ + url: "ws.php?format=json&method=pwg.groups.merge", + type: "POST", + data: "destination_group_id=" + dest_grp + str_merge_group + "&pwg_token=" + pwg_token, + success: function (raw_data) { + loadState.reverse(); + data = jQuery.parseJSON(raw_data); + if (data.stat === "ok") { + updateSelectionPanel('Selection'); + merge_group.forEach(function(id) { + ($("#group-"+id).fadeOut(complete=function(){ + $(this).remove(); + })) + }) + toogleSelection(dest_grp, false) + $(".DeleteGroupList").html(""); + $("#MergeOptionsChoices").html(""); + + $.alert({ + ...{title: str_merged_into + .replace("%s1",name_merge.toString()) + .replace("%s2",name_dest), + content: "",}, + ...jConfirm_alert_options + }); + + $("#group-"+dest_grp + " .group_number_users").html(" "); + jQuery.ajax({ + url: "ws.php?format=json&method=pwg.users.getList", + type: "POST", + data: "group_id=" + dest_grp, + success: function (raw_data) { + data = jQuery.parseJSON(raw_data); + let number = data.result.users.length; + $("#group-"+dest_grp + " .group_number_users").html( + number + " " + ((number > 1)? str_members_default:str_member_default) + ); + updateBadge(); + } + }) + }; + } + }) +}) + +/*------- + Delete function on button's pannel + -------*/ + +$('.ConfirmDeleteButton').on("click", function() { + let names = []; + let ids = []; + $('.DeleteGroupList div').each(function () { + let id = $(this).data('id'); + names.push($("#group-"+id+" #group_name").html()); + ids.push(id); + }); + + let loadState = new TemporaryState; + loadState.changeAttribute($('.ConfirmDeleteButton'), "style", "pointer-events: none"); + loadState.changeHTML($('.ConfirmDeleteButton'), " "); + loadState.removeClass($('.ConfirmDeleteButton'),"icon-ok"); + + str_id = "" + ids.forEach(function(id) { + str_id += "group_id[]=" + id + "&" + }) + + jQuery.ajax({ + url: "ws.php?format=json&method=pwg.groups.delete", + type: "POST", + data: str_id + "pwg_token=" + pwg_token, + success: function (raw_data) { + data = jQuery.parseJSON(raw_data); + if (data.stat === "ok") { + $(".DeleteGroupList div").each(function() { + $(this).remove(); + $("#group-" + $(this).attr("data-id")).remove(); + $("#MergeOptionsChoices option[value="+ $(this).attr("data-id") +"]").remove() + }) + + loadState.reverse(); + updateSelectionPanel("NoSelection"); + $.alert({ + ...{title: str_groups_deleted.replace("%s",names.toString()), + content: "", + }, + ...jConfirm_alert_options + }); + updateBadge(); + } + }, + error: function (err) { + console.log(err); + }, + }); +}); + +/*------- + Manage User Part + -------*/ + +// Initialize the research user bar +var selectize; + +// Initialize the cache +var usersCache = {}; + +var usersInGroup = []; + +// Max offset of the user container (322 = 6 lines) +var maxOffsetUserCont = 322; + +var dissociateUserInfo = $("" + + "" + + "").appendTo(".group-name-block").hide(); + +var associateUserInfo = $("" ++ "" ++ ""); + +// Setup the user research bar +$(function() { + + // initialize the Selectize control + $select = $('.AddUserBlock select').selectize({}); + + // fetch the instance + selectize = $select[0].selectize; + + + var idSearch = ""; + $('.UserSearch input').on("focus", function() { + if (idSearch != $("#UserList").attr("data-group_id")) { + updateUserSearch(); + } + }); + + // Update User search bar (remove group users in selection) + updateUserSearch = function () { + selectize.clear(); + if (usersCache = {}) { + usersCache = new UsersCache({ + serverKey: serverKey, + serverId: serverId, + rootUrl: rootUrl + }); + } + JSON.parse(usersCache.storage[usersCache.key]).data.forEach(function(u){ + selectize.addOption({value:u.id, text:u.username}) + }) + idSearch = $("#UserList").attr("data-group_id"); + $('.UsernameBlock').each(function(){ + selectize.removeOption($(this).data("id")); + }) + } +}); + +// Display the user manager for a specific group +var openUserManager = function(grp_id) { + let loadState = new TemporaryState(); + loadState.removeClass($("#group-" + grp_id + " #UserListTrigger"),'icon-user-1') + loadState.changeAttribute($("#group-" + grp_id + " #UserListTrigger"), "style", "pointer-events: none"); + loadState.changeHTML($("#group-" + grp_id + " #UserListTrigger"), " "); + jQuery.ajax({ + url: "ws.php?format=json&method=pwg.users.getList", + type: "POST", + data: "group_id=" + grp_id, + success: function (raw_data) { + loadState.reverse(); + data = jQuery.parseJSON(raw_data); + if (data.stat === "ok") { + //Set the popin name + $(".group-name-block p").html( + $("#group-" + grp_id + " #group_name").html() + " / " + str_user_list + ) + $(".UsersInGroupList").html(""); + + //Display the popin + $('#UserList').fadeIn(); + + //Fill with user blocks + usersInGroup = data.result.users; + // Sort in alphabetic order + usersInGroup.sort(function( a, b ) { + if ( a.username.toLowerCase() < b.username.toLowerCase() ){ + return -1; + } else return 1 + }); + let i = 0; + while ($(".UsersInGroupList").outerHeight() <= maxOffsetUserCont && usersInGroup[i] != undefined){ + getUserDisplay(usersInGroup[i].username, usersInGroup[i].id, grp_id).appendTo(".UsersInGroupList"); + i++; + }; + while ($(".UsersInGroupList").height() > maxOffsetUserCont) { + $(".UsernameBlock").last().remove(); + } + updateMembernumber(usersInGroup.length, grp_id); + //Attribute the group id to the div + $("#UserList").attr("data-group_id", grp_id); + + $(".LinkUserManager a").attr("href","admin.php?page=user_list&group="+grp_id) + } + }, + error: function (err) { + console.log(err); + }, + }); +} + +//Add a user block +var getUserDisplay = function(username, user_id, grp_id) { + let userBlock = $(''+ + ''+ + ''+username+''+ + ''+ + ''+ + 'Dissociate user from this group'+ + ''+ + ''); + + while ($(".UsersInGroupList")[0].offsetHeight > maxOffsetUserCont) { + $(".UsernameBlock").last().remove(); + } + + //Setup the delete action + userBlock.find(".icon-cancel").on("click", function () { + userBlock.find(".icon-cancel").addClass("icon-spin6") + userBlock.find(".icon-cancel").addClass("animate-spin") + userBlock.find(".icon-cancel").css("pointer-events", "none") + userBlock.find(".icon-cancel").removeClass("icon-cancel") + jQuery.ajax({ + url: "ws.php?format=json&method=pwg.groups.deleteUser", + type: "POST", + data: "group_id=" + grp_id + "&user_id=" + user_id + "&pwg_token=" + pwg_token, + success: function (raw_data) { + data = jQuery.parseJSON(raw_data); + if (data.stat === "ok") { + let str = str_user_dissociated.replace("%s", username) + associateUserInfo.fadeOut(); + dissociateUserInfo.find("p").html(str); + dissociateUserInfo.fadeIn() + + $(".UsernameBlock").css("margin-right", "10px").css("border", "none"); + userBlock.remove() + + updateUserSearch(); + + while ($(".UsersInGroupList").height() > maxOffsetUserCont) { + $(".UsernameBlock").last().remove(); + } + + usersInGroup = usersInGroup.filter(u => u.id != user_id) + + //Update member number + updateMembernumber(parseInt($(".UserNumberBadge").html()) -1, grp_id); + } + } + }); + }) + return userBlock; +} + +//Update member number function +function updateMembernumber(number, grp_id) { + $(".GroupContainer[data-id="+grp_id+"] .group_number_users") + .html(number + " " + ((number > 1)? str_members_default:str_member_default)); + $(".UserNumberBadge").html(number); + $(".AmountOfUsersShown strong:nth-child(2)").html(number) + $(".AmountOfUsersShown strong:nth-child(1)").html($(".UsernameBlock").length) +} + +// Close pop-up on cross click +$(".CloseUserList").on("click", function() {$('#UserList').fadeOut();}) + +// Adding Group Action +$(".AddUserBlock button").on("click", function () { + let grp_id = $("#UserList").attr("data-group_id"); + let usersString = "" + // Get selected ids + let id = selectize.getValue(); + + if (id != "") { + let loadState = new TemporaryState(); + loadState.changeHTML($("#UserSubmit")," "); + loadState.removeClass($("#UserSubmit"),"icon-user-add"); + loadState.changeAttribute($("#UserSubmit"),"css","pointer-events:none") + jQuery.ajax({ + url: "ws.php?format=json&method=pwg.groups.addUser", + type: "POST", + data: "group_id=" + grp_id+ "&user_id=" + id + "&pwg_token=" + pwg_token, + success: function (raw_data) { + loadState.reverse() + data = jQuery.parseJSON(raw_data); + + if (data.stat === "ok") { + // Get the username + let username = "undefined"; + JSON.parse(usersCache.storage[usersCache.key]).data.forEach(function(u) { + if (u.id == id) { + username = u.username; + } + }) + let userBlock = getUserDisplay(username, id, grp_id).prependTo(".UsersInGroupList"); + + dissociateUserInfo.fadeOut() + + $(".UsernameBlock:first").css("margin-right", "0px").css("border", "2px solid #c2f5c2"); + $(".UsernameBlock").slice(1).css("margin-right", "10px").css("border", "none"); + associateUserInfo.remove() + associateUserInfo.insertAfter(userBlock); + associateUserInfo.find("p").html(str_user_associated); + associateUserInfo.fadeIn() + + updateUserSearch(); + + usersInGroup.push({username: username, id:id}); + + while ($(".UsersInGroupList").height() > maxOffsetUserCont) { + $(".UsernameBlock").last().remove(); + } + + //Update member number + updateMembernumber(parseInt($(".UserNumberBadge").html()) + 1, grp_id); + } + } + }); + } +}); + +$(".input-user-name").on("input", function() { + searchString = $(this).val().toLowerCase(); + grp_id = $(".UserListPopIn").data("group_id"); + if (searchString != "") { + $(".UsersInGroupListContainer").css("min-height", $(".UsersInGroupListContainer").height()) + usersInGroup.forEach(function(u) { + let isSearched = u.username.toLowerCase().includes(searchString) + if ($(".UsernameBlock[data-id="+u.id+"]").length != 0) { + if (!isSearched) { + $(".UsernameBlock[data-id="+u.id+"]").remove(); + } + } else if (isSearched) { + getUserDisplay(u.username, u.id, grp_id) + .prependTo(".UsersInGroupList"); + } + }) + } else { + $(".UsersInGroupListContainer").css("min-height", "") + $(".UsersInGroupList").html(""); + let i = 0; + while ($(".UsersInGroupList").outerHeight() <= maxOffsetUserCont && usersInGroup[i] != undefined){ + getUserDisplay(usersInGroup[i].username, usersInGroup[i].id, grp_id) + .appendTo(".UsersInGroupList"); + i++; + } + } + $(".AmountOfUsersShown strong:nth-child(1)").html($(".UsernameBlock").length) + while ($(".UsersInGroupList").height() > maxOffsetUserCont) { + $(".UsernameBlock").last().remove(); + } +}) \ No newline at end of file diff --git a/admin/themes/default/js/stats.js b/admin/themes/default/js/stats.js new file mode 100644 index 000000000..c5d4f4a15 --- /dev/null +++ b/admin/themes/default/js/stats.js @@ -0,0 +1,259 @@ +/*------- +Data Get +-------*/ +data = {}; +data["hours"] = $("#data").data("hours"); +data["days"] = $("#data").data("days"); +data["months"] = $("#data").data("months"); +data["years"] = $("#data").data("years"); +data["compare-years"] = $("#data").data("compare-years"); +data["month-stats"] = $("#data").data("month-stats"); + +data_unit = { + "hours":"day", + "days":"month", + "months": "year", + "years": "year" +} + +compareMode = false; + +/*------- +Creating graph +-------*/ +var ctx = document.getElementById('stat-graph').getContext('2d'); +//Create the gradient under the curve +function gradient(r, g, b) { + let gradient = ctx.createLinearGradient(0,400, 0,0); + gradient.addColorStop(0, 'rgba('+r+','+g+','+b+',0)'); + gradient.addColorStop(1, 'rgba('+r+','+g+','+b+',1)'); + return gradient; +} + +//Setup the graph +Chart.defaults.global.elements.point.radius = 0.1; +Chart.defaults.global.elements.point.hitRadius = 10 +Chart.defaults.global.defaultFontSize = 14; +Chart.defaults.global.defaultFontColor = '#888'; +Chart.defaults.global.tooltips.intersect = false; +Chart.defaults.global.legend.onClick = null; + +var statGraph = new Chart(ctx, { + type: 'line', + maintainAspectRatio: false, +}); + +//Line options +var displayOptions = { + backgroundColor: gradient(255, 119, 0), + borderColor: 'rgba(255,119,0,1)', + lineTension : 0.2 +} + +function changeData(dataType, options = displayOptions) { + if (!compareMode) { + statGraph.data = { + datasets: [{ + label: str_number_page_visited, + data: getValues(data[dataType]), + ...options + }] + } + statGraph.options = { + scales: { + xAxes: [{ + type: 'time', + time: { + tooltipFormat: 'll' + }, + gridLines: { + display: false + } + }], + yAxes: [{ + ticks: { + min: 0 + } + }] + }, + legend: { + display:false + }, + tooltips: { + mode: 'index' + }, + hover : + { + intersect : false, + } + } + statGraph.options.scales.xAxes.forEach(axe => { + axe.time.tooltipFormat = str_tooltip_format[dataType]; + axe.time.unit = data_unit[dataType]; + axe.time.displayFormats = str_unit_format; + }) + statGraph.update(); + } else { + statGraph.options.legend.display = true; + statGraph.options.hover = { + intersect : true + } + statGraph.options.tooltips = { + mode : 'nearest' + } + if (dataType == "years") { + statGraph.data = { + datasets: getComparedYearDataset() + } + statGraph.options.scales = { + xAxes: [{ + type: 'category', + labels: str_months, + gridLines: { + display: false + } + }], + yAxes: [{ + scaleLabel: { + display: true, + labelString: 'Page visited' + }, + tick: { + min: 0 + } + }] + } + } else if (dataType == "months") { + days = []; + for (let i = 1; i<=31; i++) { + days.push(i); + } + statGraph.data = { + datasets: getMonthStatsDataset() + } + statGraph.options.scales = { + xAxes: [{ + type: 'category', + labels : days, + gridLines: { + display: false + } + }], + yAxes: [{ + scaleLabel: { + display: true, + labelString: 'Page visited' + } + }] + } + } + statGraph.update(); + } +} + +//Make Data readable by Chart.js +function getValues(data) { + values = []; + Object.keys(data).forEach(function(key) { + var newPoint = { + x:new Date(key), + y:data[key] + } + values.push(newPoint) + }); + return values; +} + +function getComparedYearDataset() { + colors = ["#ffa744", "#ff5252", "#896af3", "#2883c3", "#6ece5e"] + values = {}; + dataset = []; + + Object.keys(data["compare-years"]).forEach(function(key) { + date = new Date(key) + if (values[date.getFullYear()] == undefined) { + values[date.getFullYear()] = []; + } + values[date.getFullYear()][parseInt(date.getMonth())] = data["compare-years"][key]; + }); + + Object.keys(values).forEach(function(key) { + dataset.push({ + label : key, + data : values[key], + lineTension : 0.2, + borderColor : colors[parseInt(key) % colors.length], + backgroundColor: "rgba(0,0,0,0)" + }) + }); + + return dataset; +} + +function getMonthStatsDataset() { + colors = ["#ffa744", "#ff5252", "#896af3", "#2883c3", "#6ece5e"] + dataset = []; + colorIndice = 0; + let date; + + data["month-stats"]["month"].forEach(values => { + let days_data = []; + Object.keys(values).forEach(function(key) { + date = new Date(key) + days_data[parseInt(date.getUTCDate()) - 1] = values[key]; + }); + dataset.push({ + label : str_months[date.getMonth()]+" "+date.getFullYear(), + data : days_data, + lineTension : 0.2, + borderColor : colors[colorIndice % colors.length], + backgroundColor: "rgba(0,0,0,0)" + }) + colorIndice++ + }); + + averageTab = []; + for (let i = 0; i < 31; i++) { + averageTab[i] = data["month-stats"]["avg"]; + } + dataset.push({ + label : str_avg, + data : averageTab, + lineTension : 0.2, + borderColor : colors[4], + backgroundColor: "rgba(0,0,0,0)" + }) + + return dataset; +} + +//Event listener +$(".stat-data-selector label").on("click", function(){ + dataType = $(this).data("value"); + changeData(dataType); +}) + +$(".stat-compare-mode input").on("change", function(){ + compareMode = $(this)[0].checked; + + if (compareMode) { + $("#hours-selector + label, #days-selector + label").addClass('unavailable'); + if ($("#hours-selector").prop('checked')||$("#days-selector").prop('checked')) { + $("#years-selector").prop('checked', true); + $("#hours-selector, #days-selector").prop('checked', false); + changeData("years"); + } else { + changeData($(".stat-data-selector input:checked + label").data("value")) + } + } else { + $("#hours-selector + label, #days-selector + label").removeClass('unavailable'); + changeData($(".stat-data-selector input:checked + label").data("value")); + } +}) + +/*------- +Initialize the page +-------*/ +$(function() { + changeData($(".stat-data-selector input:checked + label").data("value")); +}) diff --git a/admin/themes/default/js/tags.js b/admin/themes/default/js/tags.js new file mode 100644 index 000000000..e152ac82c --- /dev/null +++ b/admin/themes/default/js/tags.js @@ -0,0 +1,1031 @@ +//Get the data +var dataTags = $('.tag-container').data('tags'); + +//Initiate Select +$('#select-100').prop('checked', true) + +//Orphan tags +$('.tag-warning p a').on('click', () => { + let url = $('.tag-warning p a').data('url'); + let tags = $('.tag-warning p a').data('tags'); + let str_orphans = str_orphan_tags.replace('%s1', tags.length).replace('%s2', tags.join(', ')); + $.confirm({ + content : str_orphans, + title : str_delete_orphan_tags, + draggable: false, + theme: "modern", + animation: "zoom", + boxWidth: '30%', + useBootstrap: false, + type: 'red', + animateFromElement: false, + backgroundDismiss: true, + typeAnimated: false, + buttons: { + delete : { + text:str_delete_them, + btnClass: 'btn-red', + action: function() { + window.location.href = url.replace(/amp;/g, ''); + } + }, + keep : { + text:str_keep_them, + action: function() { + $('.tag-warning').hide(); + } + } + } + }) +}) + + +//Create and recycle tag box +function createTagBox(id, name, url_name, count) { + let u_edit = 'admin.php?page=batch_manager&filter=tag-'+id; + let u_view = 'index.php?/tags/'+id+'-'+url_name; + let html = $('.tag-template').html() + .replace(/%name%/g, unescape(name)) + .replace('%U_VIEW%', u_view) + .replace('%U_EDIT%', u_edit) + newTag = $(''+html+''); + if ($("#toggleSelectionMode").is(":checked")) { + newTag.addClass('selection'); + newTag.find(".in-selection-mode").show(); + } + if (count > 0) { + newTag.find('.dropdown-option.view, .dropdown-option.manage').css('display', 'block'); + newTag.find('.tag-dropdown-header i').html(str_number_photos.replace('%d', count)); + } else { + newTag.find('.tag-dropdown-header i').html(str_no_photos); + } + return newTag; +} + +function recycleTagBox(tagBox, id, name, url_name, count) { + tagBox = tagBox.first(); + tagBox.attr('data-id', id); + tagBox.find('.tag-name, .tag-dropdown-header b').html(name); + tagBox.find('.tag-name-editable').val(name) + tagBox.attr('data-selected', 0) + + //Dropdown + let u_edit = 'admin.php?page=batch_manager&filter=tag-'+id; + let u_view = 'index.php?/tags/'+id+'-'+url_name; + tagBox.find('.dropdown-option.view').attr('href', u_view); + tagBox.find('.dropdown-option.manage').attr('href', u_edit); + + if (count > 0) { + tagBox.find('.dropdown-option.view, .dropdown-option.manage').css('display', 'block'); + tagBox.find('.tag-dropdown-header i').html(str_number_photos.replace('%d', count)); + } else { + tagBox.find('.tag-dropdown-header i').html(str_no_photos); + } +} + +//Number On Badge +function updateBadge() { + $('.badge-number').html(dataTags.length) +} + +//Add a tag +$('.add-tag-container').on('click', function() { + $('#add-tag').addClass('input-mode'); + $('#add-tag-input').focus(); + $('.tag-info').hide(); +}) + +$('#add-tag .icon-cancel-circled').on('click', function() { + $('#add-tag').removeClass('input-mode'); + $('.tag-info').hide(); +}) + +//Display/Hide tag option +$('.tag-box').each(function() { + setupTagbox($(this)) +}) + +/*------- + Add a tag +-------*/ + +$('#add-tag').submit(function (e) { + e.preventDefault(); + if ($('#add-tag-input').val() != "") { + loadState = new TemporaryState(); + loadState.removeClass($('#add-tag .icon-validate'),'icon-plus'); + loadState.changeHTML($('#add-tag .icon-validate') , " ") + loadState.changeAttribute($('#add-tag .icon-validate'), 'style','pointer-event:none') + addTag($('#add-tag-input').val()).then(function () { + showMessage(str_tag_created.replace('%s', $('#add-tag-input').val())); + $('#add-tag-input').val(""); + $('#add-tag').removeClass('input-mode'); + $("#search-tag .search-input").trigger("input"); + loadState.reverse(); + }).catch(message => { + loadState.reverse(); + showError(message) + }) + } +}); + +$('#add-tag .icon-validate').on('click', function () { + if ($('#add-tag').hasClass('input-mode')) { + $('#add-tag').submit(); + } +}) + +function addTag(name) { + return new Promise((resolve, reject) => { + jQuery.ajax({ + url: "ws.php?format=json&method=pwg.tags.add", + type: "POST", + data: { + name: name + }, + success: function (raw_data) { + data = jQuery.parseJSON(raw_data); + if (data.stat === "ok") { + newTag = createTagBox(data.result.id, data.result.name, data.result.url_name, 0); + $('.tag-container').prepend(newTag); + setupTagbox(newTag); + updateBadge(); + updateSearchInfo(); + + //Update the data + dataTags.unshift({ + name:data.result.name, + id:data.result.id, + url_name:data.result.url_name + }); + resolve(); + } else { + reject(str_already_exist.replace('%s', name)); + } + }, + error : function (err) { + reject(err); + } + }) + }) +} +/*------- + Setup Tag Box +-------*/ + +function setupTagbox(tagBox) { + + //Dropdown options + tagBox.find('.showOptions').on('click', function () { + tagBox.find(".tag-dropdown-block").css('display', 'grid'); + }) + + $(document).mouseup(function (e) { + e.stopPropagation(); + let option_is_clicked = false + tagBox.find('.dropdown-option').each(function () { + if (!($(this).has(e.target).length === 0)) { + option_is_clicked = true; + } + }) + if (!option_is_clicked) { + tagBox.find(".tag-dropdown-block").hide(); + } + }); + + // Selection behaviour + tagBox.on('click', function() { + if ($('.tag-container').hasClass('selection')) { + if (tagBox.attr('data-selected') == '1') { + tagBox.attr('data-selected', '0'); + removeSelectedItem(tagBox.attr('data-id')); + } else { + tagBox.attr('data-selected', '1'); + addSelectedItem(tagBox.attr('data-id')); + } + updateSelectionContent(); + } + }) + + //Edit Name + tagBox.find('.dropdown-option.edit').on('click', function() { + tagBox.addClass('edit-name'); + tagBox.find(".tag-name-editable").focus(); + }) + + tagBox.find('.tag-rename .icon-cancel').on('click', function() { + tagBox.removeClass('edit-name'); + tagBox.find('.tag-name-editable').val(tagBox.find('.tag-name').html()); + }) + + tagBox.find('.tag-rename .validate').on('click', function() { + tagBox.find('.tag-rename form').submit(); + }) + + tagBox.find('.tag-rename form').submit(function (e) { + let name = tagBox.find('.tag-name').html(); + e.preventDefault(); + new_name = tagBox.find('.tag-rename .tag-name-editable').val(); + if (new_name != "") { + let loadState = new TemporaryState(); + loadState.removeClass(tagBox.find('.tag-rename .validate'), 'icon-ok'); + loadState.changeHTML(tagBox.find('.tag-rename .validate'), " "); + renameTag(tagBox.data('id'), new_name).then(() => { + showMessage(str_tag_renamed.replace('%s1', name).replace('%s2', new_name)); + loadState.reverse(); + tagBox.removeClass('edit-name'); + }).catch((message) => { + loadState.reverse(); + showError(message); + }) + } + }) + + //Delete Tag + tagBox.find('.dropdown-option.delete').on('click', function () { + $.confirm({ + title: str_delete.replace("%s",tagBox.find('.tag-name').html()), + buttons: { + confirm: { + text: str_yes_delete_confirmation, + btnClass: 'btn-red', + action: function () { + removeTag(tagBox.data('id'), tagBox.find('.tag-name').html()); + }, + }, + cancel: { + text: str_no_delete_confirmation + } + }, + ...jConfirm_confirm_options + }) + }) + + //Duplicate Tag + tagBox.find('.dropdown-option.duplicate').on('click', function () { + duplicateTag(tagBox.data('id'), tagBox.find('.tag-name').html()).then((data) => { + showMessage(str_tag_created.replace('%s',data.result.name)) + }) + }) + +} + +function removeTag(id, name) { + $.alert({ + title : str_tag_deleted.replace("%s",name), + content: function() { + return jQuery.ajax({ + url: "ws.php?format=json&method=pwg.tags.delete", + type: "POST", + data: { + tag_id: id, + pwg_token: pwg_token + }, + success: function (raw_data) { + data = jQuery.parseJSON(raw_data); + + if (data.stat === "ok") { + $('.tag-box[data-id='+id+']').remove(); + //Update data + dataTags = dataTags.filter((tag) => tag.id != id); + showMessage(str_tag_deleted.replace('%s', name)); + updateBadge(); + updateSearchInfo(); + updatePaginationMenu(); + } else { + showError('A problem has occured') + } + } + }) + }, + ...jConfirm_alert_options + }); +} + +function renameTag(id, new_name) { + return new Promise((resolve, reject) => { + jQuery.ajax({ + url: "ws.php?format=json&method=pwg.tags.rename", + type: "POST", + data: { + tag_id: id, + new_name: new_name, + pwg_token: pwg_token + }, + success: function (raw_data) { + data = jQuery.parseJSON(raw_data); + if (data.stat === "ok") { + $('.tag-box[data-id='+id+'] p, .tag-box[data-id='+id+'] .tag-dropdown-header b').html(data.result.name); + $('.tag-box[data-id='+id+'] .tag-name-editable').attr('value', data.result.name); + let u_view = 'index.php?/tags/'+id+'-'+data.result.url_name; + $('.dropdown-option.view').attr('href', u_view); + + //Update the data + index = dataTags.findIndex((tag) => tag.id == id); + dataTags[index].name = data.result.name; + dataTags[index].url_name = data.result.url_name; + + resolve(data); + } else { + reject(str_already_exist.replace('%s', new_name)) + } + }, + error:function(XMLHttpRequest) { + reject(XMLHttpRequest.statusText); + } + }) + }) +} + +function duplicateTag(id, name) { + return new Promise((resolve, reject) => { + copy_name = name + str_copy; + + let name_exist = function(name) { + exist = false; + $(".tag-box .tag-name").each(function () { + if ($(this).html() === name) + exist = true + }) + return exist; + } + + let i = 1; + while (name_exist(copy_name)) + { + copy_name = name + str_other_copy.replace("%s", i++) + } + + jQuery.ajax({ + url: "ws.php?format=json&method=pwg.tags.duplicate", + type: "POST", + data: { + tag_id : id, + copy_name: copy_name, + pwg_token: pwg_token + }, + success: function (raw_data) { + data = jQuery.parseJSON(raw_data); + if (data.stat === "ok") { + newTag = createTagBox(data.result.id, data.result.name, data.result.url_name, data.result.count); + newTag.insertAfter($('.tag-box[data-id='+id+']')); + setupTagbox(newTag); + + //Update Data + index = dataTags.findIndex((tag) => tag.id == id); + dataTags.splice(index+1, 0, { + name: data.result.name, + id: data.result.id, + url_name: data.result.url_name, + counter : data.result.count + }); + updateBadge(); + updateSearchInfo(); + resolve(data); + } + }, + error:function(XMLHttpRequest) { + reject(XMLHttpRequest.statusText); + } + }) + }) +} + +/*------- + Selection mode +-------*/ +var selected = []; +maxItemDisplayed = 5; + +$("#toggleSelectionMode").attr("checked", false) +$("#toggleSelectionMode").click(function () { + selectionMode($(this).is(":checked")) + $('.tag-info').hide() +}); + +function selectionMode(isSelection) { + if (isSelection) { + $(".in-selection-mode").addClass('show'); + $(".not-in-selection-mode").addClass('hide'); + $(".tag-container").addClass("selection"); + $(".tag-box").removeClass('edit-name'); + } else { + $(".in-selection-mode").removeClass('show'); + $(".not-in-selection-mode").removeClass('hide'); + $(".tag-container").removeClass("selection"); + $(".tag-box").attr("data-selected", '0'); + $('.tag-select-message').slideUp(); + clearSelection(); + } +} + +function clearSelection() { + selected = []; + $('.selection-mode-tag .tag-list').html(''); + $('.selection-other-tags').hide(); + updateSelectionContent(); +} + +function addSelectedItem(id) { + if (!selected.includes(id)) { + selected.push(id); + + if (selected.length > maxItemDisplayed) { + $('.selection-other-tags').show(); + let numberDisplayed = $('.selection-mode-tag .tag-list div').length; + $('.selection-other-tags').html(str_and_others_tags.replace('%s', selected.length - numberDisplayed)) + } else { + $('.selection-other-tags').hide(); + if (dataTags.findIndex(tag => tag.id == id) > -1) { + createSelectionItem(id, dataTags.find(tag => tag.id == id).name); + } + } + } +} + +function createSelectionItem(id, name) { + let newItemStructure = $(''+name+' '); + $('.selection-mode-tag .tag-list').prepend(newItemStructure); + $('.selection-mode-tag .tag-list div[data-id='+id+'] a').on('click', function () { + removeSelectedItem(id); + }); +} + +function removeSelectedItem(id) { + if (selected.findIndex((tag) => tag == id) > -1) { + + selected = selected.filter((tag) => {return parseInt(tag) != parseInt(id)}); + + $('.tag-box[data-id='+id+']').attr('data-selected', '0'); + if ($('.selection-mode-tag .tag-list div[data-id='+id+']').length != 0) { + $('.selection-mode-tag .tag-list div[data-id='+id+']').remove(); + + if (selected.length >= maxItemDisplayed) { + let i = 0; + isNotCreate = true + while (i tag.id == selected[i]) + createSelectionItem(selected[i], dataTags[indexOfTag].name); + } + i++; + } + } + } + + let numberDisplayed = $('.selection-mode-tag .tag-list div').length; + $('.selection-other-tags').html(str_and_others_tags.replace('%s', selected.length - numberDisplayed)) + if (selected.length - numberDisplayed <= 0) { + $('.selection-other-tags').hide(); + } + + //Remove the selection message + $('.tag-select-message').slideUp(); + } +} + +function updateMergeItems () { + $('#MergeOptionsChoices').html(''); + selected.forEach(id => { + $('#MergeOptionsChoices').append( + $(''+dataTags.find((tag) => tag.id == id).name+'') + ) + }) +} + +mergeOption = false; + +function updateSelectionContent() { + number = selected.length; + if (number == 0) { + mergeOption = false; + $('#nothing-selected').show(); + $('.selection-mode-tag').hide(); + $('#MergeOptionsBlock').hide(); + } else if (number == 1) { + mergeOption = false; + $('#nothing-selected').hide(); + $('.selection-mode-tag').show(); + $('#MergeOptionsBlock').hide(); + $('#MergeSelectionMode').addClass('unavailable'); + } else if (number > 1) { + $('#nothing-selected').hide(); + $('#MergeSelectionMode').removeClass('unavailable'); + if (mergeOption) { + $('#MergeOptionsBlock').show(); + $('.selection-mode-tag').hide(); + updateMergeItems(); + } else { + $('#MergeOptionsBlock').hide(); + $('.selection-mode-tag').show(); + } + } +} + +$('#MergeSelectionMode').on('click', function() { + mergeOption = true; + updateSelectionContent(); +}); + +$('#CancelMerge').on('click', function() { + mergeOption = false; + updateSelectionContent() +}); + +$('#selectAll').on('click', function() { + selectAll(tagToDisplay()) + updateSelectionContent(); + if (selected.length < dataTags.length) { + showSelectMessage( + str_selection_done.replace('%d', $('.tag-box').length), + str_select_all_tag.replace('%d', dataTags.length), + function() { + $('.tag-select-message a').html(""); + $('.tag-select-message div').html(" "); + setTimeout(() => { + selectAll(dataTags).then(() => { + updateSelectionContent(); + showSelectMessage(str_tag_selected.replace(/%d/g, selected.length), str_clear_selection, function() { + selectNone(); + $('.tag-select-message').slideUp(); + }) + }) + }, 5); + }); + } +}); + +function selectAll(data) { + promises = []; + data.forEach((tag) => { + promises.push(new Promise((res, rej) => { + $('.tag-box[data-id='+tag.id+']').attr('data-selected', 1); + addSelectedItem(tag.id); + res(); + })) + }) + return Promise.all(promises); +} + +function showSelectMessage(str1, str2, callback) { + if (!$('.tag-select-message').is(':visible')) { + $('.tag-select-message').slideDown({ + start: function () { + $(this).css({ + display: "flex" + }) + } + }); + } + + $('.tag-select-message div').html(str1) + $('.tag-select-message a').html(str2); + $('.tag-select-message a').off('click'); + $('.tag-select-message a').on('click', callback); +} + +$('#selectNone').on('click', function() { + $('.tag-select-message').slideUp(); + selectNone(); +}); + +function selectNone() { + $('.tag-box').attr('data-selected', '0'); + clearSelection(); +} + +$('#selectInvert').on('click', function() { + $('.tag-select-message').slideUp(); + selectInvert(tagToDisplay()); +}); + +function selectInvert(data) { + data.forEach((tag) => { + tagBox = $('.tag-box[data-id='+tag.id+']'); + if (tagBox.attr('data-selected') == 1) { + tagBox.attr('data-selected', '0'); + removeSelectedItem(tag.id) + } else { + tagBox.attr('data-selected', '1'); + addSelectedItem(tag.id) + } + }) + updateSelectionContent(); +} + +/*------- + Actions in selection mode +-------*/ + +//Remove tags +$('#DeleteSelectionMode').on('click', function() { + let names = []; + selected.forEach(function (id) { + names.push(dataTags.find((tag) => tag.id == id).name); + }) + + $.confirm({ + title: str_delete_tags.replace("%s",tagListToString(names)), + buttons: { + confirm: { + text: str_yes_delete_confirmation, + btnClass: 'btn-red', + action: function () { + removeSelectedTags(); + } + }, + cancel: { + text: str_no_delete_confirmation + } + }, + ...jConfirm_confirm_options + }); +}) + +function removeSelectedTags() { + let names = []; + selected.forEach(function (id) { + names.push(dataTags.find((tag) => tag.id == id).name); + }) + + $.alert({ + title : str_tags_deleted.replace("%s",tagListToString(names)), + content: function() { + return jQuery.ajax({ + url: "ws.php?format=json&method=pwg.tags.delete", + type: "POST", + data: { + 'pwg_token': pwg_token, + 'tag_id': selected + }, + success: function (raw_data) { + raw_data = raw_data.slice(raw_data.search('{')); + if (JSON.parse(raw_data).stat = 'ok') { + selected.forEach(function(id) { + $('.tag-box[data-id='+id+']').remove(); + }) + + // Update Data + dataTags = dataTags.filter((tag) => !selected.includes(tag.id)) + + clearSelection(); + updatePaginationMenu(); + updateBadge(); + updateSearchInfo(); + } else { + return raw_data; + } + }, + error: function(message) { + return message; + } + }) + }, + ...jConfirm_alert_options + }); +} + +//Merge Tags +$('.ConfirmMergeButton').on('click',() => { + dest_id = $('#MergeOptionsChoices').val(); + mergeGroups(dest_id, selected) +}) + +function mergeGroups(destination_id, merge_ids) { + + destination_name = $('.tag-box[data-id='+destination_id+'] .tag-name').html(); + merge_name = []; + + merge_ids.forEach((id) =>{ + merge_name.push($('.tag-box[data-id='+id+'] .tag-name').html()); + }) + + str_message = str_merged_into + .replace('%s1', tagListToString(merge_name)) + .replace('%s2', destination_name) + + $.alert({ + title : str_message, + content: function() { + return jQuery.ajax({ + url: "ws.php?format=json&method=pwg.tags.merge", + type: "POST", + data: { + 'pwg_token': pwg_token, + 'destination_tag_id': destination_id, + 'merge_tag_id': merge_ids + }, + success: function (raw_data) { + raw_data = raw_data.slice(raw_data.search('{')); + data = jQuery.parseJSON(raw_data); + if (data.stat === "ok") { + data.result.deleted_tag.forEach((id) => { + if (data.result.destination_tag != id) { + $('.tag-box[data-id='+id+']').remove(); + // Update data + dataTags = dataTags.filter((tag) => id != tag.id); + } + }) + if (data.result.images_in_merged_tag.length > 0) { + tagBox = $('.tag-box[data-id='+data.result.destination_tag+']') + tagBox.find('.dropdown-option.view,'+ + '.dropdown-option.manage,'+ + '.tag-dropdown-header i').show(); + $('.tag-dropdown-header i').html(str_number_photos.replace('%d', data.result.images_in_merged_tag.length)); + + // Update data + index = dataTags.findIndex((tag) => tag.id == data.result.destination_tag); + dataTags[index].counter = data.result.images_in_merged_tag.length; + } + $(".tag-box").attr("data-selected", '0'); + clearSelection(); + updatePaginationMenu(); + updateBadge() + updateSearchInfo() + } else { + return raw_data; + } + } + }) + }, + ...jConfirm_alert_options + }); +} + +function tagListToString(list) { + if (list.length > 5) { + return list.slice(0,5).join(', ') + + ' ' + + str_and_others_tags.replace('%s', list.length - 5); + } else { + return list.join(', '); + } +} + +/*------- + Filter research +-------*/ + +var maxShown = 100; +var searchTimeOut; +var delaySearchInput = 300; + +$("#search-tag .search-input").on("input", function() { + actualPage = 1; + + clearTimeout(searchTimeOut); + searchTimeOut = setTimeout(() => { + updatePaginationMenu(); + if (dataTags.filter(isDataSearched).length == 0) { + $('.emptyResearch').show(); + } else { + $('.emptyResearch').hide(); + } + }, delaySearchInput); +}); + +function isSearched(tagBox, stringSearch) { + let name = tagBox.find("p").text().toLowerCase(); + if (name.startsWith(stringSearch.toLowerCase())) { + return true; + } else { + return false; + } +} + +function isDataSearched(tagObj) { + let name = tagObj.name; + let stringSearch = $("#search-tag .search-input").val(); + if (name.startsWith(stringSearch.toLowerCase())) { + return true; + } else { + return false; + } +} + +/*------- + Show Info +-------*/ +function showError(message) { + $('.tag-error p').html(message); + $('.tag-error').attr('title', message) + $('.tag-info').hide() + $('.tag-error').css('display', 'flex'); +} + +function showMessage(message) { + $('.tag-message p').html(message); + $('.tag-message').attr('title', message) + $('.tag-info').hide() + $('.tag-message').css('display', 'flex'); +} + + +/*------- + Pagination +-------*/ +var per_page = $('.tag-container').data('per_page'); +var pageItem = '%d'; +var pageEllipsis = '...'; +var promisePending = false; +var delay = 100; +var updateAsk = false; + +var actualPage = 1; + +//Avoid 2 update at the same time +function askUpdatePage() { + if (!promisePending) { + promisePending = true; + updatePage().then(promiseFinish); + } else { + updateAsk = true; + } +} + +function promiseFinish() { + promisePending = false; + if (updateAsk) { + updateAsk = false; + askUpdatePage(); + } +} + +function updatePaginationMenu() { + $('.pagination-item-container').html(''); + + actualPage = Math.min(actualPage, getNumberPages()); + + if (getNumberPages() > 1) { + $('.tag-pagination').show(); + createPaginationMenu(); + } else { + $('.tag-pagination').hide(); + } + + updateArrows(); + askUpdatePage(); + + //Remove the selection message + $('.tag-select-message').slideUp(); +} + +function createPaginationMenu() { + nbPage = getNumberPages(); + + appendPaginationItem(1); + + if (actualPage > 2) { + appendPaginationItem(); + } + + if (actualPage != 1 && actualPage != nbPage) { + appendPaginationItem(actualPage) + } + + if (actualPage < (nbPage - 1)) { + appendPaginationItem(); + } + + appendPaginationItem(nbPage); +} + +function appendPaginationItem(page = null) { + if (page != null) { + let newTag = $(pageItem.replace(/%d/g, page)) + $('.pagination-item-container').append(newTag); + if (actualPage == page) { + newTag.addClass('actual'); + } + newTag.on('click', () => { + actualPage = newTag.data('page'); + updatePaginationMenu(); + }) + } else { + $('.pagination-item-container').append($(pageEllipsis)); + } +} + +function updateArrows() { + if (actualPage == 1) { + $('.pagination-arrow.left').addClass('unavailable'); + } else { + $('.pagination-arrow.left').removeClass('unavailable'); + } + + if (actualPage == getNumberPages()) { + $('.pagination-arrow.rigth').addClass('unavailable'); + } else { + $('.pagination-arrow.rigth').removeClass('unavailable'); + } +} + +function getNumberPages() { + dataVisible = dataTags.filter(isDataSearched).length; + return Math.floor((dataVisible - 1) / per_page) + 1; +} + +function movePage(toRigth = true) { + if (toRigth) { + if (actualPage < getNumberPages()) { + actualPage++; + updatePaginationMenu(); + } + } else { + if (actualPage > 1) { + actualPage--; + updatePaginationMenu(); + } + } +} + +function updatePage() { + return new Promise((resolve, reject) => { + newPage = actualPage; + dataToDisplay = tagToDisplay(); + tagBoxes = $('.tag-box'); + $('.pageLoad').fadeIn();; + $('.tag-box, .tag-pagination').animate({opacity:0}, 500).promise().then(() => { + + let displayTags = new Promise((res, rej) => { + boxToRecycle = Math.min(dataToDisplay.length, tagBoxes.length); + + for (let i = 0; i < boxToRecycle; i++) { + let tag = dataToDisplay[i]; + recycleTagBox($(tagBoxes[i]), tag.id, tag.name, tag.url_name, tag.counter) + } + + if (dataToDisplay.length < tagBoxes.length) { + for (let j = boxToRecycle; j < tagBoxes.length; j++) { + $(tagBoxes[j]).remove(); + } + } else if (dataToDisplay.length > tagBoxes.length) { + for (let j = boxToRecycle; j < dataToDisplay.length; j++) { + let tag = dataToDisplay[j]; + newTag = createTagBox(tag.id, tag.name, tag.url_name); + newTag.css('opacity', 0); + $('.tag-container').append(newTag); + setupTagbox(newTag); + } + } + + //Select selected tags + selected.forEach((id) => { + $('.tag-box[data-id='+id+']').attr('data-selected', 1); + }) + + res(); + }) + + displayTags.then(() => { + $('.pageLoad').fadeOut(); + $('.tag-box').animate({opacity:1}, 500); + if (getNumberPages() > 1) { + $('.tag-pagination').animate({opacity:1}, 500); + } + updateSearchInfo(); + resolve() + }) + }); + }) +} + +function tagToDisplay() { + return dataTags.filter(isDataSearched) + .slice((actualPage-1)*per_page, (actualPage)*per_page); +} + +$('.pagination-arrow.rigth').on('click', () => { + movePage(); +}) + +$('.pagination-arrow.left').on('click', () => { + movePage(false); +}) + +if (getNumberPages() > 1) { + $('.tag-pagination').show(); + createPaginationMenu(); + updateArrows(); +} else { + $('.tag-pagination').hide(); +} + +$('.pagination-per-page a').on('click',function () { + per_page = parseInt($(this).html()); + updatePaginationMenu(); +}) + +function updateSearchInfo () { + if ($('.search-input').val() != '') { + let number = dataTags.filter(isDataSearched).length; + if (number > 1) { + $('.search-info').html(str_tags_found.replace('%d', number)); + } else { + $('.search-info').html(str_tag_found.replace('%d', number)); + } + } else { + $('.search-info').html(''); + } +} \ No newline at end of file diff --git a/admin/themes/default/print.css b/admin/themes/default/print.css index 9e2998f8e..6471c10a4 100644 --- a/admin/themes/default/print.css +++ b/admin/themes/default/print.css @@ -1,4 +1,3 @@ -#menubar, .content .navigationBar, .navThumb, #addComment { display: none; } diff --git a/admin/themes/default/template/admin.tpl b/admin/themes/default/template/admin.tpl index 4fdbb22fb..19b5f755d 100644 --- a/admin/themes/default/template/admin.tpl +++ b/admin/themes/default/template/admin.tpl @@ -46,7 +46,7 @@ jQuery(document).ready(function() { {/footer_script} - {'Dashboard'|@translate} + {'Dashboard'|@translate} {'Photos'|@translate} @@ -56,7 +56,7 @@ jQuery(document).ready(function() { {'Rating'|@translate} {'Tags'|@translate} {'Recent photos'|@translate} - {'Batch Manager'|@translate} + {'Batch Manager'|@translate} {if $NB_PHOTOS_IN_CADDIE > 0} {'Caddie'|@translate}{$NB_PHOTOS_IN_CADDIE} {/if} @@ -71,6 +71,7 @@ jQuery(document).ready(function() { {'Manage'|@translate} + {'Move'|@translate} {'Properties'|@translate} @@ -86,20 +87,7 @@ jQuery(document).ready(function() { - {'Plugins'|@translate} - - - {'Manage'|@translate} - -{if !empty($plugin_menu_items)} - - - {foreach from=$plugin_menu_items item=menu_item} - {$menu_item.NAME} - {/foreach} - -{/if} - + {'Plugins'|@translate} {'Tools'|@translate} @@ -143,9 +131,12 @@ jQuery(document).ready(function() { {$TABSHEET} {/if} {if isset($U_HELP)} - {combine_script id='core.scripts' load='async' path='themes/default/js/scripts.js'} + {include file='include/colorbox.inc.tpl'} +{footer_script} + jQuery('.help-popin').colorbox({ width:"500px" }); +{/footer_script} - + {/if} diff --git a/admin/themes/default/template/album_notification.tpl b/admin/themes/default/template/album_notification.tpl index 8c56544b2..67f1e90ea 100644 --- a/admin/themes/default/template/album_notification.tpl +++ b/admin/themes/default/template/album_notification.tpl @@ -62,7 +62,7 @@ span.errors { - {'Send mail to users'|@translate} + {'Send mail to users'|@translate} {'Recipients'|@translate} diff --git a/admin/themes/default/template/batch_manager_global.tpl b/admin/themes/default/template/batch_manager_global.tpl index bbc9c7e28..f790eb610 100644 --- a/admin/themes/default/template/batch_manager_global.tpl +++ b/admin/themes/default/template/batch_manager_global.tpl @@ -23,7 +23,8 @@ var lang = { Cancel: '{'Cancel'|translate|escape:'javascript'}', deleteProgressMessage: "{'Deletion in progress'|translate|escape:'javascript'}", syncProgressMessage: "{'Synchronization in progress'|translate|escape:'javascript'}", - AreYouSure: "{'Are you sure?'|translate|escape:'javascript'}" + AreYouSure: "{'Are you sure?'|translate|escape:'javascript'}", + generateMsg: "{'Generate multiple size images'|@translate}" }; jQuery(document).ready(function() { @@ -132,6 +133,8 @@ $(document).ready(function() { } } + + $("[id^=action_]").hide(); $("select[name=selectAction]").change(function () { @@ -150,6 +153,11 @@ $(document).ready(function() { else { $("#applyActionBlock").hide(); } + if ($(this).val() == "delete" || $(this).val() == "delete_derivatives") { + $("#confirmDel").css("visibility", "visible"); + } else { + $("#confirmDel").css("visibility", "hidden"); + } }); $(".wrap1 label").click(function (event) { @@ -228,14 +236,23 @@ $(document).ready(function() { return false; }); + + jQuery("input[name=confirm_deletion]").change(function() { + jQuery("#confirmDel span.errors").css("visibility", "hidden"); + }); + jQuery('#applyAction').click(function() { var action = jQuery('[name="selectAction"]').val(); if (action == 'delete_derivatives') { - var d_count = $('#action_delete_derivatives input[type=checkbox]').filter(':checked').length - , e_count = $('input[name="setSelected"]').is(':checked') ? nb_thumbs_set : $('.thumbnails input[type=checkbox]').filter(':checked').length; - if (d_count*e_count > 500) - return confirm(lang.AreYouSure); - } + let d_count = $('#confirmDel input[type=checkbox]').filter(':checked').length + let e_count = $('input[name="setSelected"]').is(':checked') ? nb_thumbs_set : $('.thumbnails input[type=checkbox]').filter(':checked').length; + if (!jQuery("#confirmDel input[name=confirm_deletion]").is(':checked')) { + jQuery("#confirmDel span.errors").css("visibility", "visible"); + return false; + } else { + return true; + } + } if (action != 'generate_derivatives' || derivatives.finished() ) @@ -263,9 +280,11 @@ $(document).ready(function() { jQuery('#applyActionBlock').hide(); jQuery('select[name="selectAction"]').hide(); + jQuery('.permitActionListButton div').addClass('hidden'); jQuery('#regenerationMsg').show(); - progress(); + progress_start(); + progress(); getDerivativeUrls(); return false; }); @@ -321,6 +340,10 @@ var sliders = { {/footer_script} +{combine_script id='jquery.confirm' load='footer' require='jquery' path='themes/default/js/plugins/jquery-confirm.min.js'} +{combine_css path="themes/default/js/plugins/jquery-confirm.min.css"} +{combine_css path="admin/themes/default/fontello/css/animation.css"} + {'Batch Manager'|@translate} @@ -330,200 +353,218 @@ var sliders = { - {'Filter'|@translate} + {'Filter'|@translate} - - - [x] - - {'Predefined filter'|@translate} - - {foreach from=$prefilters item=prefilter} - {assign 'optionClass' ''} - {if $prefilter.ID eq 'no_album'}{assign 'optionClass' 'icon-heart-broken'}{/if} - {if $prefilter.ID eq 'caddie'}{assign 'optionClass' 'icon-flag'}{/if} + + + + + {'Predefined filter'|@translate} + [x] + + {foreach from=$prefilters item=prefilter} + {assign 'optionClass' ''} + {if $prefilter.ID eq 'no_album'}{assign 'optionClass' 'icon-heart-broken'}{/if} + {if $prefilter.ID eq 'caddie'}{assign 'optionClass' 'icon-flag'}{/if} - {$prefilter.NAME} - {/foreach} - - {'Empty caddie'|translate} -{if $NB_ORPHANS > 0} - {'Delete %d orphan photos'|translate:$NB_ORPHANS} -{/if} -{if $NB_NO_MD5SUM > 0} -{'Compute %d missing checksums'|translate:{$NB_NO_MD5SUM}} -{/if} + {$prefilter.NAME} + {/foreach} + + {'Empty caddie'|translate} + {if $NB_ORPHANS > 0} + {'Delete %d orphan photos'|translate:$NB_ORPHANS} + {/if} + {if $NB_NO_MD5SUM > 0} + {'Compute %d missing checksums'|translate:{$NB_NO_MD5SUM}} + {/if} - - - 0% - - {$NB_NO_MD5SUM} - {'checksums to add'|translate} - + + + 0% - + {$NB_NO_MD5SUM} + {'checksums to add'|translate} + - + - - - 0% - - {$NB_ORPHANS} - {'orphans to delete'|translate} - + + + 0% - + {$NB_ORPHANS} + {'orphans to delete'|translate} + - + - - {'based on'|translate} - {'file name'|translate} - {'checksum'|translate} - {'date & time'|translate} - {'width & height'|translate} - - + + {'based on'|translate} + {'file name'|translate} + {'checksum'|translate} + {'date & time'|translate} + {'width & height'|translate} + + - - [x] - - {'Album'|@translate} - - {'include child albums'|@translate} - + + + {'Album'|@translate} + [x] + + {'include child albums'|@translate} + - - [x] - - {'Tags'|@translate} - - {'All tags'|@translate} - {'Any tag'|@translate} - + + + {'Tags'|@translate} + [x] + + {'All tags'|@translate} + {'Any tag'|@translate} + - - [x] - - {'Privacy level'|@translate} - - {html_options options=$filter_level_options selected=$filter_level_options_selected} - - {'include photos with lower privacy level'|@translate} - + + + {'Privacy level'|@translate} + [x] + + {html_options options=$filter_level_options selected=$filter_level_options_selected} + + {'include photos with lower privacy level'|@translate} + - - [x] - - {'Dimensions'|translate} + + + {'Dimensions'|translate} + [x] + + + + + {'Width'|translate} {'between %d and %d pixels'|translate:$dimensions.selected.min_width:$dimensions.selected.max_width} + + {'Reset'|translate} + + - - - {'Width'|translate} {'between %d and %d pixels'|translate:$dimensions.selected.min_width:$dimensions.selected.max_width} - | {'Reset'|translate} - + + + - - + + + + {'Height'|translate} {'between %d and %d pixels'|translate:$dimensions.selected.min_height:$dimensions.selected.max_height} + + {'Reset'|translate} + + + + + + + + + + {'Ratio'|translate} ({'Width'|@translate}/{'Height'|@translate}) + {'between %.2f and %.2f'|translate:$dimensions.selected.min_ratio:$dimensions.selected.max_ratio} + + + + {if isset($dimensions.ratio_portrait)} {'Portrait'|translate}{/if} + {if isset($dimensions.ratio_square)} {'square'|translate}{/if} + {if isset($dimensions.ratio_landscape)} {'Landscape'|translate}{/if} + {if isset($dimensions.ratio_panorama)} {'Panorama'|translate}{/if} + + + {'Reset'|translate} + + + + + + + + + + + + + {'Search'|@translate} + [x] + + {'Search tips'|translate} + {combine_script id='core.scripts' load='async' path='themes/default/js/scripts.js'} + {if (isset($no_search_results))} + {'No results for'|@translate} : + + {foreach $no_search_results as $res} + {if !$res@first} — {/if} + {$res} + {/foreach} + + + {/if} + + + + + {'Filesize'|translate} + [x] + + + {'between %s and %s MB'|translate:$filesize.selected.min:$filesize.selected.max} + {'Reset'|translate} + + + + + + + + + + {'No filter, add one'|@translate} + + + + {'Add a filter'|@translate} + + {'Predefined filter'|@translate} + {'Album'|@translate} + {'Tags'|@translate} + {'Privacy level'|@translate} + {'Dimensions'|@translate} + {'Filesize'|@translate} + {'Search'|@translate} + {'Remove all filters'|@translate} + - - {'Height'|translate} {'between %d and %d pixels'|translate:$dimensions.selected.min_height:$dimensions.selected.max_height} - | {'Reset'|translate} - - - - - - - - {'Ratio'|translate} ({'Width'|@translate}/{'Height'|@translate}) {'between %.2f and %.2f'|translate:$dimensions.selected.min_ratio:$dimensions.selected.max_ratio} - {if isset($dimensions.ratio_portrait)}| {'Portrait'|translate}{/if} - {if isset($dimensions.ratio_square)}| {'square'|translate}{/if} - {if isset($dimensions.ratio_landscape)}| {'Landscape'|translate}{/if} - {if isset($dimensions.ratio_panorama)}| {'Panorama'|translate}{/if} - | {'Reset'|translate} - - - - - - - - - - [x] - - {'Search'|@translate} - - {combine_script id='core.scripts' load='async' path='themes/default/js/scripts.js'} - -{if (isset($no_search_results))} -{'No results for'|@translate} : - - {foreach $no_search_results as $res} - {if !$res@first} — {/if} - {$res} - {/foreach} - - -{/if} - - - - [x] - - {'Filesize'|translate} - - - - {'between %s and %s MB'|translate:$filesize.selected.min:$filesize.selected.max} - | {'Reset'|translate} - - - - - - - - - - - - {'Add a filter'|@translate} - ------------------ - {'Predefined filter'|@translate} - {'Album'|@translate} - {'Tags'|@translate} - {'Privacy level'|@translate} - {'Dimensions'|@translate} - {'Filesize'|@translate} - {'Search'|@translate} - - {'Remove all filters'|@translate} - - - - - {'Refresh photo set'|@translate} - - + + {'Refresh photo set'|@translate} + + + - {'Selection'|@translate} + {'Selection'|@translate} {if !empty($thumbnails)} - {'Select:'|@translate} {if $nb_thumbs_set > $nb_thumbs_page} - {'The whole page'|@translate}, - {'The whole set'|@translate}, + {'The whole page'|@translate} + {'The whole set'|@translate} {else} - {'All'|@translate}, + {'All'|@translate} {/if} - {'None'|@translate}, + {'None'|@translate} {'Invert'|@translate} @@ -547,9 +588,11 @@ UL.thumbnails SPAN.wrap2 {ldelim} - {'Zoom'|@translate} · {'Edit'|@translate} + + + + {if $thumbnail.level > 0} - {'Level %d'|@sprintf:$thumbnail.level|@translate} {'Level %d'|@sprintf:$thumbnail.level|@translate} {/if} get_size_htm()}> @@ -561,183 +604,198 @@ UL.thumbnails SPAN.wrap2 {ldelim} {if !empty($navbar) } - - - - {include file='navigation_bar.tpl'|@get_extent:'navbar'} - - - {'display'|@translate} + + + {'display'|@translate} 20 - · 50 - · 100 - · {'all'|@translate} - {'photos per page'|@translate} + 50 + 100 + {'all'|@translate} + + {include file='navigation_bar.tpl'|@get_extent:'navbar'} {/if} {else} - {'No photo in the current set.'|@translate} + {'No photo in the current set.'|@translate} {/if} - {'Action'|@translate} - {'No photo selected, no action possible.'|@translate} + {'Action'|@translate} + {'No photos selected, no actions possible.'|@translate} + + + + + {'Choose an action'|@translate} + ------------------ + {'Delete selected photos'|@translate} + {'Associate to album'|@translate} + {'Move to album'|@translate} + {if !empty($associated_categories)} + {'Dissociate from album'|@translate} + {/if} + {'Add tags'|@translate} + {if !empty($associated_tags)} + {'remove tags'|@translate} + {/if} + {'Set author'|@translate} + {'Set title'|@translate} + {'Set creation date'|@translate} + {'Who can see these photos?'|@translate} + {'Synchronize metadata'|@translate} + {if ($IN_CADDIE)} + {'Remove from caddie'|@translate} + {else} + {'Add to caddie'|@translate} + {/if} + {'Delete multiple size images'|@translate} + {'Generate multiple size images'|@translate} + {if !empty($element_set_global_plugins_actions)} + {foreach from=$element_set_global_plugins_actions item=action} + {$action.NAME} + {/foreach} + {/if} + + + + + + {'Are you sure?'|@translate} + + {"You need to confirm deletion"|translate} + + + + {'Apply action'|translate} + - - {'Choose an action'|@translate} - ------------------ - {'Delete selected photos'|@translate} - {'Associate to album'|@translate} - {'Move to album'|@translate} - {if !empty($associated_categories)} - {'Dissociate from album'|@translate} - {/if} - {'Add tags'|@translate} + + + + + + + + + {* also used for "move" action *} + + + + + + + + + + + + + + + + + + {if !empty($associated_tags)} - {'remove tags'|@translate} + + {foreach from=$associated_tags item=tag} + {$tag.name} + {/foreach} + {/if} - {'Set author'|@translate} - {'Set title'|@translate} - {'Set creation date'|@translate} - {'Who can see these photos?'|@translate} - {'Synchronize metadata'|@translate} - {if ($IN_CADDIE)} - {'Remove from caddie'|@translate} - {else} - {'Add to caddie'|@translate} - {/if} - {'Delete multiple size images'|@translate} - {'Generate multiple size images'|@translate} + + + + + + {'remove author'|@translate} + + + + + + {'remove title'|@translate} + + + + + {'remove creation date'|@translate} + + + + + + + + + + + + + {html_options options=$level_options selected=$level_options_selected} + + + + + + + + + + + {'All'|@translate} + {'None'|@translate} + + + {foreach from=$generate_derivatives_types key=type item=disp} + {$disp} + {/foreach} + + + + + + {'All'|@translate} + {'None'|@translate} + + + {foreach from=$del_derivatives_types key=type item=disp} + {$disp} + {/foreach} + + + {if !empty($element_set_global_plugins_actions)} {foreach from=$element_set_global_plugins_actions item=action} - {$action.NAME} + + {if !empty($action.CONTENT)}{$action.CONTENT}{/if} + {/foreach} {/if} - - - - - {'Are you sure?'|@translate}{"You need to confirm deletion"|translate} - - - {* also used for "move" action *} - - - {'... or '|@translate} - {'create a new album'|@translate} - - - - - - - - - - - - - - - -{if !empty($associated_tags)} - - {foreach from=$associated_tags item=tag} - {$tag.name} - {/foreach} - -{/if} - - - - - {'remove author'|@translate} - - - - - - {'remove title'|@translate} - - - - - - {'remove creation date'|@translate} - - - - - - + + + + + {'Generate multiple size images'|@translate} + + + + + + + + + - - - - - {html_options options=$level_options selected=$level_options_selected} - - - - - - - - - - {'All'|@translate}, - {'None'|@translate} - - {foreach from=$generate_derivatives_types key=type item=disp} - {$disp} - {/foreach} - - - - - {'All'|@translate}, - {'None'|@translate} - - {foreach from=$del_derivatives_types key=type item=disp} - {$disp} - {/foreach} - - - - - {'Generate multiple size images'|@translate} - - - - - - -{if !empty($element_set_global_plugins_actions)} - {foreach from=$element_set_global_plugins_actions item=action} - - {if !empty($action.CONTENT)}{$action.CONTENT}{/if} - - {/foreach} -{/if} - - - - {'Apply action'|translate} - - - - - - diff --git a/admin/themes/default/template/batch_manager_unit.tpl b/admin/themes/default/template/batch_manager_unit.tpl index 085a9bd63..153ab7144 100644 --- a/admin/themes/default/template/batch_manager_unit.tpl +++ b/admin/themes/default/template/batch_manager_unit.tpl @@ -38,17 +38,18 @@ jQuery("a.preview-box").colorbox( { {'Batch Manager'|@translate} - - {'Display options'|@translate} - {'photos per page'|@translate} : + + + {if !empty($navbar) }{include file='navigation_bar.tpl'|@get_extent:'navbar'}{/if} + + + {'photos per page'|@translate} : 5 - | 10 - | 50 - - - - -{if !empty($navbar) }{include file='navigation_bar.tpl'|@get_extent:'navbar'}{/if} + 10 + 50 + + + {if !empty($elements) } diff --git a/admin/themes/default/template/cat_list.tpl b/admin/themes/default/template/cat_list.tpl index 43c82f7eb..354367f4e 100644 --- a/admin/themes/default/template/cat_list.tpl +++ b/admin/themes/default/template/cat_list.tpl @@ -2,158 +2,57 @@ {footer_script require='jquery.ui.sortable'}{literal} jQuery(document).ready(function(){ - jQuery(".drag_button").show(); - jQuery(".categoryLi").css("cursor","move"); - jQuery(".categoryUl").sortable({ - axis: "y", - opacity: 0.8, - update : function() { - jQuery("#manualOrder").show(); - jQuery("#notManualOrder").hide(); - jQuery("#formAutoOrder").hide(); - jQuery("#formCreateAlbum").hide(); - } - }); - - jQuery("#categoryOrdering").submit(function(){ - ar = jQuery('.categoryUl').sortable('toArray'); - for(i=0;i{$CATEGORIES_NAV} - - {'create a new album'|@translate} - {if count($categories)}·{'apply automatic sort order'|@translate}{/if} - {if ($PARENT_EDIT)}·{'edit'|@translate}{/if} - - - - {'create a new album'|@translate} +{assign var='color_tab' value=["icon-red", "icon-blue", "icon-yellow", "icon-purple", "icon-green"]} + + + + + {"Add Album"|@translate} + + - - - {'Album name'|@translate} - - - - - - {'Create'|translate} + {"Album Name"|@translate} + + + {"Create"|@translate} - - {'Cancel'|@translate} - - - -{if count($categories)} - - - {'Automatic sort order'|@translate} - + {"Cancel"|@translate} + + + {if count($categories)} + {foreach from=$categories item=category} + - {'Sort order'|@translate} - {foreach from=$sort_orders key=sort_code item=sort_label} - - - - {$sort_label} - - {/foreach} - - - - - - {'Apply to sub-albums'|@translate} - - - - - - {'Save order'|translate} - - {'Cancel'|@translate} - - - -{/if} + + + + + + {$category.NAME} + + {$category.NB_PHOTOS|translate_dec:'%d photo':'%d photos'} {$category.NB_SUB_PHOTOS|translate_dec:'%d photo':'%d photos'} {$category.NB_SUB_ALBUMS|translate_dec:'in %d sub-album':'in %d sub-albums'} - - - - - {'... or '|@translate} {'cancel manual order'|@translate} - - -{if count($categories)} - - {foreach from=$categories item=category} - - - - - - - {$category.NAME} - - · {$category.NB_PHOTOS|translate_dec:'%d photo':'%d photos'} · {$category.NB_SUB_PHOTOS|translate_dec:'%d photo':'%d photos'} {$category.NB_SUB_ALBUMS|translate_dec:'in %d sub-album':'in %d sub-albums'} - - - - - - {'Edit'|@translate} - {'sub-albums'|@translate} - {if isset($category.U_SYNC) } - {'Synchronize'|@translate} - {/if} - {if cat_admin_access($category.ID)} - {'Visit Gallery'|@translate} - {/if} - {'Add Photos'|@translate} - - - - + + {'Edit'|@translate} + {'sub-albums'|@translate} + {if cat_admin_access($category.ID)} + {'Visit Gallery'|@translate} + {else} + {'Visit Gallery'|@translate} + {/if} + {'Add Photos'|@translate} + + {/foreach} - -{/if} - + {/if} + diff --git a/admin/themes/default/template/cat_modify.tpl b/admin/themes/default/template/cat_modify.tpl index 1e8aa6540..db2b1c22a 100644 --- a/admin/themes/default/template/cat_modify.tpl +++ b/admin/themes/default/template/cat_modify.tpl @@ -45,11 +45,16 @@ jQuery(document).ready(function() { success:function(data) { var data = jQuery.parseJSON(data); if (data.stat == 'ok') { - jQuery(".albumThumbnailImage") - .attr('href', data.result.url) - .find("img").attr('src', data.result.src) - .end().show(); + jQuery(".deleteRepresentative").show(); + + jQuery(".albumThumbailImage, .albumThumbnailRandom").on('load', function () { + cropImage(); + }) + jQuery(".albumThumbailImage, .albumThumbnailRandom") + .attr('src', data.result.src) + .end().show(); + jQuery(".albumThumbnailRandom").hide(); } else { @@ -77,12 +82,9 @@ jQuery(document).ready(function() { success:function(data) { var data = jQuery.parseJSON(data); if (data.stat == 'ok') { + jQuery(".deleteRepresentative").hide(); jQuery(".albumThumbnailImage").hide(); - if (jQuery(".albumThumbnailActions").data('random_allowed') == '') { - jQuery(".deleteRepresentative").hide(); - } else { - jQuery(".albumThumbnailRandom").show(); - } + jQuery(".albumThumbnailRandom").show(); } else { alert("error on "+method); @@ -132,6 +134,29 @@ jQuery(document).ready(function() { }); }); +$(window).bind("load", function() { + cropImage(); +}); + +$(window).resize(function() { + cropImage(); +}); + +function cropImage() { + let image = $(".albumThumbailImage"); + let imageW = image[0].naturalWidth; + let imageH = image[0].naturalHeight; + let size = $('.catThumbnail').innerWidth(); + + if (imageW > imageH) { + image.css('height', size+'px'); + image.css('width', (imageW * size / imageH)+'px'); + } else { + image.css('width', size+'px'); + image.css('heigth', (imageH * size / imageW)+'px'); + } +} + {/footer_script} {html_style} @@ -165,69 +190,126 @@ jQuery(document).ready(function() { - {$CATEGORIES_NAV} › {'Edit album'|@translate} {$TABSHEET_TITLE} + {'Edit album'|@translate} #{$CAT_ID} {$CATEGORIES_NAV} + + - {'Informations'|@translate} + {'Informations'|@translate} - - - -{if isset($representant) } - - + - - {assign var="action_separator" value=""} - {if $representant.ALLOW_SET_RANDOM } - {'Refresh'|@translate} - {assign var="action_separator" value="|"} - {/if} + + + + {if isset($representant) } + + - {if isset($representant.ALLOW_DELETE) } - {$action_separator} - {'Delete'|translate} - {/if} - -{/if} - + + + {if $representant.ALLOW_SET_RANDOM } + {'Refresh thumbnail'|@translate} + {/if} + {if isset($representant.ALLOW_DELETE)} + {'Remove thumbnail'|translate} + {/if} + + + {else} + + {/if} + + - -{$INTRO} - -{if cat_admin_access($CAT_ID)} - {'jump to album'|@translate} → -{/if} + + + {if isset($INFO_CREATION)} + {$INFO_CREATION} + {/if} + {$INFO_LAST_MODIFIED} + {if isset($INFO_PHOTO)} + {$INFO_PHOTO} + {/if} + {if isset($INFO_DIRECT_SUB)} + {$INFO_DIRECT_SUB} + {/if} + {if isset($U_SYNC) } + {'Directory'|@translate} : {$CAT_FULL_DIR} + {/if} + + -{if isset($U_MANAGE_ELEMENTS) } - {'manage album photos'|@translate} -{/if} + + + {"Actions"|@translate} + {if cat_admin_access($CAT_ID)} + {'Open in gallery'|@translate} + {/if} - {'Add Photos'|translate} + {if isset($U_MANAGE_ELEMENTS) } + {'Manage album photos'|@translate} + {/if} - {'manage sub-albums'|@translate} + {'Add Photos'|translate} -{if isset($U_SYNC) } - {'Synchronize'|@translate} ({'Directory'|@translate} = {$CAT_FULL_DIR}) -{/if} + {'Manage sub-albums'|@translate} -{if isset($U_DELETE) } - {'delete album'|@translate} -{/if} + {if isset($U_SYNC) } + {'Synchronize'|@translate} + {/if} - - - - + {if isset($U_DELETE) } + {'Delete album'|@translate} + {/if} + + + + + + + {'Publication'|@translate} + + + + {'Unlocked'|@translate} + + + + + {'Locked'|@translate} + + + {if isset($CAT_COMMENTABLE)} + + {'Comments'|@translate} + + {'Forbidden'|@translate} + + + + + {'Authorized'|@translate} + + + {if isset($INFO_DIRECT_SUB)} + + {'Apply to sub-albums'|@translate} + + {/if} + + {/if} + + + - - {'Properties'|@translate} + {'Properties'|@translate} {'Name'|@translate} @@ -245,33 +327,12 @@ jQuery(document).ready(function() { {'Parent album'|@translate} + name="parent" style="width:100%"> {/if} - - {'Lock'|@translate} - - {'No'|translate} - {'No and unlock sub-albums'|translate} - {'Yes'|translate} - - - {if isset($CAT_COMMENTABLE)} - - {'Comments'|@translate} - - {'No'|translate} - {'Yes'|translate} - - - {'Apply to sub-albums'|@translate} - - - {/if} - - + {'Save Settings'|@translate} diff --git a/admin/themes/default/template/cat_move.tpl b/admin/themes/default/template/cat_move.tpl index d8a9c9430..726218202 100644 --- a/admin/themes/default/template/cat_move.tpl +++ b/admin/themes/default/template/cat_move.tpl @@ -1,32 +1,84 @@ +{footer_script} +var data = {json_encode($album_data)}; +var pwg_token = "{$PWG_TOKEN}"; +var str_show_sub = "{'Show sub-albums'|@translate}"; +var str_hide_sub = "{'Hide sub-albums'|@translate}"; +var str_manage_sub_album = "{'Manage sub-albums'|@translate}"; +var str_apply_order = "{'Apply an automatic order to sub-albums'|@translate}"; +var str_edit = "{'Edit album'|@translate}"; +var str_are_you_sure = "{'The status of the album \'%s\' and its sub-albums will change to private. Are you sure?'|@translate}"; +var str_yes_change_parent = "{'Yes change parent anyway'|@translate}" +var str_no_change_parent = "{'No, don\'t move this album here'|@translate}" +var str_root = "{'Root'|@translate}" +var openCat = {$open_cat}; +{/footer_script} + +{combine_script id='jquery.confirm' load='footer' require='jquery' path='themes/default/js/plugins/jquery-confirm.min.js'} +{combine_css path="themes/default/js/plugins/jquery-confirm.min.css"} +{combine_script id='common' load='footer' path='admin/themes/default/js/common.js'} +{combine_css path="themes/default/js/plugins/jqtree.css"} +{combine_script id='jtree' load='footer' path='themes/default/js/plugins/tree.jquery.js'} +{combine_css path="admin/themes/default/fontello/css/animation.css"} + +{combine_script id='cat_move' load='footer' path='admin/themes/default/js/cat_move.js'} + {'Move albums'|@translate} - - - {'Move albums'|@translate} + + + + {"Apply an automatic order"|@translate} + + + + + + + + {'Album name, A → Z'|@translate} + - - {'Virtual albums to move'|@translate} + + + + {'Album name, Z → A'|@translate} + - - {html_options options=$category_to_move_options} - - + + + + {'Date created, new → old'|@translate} + - - {'New parent album'|@translate} + + + + {'Date created, old → new'|@translate} + - - ------------ - {html_options options=$category_parent_options} - - + + + + {'Date posted, new → old'|@translate} + - + + + + {'Date posted, old → new'|@translate} + + + + + + + - - - + + {'Drag and drop to reorder albums'|@translate} + {'Apply an automatic order to root albums'|@translate} + - + \ No newline at end of file diff --git a/admin/themes/default/template/cat_perm.tpl b/admin/themes/default/template/cat_perm.tpl index d985e56a5..d2026e256 100644 --- a/admin/themes/default/template/cat_perm.tpl +++ b/admin/themes/default/template/cat_perm.tpl @@ -56,7 +56,7 @@ jQuery("#selectStatus").change(function() { - {'Access type'|@translate} + {'Access type'|@translate} diff --git a/admin/themes/default/template/cat_search.tpl b/admin/themes/default/template/cat_search.tpl new file mode 100644 index 000000000..72e249b9a --- /dev/null +++ b/admin/themes/default/template/cat_search.tpl @@ -0,0 +1,171 @@ +{combine_script id='common' load='footer' path='admin/themes/default/js/common.js'} + +{footer_script} +var data = {json_encode($data_cat)}; +/* + Here data is an associative array id => category under this form + [0] : name + [1] : array of id, path to find this album (root to album) + [2] : 1 = private or 0 = public +*/ + +// Numeric array of all categories +var categories = Object.values(data); + +var str_albums_found = '{"%d albums found"}'; +var str_album_found = '{"1 album found"}'; +{literal} +var editLink = "admin.php?page=album-"; +var colors = ["icon-red", "icon-blue", "icon-yellow", "icon-purple", "icon-green"]; + +$('.search-input').on('input', () => { + updateSearch(); +}) + +// Update the page according to the search field +function updateSearch () { + string = $('.search-input').val(); + $('.search-album-result').html(""); + $('.search-album-noresult').hide(); + if (string == '') { + // help button unnecessary so do not show + // $('.search-album-help').show(); + $('.search-album-ghost').show(); + $('.search-album-num-result').hide(); + } else { + $('.search-album-ghost').hide(); + $('.search-album-help').hide(); + $('.search-album-num-result').show(); + + nbResult = 0; + categories.forEach((c) => { + if (c[0].toString().toLowerCase().search(string.toLowerCase()) != -1) { + addAlbumResult(c); + nbResult++; + } + }) + + if (nbResult != 1) { + $('.search-album-num-result').html(str_albums_found.replace('%d', nbResult)); + } else { + $('.search-album-num-result').html(str_album_found); + } + + if (nbResult != 0) { + resultAppear($('.search-album-result .search-album-elem').first()); + } else { + $('.search-album-noresult').show(); + } + } +} + +// Add an album as a result in the page +function addAlbumResult (cat) { + id = cat[1][cat[1].length - 1]; + template = $('.search-album-elem-template').html(); + newCatNode = $(template); + + hasChildren = false; + categories.forEach((c) => { + for (let i = 0; i < c[1].length - 1; i++) { + if (c[1][i] == id) { + hasChildren = true; + } + } + }) + + if (hasChildren) { + newCatNode.find('.search-album-icon').addClass('icon-sitemap'); + } else { + newCatNode.find('.search-album-icon').addClass('icon-folder-open'); + } + + colorId = id%5; + newCatNode.find('.search-album-icon').addClass(colors[colorId]); + + newCatNode.find('.search-album-name').html(getHtmlPath(cat)); + + href = "admin.php?page=album-" + id; + newCatNode.find('.search-album-edit').attr('href', href); + + $('.search-album-result').append(newCatNode); +} + +// Get the path "PARENT / parent / album" with link to the edition of all albums +function getHtmlPath (cat) { + html = ''; + for (let i = 0; i < cat[1].length - 1; i++) { + id = cat[1][i]; + c = data[id]; + html += '' + c[0] + ' / ' + } + html += '' + cat[0] + ''; + + return html +} + +// Make the results appear one after one +function resultAppear(result) { + result.fadeIn(); + if (result.next().length != 0) { + setTimeout(() => {resultAppear(result.next().first())}, 50); + } +} + +function prepare_skeleton() { + while (!($(document).height() > $(window).height())) { + $(".search-album-ghost").append(""); + } + $(".search-album-ghost div:last").remove(); +}; + +prepare_skeleton(); + +updateSearch(); +$('.search-input').focus(); +{/literal} +{/footer_script} + + + {'Album search tool'|@translate} + + + + + {'Search albums'|@translate} + + + + + + + + + + + + + + + + + + + + + + + Edit album + + + + + + + + + + + {"No album found"|@translate} + + diff --git a/admin/themes/default/template/configuration_display.tpl b/admin/themes/default/template/configuration_display.tpl index 0bca05704..629a9f400 100644 --- a/admin/themes/default/template/configuration_display.tpl +++ b/admin/themes/default/template/configuration_display.tpl @@ -24,7 +24,7 @@ - {'Main Page'|translate} + {'Main Page'|translate} @@ -124,7 +124,7 @@ - {'Photo Page'|translate} + {'Photo Page'|translate} @@ -217,7 +217,7 @@ - {'Photo Properties'|translate} + {'Photo Properties'|translate} diff --git a/admin/themes/default/template/configuration_main.tpl b/admin/themes/default/template/configuration_main.tpl index 3a3fdf7bc..3d9dfcaa8 100644 --- a/admin/themes/default/template/configuration_main.tpl +++ b/admin/themes/default/template/configuration_main.tpl @@ -19,6 +19,13 @@ }); })(target); }; + + jQuery('.tiptip-with-img').tipTip({ + maxWidth: "300px", + delay: 0, + fadeIn: 200, + fadeOut: 200 + }); }()); {if !isset($ORDER_BY_IS_CUSTOM)} @@ -57,8 +64,8 @@ jQuery(".themeBoxes a").colorbox(); jQuery("input[name='mail_theme']").change(function() { - jQuery("input[name='mail_theme']").parents(".themeBox").removeClass("themeDefault"); - jQuery(this).parents(".themeBox").addClass("themeDefault"); + jQuery("input[name='mail_theme']").parents(".themeSelect").removeClass("themeDefault"); + jQuery(this).parents(".themeSelect").addClass("themeDefault"); }); {/footer_script} @@ -69,7 +76,7 @@ jQuery("input[name='mail_theme']").change(function() { - {'Basic settings'|translate} + {'Basic settings'|translate} {'Gallery title'|translate} @@ -105,7 +112,7 @@ jQuery("input[name='mail_theme']").change(function() { - {'Permissions'|translate} + {'Permissions'|translate} @@ -154,7 +161,7 @@ jQuery("input[name='mail_theme']").change(function() { - {'Miscellaneous'|translate} + {'Miscellaneous'|translate} {'Week starts on'|translate} @@ -183,12 +190,30 @@ jQuery("input[name='mail_theme']").change(function() { + + {'Promote mobile app on mobile devices'|translate} + + + + + {'in gallery'|translate} + + + + + + {'in administration'|translate} + + + + + {'Mail theme'|translate} {foreach from=$main.mail_theme_options item=name key=theme} - + @@ -204,6 +229,7 @@ jQuery("input[name='mail_theme']").change(function() { {/foreach} + diff --git a/admin/themes/default/template/configuration_sizes.tpl b/admin/themes/default/template/configuration_sizes.tpl index 93ff48c17..da67476fa 100644 --- a/admin/themes/default/template/configuration_sizes.tpl +++ b/admin/themes/default/template/configuration_sizes.tpl @@ -1,6 +1,21 @@ {combine_script id='common' load='footer' path='admin/themes/default/js/common.js'} - +{combine_script id='jquery.confirm' load='footer' require='jquery' path='themes/default/js/plugins/jquery-confirm.min.js'} +{combine_css path="themes/default/js/plugins/jquery-confirm.min.css"} {footer_script} + + +const title_msg = '{'Are you sure you want to restore to default settings?'|@translate|@escape}'; +const confirm_msg = '{'Yes, I am sure'|@translate|@escape}'; +const cancel_msg = '{'No, I have changed my mind'|@translate|@escape}'; + +$(".restore-settings-button").each(function() { + $(this).pwg_jconfirm_follow_href({ + alert_title: title_msg, + alert_confirm: confirm_msg, + alert_cancel: cancel_msg + }); +}); + (function(){ var labelMaxWidth = "{'Maximum width'|translate}", labelWidth = "{'Width'|translate}", @@ -50,7 +65,7 @@ jQuery(this).css("visibility", "hidden"); return false; }); -}()); +})(); {/footer_script} {html_style} @@ -71,7 +86,7 @@ - {'Original Size'|translate} + {'Original Size'|translate} {if $is_gd} {'Resize after upload disabled due to the use of GD as graphic library'|translate} @@ -116,7 +131,7 @@ - {'Multiple Size'|translate} + {'Multiple Size'|translate} {'show details'|translate} @@ -201,7 +216,7 @@ {if isset($ferrors.resize_quality)}!{/if} - {'Reset to default values'|translate} + {'Reset to default values'|translate} {if !empty($custom_derivatives)} diff --git a/admin/themes/default/template/element_set_ranks.tpl b/admin/themes/default/template/element_set_ranks.tpl index 3321a69fa..67e40a5b1 100644 --- a/admin/themes/default/template/element_set_ranks.tpl +++ b/admin/themes/default/template/element_set_ranks.tpl @@ -47,7 +47,7 @@ jQuery('.thumbnail').tipTip({ {if !empty($thumbnails)} - {'Manual order'|@translate} + {'Manual order'|@translate} {if !empty($thumbnails)} {'Drag to re-order'|@translate} @@ -63,7 +63,7 @@ jQuery('.thumbnail').tipTip({ {/if} - {'Sort order'|@translate} + {'Sort order'|@translate} diff --git a/admin/themes/default/template/group_list.tpl b/admin/themes/default/template/group_list.tpl index b14ff1725..e95a53597 100644 --- a/admin/themes/default/template/group_list.tpl +++ b/admin/themes/default/template/group_list.tpl @@ -1,189 +1,254 @@ +{include file='include/colorbox.inc.tpl'} {footer_script} -{literal} -$(document).ready(function() { - /** - * Add group - */ - jQuery("#addGroup").click(function() { - jQuery("#addGroupForm").toggle(); - jQuery("input[name=groupname]").focus(); - return false; - }); +var pwg_token = "{$PWG_TOKEN}"; +var str_member_default = "{'member'|@translate}" +var str_members_default = "{'members'|@translate}" +var str_group_created = "{'Group added'|@translate}" +var str_renaming_done = "{'Group renamed'|@translate}" +var str_name_taken = "{'Name is already taken'|@translate}" +var str_group_deleted = '{'Group "%s" succesfully deleted'|@translate}' +var str_groups_deleted = '{'Groups \{%s\} succesfully deleted'|@translate}' +var str_set_default = "{'Set as group for new users'|@translate}" +var str_unset_default = "{'Unset as group for new users'|@translate}" +var str_delete = '{'Delete group "%s"?'|@translate}' +var str_yes_delete_confirmation = "{'Yes, delete'|@translate}" +var str_no_delete_confirmation = "{"No, I have changed my mind"|@translate}" +var str_user_associated = "{"User associated"|@translate}" +var str_user_dissociated = '{'User "%s" dissociated from this group'|@translate}' +var str_user_list = "{"User List"|@translate}" +var str_merged_into = '{'Group(s) \{%s1\} succesfully merged into "%s2"'|@translate}' +var str_copy = '{' (copy)'|@translate}' +var str_other_copy = '{' (copy %s)'|@translate}' - jQuery("#addGroupClose").click(function() { - jQuery("#addGroupForm").hide(); - return false; - }); +var serverKey = '{$CACHE_KEYS.users}' +var serverId = '{$CACHE_KEYS._hash}' +var rootUrl = '{$ROOT_URL}' - $('.groups input').change(function () { $(this).parent('p').toggleClass('group_select'); }); - $(".grp_action").hide(); - $("input.group_selection").click(function() { - - var nbSelected = 0; - nbSelected = $("input.group_selection").filter(':checked').length; - - if (nbSelected == 0) { - $("#permitAction").hide(); - $("#forbidAction").show(); - } - else { - $("#permitAction").show(); - $("#forbidAction").hide(); - } - $("p[group_id="+$(this).prop("value")+"]").each(function () { - $(this).toggle(); - }); - - if (nbSelected<2) { - $("#two_to_select").show(); - $("#two_atleast").hide(); - } - else { - $("#two_to_select").hide(); - $("#two_atleast").show(); - } - }); - $("[id^=action_]").hide(); - $("select[name=selectAction]").change(function () { - $("[id^=action_]").hide(); - $("#action_"+$(this).prop("value")).show(); - if ($(this).val() != -1 ) { - $("#applyActionBlock").show(); - } - else { - $("#applyActionBlock").hide(); - } - }); +$(document).on('keydown', function (e) { + if ( e.keyCode === 27) { // ESC button + $("#UserList").fadeOut(); + } +}) +$(document).on('click', function (e) { + if ($(e.target).closest(".UserListPopInContainer").length === 0) { + $("#UserList").fadeOut(); + } }); - -{/literal} {/footer_script} +{combine_script id='common' load='footer' path='admin/themes/default/js/common.js'} +{combine_script id='group_list' load='footer' path='admin/themes/default/js/group_list.js'} + +{combine_script id='jquery.selectize' load='footer' path='themes/default/js/plugins/selectize.min.js'} +{combine_css path="themes/default/js/plugins/selectize.{$themeconf.colorscheme}.css"} + +{combine_script id='LocalStorageCache' load='footer' path='admin/themes/default/js/LocalStorageCache.js'} + +{combine_script id='jquery.confirm' load='footer' require='jquery' path='themes/default/js/plugins/jquery-confirm.min.js'} +{combine_css path="themes/default/js/plugins/jquery-confirm.min.css"} +{combine_css path="admin/themes/default/fontello/css/animation.css"} + +{* Define template function for the content of Groups*} +{function name=groupContent} +{function groupContent} + + + + + + + + + + + + + + + + + + {'Duplicate'|@translate} + {'Delete'|@translate} + + + + + + + {$grp_name} + + + + + + + + + + + + + + + Change group name + {'Cancel'|@translate} + + + {$grp_members} + + + Manage users + Manage permissions + +{/function} +{/function} - {'Group management'|@translate} + {'Group management'|@translate} {(empty($groups)) ? 0 :count($groups)} - - {'Add group'|translate} - + + + + + + {'Selection mode'|@translate} + - - - {'Add group'|@translate} + + + {'No groups selected, no actions possible.'|@translate} + + {'Your selection'|@translate} + - - {'Group name'|translate} - - + + + - - - {'Cancel'|@translate} - + + {'Merge'|@translate} + {'Delete'|@translate} + - + + {'Choose which group to merge these groups into'|@translate} + {'The other groups will be removed'|@translate} + + + + + + Confirm merge + Cancel + + - - + + You are about to delete 0 groups, are you sure? + {'Yes, delete'|@translate} + {"No, I have changed my mind"|@translate} + + + + - - + + + + + + + + + {'Add group'|translate} + + + + + {'Group name'|translate} + + + + + {'Add'|translate} + + + {'Cancel'|@translate} + + + + + + + {* Template Group (for js application) *} + {groupContent grp_id="template" grp_name="Template" grp_members=0 grp_is_default=false} + + {assign var='color_tab' value=["icon-red", "icon-blue", "icon-yellow", "icon-purple", "icon-green"]} - {if not empty($groups)} {foreach from=$groups item=group name=group_loop} - - {$group.NAME}{$group.IS_DEFAULT} - {if $group.MEMBERS>0}{$group.MEMBERS}{$group.L_MEMBERS}{else}{$group.MEMBERS}{/if} - {'Permissions'|translate} - + {assign var='color_id' value=$group.ID%5} + {groupContent + grp_id=$group.ID + grp_name=$group.NAME + grp_members=$group.MEMBERS + grp_color=$color_tab[$color_id] + grp_is_default=$group.IS_DEFAULT + } + {/foreach} {/if} - + - - {'Action'|@translate} - {'No group selected, no action possible.'|@translate} - + - - {'Choose an action'|@translate} - ------------------ - {'Rename'|@translate} - {'Delete'|@translate} - {'Merge selected groups'|@translate} - {'Duplicate'|@translate} - {'Toggle \'default group\' property'|@translate} - {if !empty($element_set_groupe_plugins_actions)} - {foreach from=$element_set_groupe_plugins_actions item=action} - {$action.NAME} - {/foreach} - {/if} - + - - - {if not empty($groups)} - {foreach from=$groups item=group} - - - - {/foreach} - {/if} + + + + + + 25 + + + + + Associate User + + + + + + Showing 39 users out of 251 - - - - {'Please select at least two groups'|@translate} - {assign var='mergeDefaultValue' value='Type here the name of the new group'|@translate} - - - + + + + + + - - - {'Are you sure?'|@translate} - + + + + + + + - - - {assign var='duplicateDefaultValue' value='Type here the name of the new group'|@translate} - {if not empty($groups)} - {foreach from=$groups item=group} - - {$group.NAME} > - - {/foreach} - {/if} - + + + + + Manage users with user manager + + + - - - {if not empty($groups)} - {foreach from=$groups item=group} - - {$group.NAME} > {if empty($group.IS_DEFAULT)}{'This group will be set to default'|@translate}{else}{'This group will be unset to default'|@translate}{/if} - - {/foreach} - {/if} - - - - - {if !empty($element_set_groupe_plugins_actions)} - {foreach from=$element_set_groupe_plugins_actions item=action} - - {if !empty($action.CONTENT)}{$action.CONTENT}{/if} - - {/foreach} - {/if} - - - - - - - \ No newline at end of file + + diff --git a/admin/themes/default/template/group_perm.tpl b/admin/themes/default/template/group_perm.tpl index 401012d1e..1c9fe7716 100644 --- a/admin/themes/default/template/group_perm.tpl +++ b/admin/themes/default/template/group_perm.tpl @@ -3,6 +3,7 @@ {$DOUBLE_SELECT} + {'Only private albums are listed'|@translate} diff --git a/admin/themes/default/template/header.tpl b/admin/themes/default/template/header.tpl index 3619ed4d7..dd365bdfd 100644 --- a/admin/themes/default/template/header.tpl +++ b/admin/themes/default/template/header.tpl @@ -5,6 +5,9 @@ +{if $SHOW_MOBILE_APP_BANNER} + +{/if} {$GALLERY_TITLE} :: {$PAGE_TITLE} @@ -57,7 +60,7 @@ {$GALLERY_TITLE} - {$USERNAME} + {$USERNAME} {* {'Visit Gallery'|translate} *} diff --git a/admin/themes/default/template/history.tpl b/admin/themes/default/template/history.tpl index 96701d8bf..a9a9fc6ea 100644 --- a/admin/themes/default/template/history.tpl +++ b/admin/themes/default/template/history.tpl @@ -11,7 +11,7 @@ jQuery(function(){ {* *} - {'Filter'|@translate} + {'Filter'|@translate} {'Date'|@translate} diff --git a/admin/themes/default/template/include/add_album.inc.tpl b/admin/themes/default/template/include/add_album.inc.tpl index 173090db1..55715ddd5 100644 --- a/admin/themes/default/template/include/add_album.inc.tpl +++ b/admin/themes/default/template/include/add_album.inc.tpl @@ -3,7 +3,7 @@ {combine_script id='jquery.selectize' load='footer' path='themes/default/js/plugins/selectize.min.js'} {combine_css id='jquery.selectize' path="themes/default/js/plugins/selectize.{$themeconf.colorscheme}.css"} -{combine_css path="admin/themes/default/fontello/css/animation.css"} +{combine_css path="admin/themes/default/fontello/css/animation.css" order=10} {combine_script id='addAlbum' load=$load_mode path='admin/themes/default/js/addAlbum.js'} diff --git a/admin/themes/default/template/include/dbselect.inc.tpl b/admin/themes/default/template/include/dbselect.inc.tpl deleted file mode 100644 index 4bee81185..000000000 --- a/admin/themes/default/template/include/dbselect.inc.tpl +++ /dev/null @@ -1,16 +0,0 @@ -{* was used in double_select.tpl until Piwigo 2.8, no longer used in Piwigo core *} -{footer_script require='jquery.ui.resizable'}{literal} -jQuery(document).ready(function(){ - // Resize possible for double select list - jQuery(".doubleSelect select.categoryList").resizable({ - handles: "w,e", - animate: true, - animateDuration: "slow", - animateEasing: "swing", - preventDefault: true, - preserveCursor: true, - autoHide: true, - ghost: true - }); -}); -{/literal}{/footer_script} \ No newline at end of file diff --git a/admin/themes/default/template/include/resize.inc.tpl b/admin/themes/default/template/include/resize.inc.tpl deleted file mode 100644 index 152ee61a2..000000000 --- a/admin/themes/default/template/include/resize.inc.tpl +++ /dev/null @@ -1,16 +0,0 @@ -{* Resize possible *} -{footer_script require='jquery.ui.resizable'}{literal} - jQuery().ready(function(){ - // Resize possible for list - jQuery(".categoryList").resizable({ - handles: "all", - animate: true, - animateDuration: "slow", - animateEasing: "swing", - preventDefault: true, - preserveCursor: true, - autoHide: true, - ghost: true - }); - }); -{/literal}{/footer_script} diff --git a/admin/themes/default/template/include/tag_selection.inc.tpl b/admin/themes/default/template/include/tag_selection.inc.tpl deleted file mode 100644 index e84ec2431..000000000 --- a/admin/themes/default/template/include/tag_selection.inc.tpl +++ /dev/null @@ -1,15 +0,0 @@ -{footer_script require='jquery'}{literal} -jQuery(document).ready(function(){ - jQuery(".tagSelection").on("click", "label", function () { - var parent = jQuery(this).parent('li'); - var checkbox = jQuery(this).children("input[type=checkbox]"); - - if (jQuery(checkbox).is(':checked')) { - parent.addClass("tagSelected"); - } - else { - parent.removeClass('tagSelected'); - } - }); -}); -{/literal}{/footer_script} diff --git a/admin/themes/default/template/install.tpl b/admin/themes/default/template/install.tpl index ef9a7720a..3426c1c1a 100644 --- a/admin/themes/default/template/install.tpl +++ b/admin/themes/default/template/install.tpl @@ -282,7 +282,7 @@ jQuery().ready(function(){ldelim} - + {'Send my connection settings by email'|@translate} diff --git a/admin/themes/default/template/intro.tpl b/admin/themes/default/template/intro.tpl index abae8a33a..b6f45e34a 100644 --- a/admin/themes/default/template/intro.tpl +++ b/admin/themes/default/template/intro.tpl @@ -5,7 +5,9 @@ {footer_script require='jquery.cluetip'} var piwigo_need_update_msg = '{'A new version of Piwigo is available.'|@translate|@escape:"javascript"} '; var ext_need_update_msg = '{'Some upgrades are available for extensions.'|@translate|@escape:"javascript"} '; - +const str_gb_used = "{'%s GB used'|translate}"; +const str_mb_used = "{'%s MB used'|translate}"; +const storage_total = {$STORAGE_TOTAL}; {literal} jQuery().ready(function(){ jQuery('.cluetip').cluetip({ @@ -45,8 +47,41 @@ jQuery().ready(function(){ return false; } }); + let size_info = storage_total > 1000000 ? str_gb_used : str_mb_used; + let size_nb = storage_total > 1000000 ? (storage_total / 1000000).toFixed(2) : (storage_total / 1000).toFixed(0); + $(".chart-title-infos").html(size_info.replace("%s", size_nb)); }); + +//Tooltip for the storage chart +$('.storage-chart span').each(function () { + let tooltip = $('.storage-tooltips #'+$(this).data('type')); + let left = $(this).position().left + $(this).width()/2 - tooltip.innerWidth()/2; + tooltip.css('left', left+"px") + $(this).hover(function() { + tooltip.toggle(); + }); +}); + +$(window).on('resize', function(){ + $('.storage-chart span').each(function () { + let tooltip = $('.storage-tooltips #'+$(this).data('type')); + let left = $(this).position().left + $(this).width()/2 - tooltip.innerWidth()/2; + tooltip.css('left', left+"px") + }); +}); +let size = 0; +let str_size_type = "MB"; +let size_nb = 0; +let str_size = ""; {/literal} +{foreach from=$STORAGE_CHART_DATA key=type item=value} + size = {$value}; + str_size_type = size > 1000000 ? "GB" : "MB"; + size_nb = size > 1000000 ? (size / 1000000).toFixed(2) : (size / 1000).toFixed(0); + str_size = " : " + size_nb.toString() + " " + str_size_type; + $("#storage-{$type}").html("" + str_size); + $("#storage-{$type} b").html("{$type}"); +{/foreach} {/footer_script} {html_style} @@ -61,85 +96,164 @@ jQuery().ready(function(){ {'Piwigo Administration'|@translate} + {if $NB_PHOTOS > 1} - - + + {$NB_PHOTOS|number_format}{'Photos'|translate} {/if} {if $NB_ALBUMS > 1} - - + + {$NB_ALBUMS}{'Albums'|translate} {/if} {if $NB_TAGS > 1} - - + + {$NB_TAGS}{'Tags'|translate} {/if} {if $NB_USERS > 2} - - + + {$NB_USERS}{'Users'|translate} {/if} {if $NB_GROUPS > 0} - - + + {$NB_GROUPS}{'Groups'|translate} {/if} {if $NB_COMMENTS > 1} - - + + {$NB_COMMENTS}{'Comments'|translate} {/if} {if $NB_RATES > 0} - - + + {$NB_RATES}{'Rating'|translate} {/if} {if $NB_VIEWS > 0} - - + + {$NB_VIEWS}{'Pages seen'|translate} {/if} {if $NB_PLUGINS > 0} - - + + {$NB_PLUGINS}{'Plugins'|translate} {/if} - - + + {$STORAGE_USED}{'Storage used'|translate} {if $NB_PHOTOS > 1} - - + + {$first_added_age}{'First photo added'|translate} {/if} {* .stat-boxes *} + + + {"Activity peak in the last weeks"|@translate} + + {foreach from=$ACTIVITY_CHART_DATA item=WEEK_ACTIVITY key=WEEK_NUMBER} + {"Week %s"|@translate:$ACTIVITY_WEEK_NUMBER[$WEEK_NUMBER]} + {foreach from=$WEEK_ACTIVITY item=SIZE key=DAY_NUMBER} + + {if $SIZE != 0} + {assign var='SIZE_IN_UNIT' value=$SIZE/$ACTIVITY_CHART_NUMBER_SIZES * 5 + 1} + {assign var='OPACITY_IN_UNIT' value=$SIZE/$ACTIVITY_CHART_NUMBER_SIZES * 0.6 + 0.2} + + {if $ACTIVITY_LAST_WEEKS[$WEEK_NUMBER][$DAY_NUMBER]["number"] != 0} + + + {if $ACTIVITY_LAST_WEEKS[$WEEK_NUMBER][$DAY_NUMBER]["number"] > 1}{"%s Activities"|@translate:$ACTIVITY_LAST_WEEKS[$WEEK_NUMBER][$DAY_NUMBER]["number"]}{else}{"%s Activity"|@translate:$ACTIVITY_LAST_WEEKS[$WEEK_NUMBER][$DAY_NUMBER]["number"]}{/if} + {$ACTIVITY_LAST_WEEKS[$WEEK_NUMBER][$DAY_NUMBER]["date"]} + + + {foreach from=$ACTIVITY_LAST_WEEKS[$WEEK_NUMBER][$DAY_NUMBER]["details"] item=actions key=cat} + + {if $cat == "Group"} {$cat|@translate} + {elseif $cat == "User"} {$cat|@translate} + {elseif $cat == "Album"} {$cat|@translate} + {elseif $cat == "Photo"} {$cat|@translate} + {elseif $cat == "Tag"} {$cat|@translate} + {else} {$cat|@translate} {/if} + + {foreach from=$actions item=number key=action} + {if $action == "Edit"} {$number} + {elseif $action == "Add"} {$number} + {elseif $action == "Delete"} {$number} + {elseif $action == "Login"} {$number} + {elseif $action == "Logout"} {$number} + {elseif $action == "Move"} {$number} + {else} ({$action|@translate}) {$number} + {/if} + {/foreach} + + {/foreach} + + {/if} + {/if} + + {/foreach} + {/foreach} + + {foreach from=array('Mon'|translate, 'Tue'|translate, 'Wed'|translate, 'Thu'|translate, 'Fri'|translate, 'Sat'|translate, 'Sun'|translate) item=day} + {$day} + {/foreach} + + + {"Storage"|@translate} {'%s MB used'|translate:(round($STORAGE_TOTAL/1000, 0))} + + + {foreach from=$STORAGE_CHART_DATA key=type item=value} + + {round($value/$STORAGE_TOTAL*100)}% + + {/foreach} + + + + {foreach from=$STORAGE_CHART_DATA key=type item=value} + {$type} + {/foreach} + + + + {foreach from=$STORAGE_CHART_DATA item=i key=type} + {$type|translate} + {/foreach} + + + {* .intro-chart *} + + {* .intro-page-container *} + {if $ENABLE_SYNCHRONIZATION} {'Quick Local Synchronization'|translate} @@ -149,4 +263,4 @@ jQuery().ready(function(){ {if isset($SUBSCRIBE_BASE_URL)} {'Subscribe %s to Piwigo Announcements Newsletter'|@translate:$EMAIL} {'... or hide this link'|translate} {/if} - + \ No newline at end of file diff --git a/admin/themes/default/template/languages_installed.tpl b/admin/themes/default/template/languages_installed.tpl index 192cfcc61..c7068d441 100644 --- a/admin/themes/default/template/languages_installed.tpl +++ b/admin/themes/default/template/languages_installed.tpl @@ -1,3 +1,20 @@ +{combine_script id='common' load='footer' path='admin/themes/default/js/common.js'} +{combine_script id='jquery.confirm' load='footer' require='jquery' path='themes/default/js/plugins/jquery-confirm.min.js'} +{combine_css path="themes/default/js/plugins/jquery-confirm.min.css"} +{footer_script} +$(".delete-lang-button").each(function() { + let title_msg = '{'Are you sure you want to delete the language "%s"?'|@translate|@escape:'javascript'}'; + const confirm_msg = '{"Yes, I am sure"|@translate}'; + const cancel_msg = '{"No, I have changed my mind"|@translate|@escape:'javascript'}'; + let lang_name = $(this).closest(".languageBox").find('.languageName').html(); + $(this).pwg_jconfirm_follow_href({ + alert_title: title_msg.replace("%s", lang_name), + alert_confirm: confirm_msg, + alert_cancel: cancel_msg + }); +}); +{/footer_script} + {'Installed Languages'|@translate} @@ -34,7 +51,7 @@ {if $language_state == 'inactive'} {'Activate'|@translate} - | {'Delete'|@translate} + | {'Delete'|@translate} {/if} diff --git a/admin/themes/default/template/maintenance.tpl b/admin/themes/default/template/maintenance.tpl index 040653261..1331bb1c9 100644 --- a/admin/themes/default/template/maintenance.tpl +++ b/admin/themes/default/template/maintenance.tpl @@ -1,10 +1,61 @@ +{combine_script id='common' load='footer' path='admin/themes/default/js/common.js'} +{combine_script id='jquery.confirm' load='footer' require='jquery' path='themes/default/js/plugins/jquery-confirm.min.js'} +{combine_css path="themes/default/js/plugins/jquery-confirm.min.css"} +{footer_script} +const confirm_msg = '{"Yes, I am sure"|@translate}'; +const cancel_msg = "{"No, I have changed my mind"|@translate}"; +$(".lock-gallery-button").each(function() { + const gallery_tip = '{"A locked gallery is only visible to administrators"|@translate|@escape:'javascript'}'; + let title = '{"Are you sure you want to lock the gallery?"|@translate}'; + let confirm_msg_gallery = '{"Yes, I want to lock the gallery"|@translate}'; + let cancel_msg_gallery = '{"Keep it unlocked"|@translate}'; + $(this).pwg_jconfirm_follow_href({ + alert_title: title, + alert_confirm: confirm_msg, + alert_cancel: cancel_msg, + alert_content: gallery_tip + }); +}); +$(".purge-history-detail-button").each(function() { + const title = '{"Purge history detail"|@translate|@escape:'javascript'}'; + $(this).pwg_jconfirm_follow_href({ + alert_title: title, + alert_confirm: confirm_msg, + alert_cancel: cancel_msg + }); +}); +$(".purge-history-summary-button").each(function() { + const title = '{"Purge history summary"|@translate|@escape:'javascript'}'; + $(this).pwg_jconfirm_follow_href({ + alert_title: title, + alert_confirm: confirm_msg, + alert_cancel: cancel_msg + }); +}); +$(".purge-search-history-button").each(function() { + const title = '{"Purge search history"|@translate|@escape:'javascript'}'; + $(this).pwg_jconfirm_follow_href({ + alert_title: title, + alert_confirm: confirm_msg, + alert_cancel: cancel_msg + }); +}); +$(".delete-all-sizes-button").each(function() { + const title = '{"Are you sure you want to delete all sizes?"|@translate|@escape:'javascript'}'; + $(this).pwg_jconfirm_follow_href({ + alert_title: title, + alert_confirm: confirm_msg, + alert_cancel: cancel_msg + }); +}); +{/footer_script} {'Maintenance'|@translate} {if (isset($U_MAINT_LOCK_GALLERY))} - {'Lock gallery'|@translate} + {'Lock gallery'|@translate} {else} {'Unlock gallery'|@translate} {/if} @@ -29,14 +80,15 @@ {'Purge user cache'|@translate} {'Delete orphan tags'|@translate} - {'Purge history detail'|@translate} - {'Purge history summary'|@translate} + {'Purge history detail'|@translate} + {'Purge history summary'|@translate} {'Purge sessions'|@translate} {'Purge never used notification feeds'|@translate} - {'Purge search history'|@translate} + {'Purge search history'|@translate} {'Purge compiled templates'|@translate} {'Delete multiple size images'|@translate}: - {foreach from=$purge_derivatives key=name item=url name=loop}{if !$smarty.foreach.loop.first}, {/if}{$name}{/foreach} + {foreach from=$purge_derivatives key=name item=url name=loop} + {$name}{if !$smarty.foreach.loop.last}, {/if}{/foreach} diff --git a/admin/themes/default/template/navigation_bar.tpl b/admin/themes/default/template/navigation_bar.tpl index 82c66bd15..b605da4b2 100644 --- a/admin/themes/default/template/navigation_bar.tpl +++ b/admin/themes/default/template/navigation_bar.tpl @@ -1,28 +1,34 @@ - + {if isset($navbar.URL_FIRST)} - {'First'|@translate} | - {'Previous'|@translate} | + + + {else} - {'First'|@translate} | - {'Previous'|@translate} | + + + {/if} {assign var='prev_page' value=0} + {foreach from=$navbar.pages key=page item=url} - {if $page > $prev_page+1}...{/if} + {if $page > $prev_page+1}...{/if} {if $page == $navbar.CURRENT_PAGE} - {$page} + {$page} {else} {$page} {/if} {assign var='prev_page' value=$page} {/foreach} + {if isset($navbar.URL_NEXT)} - | {'Next'|@translate} - | {'Last'|@translate} + + + {else} - | {'Next'|@translate} - | {'Last'|@translate} + + + {/if} diff --git a/admin/themes/default/template/notification_by_mail.tpl b/admin/themes/default/template/notification_by_mail.tpl index 95506616c..c9c905fc8 100644 --- a/admin/themes/default/template/notification_by_mail.tpl +++ b/admin/themes/default/template/notification_by_mail.tpl @@ -21,6 +21,8 @@ jQuery(document).ready(function(){ + + {if isset($REPOST_SUBMIT_NAME)} @@ -37,7 +39,7 @@ jQuery(document).ready(function(){ {'Send mail on HTML format'|@translate} {'Yes'|@translate} - {'No'|@translate} + {'No'|@translate} @@ -51,7 +53,7 @@ jQuery(document).ready(function(){ {'Add detailed content'|@translate} {'Yes'|@translate} - {'No'|@translate} + {'No'|@translate} @@ -65,7 +67,7 @@ jQuery(document).ready(function(){ {'Yes'|@translate} - {'No'|@translate} + {'No'|@translate} @@ -129,7 +131,7 @@ jQuery(document).ready(function(){ {if isset($auth_key_duration)} - {'Informations'|@translate} + {'Informations'|@translate} {'Each email sent will contain its own automatic authentication key on links, valid for %s.'|translate:$auth_key_duration} {'For security reason, authentication keys do not work for administrators.'|translate} diff --git a/admin/themes/default/template/permalinks.tpl b/admin/themes/default/template/permalinks.tpl index 648048949..a7e9f6a31 100644 --- a/admin/themes/default/template/permalinks.tpl +++ b/admin/themes/default/template/permalinks.tpl @@ -63,7 +63,7 @@ form fieldset p.actionButtons {margin-bottom:0} - {'Permalinks'|@translate} + {'Permalinks'|@translate} Id {$SORT_ID} @@ -81,7 +81,7 @@ form fieldset p.actionButtons {margin-bottom:0} - {'Permalink history'|@translate} + {'Permalink history'|@translate} Id {$SORT_OLD_CAT_ID} diff --git a/admin/themes/default/template/photos_add_applications.tpl b/admin/themes/default/template/photos_add_applications.tpl index cc282fa33..2191e186f 100644 --- a/admin/themes/default/template/photos_add_applications.tpl +++ b/admin/themes/default/template/photos_add_applications.tpl @@ -37,6 +37,16 @@ fieldset p {text-align:left;margin-top:0} + + {'Piwigo for Android'|@translate} + +{'Piwigo for Android application empowers you to connect your Android phone or table to your Piwigo gallery, create some albums and upload several photos at once.'|@translate} + + +{'Available on'|@translate} Google Play + + + Lightroom @@ -128,4 +138,4 @@ fieldset p {text-align:left;margin-top:0} {'Available on'|@translate} Google Play -*} \ No newline at end of file +*} diff --git a/admin/themes/default/template/photos_add_direct.tpl b/admin/themes/default/template/photos_add_direct.tpl index db0782869..52cb21626 100644 --- a/admin/themes/default/template/photos_add_direct.tpl +++ b/admin/themes/default/template/photos_add_direct.tpl @@ -1,11 +1,7 @@ {combine_script id='common' load='footer' path='admin/themes/default/js/common.js'} - -{combine_script id='jquery.jgrowl' load='footer' require='jquery' path='themes/default/js/plugins/jquery.jgrowl_minimized.js'} - {combine_script id='jquery.plupload' load='footer' require='jquery' path='themes/default/js/plugins/plupload/plupload.full.min.js'} {combine_script id='jquery.plupload.queue' load='footer' require='jquery' path='themes/default/js/plugins/plupload/jquery.plupload.queue/jquery.plupload.queue.min.js'} -{combine_css path="themes/default/js/plugins/jquery.jgrowl.css"} {combine_css path="themes/default/js/plugins/plupload/jquery.plupload.queue/css/jquery.plupload.queue.css"} {assign var="plupload_i18n" value="themes/default/js/plugins/plupload/i18n/`$lang_info.plupload_code`.js"} @@ -138,6 +134,7 @@ jQuery(document).ready(function(){ QueueChanged : function(up) { jQuery('#addFiles').addClass("addFilesButtonChanged"); jQuery('#startUpload').prop('disabled', up.files.length == 0); + jQuery("#addFiles").removeClass('buttonGradient').addClass('buttonLike'); if (up.files.length > 0) { jQuery('.plupload_filelist_footer').show(); @@ -146,6 +143,7 @@ jQuery(document).ready(function(){ if (up.files.length == 0) { jQuery('#addFiles').removeClass("addFilesButtonChanged"); + jQuery("#addFiles").removeClass('buttonLike').addClass('buttonGradient'); jQuery('.plupload_filelist_footer').hide(); jQuery('.plupload_filelist').css("overflow-y", "hidden"); } @@ -262,7 +260,7 @@ jQuery(document).ready(function(){ 0} style="display:none;"{/if}> {'Welcome!'|translate} {'Piwigo requires an album to add photos.'|translate} - {'Create a first album'|translate} + {'Create a first album'|translate} @@ -294,8 +292,8 @@ jQuery(document).ready(function(){ - {'Drop into album'|@translate} - {$ADD_TO_ALBUM} + {'Drop into album'|@translate} + {$ADD_TO_ALBUM} @@ -316,9 +314,9 @@ jQuery(document).ready(function(){ *} - {'Select files'|@translate} + {'Select files'|@translate} - {'Add Photos'|translate} + {'Add Photos'|translate} {if isset($original_resize_maxheight)} {'The picture dimensions will be reduced to %dx%d pixels.'|@translate:$original_resize_maxwidth:$original_resize_maxheight} @@ -338,14 +336,13 @@ jQuery(document).ready(function(){ - {'Cancel'|translate} - - + + {'Cancel'|translate} - {'Start Upload'|translate} + {'Start Upload'|translate} diff --git a/admin/themes/default/template/picture_modify.tpl b/admin/themes/default/template/picture_modify.tpl index 7aab2831a..500550a67 100644 --- a/admin/themes/default/template/picture_modify.tpl +++ b/admin/themes/default/template/picture_modify.tpl @@ -7,6 +7,9 @@ {combine_script id='jquery.selectize' load='footer' path='themes/default/js/plugins/selectize.min.js'} {combine_css id='jquery.selectize' path="themes/default/js/plugins/selectize.{$themeconf.colorscheme}.css"} +{combine_script id='jquery.confirm' load='footer' require='jquery' path='themes/default/js/plugins/jquery-confirm.min.js'} +{combine_css path="themes/default/js/plugins/jquery-confirm.min.css"} + {footer_script} (function(){ {* *} @@ -41,53 +44,91 @@ jQuery(function(){ {* *} jQuery("a.preview-box").colorbox({ photo: true }); + +str_are_you_sure = '{'Are you sure?'|translate}'; +str_yes = '{'Yes, delete'|translate}'; +str_no = '{'No, I have changed my mind'|translate|@escape:'javascript'}'; +url_delete = '{$U_DELETE}'; + +{literal} +$('#action-delete-picture').on('click', function() { + $.confirm({ + title: str_are_you_sure, + draggable: false, + titleClass: "groupDeleteConfirm", + theme: "modern", + content: "", + animation: "zoom", + boxWidth: '30%', + useBootstrap: false, + type: 'red', + animateFromElement: false, + backgroundDismiss: true, + typeAnimated: false, + buttons: { + confirm: { + text: str_yes, + btnClass: 'btn-red', + action: function () { + window.location.href = url_delete.replaceAll('amp;', ''); + } + }, + cancel: { + text: str_no + } + } + }); +}) +{/literal} + }()); {/footer_script} -{$TITLE} › {'Edit photo'|@translate} {$TABSHEET_TITLE} +{'Edit photo #%s'|@translate:$INTRO.id} - + + + + {if isset($U_JUMPTO)} + + {else} + + {/if} + + + + + + + + + + + + + + + + {$INTRO.file} + {$INTRO.size} + {$INTRO.formats} + {$INTRO.ext} + + - - {'Informations'|@translate} + + + + + + {$INTRO.date} + {$INTRO.age} + {$INTRO.added_by} + {$INTRO.stats} + + + - - - - - - - - - {$INTRO.file} - {$INTRO.add_date} - {$INTRO.added_by} - {$INTRO.size} - {$INTRO.formats} - {$INTRO.stats} - {$INTRO.id} - - - - - {if isset($U_JUMPTO) } - {'jump to photo'|@translate} → - {/if} - {'Download'|translate} - {if !url_is_remote($PATH)} - {'Synchronize metadata'|@translate} - - {'delete photo'|@translate} - {/if} - - - - - - - - - {'Properties'|@translate} {'Title'|@translate} @@ -105,7 +146,7 @@ jQuery("a.preview-box").colorbox({ {'Creation date'|@translate} - + @@ -117,7 +158,7 @@ jQuery("a.preview-box").colorbox({ + data-default="{$STORAGE_ALBUM}" name="associate[]" multiple style="width:calc(100% + 2px);"> @@ -125,7 +166,7 @@ jQuery("a.preview-box").colorbox({ + name="represent[]" multiple style="width:calc(100% + 2px);"> @@ -133,7 +174,7 @@ jQuery("a.preview-box").colorbox({ + data-create="true" name="tags[]" multiple style="width:calc(100% + 2px);"> @@ -145,15 +186,16 @@ jQuery("a.preview-box").colorbox({ {'Who can see this photo?'|@translate} + {html_options options=$level_options selected=$level_options_selected} - - - - - + + + + + diff --git a/admin/themes/default/template/plugins_installed.tpl b/admin/themes/default/template/plugins_installed.tpl index 9864abd9d..9531f16ac 100644 --- a/admin/themes/default/template/plugins_installed.tpl +++ b/admin/themes/default/template/plugins_installed.tpl @@ -1,13 +1,26 @@ {combine_script id='jquery.ajaxmanager' load='footer' require='jquery' path='themes/default/js/plugins/jquery.ajaxmanager.js' } +{combine_script id='common' load='footer' path='admin/themes/default/js/common.js'} {footer_script require='jquery.ajaxmanager'} /* incompatible message */ var incompatible_msg = '{'WARNING! This plugin does not seem to be compatible with this version of Piwigo.'|@translate|@escape:'javascript'}'; var activate_msg = '\n{'Do you want to activate anyway?'|@translate|@escape:'javascript'}'; +var deactivate_all_msg = '{'Deactivate all'|@translate}'; + +var showInactivePlugins = function() { + jQuery(".showInactivePlugins").fadeOut(complete=function(){ + jQuery(".plugin-inactive").fadeIn(); + }) + } /* group action */ -var pwg_token = '{$PWG_TOKEN}'; -var confirmMsg = '{'Are you sure?'|@translate|@escape:'javascript'}'; +const pwg_token = '{$PWG_TOKEN}'; +const are_you_sure_msg = '{'Are you sure?'|@translate|@escape:'javascript'}'; +const confirm_msg = '{"Yes, I am sure"|@translate}'; +const cancel_msg = "{"No, I have changed my mind"|@translate}"; +let delete_plugin_msg = '{'Are you sure you want to delete the plugin "%s"?'|@translate|@escape:'javascript'}'; +let restore_plugin_msg = '{'Are you sure you want to restore the plugin "%s"?'|@translate|@escape:'javascript'}'; +const restore_tip_msg = "{'Restore default configuration. You will lose your plugin settings!'|@translate}"; {literal} var queuedManager = jQuery.manageAjax.create('queued', { queue: true, @@ -15,18 +28,56 @@ var queuedManager = jQuery.manageAjax.create('queued', { }); var nb_plugins = jQuery('div.active').size(); var done = 0; +/* group action */ jQuery(document).ready(function() { - /* group action */ - jQuery('div.deactivate_all a').click(function() { - if (confirm(confirmMsg)) { - jQuery('div.active').each(function() { - performPluginDeactivate(jQuery(this).attr('id')); - }); - } + $(".delete-plugin-button").each(function() { + let plugin_name = $(this).closest(".pluginContent").find(".pluginMiniBoxNameCell").html().trim(); + $(this).pwg_jconfirm_follow_href({ + alert_title: delete_plugin_msg.replace('%s', plugin_name), + alert_confirm: confirm_msg, + alert_cancel: cancel_msg + }); }); + $(".plugin-restore").each(function() { + let plugin_name = $(this).closest(".pluginContent").find(".pluginMiniBoxNameCell").html().trim(); + $(this).pwg_jconfirm_follow_href({ + alert_title: restore_plugin_msg.replace('%s', plugin_name), + alert_confirm: confirm_msg, + alert_cancel: cancel_msg, + alert_content: restore_tip_msg, + }); + }); + $(".uninstall-plugin-button").each(function() { + $(this).pwg_jconfirm_follow_href({ + alert_title: are_you_sure_msg, + alert_confirm: confirm_msg, + alert_cancel: cancel_msg + }); + }); + jQuery('div.deactivate_all a').click(function() { + $.confirm({ + title: deactivate_all_msg, + buttons: { + confirm: { + text: confirm_msg, + btnClass: 'btn-red', + action: function () { + jQuery('div.active').each(function() { + performPluginDeactivate(jQuery(this).attr('id')); + }) + } + }, + cancel: { + text: cancel_msg + } + }, + ...jConfirm_confirm_options + }); + }); + function performPluginDeactivate(id) { - queuedManager.add({ + queuedManager.add({ type: 'GET', dataType: 'json', url: 'ws.php', @@ -56,7 +107,13 @@ jQuery(document).ready(function() { {/if} {literal} jQuery('#'+data[i]).addClass('incompatible'); - jQuery('#'+data[i]+' .activate').attr('onClick', 'return confirm(incompatible_msg + activate_msg);'); + jQuery('#'+data[i]+' .activate').each(function () { + $(this).pwg_jconfirm_follow_href({ + alert_title: incompatible_msg + activate_msg, + alert_confirm: confirm_msg, + alert_cancel: cancel_msg + }); + }); } jQuery('.warning').tipTip({ 'delay' : 0, @@ -67,61 +124,150 @@ jQuery(document).ready(function() { } }); }); - - /* TipTips */ - jQuery('.plugin-restore').tipTip({ - 'delay' : 0, - 'fadeIn' : 200, - 'fadeOut' : 200 - }); - jQuery('.showInfo').tipTip({ - 'delay' : 0, + jQuery('.fullInfo').tipTip({ + 'delay' : 500, 'fadeIn' : 200, 'fadeOut' : 200, 'maxWidth':'300px', - 'keepAlive':true, - 'activation':'click' + 'keepAlive':false, + }); + + /* Add the '...' for the overflow of the description line*/ + jQuery( document ).ready(function () { + jQuery('.pluginDesc').each(function () { + var el = jQuery(this).context; + var wordArray = el.innerHTML.split(' '); + if (el.scrollHeight > el.offsetHeight) { + jQuery(this).attr('title', jQuery(this).html()) + } + while(el.scrollHeight > el.offsetHeight) { + wordArray.pop(); + el.innerHTML = wordArray.join(' ') + '...'; + } + }) + }); + + /*Add the filter research*/ + jQuery( document ).ready(function () { + jQuery(".pluginFilter input").on("input", function() { + let text = jQuery(this).val().toLowerCase(); + var searchNumber = 0; + jQuery('.pluginBoxes').each(function () { + let searchNumberInBox = 0; + let pluginBoxes = jQuery(this); + pluginBoxes.find(".pluginMiniBox").each(function() { + if (text == "") { + jQuery(this).fadeIn() + searchNumberInBox++; + } else { + let name = jQuery(this).find(".pluginMiniBoxNameCell").text().toLowerCase(); + let description = jQuery(this).find(".pluginDesc").text().toLowerCase(); + if (name.search(text) != -1 || description.search(text) != -1){ + jQuery(this).fadeIn() + searchNumberInBox++; + } else { + jQuery(this).fadeOut() + } + } + }) + if (searchNumberInBox == 0) { + pluginBoxes.fadeOut(); + } else { + if (pluginBoxes.hasClass("plugin-inactive")) { + showInactivePlugins() + } else { + pluginBoxes.fadeIn(); + } + } + searchNumber += searchNumberInBox; + }); + if (searchNumber == 0) { + jQuery(".emptyResearch").fadeIn(); + } else { + jQuery(".emptyResearch").fadeOut(); + } + }); + }); + + /* Show Inactive plugins or button to show them*/ + jQuery( document ).ready(function () { + jQuery(".showInactivePlugins button").on('click', showInactivePlugins) }); }); + +$(document).mouseup(function (e) { + e.stopPropagation(); + $(".pluginMiniBox").each(function() { + if ($(this).find(".showOptions").has(e.target).length === 0) { + $(this).find(".PluginOptionsBlock").hide(); + } + }) +}); + +jQuery(".pluginMiniBox").each(function(index){ + let myplugin = jQuery(this); + myplugin.find(".showOptions").click(function(){ + myplugin.find(".PluginOptionsBlock").toggle(); + }); +}) + {/literal} {/footer_script} +{combine_script id='jquery.confirm' load='footer' require='jquery' path='themes/default/js/plugins/jquery-confirm.min.js'} +{combine_css path="themes/default/js/plugins/jquery-confirm.min.css"} +{combine_script id='tiptip' load='header' path='themes/default/js/plugins/jquery.tipTip.minified.js'} + {'Plugins'|@translate} - - {if $show_details} - {'hide details'|@translate} - {else} - {'show details'|@translate} - {/if} - - {if isset($plugins)} {assign var='field_name' value='null'} {* *} {counter start=0 assign=i} {* *} + + + + + + + + {'No plugins found'|@translate} + {foreach from=$plugins item=plugin name=plugins_loop} {if $field_name != $plugin.STATE} {if $field_name != 'null'} - - {/if} - - - - {if $plugin.STATE == 'active'} - {'Active Plugins'|@translate} - {elseif $plugin.STATE == 'inactive'} - {'Inactive Plugins'|@translate} - {elseif $plugin.STATE == 'missing'} - {'Missing Plugins'|@translate} - {elseif $plugin.STATE == 'merged'} - {'Obsolete Plugins'|@translate} - {/if} - + {* PluginBoxes Container*} + {* PluginBoxes*} + {/if} + + 8}style="display:none"{/if}{/if}> {assign var='field_name' value=$plugin.STATE} + + + + + {if $plugin.STATE == 'active'} + {'Active Plugins'|@translate} + {elseif $plugin.STATE == 'inactive'} + {'Inactive Plugins'|@translate} + {elseif $plugin.STATE == 'missing'} + {'Missing Plugins'|@translate} + {elseif $plugin.STATE == 'merged'} + {'Obsolete Plugins'|@translate} + {/if} + + {$count_types_plugins[$plugin.STATE]} + + + {if $plugin.STATE == 'active'} + {'Deactivate all'|@translate} + {/if} + + + {/if} {if not empty($plugin.AUTHOR)} @@ -131,91 +277,67 @@ jQuery(document).ready(function() { {assign var='author' value=''|cat:$plugin.AUTHOR|cat:''} {/if} {/if} - - {if $show_details} - - - - - {$plugin.NAME} - - {$plugin.DESC} - - - - {if $plugin.STATE == 'active'} - {'Deactivate'|@translate} - | {'Restore'|@translate} - {elseif $plugin.STATE == 'inactive'} - {'Activate'|@translate} - | {'Delete'|@translate} - - {elseif $plugin.STATE == 'missing'} - {'Uninstall'|@translate} - - {elseif $plugin.STATE == 'merged'} - {'Delete'|@translate} - {/if} - - - {'Version'|@translate} {$plugin.VERSION} - - {if not empty($author)} - | {'By %s'|@translate:$author} - {/if} - - {if not empty($plugin.VISIT_URL)} - | {'Visit plugin site'|@translate} - {/if} - - - - {**} - + {if not empty($plugin.VISIT_URL)} + {assign var='version' value=""|cat:$plugin.VERSION|cat:""} {else} - {if not empty($plugin.VISIT_URL)} - {assign var='version' value=""|cat:$plugin.VERSION|cat:""} - {else} - {assign var='version' value=$plugin.VERSION} - {/if} - - + {assign var='version' value=$plugin.VERSION} + {/if} + + + + + {if $plugin.STATE == 'active' || $plugin.STATE == 'inactive'} + + {/if} + + + + {if !empty($author)}{'By %s'|@translate:$author}{/if}{'Version'|@translate} {$version} + {if $plugin.STATE == 'active'} + {'Deactivate'|@translate} + {'Restore'|@translate} + {elseif $plugin.STATE == 'inactive'} + {'Delete'|@translate} + {/if} + {$plugin.NAME} - + + + {$plugin.DESC} - {if $plugin.STATE == 'active'} - {'Deactivate'|@translate} - | {'Restore'|@translate} - + {if $plugin.SETTINGS_URL != ''} + {'Settings'|@translate} + {else} + {'Settings'|@translate} + {/if} {elseif $plugin.STATE == 'inactive'} - {'Activate'|@translate} - | {'Delete'|@translate} - + {'Activate'|@translate} {elseif $plugin.STATE == 'missing'} - {'Uninstall'|@translate} - + {'Uninstall'|@translate} {elseif $plugin.STATE == 'merged'} - {'Delete'|@translate} - {/if} - + {'Delete'|@translate} + {/if} - {**} + - {/if} - -{if $plugin.STATE == 'active'} - {counter} - {if $active_plugins == $i} - {'Deactivate all'|@translate} - {counter} - {/if} -{/if} - -{/foreach} - + {**} + + + + {/foreach} + {* PluginBoxes Container*} + {* PluginBoxes*} + + + + {assign var='badge_inactive' value='%s'|@sprintf:$count_types_plugins["inactive"]} + {'You have %s inactive plugins'|translate:$badge_inactive} + + {'Show inactive plugins'|@translate} + {/if} diff --git a/admin/themes/default/template/plugins_new.tpl b/admin/themes/default/template/plugins_new.tpl index 4d55f9735..1b7be30d7 100644 --- a/admin/themes/default/template/plugins_new.tpl +++ b/admin/themes/default/template/plugins_new.tpl @@ -1,6 +1,15 @@ {combine_script id='jquery.sort' load='footer' path='themes/default/js/plugins/jquery.sort.js'} -{footer_script require='jquery.ui.effect-blind,jquery.sort'}{literal} +{combine_script id='common' load='footer' path='admin/themes/default/js/common.js'} +{combine_script id='jquery.confirm' load='footer' require='jquery' path='themes/default/js/plugins/jquery-confirm.min.js'} +{combine_css path="themes/default/js/plugins/jquery-confirm.min.css"} + +{footer_script require='jquery.ui.effect-blind,jquery.sort'} +const install_title = '{'Are you sure you want to install this plugin?'|@translate|@escape:'javascript'}'; +const confirm_msg = '{"Yes, I am sure"|@translate}'; +const cancel_msg = "{"No, I have changed my mind"|@translate}"; +let title = '{'Are you sure you want to install the plugin "%s"?'|@translate|@escape:'javascript'}'; +{literal} var sortOrder = 'date'; var sortPlugins = (function(a, b) { if (sortOrder == 'downloads' || sortOrder == 'revision' || sortOrder == 'date') @@ -33,32 +42,34 @@ jQuery(document).ready(function(){ }); jQuery('#filter').keyup(function(){ - var filter = $(this).val(); - if (filter.length>2) { - $('.pluginBox').hide(); - $('#availablePlugins .pluginBox input[name="name"]').each(function(){ - if ($(this).val().toUpperCase().indexOf(filter.toUpperCase()) != -1) { - $(this).parents('div').show(); - } + var filter = $(this).val(); + if (filter.length>2) { + $('.pluginBox').hide(); + $('#availablePlugins .pluginBox input[name="name"]').each(function(){ + if ($(this).val().toUpperCase().indexOf(filter.toUpperCase()) != -1) { + $(this).parents('div').show(); + } + }); + } else { + $('.pluginBox').show(); + } + jQuery("#filter").focus(); + }); + $(".install-plugin-button").each(function() { + let plugin_name = $(this).closest(".pluginBox").find("input[name=\"name\"]").val(); + $(this).pwg_jconfirm_follow_href({ + alert_title: title.replace("%s", plugin_name), + alert_confirm: confirm_msg, + alert_cancel: cancel_msg }); - } - else { - $('.pluginBox').show(); - } - }); - jQuery("#filter").focus(); - jQuery(".titrePage input[name='Clear']").click(function(){ - $("#filter").val(''); - $(".pluginBox").show(); - }); + }); }); {/literal}{/footer_script} -{'Filter'|@translate} : - | -{'Sort order'|@translate} : + {'Filter'|@translate} + {'Sort order'|@translate} {html_options name="selectOrder" options=$order_options selected=$order_selected} {'Plugins'|@translate} @@ -93,7 +104,7 @@ jQuery(document).ready(function(){ - {'Install'|@translate} + {'Install'|@translate} | {'Download'|@translate} diff --git a/admin/themes/default/template/rating.tpl b/admin/themes/default/template/rating.tpl index 7be061e16..f78e06319 100644 --- a/admin/themes/default/template/rating.tpl +++ b/admin/themes/default/template/rating.tpl @@ -38,7 +38,7 @@ jQuery("select[name=cat]").change(function(){ - {'Filter'|@translate} + {'Filter'|@translate} {'Sort by'|@translate} diff --git a/admin/themes/default/template/rating_user.tpl b/admin/themes/default/template/rating_user.tpl index 6d93f9610..873882a68 100644 --- a/admin/themes/default/template/rating_user.tpl +++ b/admin/themes/default/template/rating_user.tpl @@ -67,7 +67,9 @@ body .ui-tooltip { - +{combine_script id='common' load='footer' path='admin/themes/default/js/common.js'} +{combine_script id='jquery.confirm' load='footer' require='jquery' path='themes/default/js/plugins/jquery-confirm.min.js'} +{combine_css path="themes/default/js/plugins/jquery-confirm.min.css"} {combine_script id='core.scripts' load='async' path='themes/default/js/scripts.js'} {combine_script id='jquery.geoip' load='async' path='admin/themes/default/js/jquery.geoip.js'} {footer_script} @@ -126,29 +128,43 @@ function uidFromCell(cell){ $(document).ready( function(){ $("#rateTable").on( "click", ".del", function(e) { e.preventDefault(); - if (!confirm('{'Are you sure?'|@translate|@escape:'javascript'}')) - return; - var cell = e.target.parentNode, - tr = cell; - while ( tr.nodeName != "TR") tr = tr.parentNode; - tr = jQuery(tr).fadeTo(1000, 0.4); - - var data=uidFromCell(cell); - - (new PwgWS('{$ROOT_URL|@escape:javascript}')).callService( - 'pwg.rates.delete', { user_id:data.uid, anonymous_id:data.aid}, - { - method: 'POST', - onFailure: function(num, text) { tr.stop(); tr.fadeTo(0,1); alert(num + " " + text); }, - onSuccess: function(result){ - if (result) - oTable.row(tr[0]).remove().draw(); - else - alert(result); + const title_msg = '{'Are you sure you want to delete the ratings of the user "%s"?'|@translate|@escape:'javascript'}'; + const confirm_msg = '{"Yes, I am sure"|@translate}'; + const cancel_msg = "{"No, I have changed my mind"|@translate}"; + let usr_name = $(this).closest("tr").find(".usr").html(); + $.confirm({ + title: title_msg.replace("%s", usr_name), + buttons: { + confirm: { + text: confirm_msg, + btnClass: 'btn-red', + action: function () { + var cell = e.target.parentNode, + tr = cell; + while ( tr.nodeName != "TR") tr = tr.parentNode; + tr = jQuery(tr).fadeTo(1000, 0.4); + var data=uidFromCell(cell); + (new PwgWS('{$ROOT_URL|@escape:javascript}')).callService( + 'pwg.rates.delete', { user_id:data.uid, anonymous_id:data.aid}, + { + method: 'POST', + onFailure: function(num, text) { tr.stop(); tr.fadeTo(0,1); alert(num + " " + text); }, + onSuccess: function(result){ + if (result) + oTable.row(tr[0]).remove().draw(); + else + alert(result); + } + } + ); + } + }, + cancel: { + text: cancel_msg } - } - ); - + }, + ...jConfirm_confirm_options + }); }); }); diff --git a/admin/themes/default/template/site_manager.tpl b/admin/themes/default/template/site_manager.tpl index 242906027..674e25e33 100644 --- a/admin/themes/default/template/site_manager.tpl +++ b/admin/themes/default/template/site_manager.tpl @@ -6,8 +6,21 @@ jQuery(document).ready(function(){ }); }); {/literal}{/footer_script} - - +{combine_script id='common' load='footer' path='admin/themes/default/js/common.js'} +{combine_script id='jquery.confirm' load='footer' require='jquery' path='themes/default/js/plugins/jquery-confirm.min.js'} +{combine_css path="themes/default/js/plugins/jquery-confirm.min.css"} +{footer_script} +const title_msg = '{'Are you sure you want to delete this site?'|@translate|@escape:'javascript'}'; +const confirm_msg = '{"Yes, I am sure"|@translate}'; +const cancel_msg = "{"No, I have changed my mind"|@translate}"; +$(".delete-site-button").each(function() { + $(this).pwg_jconfirm_follow_href({ + alert_title: title_msg, + alert_confirm: confirm_msg, + alert_cancel: cancel_msg + }); +}); +{/footer_script} {'Site manager'|@translate} @@ -34,8 +47,7 @@ jQuery(document).ready(function(){ [{'Synchronize'|@translate}] {if isset($site.U_DELETE)} - [{'delete'|@translate}] + [{'delete'|@translate}] {/if} {if not empty($site.plugin_links)} diff --git a/admin/themes/default/template/site_update.tpl b/admin/themes/default/template/site_update.tpl index 2b2ec3f96..7d4482939 100644 --- a/admin/themes/default/template/site_update.tpl +++ b/admin/themes/default/template/site_update.tpl @@ -1,8 +1,16 @@ +{footer_script} +$('#syncFiles label').click(function () { + if ($("input[value='files']:checked").val()) { + $("input[value='files']").closest("li").find("ul").show(); + } else { + $("input[value='files']").closest("li").find("ul").hide(); + } +}) -{include file='include/resize.inc.tpl'} +{/footer_script} - {'Database synchronization with files'|@translate}: {$SITE_URL} + {'Synchronize'|@translate}{$SITE_URL} {if isset($update_result)} @@ -60,13 +68,13 @@ - {'synchronize files structure with database'|@translate} + {'synchronize files structure with database'|@translate} {'nothing'|@translate} {'only directories'|@translate} {'directories + files'|@translate} - + {'display maximum informations (added albums and photos, deleted albums and photos)'|@translate} {'add new photos to caddie'|@translate} {'Who can see these photos?'|@translate} {html_options options=$introduction.privacy_level_options selected=$introduction.privacy_level_selected} @@ -76,7 +84,7 @@ - {'synchronize files metadata with database photos informations'|@translate} + {'synchronize files metadata with database photos informations'|@translate} {'Synchronize metadata'|@translate} ({$METADATA_LIST}) @@ -89,12 +97,12 @@ - {'Simulation'|@translate} + {'Simulation'|@translate} {'only perform a simulation (no change in database will be made)'|@translate} - {'reduce to single existing albums'|@translate} + {'reduce to single existing albums'|@translate} diff --git a/admin/themes/default/template/stats.tpl b/admin/themes/default/template/stats.tpl index 692a3a6c5..d97e5fe5a 100644 --- a/admin/themes/default/template/stats.tpl +++ b/admin/themes/default/template/stats.tpl @@ -1,25 +1,61 @@ +{footer_script} +var str_number_page_visited = "{'Page Visited'|@translate}"; +var str_number_page_visited_with_year = "{'Page Visited in %s'|@translate}"; +var str_tooltip_format = { + "years":"YYYY", + "months":"MMMM YYYY", + "days":"DD MMM", + "hours":"LT" +}; +var str_unit_format = { + "day":"dddd", + "month":"MMM YYYY" +} +var str_avg = "{'Average last 12 months'|@translate}" +var str_months = ["{'January'|@translate}", "{'February'|@translate}", "{'March'|@translate}", "{'April'|@translate}", "{'May'|@translate}", "{'June'|@translate}", "{'July'|@translate}", "{'August'|@translate}", "{'September'|@translate}", "{'Octobember'|@translate}", "{'November'|@translate}", "{'December'|@translate}"]; +moment.locale("{$langCode}"); +{/footer_script} + +{combine_script id='chart.js' load='footer' path='themes/default/js/plugins/Chart.min.js'} +{combine_css path="themes/default/js/plugins/Chart.min.css"} + +{combine_script id='moment-with-locales.js' path='themes/default/js/plugins/moment-with-locales.min.js'} + +{combine_script id='stats' load='footer' path='admin/themes/default/js/stats.js'} - {'History'|@translate} {$TABSHEET_TITLE} + {'History'|@translate} -{$L_STAT_TITLE} + + + + + + {'Compare mode'|@translate} + - - - {$PERIOD_LABEL} - {'Pages seen'|@translate} - - + + + + + {"Hour"|@translate} + + {"Day"|@translate} + + {"Month"|@translate} + + {"Year"|@translate} + + -{if not empty($statrows)} -{foreach from=$statrows item=row} - - {$row.VALUE} - {$row.PAGES} - - -{/foreach} -{/if} - - + + Your browser does not support the canvas element. + diff --git a/admin/themes/default/template/tags.tpl b/admin/themes/default/template/tags.tpl index 8d22e72f0..c82b6e000 100644 --- a/admin/themes/default/template/tags.tpl +++ b/admin/themes/default/template/tags.tpl @@ -1,336 +1,195 @@ -{combine_script id='common' load='footer' path='admin/themes/default/js/common.js'} -{include file='include/tag_selection.inc.tpl'} - -{html_style} -.showInfo { text-indent:5px; } -form fieldset p { margin-left:0; } -{/html_style} - -{footer_script require='jquery'} -/** - * Add tag - */ -jQuery("#addTag").click(function() { - jQuery("#addTagForm").toggle(); - jQuery("input[name=add_tag]").focus(); - return false; -}); - -jQuery("#addTagClose").click(function() { - jQuery("#addTagForm").hide(); - return false; -}); - -jQuery("#selectionMode").click(function() { - if (jQuery(this).hasClass("icon-check-empty")) { - jQuery("#selectionMode").removeClass("icon-check-empty").addClass("icon-check"); - jQuery('label.font-checkbox span').show(); - jQuery('ul.tagSelection a.showInfo').hide(); - jQuery('fieldset#action').show(); - jQuery('fieldset#selectTags legend').html("{'Tag selection'|translate|escape:javascript}"); - } - else { - jQuery("#selectionMode").removeClass("icon-check").addClass("icon-check-empty"); - jQuery('label.font-checkbox span').hide(); - jQuery('ul.tagSelection a.showInfo').show(); - jQuery('fieldset#action').hide(); - jQuery('fieldset#selectTags legend').html("{'Tags'|translate|escape:javascript}"); - } - return false; -}); - - -jQuery('.showInfo').tipTip({ - 'delay' : 0, - 'fadeIn' : 200, - 'fadeOut' : 200, - 'maxWidth':'300px', - 'keepAlive':true, - 'activation':'click' -}); - -function displayDeletionWarnings() { - jQuery(".warningDeletion").show(); - jQuery("input[name=destination_tag]:checked").parent("label").children(".warningDeletion").hide(); -} - -displayDeletionWarnings(); - -jQuery("#mergeTags label").click(function() { - displayDeletionWarnings(); -}); - -$("#searchInput").on("keydown", function(e) { - var $this = $(this), - timer = $this.data("timer"); - - if (timer) { - clearTimeout(timer); - } - - $this.data("timer", setTimeout(function() { - var val = $this.val(); - if (!val) { - $(".tagSelection>li").show(); - $("#filterIcon").css("visibility","hidden"); - } - else { - $("#filterIcon").css("visibility","visible"); - var regex = new RegExp( val.replace(/[\-\[\]{}()*+?.,\\\^$|#\s]/g, "\\$&"), "i" ); - $(".tagSelection>li").each(function() { - var $li = $(this), - text = $.trim( $("label", $li).text() ); - $li.toggle(regex.test(text)); - }); - } - - }, 300) ); - - if (e.keyCode == 13) { // Enter - e.preventDefault(); - } -}); - -jQuery('input[name="tags[]"]').click(function() { - var nbSelected = 0; - nbSelected = jQuery('input[name="tags[]"]').filter(':checked').length; - - if (nbSelected == 0) { - jQuery("#permitAction").hide(); - jQuery("#forbidAction").show(); - } - else { - jQuery("#permitAction").show(); - jQuery("#forbidAction").hide(); - } -}); - -jQuery("[id^=action_]").hide(); - -jQuery("select[name=selectAction]").change(function () { - jQuery("[id^=action_]").hide(); - - jQuery("#action_"+jQuery(this).prop("value")).show(); - - jQuery("#displayFormBlock").hide(); - jQuery("#applyActionBlock").hide(); - - if (jQuery(this).val() != -1 ) { - if (jQuery(this).val() == 'delete') { - jQuery("#applyActionBlock").show(); - jQuery("#applyAction").attr("name", jQuery(this).val()); - } - else { - jQuery("#displayForm").attr("name", jQuery(this).val()); - jQuery("#displayFormBlock").show(); - } - } - else { - } -}); - -jQuery("form").submit(function() { - if (jQuery("select[name=selectAction]").val() == "delete") { - if (!jQuery("input[name=confirm_deletion]").is(":checked")) { - jQuery("#action_delete .errors").show(); - return false; - } - } - - if (jQuery("select[name=selectAction]").val() == "merge") { - if (jQuery("ul.tagSelection input[type=checkbox]:checked").length < 2) { - alert("{'Select at least two tags for merging'|@translate}"); - return false; - } - } -}); - -jQuery("input[name=confirm_deletion]").change(function() { - jQuery("#action_delete .errors").hide(); -}); +{footer_script} +var pwg_token = "{$PWG_TOKEN}"; +var str_delete = '{'Delete tag "%s"?'|@translate}'; +var str_delete_tags = '{'Delete tags \{%s\}?'|@translate}'; +var str_yes_delete_confirmation = "{'Yes, delete'|@translate}"; +var str_no_delete_confirmation = "{"No, I have changed my mind"|@translate}"; +var str_tag_deleted = '{'Tag "%s" succesfully deleted'|@translate}'; +var str_tags_deleted = '{'Tags \{%s\} succesfully deleted'|@translate}'; +var str_already_exist = '{'Tag "%s" already exists'|@translate}'; +var str_tag_created = '{'Tag "%s" created'|@translate}'; +var str_tag_renamed = '{'Tag "%s1" renamed in "%s2"'|@translate}'; +var str_delete_orphan_tags = '{'Delete orphan tags ?'|@translate}'; +var str_orphan_tags = '{'You have %s1 orphan : %s2'|@translate}'; +var str_delete_them = '{'Delete them'|@translate}'; +var str_keep_them = '{'Keep them'|@translate}'; +var str_copy = '{' (copy)'|@translate}'; +var str_other_copy = '{' (copy %s)'|@translate}'; +var str_merged_into = '{'Tag(s) \{%s1\} succesfully merged into "%s2"'|@translate}'; +var str_and_others_tags = '{'and %s others'|@translate}'; +var str_others_tags_available = '{'%s other tags available...'|@translate}' +var str_number_photos = '{'%d photos'}' +var str_no_photos = '{'no photo'}' +var str_select_all_tag = '{'Select all %d tags'|@translate}'; +var str_clear_selection = '{'Clear Selection'|@translate}'; +var str_selection_done = '{'The %d tags on this page are selected'|@translate}'; +var str_tag_selected = '{'%d tag selected'|@translate}'; +var str_tags_found = '{'%d tags found'|@translate}'; +var str_tag_found = '{'%d tag found'|@translate}'; {/footer_script} +{combine_script id='common' load='footer' path='admin/themes/default/js/common.js'} +{combine_script id='jquery.confirm' load='footer' require='jquery' path='themes/default/js/plugins/jquery-confirm.min.js'} +{combine_css path="themes/default/js/plugins/jquery-confirm.min.css"} +{combine_css path="admin/themes/default/fontello/css/animation.css"} +{combine_script id='tiptip' load='header' path='themes/default/js/plugins/jquery.tipTip.minified.js'} +{combine_script id='tags' load='footer' path='admin/themes/default/js/tags.js'} + + + + + +{function name=tagContent} +{function tagContent} + {$tag_name} + + + + + {$tag_name} + {if !$has_image}{'no photo'|@translate}{else}{'%d photos'|@translate:$tag_count}{/if} + + {'View in gallery'|@translate} + {'Manage photos'|@translate} + {'Edit'|@translate} + {'Duplicate'|@translate} + {'Delete'|@translate} + + + + + + + + + + + + + +{/function} +{/function} - {'Manage tags'|@translate} + {'Tag Manager'|@translate} {$total} -{if !isset($EDIT_TAGS_LIST) and !isset($DUPLIC_TAGS_LIST) and !isset($MERGE_TAGS_LIST)} - - {'Add a tag'|translate} - {'Select tags'|translate} - + + + + + + {'Selection mode'|@translate} + - - + + - - {'Add a tag'|@translate} + {'No tags selected, no actions possible.'|@translate} - - {'New tag'|@translate} - - + + {'Your selection'|@translate} + + + + + {'Merge'|@translate} + {'Delete'|@translate} + - - - {'Cancel'|@translate} - - - -{/if} - - - - - {if isset($EDIT_TAGS_LIST)} - - {'Edit tags'|@translate} - - - - {'Current name'|@translate} - {'New name'|@translate} - - {foreach from=$tags item=tag} - - {$tag.NAME} - - - {/foreach} - - - - - - - - {/if} - - {if isset($DUPLIC_TAGS_LIST)} - - {'Edit tags'|@translate} - - - - {'Source tag'|@translate} - {'Name of the duplicate'|@translate} - - {foreach from=$tags item=tag} - - {$tag.NAME} - - - {/foreach} - - - - - - - - {/if} - - {if isset($MERGE_TAGS_LIST)} - - {'Merge tags'|@translate} - {'Select the destination tag'|@translate} - - - {foreach from=$tags item=tag name=tagloop} - {$tag.NAME} {'(this tag will be deleted)'|@translate} - {/foreach} - - - - - - - - - {/if} - -{if !isset($EDIT_TAGS_LIST) and !isset($DUPLIC_TAGS_LIST) and !isset($MERGE_TAGS_LIST)} - - - {'Tags'|@translate} - - {if count($all_tags)} - {'Search'|@translate} - {/if} - - - {foreach from=$all_tags item=tag} - - {capture name='showInfo'}{strip} - {$tag.name} ({$tag.counter|@translate_dec:'%d photo':'%d photos'}) - {'View in gallery'|@translate} | - {'Manage photos'|@translate} - {if !empty($tag.alt_names)}{$tag.alt_names}{/if} - {/strip}{/capture} - - - - - {$tag.name} - - - {/foreach} - - - - - - {'Action'|@translate} - {'No tag selected, no action possible.'|@translate} - - - - {'Choose an action'|@translate} - ------------------ - {'Edit selected tags'|@translate} - {'Duplicate selected tags'|@translate} - {'Merge selected tags'|@translate} - {'Delete selected tags'|@translate} -{if !empty($tag_manager_plugin_actions)} - {foreach from=$tag_manager_plugin_actions item=action} - {$action.NAME} - {/foreach} -{/if} + + {'Choose which tag to merge these tags into'|@translate} + {'The other tags will be removed'|@translate} + + + + Confirm merge + Cancel + - - - - - - - {'Are you sure?'|@translate} - - we really need you to confirm - - + + -{* plugins *} -{if !empty($tag_manage_plugin_actions)} - {foreach from=$element_set_groupe_plugins_actions item=action} - - {if !empty($action.CONTENT)}{$action.CONTENT}{/if} - + + + + + + + + + + + {'Add a tag'|@translate} + + + + + + + + + {'Select'|@translate} + {'All'|@translate} + {'None'|@translate} + {'Invert'|@translate} + + {if $warning_tags != ""} + {$warning_tags} + {/if} + {$message_tags} + + + + + + + + + + + + {foreach from=$first_tags item=tag} + + {tagContent + tag_name = $tag.name + tag_U_VIEW = 'index.php?/tags/%s-%s'|@sprintf:$tag['id']:$tag['url_name'] + tag_U_EDIT = 'admin.php?page=batch_manager&filter=tag-%s'|@sprintf:$tag['id'] + has_image = ($tag.counter > 0) + tag_count = $tag.counter + } + {/foreach} -{/if} - - {'Display form'|translate} - + + {'No tag found'|@translate} + + + {'Display'|@translate} + 100 + 200 + 500 + 1000 + - - - {'Apply action'|translate} {* icon-trash because the only action is deletion *} - - - - {* #permitAction *} - -{/if} + + + + + + + + + + + - + + {tagContent + tag_name='%name%' + tag_U_VIEW='%U_VIEW%' + tag_U_EDIT='%U_EDIT%' + has_image=false + tag_count='%count%' + } + \ No newline at end of file diff --git a/admin/themes/default/template/themes_installed.tpl b/admin/themes/default/template/themes_installed.tpl index 1c44f63ed..86319ec79 100644 --- a/admin/themes/default/template/themes_installed.tpl +++ b/admin/themes/default/template/themes_installed.tpl @@ -1,18 +1,65 @@ {include file='include/colorbox.inc.tpl'} +{combine_script id='common' load='footer' path='admin/themes/default/js/common.js'} +{combine_script id='jquery.confirm' load='footer' require='jquery' path='themes/default/js/plugins/jquery-confirm.min.js'} +{combine_css path="themes/default/js/plugins/jquery-confirm.min.css"} +{footer_script} +const title_msg = '{'Are you sure you want to delete this theme?'|@translate|@escape:'javascript'}'; +const confirm_msg = '{"Yes, I am sure"|@translate}'; +const cancel_msg = "{"No, I have changed my mind"|@translate}"; +$(".delete-theme-button").each(function() { + let theme_name = $(this).closest(".themeBox").find(".themeName").attr("title"); + let title = '{'Are you sure you want to delete the theme "%s"?'|@translate|@escape:'javascript'}'; + $(this).pwg_jconfirm_follow_href({ + alert_title: title.replace("%s", theme_name), + alert_confirm: confirm_msg, + alert_cancel: cancel_msg + }); +}); +{/footer_script} + {footer_script}{literal} jQuery(document).ready(function() { $("a.preview-box").colorbox(); - jQuery('.showInfo').tipTip({ - 'delay' : 0, - 'fadeIn' : 200, - 'fadeOut' : 200, - 'maxWidth':'300px', - 'keepAlive':true, - 'activation':'click' + $(document).mouseup(function (e) { + e.stopPropagation(); + if (!$(event.target).hasClass('showInfo')) { + $('.showInfo-dropdown').fadeOut(); + } }); + }); + +$(window).bind("load", function() { + $('.themeBox').each(function() { + + let box = $(this); + box.find('.showInfo').on('click', function() { + let dropdown = box.find('.showInfo-dropdown'); + $('.showInfo-dropdown').each(function() { + if ($(this) !== dropdown) { + $(this).fadeOut(); + } + }) + box.find('.showInfo-dropdown').fadeToggle(); + }); + + let screenImage = $(this).find(".preview-box img"); + let imageW = screenImage.innerWidth(); + let imageH = screenImage.innerHeight(); + let size = $(this).find(".preview-box").innerWidth(); + + if (imageW > imageH) { + screenImage.css('height', size+'px'); + screenImage.css('width', (imageW * size / imageH)+'px'); + } else { + screenImage.css('width', size+'px'); + screenImage.css('heigth', (imageH * size / imageW)+'px'); + } + }) +}) + {/literal}{/footer_script} @@ -33,9 +80,9 @@ jQuery(document).ready(function() { {if $theme.STATE == 'active'} - {'Active Themes'|@translate} + {'Active Themes'|@translate} {else} - {'Inactive Themes'|@translate} + {'Inactive Themes'|@translate} {/if} @@ -56,40 +103,49 @@ jQuery(document).ready(function() { {/if} - - {$theme.NAME} {if $theme.IS_DEFAULT}({'default'|@translate}){/if} {if $theme.IS_MOBILE}({'Mobile'|@translate}){/if} - - + + {$theme.NAME} {if $theme.IS_DEFAULT}({'default'|@translate}){/if} {if $theme.IS_MOBILE}({'Mobile'|@translate}){/if} + + + + + {if !empty($author)} + {'By %s'|@translate:$author} | + {/if} + {'Version'|@translate} {$version} + + + {$theme.DESC|@escape:'html'} + + {if $theme.STATE != "active"} + {if $theme.DELETABLE} + {'Delete'|@translate} + {else} + {'Delete'|@translate} + {/if} + {/if} + {if $theme.DEACTIVABLE} + {'Deactivate'|@translate} + {/if} + - {if $theme.STATE == 'active'} - {if $theme.DEACTIVABLE} - {'Deactivate'|@translate} - {else} - {'Deactivate'|@translate} - {/if} - - {if not $theme.IS_DEFAULT} - | {'Default'|@translate} - {/if} {if $theme.ADMIN_URI} - {'Configuration'|@translate} + {'Configuration'|@translate} + {/if} + {if not $theme.IS_DEFAULT} + {'Set as default'|@translate} + {else} + {'Set as default'|@translate} {/if} {else} {if $theme.ACTIVABLE} - {'Activate'|@translate} + {'Activate'|@translate} {else} - {'Activate'|@translate} - {/if} - | - {if $theme.DELETABLE} - {'Delete'|@translate} - {else} - {'Delete'|@translate} + {'Activate'|@translate} {/if} {/if} - diff --git a/admin/themes/default/template/themes_new.tpl b/admin/themes/default/template/themes_new.tpl index d897deabb..b15df45ab 100644 --- a/admin/themes/default/template/themes_new.tpl +++ b/admin/themes/default/template/themes_new.tpl @@ -1,8 +1,23 @@ {include file='include/colorbox.inc.tpl'} {footer_script}{literal} -jQuery(document).ready(function() { - $("a.preview-box").colorbox(); -}); + +$(window).bind("load", function() { + $('.themeBox').each(function() { + + let screenImage = $(this).find(".preview-box img"); + let imageW = screenImage.innerWidth(); + let imageH = screenImage.innerHeight(); + let size = $(this).find(".preview-box").innerWidth(); + + if (imageW > imageH) { + screenImage.css('height', size+'px'); + screenImage.css('width', (imageW * size / imageH)+'px'); + } else { + screenImage.css('width', size+'px'); + screenImage.css('heigth', (imageH * size / imageW)+'px'); + } + }) +}) {/literal}{/footer_script} {'Add New Theme'|@translate} @@ -11,11 +26,11 @@ jQuery(document).ready(function() { {if not empty($new_themes)} {foreach from=$new_themes item=theme name=themes_loop} - - {$theme.name} - - {'Install'|@translate} - + + + {$theme.name} + {'Install'|@translate} + {/foreach} {else} diff --git a/admin/themes/default/template/updates_ext.tpl b/admin/themes/default/template/updates_ext.tpl index 7d65c254a..a4b1cb52a 100644 --- a/admin/themes/default/template/updates_ext.tpl +++ b/admin/themes/default/template/updates_ext.tpl @@ -21,12 +21,10 @@ var queuedManager = $.manageAjax.create('queued', { }); function updateAll() { - if (confirm(confirmMsg)) { - jQuery('.updateExtension').each( function() { - if (jQuery(this).parents('div').css('display') == 'block') - jQuery(this).click(); - }); - } + jQuery('.updateExtension').each( function() { + if (jQuery(this).parents('div').css('display') == 'block') + jQuery(this).click(); + }); }; function ignoreAll() { @@ -129,8 +127,9 @@ function autoupdate_bar_toggle(i) { jQuery(document).ready(function() { jQuery("td[id^='desc_'], p[id^='revdesc_']").click(function() { id = this.id.split('_'); - jQuery("#revdesc_"+id[1]).toggle('blind'); + jQuery("#revdesc_"+id[1]).toggle(); jQuery(".button_"+id[1]).toggle(); + jQuery("#revdesc_"+id[1]).closest('tr').toggle(); return false; }); }); @@ -138,13 +137,41 @@ jQuery(document).ready(function() { checkFieldsets(); {/literal} {/footer_script} +{combine_script id='common' load='footer' path='admin/themes/default/js/common.js'} +{combine_script id='jquery.confirm' load='footer' require='jquery' path='themes/default/js/plugins/jquery-confirm.min.js'} +{combine_css path="themes/default/js/plugins/jquery-confirm.min.css"} +{footer_script} + +const are_you_sure_msg = '{'Are you sure?'|@translate|@escape:'javascript'}'; +const confirm_msg = '{"Yes, I am sure"|@translate}'; +const cancel_msg = "{"No, I have changed my mind"|@translate}"; +$("#update_all").click(function() { + const title_msg = "{'Are you sure you want to update all extensions?'|@translate}"; + $.confirm({ + title: title_msg, + buttons: { + confirm: { + text: confirm_msg, + btnClass: 'btn-red', + action: function () { + updateAll(); + } + }, + cancel: { + text: cancel_msg + } + }, + ...jConfirm_confirm_options + }); +}) +{/footer_script} {'Updates'|@translate} - + @@ -183,7 +210,7 @@ checkFieldsets(); | {'By %s'|@translate:$plugin.AUTHOR} - + {$plugin.REV_DESC|@htmlspecialchars|@nl2br} @@ -213,7 +240,7 @@ checkFieldsets(); | {'Ignore this update'|@translate} - + {'Version'|@translate} {$theme.CURRENT_VERSION} @@ -267,7 +294,7 @@ checkFieldsets(); | {'By %s'|@translate:$language.AUTHOR} - + {$language.REV_DESC|@htmlspecialchars|@nl2br} diff --git a/admin/themes/default/template/updates_pwg.tpl b/admin/themes/default/template/updates_pwg.tpl index 8205d9f25..b62f9b271 100644 --- a/admin/themes/default/template/updates_pwg.tpl +++ b/admin/themes/default/template/updates_pwg.tpl @@ -19,10 +19,44 @@ form { width: 750px; } fieldset { padding-bottom: 30px; } p, form p { text-align: left; margin-left:20px; } li { margin: 5px; } + +.badge-release { + padding:5px 10px; + border-radius: 5px; +} + +a.badge-release:hover { + text-decoration:none; + color: currentColor; +} + +.goto-update-page { + padding:5px 10px; + font-weight:bold; +} + +.goto-update-page:hover { + text-decoration:none; +} + +.update-recommendation { + margin-top:30px; +} + +p.release .errors {margin:0} {/literal} {/html_head} +{if isset($MINOR_RELEASE_PHP_REQUIRED) and isset($MAJOR_RELEASE_PHP_REQUIRED)} + + + + {'Please upgrade your PHP version before any update.'|translate} + + +{/if} + {'Updates'|@translate} @@ -38,29 +72,59 @@ li { margin: 5px; } {/if} {if $STEP == 1} -{'Two updates are available'|@translate}: - - - {'Update to Piwigo %s'|@translate:$MINOR_VERSION}: {'This is a minor update, with only bug corrections.'|@translate} - {'Update to Piwigo %s'|@translate:$MAJOR_VERSION}: {'This is a major update, with new exciting features.'|@translate:$RELEASE_URL} {'Some themes and plugins may be not available yet.'|@translate} - + + {'Two updates are available'|@translate} + + {$MINOR_VERSION} + {'This is a minor update, with only bug corrections.'|@translate} +{if isset($MINOR_RELEASE_PHP_REQUIRED)} + {'Requires PHP %s'|translate:$MINOR_RELEASE_PHP_REQUIRED} +{else} + {'Update to Piwigo %s'|@translate:$MINOR_VERSION} +{/if} -{'You can update to Piwigo %s directly, without upgrading to Piwigo %s (recommended).'|@translate:$MAJOR_VERSION:$MINOR_VERSION} + + + {$MAJOR_VERSION} + {'This is a major update, with new exciting features.'|translate:$MAJOR_RELEASE_URL} + {'Some themes and plugins may be not available yet.'|translate} +{if isset($MAJOR_RELEASE_PHP_REQUIRED)} + {'Requires PHP %s'|translate:$MAJOR_RELEASE_PHP_REQUIRED} +{else} + {'Update to Piwigo %s'|@translate:$MAJOR_VERSION} +{/if} + + + + {'You can update to Piwigo %s directly, without upgrading to Piwigo %s (recommended).'|@translate:$MAJOR_VERSION:$MINOR_VERSION} + + {/if} {if $STEP == 2} + + {$MINOR_VERSION} + {'A new version of Piwigo is available.'|@translate} {'This is a minor update, with only bug corrections.'|@translate} - + + +{if isset($MINOR_RELEASE_PHP_REQUIRED)} + {'Requires PHP %s'|translate:$MINOR_RELEASE_PHP_REQUIRED} +{/if} + {'Update in progress...'|@translate} {/if} {if $STEP == 3} + + {$MAJOR_VERSION} + {'A new version of Piwigo is available.'|@translate} {'This is a major update, with new exciting features.'|@translate:$RELEASE_URL} {'Some themes and plugins may be not available yet.'|@translate} @@ -69,14 +133,17 @@ li { margin: 5px; } {counter assign=i} - {'Dump Database'|@translate} - {'Include history data (Warning: server memory limit may be exceeded)'|@translate} - + {'Backup'|@translate} + + {'Always have a backup of your database and files.'|translate} + {'The best is to have them made automatically on a regular basis.'|translate} + {'If anything bad happens during the update, you would be able to restore a backup.'|translate} + {counter assign=i} - {'Update to Piwigo %s'|@translate:$UPGRADE_TO} + {'Update to Piwigo %s'|@translate:$UPGRADE_TO} {if !empty($missing.plugins)} {'Following plugins may not be compatible with the new version of Piwigo:'|@translate} {foreach from=$missing.plugins item=plugin}{$plugin.name}{/foreach} @@ -89,7 +156,10 @@ li { margin: 5px; } {if !empty($missing.plugins) or !empty($missing.themes)} {'I decide to update anyway'|@translate} {/if} - + +{if isset($MAJOR_RELEASE_PHP_REQUIRED)} + {'Requires PHP %s'|translate:$MAJOR_RELEASE_PHP_REQUIRED} +{/if} {'Update in progress...'|@translate} diff --git a/admin/themes/default/template/user_list.tpl b/admin/themes/default/template/user_list.tpl index 79abbe985..0d5569b5c 100644 --- a/admin/themes/default/template/user_list.tpl +++ b/admin/themes/default/template/user_list.tpl @@ -12,6 +12,9 @@ {combine_script id='jquery.ui.slider' require='jquery.ui' load='footer' path='themes/default/js/ui/minified/jquery.ui.slider.min.js'} {combine_css path="themes/default/js/ui/theme/jquery.ui.slider.css"} +{combine_script id='jquery.confirm' load='footer' require='jquery' path='themes/default/js/plugins/jquery-confirm.min.js'} +{combine_css path="themes/default/js/plugins/jquery-confirm.min.css"} + {footer_script} var selectedMessage_pattern = "{'%d of %d users selected'|translate|escape:javascript}"; var selectedMessage_none = "{'No user selected of %d users'|translate|escape:javascript}"; @@ -22,8 +25,10 @@ var registeredOn_pattern = "{'Registered on %s, %s.'|translate|escape:javascript var lastVisit_pattern = "{'Last visit on %s, %s.'|translate|escape:javascript}"; var missingConfirm = "{'You need to confirm deletion'|translate|escape:javascript}"; var missingUsername = "{'Please, enter a login'|translate|escape:javascript}"; +let title_msg = '{'Are you sure you want to delete the user "%s"?'|@translate|escape:'javascript'}'; -var allUsers = [{$all_users}]; +var filteredUsers = []; +var nb_all_users = 0; var selection = []; var pwg_token = "{$PWG_TOKEN}"; @@ -31,6 +36,11 @@ var protectedUsers = [{$protected_users}]; var passwordProtectedUsers = [{$password_protected_users}]; var guestUser = {$guest_user}; + +const are_you_sure_msg = '{'Are you sure?'|@translate|@escape:'javascript'}'; +const confirm_msg = '{'Yes, I am sure'|@translate|@escape}'; +const cancel_msg = '{'No, I have changed my mind'|@translate|@escape}'; + var truefalse = { 'true':"{'Yes'|translate}", 'false':"{'No'|translate}", @@ -101,7 +111,7 @@ jQuery(document).ready(function() { jQuery("#addUserForm input[type=text], #addUserForm input[type=password]").val(""); var new_user = data.result.users[0]; - allUsers.push(parseInt(new_user.id)); + nb_all_users += 1; jQuery("#showAddUser .infos").html(sprintf(newUser_pattern, new_user.username)).show(); checkSelection(); @@ -190,7 +200,6 @@ jQuery(document).ready(function() { /* Formating function for row details */ function fnFormatDetails(oTable, nTr) { var userId = oTable.api().row(nTr).data()[0]; - console.log("userId = "+userId); var sOut = null; jQuery.ajax({ @@ -287,7 +296,7 @@ jQuery(document).ready(function() { var template = _.template( jQuery("script.userDetails").html() - ); + ); jQuery("#user"+userId).html(template(user)); @@ -479,36 +488,44 @@ jQuery(document).on('click', '.close-user-details', function(e) { }); /* delete user */ - jQuery(document).on('click', '.userDelete a', function() { - if (!confirm("{/literal}{'Are you sure?'|translate|escape:javascript}{literal}")) { - return false; - } - + + $(document).on('click', '.userDelete a', function () { var userId = jQuery(this).data('user_id'); var username = jQuery('#user'+userId+' .username').html(); - - jQuery.ajax({ - url: "ws.php?format=json&method=pwg.users.delete", - type:"POST", - data: { - user_id:userId, - pwg_token:pwg_token + $.confirm({ + title: title_msg.replace('%s', username), + buttons: { + confirm: { + text: confirm_msg, + btnClass: 'btn-red', + action: function () { + jQuery.ajax({ + url: "ws.php?format=json&method=pwg.users.delete", + type:"POST", + data: { + user_id:userId, + pwg_token:pwg_token + }, + beforeSend: function() { + jQuery('#user'+userId+' .userDelete .loading').show(); + }, + success:function(data) { + jQuery('.user_form_popin').colorbox.close(); + jQuery('#showAddUser .infos').html('✔ User '+username+' deleted').show(); + }, + error:function(XMLHttpRequest, textStatus, errorThrows) { + jQuery('#user'+userId+' .userDelete .loading').hide(); + } + }) + } + }, + cancel: { + text: cancel_msg + } }, - beforeSend: function() { - jQuery('#user'+userId+' .userDelete .loading').show(); - }, - success:function(data) { - jQuery('.user_form_popin').colorbox.close(); - jQuery('#showAddUser .infos').html('✔ User '+username+' deleted').show(); - }, - error:function(XMLHttpRequest, textStatus, errorThrows) { - jQuery('#user'+userId+' .userDelete .loading').hide(); - } + ...jConfirm_confirm_options }); - - return false; }); - jQuery(document).on('click', '.userProperties input[type=submit]', function() { var userId = jQuery(this).data('user_id'); @@ -615,8 +632,17 @@ jQuery(document).on('click', '.close-user-details', function(e) { processing: true, serverSide: true, serverMethod: "POST", - ajaxSource: "admin/user_list_backend.php", + ajax: { + url: "admin/user_list_backend.php", + type: "POST", + data: { + pwg_token: pwg_token + } + }, pagingType: "simple", +{/literal}{if (isset($filter_group))}{literal} + "oSearch": {"sSearch": "group:{/literal}{$filter_group}{literal}"}, +{/literal}{/if}{literal} language: { processing: "{/literal}{'Loading...'|translate|escape:'javascript'}{literal}", lengthMenu: sprintf("{/literal}{'Show %s users'|translate|escape:'javascript'}{literal}", '_MENU_'), @@ -634,10 +660,12 @@ jQuery(document).on('click', '.close-user-details', function(e) { } }, "drawCallback": function( oSettings ) { + nb_all_users = parseInt(oTable.api().ajax.json().iTotalRecords); jQuery("#userList input[type=checkbox]").each(function() { var user_id = jQuery(this).data("user_id"); jQuery(this).prop('checked', (selection.indexOf(user_id) != -1)); }); + checkSelection(); }, columns: aoColumns }); @@ -648,7 +676,7 @@ jQuery(document).on('click', '.close-user-details', function(e) { function checkSelection() { if (selection.length > 0) { jQuery("#forbidAction").hide(); - jQuery("#permitAction").show(); + jQuery("#permitActionUserList").show(); jQuery("#applyOnDetails").text( sprintf( @@ -657,11 +685,11 @@ jQuery(document).on('click', '.close-user-details', function(e) { ) ); - if (selection.length == allUsers.length) { + if (selection.length == nb_all_users) { jQuery("#selectedMessage").text( sprintf( selectedMessage_all, - allUsers.length + nb_all_users ) ); } @@ -670,19 +698,19 @@ jQuery(document).on('click', '.close-user-details', function(e) { sprintf( selectedMessage_pattern, selection.length, - allUsers.length + nb_all_users ) ); } } else { jQuery("#forbidAction").show(); - jQuery("#permitAction").hide(); + jQuery("#permitActionUserList").hide(); jQuery("#selectedMessage").text( sprintf( selectedMessage_none, - allUsers.length + nb_all_users ) ); } @@ -701,9 +729,50 @@ jQuery(document).on('click', '.close-user-details', function(e) { checkSelection(); }); + + jQuery("#selectSet").click(function () { + let api = oTable.api(); + let info = api.page.info(); + let search_term = api.search(); + jQuery.ajax({ + url: "admin/user_list_backend.php", + type:"POST", + data: { + search: { + value: search_term, + regex: false + }, + start: info.start, + length: info.length, + get_set_uids: true + }, + beforeSend: function() { + $("#checkActions .loading").show(); + }, + success:function(data) { + data = jQuery.parseJSON(data); + filtered_users = data.filtered_uids.map(x=>+x); + selection = filtered_users; + checkSelection(); + $("#checkActions .loading").hide(); + }, + error:function(XMLHttpRequest, textStatus, errorThrows) { + $("#checkActions .loading").hide(); + } + }); + jQuery("#userList input[type=checkbox]").prop('checked', true); + checkSelection(); + return false; + }); + - jQuery("#selectAll").click(function () { - selection = allUsers; + jQuery("#selectAllPage").click(function () { + let tab = [] + let sel = $("tr td").find("label").each(function() { + let val = $(this).find("input").attr('data-user_id'); + tab.push(parseInt(val)); + }); + selection = tab; jQuery("#userList input[type=checkbox]").prop('checked', true); checkSelection(); return false; @@ -717,20 +786,16 @@ jQuery(document).on('click', '.close-user-details', function(e) { }); jQuery("#selectInvert").click(function () { - var newSelection = []; - for(var i in allUsers) - { - if (selection.indexOf(allUsers[i]) == -1) { - newSelection.push(allUsers[i]); + let tab = [] + let sel = $("tr td").find("label").each(function() { + let val = parseInt($(this).find("input").attr('data-user_id')); + $(this).find("input[type=checkbox]").prop('checked', false); + if (selection.includes(val) == false) { + tab.push(val); + $(this).find("input[type=checkbox]").prop('checked', true); } - } - selection = newSelection; - - jQuery("#userList input[type=checkbox]").each(function() { - var user_id = jQuery(this).data("user_id"); - jQuery(this).prop('checked', (selection.indexOf(user_id) != -1)); }); - + selection = tab; checkSelection(); return false; }); @@ -755,7 +820,7 @@ jQuery(document).on('click', '.close-user-details', function(e) { } }); - jQuery("#permitAction input, #permitAction select").click(function() { + jQuery("#permitActionUserList input, #permitActionUserList select").click(function() { jQuery("#applyActionBlock .infos").hide(); }); @@ -831,15 +896,7 @@ jQuery(document).on('click', '.close-user-details', function(e) { jQuery("#applyActionBlock .infos").show(); if (action == 'delete') { - var allUsers_new = []; - for(var i in allUsers) - { - if (selection.indexOf(allUsers[i]) == -1) { - allUsers_new.push(allUsers[i]); - } - } - allUsers = allUsers_new; - console.log('allUsers_new.length = '+allUsers_new.length); + nb_all_users -= 1; selection = []; checkSelection(); } @@ -851,7 +908,6 @@ jQuery(document).on('click', '.close-user-details', function(e) { return false; }); - }); {/literal}{/footer_script} @@ -883,7 +939,7 @@ span.infos, span.errors {background-image:none; padding:2px 5px; margin:0;border .recent_period_infos {margin-left:10px;} .nb_image_page, .recent_period {width:340px;margin-top:5px;} #action_recent_period .recent_period {display:inline-block;} -.checkActions {padding:0 1em;} +#checkActions {padding:0 1em;} {/literal}{/html_style} @@ -953,20 +1009,23 @@ span.infos, span.errors {background-image:none; padding:2px 5px; margin:0;border - - {'Select:'|@translate} - {'All'|@translate}, - {'None'|@translate}, - {'Invert'|@translate} + + {'Selection'|@translate} + + {'The whole page'|@translate} + {'The whole set'|@translate} + {'None'|@translate} + {'Invert'|@translate} - - + + + {'Action'|@translate} - {'No user selected, no action possible.'|@translate} - + {'No users selected, no actions possible.'|@translate} + {'Choose an action'|@translate} @@ -1075,7 +1134,7 @@ span.infos, span.errors {background-image:none; padding:2px 5px; margin:0;border ✔ {'Users modified'|translate} - {* #permitAction *} + {* #permitActionUserList *} diff --git a/admin/themes/default/template/user_perm.tpl b/admin/themes/default/template/user_perm.tpl index 031ab7000..c7bdc03dd 100644 --- a/admin/themes/default/template/user_perm.tpl +++ b/admin/themes/default/template/user_perm.tpl @@ -18,5 +18,6 @@ {$DOUBLE_SELECT} + diff --git a/admin/themes/default/theme.css b/admin/themes/default/theme.css index 33b270c43..09b68f377 100644 --- a/admin/themes/default/theme.css +++ b/admin/themes/default/theme.css @@ -1,11 +1,10 @@ /* content.css */ [class*="icon-"]:before { text-decoration:none !important; } -.showInfo { font-size:15px;cursor:pointer;line-height:15px; } - +.showInfo { font-size:15px;cursor:pointer;line-height:15px; display: flex; align-items: center;} +.showInfo:hover { text-decoration: none;} /* .Content is on every pages so it is common and it will no longer be a specific css */ .content h2 {margin: 0; padding: 5px 0.5em 5px 0.5em; text-align: right; font-size: 120%;} -.content .navigationBar { margin: 10px 0; text-align: center; } .content form { text-align: left; margin-left: 7px; margin-right: 9px;} .content dt { margin-bottom: 5px; font-style: italic; font-size: 110%; } @@ -90,11 +89,15 @@ UL.thumbnails INPUT { position: absolute; left: 2px; top: 2px; } -UL.thumbnails .levelIndicatorB { -display:block; position:absolute; z-index:100; padding:7px 0 0 2px; color:black; font-weight:bold; font-size:120%; -} UL.thumbnails .levelIndicatorF { -display:block; position:absolute; z-index:101; padding:8px 0 0 3px; color:white; font-weight:bold; font-size:120%; + display:block; + position:absolute; + bottom: 0; + text-shadow: 0px 0px 1px #000; + padding:0 0 2px 5px; + color:white; + font-weight:bold; + z-index: 10; } /* default-layout.css */ @@ -116,8 +119,11 @@ TABLE.table2 TR { TABLE.table2 THEAD TD { padding:7px 10px 3px 10px; } TABLE.table2 TR.throw { text-align: center; } -.sort { display:block; padding:8px 5px 5px 15px; text-align: left;} +.sort { display:block; padding:1em 2em 0 2em; text-align: left;} +.sort .icon-sort-number-up { + margin-left: 25px; +} .hour { white-space: pre; @@ -145,36 +151,176 @@ TABLE.plugins TR TD { padding: 4px 10px; } TABLE.languages TR TD { padding: 7px 20px; } -/* categoryOrdering */ -FORM#categoryOrdering .orderParams { - line-height:30px; - margin-bottom:10px; +/* Category List */ +.categoryContainer { + display: flex; + flex-wrap: wrap; + justify-content: center; } -SELECT.categoryList { - width: 100%; +.categoryBox, .addAlbum { + position: relative; + text-align: left; + height: 300px; + width: 220px; + margin: 15px; + border-radius: 10px; } -FORM#categoryOrdering p { - text-align: left; - /* margin-top: 1em; */ - /* margin-bottom: 1em; */ -} -UL.categoryUl { - list-style: none; - padding: 0; - margin: 1em; +.albumIcon { + height: 80px; + display: flex; + align-items: center; + justify-content: center; } -LI.categoryLi { -/* - width: 100%; -*/ - margin-bottom: 20px; - border-radius:5px; +.albumIcon span{ + font-size: 19px; + width: 27px; + padding: 10px; + border-radius: 30px; } +.albumTitle { + font-size: 16px; + padding: 0px 15px; + font-weight: bold; + overflow: hidden; + white-space: nowrap; + text-overflow: ellipsis; + text-align: center; +} +.albumInfos { + text-align: center; + font-weight: 600; + font-size: 14px; + margin-top: 10px; + display: block; +} + +.albumInfos p { + margin: 0; +} + +.albumActions { + position: absolute; + bottom: 5px; + flex-direction: column; + width: 90%; + overflow: hidden; + margin-left: 20px; + margin-bottom: 10px; + display: none; +} + +.categoryBox:hover .albumActions { + display: flex; +} + +.albumActions a, .albumActions span { + margin: 5px; + font-size: 14px; + text-transform: capitalize; + font-weight: bold; + transition: 0.2s ease; + white-space: nowrap; + text-overflow: ellipsis; + overflow: hidden; +} + +.albumActions a span, .albumActions span span{ + margin: 10px; +} + +.addAlbum { + display: flex; + flex-direction: column; + justify-content: space-around; + cursor: pointer; +} + +.addAlbum.input-mode { + cursor: auto; +} + +.addAlbum label { + margin: 0; + border-radius: 5px 5px 0 0; + padding: 2px; + position: absolute; + left: 16px; + font-size: 14px; + color: #3C3C3C; +} + +.addAlbumHead { + font-size: 16px; + display: flex; + flex-direction: column; + align-items: center; + margin-top: -10px; + transform: translateY(75px); + transition: 0.4s ease; + transition-delay: 0.4s; + padding: 110px 0px; +} + +.addAlbum.input-mode .addAlbumHead { + transition-delay: 0s; + padding: 0px; +} + +.addAlbumHead span { + font-size: 19px; + width: 27px; + height: 27px; + padding: 10px; + border-radius: 30px; + margin: 10px auto; +} + +.addAlbumHead p { + font-weight: 700; + margin: 0; +} + +.addAlbum form { + opacity: 0; + pointer-events: none; + transition: 0.4s ease; + transition-delay: 0s; +} + +.addAlbum form input { + margin: 10px; + padding: 10px; + display: inline-block; + width: 159px; + margin-top: 20px; + font-size: 15px; +} + +.addAlbum form input::placeholder { + color: rgb(206, 206, 206); +} + +.addAlbum button, .addAlbum a { + display: table; + margin: 10px auto; + font-weight: bold; +} + +.addAlbum.input-mode .addAlbumHead{ + transform: translateY(0px); +} + +.addAlbum.input-mode form { + opacity: 1; + pointer-events: all; + transition-delay: 0.4s; +} + /* menuOrdering */ FORM#menuOrdering { padding-left: 1em; @@ -209,46 +355,485 @@ LI.menuLi { padding: 12px 0; margin-bottom: 5px; } -/* */ -#catModify TABLE { width: auto; } +/* Cat modify */ + +#catHeader { + display: grid; + grid-template-columns: 25% 25% 25% 25%; + min-height: 200px; +} + +#catHeader .catThumbnail { + position: relative; + overflow: hidden; +} + +#catHeader .catThumbnail .thumbnailContainer { + width: 100%; + padding-top: 100%; +} + +#catHeader .albumThumbailImage, #catHeader .albumThumbnailRandom, #catHeader .albumThumbnailActions, #catHeader .albumThumbnailActionContainer, #catHeader .albumThumbnailNoPhoto{ + position: absolute; + top: 50%; + left: 50%; + transform: translate(-50%, -50%); +} + +#catHeader .albumThumbnailRandom, #catHeader .albumThumbnailNoPhoto { + height: 100%; + width: 100%; + background-color: #fafafa; + display: flex; + justify-content: center; + align-items: center; +} + +#catHeader .albumThumbnailRandom span, #catHeader .albumThumbnailNoPhoto span { + font-size: 100px; + opacity: 0.4; +} + +#catHeader .albumThumbnailActions { + width: 101%; + height: 100%; + background-color: #00000070; + opacity: 0; +} + +#catHeader .catThumbnail:hover .albumThumbnailActions { + opacity: 1; +} + +#catHeader .albumThumbnailActionContainer { + display: flex; + flex-direction: column; +} + +#catHeader .albumThumbnailActions a { + background-color: #ffffffbd; + margin: 10px; + padding: 10px 20px; + white-space: nowrap; + font-weight: bold; + color: #3C3C3C; + text-align: center; +} + +#catHeader .albumThumbnailActions a:hover { + color: #3C3C3C; + text-decoration: none; + background-color: #ff7700; +} + +#catHeader .catInfo, #catHeader .catAction { + border-right: 1px solid #00000017; +} + +#catHeader .catInfo { + display: flex; + justify-content: center; + padding: 10px +} + +#catHeader .catInfo .container{ + display: flex; + flex-direction: column; + align-items: baseline; + justify-content: space-between; + height: 100%; +} + +#catHeader .catInfo span { + padding: 10px; + border-radius: 20px; + font-weight: bold; +} + +#catHeader .catAction { + display: flex; + position: relative; + justify-content: center; + align-items: center; + overflow: hidden; +} + +#catHeader .catAction .container { + display: flex; + flex-direction: column; + justify-content: space-evenly; + align-items: baseline; + height: 100%; + padding-top: 30px; +} + +#catHeader .catAction strong{ + position: absolute; + top: 0; + color: #3C3C3C; + font-size: 16px; +} + +#catHeader .catAction a { + color: #888; + font-size: 14px; + white-space: nowrap; +} + +#catHeader .catAction a:hover { + color: #ff7700; + text-decoration: none; +} + +#catHeader .catAction a::before { + font-size: 20px; + margin-right: 10px; +} + +#catHeader .catLock { + position: relative; + display: flex; + justify-content: center; + align-items: center; +} + +#catHeader .catLock .container{ + position: relative; + height: 100%; +} + +#catHeader .catLock strong { + color: #3C3C3C; + font-size: 16px; + margin-bottom: 15px; + display: block; +} + +#catHeader .catLock .container > div { + margin-bottom: 40px; +} + +#catHeader .catLock > div .label { + font-size: 14px; +} + +#catHeader label[id=applytoSubAction] { + margin-top: 10px; + display: block; +} + +#catHeader .catLock .switch { + margin: 0 5px; +} + +#catModify input[type="text"], #catModify textarea{ + width: 98%; + background-color: #f8f8f8; + padding: 8px; + border-radius: 4px; + border-color: #DDD; + transition: ease 0.2s; + font-family: "Open Sans", "Lucida Grande",Verdana,Arial,"Bitstream Vera Sans",sans-serif; +} + +#catModify input[type="text"]:focus, #catModify textarea:focus{ + border-color: #888; +} + +#catModify button[type="submit"] { + margin: 13px; + font-size: 12px; + padding: 12px; + margin-left: 0; +} #catModify p { - line-height: 20px; - margin: 0 0 1.5em; - text-align: left; + margin-left: 0; } -#catModify p.albumThumbnailActions { - text-align:center; - white-space:nowrap; +/* Search bar */ + +.search-input{ + padding: 10px; + box-shadow: 0px 2px #00000024; + border: none; + background-color: #fafafa !important; + padding-left: 30px; + width: 200px; + margin: 4px; } -FIELDSET.elementEdit .thumb { - display: block; - float: right; - text-align: center; +.search-input:hover { + background-color: #f0f0f0 !important; } -TABLE.doubleSelect { - text-align: center; - margin: 0 auto; - width: 100%; +.search-info { + position: absolute; + left: -10px; + top: 50%; + transform: translate(-100%,-50%); + font-style: italic; } -TABLE.doubleSelect TD { - padding: 0 3px; - width: 50%; +.search-cancel { + display: none; + right: 5px; + top: 50%; + transform: translateY(-50%); + opacity: 0.4; + cursor: pointer; + position: absolute; + font-size: 18px; } -TABLE.doubleSelect SELECT.categoryList { - width: 100%; max-width: 100%; overflow-x: auto; +.search-cancel:hover { + opacity: 1; } -.statBar { - height: 10px; - background-color: #ff7700; - border: 1px solid #666; +.search-icon { + position: absolute; + top: 50%; + transform: translate(4px, -50%); + font-size: 18px; +} + +/* Dropdown */ + +.dropdown { + z-index: 100; + padding: 5px 0px; + border-radius: 10px; + background: linear-gradient(130deg, #ff7700 0%, #ffa744 100%); + color: white; + -moz-osx-font-smoothing: grayscale; +} + +.dropdown::after { + content: " "; + position: absolute; + bottom: 100%; + left: 51%; + margin-left: -5px; + border-width: 5px; + border-style: solid; + border-color: transparent transparent #ff7700 transparent; +} + +.dropdown-content { + position: relative; +} + +.dropdown-option { + white-space: nowrap; + display: block; + text-align: initial; + padding: 5px 10px; + padding-right: 10px; + font-size: 13px; + padding-right: 15px; + color: white; + font-weight: 600; + cursor: pointer; +} + +.dropdown-option-content { + white-space: nowrap; + display: block; + text-align: initial; + padding: 5px 10px; + padding-right: 10px; + font-size: 13px; + padding-right: 15px; + color: white; + font-weight: 600; + cursor: pointer; +} + +.dropdown-option:hover { + text-decoration: none; + color: white; + background-color: #00000012; +} + +.badge-number { + border-radius: 20px; + background-color: #777; + font-size: 16px; + margin-left: 10px; + font-weight: 700; + position: absolute; + transform: translateY(3px); + text-align: center; + color: #ccc; + padding: 0px 7px; +} + +/* Pagination */ + +.pagination-container { + height: 40px; + display: flex; + align-items: center; + justify-content: center; +} + +.pagination-arrow { + font-size: 14px; + cursor: pointer; + display: flex; + align-items: center; + margin: 5px; +} + +.pagination-arrow.rigth { + -moz-transform: scale(-1, 1); + -webkit-transform: scale(-1, 1); + -o-transform: scale(-1, 1); + -ms-transform: scale(-1, 1); + transform: scale(-1, 1); +} + +.pagination-arrow.unavailable { + opacity: 0.6; + pointer-events: none; + cursor: none; +} + +.pagination-item-container { + display: flex; + align-items: baseline; +} + +.pagination-item-container > *{ + margin: 5px; +} + +.pagination-item-container span { + font-size: 20px; + font-weight: bold; + opacity: 0.8; +} + +.pagination-item-container a { + font-size: 16px; + font-weight: bold; +} + +.pagination-item-container a.actual { + background-color: #FFA646; + border-radius: 15px; + pointer-events: none; + padding: 0px 7px; + color: #333 +} + +.pagination-per-page { + background-color: #f9f9f9; + border-radius: 10px; + display: flex; + font-size: 12px; + overflow: hidden; + font-weight: 700; + font-family: "Open Sans", "Lucida Grande",Verdana,Arial,"Bitstream Vera Sans",sans-serif; + height: min-content; +} + +.pagination-per-page * { + padding: 8px 9px; +} + +.pagination-per-page span { + padding-left: 17px; + color: #BBB; + font-weight: bold; +} + +.pagination-per-page a { + border: none; + color: #3A3A3A; +} + +.pagination-per-page a:hover { + background-color: #ffd2a1; + color: #666; + text-decoration: none; +} + +/* Waiting Message */ + +.waiting-message { + position: fixed; + right: 0px; + top: 0px; + margin: 10px; + z-index: 1000; + background-color: #FFBD4D; + color: white; + padding: 20px; + font-weight: bold; + border-radius: 34px; + transform: translateY(calc(-100% - 10px)); + transition: 0.5s ease; +} + +.waiting-message.visible { + transform: translateY(80%); +} + +/* Statistic Page */ + +.stat-legend-container { + display: inline-block; +} + +.stat-data-selector { + border-radius: 10px; + display: flex; + overflow: hidden; + font-weight: bold; +} + +.stat-data-selector label { + color: black; + padding: 10px; + background-color: #eee; + transition: 0.2s ease; +} + +.stat-data-selector label.unavailable { + color: gray; + background-color: #aaa; + cursor: default; + pointer-events: none; +} + +.stat-data-selector label:hover { + background-color: #ccc +} + +.stat-data-selector input:checked + label { + background-color: #FFA646; + color: white; + pointer-events: none; +} + +.stat-data-selector input{ + display: none; +} + +.stat-graph-container { + margin: auto; + position: relative; + width: calc(100% - 20px); + margin-top: 20px; + margin-bottom: 20px; +} + +.stat-compare-mode { + position: absolute; + right: 10px; + transform: translate(0, 10px); } .over{ @@ -317,7 +902,7 @@ BODY { text-align: left; font-size: 18px; float:left; - width: 50%; + width: calc(100% - 330px); white-space: nowrap; overflow: hidden; text-overflow: ellipsis; @@ -325,6 +910,10 @@ BODY { margin: 0 0 0 220px; } +.admin-head-username { + display: none; +} + #pwgHead A {color:#ccc;} #pwgHead A:hover {color:#fff} @@ -387,7 +976,7 @@ TEXTAREA.description { SELECT.categoryList { height: 20em; - width: auto; + width: 100%; } DIV.comment BLOCKQUOTE { @@ -491,14 +1080,18 @@ FORM.properties SPAN.property { } /* Dashboard */ +.intro-page-container { + display: grid; + grid-template-columns: 48% 48%; +} + .stat-boxes { - text-align:left; - margin:40px 10px; + text-align:center; } .stat-box { display:inline-block; - width:200px; + width:150px; margin:10px 10px 40px 10px; color:#3b3b3b; text-align: center; @@ -510,35 +1103,12 @@ div.stat-box { .stat-box i { display: inline-block; - background-color: #ffcfcf; - color: #ff5252; border-radius: 50%; - font-size: 37px; + font-size: 30px; padding: 20px; margin-bottom: 15px; } -.stat-box-yellow i { - color:#ffa744; - background-color: #ffe9cf; -} -.stat-box-red i { - background-color: #ffcfcf; - color: #ff5252; -} -.stat-box-purple i { - background-color: #e0daf4; - color: #896af3; -} -.stat-box-green i { - background-color: #d6ffcf; - color: #6ece5e; -} -.stat-box-blue i { - background-color: #cfebff; - color: #2883c3; -} - .stat-box .number, .stat-box .caption { display:block; font-size: 16px; @@ -555,13 +1125,281 @@ a.stat-box:hover { color:#777; } +.chart-title { + font-size: 18px; + text-align: left; + font-weight: bold; + margin-bottom: 20px; + color: #3b3b3b; + position: relative; +} + +.chart-title-infos { + font-size: 14px; + position: absolute; + right: 0; + bottom: 0; +} + +.activity-chart { + font-weight: bold; + font-size: 14px; + display: grid; + grid-template-columns: repeat(8, 5vw) ; + grid-template-rows: repeat(4, 5vw); +} + +.activity-chart .row-legend,.activity-chart .col-legend { + position: relative; +} + +.activity-chart .row-legend { + display: flex; +} + +.activity-chart .row-legend div{ + margin: auto; +} + +.activity-chart .col-legend { + line-height: 5vw; +} + +.activity-chart .row-legend:after { + content: ""; + border-top: 2px solid black; + opacity: 0.05; + position: absolute; + width: 700%; + transform: translate(6vw,2.5vw); +} + +.activity-chart .col-legend .line-vertical { + border-left: 2px solid black; + opacity: 0.05; + position: absolute; + height: 250%; + left: 50%; + bottom: 100%; +} + +.activity-chart span { + display: flex; + overflow: visible; + position: relative; +} + +.activity-chart span div{ + height: 0px; + width: 0px; + background-color: #ff5252; + opacity: 0.8; + display: block; + border-radius: 100%; + z-index: 100; + position: absolute; + top: 50%; + left: 50%; + transform: translate(-50%, -50%); + transition: ease 0.2s; +} + +.intro-charts .tooltip { + position: absolute; + display: none; + z-index: 102; + font-size: 12px; + font-weight: normal; + background-color: white; + padding: 10px; + box-shadow: 0px 0px 5px #acacac; + border-radius: 10px; + margin: 0px; + transition: ease 0.2s; +} + +.intro-charts .tooltip .tooltip-header { + margin-bottom: 10px; + display: flex; + justify-content: space-between; + font-size: 14px; +} + +.intro-charts .tooltip .tooltip-header span { + margin: 0px 5px +} + +.intro-charts .tooltip .tooltip-title { + font-weight: bold; + color: #3b3b3b; +} + +.intro-charts .tooltip .tooltip-date { + font-style: italic; +} + +.intro-charts .tooltip span:before { + width: 1.2em; + font-size: 15px; +} + +.intro-charts .tooltip .tooltip-details { + display: flex; + align-items: flex-start; +} + +.intro-charts .tooltip .tooltip-details-cont { + display: flex; + flex-direction: column; + align-items: flex-start; + margin: 0px 3px; +} + +.intro-charts .tooltip .tooltip-details-title { + font-weight: bold; + padding: 0px 5px; + margin-bottom: 8px; + border-radius: 15px; + background: none !important; +} + +.intro-charts .tooltip .tooltip-detail { + margin: 1px; + padding-left: calc(50% - 20px); +} + +.activity-chart .tooltip { + left: 50%; + top:45% +} + +.intro-charts .tooltip span{ + display: inline; + white-space: nowrap; +} + +.intro-charts .tooltip::after { + content: " "; + position: absolute; + bottom: 100%; + left: 51%; + margin-left: -5px; + border-width: 5px; + border-style: solid; + border-color: transparent transparent white transparent; +} + +.activity-chart span div:hover{ + padding: 0.5vw; +} + +.activity-chart span div:hover + .tooltip, .intro-charts .tooltip:hover{ + display: inline-grid; + opacity: 1; +} + +.activity-chart #week-1-legend ~ span div { + background-color: #2883c3; +} + +.activity-chart #week-2-legend ~ span div { + background-color: #896af3 ; +} + +.activity-chart #week-3-legend ~ span div { + background-color: #6ece5e ; +} + +.activity-chart #week-4-legend ~ span div { + background-color: #ffa744 ; +} + +.storage-chart { + border-radius: 5px; + width: 100%; + overflow: hidden; + position: relative; + height: 30px; + display: flex; + background-color: #e8e8e8; +} + +.storage-tooltips { + position: relative; +} + +.storage-chart span{ + opacity: 0.7; + transition: ease 0.2s; +} + +.storage-chart span p{ + font-weight: bold; + font-size: 16px; + color: black; + opacity: 0; + line-height: 0; + transition: ease 0.2s; + white-space: nowrap; +} + +.storage-chart span:hover{ + opacity: 1; +} + +.storage-chart span:hover .tooltip { + opacity: 1; + display: block; +} + +.storage-chart span:hover p{ + opacity: 0.4; +} + +.storage-chart-legend { + display: flex +} + +.storage-chart-legend div{ + padding: 10px; + display: flex; + align-items: center; + font-size: 14px; +} + +.storage-chart-legend div span{ + width: 15px; + height: 15px; + display: block; + margin: 5px; + opacity: 0.7; +} + +.storage-chart span:nth-child(1), .storage-chart-legend div:nth-child(1) span{ + background-color:#ffa744; +} + +.storage-chart span:nth-child(2), .storage-chart-legend div:nth-child(2) span{ + background-color:#6ece5e; +} + +.storage-chart span:nth-child(3), .storage-chart-legend div:nth-child(3) span{ + background-color:#896af3; +} + +.storage-chart span:nth-child(4), .storage-chart-legend div:nth-child(4) span{ + background-color:#2883c3; +} + +.storage-chart span:nth-child(5), .storage-chart-legend div:nth-child(5) span{ + background-color:#ff5252; +} + #configContent fieldset { border:none; padding-left:20px; } -#configContent fieldset:not(.no-border) { - border-top:1px solid #bbb; -} + #configContent legend { padding-left:0; margin-left:-20px; @@ -709,8 +1547,8 @@ html, body {height:100; min-height: 100%; margin:0; padding:0;} margin-left:6px; } -#adminHome A {color:#aaa; display:block; font-size:1.1em; font-weight:bold; text-decoration:none;} -#adminHome A:hover {color:#fff;} +a.admin-main {color:#aaa; display:block; font-size: 13px; font-weight:bold; text-decoration:none;} +a.admin-main:hover {color:#fff;} #piwigoInfos {float:left; margin-left:140px;} #pageInfos {display: none;} @@ -857,7 +1695,7 @@ html, body {height:100; min-height: 100%; margin:0; padding:0;} margin-left:0; } -#menubar ul.scroll { overflow-y:auto; max-height:500px; } +#menubar ul.scroll { overflow-y:auto; max-height:500px; scrollbar-color: #666 #3c3c3c;} #menubar dl { width: 205px; min-height:35px; border:0; margin: 0; padding: 0; display: block; border:0; border-left:none; } #menubar dd { margin: 0; padding: 10px 0; } #menubar dt { @@ -883,6 +1721,27 @@ html, body {height:100; min-height: 100%; margin:0; padding:0;} margin-top: 2px; } +@media all and (max-height: 920px) { + #menubar ul.scroll { + max-height: 400px; + } +} + +@media all and (max-height: 830px) { + #menubar ul.scroll { + max-height: 300px; + } +} + +@media all and (max-height: 700px) { + #menubar ul.scroll { + max-height: 200px; + } + #theAdminPage #footer { + display: none; + } +} + /* tabsheets are often used in admin pages => No specific css files */ #tabsheet { width:auto; @@ -952,15 +1811,31 @@ margin-top:4px; padding-bottom:3px; padding-top:3px; top:1px; #thePopuphelpPage #pwgHead {display:none} #thePopuphelpPage #footer {display:none} -.themeBox {display:inline-table; text-align:center; height:192px; background-color:#eee; margin:5px; border-radius:5px; overflow:hidden; } +.themeBox {display: inline-table;text-align: center;height: 192px;margin: 0px 0px 15px 15px; position: relative;} +.themeShot a {height: 200px; width: 200px; position: relative; overflow: hidden; display: block;} -.themeBox IMG {border:1px solid white; margin:0 15px;} -.themeName {font-size:1em; margin:5px 0; position:relative; } -.themeActions {display: table-row; font-size:12px; height: 43px; } -.themeActions DIV {display: table-cell; vertical-align: middle; line-height:18px; } -.themeActions A {} +.themeBox IMG {margin:0px; position: absolute;top: 50%;left: 50%;transform: translate(-50%, -50%);} +.themeName {font-size:14px; margin:10px; position:relative; text-transform: capitalize; font-weight: bold; text-align: left; white-space: nowrap; max-width: 180px; overflow: hidden; text-overflow: ellipsis;} +.themeName em {font-weight: normal;} +.themeName .showInfo {position: absolute; right: 0; top: 50%; transform: translateY(-50%);} +.themeBox .showInfo-dropdown {position: absolute; right: 0px; transform: translateX(40%); display: none; text-align: left; padding-bottom: 0;} +.themeSelect {box-shadow: 0px 2px 1px #00000024; display: inline-block; text-align: center; padding: 0px 10px 8px 10px; margin-right: 10px; transition: 0.4s ease;} +.showInfo-dropdown-header {padding: 5px 10px; white-space: nowrap; font-weight: bold; font-size: 12px;} +.showInfo-dropdown-header a:hover {color: white;} +.showInfo-dropdown-content {padding: 5px 10px; -moz-osx-font-smoothing: initial;} +.showInfo-dropdown-action {padding: 8px 10px; border-top: 1px solid #ffffff45; color: white; text-decoration: none !important; display: block; margin-top: 5px; border-radius: 0px 0px 10px 10px; font-weight: bold;} +.showInfo-dropdown-action:hover {background-color: rgba(0, 0, 0, 0.192); color: white;} +.themeActions {display: flex;flex-direction: column;} +.themeActions DIV {display: table-cell; vertical-align: middle; line-height:18px;} +.themeActions span, .themeActions a {padding: 10px; margin: 0px 10px 10px 10px; font-weight: bold; font-size: 12px;} +.themeActions span {font-size: 11px; background-color: #ddd; opacity: 0.5; color: ;} + +.themeActions a:nth-child(1) {background-color: #ffc17e; color: #222;} +.themeActions a:nth-child(1):hover {background-color: #ff7700; color: white; text-decoration: none;} + +.themeActions a:nth-child(2) {background-color: #ececec; color: #222;} +.themeActions a:nth-child(2):hover {background-color: #ff9b32; color: #111; text-decoration: none;} -#themesContent .themeBox IMG {width:150px; height:120px;} #themesContent H3 {font-size:16px; text-align:left; border-bottom:1px solid #444; letter-spacing:1px; margin:5px;} .themeBoxes {min-height:0;text-align:left;} @@ -1046,10 +1921,40 @@ h2:lang(en) { text-transform:capitalize; } .infos .submit {margin-left:30px;} .checkActions {text-align:left;padding:0;margin:0;} +#checkActions {text-align:left; margin:0 0 20px 0;} +.ActionUserList #checkActions {margin: 20px 0 20px 0;} .pluginBoxes { + border: none; + padding: 20px; + padding-top: 0; + min-height: 271px; text-align:left; +} + +.pluginBoxesContainer { position:relative; + display: flex; + flex-wrap: wrap; + justify-content: left; + +} + +.pluginBoxesTitle {font-size: 16px;} +.pluginBoxesTitle p {margin-right: 10px;} +.pluginBoxesTitle span {border-radius: 50%; margin-right: 5px; padding: 4px} + +.pluginBoxesTitle {display: flex;align-items: center} +.pluginFilter {justify-content: end;position: absolute;right: 20px; z-index: 2; transform: translateY(6px);} + +.pluginBoxesCount { + background-color: rgb(150, 150, 150); + color: white; + border-radius: 25px; + text-align: center; + padding: 2px 10px; + font-weight: bold; + font-size: 12px; } .pluginBox { @@ -1063,29 +1968,116 @@ h2:lang(en) { text-transform:capitalize; } .pluginBox td {text-align:left;} .pluginBox td.pluginDesc img {vertical-align:middle;} .pluginBoxNameCell {width:180px; vertical-align:top;} -.pluginBoxes .inactive, .pluginBoxes .uninstalled {opacity:0.8;filter:alpha(opacity=80);} +.pluginBoxes .inactive, .pluginBoxes .uninstalled {} +.emptyResearch {opacity: 0.3;text-align: center;left: 45%;font-weight: bold;font-size: 30px; position: absolute; display: none;} .pluginMiniBox { - display:inline-table; - text-align:center; - width:250px; - height:40px; - margin:5px; - border-width:1px; - border-style:solid; + display:flex; + width:260px; + margin:15px 30px; + border-top-right-radius:5px; + border-bottom-right-radius:5px; + margin-left: 0; + box-shadow: 0px 0px 5px #acacac; +} +.PluginOptionsBlock a:hover { color: white ;} +.pluginContent { + width: 100%; + text-align: left; + background-color: #fafafa; + padding: 15px; + position: relative; + border-left: solid 5px #ffc17e; + border-right:solid 5px #fafafa; + border-radius: 5px; +} + +.pluginMiniBoxNameCell { + font-size: 14px; + font-weight: bold; +} + +.pluginDesc { + margin-top: 5px; + font-size: 12px; + color: grey; + line-height: 1.5em; + height: 3em; + position: relative; + overflow: hidden; +} + +.pluginActions a { + margin-top:15px; + font-size:12px; +} + +.pluginActions > * { + padding: 10px 4px; + text-align: center; + display:block; +} +.pluginEmptyInput {width: 90px;} +.pluginUnavailableAction { + opacity: 0.5; + font-size: 12px; + padding: 10px 4px; + margin-top: 15px; + background-color:#ddd; + font-weight:700; +} +.pluginActionLevel1 {background-color: #ffc17e; font-weight: bold;} +.pluginActionLevel1:hover {background-color: #ff7700; color: white; text-decoration: none;} +.pluginActionLevel2 {padding:5px 0;} +.pluginActionLevel3 {/*padding-left: 10px; opacity: 0.9;*/padding:5px 0} +.plugin-inactive .pluginContent{ + border:none; + /*border-radius:10px;*/ +} + +.showOptions { + font-size: 16px; +} + +.plugin-inactive .pluginMiniBox{ border-radius:5px; - -moz-border-radius:5px; - overflow:hidden; - } -.pluginMiniBoxNameCell {font-size:1.05em; margin:5px 0;position:relative;} -.pluginActions {display: table-row; font-size:0.95em; color:#777;} -.pluginActions DIV {display: table-cell; vertical-align: middle; line-height:18px; } -.pluginMiniBox .showInfo, .themeBox .showInfo { display:block;position:absolute;top:0;right:5px;width:15px; } +} + +.plugin-inactive .pluginContent .pluginActionLevel1{ + background-color: #999999; +} +.plugin-inactive .pluginContent .pluginActionLevel1:hover{ + background-color:#ff9b32; +} + +.pluginMiniBox .PluginOptionsIcons, +.themeBox .PluginOptionsIcons{ + display:flex; + position:absolute; + top:0; + right:-6px; + padding: 13px; +} + + + .PluginOptionsBlock{ + display:none; + position:absolute; + right: 0; + top: 40px; + z-index: 2; + transform: translateX(calc(50% - 19px)); + } .warning:before {content:url(icon/warning.png);vertical-align:top;} -.deactivate_all {text-align:right;font-size:0.95em;} +.deactivate_all {font-size: 11px;font-weight: normal; margin-top: -5px; margin-bottom: 5px; font-weight: bold;opacity: 0.6;} .showDetails {text-align:right; margin-bottom:-15px; margin-top:-10px; padding-right:1em;} +.showInactivePlugins {margin-bottom: 40px;} +.showInactivePluginsInfo {display: flex;justify-content: center;align-items: center; font-size: 18px;} +.showInactivePluginsInfo > * {margin: 5px;} +.showInactivePlugins button {font-size: 16px;} + .languageBoxes {min-height:0;text-align:left;} .languageBox {display:inline-table; text-align:center; width:200px; height:40px; margin:5px; -moz-border-radius:5px;border-radius:5px; overflow:hidden; } .languageName {font-size:1.1em; margin:5px 0;} @@ -1101,24 +2093,21 @@ h2:lang(en) { text-transform:capitalize; } float:right; margin:0; padding:0; - padding-top:2px; - padding-left:3px; + margin-right:15px; + margin-top:-10px; } .HelpActions a { border:0; margin:0; } .HelpActions li {list-style-image:none; list-style-position:outside; list-style-type:none; text-align:center; text-indent:0pt; } +.HelpActions .icon-help-circled::before { + font-size: 22px; +} legend {text-align:left;} /* local-layout */ /* You can modify this file */ -/* default-colors */ -/* So that non-links are slightly greyed out */ -.content .navigationBar { - color: #999; -} - /* Tables & forms */ SELECT, TEXTAREA { @@ -1176,44 +2165,158 @@ INPUT[type="radio"], INPUT[type="checkbox"] { LEGEND { font-weight: bold; - padding: 0 10px; + font-size: 14px; + margin: 10px 0; + padding: 0; +} + +LEGEND SPAN { + padding: 4px; + border-radius: 100%; + margin-right: 6px; + font-size: 16px; } /* Batch Manager, global mode */ #batchManagerGlobal #action p {text-align:left;} -#batchManagerGlobal .bulkAction {text-align:left;margin:15px 0;padding:0;} +#batchManagerGlobal .bulkAction {text-align:left; padding:0;} #batchManagerGlobal #action_del_tags ul.tagSelection {margin:0 !important; width:620px;} #batchManagerGlobal #checkActions {text-align:left; margin:0 0 20px 0;} -#batchManagerGlobal ul.thumbnails div.actions {display:none;position:absolute;top:0;right:5px;color:#fff} +#batchManagerGlobal ul.thumbnails div.actions { + display: none; + position: absolute; + top: 0; + color: #fff; + width: 98%; + justify-content: space-between; + background-color: #313234; + padding: 3px 0px; + margin-left: 1px; + z-index: 1; +} + +#batchManagerGlobal fieldset { + margin: 0; + margin-top: 30px; + border: none; +} + +#batchManagerGlobal legend { + font-size: 14px; + color: #444; + margin: 10px 0; + padding: 0; +} + +#batchManagerGlobal legend span { + padding: 3px; + border-radius: 100%; + margin-right: 6px; + font-size: 16px; +} + #batchManagerGlobal ul.thumbnails div.actions a {color:#fff;} -#batchManagerGlobal ul.thumbnails span.wrap1:hover div.actions {display:block;} -#batchManagerGlobal #selectedMessage {padding:5px; border-radius:5px;} -#batchManagerGlobal #applyOnDetails {font-style:italic;} -#batchManagerGlobal .actionButtons {text-align:left;} -#batchManagerGlobal #filterList {padding-left:5px;} -#batchManagerGlobal #filterList li {margin-bottom:5px; list-style-type:none;} -#batchManagerGlobal a.removeFilter {color:#666;} -#batchManagerGlobal a.removeFilter::before {margin-right:0;} +#batchManagerGlobal ul.thumbnails span.wrap1:hover div.actions {display:flex;} +#batchManagerGlobal #selectedMessage {padding:5px; border-radius:5px; float: right;} +#batchManagerGlobal #applyOnDetails {text-align: center; margin-top: 8px; color: #FFA646; font-weight: bold;} +#batchManagerGlobal .actionButtons {text-align:left; display: flex; flex-direction: column;} +#batchManagerGlobal #filterList {padding-left:0px; display: flex; flex-wrap: wrap; align-items: start; margin-top: 0px;} +#batchManagerGlobal #filterList li { + list-style-type:none; + background-color: #fafafa; + padding: 10px; + margin: 0px 10px 10px 0px; + box-shadow: 0px 2px 1px #00000024; + border-radius: 5px; + position: relative; +} +#batchManagerGlobal #filterList li p {font-weight: bold;display: block;margin: 0;margin-bottom: 5px;} +#batchManagerGlobal a.removeFilter {color: #AAA; + position: absolute; + right: 5px; + top: 5px; +} +#batchManagerGlobal a.removeFilter::before {margin-right:0; content: '\e822'; font-size: 11pt; color: #3C3C3C; margin-left: 6px; font-size: 12pt;color: #777;} +#batchManagerGlobal a.removeFilter:hover::before {color: #ffa646;} #batchManagerGlobal a.removeFilter:hover {color:red;} #batchManagerGlobal .removeFilter span {display:none} -#batchManagerGlobal #applyFilterBlock {margin-top:20px;} +#batchManagerGlobal #applyFilterBlock {width: 200px;} #batchManagerGlobal .useFilterCheckbox {display:none;} -#batchManagerGlobal blockquote {margin:5px 0 20px 15px;} -#batchManagerGlobal .ui-slider-horizontal {width:650px;margin:5px 0 10px 0;} +#batchManagerGlobal blockquote {margin:10px 0 0px 0;} +#batchManagerGlobal .ui-slider-horizontal {width:280px; margin:10px 0 10px 9px;} +#batchManagerGlobal #filter_dimension .ui-slider-horizontal {width:580px;} #batchManagerGlobal #duplicates_options label {margin-left:10px;} -#batchManagerGlobal .thumbnails span.icon-check, -#batchManagerGlobal .thumbnails span.icon-check-empty { - position:absolute; - left:5px; - top:3px; - font-size:14px; +#batchManagerGlobal .thumbnails span.icon-check, #batchManagerGlobal .thumbnails span.icon-check-empty { + position: absolute; + left: 84px; + top: 84px; + font-size: 14px; + display: none; } +.batchManager-pagination { + display: flex; + align-items: center; + clear: both; + margin: 0px 20px; + justify-content: space-between; +} + +.noFilter { + text-align: center; + font-weight: 600; + padding: 27px 0; + margin-bottom: 30px; + display: none; +} + +.filterActions { + display: flex; +} + +.filterActions #addFilter { + position: relative; + margin-right: 10px; +} + +.addFilter-dropdown { + z-index: 100; + padding: 5px 0px; + border-radius: 10px 10px 0px 0px; + background: linear-gradient(130deg, #ff7700 0%, #ffa744 100%); + color: white; + position: absolute; + bottom:100%; + overflow: hidden; + width: 100%; + display: none; +} + +.addFilter-dropdown a { + display: block; + text-align: initial; + padding: 5px 10px; + font-size: 12px; + padding-right: 15px; + color: white; + font-weight: 600; + cursor: pointer; +} + +.addFilter-dropdown a:hover { + text-decoration: none; + color: white; + background-color: rgba(0, 0, 0, 0.123) +} + +.addFilter-dropdown a.disabled { + pointer-events: none; + opacity: 0.5; +} -#order_filters a.addFilter {font-weight:normal;margin-left:20px;} #order_filters a.removeFilter {font-weight:normal;} #order_filters span.property span.filter:first-child a.removeFilter {display:none;} /* can't delete the first field */ #order_filters span.filter {display:block;margin-left:20px;} @@ -1284,37 +2387,621 @@ a#showPermissions:hover {text-decoration: none;} #debug { margin-left: 227px; font-size:12px; } -/* Album Properties */ -#albumThumbnail { - width:1%; - padding-right:10px; - text-align:center; +.tag-header { + display: flex; + flex-wrap: nowrap; + align-items: center; + margin-left: 20px; + max-width: calc(100% - 530px); + overflow: hidden; + padding: 10px; } -#albumThumbnail img { - border:2px solid #ddd; +.tag-header #search-tag{ + position: absolute; + right: 240px; } -#albumLinks { - vertical-align:top; - border-left:2px solid #ddd; - padding-left:10px; +.tag-header #add-tag { + position: relative; + margin: 0; } -#albumLinks ul, .photoLinks ul { - padding-left:0; +.tag-header #add-tag.hide { + display: none; } -#albumLinks li, .photoLinks li { - list-style:none; +.tag-header #add-tag .add-tag-label { + position: relative; + padding: 10px; + background-color: #fafafa; + box-shadow: 0px 2px #00000024; + border-radius: 5px; + font-weight: bold; + display: flex; + align-items: baseline; + cursor: pointer; } -.photoLinks { - vertical-align:top; +.tag-header #add-tag.input-mode .add-tag-label { + background: none; + box-shadow: none; + cursor: auto; + padding: 0px } -.photoLinks ul { - margin:0; +.tag-header #add-tag .add-tag-label::before { + margin: auto; + font-size: 16px; + margin-right: 5px; +} + +.tag-header #add-tag.input-mode .add-tag-label::before { + display: none; +} + +.tag-header #add-tag .add-tag-label p{ + margin: 0; + white-space: nowrap; +} + +.tag-header #add-tag .add-tag-container { + display: none; +} + +.tag-header #add-tag.input-mode .add-tag-container { + display: flex; + margin-right: 35px; +} + +.tag-header #add-tag.input-mode .add-tag-container input { + padding: 9px; + margin-left: 10px; + border: solid 2px #ffa744; + background: none; + width: 100px; +} + +.tag-header #add-tag.input-mode .add-tag-container input:hover { + background-color: #f0f0f0 !important; +} + +.tag-header #add-tag span.icon-cancel-circled{ + display: none; + position: absolute; + right: 15px; + top: 50%; + transform: translate(15px, -53%); + z-index: 2; + font-size: 22px !important; + cursor: pointer; +} + +.tag-header #add-tag.input-mode .icon-cancel-circled { + display: block; +} + +.tag-header #add-tag span.icon-cancel-circled:hover { + color: #ff7700; +} + +.tag-header #add-tag.input-mode .icon-validate{ + display: block; + margin: auto 5px; + cursor: pointer; + background-color: #ffa744; + color: #3c3c3c; + font-size: 17px; + font-weight: 700; + padding: 7px 5.5px; +} + +.tag-header #add-tag span.icon-validate:hover { + background-color: #f70; + color: #000; + cursor: pointer; +} + +.tag-header .selection-controller { + display: none; + align-items: baseline; + height: 38px; + color: #777; + font-weight: bold; +} + +.tag-header .selection-controller.show { + display: flex; +} + +.tag-header .selection-controller p { + margin-right: 10px; + color: #555; +} + +.tag-header .selection-controller a { + margin: 0; + background-color: #f0f0f0; + padding: 10px; + color: #777; + font-weight: bold; + margin: 4px; + border-radius: 5px; +} + +.tag-header .selection-controller a:hover { + background-color: #ddd; + color: #3A3A3A; + text-decoration: none; +} + + +.tag-info { + height: 35px; + overflow: hidden; + border-radius: 20px; + display: flex; + padding: 0px 10px 0px 0px; + font-weight: bold; + margin-left: 10px; +} + +.tag-info.hide { + display: none; +} + +.tag-info p { + margin: auto; + white-space: nowrap; + text-overflow: ellipsis; + overflow: hidden; + text-align: initial; +} + +.tag-info::before { + line-height: 35px; + margin: 0px 10px; + font-size: 16px; +} + +.tag-info.tag-warning { + color: #ee8800; + background-color:#ffdd99; +} + +.tag-info.tag-message { + color: #0a0; + background-color:#c2f5c2; + display: none; +} + +.tag-info.tag-error { + color: #f22; + background-color: #ffd5dc; + display: none; + animation-name: tag-error-appear ; + animation-duration: 0.4s; + animation-timing-function: ease; +} + +.tag-info a:hover { + color: white; +} + +@keyframes tag-error-appear { + 25% { transform: translateX(-10px)} + 50% { transform: translateX(10px)} + 75% { transform: translateX(-10px)} + 100% { transform: translateX(0px)} +} + +.tag-container { + display: flex; + padding: 10px 25px; + flex-flow: wrap; + padding-right: 223px; +} + +.tag-container .tag-box{ + display: inline-flex; + align-items: center; + padding: 5px 10px 5px 15px; + background-color: #fafafa; + margin: 7px 5px; + box-shadow: 0px 2px 1px #00000024; + border-radius: 18px; + position: relative; +} + +.tag-container.selection .tag-box { + opacity: 0.8; + cursor: pointer; +} + +.tag-container.selection .tag-box[data-selected='1'] { + opacity: 1; + background-color: #ffd7ad; +} + +.tag-container .tag-box p { + white-space: nowrap; + margin: 0; +} + +.tag-container .tag-box[data-selected='1'] p { + color: #333; +} + +.tag-container .tag-box.edit-name p { + display: none; +} + +.tag-container .tag-box .showOptions { + color: #aaa; +} + +.tag-container .tag-box.edit-name .showOptions { + display: none; +} + + +.tag-container.selection .showOptions { + display: none; +} + +.tag-container .tag-box .tag-dropdown-block { + display:none; + position: absolute; + top: 32px; + right: 0px; + transform: translateX(calc(50% - 23px)); +} + +.tag-container .tag-box .tag-dropdown-block .tag-dropdown-header { + white-space: nowrap; + display: flex; + margin: auto; + justify-content: space-between; + color: white; + border-bottom: solid 1px #ffffff3d; + padding: 5px 10px; + min-width: 150px; +} + +.tag-container .tag-box .tag-dropdown-header b { + font-weight: bold; + margin-right: 2px; + white-space: nowrap; + text-overflow: ellipsis; + overflow: hidden; +} + +.tag-container .tag-box .select-checkbox { + display: none; + width: 15px; + height: 15px; + border-radius: 100%; + margin: 2px 0px; + margin-left: 3.4px; + border: solid #ffa646 2px; +} + +.tag-container.selection .tag-box .select-checkbox { + display: block; +} + +.tag-container .tag-box:hover .select-checkbox, +.tag-container .tag-box[data-selected='1'] .select-checkbox { + background-color: #ffa646; +} + +.tag-container .tag-box .select-checkbox.show { + display: block; +} + +.tag-container .tag-box .select-checkbox i { + display: none; + font-size: 14px; + transform: translate(-10px , -3px); + position: absolute; + color: #fafafa; + animation-name: icon-check-tag-animation; + animation-duration: 0.4s; + animation-timing-function: ease-out; +} + +.tag-container .tag-box[data-selected='1'] .select-checkbox i { + display: inline; +} + +@keyframes icon-check-tag-animation { + 0% { + transform: translate(-10px , -3px) scale(0); + } + 75% { + transform: translate(-10px , -3px) scale(1.3); + } + 100% { + transform: translate(-10px , -3px); + } +} + +.tag-container .tag-box .tag-rename { + display: none; +} + +.tag-container .tag-box.edit-name .tag-rename { + display: flex; +} + +.tag-container .tag-box .tag-rename .tag-name-editable { + text-align: left; + width: 100px; + color: #3c3c3c; + font-family: "Open Sans", "Lucida Grande",Verdana,Arial,"Bitstream Vera Sans",sans-serif; + margin: 0px; + background-color: white; + border: 1px solid #d5d5d5; + padding-left: 6px; +} + +.tag-container .tag-box .tag-rename span:hover { + color: #ffa744; +} + + +.tag-container .tag-box .tag-rename span { + padding: 2px 3px; + margin: auto; + cursor: pointer; + color: #3A3A3A; +} + +.tag-selection .tag-selection-content { + margin-top: 90px; + padding: 5px; +} + +.tag-selection .tag-selection-content .selection-mode-tag{ + display: none; +} + + +.selection-mode-tag .tag-list { + margin: 10px; + text-align: start; + font-weight: 700; + font-size: 15px; + overflow: hidden; + max-height: 160px; +} + +.selection-mode-tag .tag-list p { + width: 85%; + text-overflow: ellipsis; + overflow: hidden; + white-space: nowrap; + color: #a0a0a0; + margin: 0; +} + +.selection-mode-tag .tag-list div { + display: flex; + margin: 10px; + text-align: start; +} + +.selection-mode-tag .selection-other-tags { + color: #ffa646; + font-weight: bold; + font-size: 15px; +} + +.tag-select-message { + background: #bce5f7; + height: 46px; + display: flex; + justify-content: center; + align-items: center; + font-size: 14px; + display: none; + margin: 10px 243px 10px 32px; + color: #0051a5; + font-weight: 600; +} + +.tag-select-message a{ + font-weight: bold; + margin-left: 6px; + background-color: #0051a5; + color: white; + padding: 0px 4px; +} + +.tag-select-message a:hover { + color: white; + text-decoration: none; + background-color: #002e5f; +} + +.tag-pagination { + margin: 0 20px;; + display: flex; + margin-bottom: 20px; + margin-right: 223px; + padding: 0px 15px; + justify-content: space-between; + align-items: center; +} + +.pageLoad { + display: none; + text-align: center; + margin-right: 223px; + position: absolute; + left: 50%; + z-index: 100; + transform: translateY(50px); +} + +.pageLoad i { + font-size: 40px; + color: rgba(29, 29, 29, 0.226); +} + +/* Picture Edit */ +#pictureModify { + display: flex; + margin: 0; + justify-content: space-evenly; + margin-top: 30px +} + +#picture-preview { + width: 35vw; + position: relative; + background-color: #3c3c3c; + height: 35vw; + flex-shrink: 0; + overflow: hidden; + margin-left: 10px; +} + +#picture-preview .preview-box{ + margin: 0; + position: absolute; + top: 50%; + -ms-transform: translate(-50%,-50%); + transform: translate(-50%,-50%); + left: 50%; +} + + +.picture-preview-actions { + position: absolute; + padding: 10px; + right: 0; + top: 0; + font-size: 18px; + z-index: 100; + background-color: #101010A0; +} + +.picture-preview-actions a { + color: #ffffff; + padding: 5px; +} + +.picture-preview-actions a.unavailable { + color: #ffffff48; + cursor: context-menu; +} + +#picture-content { + width: 50%; +} + +#picture-content p { + text-align: left; +} + +#picture-content input[type=text], #picture-content textarea, #picture-content .selectize-input { + width: calc(100% - 15px); + background-color: #f8f8f8; + padding: 8px; + border-radius: 4px; + border-color: #DDD; + transition: ease 0.2s; + font-family: "Open Sans", "Lucida Grande",Verdana,Arial,"Bitstream Vera Sans",sans-serif; +} + +#picture-content .selectize-input { + width: 100%; +} + +#picture-content input[type=text], #picture-content textarea, #picture-content .selectize-control { + margin-top: 5px; +} + +#picture-content .date-input { + position: relative; +} + +#picture-content .date-input input{ + padding-left: 35px; + width: calc(100% - 43px); +} + +#picture-content .date-input i{ + position: absolute; + font-size: 20px; + top: 50%; + transform: translate(6px, -50%); + opacity: 0.6; +} + +#picture-content input:focus { + border-color: #888; +} + +#picture-content select { + background-color: #FFF; + color: #4E4E4E; + border: 2px solid #7070704f !important; + padding: 10px 18px; + -webkit-appearance: none; + font-weight: 700; + width: calc(100% - 15px); + margin: 0 10px; +} + +#picture-content .select-icon { + font-size: 17px; + position: absolute; + color: #6E6E6E; + pointer-events: none; + right: 3%; + transform: translateY(5px); +} + +#picture-infos { + display: grid; + grid-template-columns: 50% 50%; +} + +.picture-infos-category { + display: flex; + border: #EEE solid 2px; + padding: 20px; + border-radius: 5px; + margin: 0px 10px; + align-items: center; +} + +.picture-infos-icon { + font-size: 34px; + margin-right: 20px; + display: flex; + color: #3c3c3c; +} + +.picture-infos-icon span { + margin: auto; +} + +.picture-infos-container { + margin: 0; + display: inline-table; +} + +.picture-infos-container div { + margin: 0; + word-wrap: anywhere; +} + +.picture-infos-title { + color: #3c3c3c; + font-weight: bold; } /* Album Manager */ @@ -1347,7 +3034,6 @@ a#showPermissions:hover {text-decoration: none;} } .commentFilter {text-align:left;margin:5px 1em;} -.commentFilter .navigationBar {float:right; margin:0;} FORM#categoryOrdering p.albumTitle {margin:0; margin-left: 5px; text-overflow: ellipsis; white-space: nowrap; overflow: hidden; margin-bottom: 4px;} FORM#categoryOrdering p.albumTitle a {font-size: 14px; font-weight: 600;} @@ -1363,12 +3049,256 @@ FORM#categoryOrdering p.albumActions a { padding-top: 22px; } -.albumInfos { font-size: 12px; } .actionTitle span {text-transform: capitalize;} FORM#categoryOrdering p.albumActions a:hover {text-decoration: none;} FORM#categoryOrdering p.albumActions .userSeparator {margin:0 5px;} +/* Move Album */ +.cat-move-header { + display: flex; + margin: 0px 30px; + align-items: center; + font-size: 14px; + justify-content: space-between; + margin-top: 20px; +} + +.cat-move-header .order-root::before { + font-size: 16px; +} + +.cat-move-header .cat-move-info { + position: relative; +} + +.cat-move-header .cat-move-info::before { + color: grey; + font-size: 20px; +} + +.cat-move-header .cat-move-info .spinner { + position: absolute; + left: calc(100% + 6px); + font-size: 20px; + display: none; +} + +.tree { + margin: 20px; + padding-top: 1px; +} + +.move-cat-container { + display: flex; + align-items: center; + box-shadow: 0px 2px 3px #00000024; + background-color: #fafafa; + border-radius: 5px; + color: #777; + padding: 5px 10px; + padding-left: 28px; +} + +.move-cat-container .icon-grip-vertical-solid { + font-size: 16px; + opacity: 0.5; + position: absolute; + left: 6px; +} + +.move-cat-container .icon-folder-open, .move-cat-container .icon-sitemap { + display: inline-block; + border-radius: 50%; + font-size: 20px; + padding: 8px; + margin: 5px; +} + +.move-cat-container .icon-lock { + font-size: 16px; + margin-left: 0px; +} + +.move-cat-container .move-cat-title { + font-size: 16px; + margin: 10px; + max-width: 200px; + overflow: hidden; + white-space: nowrap; + text-overflow: ellipsis; + font-weight: 600; +} + +.move-cat-container .move-cat-toogler { + display: flex; + color: #FFBD4D; + margin-left: 15px; + align-items: center; + cursor: pointer; + z-index: 2; + font-weight: 600; +} + +.move-cat-container .move-cat-toogler .icon-left-open{ + transform: rotate(90deg); +} + +.move-cat-action-cont { + display: none; + position: absolute; + right: 50%; + top : 50%; + width: 100%; + height: 100%; + border-radius: 5px; + transform: translate(50%, -50%); + align-items: center; + flex-direction: row-reverse; + overflow: hidden; +} + +.move-cat-container:hover .move-cat-action-cont { + display: flex; +} + +.move-cat-action { + display: flex; + align-items: center; + max-width: 60%; +} + +.move-cat-action a { + padding: 30px 15px; + font-weight: bold; + cursor: pointer; + height: 100%; + border-left: 1px solid #00000012; + background-color: #00000003; + text-align: center; +} + +.move-cat-action a:hover { + color: #444; + text-decoration: none; + background-color: #FFA646; +} + +.cat-move-order-popin { + position: fixed; + z-index: 100; + left: 0; + top: 0; + width: 100%; + height: 100%; + overflow: auto; + background-color: rgba(0,0,0,0.7); + display: none; +} + +.cat-move-order-popin .order-popin-container { + background-color: #f3f3f3; + border-radius: 10px; + display: block; + width: 25%; + position: absolute; + left: 50%; + top: 50%; + transform: translate(-50%, -48%); + text-align: left; + padding: 30px; +} + +.cat-move-order-popin .album-name { + font-size: 14px; + color: #3C3C3C; + font-weight: 600; + text-align: center; +} + +.cat-move-order-popin .choice-container { + display: flex; + flex-direction: column; + padding: 10px 5px; +} + +.cat-move-order-popin label { + position: relative; + padding: 5px; +} + +.cat-move-order-popin input[type=radio] { + opacity: 0; +} + +.cat-move-order-popin input[type=submit] { + width: 100%; + margin: 10px 0px; +} + +.cat-move-order-popin input[name=recursiveAutoOrder] { + background-color: #d9d9d9; +} + +.cat-move-order-popin input[name=recursiveAutoOrder]:hover { + background-color: #ffc17e; +} + +.cat-move-order-popin .close-popin { + position: absolute; + right: -40px; + top: -40px; + font-size: 30px; + color: white; +} + +.cat-move-order-popin .close-popin:hover { color: #ffa646;} + +.popin-title {font-weight: bold; font-size: 15px; margin-bottom: 15px; color: #3C3C3C;} + +.popin-title span { + padding: 7px; + border-radius: 25px; + font-size: 15px; + margin-right: 10px; +} + +/*Overwrite JQtree CSS*/ + +.jqtree_common { + margin: 20px 2px !important; +} + +li.jqtree-ghost { + display: flex !important; + margin: 0 !important; +} + +ul.jqtree-tree ul.jqtree_common { + margin-left: 50px !important; +} + +ul.jqtree-tree span.jqtree-border { + border: solid 2px #FFBD4D !important; + width: 98%; +} + +ul.jqtree-tree li.jqtree-ghost span.jqtree-circle { + border: solid 2px #FFBD4D !important; + margin: 0 !important; +} + +ul.jqtree-tree li.jqtree-ghost span.jqtree-line { + background-color: #FFBD4D !important; + position: relative !important; + height: 2px !important; + margin: 0 !important; +} + +ul.jqtree-tree .jqtree-element { + cursor: move !important; +} + .albumBlock {display: flex; justify-content: space-between; padding: 10px 10px 0 10px;} .albumBlock .albumLineBlock {display: block; padding-left: 7px; max-width: 45%; height: 50px;} .showCreateAlbum {text-align:left; margin:0 1em 25px 20px; line-height:22px;} @@ -1376,7 +3306,6 @@ FORM#categoryOrdering p.albumActions .userSeparator {margin:0 5px;} #addAlbumOpen, #autoOrderOpen {padding: 7px 15px; font-weight: bold; font-size: 11px;} .afterUploadActions {text-align: center; margin-bottom: 30px !important;} .afterUploadActions a {justify-content: center; margin: 35px; font-weight: bold; font-size: 14px; padding: 10px 12px;} -#addAlbumOpen::before ,#autoOrderOpen::before {margin-right: 10px; font-weight: bold; font-size: 15px;} #autoOrder p, #createAlbum p {text-align:left; margin:0 0 1em 0;} #autoOrder p.actionButtons, #createAlbum p.actionButtons {margin-bottom:0;} @@ -1428,41 +3357,993 @@ input[type="text"].dError {border-color:#ff7070; background-color:#FFe5e5;} margin-left:5px; } -.groups { - text-align:center; + .content .groups form{ + margin:0; + margin-top: 115px; } -.groups li { + +.groups { + display: flex; + flex-wrap: wrap; + justify-content: center; +} + +.group-manager{ + margin-right:224px; +} + +.remove-item { + flex: 1; + -webkit-animation: flexShrink 500ms ease forwards; + -o-animation: flexShrink 500ms ease forwards; + animation: flexShrink 500ms ease forwards; +} + +.groups .list_user #text{ + width:100%; +} + +.groups .GroupContainer { vertical-align: middle; position: relative; - display: inline-block; + display: flex; + flex-direction: column; text-align: left; - height: 300px; - width: 250px; - margin: 5px; - border-radius: 5px; + height: 286px; + width: 220px; + margin: 15px; + border-radius: 10px; + align-items: center; + justify-content: space-between; } -.groups p { - text-align:left; + +.groupHeader { + width: 100%; } -.groups label>p { + +.groups .Group-name .Group-name-container p{ + margin: auto; + padding: 2px; + text-align: center; + font-weight:700; + max-width: 170px; + overflow: hidden; + text-overflow: ellipsis; + white-space: nowrap; +} + +.Group-name-container { + position: relative; + display: inline-flex; + transform: translate(10px, 0); +} + +.group-rename { + margin: 0; + position: absolute; + top: 0px; + transform: translate(0,-8px); + display: none; + opacity: 1; +} + +.group-rename span { + padding: 5px; + margin: auto; +} + +.group-rename .validate { + background-color: #ffa744; +} + +.group-rename .icon-ok:hover { + background-color: #ff7700; + color: #3c3c3c; +} + +.group-rename form { + margin: 0 !important; +} + +.Group-name span:hover{ + color: #ffa744; + cursor: pointer; +} + +.group-rename input{ + text-align: left; + width: 130px; + margin: 4px; + font-weight: bold; + color: #3c3c3c; + font-family: "Open Sans", "Lucida Grande",Verdana,Arial,"Bitstream Vera Sans",sans-serif; + margin-left: 9px; +} + +.addGroupLabel { margin: 0; border-radius: 5px 5px 0 0; padding: 2px; + position: absolute; + left: 11px; + top: -11px; + font-size: 14px; +} + +.groups .icon-users-1{ + text-align:center; +} + +.groups .group_number_users{ + text-align: center; + font-weight: 700; + font-size: 1em; + margin:12px; +} + +.groups .addGroupFormTitle{ + font-size:1.2em; + font-weight:700; +} + +.groups input[type="text"]{ + padding:5px; +} + +.groupIcon { + margin:15px auto; +} + +.groups .icon-users-1:first-child{ + font-size: 19px; + width: 27px; + padding: 10px; + border-radius: 30px; + margin: auto; + transition: 0.4s ease; +} + +.groupMessage { + display: none; + position: absolute; + min-height: 20px; + padding: 10px; + border-radius: 30px; + top: -17px; + font-size: 12px; + right: 52px; + width: 110px; + color: #0a0; + background-color:#c2f5c2; text-align: center; } -.groups input { - float: right; +.groupError { + z-index: 2; + display: none; + position: absolute; + color: #f22; + background-color: #ffd5dc; + min-height: 17px; + padding: 10px; + border-radius: 30px; + top: -17px; + font-size: 12px; + right: 29px; + width: 143px; + text-align: center; } -p.list_user { + +.groups .addGroupFormTitle{ + margin:0; +} + + FORM.properties .groups .GroupContainer, + .groups FORM#update .groups UL { + margin-bottom: 15px; +} + +#group-template { + display: none; +} + +/* Selection mode */ +.selection-mode-group-manager{ + position:absolute; + right:15px; + z-index:11; +} + +.switch { + position: relative; + display: inline-block; + width: 60px; + height: 24px; + vertical-align:middle; +} + +.selection-mode-group-manager p{ + display:inline-block; + padding:0 5px; +} + +.switch input { + opacity: 0; + width: 0; + height: 0; +} + +.slider { + position: absolute; + cursor: pointer; + top: 0; + left: 0; + right: 0; + bottom: 0; + -webkit-transition: s; + transition: 1s; +} + +.slider:before { + position: absolute; + content: ""; + height: 16px; + width: 16px; + left: 6px; + bottom: 4px; + -webkit-transition: .4s; + transition: .4s; +} + +input:checked + .slider:before { + -webkit-transform: translateX(33px); + -ms-transform: translateX(33px); + transform: translateX(33px); +} + +.slider.round { + border-radius: 34px; +} + +.slider.round:before { + border-radius: 50%; +} + +#selection-mode-block{ + display:none; + position: absolute; + right: 0; + width: 223px; + min-height:calc(100% - 171px); + top: 169.5px; + z-index: 10; +} + +#selection-mode-block.show{ + display: block; +} + +.Selection-mode-content{ + margin-top:110px; +} + +/*Selection mode content*/ + +#nothing-selected{ + display:block; + margin: 10px; +} + +.SelectionModeGroup{ + display:none; + text-align:center; +} + +.SelectionModeGroupList{ + font-weight:700; + font-size:15px; +} + +.SelectionModeGroupList div{ + margin:10px; + text-align: start; +} + +.SelectionModeGroupList div div{ + display: flex; +} + +.SelectionModeGroupList a, +.SelectionModeGroupList p { + display:inline-block; + margin:0 +} + +.SelectionModeGroupList p { + width: 85%; + text-overflow: ellipsis; + overflow: hidden; + white-space: nowrap; +} + +#selection-mode-block button{ + display:block; + margin:20px auto; + font-size: 12px; + font-weight: 700; + padding: 13px 30px; + background-color:transparent; + width: 180px; +} + +#selection-mode-block button:hover{ + cursor: pointer; +} + +#selection-mode-block button.unavailable{ + opacity: 0.3; + background: none !important; + border: none !important; + cursor: auto; +} + +#ConfirmGroupAction{ + font-size:12px; + font-weight:700; + padding:20px; + display:none; +} + +#ConfirmGroupAction p{ + margin: 20px; + font-weight: 700; + font-size: 13px; +} + +.ConfirmDeleteButton{ + display: block; + margin: 20px auto; + font-size: 12px; + font-weight: 700; + padding: 13px 40px; + background-color: #ffa744; + border:none; + margin-top:40px; + cursor: pointer; +} + +/*Merge Options*/ + +#MergeOptionsBlock{ + display:none; + position:relative; + margin-top:40px; +} + +#MergeOptionsBlock p{ + margin: 20px; + font-weight: 700; + font-size: 13px; +} + +#MergeOptionsBlock .ItalicTextInfo{ + font-weight:400; + font-style:italic; + margin-top:0px; + margin-bottom:40px; +} + +#MergeOptionsBlock a{ + font-size:12px; + font-weight:700; +} + +.MergeOptionsChoice{ + display:block; + font-size:15px; +} + +.MergeOptionsChoice input{ + margin:0 5px; +} + +/*Merge options Radio buttons*/ + +.MergeOptionsContainer { + display: block; + position: relative; +} + +.MergeOptionsContainer input { + position: absolute; + opacity: 0; + cursor: pointer; +} + +.ConfirmMergeButton{ + display: block; + margin: 20px auto; + font-size: 12px; + font-weight: 700; + padding: 13px 40px; + border:none; + margin-top:40px; +} + +.MergeOptionsContainer{ + font-size:15px; +} +.MergeOptionsContainer label, +.MergeOptionsContainer select{ + display:block; + margin:10px auto; +} + +.MergeOptionsContainer select, +.MergeOptionsContainer option{ + width:182px; +} + +.MergeOptionsContainer select{ + padding: 10px 5px; + border: none; + background-color: white; + box-shadow: 0 0 2px #c5c5c5; + border-radius: 5px; +} + +/*Edit group name*/ + +.groups .Group-name{ + position:relative; + text-align: center; +} + +#EditGroupName{ + text-align:center; + display:none; +} + +.groups .Group-name .icon-pencil{ + opacity: 0; +} + +.Group-name:hover .icon-pencil{ + opacity: 1; +} + +/* Options menu*/ + +.group-dropdown-options:before{ + font-size:20px; + position:absolute; + top:10px; + right:0px; + padding:5px; + cursor: pointer; +} + +#GroupOptions{ + display:none; + z-index:1; + position:absolute; + right: -86px; + top: 41px; +} + +.is-default-token { + display: block; + z-index: 1; + position: absolute; + cursor: pointer; + right: 33px; + top: 4px; + padding: 5px 0; + font-size: 20px; + color: #777; + transition: 0.2s ease; +} + +.is-default-token:hover { + transform: scale(1.2,1.2); +} + +.is-default-token.deactivate { + display: none; +} + +.jconfirmDeleteConfirm, .jconfirmAlert { + padding-bottom: 0 !important; + color: #3c3c3c !important; + line-height: 28px !important; +} + +.jconfirmAlert { + margin-bottom: -2px !important; +} + +.jconfirmDeleteConfirm ~ .jconfirm-content-pane, .jconfirmAlert ~ .jconfirm-content-pane { + height: 0px !important; + margin: 0px !important; +} + +.jconfirmDeleteConfirm ~ .jconfirm-buttons button { + text-transform: none !important; +} + +.jconfirmAlert .jconfirm-icon-c i { + color: #0a0 !important; + background-color:#c2f5c2 !important; + border-radius: 20px; + padding: 5px 3px; + border-radius: 60px; + padding: 2px; + font-size: 45px; +} + +.jconfirmAlert .jconfirm-icon-c { + margin-bottom: 25px !important; +} + +.jconfirmAlert .jconfirm-title { + font-size: 20px !important; +} + +.jconfirm-title { + line-height: 1.5em; +} + +.jconfirm-buttons .btn { + text-transform: none !important; +} +/*Group checkbox*/ + +.Group-checkbox{ + display:none; + position: absolute; + top: 0px; + width: 100%; + height: 100%; + z-index: 2; +} + +.Group-checkbox-label { + width: 100%; + height: 100%; + display: block; +} + +.groups .Group-checkbox input { + position: absolute; + opacity: 0; + cursor: pointer; + height: 0; + width: 0; +} + +.groups .group-checkmark { + position: absolute; + top: 0; + right: 0; + margin: 12px; + height: 25px; + width: 25px; + border-radius:15px; + z-index: -1; +} + +.groups .group-checkmark:after { + content: ""; + position: absolute; + display: none; + animation: checkmark-appear 0.3s ease; +} + +@keyframes checkmark-appear { + 0% { + transform: rotate(45deg) scale(0); + } + 75% { + transform: rotate(45deg) scale(1.5); + } + 100% { + transform: rotate(45deg); + } +} + +.groups .Group-checkbox input:checked ~ .group-checkmark:after { + display: block; +} + +.groups .Group-checkbox .group-checkmark:after { + left: 9px; + top: 5px; + width: 5px; + height: 10px; + border: solid white; + border-width: 0 3px 3px 0; + -webkit-transform: rotate(45deg); + -ms-transform: rotate(45deg); + transform: rotate(45deg); +} + +/* Add group */ + +.addGroupBlock{ + position:absolute; + top:50%; + transform:translateY(-50%); + margin: auto; + width: 100%; + padding: 100px 0; +} + +.groups .icon-plus-circled{ + font-size: 19px; + width: 27px; + height: 27px; + padding: 10px; + border-radius: 30px; + margin: 10px auto; +} + +.groups #addGroup{ + font-weight:700; + width: 145px; + margin: auto; + text-align: center; +} + +.groups #addGroupForm{ + cursor: pointer; + position: relative; + order: -10000000000; +} + +.groups #addGroupForm form { + display: none; +} + +.groups fieldset{ + border:none; + margin:0; + padding:0; + text-align:center; +} + +.groups fieldset p{ + text-align:center; +} + +.addGroupFormLabelAndInput{ + margin:10px; + text-align:center; + margin-top:18px; + position: relative; +} + +.groups fieldset INPUT[type="text"]{ + margin:10px; + padding:10px; + display:inline-block; + width:159px; +} + +.groups button.submit{ + font-size:12px; + font-weight:700; + padding:13px 20px; + border:none; + display:inline-block; +} + +.groups #addGroupForm .actionButtons{ + text-align:center; +} + +.groups #addGroupForm .actionButtons a{ + font-size: 12px; + border: none; + padding: 13px 9px; + font-weight: bold; + transition: all 125ms ease-out; +} + +/*Group manager buttons*/ + +.groups .GroupManagerButtons{ + text-align:center; + width: 190px; + height: 50px; + line-height: 50px; +} + +.manage-permissions { + margin-bottom: 15px; +} + +.groups .manage-users, +.groups .manage-permissions{ + font-size: 13px; + display: inline-block; +} + +.groups .manage-users, +.groups .manage-users:hover, +.groups .manage-permissions, +.groups .manage-permissions:hover{ + text-decoration:none; +} + + +@media (hover: hover){ + .GroupContainer .GroupManagerButtons{ + display:none; + } + + .GroupContainer:hover .GroupManagerButtons{ + display:block; + } +} + +/*UserList Pop in*/ + +.CloseUserList{ + position:absolute; + right:-40px; + top:-40px; + font-size:30px; +} + +#UserList{ + display: none; +} + +.UserSearch { + width: 220px; + margin-top: 4px; +} + +.UserListPopIn{ + position: fixed; + z-index: 100; + left: 0; + top: 0; + width: 100%; + height: 100%; + overflow: auto; + background-color: rgba(0,0,0,0.7); +} + +.UserListPopInContainer{ + display:block; + width:1100px; + position:absolute; + left:50%; + top: 50%; + transform:translate(-50%, -48%); + text-align:left; + padding:30px; +} + +.group-name-block{ + margin-bottom:20px; +} + +#UserList .group-name-block span, +#UserList .group-name-block p, +#UserList .group-name-block .UserNumberBadge{ + display:inline-block; +} + +#UserList .group-name-block p{ + color:#3c3c3c; + font-weight:700; + font-size:15px; + margin-left:10px; +} + +#UserList .group-name-block span{ + padding:7px; + color: rgb(44,132,195); + background-color: #CDE9FD; + border-radius:25px; + font-size:15px; +} + +#UserList .group-name-block .UserNumberBadge{ + padding:3px 9px; + border-radius:15px; + background-color: rgb(44,132,195); + color: #CDE9FD; + font-size:10px; + margin-left:10px; + font-weight:700; +} + +#UserList .UserListAddFilterUsers{ + Position:relative; +} + +#UserList .AddUserBlock{ + padding:10px 0; + margin-bottom:30px; + display: flex; + align-items: center; +} + +#UserList .FilterUserBlock{ + position: absolute; + right: 0; + top: 15px; + display: flex; +} + +.FilterUserBlock .search-user{ + position: relative; +} + +#UserList .AddUserBlock p, +#UserList .AddUserBlock select, +#UserList .AddUserBlock button{ + display:inline-block; + margin:0 5px; +} + +#UserList .AddUserBlock select { + padding:11px 10px; +} + +#UserList .AddUserBlock button{ + font-size: 12px; + font-weight: 700; + padding: 16px 10px; + border: none; + margin-top: 1px; +} + +#UserList .AddUserBlock p{ + font-size:15px; + margin-left:0; +} + +#UserList .FilterUserBlock span, +#UserList .FilterUserBlock p, +#UserList .FilterUserBlock input{ + display:inline-block; +} + +#UserList .FilterUserBlock p{ + font-size:15px; + margin-right:5px; +} + +.UsersInGroupList{ + text-align:center; +} + +.UsernameBlock{ + margin:5px 10px; + display:inline-block; + margin-left:0px; + position:relative; + padding:0 10px; + border-radius:25px; +} + + +.UsersInGroupListContainer{ + max-height:315px; +} + +.UsersInGroupList p, +.UsersInGroupList span{ + display:inline-block; +} + + +.UsersInGroupList span{ + border-radius:25px; + padding:3px; + font-size:12px; +} + +.UsersInGroupList .icon-cancel:hover{ + cursor:pointer; +} + +.Tooltip{ + position:relative; + display:inline-block; + +} + +.Tooltip p.TooltipText{ + visibility: hidden; + width: 157px; + background-color:#f3f3f3; + color: #3c3c3c; text-align: left; - max-height: 200px; - overflow: auto; + padding: 5px 10px; + border-radius: 10px; + border:1px solid #3c3c3c; + font-weight:700; + font-size:10px; + position: absolute; + z-index: 4; + top:10px; + left:20px; + transition: opacity 0.3s; + z-index:101; } + +.Tooltip:hover p.TooltipText{ + visibility: visible; +} + +.ValidationUserAssociated{ + display:inline-block; + font-size:12px; + text-align:left; + padding: 4px 6px; + border-top-right-radius:10px; + border-bottom-right-radius:10px; + margin-left:-5px; + margin-right:10px; +} + +.ValidationUserAssociated p{ + margin:0; +} + +.ValidationUserDissociated{ + display:inline-block; + text-align:left; + padding: 6px; + border-radius: 30px; + margin-left: 8px; +} + +.ValidationUserDissociated p{ + margin:0 !important; + font-size:12px !important; + font-weight: 500 !important; +} + + +#UserList .FilterUserBlock .AmountOfUsersShown { + display:inline-block; + font-style:italic; +} + +#UserList .FilterUserBlock .AmountOfUsersShown p{ + font-size:12px; +} + +.LinkUserManager{ + text-align:center; + font-weight:700; + padding-top:20px; +} + +/********/ + +p.list_user { + text-align: center; + max-height: 200px; + overflow: auto; + margin: 0; +} + a.group_perm { position: absolute; - bottom: 5px; - right: 5px; + bottom: 10px; + right: 15px; +} +a.group_users { + position: absolute; + bottom: 10px; + left: 15px; } #userList .openUserDetails {visibility:hidden;} @@ -1489,7 +4370,7 @@ a.group_perm { .user_form_popin { width:750px; - height:430px; + height:450px; padding:20px; } @@ -1506,6 +4387,7 @@ a.group_perm { display:block; position:relative; } + .preview-box.icon-zoom-in:before { opacity:0; position:absolute; @@ -1532,6 +4414,27 @@ a.group_perm { opacity:0.5; } +/* Edit user popin*/ + + +.user_form_popin .ui-slider-horizontal .ui-slider-handle{ + background-color:#FFA646; + border:none; + border-radius:25px; + border: 1px solid #818181; +} + +.user_form_popin .ui-slider-horizontal .ui-slider-range-min{ + background-color:#818181; + border-radius:25px; +} + +.user_form_popin .ui-slider-horizontal{ + background-color:#e3e3e3; + border:none; + border-radius:25px; +} + /* table in help/quick_search.html */ table.qsearch_help_table { border-collapse:collapse; @@ -1583,17 +4486,30 @@ fieldset#environment legend i[class*="icon-"] { #headActions a span { display:inline; } + + #pwgHead .pwgHead-gallery-title { + width: calc(100% - 650px); + } + + .admin-head-username { + display: inline; + } } -.buttonLike, input[type="submit"], input[type="button"], input[type="reset"] { - font-size:12px; - border:none; - padding:13px 20px; - margin-left:0; - font-weight: bold; - transition: all 125ms ease-out; +.buttonLike, .buttonGradient, input[type="submit"], input[type="button"], input[type="reset"] { + font-size:12px; border:none; padding:13px 20px; margin-left:0; font-weight: bold; transition: all 125ms ease-out; } +.buttonGradient { + padding: 8px 10px; margin-left: 5px; + background: linear-gradient(135deg, rgb(255, 119, 0) 0%, rgb(249, 76, 93) 25%, rgb(201, 74, 140) 50%, rgb(249, 76, 93) 100%); transition: 0.3s ease; + cursor: pointer; + color: white !important; + background-size: 200% 100%; +} + +.buttonGradient:hover {background-position-x: 100%;} + #cboxLoadedContent input[type="submit"] {margin-bottom: 20px; float: none;} .selectAlbum, #permissions, .selectFiles {border: 0;} @@ -1601,16 +4517,14 @@ fieldset#environment legend i[class*="icon-"] { #permissions, .selectFiles {margin-top: 35px; margin-bottom: 20px;} .selectAlbumBlock {display: flex; margin-left: 10px; margin-top: 10px;} .icon-plus.cboxElement { - padding: 8px; - box-shadow: 0 1px 2px rgba(0, 0, 0, 0.16); - font-size: 15px; - margin-bottom: 8px; - transition: all 125ms ease-out; + padding: 8px; box-shadow: 0 1px 2px rgba(0, 0, 0, 0.16); font-size: 15px; margin-bottom: 8px; transition: all 125ms ease-out; } .icon-plus.cboxElement:hover {box-shadow: 0 2px 4px rgba(0, 0, 0, 0.16);} #albumSelection {margin-left: 25px;} .selectize-control.single .selectize-input {border-radius: 0; font-weight: bold;font-size: 12px;} .buttonLike {padding: 8px 10px; margin-left: 5px;} +.changeUsername .buttonLike {padding: 1px 10px;} +.changePassword .buttonLike {padding: 1px 10px;} .selectFilesButtonBlock {display: flex; margin-top: 10px;} .selectFilesinfo {margin-left: 15px; font-size: 90%; color: #999; display: flex; flex-direction: column; justify-content: center;} #uploader {margin-top: 25px; font-weight: bold !important;} @@ -1625,7 +4539,6 @@ li.plupload_delete a:hover {background: url("images/cancelhover.svg")!important; .plupload_total_file_size {margin-right: -8px;} .plupload_total_status {color: #707070!important; margin-right: -8px; font-weight: bold;} #photosAddContent .Addedphotos {border: none; margin-top: 35px;} -.plupload_upload_status {} .addAlbumEmpty {text-align: center; position: absolute; top: 45%; left: 50%; transform: translate(-50%, -50%);} .addAlbumEmptyCenter {position: relative; margin: auto; height: calc(100vh - 200px);} @@ -1639,12 +4552,7 @@ li.plupload_delete a:hover {background: url("images/cancelhover.svg")!important; .popinButtons {text-align: right; margin-top: 24px;} .popinButtons input[type="submit"] {margin-right: 0;} #albumCreationLoading { - background-color: #ffa744; - color: #3c3c3c; font-size: 12px; - border: none; - padding: 12.2px 28.4px; - font-weight: bold; - display: none; + background-color: #ffa744; color: #3c3c3c; font-size: 12px; border: none; padding: 12.2px 28.4px; font-weight: bold; display: none; } .popinField {margin-top: 30px; } .popinField.addAlbumFormParent {margin-top: 0;} @@ -1653,7 +4561,6 @@ li.plupload_delete a:hover {background: url("images/cancelhover.svg")!important; .selectedAlbum span { padding: 10px 12px; font-weight: bold; - background-color: #f5f5f5; text-align: center; margin-top: 20px; border-radius: 7px; @@ -1664,10 +4571,301 @@ li.plupload_delete a:hover {background: url("images/cancelhover.svg")!important; #addFiles i::before {margin-left: 13px; font-size: 15px;} .plupload_filelist_footer {display: none;} +.permitActionListButton .actionButtons {display: flex; flex-direction: column;} +.filterBlock {display: flex; flex-direction: column;} +.filterBlock li {width: 300px; height: auto;} +#filter_dimension {width: 600px;} +#filter_dimension .slider-choice, #filter_filesize .slider-choice {border-radius: 4px; padding: 2px 8px; margin: 0 3px;} +#checkActions a {background-color: #f0f0f0;padding: 6px 10px;color: #777;font-weight: bold;margin: 4px;border-radius: 5px;} +#filterList select {display: block; padding: 10px 18px; margin-bottom: 5px; width: 290px;} +#filterList li {margin-left: 25px; margin-bottom: 15px;} +#filter_tags .selectize-input.items.not-full.has-options, #filter_tags .selectize-input.items.not-full {padding: 10px 18px;} +#filter_tags .selectize-input {width: 300px; box-shadow: none; border-radius: inherit;} +#filter_tags .selectize-control.multi.plugin-remove_button {width: 300px !important;} +#filter_category .selectize-input.items.full.has-options.has-items {padding: 10px 18px; width: 610px; margin-bottom: 5px;} +#filterList .selectize-input.items.not-full.has-options {margin-bottom: 5px;} +#applyFilter, .addFilter-button {margin-left: 0;float: left;height: 45.6px;font-size: 1em;border: none;cursor: pointer;transition: ease 0.2s;display: flex;align-items: center;justify-content: center; padding: 0px 10px;} +#applyFilter.activated {background-color: #FFA646; color: #3C3C3C;} +#removeFilters {margin-top: 20px; margin-left: 13px;} +.filter_search_input {padding: 10px 0px; width: 300px;} +#permitAction {display: flex;} +#permitAction select {padding: 12px 10px; width: 280px; -webkit-appearance: none;} +.permitActionItem select { margin-bottom: 25px;} +#applyAction {padding: 10px 18px; margin-left: 0;} +.permitActionItem {margin-left: 30px; width: 225px;} +.permitActionItem .selectize-control.single.plugin-remove_button {width: auto !important;} +.permitActionItem .selectize-input.items.full.has-options.has-items {width: 500px !important; line-height: 23px;} +#action_associate {display: flex;} +#action_associate a:last-child {margin-left: 15px; padding: 10px;} +#applyAction i {margin-right: 15px;} +#action_delete_derivatives, #action_generate_derivatives {display: flex; flex-wrap: wrap; margin-top: 0px;} +.deleteDerivButtons a {border-radius: 4px; padding: 4px 10px; margin: 5px;} +.deleteDerivButtons {margin-bottom: 15px; margin-right: 51px; width: 100%; text-align: center;} +#action_delete_derivatives label, #action_generate_derivatives label {display: flex; margin-top: 4px; width: 50%;} +#action_delete_derivatives input[name="del_derivatives_type[]"], #action_generate_derivatives input[name="generate_derivatives_type[]"] {margin-right: 3px;} +.actionButtons:first-child::after,#filter_prefilter::before,#filter_category::before,#filter_level::before, +.permitActionListButton div::before, #action_level::after, .pictureLevels::before { + content: '\e835'; font-size: 17px; position: absolute; font-family: "fontello"; color: #6E6E6E; pointer-events: none; +} +.permitActionListButton div::before {margin-left: 250px; margin-top: 11px;} +.pictureLevels::before {margin-left: 216px; margin-top: 10px;} +.permitActionListButton div.hidden::after {display: none;} +#filter_prefilter::before {margin-left: 257px; margin-top: 35px;} +#filter_category .selectize-control.single .selectize-input::after {content: none;} +#filter_category {width: 600px;} +#filter_category::before {margin-left: 565px;margin-top: 33px; z-index: 2;} +#filter_level::before {margin-top: 34px; margin-left: 260px;} +#action_level::after {margin-top: -56px; margin-left: 254px;} +#filter_search input {width: 300px; box-sizing: border-box; padding: 11px 18px;} +#applyFilter, #addFilter,#filterList select, #filter_tags .selectize-input.items.not-full.has-options, .pictureLevels select, #permitAction select{ + font-family: "Open Sans", "Lucida Grande",Verdana,Arial,"Bitstream Vera Sans",sans-serif; + -webkit-appearance: none; + font-weight: 700; +} +#action_date_creation input, #action_title input, #action_author input {margin-right: 4px;} +#set_date_creation label {position: relative;} +#set_date_creation i {position: absolute;font-size: 20px;top: 50%;transform: translate(6px, -50%);opacity: 0.6;} +#set_date_creation input {background-color: #f8f8f8;padding: 8px;padding-left: 8px;padding-left: 35px;border-radius: 4px;border-color: #DDD;} +#set_date_creation {margin-top: 5px; margin-left: -2px;} +#action_title .large, #action_author .large {padding: 12px 10px; border: 1px solid #787777a6;margin-bottom: 8px;} +#action_add_tags .selectize-input.items.not-full.has-options, +#action_add_tags .selectize-input.items.not-full.has-options.focus.input-active.dropdown-active, .selectize-input.items.not-full, .selectize-input.items.full { + padding: 12px 10px; box-shadow: none; border-radius: 0px; border: 1px solid #787777a6; +} + +.pageNumberSelected {background-color: #ffaf58 !important; border: none !important; border-radius: 0 !important;} + + +#batchManagerGlobal UL.thumbnails {display: flex; flex-wrap: wrap; justify-content: flex-start; margin-left: 30px;} +#batchManagerGlobal ul.thumbnails .actions .icon-plus.cboxElement { + background-color: transparent; padding: 0; box-shadow: none; font-size: initial; margin-bottom: 0; +} +#batchManagerGlobal UL.thumbnails .wrap2 {width: 110px !important; height: 110px !important;} +#batchManagerGlobal UL.thumbnails IMG {margin-top: 0; width: 110px; height: 110px; border: 1px solid transparent;} +#batchManagerGlobal UL.thumbnails .wrap2 .icon-pencil {font-size: 15px; margin-left: 4px;} +#batchManagerGlobal UL.thumbnails .wrap2 .icon-plus {margin-right: 2px;} +#batchManagerGlobal li .font-checkbox [class*="icon-check"] {height: 20px; width: 20px; border-radius: 100%} +#batchManagerGlobal li.thumbSelected .font-checkbox [class*="icon-check"]::before { + content: '\E819'; + display: none; + animation: icon-check-animation 0.4s ease-out; +} + +@keyframes icon-check-animation { + 0% {transform: translate(-50% , -50%) scale(0);} + 75% {transform: translate(-50% , -50%) scale(1.3);} + 100% {transform: translate(-50% , -50%);} +} + +#batchManagerGlobal li.thumbSelected .font-checkbox [class*="icon-check"] {background-color: #fea744; border: solid 2px #fea744;} +#batchManagerGlobal .thumbSelected span.icon-check {display: block; z-index: 1;} +#batchManagerGlobal .thumbnails .wrap1 .icon-check-empty:before {content: '\E823';} +#batchManagerGlobal .thumbnails .font-checkbox [class*="icon-check"]::before {font-size: 17px; position: absolute; left: 50%; top: 50%; transform: translate(-50%, -50%);} +#batchManagerGlobal UL.thumbnails .wrap2 .icon-pencil:hover, #batchManagerGlobal UL.thumbnails .wrap2 .icon-zoom-square:hover {color: #fea744;} +#batchManagerGlobal .deleteDerivButtons a:hover, #batchManagerGlobal #checkActions a:hover {background-color: #ddd;color: #3A3A3A;text-decoration: none;} + +#batchManagerGlobal .thumbSelected img { filter: brightness(60%);-webkit-filter: brightness(60%);-moz-filter: brightness(60%); + -o-filter: brightness(60%); + -ms-filter: brightness(60%);} +#batchManagerGlobal li.thumbSelected:hover .font-checkbox [class*="icon-check"]::before {display: block;} +#filter_category .selectize-input.items.full.has-options.has-items .item, +#filter_category .selectize-input.items.not-full.has-options .item, +#filter_category .selectize-input.items.not-full .item {width: 561px; text-overflow: ellipsis;} +#filter_category .selectize-input.items.full.has-options.has-items, +#filter_category .selectize-input.items.not-full.has-options, +#filter_category .selectize-input.items.not-full {width: 100%;} +#forbidAction {text-align: center; font-weight: 600; padding: 25px 0; background-color: #f3f3f3;} +.selectionEmptyBlock {text-align: center; font-weight: 600; padding: 90px 0;} +#duplicates_options {display: flex; flex-direction: column;} +#batchManagerGlobal .thumbnails .wrap2 .icon-zoom-square::before {font-size: 15px; margin-top: 2.9px; margin-right: 7px;} +#progressBar_pbImage { + width: 300px !important; border-radius: 15px; height: 8px !important; margin-top: 5px !important; background-size: cover; + background-repeat: no-repeat; background-color: #f5f5f5; + } +#regenerationMsg {width: 360px;} +#progressBar {display: flex;} +#progressBar_pbText {margin-left: 15px;} +#filter_search .icon-help-circled::before {margin-right: 5px; color: #777;} +.dimensionSlidersBlocks {display: flex; flex-direction: column; margin-bottom: 8px;} +.dimensionSlidersTitleButtons, .dimensionSlidersRatioButtons {display: flex; justify-content: space-between;} +.dimensionSlidersTitleButtons {margin-bottom: 5px;} +.dimensionSlidersRatioButtons {margin-bottom: 15px;} +#filter_dimension blockquote div:last-child .ui-slider-horizontal {margin-top: 5px;} +#batchManagerGlobal .ui-slider-horizontal .ui-slider-handle {top: -.7em !important; width: 1.4em; height: 1.4em;} +#batchManagerGlobal .ui-slider-handle.ui-state-default.ui-corner-all {border-radius: 10px;} +#action_delete .errors {display: block; min-height: initial; margin: 10px 0px 0px 0px;} + +#batchManagerGlobal .ui-slider-horizontal .ui-slider-range {height: 2px;} +#batchManagerGlobal .ui-slider-horizontal {height: 2px;} +#batchManagerGlobal .ui-slider-range.ui-widget-header.ui-corner-all {margin-top: -1px;} +#batchManagerGlobal .font-checkbox.selected span:first-child::before {content: '\f192';} +#action_delete_derivatives .font-checkbox span, #action_delete_derivatives .font-checkbox span {margin-right: 5px;} +#action_generate_derivatives, #action_delete_derivatives {width: 320px;} + /* album manager */ .selectedAlbum.cat-list-album-path { - margin: 40px 0 30px 0; + margin: 30px 0 30px 0; } -.selectedAlbum.cat-list-album-path span { - background-color: transparent; -} \ No newline at end of file + +.icon-toggle-off:before{ + font-weight:600; +} + +/* album search */ + +.search-album { + display: flex; + justify-content: center; + align-items: center; + margin: 10px; + margin-bottom: 25px +} + +.search-album-cont { + position: relative; + display: flex; + align-items: center; +} + +.search-album-label { + font-weight: bold; + font-size: 16px; + padding: 10px; +} + +.search-album-num-result { + margin-left: 10px; +} + +.search-album-input-container { + position: relative; + display: inline; +} + +.search-album-input-container .search-icon{ + font-size: 20px; +} + +.search-album-help { + display: none; + cursor: help; + font-size: 20px; +} + +.search-album-help, .search-album-num-result { + position: absolute; + right: 0; + transform: translateX(calc(100% + 10px)); +} + +.search-album-ghost, .search-album-result { + display: flex; + flex-direction: column; +} + +.search-album-elem, .search-album-ghost div { + height: 64px; + border-radius: 5px; + margin: 10px 20px; + overflow: hidden; +} + +.search-album-ghost div { + background: #f3f3f3; + background-image: linear-gradient(0.25turn, #eee, rgb(250, 250, 250)); + background-attachment: fixed; +} + +.search-album-elem { + box-shadow: 0px 2px 3px #00000024; + background-color: #fafafa; + border-radius: 5px; + color: #777; + padding-left: 20px; + display: flex; + align-items: center; + position: relative; +} + +.search-album-elem span{ + font-size: 20px; + padding: 8px; + display: inline-block; + border-radius: 50%; +} + +.search-album-elem p{ + font-size: 16px; + margin: 10px; + white-space: nowrap; + font-weight: 600; +} + +.search-album-action-cont { + display: none; + position: absolute; + right: 0%; + top : 50%; + height: 100%; + transform: translate(0, -50%); + align-items: center; + flex-direction: row-reverse; + overflow: hidden; +} + +.search-album-elem:hover .search-album-action-cont { + display: flex; +} + +.search-album-action { + display: flex; + align-items: center; +} + +.search-album-action a { + padding: 30px 15px; + font-weight: bold; + cursor: pointer; + height: 100%; + border-left: 1px solid #00000012; + background-color: #00000003; + text-align: center; +} + +.search-album-action a:hover { + color: #444; + text-decoration: none; + background-color: #FFA646; +} + +.search-album-noresult { + opacity: 0.3; + text-align: center; + width: calc(100% - 205px); + font-weight: bold; + font-size: 30px; + position: absolute; + top: calc(50% + 200px / 2); + display: none; +} + +.doubleSelect { + width: 100%; +} + +.doubleSelect td { + width: 50%; +} + +#cancelUpload { + margin-left:10px; + background-color: #999999; +} + +#cancelUpload:hover { + background-color: #ff9b32; + color: white; + text-decoration: none; +} + +.doubleSelect p {display:flex; justify-content: center;} \ No newline at end of file diff --git a/admin/themes/roma/images/resizable-e.gif b/admin/themes/roma/images/resizable-e.gif deleted file mode 100644 index 36451a670..000000000 Binary files a/admin/themes/roma/images/resizable-e.gif and /dev/null differ diff --git a/admin/themes/roma/images/resizable-n.gif b/admin/themes/roma/images/resizable-n.gif deleted file mode 100644 index fe11bf420..000000000 Binary files a/admin/themes/roma/images/resizable-n.gif and /dev/null differ diff --git a/admin/themes/roma/images/resizable-ne.gif b/admin/themes/roma/images/resizable-ne.gif deleted file mode 100644 index 4819fdf1c..000000000 Binary files a/admin/themes/roma/images/resizable-ne.gif and /dev/null differ diff --git a/admin/themes/roma/images/resizable-nw.gif b/admin/themes/roma/images/resizable-nw.gif deleted file mode 100644 index 7f128dac2..000000000 Binary files a/admin/themes/roma/images/resizable-nw.gif and /dev/null differ diff --git a/admin/themes/roma/images/resizable-s.gif b/admin/themes/roma/images/resizable-s.gif deleted file mode 100644 index 908576c9b..000000000 Binary files a/admin/themes/roma/images/resizable-s.gif and /dev/null differ diff --git a/admin/themes/roma/images/resizable-se.gif b/admin/themes/roma/images/resizable-se.gif deleted file mode 100644 index 0db439888..000000000 Binary files a/admin/themes/roma/images/resizable-se.gif and /dev/null differ diff --git a/admin/themes/roma/images/resizable-sw.gif b/admin/themes/roma/images/resizable-sw.gif deleted file mode 100644 index e983320f6..000000000 Binary files a/admin/themes/roma/images/resizable-sw.gif and /dev/null differ diff --git a/admin/themes/roma/images/resizable-w.gif b/admin/themes/roma/images/resizable-w.gif deleted file mode 100644 index fe2a79034..000000000 Binary files a/admin/themes/roma/images/resizable-w.gif and /dev/null differ diff --git a/admin/themes/roma/theme.css b/admin/themes/roma/theme.css index fda07a44c..05f1a149d 100644 --- a/admin/themes/roma/theme.css +++ b/admin/themes/roma/theme.css @@ -71,8 +71,6 @@ h1 { .content dl, dd { margin:5px; } - -UL.thumbnails span.wrap2:hover { background-color#7CBA0F; color:#666; } UL.thumbnails span.wrap2 { background-color:#333; } @@ -80,9 +78,9 @@ UL.thumbnails span.wrap2 { /* .throw, */ td h3 { background-image: url(images/fillet.png); background-repeat: repeat-x; } /* borders */ -fieldset { border: 2px solid #333; } +fieldset { border: none; } -.buttonLike, INPUT, SELECT, TEXTAREA { +INPUT, SELECT, TEXTAREA { border: 1px solid #666; } input:focus, select:focus, textarea:focus { @@ -99,7 +97,7 @@ INPUT[type="submit"]:hover , INPUT[type="reset"]:hover { cursor: pointer; } INPUT.bigbutton:hover { background-color: #222; color:#f33; border: 0; } .throw { font-size: 120%; line-height: 26px; padding-top: 10px; font-weight: bold; color: #ff3363; } label { cursor:pointer } -.categoryLi, .menuLi { background: #333 } +.menuLi { background: #333 } .menuLi_hidden { background: #333 !important; } a.Piwigo { font-family: verdana, arial, helvetica, sans-serif !important; @@ -109,23 +107,42 @@ a.Piwigo:hover span.Piwigo { border-bottom: 1px solid #FF3363; } -.categoryUl>li:not(.virtual_cat) { - background:url(images/stripe-cat.png); -} - /* RADU - I comment this because it makes FF form controls activation very slow) *, *:focus, *:active, input:active, a:active, input:focus, a:focus { outline: none; -moz-outline-width: 0px; } */ a { color:#bbb; } a:hover, a:active { color: #f70; cursor: pointer; } -.content .navigationBar {color:#666;} ul.actions, .content form#waiting {text-align:center;} #adminHome A, #menubar li A, #menubar dt { color: #8d8d8d; } +/* Filter */ + +.search-input { + background-color: #333 !important; +} + +.search-input:hover { + background-color: #222 !important; +} + +/* Pagination */ + +.pagination-per-page { + background-color: #555; +} + +.pagination-per-page span { + color: #777; +} + +.pagination-per-page a:hover { + background-color: #888; color: #444; +} + /* jQuery tooltips */ .ui-tooltip { color: #eee; @@ -143,14 +160,6 @@ ul.actions, .content form#waiting {text-align:center;} .ui-resizable .ui-resizable-handle { display: block; } body .ui-resizable-disabled .ui-resizable-handle { display: none; } /* use 'body' to make it more specific (css order) */ body .ui-resizable-autohide .ui-resizable-handle { display: none; } /* use 'body' to make it more specific (css order) */ -.ui-resizable-n { cursor: n-resize; height: 6px; width: 100%; top: 0px; left: 0px; background: transparent url(images/resizable-n.gif) no-repeat scroll center top; } -.ui-resizable-s { cursor: s-resize; height: 6px; width: 100%; bottom: 0px; left: 0px; background: transparent url(images/resizable-s.gif) no-repeat scroll center top; } -.ui-resizable-e { cursor: e-resize; width: 6px; right: 0px; top: 0px; height: 100%; background: transparent url(images/resizable-e.gif) no-repeat scroll right center; } -.ui-resizable-w { cursor: w-resize; width: 6px; left: 0px; top: 0px; height: 100%; background: transparent url(images/resizable-w.gif) no-repeat scroll right center; } -.ui-resizable-se { cursor: se-resize; width: 9px; height: 9px; right: 0px; bottom: 0px; background: transparent url(images/resizable-se.gif); } -.ui-resizable-sw { cursor: sw-resize; width: 9px; height: 9px; left: 0px; bottom: 0px; background: transparent url(images/resizable-sw.gif); } -.ui-resizable-nw { cursor: nw-resize; width: 9px; height: 9px; left: 0px; top: 0px; background: transparent url(images/resizable-nw.gif); } -.ui-resizable-ne { cursor: ne-resize; width: 9px; height: 9px; right: 0px; top: 0px; background: transparent url(images/resizable-ne.gif); } #ui-datepicker-div {background-color: #555; border:2px solid #333;} #ui-datepicker-div .ui-datepicker-title {color:white;} @@ -196,7 +205,7 @@ INPUT[type="text"].large { width: 317px; } } .buttonLike:disabled, input[type="button"]:disabled, input[type="submit"]:disabled, input[type="reset"]:disabled { - color:#555; + color:#555; border-color:#666; cursor:not-allowed; background-color: #666; @@ -221,25 +230,32 @@ a.stat-box:hover { color:#aeaeae; } -.stat-box-yellow i { - color:#9b5200; - background-color: #ffa744; +.stat-data-selector label { + color: #777; + padding: 10px; + background-color: #333; + transition: 0.2s ease; } -.stat-box-red i { - background-color: #c64444; - color: #650101; + +.stat-data-selector label:hover { + background-color: #555 } -.stat-box-purple i { - background-color: #ce4baa; - color: #52003b; + +.chart-title { + color: #777; } -.stat-box-green i { - background-color: #4ac641; - color: #014400; + +.intro-charts .tooltip { + background-color: #333333; + box-shadow: none; } -.stat-box-blue i { - background-color: #379bbc; - color: #003751; + +.intro-charts .tooltip::after { + border-color: transparent transparent #333333 transparent; +} + +.intro-charts .tooltip .tooltip-details-title, .intro-charts .tooltip-title { + color:#aeaeae !important; } /* hacks */ @@ -250,38 +266,46 @@ a.stat-box:hover { * html .bigtext { margin-right: 300px; } .themeBox {background-color:#333;} -.themeBox IMG {border:1px solid #666;} .themeName {color:#ccc;} +.themeSelect {background-color: #333; box-shadow: none;} +.themeSelect.themeDefault {background-color: #f9852c;} +.themeSelect.themeDefault a, .themeSelect.themeDefault span, .themeSelect.themeDefault .themeName{ color:#333;} .themeActions A {border-bottom:none;} -.themeDefault {background-color:#555;} - +.themeActions span {background-color: #888888;color: #666666;} +.showInfo-dropdown-header a {color:#3A3A3A} #pluginsMenuSeparator {border:1px solid #333;} #helpContent, #pLoaderPage, #ftpPage, #ftpPage LEGEND {color:#aaa;} -.pluginBox, .pluginMiniBox, .groups li {background-color:#333;color:#999;border-color:#333;} -.pluginBoxNameCell, .pluginMiniBoxNameCell {color:#ddd;} +.pluginBox, .pluginContent, .pluginMiniBox, .groups li, .groups .GroupContainer {background-color:#333;color:#999;border-color:#333; box-shadow: none;} +.pluginBoxNameCell, .pluginMiniBoxNameCell {color:#aaa;} .pluginBox.incompatible, .pluginMiniBox.incompatible {border-color:#800 !important;} .pluginBoxes .merged, .pluginBoxes .missing {background-color:#422;border:1px solid #800;} +.pluginActionLevel1, .pluginActionLevel2 {color: #333;} +.pluginActionLevel2 {background-color: #bbbbbb;} +.pluginFilter {color: #c1c1c1;} +.pluginFilter input {border-color: #c1c1c1;} .languageBox {background-color:#333;} .languageName {color:#ccc;} .languageDefault {background-color:#555; color:#aaa;} +.groupMessage {color: #c2f5c2 ;background-color: #0a0;} +.groupError {color: #ffd5dc;background-color: #f22;} +.group-rename input {color: #999;} +.GroupBackgroudSelected .Group-name {color: #333 !important;} +.GroupContainer .group_name-editable {background-color: #323232 !important; border: 1px solid #666 !important;} +.GroupContainer .group-rename .icon-ok {color: #222;} + /* Batch Manager */ #batchManagerGlobal .thumbnails .font-checkbox [class*="icon-check"]::before { color:#777; } -#batchManagerGlobal .thumbnails li:hover .font-checkbox [class*="icon-check"]::before { - color:white; -} - #batchManagerGlobal li.thumbSelected .font-checkbox [class*="icon-check"]::before { - color:white; + color: #3C3C3C; display: block; } #batchManagerGlobal UL.thumbnails li:hover .wrap2 { - background-color: #ff3363; color: white; } @@ -292,8 +316,26 @@ a.stat-box:hover { } #batchManagerGlobal #selectedMessage { - background-color: #555; - color:white; + color: #FFA646; + font-weight: bold; +} + +#batchManagerGlobal #applyFilter { + color: #3C3C3C; + background-color: #ececec; +} + +#batchManagerGlobal #applyFilter:hover { + color: white; + background-color: #ffc17e; +} + +#batchManagerGlobal #filterList li { + background-color: #3C3C3C; +} + +#batchManagerGlobal legend { + color: #BFBFBF; } /* TokenInput (with Facebook style for ROMA) */ @@ -308,30 +350,386 @@ div.token-input-dropdown ul li.token-input-selected-dropdown-item {background-co background: #3c3939; } -/* Album Properties */ -#albumThumbnail img, #albumLinks { - border-color:#333; +/* Picture edit */ +#picture-content input[type=text], #picture-content textarea, #picture-content .selectize-input, #picture-content select { + background-color: #444444; + border: 1px solid #666; + color: #c1c1c1; +} + +.picture-infos-title, .picture-infos-icon { + color: #c1c1c1; +} + +.picture-infos-category { + border-color: #333; +} + +/* Album edit */ + +#catModify input[type="text"], #catModify textarea{ + background-color: #444444; + border: 1px solid #666; + color: #c1c1c1; +} + +#catHeader .catAction strong, #catHeader .catLock strong { + color: #c1c1c1; +} + +#catHeader .catAction a:hover { + color: white; } .selectedComment {background-color:#555; color:#fff;} -.groups label>p { +.groups .Group-name>p { color: #ccc; font-size: 1.2em; background-color:#111; } + label>p.group_select { - color: #fff; + color: #d5d5d5; background-color:#555; } +.groups .GroupContainer, +.groups .showCreateGroup, +.groups .addGroupFormBlock{ + font-size: 1.2em; + background-color:#333; +} + +.groups .Group-name>p, +.addGroupForm .addGroupFormTitle{ + color:#3c3c3c; + font-size: 1.2em; +} + +.groups .GroupContainer, +.groups .showCreateGroup, +.groups .addGroupFormBlock{ + box-shadow: -1px 1px 2px #1a1a1a; +} + +.groups .showCreateGroup:hover #addGroup, +.groups .addGroupFormTitle{ + color:#c0c0c0; + text-decoration:none; +} + +.groups #addGroup{ + color:#777; +} + +.groups .group_number_users{ + color:#777; +} + +.addUserButton:hover{ + text-decoration:none; + color:#3c3c3c; + background-color:#f3f3f3; +} + +.groups p.list_user{ + color:#3c3c3c; +} + +label>p.group_select { + color: #000; + background-color:#C2F5C2; +} + +.groups input[type="text"]{ + background-color:#444444; + border:1px solid #d5d5d5; +} + +.groups .AddUser .icon-user-add::before{ + background-color:#f3f3f3; + color:#e0e0e0; +} + +/*Edit group name*/ + +.groups .Group-name{ + color:#777; +} + +.groups .Group-name .Group-name-container p:focus{ + border:1px solid #303030!important; + background-color:#1a1a1a; +} + +/*Add Group */ + +.groups fieldset INPUT[type="text"]::placeholder{ + color:#d5d5d5; +} + +.groups button.submit{ + background-color:#ffa744; + color:#3c3c3c; +} + +.groups button.submit:hover{ + background-color:#ff7700; +} + +/* Group Options*/ + +#GroupOptions{ + background-color:#5c5c5c; + box-shadow: -1px 1px 2px #393939; + color:#c0c0c0; +} + +/*Group manager buttons*/ + +.groups .manage-users, +.groups .manage-permissions{ + border:1px solid #777; + background-color:transparent; +} + + +.groups .manage-users:hover, +.groups .manage-permissions:hover{ + background-color:#ffa744; + border:1px solid #ffa744; + cursor:pointer; +} + +/*UserList Pop in*/ + + +.UserListPopInContainer{ + background-color:#444; + border-radius:10px; + +} + +#UserList .AddUserBlock button{ + background-color:#ffa744; + color:#3c3c3c; +} + +#UserList .AddUserBlock button:hover{ + background-color:#ff7700; +} + +#UserList .AddUserBlock input, +#UserList .FilterUserBlock input{ + background-color:#2c2c2c; +} + +#UserList .AddUserBlock p, +#UserList .FilterUserBlock{ + color:#c0c0c0; +} + +.UsersInGroupList span{ + color:#d5d5d5; +} + +.UsersInGroupList .icon-cancel:hover{ + color:#ff7700; +} + +.LinkUserManager{ + color:#3c3c3c; +} + +/* Selection mode */ + +.slider { + background-color: #333; +} + +.slider:before { + background-color: #151515; +} + +input:checked + .slider { + background-color: #ff8c27; +} + +input:focus + .slider { + box-shadow: 0 0 1px #FFC27F; +} + +#selection-mode-block{ + background-color: #232323; + border-left:1px solid #1a1a1a; +} + +.GroupBackgroudSelected{ + background-color:#f9852c!important; + box-shadow: none !important; +} + +.OrangeIcon{ + background-color:#ae5d1e !important; + color:#faa96b!important; +} + +.OrangeFont{ + color:#fddaba!important; +} + +.BlackFont{ + color:black!important; +} + +/*Selection mode content*/ + +.SelectionModeGroupList{ + color:#c0c0c0; +} + +#selection-mode-block button{ + border: 1px solid #e7e7e7; + color:#c0c0c0; +} + + +#selection-mode-block button:hover{ + background-color: #ffa744; + border: 1px solid #ffa744; + color:#3c3c3c; +} + +#ConfirmGroupAction{ + color:#3c3c3c; +} + +#ConfirmGroupAction p{ + color: #777; +} + +.ConfirmDeleteButton{ + background-color: #ffa744; +} + +/*Merge Options*/ + + +#MergeOptionsBlock p{ + color: #777; +} + +#MergeOptionsBlock a{ + color:#c0c0c0; +} + +/*Merge options Radio buttons*/ + +.ConfirmMergeButton{ + background-color: #ffa744; +} + +.MergeOptionsContainer select{ + background-color: #1a1a1a; + box-shadow: 0 0 2px #c5c5c5; +} + +/*Group checkbox*/ + +.groups .group-checkmark { + border:2px solid #c76a23; +} + +.groups .Group-checkbox:hover input ~ .group-checkmark { + background-color: #c76a23; +} + +.groups .Group-checkbox input:checked ~ .group-checkmark { + background-color: #c76a23; +} + +.groups .Group-checkbox .group-checkmark:after { + border: solid #ebebeb; + border-width: 0 3px 3px 0; +} + +/*Group manager buttons*/ + +.groups .manage-users, +.groups .manage-users:hover, +.groups .manage-permissions, +.groups .manage-permissions:hover{ + color:#c0c0c0; +} + +.groups .manage-users:hover, +.groups .manage-permissions:hover{ + color:#3c3c3c; +} + +/*UserList Pop in*/ + +.CloseUserList{ + color:white; +} + +#UserList .group-name-block p{ + color:#9e9e9e; +} + +.UsernameBlock{ + background-color:#393939; + color:#9e9e9e; +} + +.Tooltip p.TooltipText{ + + color:#f3f3f3; + background-color: #3c3c3c; + border:1px solid #f3f3f3; +} + +.ValidationUserAssociated, .ValidationUserDissociated{ + background-color:#00aa00; +} + +.ValidationUserAssociated p, .ValidationUserDissociated p{ + color:#c2f5c2 !important; +} + +.groups .showCreateGroup .icon-plus-circled, +#UserList .group-name-block span, +.groups .showCreateGroup .icon-plus-circled{ + color:#003751; + background-color: #379bbc; +} + +#UserList .group-name-block .UserNumberBadge{ + background-color:#003751; + color: #379bbc; +} + +/*------*/ + .userSeparator { color:#666; visibility: hidden; } -#configContent fieldset:not(.no-border) { - border-top-color:#444; +/*Edit user popin*/ + +.user_form_popin .ui-slider-horizontal .ui-slider-handle{ + background-color:#FFA646; + border:1px solid #5a5a5a; +} + +.user_form_popin .ui-slider-horizontal .ui-slider-range-min{ + background-color:#5a5a5a; +} +.user_form_popin .ui-slider-horizontal{ + background-color:#151515; + } table.dataTable tr.even { @@ -379,21 +777,12 @@ table.qsearch_help_table td { #wImg {border-color:#555;} -FORM#categoryOrdering p.albumTitle a { color: #c0c0c0; } -FORM#categoryOrdering p.albumActions a { border-left:1px solid #555; } -.albumInfos {color: #808080;} -FORM#categoryOrdering p.albumActions a:hover {background-color: #ffa646; color: #3A3A3A;} -FORM#categoryOrdering p.albumActions .userSeparator {border: 1px solid #d5d5d5;} -#addAlbumOpen, #autoOrderOpen {border: 1px solid #777; color: #c0c0c0;} -#addAlbumOpen:hover, #autoOrderOpen:hover {border: 1px solid #aaa; text-decoration: none;} .afterUploadActions a {color: #3C3C3C; font-weight: bold; background-color: #FFA646;} .afterUploadActions a:hover {text-decoration: none; background-color: #ff7700;} .font-checkbox {color: #898888;} .font-checkbox:hover {color: #ffa646;} .with-border legend, .with-border strong {color: #c0c0c0;} .font-checkbox.selected {color: #ffa646;} -#formCreateAlbum input[name="virtual_name"] {border: 1px solid #7e7e7e; color: #F8F8F8; transition: all 125ms ease-out;} -#formCreateAlbum input[name="virtual_name"]:hover {border-color: #A5A5A5;} LEGEND {color: #c1c1c1;} a#showPermissions {color: #D6D6D6; border: 1px solid #D6D6D6; background-color: #414141;} @@ -409,12 +798,309 @@ li.plupload_delete a {background: url("images/cancel.svg")!important; background li.plupload_delete a:hover {background: url("images/cancelhover.svg")!important; background-size: cover!important;} .addAlbumEmpty {color: #c1c1c1;} -.addAlbumEmpty a {background-color: #FFA646; color: #3C3C3C;} -.addAlbumEmpty a:hover{background-color: #ff7700; color: #3C3C3C;} .buttonSeparator {color: #c1c1c1;} #cboxTitle {color: #7f7f7f !important;} #addAlbumForm {color: #999;} .selectedAlbum span {background-color: #555; color: #999;} #uploadForm li.plupload_droptext {background-color: #343434!important; color: #777 !important;} .addFilesButtonChanged {background-color: #888;} -.addFilesButtonChanged:hover {background-color: #777;} \ No newline at end of file +.addFilesButtonChanged:hover {background-color: #777;} +.categoryBox, .addAlbum {background-color: #333 !important; box-shadow: -1px 1px 2px #1a1a1a;} + +#checkActions a, .deleteDerivButtons a {background-color: #393939;} +#addFilter, #filterList select, .pictureLevels select, #permitAction select {background-color: #444444; color: #BFBFBF} +#filter_category .selectize-input.items.full.has-options.has-items, #filter_tags .selectize-input.items.not-full.has-options, +#filter_tags .selectize-input.items.not-full, #filter_search input, #action_associate .selectize-input.items.full.has-options.has-items, +#action_dissociate .selectize-input.items.full.has-options.has-items { + background-color: #444444; + color: #BFBFBF; + border: 1px solid #666; + box-shadow: none; +} +#permitAction select {background: #3C3C3C; color: #C0C0C0;} +#set_date_creation input { + background: #3C3C3C; + color: #C0C0C0; +} +#action_associate a:last-child {color: #C0C0C0; background-color: #464646;} +#filter_dimension .slider-choice, #filter_filesize .slider-choice {background-color: #393939;} +#filter_dimension .slider-choice:hover, #filter_filesize .slider-choice:hover, .dimension-cancel:hover { + text-decoration: none; background-color: #ffa646 !important; color: initial; +} +#forbidAction, .selectionEmptyBlock, .noFilter {background-color: #5a5757; color: #c1c1c1;} + +.pageNumberSelected {background-color: #b4b4b4;} +#action_title .large, #action_author .large {background-color: #333; color: #fefefe;} +#addFilter optgroup, #batchManagerGlobal option[disabled] {background-color: #555;} +.dimension-cancel {background-color: #555 !important;} +.pageNumberSelected {color: #777 !important; font-weight: bold;} + +#batchManagerGlobal .ui-state-default, #batchManagerGlobal .ui-widget-content .ui-state-default,#batchManagerGlobal .ui-widget-header .ui-state-default { + border: 1px solid #ffaf58; background: #ffaf58; +} +#batchManagerGlobal .ui-state-hover,#batchManagerGlobal .ui-widget-content .ui-state-hover, #batchManagerGlobal .ui-widget-header .ui-state-hover { + background: #ffaf58; +} +#batchManagerGlobal .ui-state-focus, #batchManagerGlobal .ui-widget-content .ui-state-focus,#batchManagerGlobal .ui-widget-header .ui-state-focus { + border: 1px solid #ffaf58; background: #ffaf58; +} +#batchManagerGlobal .ui-state-active, #batchManagerGlobal .ui-widget-content .ui-state-active,#batchManagerGlobal .ui-widget-header .ui-state-active { + background: #ffaf58; +} +#batchManagerGlobal .ui-widget-content {background: #666; border: 1px solid #666;} +#batchManagerGlobal .ui-slider .ui-slider-range {background-color: #aaaaaa;} +#batchManagerGlobal .ui-slider-range.ui-widget-header.ui-corner-all {border: 1px solid #ffaf58; background-color: #ffaf58;} + +#batchManagerGlobal #applyFilter { + color: #BFBFBF; + background-color: #3c3c3c; +} + +#batchManagerGlobal #applyFilter:hover { + background-color: #202020; +} +/*Error message*/ + +.errors { + color: #ffc4bf; + background-color: #d31100; + border-left: 4px solid #ffc4bf; +} + +.errors li{ + color: #ff0303; +} + +.errors a{ + background-color: #ff4838; + padding: 2px 7px; + color: #ffe8e6; +} + +/*Success message*/ + +.infos { + color: #9bff92; + background-color: #10bb00; + border-left: 4px solid #9bff92; +} + +.infos li{ + color: #9bff92; +} + +.infos a{ + background-color: #12e100; + padding: 2px 7px; + color: #e3ffe1; +} + +/*Warning message*/ + +.warnings { + color: #ffc58c; + background-color: #ee6300; + border-left: 4px solid #ffc58c; +} + +.warnings a{ + background-color: #ff8e3d; + padding: 2px 7px; + color: #ffedda; +} + +/*announcement message*/ + +.messages { + color: #45a8ff; + background-color: #003360; + border-left: 4px solid #45a8ff; +} + +.eiw .messages a { + background-color: #00529b; + color: #a7d6ff; + padding: 2px 7px; +} + +/* Popin Jconfirm*/ + +.jconfirm .jconfirm-box { + background-color: #333 !important; +} + +.jconfirm-title { + color: #777 !important; +} + +.jconfirmAlert .jconfirm-icon-c i { + color:#c2f5c2 !important; + background-color:#0a0 !important; +} + +.jconfirm .jconfirm-box .jconfirm-buttons button.btn-default { + color: #777 !important; + background-color: #222 !important; +} + +.jconfirm .jconfirm-box .jconfirm-buttons button.btn-default:hover { + color: #222!important; + background-color: #777 !important; +} + +.jconfirm .jconfirm-box.loading::before { + background: #333 !important; +} + +/* Tag Manager */ + +.tag-box, +.tag-header #add-tag:not(.input-mode) .add-tag-label, +.tag-header .selection-controller a{ + background-color: #333 !important; +} + +.tag-container .tag-box p { + color: #aaa; +} + +.tag-header #add-tag.input-mode .add-tag-container input:hover { + background-color: #222 !important; +} + +.tag-header .selection-controller p { + color: #c1c1c1; +} + +.tag-container.selection .tag-box[data-selected="1"] { + background-color: #f9852c !important; + box-shadow: none; +} + +.tag-container .tag-box[data-selected="1"] .select-checkbox { + background-color: #c76a23; + border-color: #c76a23; +} + +.tag-container .tag-box .tag-rename .tag-name-editable { + background-color: #666; + color: white; + border-color: #333; +} + +.tag-container .tag-box .tag-rename span { + color: #D9D9D9; +} + +.tag-select-message { + background: #0051a57d; + color: #bce5f7; +} + +.tag-select-message a { + background-color: #bce5f7; + color: #0051a5; +} + +.tag-info.tag-warning { + color: #ffdd99; + background-color: #ee8800; +} + +.tag-info.tag-warning a { + color: white; +} + +.tag-info.tag-message { + color: #c2f5c2 ; + background-color:#0a0; +} + +.tag-info.tag-error { + color: #ffd5dc; + background-color:#f22; +} + +/* Album Move (and album search) */ +.move-cat-container, .search-album-elem { + background-color: #333; + box-shadow: none; +} + +.cat-move-order-popin .order-popin-container { + background-color: #444; + color: white; +} + +.cat-move-order-popin .album-name { + color: white; +} + +/* Album search */ +.search-album-ghost div { + background-image: linear-gradient(#333, #444); +} + +/* Icon colors*/ + +.icon-red { + background-color: #c64444; + color: #650101; +} + +.icon-yellow { + color: #9b5200; + background-color: #ffa744; +} + +.icon-purple { + background-color: #ce4baa; + color: #52003b; +} + +.icon-blue { + background-color: #379bbc; + color: #003751; +} + +.icon-green { + background-color: #4ac641; + color: #014400; +} + +.themeBox{ + box-shadow: 0 0 5px #333; +} + +.pluginActionLevel1, +.themeActions a:nth-child(1) { + background-color: #ffa744; +} + +.themeActions a:nth-child(2), +.plugin-inactive .pluginContent .pluginActionLevel1{ + background-color:#999999; +} + +.pluginUnavailableAction{ + background-color:#888; + color:#666; +} + +.addAlbum label{ + color:#aaa; + margin:-5px 0; +} + +.popin-title, +.cat-move-order-popin .album-name{ + color:#999; +} + +.cat-move-order-popin .close-popin{ + color:#ccc; +} + +.move-cat-container .move-cat-toogler{ + color:#ffa744; +} \ No newline at end of file diff --git a/admin/updates_pwg.php b/admin/updates_pwg.php index 46a7635f3..247d6020b 100644 --- a/admin/updates_pwg.php +++ b/admin/updates_pwg.php @@ -1,10 +1,10 @@ -get_piwigo_new_versions(); // +-----------------------------------------------------------------------+ // | Step 0 | // +-----------------------------------------------------------------------+ if ($step == 0) { - $new_versions = $updates->get_piwigo_new_versions(); - if (isset($new_versions['minor']) and isset($new_versions['major'])) { $step = 1; $upgrade_to = $new_versions['major']; - - $template->assign( - array( - 'MINOR_VERSION' => $new_versions['minor'], - 'MAJOR_VERSION' => $new_versions['major'], - ) - ); } elseif (isset($new_versions['minor'])) { @@ -86,11 +78,6 @@ if ($step == 2 and is_webmaster()) // +-----------------------------------------------------------------------+ if ($step == 3 and is_webmaster()) { - if (isset($_POST['dumpDatabase'])) - { - updates::dump_database(isset($_POST['includeHistory'])); - } - if (isset($_POST['submit']) and isset($_POST['upgrade_to'])) { updates::upgrade_to($_POST['upgrade_to'], $step); @@ -101,6 +88,20 @@ if ($step == 3 and is_webmaster()) $template->assign('missing', $updates->missing); } +// +-----------------------------------------------------------------------+ +// | Check for requirements | +// +-----------------------------------------------------------------------+ + +if (isset($new_versions['minor_php']) and version_compare(phpversion(), $new_versions['minor_php'], '<')) +{ + $template->assign('MINOR_RELEASE_PHP_REQUIRED', $new_versions['minor_php']); +} + +if (isset($new_versions['major_php']) and version_compare(phpversion(), $new_versions['major_php'], '<')) +{ + $template->assign('MAJOR_RELEASE_PHP_REQUIRED', $new_versions['major_php']); +} + // +-----------------------------------------------------------------------+ // | Process template | // +-----------------------------------------------------------------------+ @@ -114,10 +115,29 @@ $template->assign(array( 'STEP' => $step, 'PHPWG_VERSION' => PHPWG_VERSION, 'UPGRADE_TO' => $upgrade_to, - 'RELEASE_URL' => PHPWG_URL.'/releases/'.$upgrade_to, ) ); +if (isset($new_versions['minor'])) +{ + $template->assign( + array( + 'MINOR_VERSION' => $new_versions['minor'], + 'MINOR_RELEASE_URL' => PHPWG_URL.'/releases/'.$new_versions['minor'], + ) + ); +} + +if (isset($new_versions['major'])) +{ + $template->assign( + array( + 'MAJOR_VERSION' => $new_versions['major'], + 'MAJOR_RELEASE_URL' => PHPWG_URL.'/releases/'.$new_versions['major'], + ) + ); +} + $template->set_filename('plugin_admin_content', 'updates_pwg.tpl'); $template->assign_var_from_handle('ADMIN_CONTENT', 'plugin_admin_content'); diff --git a/admin/user_list.php b/admin/user_list.php index 1de17cabe..c57d17eba 100644 --- a/admin/user_list.php +++ b/admin/user_list.php @@ -10,6 +10,8 @@ * Add users and manage users list */ +check_input_parameter('group', $_GET, false, PATTERN_ID); + // +-----------------------------------------------------------------------+ // | tabs | // +-----------------------------------------------------------------------+ @@ -44,37 +46,14 @@ while ($row = pwg_db_fetch_assoc($result)) // +-----------------------------------------------------------------------+ // | template | // +-----------------------------------------------------------------------+ - -$template->set_filenames(array('user_list'=>'user_list.tpl')); - -$query = ' -SELECT - DISTINCT u.'.$conf['user_fields']['id'].' AS id, - u.'.$conf['user_fields']['username'].' AS username, - u.'.$conf['user_fields']['email'].' AS email, - ui.status, - ui.enabled_high, - ui.level - FROM '.USERS_TABLE.' AS u - INNER JOIN '.USER_INFOS_TABLE.' AS ui ON u.'.$conf['user_fields']['id'].' = ui.user_id - WHERE u.'.$conf['user_fields']['id'].' > 0 -;'; - -$result = pwg_query($query); -while ($row = pwg_db_fetch_assoc($result)) -{ - $users[] = $row; - $user_ids[] = $row['id']; -} - $template->assign( array( - 'users' => $users, - 'all_users' => join(',', $user_ids), 'ACTIVATE_COMMENTS' => $conf['activate_comments'], 'Double_Password' => $conf['double_password_type_in_admin'] - ) - ); + ) +); + +$template->set_filenames(array('user_list'=>'user_list.tpl')); $default_user = get_default_user_info(true); @@ -117,6 +96,7 @@ $template->assign( 'protected_users' => implode(',', array_unique($protected_users)), 'password_protected_users' => implode(',', array_unique($password_protected_users)), 'guest_user' => $conf['guest_id'], + 'filter_group' => (isset($_GET['group']) ? $_GET['group'] : null), ) ); diff --git a/admin/user_list_backend.php b/admin/user_list_backend.php index a1a0c01c7..c7f76782c 100644 --- a/admin/user_list_backend.php +++ b/admin/user_list_backend.php @@ -13,8 +13,8 @@ include_once(PHPWG_ROOT_PATH.'include/common.inc.php'); check_status(ACCESS_ADMINISTRATOR); -check_input_parameter('iDisplayStart', $_REQUEST, false, PATTERN_ID); -check_input_parameter('iDisplayLength', $_REQUEST, false, PATTERN_ID); +check_input_parameter('start', $_REQUEST, false, PATTERN_ID); +check_input_parameter('length', $_REQUEST, false, PATTERN_ID); /* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * Easy set variables @@ -50,38 +50,32 @@ $sTable = USERS_TABLE.' INNER JOIN '.USER_INFOS_TABLE.' AS ui ON '.$conf['user_f * Paging */ $sLimit = ""; -if ( isset( $_REQUEST['iDisplayStart'] ) && $_REQUEST['iDisplayLength'] != '-1' ) +if ( isset( $_REQUEST['start'] ) && $_REQUEST['length'] != '-1' ) { - $sLimit = "LIMIT ".$_REQUEST['iDisplayStart'].", ".$_REQUEST['iDisplayLength']; + $sLimit = "LIMIT ".$_REQUEST['start'].", ".$_REQUEST['length']; } - + +$sOrder = ""; /* * Ordering */ -if ( isset( $_REQUEST['iSortCol_0'] ) ) +if ( isset( $_REQUEST["order"][0]["column"] ) ) { $sOrder = "ORDER BY "; - for ( $i=0 ; $i intval($_REQUEST['sEcho']), + "sEcho" => $sEcho, "iTotalRecords" => $iTotal, "iTotalDisplayRecords" => $iFilteredTotal, - "aaData" => array() + "aaData" => array(), + "filtered_uids" => array() ); $user_ids = array(); +$filtered_uids = array(); -while ( $aRow = pwg_db_fetch_array( $rResult ) ) -{ - $user_ids[] = $aRow[ $conf['user_fields']['id'] ]; - - $row = array(); - for ( $i=0 ; $i $alias) - { - if ($aColumns[$i] == $real_name) - { - $colname = $alias; - } - } - - $row[] = $aRow[$colname]; - } - + $filtered_uids[] = $aRow[ $conf['user_fields']['id'] ]; + } +} else { + while ( $aRow = pwg_db_fetch_array( $rResult ) ) + { + $user_ids[] = $aRow[ $conf['user_fields']['id'] ]; + + $row = array(); + for ( $i=0 ; $i $alias) + { + if ($aColumns[$i] == $real_name) + { + $colname = $alias; + } + } + $row[] = $aRow[$colname]; + } + } + $output['aaData'][] = $row; } - $output['aaData'][] = $row; } +$output["filtered_uids"] = $filtered_uids; + // replace "recent_period" by the list of groups if (count($user_ids) > 0) { @@ -201,7 +244,7 @@ if (count($user_ids) > 0) $query = ' SELECT user_id, - GROUP_CONCAT(name ORDER BY name SEPARATOR ", ") AS groups + GROUP_CONCAT(name ORDER BY name SEPARATOR ", ") AS `groups` FROM '.USER_GROUP_TABLE.' JOIN `'.GROUPS_TABLE.'` ON id = group_id WHERE user_id IN ('.implode(',', $user_ids).') @@ -224,6 +267,6 @@ SELECT } $output = trigger_change('after_render_user_list', $output); - + echo json_encode( $output ); ?> \ No newline at end of file diff --git a/admin/user_perm.php b/admin/user_perm.php index 98b1aed38..b0384dd0c 100644 --- a/admin/user_perm.php +++ b/admin/user_perm.php @@ -18,6 +18,13 @@ include_once(PHPWG_ROOT_PATH.'admin/include/functions.php'); // +-----------------------------------------------------------------------+ check_status(ACCESS_ADMINISTRATOR); +if (!empty($_POST)) +{ + check_pwg_token(); + check_input_parameter('cat_true', $_POST, true, PATTERN_ID); + check_input_parameter('cat_false', $_POST, true, PATTERN_ID); +} + // +-----------------------------------------------------------------------+ // | variables init | // +-----------------------------------------------------------------------+ @@ -158,6 +165,8 @@ $query_false.= ' ;'; display_select_cat_wrapper($query_false,array(),'category_option_false'); +$template->assign('PWG_TOKEN', get_pwg_token()); + // +-----------------------------------------------------------------------+ // | sending html code | // +-----------------------------------------------------------------------+ diff --git a/docs/CONTRIBUTING.md b/docs/CONTRIBUTING.md index fc910aa39..5b967da8b 100644 --- a/docs/CONTRIBUTING.md +++ b/docs/CONTRIBUTING.md @@ -49,7 +49,7 @@ On GitHub you should see your branch (with commits) that you pushed before like Once you clicked the button "Compare & pull request", you have to give a name to the pull request. - + Example name of a pull request: `Issue 965 manage group deletion` diff --git a/include/calendar_base.class.php b/include/calendar_base.class.php index 0eecdeadb..1b59919a2 100644 --- a/include/calendar_base.class.php +++ b/include/calendar_base.class.php @@ -10,6 +10,14 @@ * @package functions\calendar */ +/** level of year view */ +define('CYEAR', 0); +/** level of week view in weekly view */ +define('CWEEK', 1); +/** level of month view in monthly view */ +define('CMONTH', 1); +/** level of day view */ +define('CDAY', 2); /** * Base class for monthly and weekly calendar styles diff --git a/include/calendar_monthly.class.php b/include/calendar_monthly.class.php index c577fc0ad..3172a56f8 100644 --- a/include/calendar_monthly.class.php +++ b/include/calendar_monthly.class.php @@ -12,14 +12,6 @@ include_once(PHPWG_ROOT_PATH.'include/calendar_base.class.php'); -/** level of year view */ -define('CYEAR', 0); -/** level of month view */ -define('CMONTH', 1); -/** level of day view */ -define('CDAY', 2); - - /** * Monthly calendar style (composed of years/months and days) */ diff --git a/include/calendar_weekly.class.php b/include/calendar_weekly.class.php index cca2f7f91..b9bb9beca 100644 --- a/include/calendar_weekly.class.php +++ b/include/calendar_weekly.class.php @@ -12,14 +12,6 @@ include_once(PHPWG_ROOT_PATH.'include/calendar_base.class.php'); -/** level of year view */ -define('CYEAR', 0); -/** level of week view */ -define('CWEEK', 1); -/** level of day view */ -define('CDAY', 2); - - /** * Weekly calendar style (composed of years/week in years and days in week) */ diff --git a/include/common.inc.php b/include/common.inc.php index b8c137ad6..c3e6cfe12 100644 --- a/include/common.inc.php +++ b/include/common.inc.php @@ -153,7 +153,7 @@ if (isset($conf['order_by_inside_category_custom'])) include(PHPWG_ROOT_PATH.'include/user.inc.php'); -if (in_array( substr($user['language'],0,2), array('fr','it','de','es','pl','hu','ru','nl','tr','da') ) ) +if (in_array( substr($user['language'],0,2), array('fr','it','de','es','pl','ru','nl','tr','da') ) ) { define('PHPWG_DOMAIN', substr($user['language'],0,2).'.piwigo.org'); } @@ -166,7 +166,7 @@ elseif ('pt_BR' == $user['language']) { else { define('PHPWG_DOMAIN', 'piwigo.org'); } -define('PHPWG_URL', 'http://'.PHPWG_DOMAIN); +define('PHPWG_URL', 'https://'.PHPWG_DOMAIN); if(isset($conf['alternative_pem_url']) and $conf['alternative_pem_url']!='') { @@ -174,7 +174,7 @@ if(isset($conf['alternative_pem_url']) and $conf['alternative_pem_url']!='') } else { - define('PEM_URL', 'http://'.PHPWG_DOMAIN.'/ext'); + define('PEM_URL', 'https://'.PHPWG_DOMAIN.'/ext'); } // language files diff --git a/include/config_default.inc.php b/include/config_default.inc.php index 7e8fe0506..cdc2c823a 100644 --- a/include/config_default.inc.php +++ b/include/config_default.inc.php @@ -271,6 +271,9 @@ $conf['update_notify_reminder_period'] = 7*24*60*60; // only the first page (value=false) $conf['album_description_on_all_pages'] = false; +// Number of years displayed in the history compare mode (for the years chart) +$conf['stat_compare_year_displayed'] = 5; + // +-----------------------------------------------------------------------+ // | email | // +-----------------------------------------------------------------------+ @@ -693,6 +696,9 @@ $conf['ws_max_users_per_page'] = 1000; // Display a link to subscribe to Piwigo Announcements Newsletter $conf['show_newsletter_subscription'] = true; +// Number Weeks displayed on activity chart on the dashboard +$conf['dashboard_activity_nb_weeks'] = 4; + // +-----------------------------------------------------------------------+ // | Filter | // +-----------------------------------------------------------------------+ @@ -841,6 +847,15 @@ $conf['batch_manager_images_per_page_global'] = 20; // unit mode. Must be among values {5, 10, 50} $conf['batch_manager_images_per_page_unit'] = 5; +// how many missing md5sum should Piwigo compute at once. +$conf['checksum_compute_blocksize'] = 50; + +// quicksearch engine: include all photos from sub-albums of any matching +// album. For example, if search is "bear", then we display photos from +// "bear/grizzly". When value changed, delete database cache files in +// _data/cache directory +$conf['quick_search_include_sub_albums'] = false; + // +-----------------------------------------------------------------------+ // | log | // +-----------------------------------------------------------------------+ diff --git a/include/constants.php b/include/constants.php index a842f6a6c..211f32c7c 100644 --- a/include/constants.php +++ b/include/constants.php @@ -7,11 +7,12 @@ // +-----------------------------------------------------------------------+ // Default settings -define('PHPWG_VERSION', '2.10.0beta2'); +define('PHPWG_VERSION', '11.0.0beta5'); define('PHPWG_DEFAULT_LANGUAGE', 'en_UK'); -// this constant is actually never used, the true default theme is the theme or user "guest", -// which is initialized with column user_infos.theme default value -// (see file install/piwigo_structure-mysql.sql) + +// this constant is only used in the upgrade process, the true default theme +// is the theme of user "guest", which is initialized with column user_infos.theme +// default value (see file install/piwigo_structure-mysql.sql) define('PHPWG_DEFAULT_TEMPLATE', 'modus'); define('PHPWG_THEMES_PATH', $conf['themes_dir'].'/'); diff --git a/include/dblayer/functions_mysql.inc.php b/include/dblayer/functions_mysql.inc.php index c5cf0df81..1ea188f42 100644 --- a/include/dblayer/functions_mysql.inc.php +++ b/include/dblayer/functions_mysql.inc.php @@ -563,13 +563,13 @@ function do_maintenance_all_tables() function pwg_db_concat($array) { - $string = implode($array, ','); + $string = implode(',', $array); return 'CONCAT('. $string.')'; } function pwg_db_concat_ws($array, $separator) { - $string = implode($array, ','); + $string = implode(',', $array); return 'CONCAT_WS(\''.$separator.'\','. $string.')'; } diff --git a/include/dblayer/functions_mysqli.inc.php b/include/dblayer/functions_mysqli.inc.php index 030a01a3d..ff5b8f229 100644 --- a/include/dblayer/functions_mysqli.inc.php +++ b/include/dblayer/functions_mysqli.inc.php @@ -128,6 +128,23 @@ function pwg_query($query) { global $mysqli, $conf, $page, $debug, $t2; + // starting with MySQL 8, rank becomes a reserved keyword, we need to escape it + if (preg_match('/\brank\b/', $query)) + { + // first we unescape what's already escaped (to avoid double escaping) + $query = preg_replace('/`rank`/', 'rank', $query); + // then we escape the keyword + $query = preg_replace('/\brank\b/', '`rank`', $query); + } + + if (preg_match('/\bgroups\b/', $query)) + { + // first we unescape what's already escaped (to avoid double escaping) + $query = preg_replace('/`groups`/', 'groups', $query); + // then we escape the keyword + $query = preg_replace('/\bgroups\b/', '`groups`', $query); + } + $start = microtime(true); ($result = $mysqli->query($query)) or my_error($query, $conf['die_on_sql_error']); @@ -286,14 +303,8 @@ function mass_updates($tablename, $dbfields, $datas, $flags=0) { $is_first = true; - // escape a reserved word - if ('groups' == $tablename) - { - $tablename = '`'.$tablename.'`'; - } - $query = ' -UPDATE '.$tablename.' +UPDATE '.protect_column_name($tablename).' SET '; foreach ($dbfields['update'] as $key) @@ -302,7 +313,7 @@ UPDATE '.$tablename.' if (isset($data[$key]) and $data[$key] != '') { - $query.= $separator.$key.' = \''.$data[$key].'\''; + $query.= $separator.protect_column_name($key).' = \''.$data[$key].'\''; } else { @@ -310,7 +321,7 @@ UPDATE '.$tablename.' { continue; // next field } - $query.= "$separator$key = NULL"; + $query.= $separator.protect_column_name($key).' = NULL'; } $is_first = false; } @@ -329,11 +340,11 @@ UPDATE '.$tablename.' } if (isset($data[$key])) { - $query.= $key.' = \''.$data[$key].'\''; + $query.= protect_column_name($key).' = \''.$data[$key].'\''; } else { - $query.= $key.' IS NULL'; + $query.= protect_column_name($key).' IS NULL'; } $is_first = false; } @@ -345,7 +356,7 @@ UPDATE '.$tablename.' else { // creation of the temporary table - $result = pwg_query('SHOW FULL COLUMNS FROM '.$tablename); + $result = pwg_query('SHOW FULL COLUMNS FROM '.protect_column_name($tablename)); $columns = array(); $all_fields = array_merge($dbfields['primary'], $dbfields['update']); @@ -353,7 +364,7 @@ UPDATE '.$tablename.' { if (in_array($row['Field'], $all_fields)) { - $column = $row['Field']; + $column = '`'.$row['Field'].'`'; $column.= ' '.$row['Type']; $nullable = true; @@ -397,7 +408,7 @@ CREATE TABLE '.$temporary_tablename.' // update of table by joining with temporary table $query = ' -UPDATE '.$tablename.' AS t1, '.$temporary_tablename.' AS t2 +UPDATE '.protect_column_name($tablename).' AS t1, '.$temporary_tablename.' AS t2 SET '. implode( "\n , ", @@ -434,14 +445,8 @@ function single_update($tablename, $datas, $where, $flags=0) $is_first = true; - // escape a reserved word - if ('groups' == $tablename) - { - $tablename = '`'.$tablename.'`'; - } - $query = ' -UPDATE '.$tablename.' +UPDATE '.protect_column_name($tablename).' SET '; foreach ($datas as $key => $value) @@ -450,7 +455,7 @@ UPDATE '.$tablename.' if (isset($value) and $value !== '') { - $query.= $separator.$key.' = \''.$value.'\''; + $query.= $separator.protect_column_name($key).' = \''.$value.'\''; } else { @@ -458,7 +463,7 @@ UPDATE '.$tablename.' { continue; // next field } - $query.= "$separator$key = NULL"; + $query.= $separator.protect_column_name($key).' = NULL'; } $is_first = false; } @@ -478,11 +483,11 @@ UPDATE '.$tablename.' } if (isset($value)) { - $query.= $key.' = \''.$value.'\''; + $query.= protect_column_name($key).' = \''.$value.'\''; } else { - $query.= $key.' IS NULL'; + $query.= protect_column_name($key).' IS NULL'; } $is_first = false; } @@ -527,15 +532,9 @@ function mass_inserts($table_name, $dbfields, $datas, $options=array()) if ($first) { - // escape a reserved word - if ('groups' == $table_name) - { - $table_name = '`'.$table_name.'`'; - } - $query = ' -INSERT '.$ignore.' INTO '.$table_name.' - ('.implode(',', $dbfields).') +INSERT '.$ignore.' INTO '.protect_column_name($table_name).' + ('.implode(',', array_map('protect_column_name', $dbfields)).') VALUES'; $first = false; } @@ -574,20 +573,22 @@ INSERT '.$ignore.' INTO '.$table_name.' * * @param string $table_name * @param array $data + * @param array $options + * - boolean ignore - use "INSERT IGNORE" */ -function single_insert($table_name, $data) +function single_insert($table_name, $data, $options=array()) { + $ignore = ''; + if (isset($options['ignore']) and $options['ignore']) + { + $ignore = 'IGNORE'; + } + if (count($data) != 0) { - // escape a reserved word - if ('groups' == $table_name) - { - $table_name = '`'.$table_name.'`'; - } - $query = ' -INSERT INTO '.$table_name.' - ('.implode(',', array_keys($data)).') +INSERT '.$ignore.' INTO '.protect_column_name($table_name).' + ('.implode(',', array_map('protect_column_name', array_keys($data))).') VALUES'; $query .= '('; @@ -618,6 +619,15 @@ INSERT INTO '.$table_name.' } } +function protect_column_name($column_name) +{ + if ('`' != $column_name[0]) + { + $column_name = '`'.$column_name.'`'; + } + + return $column_name; +} /** * Do maintenance on all Piwigo tables @@ -677,13 +687,13 @@ function do_maintenance_all_tables() function pwg_db_concat($array) { - $string = implode($array, ','); + $string = implode(',', $array); return 'CONCAT('. $string.')'; } function pwg_db_concat_ws($array, $separator) { - $string = implode($array, ','); + $string = implode(',', $array); return 'CONCAT_WS(\''.$separator.'\','. $string.')'; } diff --git a/include/functions.inc.php b/include/functions.inc.php index 1a2fc2f5e..c9124e70e 100644 --- a/include/functions.inc.php +++ b/include/functions.inc.php @@ -2085,14 +2085,17 @@ function get_privacy_level_options() /** - * return the branch from the version. For example version 2.2.4 is for branch 2.2 + * return the branch from the version. For example version 11.1.2 is on branch 11 * * @param string $version * @return string */ function get_branch_from_version($version) { - return implode('.', array_slice(explode('.', $version), 0, 2)); + // the algorithm is a bit complicated to just retrieve the first digits before + // the first ".". It's because before version 11.0.0, we used to take the 2 first + // digits, ie version 2.2.4 was on branch 2.2 + return implode('.', array_slice(explode('.', $version), 0, 1)); } /** diff --git a/include/functions_category.inc.php b/include/functions_category.inc.php index 22997ee2f..d0124aac9 100644 --- a/include/functions_category.inc.php +++ b/include/functions_category.inc.php @@ -122,8 +122,8 @@ WHERE '.$where.' ), 'URL' => make_index_url(array('category' => $row)), 'LEVEL' => substr_count($row['global_rank'], '.') + 1, - 'SELECTED' => $selected_category['id'] == $row['id'] ? true : false, - 'IS_UPPERCAT' => $selected_category['id_uppercat'] == $row['id'] ? true : false, + 'SELECTED' => ($selected_category!==null && $selected_category['id'] == $row['id']) ? true : false, + 'IS_UPPERCAT' => ($selected_category!==null && $selected_category['id_uppercat'] == $row['id']) ? true : false, ) ); if ($conf['index_new_icon']) @@ -602,4 +602,192 @@ function remove_computed_category(&$cats, $cat) unset($cats[$cat['cat_id']]); } -?> \ No newline at end of file +/** + * Return the list of image ids corresponding to given categories. + * AND & OR mode supported. + * + * @param int[] $cat_ids + * @param string mode + * @param string $extra_images_where_sql - optionally apply a sql where filter to retrieved images + * @param string $order_by - optionally overwrite default photo order + * @param bool $user_permissions + * @return array + */ +function get_image_ids_for_categories($cat_ids, $mode='AND', $extra_images_where_sql='', $order_by='', $use_permissions=true) +{ + global $conf; + + if (empty($cat_ids)) + { + return array(); + } + + $query = ' +SELECT id + FROM '.IMAGES_TABLE.' i + INNER JOIN '.IMAGE_CATEGORY_TABLE.' ic ON id=ic.image_id + WHERE category_id IN ('.implode(',', $cat_ids).')'; + + if ($use_permissions) + { + $query.= get_sql_condition_FandF( + array( + 'forbidden_categories' => 'category_id', + 'visible_categories' => 'category_id', + 'visible_images' => 'id' + ), + "\n AND" + ); + } + + $query.= (empty($extra_images_where_sql) ? '' : " \nAND (".$extra_images_where_sql.')').' + GROUP BY id'; + + if ($mode=='AND' and count($cat_ids)>1) + { + $query .= ' + HAVING COUNT(DISTINCT category_id)='.count($cat_ids); + } + $query .= "\n".(empty($order_by) ? $conf['order_by'] : $order_by); + + return query2array($query, null, 'id'); +} + +/** + * Return a list of categories corresponding to given items. + * + * @param int[] $items + * @param int $max + * @param int[] $excluded_cat_ids + * @return array [id, name, counter, url_name] + */ +function get_common_categories($items, $max=null, $excluded_cat_ids=array()) +{ + if (empty($items)) + { + return array(); + } + + $query = ' +SELECT + c.id, + c.uppercats, + count(*) AS counter + FROM '.IMAGE_CATEGORY_TABLE.' + INNER JOIN '.CATEGORIES_TABLE.' c ON category_id = id + WHERE image_id IN ('.implode(',', $items).')'; + + if (!empty($excluded_cat_ids)) + { + $query.=' + AND category_id NOT IN ('.implode(',', $excluded_cat_ids).')'; + } + + $query .=' + GROUP BY c.id + ORDER BY '; + if (isset($max)) + { + $query .= 'counter DESC + LIMIT '.$max; + } + else + { + $query .= 'NULL'; + } + + $result = pwg_query($query); + $cats = array(); + while ($row = pwg_db_fetch_assoc($result)) + { + $cats[ $row['id'] ] = $row; + } + + return $cats; +} + +function get_related_categories_menu($items, $excluded_cat_ids=array()) +{ + global $page; + + $common_cats = get_common_categories($items, null, $excluded_cat_ids); + // echo ''; print_r($common_cats); echo ''; + + if (count($common_cats) == 0) + { + return array(); + } + + $cat_ids = array(); + // now we add the upper categories and useful values such as depth level and url + foreach ($common_cats as $cat) + { + foreach (explode(',', $cat['uppercats']) as $uppercat) + { + @$cat_ids[$uppercat]++; + } + } + + $query = ' +SELECT + id, + name, + permalink, + id_uppercat, + uppercats, + global_rank + FROM '.CATEGORIES_TABLE.' + WHERE id IN ('.implode(',', array_keys($cat_ids)).') +;'; + $cats = query2array($query); + usort($cats, 'global_rank_compare'); + + $index_of_cat = array(); + + foreach ($cats as $idx => $cat) + { + $index_of_cat[ $cat['id'] ] = $idx; + $cats[$idx]['LEVEL'] = substr_count($cat['global_rank'], '.') + 1; + + // if the category is directly linked to the items, we add an URL + counter + if (isset($common_cats[ $cat['id'] ])) + { + $cats[$idx]['count_images'] = $common_cats[ $cat['id'] ]['counter']; + + $url_params = array(); + if (isset($page['category'])) + { + $url_params['category'] = $page['category']; + + $url_params['combined_categories'] = array($cat); + if (isset($page['combined_categories'])) + { + $url_params['combined_categories'] = array_merge($page['combined_categories'], array($cat)); + } + } + else + { + $url_params['category'] = $cat; + } + + $cats[$idx]['url'] = make_index_url($url_params); + } + + // let's find how many sub-categories we have for each category. 3 options: + // 1. direct sub-albums + // 2. total indirect sub-albums + // 3. number of sub-albums containing photos + // + // Option 3 seems more appropriate here. + if (!empty($cat['id_uppercat']) and @$cats[$idx]['count_images'] > 0) + { + foreach (array_slice(explode(',', $cat['uppercats']), 0, -1) as $uppercat_id) + { + @$cats[ $index_of_cat[ $uppercat_id ] ]['count_categories']++; + } + } + } + + return $cats; +} +?> diff --git a/include/functions_cookie.inc.php b/include/functions_cookie.inc.php index be9853d27..0eb159eb7 100644 --- a/include/functions_cookie.inc.php +++ b/include/functions_cookie.inc.php @@ -54,7 +54,7 @@ function cookie_path() $scr = substr($scr,0,strrpos( $scr,'/')); // add a trailing '/' if needed - if ((strlen($scr) == 0) or ($scr{strlen($scr)-1} !== '/')) + if ((strlen($scr) == 0) or ($scr[strlen($scr)-1] !== '/')) { $scr .= '/'; } diff --git a/include/functions_html.inc.php b/include/functions_html.inc.php index 19fdad512..01c54e79d 100644 --- a/include/functions_html.inc.php +++ b/include/functions_html.inc.php @@ -418,7 +418,7 @@ function get_tags_content_title() .trigger_change('render_tag_name', $page['tags'][$i]['name'], $page['tags'][$i]) .''; - if (count($page['tags']) > 2) + if (count($page['tags']) > 1) { $other_tags = $page['tags']; unset($other_tags[$i]); @@ -429,17 +429,67 @@ function get_tags_content_title() ); $title.= - '' + .'" alt="x" style="vertical-align:bottom;" >' + .'' .''; } } return $title; } +/** + * Returns the breadcrumb to be displayed above thumbnails on combined categories page. + * + * @return string + */ +function get_combined_categories_content_title() +{ + global $page; + + $title = l10n('Albums').' '; + + $is_first = true; + $all_categories = array_merge(array($page['category']), $page['combined_categories']); + foreach ($all_categories as $idx => $category) + { + $title.= $is_first ? '' : ' + '; + $is_first = false; + + $title.= get_cat_display_name(array($category)); + + if (count($all_categories) > 1) // should be always the case + { + $other_cats = $all_categories; + unset($other_cats[$idx]); + + $params = array( + 'category' => array_shift($other_cats), + ); + + if (count($other_cats) > 0) + { + $params['combined_categories'] = $other_cats; + } + $remove_url = make_index_url($params); + + $title.= + '' + .'' + .''; + } + } + + return $title; +} + /** * Sets the http status header (200,401,...) * @param int $code @@ -500,6 +550,7 @@ function register_default_menubar_blocks($menu_ref_arr) $menu->register_block( new RegisteredBlock( 'mbTags', 'Related tags', 'piwigo')); $menu->register_block( new RegisteredBlock( 'mbSpecials', 'Specials', 'piwigo')); $menu->register_block( new RegisteredBlock( 'mbMenu', 'Menu', 'piwigo')); + $menu->register_block( new RegisteredBlock( 'mbRelatedCategories', 'Related albums', 'piwigo') ); // We hide the quick identification menu on the identification page. It // would be confusing. diff --git a/include/functions_search.inc.php b/include/functions_search.inc.php index 379bb93e2..53700b4bc 100644 --- a/include/functions_search.inc.php +++ b/include/functions_search.inc.php @@ -1119,7 +1119,7 @@ SELECT image_id FROM '.IMAGE_TAG_TABLE.' function qsearch_get_categories(QExpression $expr, QResults $qsr) { - global $user; + global $user, $conf; $token_cat_ids = $qsr->cat_iids = array_fill(0, count($expr->stokens), array() ); $all_cats = array(); @@ -1171,6 +1171,18 @@ SELECT if (!empty($cat_ids)) { + if ($conf['quick_search_include_sub_albums']) + { + $query = ' +SELECT + id + FROM '.CATEGORIES_TABLE.' + INNER JOIN '.USER_CACHE_CATEGORIES_TABLE.' ON id = cat_id and user_id = '.$user['id'].' + WHERE id IN ('.implode(',', get_subcat_ids($cat_ids)) .') +;'; + $cat_ids = query2array($query, null, 'id'); + } + $query = ' SELECT image_id FROM '.IMAGE_CATEGORY_TABLE.' WHERE category_id IN ('.implode(',',$cat_ids).') diff --git a/include/functions_tag.inc.php b/include/functions_tag.inc.php index 90734c321..00579f578 100644 --- a/include/functions_tag.inc.php +++ b/include/functions_tag.inc.php @@ -308,4 +308,18 @@ SELECT * return query2array($query); } +function tags_id_compare($a, $b) +{ + return ($a['id'] < $b['id']) ? -1 : 1; +} + +function tags_counter_compare($a, $b) +{ + if ($a['counter'] == $b['counter']) + { + return tags_id_compare($a, $b); + } + + return ($a['counter'] < $b['counter']) ? +1 : -1; +} ?> \ No newline at end of file diff --git a/include/functions_url.inc.php b/include/functions_url.inc.php index a0637f8c3..676651b51 100644 --- a/include/functions_url.inc.php +++ b/include/functions_url.inc.php @@ -348,6 +348,27 @@ function make_section_in_url($params) { $section_string.= $params['category']['permalink']; } + + if (isset($params['combined_categories'])) + { + foreach ($params['combined_categories'] as $category) + { + $section_string.= '/'; + + if ( empty($category['permalink']) ) + { + $section_string.= $category['id']; + if ( $conf['category_url_style']=='id-name' ) + { + $section_string.= '-'.str2url($category['name']); + } + } + else + { + $section_string.= $category['permalink']; + } + } + } } break; @@ -421,13 +442,35 @@ function parse_section_url( $tokens, &$next_token) $page['section'] = 'categories'; $next_token++; - if (isset($tokens[$next_token]) ) + $i = $next_token; + $loop_counter = 0; + + while (isset($tokens[$next_token])) { + if ($loop_counter++ > count($tokens)+10){die('infinite loop?');} + + if ( + strpos($tokens[$next_token], 'created-')===0 + or strpos($tokens[$next_token], 'posted-')===0 + or strpos($tokens[$next_token], 'start-')===0 + ) + { + break; + } + if (preg_match('/^(\d+)(?:-(.+))?$/', $tokens[$next_token], $matches)) { if ( isset($matches[2]) ) $page['hit_by']['cat_url_name'] = $matches[2]; - $page['category'] = $matches[1]; + + if (!isset($page['category'])) + { + $page['category'] = $matches[1]; + } + else + { + $page['combined_categories'][] = $matches[1]; + } $next_token++; } else @@ -460,8 +503,16 @@ function parse_section_url( $tokens, &$next_token) if ( isset($cat_id) ) { $next_token += $perma_index+1; - $page['category'] = $cat_id; - $page['hit_by']['cat_permalink'] = $maybe_permalinks[$perma_index]; + + if (!isset($page['category'])) + { + $page['category'] = $cat_id; + $page['hit_by']['cat_permalink'] = $maybe_permalinks[$perma_index]; + } + else + { + $page['combined_categories'][] = $cat_id; + } } else { @@ -480,6 +531,24 @@ function parse_section_url( $tokens, &$next_token) } $page['category']=$result; } + + if (isset($page['combined_categories'])) + { + $combined_categories = array(); + + foreach ($page['combined_categories'] as $cat_id) + { + $result = get_cat_info($cat_id); + if (empty($result)) + { + page_not_found(l10n('Requested album does not exist')); + } + + $combined_categories[] = $result; + } + + $page['combined_categories'] = $combined_categories; + } } elseif ( 'tags' == @$tokens[$next_token] ) { diff --git a/include/functions_user.inc.php b/include/functions_user.inc.php index 593d17aef..a7b4ac910 100644 --- a/include/functions_user.inc.php +++ b/include/functions_user.inc.php @@ -170,7 +170,7 @@ function register_user($login, $password, $mail_address, $notify_admin=true, &$e ); // if no error until here, registration of the user - if (count($errors) == 0) + if (empty($errors)) { $insert = array( $conf['user_fields']['username'] => pwg_db_real_escape_string($login), @@ -298,10 +298,13 @@ function build_user($user_id, $use_cache=true) $user['internal_status']['guest_must_be_guest'] = true; } - // Check user theme - if (!isset($user['theme_name'])) + // Check user theme. 2 possible problems: + // 1. the user_infos.theme was not found in the themes table, thus themes.name is null + // 2. the theme is not really installed on the filesystem + if (!isset($user['theme_name']) or !check_theme_installed($user['theme'])) { $user['theme'] = get_default_theme(); + $user['theme_name'] = $user['theme']; } return $user; @@ -777,7 +780,7 @@ function get_default_theme() // let's find the first available theme $active_themes = array_keys(get_pwg_themes()); - return $active_themes[0]; + return isset($active_themes[0]) ? $active_themes[0] : 'default'; } /** @@ -935,10 +938,7 @@ function log_user($user_id, $remember_me) if ( session_id()!="" ) { // we regenerate the session for security reasons // see http://www.acros.si/papers/session_fixation.pdf - if (version_compare(PHP_VERSION, '7') <= 0) - { - session_regenerate_id(true); - } + session_regenerate_id(true); } else { @@ -1099,6 +1099,8 @@ function pwg_login($success, $username, $password, $remember_me) pwg_session_gc(); global $conf; + + $user_found = false; // retrieving the encrypted password of the login submitted $query = ' SELECT '.$conf['user_fields']['id'].' AS id, @@ -1106,8 +1108,31 @@ SELECT '.$conf['user_fields']['id'].' AS id, FROM '.USERS_TABLE.' WHERE '.$conf['user_fields']['username'].' = \''.pwg_db_real_escape_string($username).'\' ;'; + $row = pwg_db_fetch_assoc(pwg_query($query)); if (isset($row['id']) and $conf['password_verify']($password, $row['password'], $row['id'])) + { + $user_found = true; + } + + // If we didn't find a matching user name, we search for email address + if (!$user_found) + { + $query = ' + SELECT '.$conf['user_fields']['id'].' AS id, + '.$conf['user_fields']['password'].' AS password + FROM '.USERS_TABLE.' + WHERE '.$conf['user_fields']['email'].' = \''.pwg_db_real_escape_string($username).'\' + ;'; + + $row = pwg_db_fetch_assoc(pwg_query($query)); + if (isset($row['id']) and $conf['password_verify']($password, $row['password'], $row['id'])) + { + $user_found = true; + } + } + + if ($user_found) { log_user($row['id'], $remember_me); trigger_notify('login_success', stripslashes($username)); @@ -1604,6 +1629,25 @@ UPDATE '.USER_AUTH_KEYS_TABLE.' pwg_query($query); } +/** + * Deactivates password reset key + * + * @since 11 + * @param int $user_id + * @return null + */ +function deactivate_password_reset_key($user_id) +{ + single_update( + USER_INFOS_TABLE, + array( + 'activation_key' => null, + 'activation_key_expire' => null, + ), + array('user_id' => $user_id) + ); +} + /** * Gets the last visit (datetime) of a user, based on history table * diff --git a/include/jshrink.class.php b/include/jshrink.class.php index b32807c4a..0229bd8a9 100644 --- a/include/jshrink.class.php +++ b/include/jshrink.class.php @@ -192,7 +192,7 @@ class JShrink_Minifier case "\n": // if the next line is something that can't stand alone // preserve the newline - if(strpos('(-+{[@', $this->b) !== false) + if($this->b !== false && strpos('(-+{[@', $this->b) !== false) { echo $this->a; $this->saveString(); @@ -239,7 +239,7 @@ class JShrink_Minifier if($this->a == '/' && ($this->b == '\'' || $this->b == '"')) { $this->saveRegex(); - continue; + continue 3; } echo $this->a; diff --git a/include/menubar.inc.php b/include/menubar.inc.php index fdb106b45..46fd265bc 100644 --- a/include/menubar.inc.php +++ b/include/menubar.inc.php @@ -101,6 +101,34 @@ function initialize_menu() $block->template = 'menubar_categories.tpl'; } +//------------------------------------------------------------ related categories + $block = $menu->get_block('mbRelatedCategories'); + + if ($block != null and !empty($page['items'])) + { + $exclude_cat_ids = array(); + if (isset($page['category'])) + { + $exclude_cat_ids = array($page['category']['id']); + if (isset($page['combined_categories'])) + { + foreach ($page['combined_categories'] as $cat) + { + $exclude_cat_ids[] = $cat['id']; + } + } + } + + $block->data = array( + 'MENU_CATEGORIES' => get_related_categories_menu($page['items'], $exclude_cat_ids), + ); + + if (!empty($block->data['MENU_CATEGORIES']) ) + { + $block->template = 'menubar_related_categories.tpl'; + } + } + //------------------------------------------------------------------------ tags $block = $menu->get_block('mbTags'); if ( $block!=null and 'picture' != script_basename() ) @@ -138,6 +166,8 @@ function initialize_menu() else if ($conf['menubar_tag_cloud_content'] == 'always_all' or ($conf['menubar_tag_cloud_content'] == 'all_or_current' and empty($page['items'])) ) { $tags = get_available_tags(); + usort($tags, 'tags_counter_compare'); + $tags = array_slice($tags, 0, $conf['menubar_tag_cloud_items_number']); foreach ($tags as $tag) { $block->data[] = array_merge( diff --git a/include/no_photo_yet.inc.php b/include/no_photo_yet.inc.php index 35f302b88..560afc34b 100644 --- a/include/no_photo_yet.inc.php +++ b/include/no_photo_yet.inc.php @@ -13,6 +13,7 @@ if ( !(defined('IN_ADMIN') and IN_ADMIN) // no message inside administration and script_basename() != 'identification' // keep the ability to login + and script_basename() != 'password' // keep the ability to reset password and script_basename() != 'ws' // keep the ability to discuss with web API and script_basename() != 'popuphelp' // keep the ability to display help popups and !isset($_SESSION['no_photo_yet']) // temporary hide diff --git a/include/page_header.php b/include/page_header.php index d007a5961..f39ee9b20 100644 --- a/include/page_header.php +++ b/include/page_header.php @@ -13,6 +13,12 @@ $template->set_filenames(array('header'=>'header.tpl')); trigger_notify('loc_begin_page_header'); +$show_mobile_app_banner = conf_get_param('show_mobile_app_banner_in_gallery', false); +if (defined('IN_ADMIN') and IN_ADMIN) +{ + $show_mobile_app_banner = conf_get_param('show_mobile_app_banner_in_admin', true); +} + $template->assign( array( 'GALLERY_TITLE' => @@ -39,6 +45,8 @@ $template->assign( 'U_HOME' => get_gallery_home_url(), 'LEVEL_SEPARATOR' => $conf['level_separator'], + + 'SHOW_MOBILE_APP_BANNER' => $show_mobile_app_banner, )); diff --git a/include/section_init.inc.php b/include/section_init.inc.php index 586aec7fc..60f439268 100644 --- a/include/section_init.inc.php +++ b/include/section_init.inc.php @@ -211,7 +211,11 @@ $forbidden = get_sql_condition_FandF( // +-----------------------------------------------------------------------+ if ('categories' == $page['section']) { - if (isset($page['category'])) + if (isset($page['combined_categories'])) + { + $page['title'] = get_combined_categories_content_title(); + } + elseif (isset($page['category'])) { $page = array_merge( $page, @@ -231,7 +235,17 @@ if ('categories' == $page['section']) } // GET IMAGES LIST - if + if (isset($page['combined_categories'])) + { + $cat_ids = array($page['category']['id']); + foreach ($page['combined_categories'] as $category) + { + $cat_ids[] = $category['id']; + } + + $page['items'] = get_image_ids_for_categories($cat_ids); + } + elseif ( $page['startcat'] == 0 and (!isset($page['chronology_field'])) and // otherwise the calendar will requery all subitems @@ -600,7 +614,7 @@ if ( $filter['enabled'] ) } // see if we need a redirect because of a permalink -if ( 'categories'==$page['section'] and isset($page['category']) ) +if ( 'categories'==$page['section'] and isset($page['category']) and !isset($page['combined_categories'])) { $need_redirect=false; if ( empty($page['category']['permalink']) ) diff --git a/include/smarty/libs/sysplugins/smarty_internal_runtime_updatescope.php b/include/smarty/libs/sysplugins/smarty_internal_runtime_updatescope.php index 5a125a4a7..6897fb33e 100644 --- a/include/smarty/libs/sysplugins/smarty_internal_runtime_updatescope.php +++ b/include/smarty/libs/sysplugins/smarty_internal_runtime_updatescope.php @@ -47,7 +47,9 @@ class Smarty_Internal_Runtime_UpdateScope while (isset($ptr->parent)) { $ptr = $ptr->parent; } - $ptr->tpl_vars[$varName] = $tpl->tpl_vars[$varName]; + if ($ptr) { + $ptr->tpl_vars[$varName] = $tpl->tpl_vars[$varName]; + } } } } diff --git a/include/ws_functions/pwg.categories.php b/include/ws_functions/pwg.categories.php index 0c96972a9..89c9b3224 100644 --- a/include/ws_functions/pwg.categories.php +++ b/include/ws_functions/pwg.categories.php @@ -870,7 +870,7 @@ SELECT * ;'; $category = pwg_db_fetch_assoc(pwg_query($query)); - return get_category_representant_properties($category['representative_picture_id']); + return get_category_representant_properties($category['representative_picture_id'], IMG_SMALL); } /** diff --git a/include/ws_functions/pwg.groups.php b/include/ws_functions/pwg.groups.php index a64c8df31..c0c664ba1 100644 --- a/include/ws_functions/pwg.groups.php +++ b/include/ws_functions/pwg.groups.php @@ -61,7 +61,7 @@ SELECT */ function ws_groups_add($params, &$service) { - $params['name'] = pwg_db_real_escape_string($params['name']); + $params['name'] = pwg_db_real_escape_string(strip_tags(stripslashes($params['name']))); // is the name not already used ? $query = ' @@ -104,46 +104,9 @@ function ws_groups_delete($params, &$service) return new PwgError(403, 'Invalid security token'); } - $group_id_string = implode(',', $params['group_id']); - - // destruction of the access linked to the group - $query = ' -DELETE - FROM '. GROUP_ACCESS_TABLE .' - WHERE group_id IN('. $group_id_string .') -;'; - pwg_query($query); - - // destruction of the users links for this group - $query = ' -DELETE - FROM '. USER_GROUP_TABLE .' - WHERE group_id IN('. $group_id_string .') -;'; - pwg_query($query); - - $query = ' -SELECT id, name - FROM `'. GROUPS_TABLE .'` - WHERE id IN('. $group_id_string .') -;'; - - $group_list = query2array($query, 'id', 'name'); - $groupnames = array_values($group_list); - $groupids = array_keys($group_list); - - // destruction of the group - $query = ' -DELETE - FROM `'. GROUPS_TABLE .'` - WHERE id IN('. $group_id_string .') -;'; - pwg_query($query); - - trigger_notify('delete_group', $groupids); - pwg_activity('group', $groupids, 'delete'); - include_once(PHPWG_ROOT_PATH.'admin/include/functions.php'); + $groupnames = array_values(delete_groups($params['group_id'])); + invalidate_user_cache(); return new PwgNamedArray($groupnames, 'group_deleted'); @@ -180,13 +143,14 @@ SELECT COUNT(*) if (!empty($params['name'])) { - $params['name'] = pwg_db_real_escape_string($params['name']); + $params['name'] = pwg_db_real_escape_string(strip_tags(stripslashes($params['name']))); // is the name not already used ? $query = ' SELECT COUNT(*) FROM `'. GROUPS_TABLE .'` WHERE name = \''. $params['name'] .'\' + AND id != '.$params['group_id'].' ;'; list($count) = pwg_db_fetch_row(pwg_query($query)); if ($count != 0) @@ -251,8 +215,7 @@ SELECT COUNT(*) mass_inserts( USER_GROUP_TABLE, array('group_id', 'user_id'), - $inserts, - array('ignore'=>true) + $inserts ); include_once(PHPWG_ROOT_PATH.'admin/include/functions.php'); @@ -264,6 +227,187 @@ SELECT COUNT(*) return $service->invoke('pwg.groups.getList', array('group_id' => $params['group_id'])); } +/** + * API method + * Merge groups in one other group + * @param mixed[] $params + * @option int destination_group_id + * @option int[] merge_group_id + */ +function ws_groups_merge($params, &$service) { + + if (get_pwg_token() != $params['pwg_token']) + { + return new PwgError(403, 'Invalid security token'); + } + + $all_groups = $params['merge_group_id']; + array_push($all_groups, $params['destination_group_id']); + + $all_groups = array_unique($all_groups); + $merge_group = array_diff($params['merge_group_id'], array($params['destination_group_id'])); + $merge_group_object = $service->invoke('pwg.groups.getList', array('group_id' => $params['merge_group_id'])); + + $query = ' +SELECT COUNT(*) + FROM `'. GROUPS_TABLE .'` + WHERE id in ('.implode(',', $all_groups) .') +;'; + list($count) = pwg_db_fetch_row(pwg_query($query)); + if ($count != count($all_groups)) + { + return new PwgError(WS_ERR_INVALID_PARAM, 'All groups does not exist.'); + } + + $user_in_merge_groups = array(); + $user_in_dest = array(); + $user_to_add = array(); + + $query = ' +SELECT DISTINCT(user_id) + FROM `'. USER_GROUP_TABLE .'` + WHERE + group_id IN ('.implode(',', $merge_group) .') +;'; + $user_in_merge_groups = query2array($query, null, 'user_id'); + + $query = ' +SELECT user_id + FROM `'. USER_GROUP_TABLE .'` + WHERE group_id = '.$params['destination_group_id'].' +;'; + + $user_in_dest = query2array($query, null, 'user_id');; + + + $user_to_add = array_diff($user_in_merge_groups, $user_in_dest); + + $inserts = array(); + foreach ($user_to_add as $user) + { + $inserts[] = array( + 'group_id' => $params['destination_group_id'], + 'user_id' => $user, + ); + } + + mass_inserts( + USER_GROUP_TABLE, + array('group_id', 'user_id'), + $inserts, + array('ignore'=>true) + ); + + include_once(PHPWG_ROOT_PATH.'admin/include/functions.php'); + invalidate_user_cache(); + + pwg_activity('group', $params['destination_group_id'], 'edit'); + foreach ($user_to_add as $user_id) + { + pwg_activity('user', $user_id, 'edit', array("associated" => $params['destination_group_id'])); + } + + include_once(PHPWG_ROOT_PATH.'admin/include/functions.php'); + + delete_groups($merge_group); + + return array( + "destination_group" => $service->invoke('pwg.groups.getList', array('group_id' => $params['destination_group_id'])), + "deleted_group" => $merge_group_object + ); +} + +/** + * API method + * Create a copy of a group + * @param mixed[] $params + * @option int group_id + * @option string copy_name + */ +function ws_groups_duplicate($params, &$service) { + + if (get_pwg_token() != $params['pwg_token']) + { + return new PwgError(403, 'Invalid security token'); + } + + $query = ' +SELECT COUNT(*) + FROM `'.GROUPS_TABLE.'` + WHERE name = \''.$params['copy_name'].'\' +;'; + list($count) = pwg_db_fetch_row(pwg_query($query)); + if ($count != 0) + { + return new PwgError(WS_ERR_INVALID_PARAM, 'This name is already used by another group.'); + } + + $query = ' +SELECT COUNT(*) + FROM `'. GROUPS_TABLE .'` + WHERE id = '.$params["group_id"].' +;'; + list($count) = pwg_db_fetch_row(pwg_query($query)); + if ($count == 0) + { + return new PwgError(WS_ERR_INVALID_PARAM, 'This group does not exist.'); + } + + $query = ' +SELECT is_default + FROM `'. GROUPS_TABLE .'` + WHERE id = '.$params['group_id'].' +;'; + + $is_default = pwg_db_fetch_row(pwg_query($query))[0]; + + // creating the group + single_insert( + GROUPS_TABLE, + array( + 'name' => $params['copy_name'], + 'is_default' => boolean_to_string($is_default), + ) + ); + $inserted_id = pwg_db_insert_id(); + + pwg_activity('group', $inserted_id, 'add'); + + $query = ' + SELECT user_id + FROM `'. USER_GROUP_TABLE .'` + WHERE group_id = '.$params['group_id'].' + ;'; + + $users = query2array($query, null, 'user_id'); + + $inserts = array(); + foreach ($users as $user) + { + $inserts[] = array( + 'group_id' => $inserted_id, + 'user_id' => $user, + ); + } + + mass_inserts( + USER_GROUP_TABLE, + array('group_id', 'user_id'), + $inserts, + array('ignore'=>true) + ); + + include_once(PHPWG_ROOT_PATH.'admin/include/functions.php'); + invalidate_user_cache(); + + foreach ($users as $user_id) + { + pwg_activity('user', $user_id, 'edit', array("associated" => $params['group_id'])); + } + + return $service->invoke('pwg.groups.getList', array('group_id' => $inserted_id)); +} + /** * API method * Removes user(s) from a group diff --git a/include/ws_functions/pwg.images.php b/include/ws_functions/pwg.images.php index 62a4a9bd6..ef7286b9f 100644 --- a/include/ws_functions/pwg.images.php +++ b/include/ws_functions/pwg.images.php @@ -1348,6 +1348,10 @@ function ws_images_upload($params, $service) $fileName = uniqid("file_"); } + // change the name of the file in the buffer to avoid any unexpected + // extension. Function add_uploaded_file will eventually clean the mess. + $fileName = md5($fileName); + $filePath = $upload_dir.DIRECTORY_SEPARATOR.$fileName; // Chunking might be enabled @@ -1442,6 +1446,294 @@ SELECT } } +/** + * API method + * Adds a chunk of an image. Chunks don't have to be uploaded in the right sort order. When the last chunk is added, they get merged. + * @since 11 + * @param mixed[] $params + * @option string username + * @option string password + * @option chunk int number of the chunk + * @option string chunk_sum MD5 sum of the chunk + * @option chunks int total number of chunks for this image + * @option string original_sum MD5 sum of the final image + * @option int[] category + * @option string filename + * @option string name (optional) + * @option string author (optional) + * @option string comment (optional) + * @option string date_creation (optional) + * @option int level + * @option string tag_ids (optional) - "tag_id,tag_id" + * @option int image_id (optional) + */ +function ws_images_uploadAsync($params, &$service) +{ + global $conf, $user, $logger; + + // additional check for some parameters + if (!preg_match('/^[a-fA-F0-9]{32}$/', $params['original_sum'])) + { + return new PwgError(WS_ERR_INVALID_PARAM, 'Invalid original_sum'); + } + + if (!try_log_user($params['username'], $params['password'], false)) + { + return new PwgError(999, 'Invalid username/password'); + } + + // build $user + // include(PHPWG_ROOT_PATH.'include/user.inc.php'); + $user = build_user($user['id'], false); + + if (!is_admin()) + { + return new PwgError(401, 'Admin status is required.'); + } + + if ($params['image_id'] > 0) + { + $query=' +SELECT COUNT(*) + FROM '. IMAGES_TABLE .' + WHERE id = '. $params['image_id'] .' +;'; + list($count) = pwg_db_fetch_row(pwg_query($query)); + if ($count == 0) + { + return new PwgError(404, __FUNCTION__.' : image_id not found'); + } + } + + // handle upload error as in ws_images_addSimple + // if (isset($_FILES['image']['error']) && $_FILES['image']['error'] != 0) + + $output_filepath_prefix = $conf['upload_dir'].'/buffer/'.$params['original_sum'].'-u'.$user['id']; + $chunkfile_path_pattern = $output_filepath_prefix.'-%03uof%03u.chunk'; + + $chunkfile_path = sprintf($chunkfile_path_pattern, $params['chunk']+1, $params['chunks']); + + // create the upload directory tree if not exists + if (!mkgetdir(dirname($chunkfile_path), MKGETDIR_DEFAULT&~MKGETDIR_DIE_ON_ERROR)) + { + return new PwgError(500, 'error during buffer directory creation'); + } + secure_directory(dirname($chunkfile_path)); + + // move uploaded file + move_uploaded_file($_FILES['file']['tmp_name'], $chunkfile_path); + $logger->debug(__FUNCTION__.' uploaded '.$chunkfile_path); + + // MD5 checksum + $chunk_md5 = md5_file($chunkfile_path); + if ($chunk_md5 != $params['chunk_sum']) + { + unlink($chunkfile_path); + $logger->error(__FUNCTION__.' '.$chunkfile_path.' MD5 checksum mismatched'); + return new PwgError(500, "MD5 checksum chunk file mismatched"); + } + + // are all chunks uploaded? + $chunk_ids_uploaded = array(); + for ($i = 1; $i <= $params['chunks']; $i++) + { + $chunkfile = sprintf($chunkfile_path_pattern, $i, $params['chunks']); + if ( file_exists($chunkfile) && ($fp = fopen($chunkfile, "rb"))!==false ) + { + $chunk_ids_uploaded[] = $i; + fclose($fp); + } + } + + if ($params['chunks'] != count($chunk_ids_uploaded)) + { + // all chunks are not yet available + $logger->debug(__FUNCTION__.' all chunks are not uploaded yet, maybe on next chunk, exit for now'); + return array('message' => 'chunks uploaded = '.implode(',', $chunk_ids_uploaded)); + } + + // all chunks available + $logger->debug(__FUNCTION__.' '.$params['original_sum'].' '.$params['chunks'].' chunks available, try now to get lock for merging'); + $output_filepath = $output_filepath_prefix.'.merged'; + + // chunks already being merged? + if ( file_exists($output_filepath) && ($fp = fopen($output_filepath, "rb"))!==false ) + { + // merge file already exists + fclose($fp); + $logger->error(__FUNCTION__.' '.$output_filepath.' already exists, another merge is under process'); + return array('message' => 'chunks uploaded = '.implode(',', $chunk_ids_uploaded)); + } + + // create merged and open it for writing only + $fp = fopen($output_filepath, "wb"); + if ( !$fp ) + { + // unable to create file and open it for writing only + $logger->error(__FUNCTION__.' '.$chunkfile_path.' unable to create merge file'); + return new PwgError(500, 'error while creating merged '.$chunkfile_path); + } + + // acquire an exclusive lock and keep it until merge completes + // this postpones another uploadAsync task running in another thread + if (!flock($fp, LOCK_EX)) + { + // unable to obtain lock + fclose($fp); + $logger->error(__FUNCTION__.' '.$chunkfile_path.' unable to obtain lock'); + return new PwgError(500, 'error while locking merged '.$chunkfile_path); + } + + $logger->debug(__FUNCTION__.' lock obtained to merge chunks'); + + // loop over all chunks + foreach ($chunk_ids_uploaded as $chunk_id) + { + $chunkfile_path = sprintf($chunkfile_path_pattern, $chunk_id, $params['chunks']); + + // chunk deleted by preceding merge? + if (!file_exists($chunkfile_path)) + { + // cancel merge + $logger->error(__FUNCTION__.' '.$chunkfile_path.' already merged'); + flock($fp, LOCK_UN); + fclose($fp); + return array('message' => 'chunks uploaded = '.implode(',', $chunk_ids_uploaded)); + } + + if (!fwrite($fp, file_get_contents($chunkfile_path))) + { + // could not append chunk + $logger->error(__FUNCTION__.' error merging chunk '.$chunkfile_path); + flock($fp, LOCK_UN); + fclose($fp); + + // delete merge file without returning an error + @unlink($output_filepath); + return new PwgError(500, 'error while merging chunk '.$chunk_id); + } + + $logger->debug(__FUNCTION__.' original_sum='.$params['original_sum'].', chunk '.$chunk_id.'/'.$params['chunks'].' merged'); + + // delete chunk and clear cache + unlink($chunkfile_path); + } + + // flush output before releasing lock + fflush($fp); + flock($fp, LOCK_UN); + fclose($fp); + + $logger->debug(__FUNCTION__.' merged file '.$output_filepath.' saved'); + + // MD5 checksum + $merged_md5 = md5_file($output_filepath); + + if ($merged_md5 != $params['original_sum']) + { + unlink($output_filepath); + $logger->error(__FUNCTION__.' '.$output_filepath.' MD5 checksum mismatched!'); + return new PwgError(500, "MD5 checksum merged file mismatched"); + } + + $logger->debug(__FUNCTION__.' '.$output_filepath.' MD5 checksum OK'); + + include_once(PHPWG_ROOT_PATH.'admin/include/functions_upload.inc.php'); + + $image_id = add_uploaded_file( + $output_filepath, + $params['filename'], + $params['category'], + $params['level'], + $params['image_id'], + $params['original_sum'] + ); + + $logger->debug(__FUNCTION__.' image_id after add_uploaded_file = '.$image_id); + + // and now, let's create tag associations + if (isset($params['tag_ids']) and !empty($params['tag_ids'])) + { + set_tags( + explode(',', $params['tag_ids']), + $image_id + ); + } + + // time to set other infos + $info_columns = array( + 'name', + 'author', + 'comment', + 'date_creation', + ); + + $update = array(); + foreach ($info_columns as $key) + { + if (isset($params[$key])) + { + $update[$key] = $params[$key]; + } + } + + if (count(array_keys($update)) > 0) + { + single_update( + IMAGES_TABLE, + $update, + array('id' => $image_id) + ); + } + + // final step, reset user cache + invalidate_user_cache(); + + // trick to bypass get_sql_condition_FandF + if (!empty($params['level']) and $params['level'] > $user['level']) + { + // this will not persist + $user['level'] = $params['level']; + } + + // delete chunks older than a week + $now = time(); + foreach (glob($conf['upload_dir'].'/buffer/'."*.chunk") as $file) + { + if (is_file($file)) + { + if ($now - filemtime($file) >= 60 * 60 * 24 * 7) // 7 days + { + $logger->info(__FUNCTION__.' delete '.$file); + unlink($file); + } + else + { + $logger->debug(__FUNCTION__.' keep '.$file); + } + } + } + + // delete merged older than a week + foreach (glob($conf['upload_dir'].'/buffer/'."*.merged") as $file) + { + if (is_file($file)) + { + if ($now - filemtime($file) >= 60 * 60 * 24 * 7) // 7 days + { + $logger->info(__FUNCTION__.' delete '.$file); + unlink($file); + } + else + { + $logger->debug(__FUNCTION__.' keep '.$file); + } + } + } + + return $service->invoke('pwg.images.getInfo', array('image_id' => $image_id)); +} + /** * API method * Check if an image exists by it's name or md5 sum @@ -1670,7 +1962,12 @@ SELECT * ); } - $update['file'] = $params['file']; + // prevent XSS, remove HTML tags + $update['file'] = strip_tags($params['file']); + if (empty($update['file'])) + { + unset($update['file']); + } } if (count(array_keys($update)) > 0) diff --git a/include/ws_functions/pwg.tags.php b/include/ws_functions/pwg.tags.php index 1f0b620bf..a3244ea19 100644 --- a/include/ws_functions/pwg.tags.php +++ b/include/ws_functions/pwg.tags.php @@ -224,10 +224,284 @@ function ws_tags_add($params, &$service) if (isset($creation_output['error'])) { - return new PwgError(500, $creation_output['error']); + return new PwgError(WS_ERR_INVALID_PARAM, $creation_output['error']); } - return $creation_output; + pwg_activity('tag', $creation_output['id'], 'add'); + + $query = ' +SELECT name, url_name +FROM `'.TAGS_TABLE.'` +WHERE id = '.$creation_output['id'].';'; + +$new_tag = query2array($query); + + return array( + 'info' => $creation_output['info'], + 'id' => $creation_output['id'], + 'name' => $new_tag[0]['name'], + 'url_name' => $new_tag[0]['url_name'] + ); +} + +function ws_tags_delete($params, &$service) +{ + include_once(PHPWG_ROOT_PATH.'admin/include/functions.php'); + + if (get_pwg_token() != $params['pwg_token']) + { + return new PwgError(403, 'Invalid security token'); + } + +$query = ' +SELECT COUNT(*) + FROM `'. TAGS_TABLE .'` + WHERE id in ('.implode(',', $params['tag_id']) .') +;'; + list($count) = pwg_db_fetch_row(pwg_query($query)); + if ($count != count($params['tag_id'])) + { + return new PwgError(WS_ERR_INVALID_PARAM, 'All tags does not exist.'); + } + + + $tag_ids = $params['tag_id']; + + if (count($tag_ids) > 0) + { + delete_tags($params['tag_id']); + return array('id' => $tag_ids); + } else { + return array('id' => array()); + } +} + +function ws_tags_rename($params, &$service) +{ + include_once(PHPWG_ROOT_PATH.'admin/include/functions.php'); + + if (get_pwg_token() != $params['pwg_token']) + { + return new PwgError(403, 'Invalid security token'); + } + + $tag_id = $params['tag_id']; + $tag_name = $params['new_name']; + + // does the tag exist ? + $query = ' +SELECT COUNT(*) + FROM `'. TAGS_TABLE .'` + WHERE id = '. $tag_id .' +;'; + list($count) = pwg_db_fetch_row(pwg_query($query)); + if ($count == 0) + { + return new PwgError(WS_ERR_INVALID_PARAM, 'This tag does not exist.'); + } + + $query = ' +SELECT name + FROM '.TAGS_TABLE.' + WHERE id != '.$tag_id.' +;'; + $existing_names = array_from_query($query, 'name'); + + $update = array(); + + if (in_array($tag_name, $existing_names)) + { + return new PwgError(WS_ERR_INVALID_PARAM, 'This name is already token'); + } + else if (!empty($tag_name)) + { + $update = array( + 'name' => addslashes($tag_name), + 'url_name' => trigger_change('render_tag_url', $tag_name), + ); + + } + + pwg_activity('tag', $tag_id, 'edit'); + + single_update( + TAGS_TABLE, + $update, + array('id' => $tag_id) + ); + + return array( + 'id' => $tag_id, + 'name' => addslashes($tag_name), + 'url_name' => trigger_change('render_tag_url', $tag_name) + ); +} + + +function ws_tags_duplicate($params, &$service) +{ + + include_once(PHPWG_ROOT_PATH.'admin/include/functions.php'); + + if (get_pwg_token() != $params['pwg_token']) + { + return new PwgError(403, 'Invalid security token'); + } + + $tag_id = $params['tag_id']; + $copy_name = $params['copy_name']; + + // does the tag exist ? + $query = ' +SELECT COUNT(*) + FROM `'. TAGS_TABLE .'` + WHERE id = '. $tag_id .' +;'; + list($count) = pwg_db_fetch_row(pwg_query($query)); + if ($count == 0) + { + return new PwgError(WS_ERR_INVALID_PARAM, 'This tag does not exist.'); + } + + $query = ' +SELECT COUNT(*) + FROM `'. TAGS_TABLE .'` + WHERE name = "'. $copy_name .'" +;'; + list($count) = pwg_db_fetch_row(pwg_query($query)); + if ($count != 0) + { + return new PwgError(WS_ERR_INVALID_PARAM, 'This name is already taken.'); + } + + + single_insert( + TAGS_TABLE, + array( + 'name' => $copy_name, + 'url_name' => trigger_change('render_tag_url', $copy_name), + ) + ); + $destination_tag_id = pwg_db_insert_id(TAGS_TABLE); + + pwg_activity('tag', $destination_tag_id, 'add', array('action'=>'duplicate', 'source_tag'=>$tag_id)); + + $query = ' +SELECT image_id + FROM '.IMAGE_TAG_TABLE.' + WHERE tag_id = '.$tag_id.' +;'; + $destination_tag_image_ids = array_from_query($query, 'image_id'); + + $inserts = array(); + + foreach ($destination_tag_image_ids as $image_id) + { + $inserts[] = array( + 'tag_id' => $destination_tag_id, + 'image_id' => $image_id + ); + pwg_activity('photo', $image_id, 'edit', array("add-tag" => $destination_tag_id)); + } + + if (count($inserts) > 0) + { + mass_inserts( + IMAGE_TAG_TABLE, + array_keys($inserts[0]), + $inserts + ); + } + + return array( + 'id' => $destination_tag_id, + 'name' => $copy_name, + 'url_name' => trigger_change('render_tag_url', $copy_name), + 'count' => count($inserts) + ); +} + +function ws_tags_merge($params, &$service) +{ + + if (get_pwg_token() != $params['pwg_token']) + { + return new PwgError(403, 'Invalid security token'); + } + + $all_tags = $params['merge_tag_id']; + array_push($all_tags, $params['destination_tag_id']); + + $all_tags = array_unique($all_tags); + $merge_tag = array_diff($params['merge_tag_id'], array($params['destination_tag_id'])); + + $query = ' +SELECT COUNT(*) + FROM `'. TAGS_TABLE .'` + WHERE id in ('.implode(',', $all_tags) .') +;'; + list($count) = pwg_db_fetch_row(pwg_query($query)); + if ($count != count($all_tags)) + { + return new PwgError(WS_ERR_INVALID_PARAM, 'All tags does not exist.'); + } + + $image_in_merge_tags = array(); + $image_in_dest = array(); + $image_to_add = array(); + + $query = ' +SELECT DISTINCT(image_id) + FROM `'. IMAGE_TAG_TABLE .'` + WHERE + tag_id IN ('.implode(',', $merge_tag) .') +;'; + $image_in_merge_tags = query2array($query, null, 'image_id'); + + $query = ' +SELECT image_id + FROM `'. IMAGE_TAG_TABLE .'` + WHERE tag_id = '.$params['destination_tag_id'].' +;'; + + $image_in_dest = query2array($query, null, 'image_id');; + + + $image_to_add = array_diff($image_in_merge_tags, $image_in_dest); + + $inserts = array(); + foreach ($image_to_add as $image) + { + $inserts[] = array( + 'tag_id' => $params['destination_tag_id'], + 'image_id' => $image, + ); + } + + mass_inserts( + IMAGE_TAG_TABLE, + array('tag_id', 'image_id'), + $inserts, + array('ignore'=>true) + ); + + pwg_activity('tag', $params['destination_tag_id'], 'edit'); + foreach ($image_to_add as $image_id) + { + pwg_activity('photo', $image_id, 'edit', array("tag-add" => $params['destination_tag_id'])); + } + + include_once(PHPWG_ROOT_PATH.'admin/include/functions.php'); + + delete_tags($merge_tag); + + $image_in_merged = array_merge($image_in_dest, $image_to_add); + + return array( + "destination_tag" => $params['destination_tag_id'], + "deleted_tag" => $params['merge_tag_id'], + "images_in_merged_tag" => $image_in_merged + ); } ?> diff --git a/include/ws_functions/pwg.users.php b/include/ws_functions/pwg.users.php index 3881f3b65..f9f607017 100644 --- a/include/ws_functions/pwg.users.php +++ b/include/ws_functions/pwg.users.php @@ -555,6 +555,11 @@ SELECT deactivate_user_auth_keys($params['user_id'][0]); } + if (isset($updates[ $conf['user_fields']['email'] ])) + { + deactivate_password_reset_key($params['user_id'][0]); + } + if (isset($update_status) and count($params['user_id_for_status']) > 0) { $query = ' @@ -632,4 +637,158 @@ SELECT )); } +/** + * API method + * Adds a favorite image for the current user + * @param mixed[] $params + * @option int image_id + */ +function ws_users_favorites_add($params, &$service) +{ + global $user; + + if (is_a_guest()) + { + return new PwgError(403, 'User must be logged in.'); + } + + // does the image really exist? + $query = ' +SELECT COUNT(*) + FROM '. IMAGES_TABLE .' + WHERE id = '. $params['image_id'] .' +;'; + list($count) = pwg_db_fetch_row(pwg_query($query)); + if ($count == 0) + { + return new PwgError(404, 'image_id not found'); + } + + single_insert( + FAVORITES_TABLE, + array( + 'image_id' => $params['image_id'], + 'user_id' => $user['id'], + ), + array('ignore' => true) + ); + + return true; +} + +/** + * API method + * Removes a favorite image for the current user + * @param mixed[] $params + * @option int image_id + */ +function ws_users_favorites_remove($params, &$service) +{ + global $user; + + if (is_a_guest()) + { + return new PwgError(403, 'User must be logged in.'); + } + + // does the image really exist? + $query = ' +SELECT COUNT(*) + FROM '. IMAGES_TABLE .' + WHERE id = '. $params['image_id'] .' +;'; + list($count) = pwg_db_fetch_row(pwg_query($query)); + if ($count == 0) + { + return new PwgError(404, 'image_id not found'); + } + + $query = ' +DELETE + FROM '.FAVORITES_TABLE.' + WHERE user_id = '.$user['id'].' + AND image_id = '.$params['image_id'].' +;'; + + pwg_query($query); + + return true; +} + +/** + * API method + * Returns the favorite images of the current user + * @param mixed[] $params + * @option int per_page + * @option int page + * @option string order + */ +function ws_users_favorites_getList($params, &$service) +{ + global $conf, $user; + + if (is_a_guest()) + { + return false; + } + + check_user_favorites(); + + $order_by = ws_std_image_sql_order($params, 'i.'); + $order_by = empty($order_by) ? $conf['order_by'] : 'ORDER BY '.$order_by; + + $query = ' +SELECT + i.* + FROM '.FAVORITES_TABLE.' + INNER JOIN '.IMAGES_TABLE.' i ON image_id = i.id + WHERE user_id = '.$user['id'].' +'.get_sql_condition_FandF( + array( + 'visible_images' => 'id' + ), + 'AND' + ).' + '.$order_by.' +;'; + $images = array(); + $result = pwg_query($query); + while ($row = pwg_db_fetch_assoc($result)) + { + $image = array(); + + foreach (array('id', 'width', 'height', 'hit') as $k) + { + if (isset($row[$k])) + { + $image[$k] = (int)$row[$k]; + } + } + + foreach (array('file', 'name', 'comment', 'date_creation', 'date_available') as $k) + { + $image[$k] = $row[$k]; + } + + $images[] = array_merge($image, ws_std_get_urls($row)); + } + + $count = count($images); + $images = array_slice($images, $params['per_page']*$params['page'], $params['per_page']); + + return array( + 'paging' => new PwgNamedStruct( + array( + 'page' => $params['page'], + 'per_page' => $params['per_page'], + 'count' => $count + ) + ), + 'images' => new PwgNamedArray( + $images, 'image', + ws_std_get_image_xml_attributes() + ) + ); +} + ?> diff --git a/install.php b/install.php index bea9d726f..ab825cb7e 100644 --- a/install.php +++ b/install.php @@ -211,9 +211,6 @@ else if ('pl_PL' == $language) { else if ('zh_CN' == $language) { define('PHPWG_DOMAIN', 'cn.piwigo.org'); } -else if ('hu_HU' == $language) { - define('PHPWG_DOMAIN', 'hu.piwigo.org'); -} else if ('ru_RU' == $language) { define('PHPWG_DOMAIN', 'ru.piwigo.org'); } @@ -232,7 +229,7 @@ else if ('pt_BR' == $language) { else { define('PHPWG_DOMAIN', 'piwigo.org'); } -define('PHPWG_URL', 'http://'.PHPWG_DOMAIN); +define('PHPWG_URL', 'https://'.PHPWG_DOMAIN); load_language('common.lang', '', array('language' => $language, 'target_charset'=>'utf-8')); load_language('admin.lang', '', array('language' => $language, 'target_charset'=>'utf-8')); @@ -359,11 +356,8 @@ INSERT INTO '.$prefixeTable.'config (param,value,comment) '%gallery_title%'."\n\n".pwg_db_real_escape_string(l10n('Welcome to my photo gallery')).'' ); - // fill languages table - foreach ($languages->fs_languages as $language_code => $fs_language) - { - $languages->perform_action('activate', $language_code); - } + // fill languages table, only activate the current language + $languages->perform_action('activate', $language); // fill $conf global array load_conf_from_db(); @@ -498,7 +492,7 @@ else log_user($user['id'], false); // email notification - if (isset($_POST['send_password_by_mail'])) + if (isset($_POST['send_credentials_by_mail'])) { include_once(PHPWG_ROOT_PATH.'include/functions_mail.inc.php'); @@ -510,7 +504,7 @@ else get_l10n_args('', ''), get_l10n_args('Link: %s', get_absolute_root_url()), get_l10n_args('Username: %s', $admin_name), - get_l10n_args('Password: %s', $admin_pass1), + get_l10n_args('Password: ********** (no copy by email)', ''), get_l10n_args('Email: %s', $admin_mail), get_l10n_args('', ''), get_l10n_args('Don\'t hesitate to consult our forums for any help: %s', PHPWG_URL), diff --git a/install/config.sql b/install/config.sql index 4bdd9d664..14a68ef33 100644 --- a/install/config.sql +++ b/install/config.sql @@ -73,3 +73,5 @@ INSERT INTO piwigo_config (param,value) VALUES ('display_fromto','false'); INSERT INTO piwigo_config (param,value) VALUES ('picture_edit_icon','true'); INSERT INTO piwigo_config (param,value) VALUES ('picture_caddie_icon','true'); INSERT INTO piwigo_config (param,value) VALUES ('picture_representative_icon','true'); +INSERT INTO piwigo_config (param,value) VALUES ('show_mobile_app_banner_in_admin','true'); +INSERT INTO piwigo_config (param,value) VALUES ('show_mobile_app_banner_in_gallery','false'); diff --git a/themes/Sylvia/icon/mimetypes/index.php b/install/db/157-database.php similarity index 60% rename from themes/Sylvia/icon/mimetypes/index.php rename to install/db/157-database.php index 58ea04e8f..7773c85cd 100644 --- a/themes/Sylvia/icon/mimetypes/index.php +++ b/install/db/157-database.php @@ -6,10 +6,16 @@ // | file that was distributed with this source code. | // +-----------------------------------------------------------------------+ -// Recursive call -$url = '../'; -header( 'Request-URI: '.$url ); -header( 'Content-Location: '.$url ); -header( 'Location: '.$url ); -exit(); +if (!defined('PHPWG_ROOT_PATH')) +{ + die('Hacking attempt!'); +} + +$upgrade_description = 'add config parameters to display smart app banner'; + +conf_update_param('show_mobile_app_banner_in_admin', true); +conf_update_param('show_mobile_app_banner_in_gallery', false); + +echo "\n".$upgrade_description."\n"; + ?> diff --git a/install/db/158-database.php b/install/db/158-database.php new file mode 100644 index 000000000..c63667077 --- /dev/null +++ b/install/db/158-database.php @@ -0,0 +1,33 @@ + diff --git a/themes/Sylvia/index.php b/install/db/159-database.php similarity index 64% rename from themes/Sylvia/index.php rename to install/db/159-database.php index 58ea04e8f..affe973de 100644 --- a/themes/Sylvia/index.php +++ b/install/db/159-database.php @@ -6,10 +6,19 @@ // | file that was distributed with this source code. | // +-----------------------------------------------------------------------+ -// Recursive call -$url = '../'; -header( 'Request-URI: '.$url ); -header( 'Content-Location: '.$url ); -header( 'Location: '.$url ); -exit(); +if (!defined('PHPWG_ROOT_PATH')) +{ + die('Hacking attempt!'); +} + +$upgrade_description = 'add index on images.path'; + +$query = ' +ALTER TABLE '. IMAGES_TABLE .' + ADD INDEX `images_i7` (`path`) +;'; +pwg_query($query); + +echo "\n".$upgrade_description."\n"; + ?> diff --git a/install/upgrade_2.10.0.php b/install/upgrade_2.10.0.php new file mode 100644 index 000000000..1fe1d0b84 --- /dev/null +++ b/install/upgrade_2.10.0.php @@ -0,0 +1,111 @@ += 157) // TODO change on each release (first task to run) + { + break; + } + + array_push( + $inserts, + array( + 'id' => $upgrade_id, + 'applied' => CURRENT_DATE, + 'description' => '[migration from 2.10.0 to '.PHPWG_VERSION.'] not applied', // TODO change on each release + ) + ); +} + +if (!empty($inserts)) +{ + mass_inserts( + '`'.UPGRADE_TABLE.'`', + array_keys($inserts[0]), + $inserts + ); +} + +// +-----------------------------------------------------------------------+ +// | Perform upgrades | +// +-----------------------------------------------------------------------+ + +ob_start(); +echo ''; + +for ($upgrade_id = 157; $upgrade_id <= 159; $upgrade_id++) // TODO change on each release +{ + if (!file_exists(UPGRADES_PATH.'/'.$upgrade_id.'-database.php')) + { + continue; + } + + // maybe the upgrade task has already been applied in a previous and + // incomplete upgrade + if (in_array($upgrade_id, $applied)) + { + continue; + } + + unset($upgrade_description); + + echo "\n\n"; + echo '=== upgrade '.$upgrade_id."\n"; + + // include & execute upgrade script. Each upgrade script must contain + // $upgrade_description variable which describe briefly what the upgrade + // script does. + $up_start = get_moment(); + include(UPGRADES_PATH.'/'.$upgrade_id.'-database.php'); + + // notify upgrade (TODO change on each release) + $query = ' +INSERT INTO `'.PREFIX_TABLE.'upgrade` + (id, applied, description) + VALUES + (\''.$upgrade_id.'\', NOW(), \'[migration from 2.10.0 to '.PHPWG_VERSION.', '.get_elapsed_time($up_start, get_moment()).'] '.$upgrade_description.'\') +;'; + pwg_query($query); +} + +echo ''; +ob_end_clean(); + +// now we upgrade from 11.0.0 +// include_once(PHPWG_ROOT_PATH.'install/upgrade_11.0.0.php'); +?> diff --git a/install/upgrade_2.8.0.php b/install/upgrade_2.8.0.php index 54630ee45..16027aa53 100644 --- a/install/upgrade_2.8.0.php +++ b/install/upgrade_2.8.0.php @@ -107,5 +107,5 @@ echo ''; ob_end_clean(); // now we upgrade from 2.9.0 -// include_once(PHPWG_ROOT_PATH.'install/upgrade_2.9.0.php'); +include_once(PHPWG_ROOT_PATH.'install/upgrade_2.9.0.php'); ?> diff --git a/install/upgrade_2.9.0.php b/install/upgrade_2.9.0.php new file mode 100644 index 000000000..dadab91df --- /dev/null +++ b/install/upgrade_2.9.0.php @@ -0,0 +1,111 @@ += 153) // TODO change on each release (first task to run) + { + break; + } + + array_push( + $inserts, + array( + 'id' => $upgrade_id, + 'applied' => CURRENT_DATE, + 'description' => '[migration from 2.9.0 to '.PHPWG_VERSION.'] not applied', // TODO change on each release + ) + ); +} + +if (!empty($inserts)) +{ + mass_inserts( + '`'.UPGRADE_TABLE.'`', + array_keys($inserts[0]), + $inserts + ); +} + +// +-----------------------------------------------------------------------+ +// | Perform upgrades | +// +-----------------------------------------------------------------------+ + +ob_start(); +echo ''; + +for ($upgrade_id = 153; $upgrade_id <= 156; $upgrade_id++) // TODO change on each release +{ + if (!file_exists(UPGRADES_PATH.'/'.$upgrade_id.'-database.php')) + { + continue; + } + + // maybe the upgrade task has already been applied in a previous and + // incomplete upgrade + if (in_array($upgrade_id, $applied)) + { + continue; + } + + unset($upgrade_description); + + echo "\n\n"; + echo '=== upgrade '.$upgrade_id."\n"; + + // include & execute upgrade script. Each upgrade script must contain + // $upgrade_description variable which describe briefly what the upgrade + // script does. + $up_start = get_moment(); + include(UPGRADES_PATH.'/'.$upgrade_id.'-database.php'); + + // notify upgrade (TODO change on each release) + $query = ' +INSERT INTO `'.PREFIX_TABLE.'upgrade` + (id, applied, description) + VALUES + (\''.$upgrade_id.'\', NOW(), \'[migration from 2.9.0 to '.PHPWG_VERSION.', '.get_elapsed_time($up_start, get_moment()).'] '.$upgrade_description.'\') +;'; + pwg_query($query); +} + +echo ''; +ob_end_clean(); + +// now we upgrade from 2.10.0 +include_once(PHPWG_ROOT_PATH.'install/upgrade_2.10.0.php'); +?> diff --git a/language/af_ZA/admin.lang.php b/language/af_ZA/admin.lang.php index bb5390ef6..41e4ca9aa 100644 --- a/language/af_ZA/admin.lang.php +++ b/language/af_ZA/admin.lang.php @@ -244,6 +244,7 @@ $lang['Notify administrators when a comment is'] = 'Stel administrateurs in kenn $lang['Opacity'] = 'Deursigtigheid'; $lang['Original Size'] = 'Oorspronklike grootte'; $lang['Original file : %s'] = 'Oorspronklike lêer: %s'; +$lang['Piwigo for Android'] = 'Piwigo vir Android'; $lang['Piwigo for iOS (iPhone, iPad, iPod Touch)'] = 'Piwigo vir iOS (iPhone, iPad, iPod Touch)10217569'; $lang['Posted %s on %s'] = 'Gepos %s op %s'; $lang['Select a file'] = 'Kies \'n lêer'; @@ -536,7 +537,7 @@ $lang['none'] = 'geen'; $lang['nothing'] = 'niks'; $lang['Modify information'] = 'Verander inligting'; $lang['No photo selected, %d photos in current set'] = 'Geen foto gekies, %d fotos in huidige stel'; -$lang['No photo selected, no action possible.'] = 'Geen foto gekies, geen aksie moontlik.'; +$lang[' '] = 'Geen foto gekies, geen aksie moontlik.'; $lang['No results'] = 'Geen resultate'; $lang['Notification'] = 'Kennisgewing'; $lang['Obsolete Plugins'] = 'Verouderde invoegsels'; @@ -805,6 +806,7 @@ $lang['Give write access (chmod 777) to "%s" directory at the root of your Piwig $lang['Information data registered in database'] = 'Inligting aangeteken in databasis'; $lang['Invert'] = 'Keer om'; $lang['Language has been successfully installed'] = 'Taal is suksesvol geïnstalleer'; +$lang['Piwigo for Android application empowers you to connect your Android phone or table to your Piwigo gallery, create some albums and upload several photos at once.'] = 'Piwigo vir Android toepassing stel jou in staat om met jou Android foon of tablet aan jou Piwigo gallery te verbind, albums te skep en fotos op te laai.'; $lang['Piwigo for iOS application empowers you to connect to your Piwigo gallery from your iPhone, iPad or iPod Touch, create some albums and upload several photos at once.'] = 'Piwigo vir iOS toepassing stel jou in staat om met jou iPhone, iPad of iPad touch aan jou Piwigo gallery te verbind, albums te skep en fotos op te laai.'; $lang['Adobe Photoshop Lightroom is a photography software designed to manage large quantities of digital images and doing post production work.'] = 'Adobe Photoshop Lightroom is fotografie sagteware wat ontwerp is om groot hoeveelhede digitale beelde te administreer en postproduksie werk te doen.'; $lang['Aperture is a powerful tool to refine images and manage massive libraries on Mac.'] = 'Aperture is \'n kragtige pakket om beelde te verwerk en groot biblioteke op Mac te hanteer.'; @@ -905,7 +907,7 @@ $lang['Manage the members'] = 'Administreer lede'; $lang['Merge selected groups'] = 'Versmelt gekose groepe'; $lang['Minimum height'] = 'Minimum hoogte'; $lang['Minimum width'] = 'Minimum wydte'; -$lang['No group selected, no action possible.'] = 'Geen groep gekies, geen aksies moontlik'; +$lang['No groups selected, no actions possible.'] = 'Geen groep gekies, geen aksies moontlik'; $lang['No members to manage'] = 'Geen lede'; $lang['Number of albums per page'] = 'Aantal albums per blad'; $lang['Panorama'] = 'Panorama'; @@ -944,7 +946,7 @@ $lang['No matching user found'] = 'Geen passende gebruiker gevind'; $lang['No recipient selected'] = 'Geen ontvanger gekies'; $lang['No user is permitted to see this private album'] = 'Geen gebruiker word toegelaat om \'n privaat album te sien nie'; $lang['No user selected of %d users'] = 'Geen gebruiker uit %d gebruikers gekies'; -$lang['No user selected, no action possible.'] = 'Geen gebuiker gekies, geen aksie moontlik.'; +$lang['No users selected, no actions possible.'] = 'Geen gebuiker gekies, geen aksie moontlik.'; $lang['Open user details'] = 'Vertoon gebruikersinligting'; $lang['Orphans'] = 'Wese'; $lang['Password updated'] = 'Wagwoord opgedateer'; @@ -968,4 +970,4 @@ $lang['General'] = 'Algemeen'; $lang['Last visit on %s, %s.'] = 'Laaste besoek op %s, %s.'; $lang['Mail address is mandatory for registration'] = 'Posadres is verpligtend vir registrasie'; $lang['Mail theme'] = 'Postema'; -$lang['%d of %d users selected'] = '%d van %d gebruikers gekies'; \ No newline at end of file +$lang['%d of %d users selected'] = '%d van %d gebruikers gekies'; diff --git a/language/ar_SA/admin.lang.php b/language/ar_SA/admin.lang.php index e4041f17b..7624bee1e 100644 --- a/language/ar_SA/admin.lang.php +++ b/language/ar_SA/admin.lang.php @@ -664,7 +664,7 @@ $lang['Refresh photo set'] = 'ØØ¯Ø« مجموعة الصور'; $lang['The whole page'] = 'ØµÙØØ© كاملة'; $lang['The whole set'] = 'مجموعة كلمة'; $lang['No photo in the current set.'] = 'لا صور ÙÙŠ المجموعة Ø§Ù„ØØ§Ù„ية'; -$lang['No photo selected, no action possible.'] = 'لا توجد صور Ù…ØØ¯Ø¯Ø© ØŒ أي إجراء ممكن'; +$lang['No photos selected, no actions possible.'] = 'لا توجد صور Ù…ØØ¯Ø¯Ø© ØŒ أي إجراء ممكن'; $lang['Choose an action'] = 'اختر اجراء'; $lang['remove author'] = 'Ø§ØØ°Ù الكاتب'; $lang['Type here the author name'] = 'أكتب هنا أسم الكاتب '; @@ -781,6 +781,7 @@ $lang['Not cropped correctly?'] = 'الإقتطاع غير صØÙŠØØŸ'; $lang['Notify administrators when a comment is'] = 'أبلغ المدير عندالتعليق'; $lang['Original Size'] = 'Ø§Ù„ØØ¬Ù… الأصلي'; $lang['pending validation'] = 'ÙÙŠ إنتظار التصريØ'; +$lang['Piwigo for Android'] = 'Piwigo for Android'; $lang['Piwigo for iOS (iPhone, iPad, iPod Touch)'] = 'Piwigo for iOS (iPhone, iPad, iPod Touch)'; $lang['Piwigo Publish plugin for Lightroom'] = 'Piwigo Ø£Ø¶Ø§ÙØ© للنشر بوا سطة برنامج Lightroom'; $lang['Predefined filter'] = 'Ù…ÙØ±Ø´Ø Ù…ÙØØ¯Ø¯ Ù…ÙØ³Ø¨Ù‚اً'; @@ -829,6 +830,7 @@ $lang['Select groups...'] = 'ØªØØ¯ÙŠØ¯ مجموعات ..'; $lang['Select users...'] = 'ØªØØ¯ÙŠØ¯ المستخدمين'; $lang['There is no group in this gallery.'] = 'لا توجد مجموعه لهذا الألبوم'; $lang['visitors need to login and have the appropriate permissions to see this album'] = 'الزوار ÙÙŠ ØØ§Ø¬Ù‡ لتسجيل الدخول او Ø§Ù„ØªØµØ±ÙŠØ ØØªÙ‰ يمكنهم مشاهده هذا الألبوم'; +$lang['Piwigo for Android application empowers you to connect your Android phone or table to your Piwigo gallery, create some albums and upload several photos at once.'] = 'Piwigo for Android تطبيقات للاجهزه اللمسيه التي تعمل علي نظام آندرويذ ØŒ ÙŠØªÙŠØ Ù„Ù‡Ø°Ù‡ الاجهزه Ø±ÙØ¹ الصور Ùˆ انشاء الآلبومات'; $lang['Piwigo for iOS application empowers you to connect to your Piwigo gallery from your iPhone, iPad or iPod Touch, create some albums and upload several photos at once.'] = 'Piwigo for iOS تطبيقات للاجهزه اللمسيه الخاصة بشركه أبل ،آيÙون ØŒ آيباد Ùˆ آيبود ØŒ تطبيق ÙŠØªÙŠØ Ù„Ù‡Ø°Ù‡ الاجهزه الاتصال بمعرضك الخاص Ùˆ Ø±ÙØ¹ الصور Ùˆ انشاء Ùˆ الألبومات '; $lang['Adobe Photoshop Lightroom is a photography software designed to manage large quantities of digital images and doing post production work.'] = 'أدوبي Ùوتوشوب لايتروم هو برنامج التصوير المصممة لإدارة كميات كبيرة من الصور الرقمية والقيام بأعمال ما بعد الإنتاج.'; $lang['Piwigo publish plugin for Shotwell'] = 'Ø§Ø¶Ø§ÙØ© النشر ÙÙŠ Piwigo الخاصه ببرنامج Shotwell'; @@ -915,7 +917,7 @@ $lang['This group will be unset to default'] = 'لم يتم استخدام هذ $lang['Ratio'] = 'نبسة'; $lang['Please select at least two groups'] = 'ÙØ¶Ù„ا Ù‹ لا أمرا ٠أختر Ùيما لا يقل عن مجموعتين '; $lang['No members to manage'] = 'لا يوجد أعضاد لإدارتهم'; -$lang['No group selected, no action possible.'] = 'لم يتم ØªØØ¯ÙŠØ¯ أي مجموعة ØŒ لا تتوقع Ø§Ù„ØªÙØ§Ø¹Ù„'; +$lang['No groups selected, no actions possible.'] = 'لم يتم ØªØØ¯ÙŠØ¯ أي مجموعة ØŒ لا تتوقع Ø§Ù„ØªÙØ§Ø¹Ù„'; $lang['Merge selected groups'] = 'إدارة المجموعة المختارة'; $lang['between %d and %d pixels'] = 'ما بين %d Ùˆ %d بكسل'; $lang['between %.2f and %.2f'] = 'ما بين %.2f Ùˆ %.2f '; @@ -934,7 +936,7 @@ $lang['Registered on %s, %s.'] = 'Ø³ÙØ¬Ù‘ÙÙ„ ÙÙŠ%s, %s'; $lang['Change username'] = 'تغيير اسم المستخدم'; $lang['Loading...'] = 'تØÙ…يل ...'; $lang['No matching user found'] = 'لم يتم العثور على مستخدم مطابق'; -$lang['No user selected, no action possible.'] = 'لم يتم إختيار المستخدم، أي إجراء غير ممكن'; +$lang['No users selected, no actions possible.'] = 'لم يتم إختيار المستخدم، أي إجراء غير ممكن'; $lang['Password updated'] = 'كلمة السر تم ØªØØ¯ÙŠØ«Ù‡Ø§'; $lang['Update user'] = 'ØªØØ¯ÙŠØ« المستعمل'; $lang['Users modified'] = 'المستخدمين تم تعديلهم'; diff --git a/language/bg_BG/admin.lang.php b/language/bg_BG/admin.lang.php index 13b3823bd..bcc1151a9 100644 --- a/language/bg_BG/admin.lang.php +++ b/language/bg_BG/admin.lang.php @@ -402,6 +402,7 @@ $lang['Private'] = 'Личен'; $lang['Position'] = 'ПозициÑ'; $lang['Plugins which need upgrade'] = 'Ð Ð°Ð·ÑˆÐ¸Ñ€ÐµÐ½Ð¸Ñ Ð·Ð° обновÑване'; $lang['Piwigo version'] = 'Piwigo верÑиÑ'; +$lang['Piwigo for Android'] = 'Piwigo за Android'; $lang['Piwigo configuration'] = 'Piwigo конфигурациÑ'; $lang['Piwigo Administration'] = 'Piwigo ÐдминиÑтриране'; $lang['Piwigo Update'] = 'Piwigo ъпдейт'; @@ -571,6 +572,7 @@ $lang['Type here the title'] = 'Въведете заглавието тук'; $lang['Type here the author name'] = 'Въведете името на автора тук'; $lang['This site already exists'] = 'Този Ñайт вече ÑъщеÑтвува'; $lang['leave'] = 'оÑтавÑне'; +$lang['Piwigo for Android application empowers you to connect your Android phone or table to your Piwigo gallery, create some albums and upload several photos at once.'] = 'Piwigo за Android приложение ви позволÑва да Ñвържете Ð²Ð°ÑˆÐ¸Ñ Android телефон или таблет Ñ Ð³Ð°Ð»ÐµÑ€Ð¸Ñта, да Ñъздавате албуми и да качване нÑколко Ñнимки наведнъж.'; $lang['Piwigo for iOS application empowers you to connect to your Piwigo gallery from your iPhone, iPad or iPod Touch, create some albums and upload several photos at once.'] = 'Piwigo за iOS EM> приложение ви дава възможноÑÑ‚ да Ñе Ñвържете към Ð³Ð°Ð»ÐµÑ€Ð¸Ñ Ð¾Ñ‚ Ð²Ð°ÑˆÐ¸Ñ iPhone, iPad или iPod Touch, да Ñъздаване албуми и да качване нÑколко Ñнимки наведнъж.'; $lang['Adobe Photoshop Lightroom is a photography software designed to manage large quantities of digital images and doing post production work.'] = 'Adobe Photoshop Lightroom е фотографÑки Ñофтуер, предназначен за управление на големи количеÑтва цифрови Ð¸Ð·Ð¾Ð±Ñ€Ð°Ð¶ÐµÐ½Ð¸Ñ Ð¸ публикуването им Ñлед редактирането.'; $lang['An error has occured during extract. Please check files permissions of your piwigo installation.Click here to show log error.'] = 'Възникнала е грешка по време на извличането. ÐœÐ¾Ð»Ñ Ð¿Ñ€Ð¾Ð²ÐµÑ€ÐµÑ‚Ðµ правата за файловете в инÑталациÑта.Кликнете тук за да видите грешката.'; @@ -727,9 +729,9 @@ $lang['Metadata synchronized from file'] = 'Метаданните Ñинхро $lang['Hoverbox display'] = 'Показване на каре при поÑочване Ñ Ð¼Ð¸ÑˆÐºÐ°'; $lang['Impossible to activate this theme, the parent theme is missing: %s'] = 'Тази тема не може да бъде активирана, тъй като родителÑката тема липÑва: %s'; $lang['No user to send notifications by mail.'] = 'ÐÑма потребител, който да бъде уведомен Ñ Ð¸Ð¼ÐµÐ¹Ð».'; -$lang['No photo selected, no action possible.'] = 'Ðе е избрана Ñнимка, не може да бъде предприето дейÑтвие'; +$lang['No photos selected, no actions possible.'] = 'Ðе е избрана Ñнимка, не може да бъде предприето дейÑтвие'; $lang['No photo selected, %d photos in current set'] = 'Ðе е избрана Ñнимка, %d Ñнимки в Ñ‚ÐµÐºÑƒÑ‰Ð¸Ñ Ð½Ð°Ð±Ð¾Ñ€'; -$lang['No group selected, no action possible.'] = 'Ðе е избрана група, не може да бъде предприето дейÑтвие.'; +$lang['No groups selected, no actions possible.'] = 'Ðе е избрана група, не може да бъде предприето дейÑтвие.'; $lang['Images manual order was saved'] = 'Ръчно избраниÑÑ‚ ред е запазен'; $lang['New parent album'] = 'Ðов родителÑки албум'; $lang['No destination tag selected'] = 'Ðе е избран етикет'; @@ -937,7 +939,7 @@ $lang['Showing %s to %s of %s users'] = 'Показва %s до %s от %s по $lang['Show %s users'] = 'Показани %s потребители'; $lang['Registered on %s, %s.'] = 'РегиÑтриран на %s, %s.'; $lang['Password updated'] = 'Паролата е обновена'; -$lang['No user selected, no action possible.'] = 'ÐÑма избран потребител, не е възможна операциÑ.'; +$lang['No users selected, no actions possible.'] = 'ÐÑма избран потребител, не е възможна операциÑ.'; $lang['No user selected of %d users'] = 'ÐÑма избран потребител от %d потребители'; $lang['No matching user found'] = 'ÐÑма намерено Ñъвпадение по потребител'; $lang['Loading...'] = 'Зареждане...'; @@ -982,7 +984,7 @@ $lang['Time has come to update your Piwigo with version %s, go to %s'] = 'Вре $lang['Share / Send your photos directly from your Mac Os X (10.10 and following) to Piwigo'] = 'Споделете/Изпратете Ñнимки директно от Ð²Ð°ÑˆÐ¸Ñ macOS (10.10 или по-нова) до Piwigo'; $lang['Running on an up-to-date Piwigo is important for security.'] = 'Ъпдейтване до поÑледната верÑÐ¸Ñ Ð½Ð° Piwigo е нужно Ñ Ñ†ÐµÐ» ÑигурноÑÑ‚.'; $lang['Piwigo %s is available, please update'] = 'Piwigo %s е наличен, Ð¼Ð¾Ð»Ñ ÑŠÐ¿Ð´ÐµÐ¹Ñ‚Ð²Ð°Ð¹Ñ‚Ðµ.'; -$lang['No tag selected, no action possible.'] = 'ÐÑма избран етикет, невъзможно дейÑтвие.'; +$lang['No tags selected, no actions possible.'] = 'ÐÑма избран етикет, невъзможно дейÑтвие.'; $lang['No filter on album. Select one or type to search'] = 'Ðе филтрай по албум. Избери Ñамо вид търÑене'; $lang['It only takes a few clicks.'] = 'Ще отнеме нÑколко клика.'; $lang['delete album and the %d orphan photos'] = 'изтриване на албум и %d Ñнимки без албум'; @@ -994,4 +996,4 @@ $lang['Delete album "%s".'] = 'Изтриване на албум "%s".'; $lang['Confirm deletion'] = 'Потвърдете изтриването'; $lang['Dashboard'] = 'Табло'; $lang['Select tags'] = 'Избор на етикети'; -$lang['checksum'] = 'контролно чиÑло'; \ No newline at end of file +$lang['checksum'] = 'контролно чиÑло'; diff --git a/language/br_FR/admin.lang.php b/language/br_FR/admin.lang.php index baed77c93..2f51ad66e 100644 --- a/language/br_FR/admin.lang.php +++ b/language/br_FR/admin.lang.php @@ -147,6 +147,7 @@ $lang['Add tags'] = 'Lakaat merkerioù ouzhpenn'; $lang['Add to caddie'] = 'Lakaat er baner'; $lang['%s value is not correct file because exif are not supported'] = 'N\'eo ket reizh talvoud %s peogwir n\'eo ket skoret exif'; $lang['Piwigo for iOS application empowers you to connect to your Piwigo gallery from your iPhone, iPad or iPod Touch, create some albums and upload several photos at once.'] = 'Gant arload Piwigo evit iOS e vo posubl deoc\'h kevreañ hoc\'h iPhone, iPad pe iPod Touch ouzh ho palier Piwigo, krouiñ rummadoù hag ezkargañ ur bern luc\'hskeudennoù en ur wech.'; +$lang['Piwigo for Android application empowers you to connect your Android phone or table to your Piwigo gallery, create some albums and upload several photos at once.'] = 'Gant arload Piwigo evit Android e vo posubl deoc\'h kevreañ ho pellgomzer pe tablezenn ouzh ho palier Piwigo, krouiñ rummadoù hag ezkargañ ur bern luc\'hskeudennoù en ur wech.'; $lang['+ Add an upload box'] = '+ Lakaat ur voest-ezkargañ'; $lang[', click on'] = ', klikit war'; $lang['(this tag will be deleted)'] = '(ar merker-mañ a vo dilemet)'; @@ -456,6 +457,7 @@ $lang['Instructions to use Piwigo'] = 'Kemennoù evit implij Piwigo'; $lang['Piwigo Uploader'] = 'Ezkarger Piwigo'; $lang['Piwigo export plugin for Aperture'] = 'Lugant ezporzhiañ Piwigo evit Aperture'; $lang['Piwigo export plugin for iPhoto'] = 'Lugant ezporzhiañ Piwigo evit iPhoto'; +$lang['Piwigo for Android'] = 'Piwigo evit Android'; $lang['Piwigo for iOS (iPhone, iPad, iPod Touch)'] = 'Piwigo evit iOS (iPhone, iPad, iPod Touch)'; $lang['Piwigo publish plugin for Shotwell'] = 'Lugant embann Piwigo evit Shotwell'; $lang['Piwigo publish plugin for digiKam'] = 'Lugant embann Piwigo evit digiKam'; @@ -709,9 +711,9 @@ $lang['No group is permitted to see this private album'] = 'Ne c\'hell strollad $lang['No user is permitted to see this private album'] = 'Ne c\'hell implijer ebet gwelet ar rummad prevez-se.'; $lang['No file was uploaded'] = 'Restr ebet pellkarget'; $lang['Upload in progress'] = 'Oc\'h ezkargañ'; -$lang['No group selected, no action possible.'] = 'Strollad ebet diuzet, obererezh ebet d\'ober.'; -$lang['No photo selected, no action possible.'] = 'Luc\'hskeudenn ebet diuzet, obererezh ebet d\'ober.'; -$lang['No user selected, no action possible.'] = 'Implijer ebet diuzet, obererezh ebet d\'ober.'; +$lang['No groups selected, no actions possible.'] = 'Strollad ebet diuzet, obererezh ebet d\'ober.'; +$lang['No photos selected, no actions possible.'] = 'Luc\'hskeudenn ebet diuzet, obererezh ebet d\'ober.'; +$lang['No users selected, no actions possible.'] = 'Implijer ebet diuzet, obererezh ebet d\'ober.'; $lang['No destination tag selected'] = 'Merker pal ebet diuzet'; $lang['No and unlock sub-albums'] = 'Ket ha dibrennañ iz-rummadoù'; $lang['Unlocked'] = 'Dibrennet'; @@ -980,7 +982,7 @@ $lang['Running on an up-to-date Piwigo is important for security.'] = 'Pouezus e $lang['(determined from photos)'] = '(resisaet eus luc\'hskeudennoù)'; $lang['Time has come to update your Piwigo with version %s, go to %s'] = 'Poent eo hizivaat ho Piwigo gant stumm %s, kit da %s'; $lang['Piwigo %s is available, please update'] = 'Piwigo %s a zo hegerzh, hizivait mar plij'; -$lang['No tag selected, no action possible.'] = 'Merker ebet diuzet, obererezh ebet d\'ober.'; +$lang['No tags selected, no actions possible.'] = 'Merker ebet diuzet, obererezh ebet d\'ober.'; $lang['Select tags'] = 'Diuzit ar merkerioù'; $lang['No filter on album. Select one or type to search'] = 'Sil ebet war ar rummad, diuzit unan pe skrivit evit klask'; $lang['checksum'] = 'sammad kontroll'; @@ -1003,4 +1005,4 @@ $lang['Welcome!'] = 'Degemer mat!'; $lang['or'] = 'pe'; $lang['Display album date period'] = 'Diskouez paderezh an deiziadoù e pep rummad, dre skouer « eus an 12 betek ar 15 a viz Gouere 2018 »'; $lang['Piwigo requires an album to add photos.'] = 'Ur rummad en deus ezhom Piwigo da lakaat luc\'hskeudennoù ouzhpenn.'; -$lang['Display category date'] = 'Diskouez deiziat ar rummad'; \ No newline at end of file +$lang['Display category date'] = 'Diskouez deiziat ar rummad'; diff --git a/language/ca_ES/admin.lang.php b/language/ca_ES/admin.lang.php index 85df50b28..441d3f6b0 100644 --- a/language/ca_ES/admin.lang.php +++ b/language/ca_ES/admin.lang.php @@ -653,7 +653,7 @@ $lang['Refresh photo set'] = 'Actualitza les fotos del conjunt'; $lang['The whole page'] = 'La pà gina sencera'; $lang['The whole set'] = 'Tot el conjunt'; $lang['No photo in the current set.'] = 'No hi ha fotos en aquest conjunt.'; -$lang['No photo selected, no action possible.'] = 'No es pot realitzar cap acció ja que no hi ha cap foto seleccionada.'; +$lang['No photos selected, no actions possible.'] = 'No es pot realitzar cap acció ja que no hi ha cap foto seleccionada.'; $lang['Choose an action'] = 'Seleccioneu una acció'; $lang['remove author'] = 'elimina l\'autor'; $lang['Type here the author name'] = 'Escriviu aquà el nom de l\'autor'; @@ -783,6 +783,7 @@ $lang['Original Size'] = 'Mida original'; $lang['Permission granted for groups'] = 'Permisos atorgats a grups'; $lang['Permission granted for users'] = 'PermÃs atorgat a usuaris'; $lang['Photo name'] = 'Nom de la foto'; +$lang['Piwigo for Android'] = 'Piwigo per Android'; $lang['Piwigo for iOS (iPhone, iPad, iPod Touch)'] = 'Piwigo per iOS (iPhone, iPad, iPod Touch)'; $lang['Predefined filter'] = 'Filtre predeterminat'; $lang['Resize after upload'] = 'Redimensionar després de penjar la foto al servidor'; @@ -815,6 +816,7 @@ $lang['registered users'] = 'usuaris registrats'; $lang['%d group'] = '%d grup'; $lang['%d groups'] = '%d grups'; $lang['%u users have automatic permission because they belong to a granted group.'] = '%u usuaris han obtingut permisos automà ticament perquè pertanyen a un grup que li han atorgat el permÃs.'; +$lang['Piwigo for Android application empowers you to connect your Android phone or table to your Piwigo gallery, create some albums and upload several photos at once.'] = 'Piwigo per Android Aquesta aplicació us permet connectar a la vostra galeria Piwigo des d\'un dispositiu Android, crear nous à lbums i penjar và ries fotos a la vegada.'; $lang['Piwigo for iOS application empowers you to connect to your Piwigo gallery from your iPhone, iPad or iPod Touch, create some albums and upload several photos at once.'] = 'Piwigo per iOS Aquesta aplicació us permet connectar a la vostra galeria Piwigo des d\'un iPhone, iPad o iPod Touch, crear à lbums i penjar và ries fotos a la vegada.'; $lang['Add group'] = 'Afegeix grup'; $lang['Adobe Photoshop Lightroom is a photography software designed to manage large quantities of digital images and doing post production work.'] = 'Adobe Photoshop Lightroom és un programari de fotografia dissenyat per a gestionar grans quantitats d\'imatges digitals i realitzar tasques de postproducció.'; @@ -923,7 +925,7 @@ $lang['between %.2f and %.2f'] = 'entre %.2f i %.2f'; $lang['between %d and %d pixels'] = 'entre %d i %d pÃxels'; $lang['Duplicate'] = 'Duplica'; $lang['Merge selected groups'] = 'Fusiona els grups seleccionats'; -$lang['No group selected, no action possible.'] = 'No hi ha cap grup seleccionat, l\'acció no s\'ha pogut dur a terme.'; +$lang['No groups selected, no actions possible.'] = 'No hi ha cap grup seleccionat, l\'acció no s\'ha pogut dur a terme.'; $lang['No members to manage'] = 'No existeixen membres per a gestionar'; $lang['Please select at least two groups'] = 'Heu de selecciona almenys dos grups'; $lang['Rename'] = 'Canvia de nom'; @@ -936,7 +938,7 @@ $lang['The picture dimensions will be reduced to %dx%d pixels.'] = 'Es reduiran $lang['Resize after upload disabled due to the use of GD as graphic library'] = 'Redimensionar després de penjar la foto al servidor deshabilitat degut a l\'ús de la llibreria grà fica GD'; $lang['Select at least one tag'] = 'Seleccioneu almenys una etiqueta'; $lang['Last visit on %s, %s.'] = 'L\'última visita el %s, %s.'; -$lang['No user selected, no action possible.'] = 'No hi ha usuaris seleccionats, l\'acció no ha estat possible'; +$lang['No users selected, no actions possible.'] = 'No hi ha usuaris seleccionats, l\'acció no ha estat possible'; $lang['Registered on %s, %s.'] = 'Registrat el %s, %s'; $lang['Show %s users'] = 'Mostra %s usuaris'; $lang['Users modified'] = 'Usuaris que s\'han modificat'; @@ -1001,7 +1003,7 @@ $lang['delete album and all %d photos, even the %d associated to other albums'] $lang['Dashboard'] = 'Consola'; $lang['Delete album "%s" and its %d sub-albums.'] = 'Elimina l\'à lbum "%s" i els seus %d sub-à lbums'; $lang['No filter on album. Select one or type to search'] = 'No hi ha cap filtre a l\'à lbum, Seleccioneu-ne un o escriviu per cercar-ne'; -$lang['No tag selected, no action possible.'] = 'No s\'ha seleccionat cap etiqueta i no es pot realitzar cap acció'; +$lang['No tags selected, no actions possible.'] = 'No s\'ha seleccionat cap etiqueta i no es pot realitzar cap acció'; $lang['Storage used'] = 'Emmagatzemament utilitzat'; $lang['checksum'] = 'suma de verificació'; $lang['%d checksums were added'] = 's\'han afegit %d checksums'; @@ -1018,4 +1020,4 @@ $lang['Visit'] = 'Visiteu'; $lang['Welcome!'] = 'Benvinguts!'; $lang['With no checksum'] = 'Sense checksum'; $lang['checksums to add'] = 'Checksums per afegir'; -$lang['or'] = 'o'; \ No newline at end of file +$lang['or'] = 'o'; diff --git a/language/cs_CZ/admin.lang.php b/language/cs_CZ/admin.lang.php index dd95cd2c1..3aa2a1a9e 100644 --- a/language/cs_CZ/admin.lang.php +++ b/language/cs_CZ/admin.lang.php @@ -669,7 +669,7 @@ $lang['Refresh photo set'] = 'Obnovit množinu fotografiÃ'; $lang['The whole page'] = 'Celou stránku'; $lang['The whole set'] = 'Celou množinu'; $lang['No photo in the current set.'] = 'Žádná fotografie v aktuálnà množinÄ›.'; -$lang['No photo selected, no action possible.'] = 'Žádná fotografie nenà vybrána, žádná akce nenà možná.'; +$lang['No photos selected, no actions possible.'] = 'Žádná fotografie nenà vybrána, žádná akce nenà možná.'; $lang['Choose an action'] = 'Vyberte akci'; $lang['remove author'] = 'smazat autora'; $lang['Type here the author name'] = 'NapiÅ¡te zde jmého autora'; @@ -819,6 +819,8 @@ $lang['Applications'] = 'Aplikace'; $lang['Available on'] = 'K dispozici na'; $lang['Piwigo for iOS (iPhone, iPad, iPod Touch)'] = 'Piwigo pro iOS (iPhone, iPad, iPod Touch)'; $lang['Piwigo for iOS application empowers you to connect to your Piwigo gallery from your iPhone, iPad or iPod Touch, create some albums and upload several photos at once.'] = 'Piwigo pro iOS aplikace vám dává možnost se pÅ™ipojit do galerie Piwigo z vaÅ¡eho iPhone, iPad nebo iPod Touch, vytvoÅ™it nÄ›jaké alba a nahrávat vÃce fotografià najednou.'; +$lang['Piwigo for Android'] = 'Piwigo pro Android'; +$lang['Piwigo for Android application empowers you to connect your Android phone or table to your Piwigo gallery, create some albums and upload several photos at once.'] = 'Piwigo pro Android aplikace vám dává možnost se pÅ™ipojit do galerie Piwigo z vaÅ¡eho Android telefonu nebo tabletu, vytvoÅ™it nÄ›jaké alba a nahrávat vÃce fotografià najednou.'; $lang['Piwigo Publish plugin for Lightroom'] = 'Piwigo PublikaÄnà plugin pro Lightroom'; $lang['Adobe Photoshop Lightroom is a photography software designed to manage large quantities of digital images and doing post production work.'] = 'Adobe Photoshop Lightroom je fotografický software urÄený ke správÄ› velkého množstvà digitálnÃch fotografià a postprodukÄnÃch pracÃ.'; $lang['The Piwigo publish Plug-in allows you to export and synchronize photos from Lightroom directly to your Piwigo photo gallery.'] = 'Piwigo publikaÄnà Plug-in umožňuje export a synchronizaci fotek z Lightroom pÅ™Ãmo do vašà Piwigo fotogalerie.'; @@ -916,7 +918,7 @@ $lang['between %d and %d pixels'] = 'mezi %d a %d pixely'; $lang['Duplicate'] = 'Duplikovat'; $lang['Manage the members'] = 'Organizovat Äleny'; $lang['Merge selected groups'] = 'Spojit vybrané skupiny'; -$lang['No group selected, no action possible.'] = 'Nenà vybrána žádná skupina, nenà možná řádná akce'; +$lang['No groups selected, no actions possible.'] = 'Nenà vybrána žádná skupina, nenà možná řádná akce'; $lang['No members to manage'] = 'Žádnà Älenové k organizovánÃ'; $lang['Please select at least two groups'] = 'ProsÃm vyberte nejménÄ› dvÄ› skupiny'; $lang['Rename'] = 'PÅ™ejmenovat'; @@ -940,7 +942,7 @@ $lang['General'] = 'VÅ¡eobecné'; $lang['Last visit on %s, %s.'] = 'Poslednà návÅ¡tÄ›va v %s, %s.'; $lang['Loading...'] = 'Nahrává se...'; $lang['No matching user found'] = 'Uživatel odpovÃdajÃcà dotazu hledánà nenalezen'; -$lang['No user selected, no action possible.'] = 'Nebyl zvolen uživatel, akce nenà možná.'; +$lang['No users selected, no actions possible.'] = 'Nebyl zvolen uživatel, akce nenà možná.'; $lang['Password updated'] = 'Heslo aktualizováno'; $lang['Registered on %s, %s.'] = 'Zaregistrován v %s, %s.'; $lang['Show %s users'] = 'Zobraz %s uživatele'; @@ -989,7 +991,7 @@ $lang['checksum'] = 'kontrolnà souÄet'; $lang['Storage used'] = 'Využità úložiÅ¡tÄ›'; $lang['Select tags'] = 'Vyberte Å¡tÃtky'; $lang['Piwigo %s is available, please update'] = 'Piwigo %s je k dispozici, prosÃm aktualizujte'; -$lang['No tag selected, no action possible.'] = 'Nenà vybrán žádný Å¡tÃtek, nenà možná žádná akce.'; +$lang['No tags selected, no actions possible.'] = 'Nenà vybrán žádný Å¡tÃtek, nenà možná žádná akce.'; $lang['It only takes a few clicks.'] = 'Trvá to jen nÄ›kolik kliknutÃ.'; $lang['First photo added'] = 'Prvnà fotka pÅ™idána'; $lang['Delete album "%s".'] = 'Smazat album "%s".'; @@ -1010,4 +1012,4 @@ $lang['With no checksum'] = 'Bez kontroly'; $lang['or'] = 'nebo '; $lang['Deletion in progress'] = 'Odstraňuji...'; $lang['Create a first album'] = 'VytvoÅ™it prvnà album'; -$lang['... or hide this link'] = '... nebo skrýt tento odkaz'; \ No newline at end of file +$lang['... or hide this link'] = '... nebo skrýt tento odkaz'; diff --git a/language/da_DK/admin.lang.php b/language/da_DK/admin.lang.php index 7745c33b7..34bd3bc27 100644 --- a/language/da_DK/admin.lang.php +++ b/language/da_DK/admin.lang.php @@ -636,7 +636,7 @@ $lang['new'] = 'ny'; $lang['No file was uploaded'] = 'Ingen filer blev uploadet'; $lang['No photo in the current set.'] = 'Ingen fotografier i det aktuelle sæt.'; $lang['No photo selected, %d photos in current set'] = 'Ingen fotografier valgt, %d fotografier i nuværende sæt'; -$lang['No photo selected, no action possible.'] = 'Ingen fotografier valgt, ingen mulige handlinger.'; +$lang['No photos selected, no actions possible.'] = 'Ingen fotografier valgt, ingen mulige handlinger.'; $lang['No results'] = 'Ingen resultater'; $lang['on the %d selected photos'] = 'pÃ¥ de %d valgte fotografier'; $lang['Predefined filter'] = 'Foruddefineret filter'; @@ -828,6 +828,7 @@ $lang['Automatic sort order'] = 'Automatisk sorteringsrækkefølge'; $lang['List'] = 'Liste'; $lang['Piwigo export plugin for Aperture'] = 'Piwigo-eksportplugin til Aperture'; $lang['Piwigo export plugin for iPhoto'] = 'Piwigo-eksportplugin til iPhoto'; +$lang['Piwigo for Android'] = 'Piwigo for Android'; $lang['You can activate only one mobile theme.'] = 'Du kan kun aktivere et mobiltema'; $lang['apply automatic sort order'] = 'Aktiver automatisk sorteringsrækkefølge'; $lang['cancel manual order'] = 'afbryd manuel rækkefølge'; @@ -843,6 +844,7 @@ $lang['visitors need to login and have the appropriate permissions to see this a $lang['The uploaded file exceeds the MAX_FILE_SIZE directive that was specified in the HTML form'] = 'Filstørrelsen pÃ¥ den uploadede fil overstiger MAX_FILE_SIZE-definitionen, som er angivet i HTML-formularen'; $lang['Multiple Size'] = 'Flere størrelser'; $lang['%u users have automatic permission because they belong to a granted group.'] = '%u brugere har automatisk tilladelse, fordi de tilhører en gruppe med tilladelser.'; +$lang['Piwigo for Android application empowers you to connect your Android phone or table to your Piwigo gallery, create some albums and upload several photos at once.'] = 'App\'en Piwigo for Android giver dig mulighed for at forbinde en Android-mobiltelelfon eller -tablet med dit Piwigo-galleri, oprette albummer og uploade flere fotografier pÃ¥ én gang.'; $lang['Adobe Photoshop Lightroom is a photography software designed to manage large quantities of digital images and doing post production work.'] = 'Adobe Photoshop Lightroom er et fotografiprogram beregnet til at hÃ¥ndtere store mængder digitale billeder og foretage efterbehandling.'; $lang['Aperture is a powerful tool to refine images and manage massive libraries on Mac.'] = 'Aperture er et ydedygtigt værktøj til at forfine billeder og administrere store biblioteker pÃ¥ en Mac.'; $lang['Aperture is designed for professional photographers with iPhoto simplicity.'] = 'Aperture er udviklet til professionelle fotografer med iPhoto-enkelhed.'; @@ -917,7 +919,7 @@ $lang['between %d and %d pixels'] = 'mellem %d og %d pixels'; $lang['Duplicate'] = 'Kopier'; $lang['Manage the members'] = 'MedlemshÃ¥ndtering'; $lang['Merge selected groups'] = 'Læg valgte grupper sammen'; -$lang['No group selected, no action possible.'] = 'Ingen grupper valgt, handling ikke mulig.'; +$lang['No groups selected, no actions possible.'] = 'Ingen grupper valgt, handling ikke mulig.'; $lang['No members to manage'] = 'Der er ingen medlemmer at hÃ¥ndtere'; $lang['Please select at least two groups'] = 'Vælg mindst to grupper'; $lang['Rename'] = 'Omdøb'; @@ -940,7 +942,7 @@ $lang['Last visit on %s, %s.'] = 'Seneste besøg kl. %s den %s.'; $lang['Loading...'] = 'Indlæser ...'; $lang['No matching user found'] = 'Ingen brugere fundet som opfylder kriteriet'; $lang['No user selected of %d users'] = 'Ingen bruger valgt ud af %d brugere'; -$lang['No user selected, no action possible.'] = 'Ingen bruger valgt, ingen handling er mulig.'; +$lang['No users selected, no actions possible.'] = 'Ingen bruger valgt, ingen handling er mulig.'; $lang['Password updated'] = 'Adgangskoden er opdateret'; $lang['Registered on %s, %s.'] = 'Registreret kl. %s den %s.'; $lang['Show %s users'] = 'Vis %s brugere'; @@ -980,7 +982,7 @@ $lang['Running on an up-to-date Piwigo is important for security.'] = 'Det er af $lang['Select tags'] = 'Vælg tags'; $lang['Share / Send your photos directly from your Mac Os X (10.10 and following) to Piwigo'] = 'Del/send dine fotografier direkte fra macOS (10.10 og nyere) til Piwigo'; $lang['delete album and all %d photos, even the %d associated to other albums'] = 'slet album og alle %d fotografier, selv de %d tilknyttet andre albummer'; -$lang['No tag selected, no action possible.'] = 'Intet tag valgt, ingen handling mulig.'; +$lang['No tags selected, no actions possible.'] = 'Intet tag valgt, ingen handling mulig.'; $lang['Dashboard'] = 'Instrumentbræt'; $lang['delete only album, not photos'] = 'slet kun album, ikke fotografier'; $lang['orphans to delete'] = 'forældreløse der skal slettes'; @@ -1011,4 +1013,4 @@ $lang['Welcome!'] = 'Velkommen!'; $lang['With no checksum'] = 'Uden kontrolsum'; $lang['checksums to add'] = 'kontrolsummer at tilføje'; $lang['or'] = 'eller'; -$lang['%d checksums were added'] = '%d kontrolsummer blev tilføjet'; \ No newline at end of file +$lang['%d checksums were added'] = '%d kontrolsummer blev tilføjet'; diff --git a/language/de_DE/admin.lang.php b/language/de_DE/admin.lang.php index 9cd5cb449..3cb887b33 100644 --- a/language/de_DE/admin.lang.php +++ b/language/de_DE/admin.lang.php @@ -670,7 +670,7 @@ $lang['Refresh photo set'] = 'Fotoset aktualisieren'; $lang['The whole page'] = 'Die ganze Seite'; $lang['The whole set'] = 'Das ganze Set'; $lang['No photo in the current set.'] = 'Keine Fotos im gegenwärtigen Set.'; -$lang['No photo selected, no action possible.'] = 'Kein Foto ausgewählt, keine Aktion möglich.'; +$lang['No photos selected, no actions possible.'] = 'Kein Foto ausgewählt, keine Aktion möglich.'; $lang['Choose an action'] = 'Eine Aktion auswählen'; $lang['remove author'] = 'Autor entfernen'; $lang['Type here the author name'] = 'Geben Sie hier den Name des Autors ein'; @@ -816,9 +816,11 @@ $lang['Web Form'] = 'Webformular'; $lang['With no album'] = 'Ohne Album'; $lang['With no tag'] = 'Ohne Schlagwort'; $lang['With no virtual album'] = 'Ohne virtuelles Album'; +$lang['Piwigo for Android application empowers you to connect your Android phone or table to your Piwigo gallery, create some albums and upload several photos at once.'] = 'Das App Piwigo für Android ermöglicht es Ihnen, sich mit Ihrer Piwigo-Galerie zu verbinden, Alben zu erstellen und mehrere Fotos gleichzeitig hochzuladen.'; $lang['Piwigo for iOS application empowers you to connect to your Piwigo gallery from your iPhone, iPad or iPod Touch, create some albums and upload several photos at once.'] = 'Das App Piwigo für iOS ermöglicht es Ihnen, sich mit Ihrer Piwigo-Galerie zu verbinden, Alben zu erstellen und mehrere Fotos gleichzeitig hochzuladen.'; $lang['Adobe Photoshop Lightroom is a photography software designed to manage large quantities of digital images and doing post production work.'] = 'Adobe Photoshop Lightroom ist eine Bildbearbeitungssoftware, die entwickelt wurde, um eine grosse Anzahl von Bildern zu verwalten und zu bearbeiten.'; $lang['Available on'] = 'Erhältlich bei '; +$lang['Piwigo for Android'] = 'Piwigo für Android'; $lang['Piwigo for iOS (iPhone, iPad, iPod Touch)'] = 'Piwigo für iOS (iPhone, iPad, iPod Touch)'; $lang['Piwigo Publish plugin for Lightroom'] = 'Piwigo-Publish-Plugin für Lightroom'; $lang['The Piwigo publish Plug-in allows you to export and synchronize photos from Lightroom directly to your Piwigo photo gallery.'] = 'Das Piwigo-Publish-Plugin erlaubt es Ihnen, Bilder aus Lightroom zu exportieren und mit Ihrer Piwigo-Fotogalerie zu synchronisieren.'; @@ -917,7 +919,7 @@ $lang['between %d and %d pixels'] = 'zwischen %d und %d Pixel'; $lang['Duplicate'] = 'Duplikat'; $lang['Manage the members'] = 'Benutzer verwalten'; $lang['Merge selected groups'] = 'Gewählte Gruppen zusammenführen'; -$lang['No group selected, no action possible.'] = 'Keine Gruppen ausgewählt, Aktion kann nicht durgeführt werden'; +$lang['No groups selected, no actions possible.'] = 'Keine Gruppen ausgewählt, Aktion kann nicht durgeführt werden'; $lang['No members to manage'] = 'Keine Benutzer zu verwalten'; $lang['Please select at least two groups'] = 'Bitte mindestens zwei Gruppen auswählen'; $lang['Rename'] = 'Umbenennen'; @@ -940,7 +942,7 @@ $lang['Last visit on %s, %s.'] = 'Letzter Besuch am %s, %s.'; $lang['Loading...'] = 'Laden...'; $lang['No matching user found'] = 'Kein übereinstimmender Benutzer gefunden'; $lang['No user selected of %d users'] = 'Kein Benutzer von %d Benutzern ausgewählt'; -$lang['No user selected, no action possible.'] = 'Kein Benutzer ausgewählt, keine Aktion möglich.'; +$lang['No users selected, no actions possible.'] = 'Kein Benutzer ausgewählt, keine Aktion möglich.'; $lang['Password updated'] = 'Passwort geändert'; $lang['Registered on %s, %s.'] = 'Registriert am %s, %s.'; $lang['Show %s users'] = '%s Benutzer anzeigen'; @@ -984,7 +986,7 @@ $lang['Display form'] = 'Zeige Formblatt'; $lang['First photo added'] = 'Erstes hinzugefügtes Foto'; $lang['It only takes a few clicks.'] = 'Es braucht nur ein paar Klicks'; $lang['No filter on album. Select one or type to search'] = 'Kein Filter auf dem Album. Wähle einen oder benutze die Suche'; -$lang['No tag selected, no action possible.'] = 'Kein TAG gewählt, keine Aktion möglich.'; +$lang['No tags selected, no actions possible.'] = 'Kein TAG gewählt, keine Aktion möglich.'; $lang['Piwigo %s is available, please update'] = 'Piwigo %s ist verfügbar, bitte updaten.'; $lang['Piwigo Remote Sync is able to upload a whole folder hierarchy. If you run it again, only new photos will be uploaded.'] = 'Piwigo Remote Sync kann eine ganze Ordnerhierarchie hochladen. Wenn Sie es wieder ausführen, werden nur neue Fotos hochgeladen.'; $lang['Running on an up-to-date Piwigo is important for security.'] = 'Das Ausführen eines up-to-date Piwigo ist wichtig für die Sicherheit.'; @@ -1011,4 +1013,4 @@ $lang['Visit'] = 'Galerie'; $lang['Welcome!'] = 'Willkommen!'; $lang['With no checksum'] = 'Ohne Checksumme'; $lang['or'] = 'oder'; -$lang['Display category date'] = 'Kategorie-Datum anzeigen'; \ No newline at end of file +$lang['Display category date'] = 'Kategorie-Datum anzeigen'; diff --git a/language/el_GR/admin.lang.php b/language/el_GR/admin.lang.php index f8865343b..147a5278f 100644 --- a/language/el_GR/admin.lang.php +++ b/language/el_GR/admin.lang.php @@ -476,7 +476,7 @@ $lang['No photo in the current set.'] = 'Καμιά φωτογÏαφία στο $lang['No photo in this album'] = 'Καμιά φωτογÏαφία σ\' αυτό το λεÏκωμα'; $lang['new'] = 'νÎο'; $lang['No photo selected, %d photos in current set'] = 'Δεν Îχει επιλεγεί φωτογÏαφία , %d φωτογÏαφίες στο Ï„ÏÎχον σÏνολο'; -$lang['No photo selected, no action possible.'] = 'Δεν Îχει επιλεγεί φωτογÏαφία , δεν είναι δυνατή ενÎÏγεια'; +$lang['No photos selected, no actions possible.'] = 'Δεν Îχει επιλεγεί φωτογÏαφία , δεν είναι δυνατή ενÎÏγεια'; $lang['No results'] = 'Δεν υπάÏχουν αποτελÎσματα'; $lang['No user to send notifications by mail.'] = 'ΚανÎνας χÏήστης δεν θα ειδοποιηθεί μÎσω ταχυδÏομείου.'; $lang['None'] = 'ΚανÎνα'; @@ -673,6 +673,7 @@ $lang['%d years'] = '%d χÏόνια'; $lang['%s ago'] = '%s Ï€Ïιν'; $lang['%s in the future'] = '%s στο μÎλλον'; $lang['%u users have automatic permission because they belong to a granted group.'] = '%u χÏήστες Îχουν αυτόματη άδεια επειδή ανήκουν σε μια ομάδα που της Îχει χοÏηγηθεί.'; +$lang['Piwigo for Android application empowers you to connect your Android phone or table to your Piwigo gallery, create some albums and upload several photos at once.'] = 'Η εφαÏμογή Piwigo για το Android που παÏÎχει τη δυνατότητα να συνδεθείτε με τη γκαλεÏί Piwigo σας από το κινητό σας Android ή τη ταμπλÎτα σας και δημιουÏγοÏν μεÏικά άλμπουμ και ανεβάζουν πολλÎÏ‚ φωτογÏαφίες ταυτόχÏονα.'; $lang['Piwigo for iOS application empowers you to connect to your Piwigo gallery from your iPhone, iPad or iPod Touch, create some albums and upload several photos at once.'] = 'Η εφαÏμογή Piwigo για το iOS που παÏÎχει τη δυνατότητα να συνδεθείτε με τη γκαλεÏί Piwigo σας από το iPhone, iPad ή το iPod Touch, δημιουÏγοÏν μεÏικά άλμπουμ και ανεβάζουν πολλÎÏ‚ φωτογÏαφίες ταυτόχÏονα.'; $lang['A locked gallery is only visible to administrators'] = 'Μια κλειδωμÎνη γκαλεÏί είναι οÏατή μόνο στους διαχειÏιστÎÏ‚'; $lang['Added by %s'] = 'Î ÏοστÎθηκε από %s'; @@ -711,6 +712,7 @@ $lang['Photo sizes with crop'] = 'ΜÎγεθος φωτογÏαφίας με Ï„ $lang['Piwigo Publish plugin for Lightroom'] = 'Ï€Ïόσθετο Piwigo για Δημοσίευση από το Lightroom'; $lang['Piwigo export plugin for Aperture'] = 'Piwigo export plugin για το Aperture'; $lang['Piwigo export plugin for iPhoto'] = 'Piwigo export plugin για το iPhoto'; +$lang['Piwigo for Android'] = 'Piwigo για Android'; $lang['Piwigo for iOS (iPhone, iPad, iPod Touch)'] = 'Piwigo για το iOS (iPhone, iPad, iPod Touch)'; $lang['Piwigo publish plugin for Shotwell'] = 'Piwigo publish plugin για το Shotwell'; $lang['Piwigo publish plugin for digiKam'] = 'Piwigo publish plugin για το digiKam'; @@ -916,7 +918,7 @@ $lang['This group will be set to default'] = 'Η ομάδα αυτή θα οÏι $lang['Rename'] = 'Μετονομασία'; $lang['Please select at least two groups'] = 'ΠαÏακαλώ επιλÎξτε τουλάχιστον δÏο ομάδες'; $lang['No members to manage'] = 'ΚανÎνα μÎλος για διαχείÏιση'; -$lang['No group selected, no action possible.'] = 'Καμία ομάδα δεν επιλÎχτηκε, δεν είναι δυνατή η συνÎχεια.'; +$lang['No groups selected, no actions possible.'] = 'Καμία ομάδα δεν επιλÎχτηκε, δεν είναι δυνατή η συνÎχεια.'; $lang['Merge selected groups'] = 'Συγχώνευση επιλεγμÎνων ομάδων'; $lang['Duplicate'] = 'Διπλότυπο'; $lang['Manage the members'] = 'ΔιαχειÏιστείτε τα μÎλη'; @@ -936,7 +938,7 @@ $lang['Showing %s to %s of %s users'] = 'Εμφάνιση από %s ως %s τω $lang['Show %s users'] = 'Εμφάνιση %s χÏηστών'; $lang['Registered on %s, %s.'] = 'ΕγγεγÏαμμÎνοι στις %s, %s.'; $lang['Password updated'] = 'Ο κωδικό Ï€Ïόσβασης ενημεÏώθηκε'; -$lang['No user selected, no action possible.'] = 'ΚανÎνας χÏήστης δεν επιλÎχτηκε, καμία ενÎÏγεια δεν είναι δυνατή.'; +$lang['No users selected, no actions possible.'] = 'ΚανÎνας χÏήστης δεν επιλÎχτηκε, καμία ενÎÏγεια δεν είναι δυνατή.'; $lang['No user selected of %d users'] = 'ΚανÎνας χÏήστης δεν επιλÎχτηκε από %d χÏήστες'; $lang['No matching user found'] = 'Δεν βÏÎθηκε χÏήστης'; $lang['Loading...'] = 'ΦόÏτωση ...'; @@ -981,7 +983,7 @@ $lang['Storage used'] = 'χώÏος αποθήκευσης που χÏησιμο $lang['Share / Send your photos directly from your Mac Os X (10.10 and following) to Piwigo'] = 'ΜοιÏαστείτε / Στείλτε τις φωτογÏαφίες σας απευθείας από το MacOS σας (10.10 και μετά) στο Piwigo'; $lang['Select tags'] = 'ΕπιλÎξτε ετικÎτες'; $lang['Running on an up-to-date Piwigo is important for security.'] = 'ΤÏÎχοντας σε Îνα ενημεÏωμÎνο Piwigo είναι σημαντικό για την ασφάλεια.'; -$lang['No tag selected, no action possible.'] = 'Δεν Îχει επιλεγεί ετικÎτα, καμία ενÎÏγεια δεν είναι δυνατή.'; +$lang['No tags selected, no actions possible.'] = 'Δεν Îχει επιλεγεί ετικÎτα, καμία ενÎÏγεια δεν είναι δυνατή.'; $lang['Piwigo Remote Sync is able to upload a whole folder hierarchy. If you run it again, only new photos will be uploaded.'] = 'Το Piwigo Remote Sync είναι σε θÎση να μεταφοÏτόσει μια ολόκληÏη ιεÏαÏχία φακÎλων. Αν το εκτελÎσετε ξανά, μόνο νÎες φωτογÏαφίες θα μεταφοÏτοθοÏν.'; $lang['Piwigo %s is available, please update'] = 'Το Piwigo %s είναι διαθÎσιμο, παÏακαλώ ενημεÏώστε'; $lang['No filter on album. Select one or type to search'] = 'ΧωÏίς φίλτÏο για λευκώματα. ΕπιλÎξτε Îνα ή πληκτÏολογήστε για αναζήτηση'; @@ -1007,4 +1009,4 @@ $lang['Deletion in progress'] = 'Η διαγÏαφή βÏίσκεται σε ε $lang['Create a first album'] = 'ΔημιουÏγήστε Îνα Ï€Ïώτο λεÏκωμα.'; $lang['Compute %d missing checksums'] = 'Υπολογισμός %d αθÏοίσματα ελÎγχου που λείπουν'; $lang['... or hide this link'] = '...ή να αποκÏÏψει αυτόν τον σÏνδεσμο'; -$lang['%d checksums were added'] = 'Έχουν Ï€Ïοστεθεί %d αθÏοίσματα ελÎγχου'; \ No newline at end of file +$lang['%d checksums were added'] = 'Έχουν Ï€Ïοστεθεί %d αθÏοίσματα ελÎγχου'; diff --git a/language/en_UK/admin.lang.php b/language/en_UK/admin.lang.php index 35f0a6910..6eff4b05a 100644 --- a/language/en_UK/admin.lang.php +++ b/language/en_UK/admin.lang.php @@ -86,6 +86,7 @@ $lang['+ Add an upload box'] = '+ Add an upload box'; $lang[', click on'] = ", click on"; $lang['... or '] = '... or '; $lang['... or hide this link'] = '... or hide this link'; +$lang['Piwigo for Android application empowers you to connect your Android phone or table to your Piwigo gallery, create some albums and upload several photos at once.'] = 'Piwigo for Android application empowers you to connect your Android phone or tablet to your Piwigo gallery, create some albums and upload several photos at once.'; $lang['Piwigo for iOS application empowers you to connect to your Piwigo gallery from your iPhone, iPad or iPod Touch, create some albums and upload several photos at once.'] = 'Piwigo for iOS application empowers you to connect to your Piwigo gallery from your iPhone, iPad or iPod Touch, create some albums and upload several photos at once.'; $lang['A locked gallery is only visible to administrators'] = 'A locked gallery is only visible to administrators'; $lang['A new version of Piwigo is available.'] = "A new version of Piwigo is available."; @@ -294,7 +295,6 @@ $lang['Download,'] = 'Download,'; $lang['Downloads'] = "Downloads"; $lang['Drag to re-order'] = "Click-and-drag to re-order"; $lang['Drop into album'] = 'Select an album'; -$lang['Dump Database'] = 'Dump Database'; $lang['Duplicate selected tags'] = 'Duplicate selected tags'; $lang['Duplicate'] = 'Duplicate'; $lang['Duplicates'] = 'Duplicates'; @@ -408,7 +408,6 @@ $lang['Inactive Plugins'] = 'Inactive Plugins'; $lang['Inactive Themes'] = 'Inactive themes'; $lang['include child albums'] = 'include child albums'; $lang['Include display of recent photos grouped by dates'] = "Include display of recent photos grouped by dates"; -$lang['Include history data (Warning: server memory limit may be exceeded)'] = 'Include history data (Warning: server memory limit may be exceeded)'; $lang['include photos with lower privacy level'] = 'include photos with lower privacy level'; $lang['Information data registered in database'] = "Information data registered in database"; $lang['Informations'] = "Information"; @@ -511,15 +510,15 @@ $lang['No destination tag selected'] = 'No destination tag selected'; $lang['No display'] = "No display"; $lang['No file was uploaded'] = 'No file was uploaded'; $lang['No group is permitted to see this private album'] = 'No group is permitted to see this private album'; -$lang['No group selected, no action possible.'] = 'No group selected, no action possible.'; +$lang['No groups selected, no actions possible.'] = 'No groups selected, no actions possible.'; $lang['No mail to send.'] = "No mail to be sent."; $lang['No members to manage'] = "No members to manage"; $lang['No order field selected'] = 'No order field selected'; $lang['No photo can be deleted'] = "No photo can be deleted"; -$lang['No photo in the current set.'] = 'No photo in the current set.'; +$lang['No photo in the current set.'] = 'No photos in the current set.'; $lang['No photo in this album'] = "No photo in this album"; -$lang['No photo selected, %d photos in current set'] = 'No photo selected, %d photos in current set'; -$lang['No photo selected, no action possible.'] = 'No photo selected, no action possible.'; +$lang['No photo selected, %d photos in current set'] = 'No photos selected, %d photos in current set'; +$lang['No photos selected, no actions possible.'] = 'No photos selected, no actions possible.'; $lang['No results'] = "No results"; $lang['No user to send notifications by mail.'] = "No user to be notified by mail."; $lang['no write access'] = "no write access"; @@ -603,6 +602,7 @@ $lang['Piwigo cannot retrieve upgrade file from server'] = 'Piwigo cannot retrie $lang['Piwigo configuration'] = "Piwigo configuration"; $lang['Piwigo export plugin for Aperture'] = 'Piwigo export plugin for Aperture'; $lang['Piwigo export plugin for iPhoto'] = 'Piwigo export plugin for iPhoto'; +$lang['Piwigo for Android'] = 'Piwigo for Android'; $lang['Piwigo for iOS (iPhone, iPad, iPod Touch)'] = 'Piwigo for iOS (iPhone, iPad, iPod Touch)'; $lang['Piwigo publish plugin for digiKam'] = 'Piwigo publish plugin for digiKam'; $lang['Piwigo Publish plugin for Lightroom'] = 'Piwigo Publish plugin for Lightroom'; @@ -834,7 +834,6 @@ $lang['Type here the title'] = 'Type the title here'; $lang['Type here the name of the new group'] = 'Type the name of the new group here'; $lang['Type in a search term'] = "Type in a search term"; $lang['Unable to check for upgrade.'] = "Unable to check for upgrade."; -$lang['Unable to dump database.'] = 'Unable to dump database.'; $lang['Uncheck all'] = "Uncheck all"; $lang['Uninstall'] = "Uninstall"; $lang['Uninstalled Plugins'] = 'Uninstalled Plugins'; @@ -941,7 +940,7 @@ $lang['Show %s users'] = 'Show %s users'; $lang['No matching user found'] = 'No matching user found'; $lang['Showing %s to %s of %s users'] = 'Showing %s to %s of %s users'; $lang['(filtered from %s total users)'] = '(filtered from %s total users)'; -$lang['No user selected, no action possible.'] = 'No user selected, no action possible.'; +$lang['No users selected, no actions possible.'] = 'No users selected, no actions possible.'; $lang['%d of %d users selected'] = '%d of %d users selected'; $lang['No user selected of %d users'] = 'No user selected of %d users'; $lang['All %d users are selected'] = 'All %d users are selected'; @@ -974,7 +973,7 @@ $lang['No user is permitted to see this private album'] = 'No user is permitted $lang['Each email sent will contain its own automatic authentication key on links, valid for %s.'] = 'Each email sent will contain its own automatic authentication key on links, valid for %s.'; $lang['For security reason, authentication keys do not work for administrators.'] = 'For security reason, authentication keys do not work for administrators.'; $lang['Select tags'] = 'Select tags'; -$lang['No tag selected, no action possible.'] = 'No tag selected, no action possible.'; +$lang['No tags selected, no actions possible.'] = 'No tags selected, no actions possible.'; $lang['Display form'] = 'Display form'; $lang['Delete album "%s".'] = 'Delete album "%s".'; $lang['Delete album "%s" and its %d sub-albums.'] = 'Delete album "%s" and its %d sub-albums.'; @@ -1007,4 +1006,73 @@ $lang['Display album date period'] = 'Show the date period associated with each $lang['Welcome!'] = 'Welcome!'; $lang['Piwigo requires an album to add photos.'] = 'Piwigo requires an album to add photos.'; $lang['Create a first album'] = 'Create a first album'; +$lang['Search tips'] = 'Search tips'; +$lang['Posted %s'] = 'Posted %s'; +$lang['File type: %s'] = 'File type: %s'; $lang['or'] = 'or'; +$lang['Open in gallery'] = "Open in gallery"; +$lang['Promote mobile app on mobile devices'] = 'Promote mobile app on mobile devices'; +$lang['in gallery'] = 'in gallery'; +$lang['in administration'] = 'in administration'; +$lang['Displays a banner to install or open the official Piwigo app'] = 'Displays a banner to install or open the official Piwigo app'; +$lang['Search albums'] = 'Search albums'; +$lang['Portraits'] = 'Portraits'; +$lang['You have %d orphan tags %s'] = 'You have %d orphan tags %s'; +$lang['Review'] = 'Review'; +$lang['You have %s1 orphan : %s2'] = 'You have %s1 orphan : %s2'; +$lang['Delete tag "%s"?'] = 'Delete tag "%s"?'; +$lang['Delete tags \{%s\}?'] = 'Delete tags \{%s\}?'; +$lang['Yes, delete'] = 'Yes, delete'; +$lang['No, I have changed my mind'] = 'No, I have changed my mind'; +$lang['Tag "%s" succesfully deleted'] = 'Tag \"%s\" succesfully deleted'; +$lang['Tags \{%s\} succesfully deleted'] = 'Tags \{%s\} succesfully deleted'; +$lang['Tag "%s" created'] = 'Tag "%s" created'; +$lang['Tag "%s1" renamed in "%s2"'] = 'Tag \"%s1\" renamed in \"%s2\"'; +$lang['Delete orphan tags ?'] = 'Delete orphan tags ?'; +$lang['Delete them'] = 'Delete them'; +$lang['Keep them'] = 'Keep them'; +$lang[' (copy)'] = ' (copy)'; +$lang[' (copy %s)'] = ' (copy %s)'; +$lang['Tag(s) \{%s1\} succesfully merged into "%s2"'] = 'Tag(s) \{%s1\} succesfully merged into "%s2"'; +$lang['and %s others'] = 'and %s others'; +$lang['%s other tags available..'] = '%s other tags available..'; +$lang['%d photos'] = '%d photos'; +$lang['no photo'] = 'no photo'; +$lang['Select all %d tags'] = 'Select all %d tags'; +$lang['Clear Selection'] = 'Clear Selection'; +$lang['The %d tags on this page are selected'] = 'The %d tags on this page are selected'; +$lang['%d tag selected'] = '%d tag selected'; +$lang['%d tags found'] = '%d tags found'; +$lang['%d tag found'] = '%d tag found'; +$lang['Selection mode'] = 'Selection mode'; +$lang['At least 2 selected tags are needed to merge'] = 'At least 2 selected tags are needed to merge'; +$lang['Merge'] = 'Merge'; +$lang['Choose which tag to merge these tags into'] = 'Choose which tag to merge these tags into'; +$lang['The other tags will be removed'] = 'The other tags will be removed'; +$lang['Display'] = 'Display'; +$lang['Select'] = 'Select'; +$lang['Tag Manager'] = 'Tag Manager'; +$lang['No tag found'] = 'No tag found'; +$lang['Manage album photos'] = 'Manage album photos'; +$lang['Manage sub-albums'] = 'Manage sub-albums'; +$lang['Delete album'] = 'Delete album'; +$lang['Are you sure you want to delete this site?'] = 'Are you sure you want to delete this site?'; +$lang['Yes, I am sure'] = 'Yes, I am sure'; +$lang['Are you sure you want to delete this theme?'] = 'Are you sure you want to delete this theme?'; +$lang['Are you sure you want to restore this plugin?'] = 'Are you sure you want to restore this plugin?'; +$lang['Are you sure you want to delete this?'] = 'Are you sure you want to delete this?'; +$lang['Are you sure you want to restore to default settings?'] = 'Are you sure you want to restore to default settings?'; +$lang['Are you sure you want to delete the ratings of the user "%s"?'] = 'Are you sure you want to delete the ratings of the user "%s"?'; +$lang['Are you sure you want to install the plugin "%s"?'] = 'Are you sure you want to install the plugin "%s"?'; +$lang['Are you sure you want to delete the plugin "%s"?'] = 'Are you sure you want to delete the plugin "%s"?'; +$lang['Are you sure you want to restore the plugin "%s"?'] = 'Are you sure you want to restore the plugin "%s"?'; +$lang['Are you sure you want to delete all sizes?'] = 'Are you sure you want to delete all sizes?'; +$lang['Are you sure you want to lock the gallery?'] = 'Are you sure you want to lock the gallery?'; +$lang['Are you sure you want to delete the language "%s"?'] = 'Are you sure you want to delete the language "%s"?'; +$lang['Are you sure you want to delete the theme "%s"?'] = 'Are you sure you want to delete the theme "%s"?'; +$lang['Are you sure you want to update all extensions?'] = 'Are you sure you want to update all extensions?'; +$lang['Are you sure you want to delete the user "%s"?'] = 'Are you sure you want to delete the user "%s"?'; +$lang['Please upgrade your PHP version before any update.'] = 'Please upgrade your PHP version before any update.'; +$lang['Requires PHP %s'] = 'Requires PHP %s'; +$lang['%s MB used'] = '%s MB used'; +$lang['%s GB used'] = '%s GB used'; diff --git a/language/en_UK/common.lang.php b/language/en_UK/common.lang.php index c07b04d6f..649387757 100644 --- a/language/en_UK/common.lang.php +++ b/language/en_UK/common.lang.php @@ -252,6 +252,7 @@ $lang['Password Reset'] = 'Password Reset'; $lang['password updated'] = "password updated"; $lang['Password'] = "Password"; $lang['Password: %s'] = 'Password: %s'; +$lang['Password: ********** (no copy by email)'] = 'Password: ********** (no copy by email)'; $lang['Pause of slideshow'] = "Pause slideshow"; $lang['Permalink for album not found'] = 'Permalink for album not found'; $lang['Photo sizes'] = 'Photo sizes'; @@ -413,4 +414,5 @@ $lang['Link: %s'] = 'Link: %s'; $lang['Your authentication key is no longer valid.'] = 'Your authentication key is no longer valid.'; $lang['Invalid username or password!'] = 'Invalid username or password!'; $lang['generate random password'] = 'generate random password'; +$lang['Related albums'] = 'Related albums'; ?> diff --git a/language/eo_EO/admin.lang.php b/language/eo_EO/admin.lang.php index 3d5a6406a..5e95211ed 100644 --- a/language/eo_EO/admin.lang.php +++ b/language/eo_EO/admin.lang.php @@ -362,6 +362,7 @@ $lang['Album "%s" has been added'] = 'Fotaro "%s" aldoniÄis'; $lang['Adobe Photoshop Lightroom is a photography software designed to manage large quantities of digital images and doing post production work.'] = 'Adobe Photoshop Lightroom estas fota programaro desegnita por administri grandajn kvantojn de ciferecaj bildoj kaj post-trakti ilin.'; $lang['Add write access to the "%s" directory'] = 'Aldonu skribaliron al la dosierujo "%s"'; $lang['Piwigo for iOS application empowers you to connect to your Piwigo gallery from your iPhone, iPad or iPod Touch, create some albums and upload several photos at once.'] = 'La aplikaĵo Piwigo por iOS ebligas vin konektiÄi al via galerio Piwigo, por krei fotarojn kaj elÅuti plurajn fotojn unufoje el via iPhone, iPas aÅ iPod Touch.'; +$lang['Piwigo for Android application empowers you to connect your Android phone or table to your Piwigo gallery, create some albums and upload several photos at once.'] = 'La aplikaĵo Piwigo por Android ebligas vin konektiÄi al via galerio Piwigo, por krei fotarojn kaj elÅuti plurajn fotojn unufoje el via telefono aÅ tabuleto Android.'; $lang['Advanced features'] = 'Specialaj funkcioj'; $lang['Access type'] = 'Tipo de atingo'; $lang['Allow user customization'] = 'Permesi al uzantoj tajloradon'; @@ -462,7 +463,7 @@ $lang['New photos added'] = 'Novaj fotoj aldonitaj'; $lang['New photos were added'] = 'Novaj fotoj aldoniÄis'; $lang['New tag'] = 'Nova etikedo'; $lang['No file was uploaded'] = 'Neniu dosiero alÅutiÄis'; -$lang['No group selected, no action possible.'] = 'Neniu grupo estis selektita, neniu ago eblas.'; +$lang['No groups selected, no actions possible.'] = 'Neniu grupo estis selektita, neniu ago eblas.'; $lang['No mail to send.'] = 'Neniu mesaÄo sendenda.'; $lang['No members to manage'] = 'Neniu membro administrenda '; $lang['Maximum width'] = 'Maksimuma larÄo'; @@ -473,7 +474,7 @@ $lang['Merge selected tags'] = 'Kunfandi la selektitajn etikedojn'; $lang['Merge tags'] = 'Kunfandi etikedojn'; $lang['No photo can be deleted'] = 'Eblas forigi neniun foton '; $lang['No photo in this album'] = 'Neniu foto en tiu fotaro'; -$lang['No photo selected, no action possible.'] = 'Sen foto selektita, neniu ago eblas.'; +$lang['No photos selected, no actions possible.'] = 'Sen foto selektita, neniu ago eblas.'; $lang['No results'] = 'Neniu rezulto'; $lang['No user to send notifications by mail.'] = 'Neniun uzanton oni sciigos retmesaÄe.'; $lang['None'] = 'Nenio'; @@ -797,6 +798,7 @@ $lang['Piwigo Publish plugin for Lightroom'] = 'publikigokromaĵo de Piwigo por $lang['Piwigo configuration'] = 'Agordo de Piwigo'; $lang['Piwigo export plugin for Aperture'] = 'eksportokromaĵo por Aperture'; $lang['Piwigo export plugin for iPhoto'] = 'eksportokromaĵo por iPhoto'; +$lang['Piwigo for Android'] = 'Piwigo por Android'; $lang['Piwigo for iOS (iPhone, iPad, iPod Touch)'] = 'Piwigo por iOS (iPhone, iPad, iPod Touch)'; $lang['Piwigo publish plugin for Shotwell'] = 'publikigokromaĵo de Piwigo por Shotwell'; $lang['Piwigo publish plugin for digiKam'] = 'publikigokromaĵo de Piwigo por digiKam'; @@ -913,7 +915,7 @@ $lang['Change username'] = 'ÅœanÄi salutnomon'; $lang['Loading...'] = 'Åœutante...'; $lang['No matching user found'] = 'Neniu kongruanta uzanto troviÄis'; $lang['No user selected of %d users'] = 'Neniu uzanto selektita el %d uzantoj'; -$lang['No user selected, no action possible.'] = 'Sen uzanto selektita, neniu ago eblas.'; +$lang['No users selected, no actions possible.'] = 'Sen uzanto selektita, neniu ago eblas.'; $lang['Password updated'] = 'Pasvorto ÄisdatiÄis'; $lang['Show %s users'] = 'Montri %s uzantojn'; $lang['Showing %s to %s of %s users'] = 'Montrante %s Äis %s el %s uzantoj'; @@ -962,7 +964,7 @@ $lang['date & time'] = 'dato & horo'; $lang['file name'] = 'dosieronomo'; $lang['width & height'] = 'larÄeco & alteco'; $lang['Upload in progress'] = 'AlÅutanta'; -$lang['No tag selected, no action possible.'] = 'Neniu marko elektita, neniu ago eblas'; +$lang['No tags selected, no actions possible.'] = 'Neniu marko elektita, neniu ago eblas'; $lang['(determined from photos)'] = '(determinita el la fotoj)'; $lang['Display form'] = 'Montri formularon'; $lang['delete only album, not photos'] = 'Forigi nur fortarojn, NE fotojn'; @@ -983,8 +985,8 @@ $lang['Select tags'] = 'Elekti markojn'; $lang['Storage used'] = 'Konservado uzata'; $lang['checksum'] = 'kontrolsumo'; $lang['For security reason, authentication keys do not work for administrators.'] = 'Pro sekurecaj kialoj, aÅtentiga Ålosilo ne funkcias por administrantoj'; -$lang['No user is permitted to see this private album'] = 'Neniu uzanto rajtas vidi tiun privatan fotaron'; -$lang['delete album and the %d orphan photos'] = 'Forigu fotaron kaj la %d orfajn fotojn'; +$lang['No user is permitted to see this private album'] = 'Neniu uzanto rajtas vidi tiun privatan albumon'; +$lang['delete album and the %d orphan photos'] = 'Forigu albumon kaj la %d orfajn fotojn'; $lang['Y Repeat'] = 'Y ripetiÄas'; $lang['Time has come to update your Piwigo with version %s, go to %s'] = 'Tempo venis por Äisdatigi vian Piwigo per verio %s, iru al %s'; $lang['Share / Send your photos directly from your Mac Os X (10.10 and following) to Piwigo'] = 'Kunhavigi/Sendi fotojn rekte el via macOS (10.10 kaj poste) al Piwigo'; @@ -1007,4 +1009,4 @@ $lang['Create a first album'] = 'Krei unuan fotaron'; $lang['Deletion in progress'] = 'Foriganta'; $lang['Piwigo requires an album to add photos.'] = 'Piwigo bezonas fotaron por aldoni fotojn.'; $lang['Welcome!'] = 'Bonvenon!'; -$lang['or'] = 'aÅ'; \ No newline at end of file +$lang['or'] = 'aÅ'; diff --git a/language/es_ES/admin.lang.php b/language/es_ES/admin.lang.php index 2e35a7ffe..27c541f59 100644 --- a/language/es_ES/admin.lang.php +++ b/language/es_ES/admin.lang.php @@ -660,7 +660,7 @@ $lang['Refresh photo set'] = 'Actualizar el lote de fotos'; $lang['The whole page'] = 'Página entera'; $lang['The whole set'] = 'La totalidad del lote'; $lang['No photo in the current set.'] = 'No hay fotos en este lote.'; -$lang['No photo selected, no action possible.'] = 'Selecciona al menos una foto para ejecutar cualquier acción.'; +$lang['No photos selected, no actions possible.'] = 'Selecciona al menos una foto para ejecutar cualquier acción.'; $lang['Choose an action'] = 'Seleccionar una acción'; $lang['remove author'] = 'eliminar el autor'; $lang['Type here the author name'] = 'Escriba el nombre del autor'; @@ -811,6 +811,7 @@ $lang['Not cropped correctly?'] = '¿No se ha recortado correctamente?'; $lang['Save manual order'] = 'Guardar orden manual'; $lang['Web Form'] = 'Formulario web'; $lang['You can activate only one mobile theme.'] = 'Sólo se puede activar un tema para dispositivos móviles.'; +$lang['Piwigo for Android application empowers you to connect your Android phone or table to your Piwigo gallery, create some albums and upload several photos at once.'] = 'La aplicación Piwigo para Android te permite conectarte a tu galerÃa Piwigo desde tu teléfono o tablet Android, crear álbumes y subir varias fotos a la vez.'; $lang['Piwigo for iOS application empowers you to connect to your Piwigo gallery from your iPhone, iPad or iPod Touch, create some albums and upload several photos at once.'] = 'Las aplicación Piwigo para iOS te permite conectarte a tu galerÃa Piwigo desde tu iPhone, iPad o iPod Touch, crear álbumes y subir varias fotos a la vez.'; $lang['Adobe Photoshop Lightroom is a photography software designed to manage large quantities of digital images and doing post production work.'] = 'Adobe Lightroom es un software fotográfico diseñado para administrar grandes cantidades de imágenes y realizar el procesado de las mismas.'; $lang['Aperture is a powerful tool to refine images and manage massive libraries on Mac.'] = 'Aperture es una potente herramienta para editar imágenes y administrar grandes colecciones en Mac.'; @@ -826,6 +827,7 @@ $lang['iPhoto is the default photo manager on MacOSX. The Piwigo export plugin l $lang['On your Linux, simply install Shotwell with your package manager and the activate Piwigo publishing option.'] = 'Para Linux, simplemente instala Shotwell con el gestor de paquetes y activa la opción de publicación en Piwigo.'; $lang['Piwigo export plugin for Aperture'] = 'Plugin de Piwigo para Aperture'; $lang['Piwigo export plugin for iPhoto'] = 'Plugin de Piwigo para iPhoto'; +$lang['Piwigo for Android'] = 'Piwigo para Android'; $lang['Piwigo for iOS (iPhone, iPad, iPod Touch)'] = 'Piwigo para iOS (iPhone, iPad, iPod Touch)'; $lang['Piwigo publish plugin for digiKam'] = 'Plugin de Piwigo para digiKam'; $lang['Piwigo Publish plugin for Lightroom'] = 'Plugin de publicación de Piwigo para Lightroom'; @@ -912,7 +914,7 @@ $lang['between %d and %d pixels'] = 'entre %d y %d pixels'; $lang['Duplicate'] = 'Duplicar'; $lang['Manage the members'] = 'Gestionar los miembros'; $lang['Merge selected groups'] = 'Combinar grupos seleccionados'; -$lang['No group selected, no action possible.'] = 'Ningún grupo seleccionado, no hay acción posible.'; +$lang['No groups selected, no actions possible.'] = 'Ningún grupo seleccionado, no hay acción posible.'; $lang['No members to manage'] = 'Ningún miembro para gestionar'; $lang['Please select at least two groups'] = 'Por favor, seleccione por lo menos dos grupos'; $lang['Rename'] = 'Renombrar'; @@ -936,7 +938,7 @@ $lang['Last visit on %s, %s.'] = 'Ultima visita el %s, %s'; $lang['Loading...'] = 'Cargando...'; $lang['No matching user found'] = 'Ningún miembro coincidentes encontrados'; $lang['No user selected of %d users'] = 'Ninguno de los %d usuarios seleccionados'; -$lang['No user selected, no action possible.'] = 'Ningún usuario seleccionado, ninguna acción posible. '; +$lang['No users selected, no actions possible.'] = 'Ningún usuario seleccionado, ninguna acción posible. '; $lang['Password updated'] = 'Contraseña actualizado'; $lang['Registered on %s, %s.'] = 'Registrado el %s, %s'; $lang['Show %s users'] = 'Mostrar %s usuarios'; @@ -982,7 +984,7 @@ $lang['Display form'] = 'Mostrar desde'; $lang['First photo added'] = 'Primera foto añadida'; $lang['It only takes a few clicks.'] = 'Solo hacen falta unos pocos clicks.'; $lang['No filter on album. Select one or type to search'] = 'Sin filtro en el álbum. Selecciona uno o teclea para buscar.'; -$lang['No tag selected, no action possible.'] = 'No se han seleccionado etiquetas, no hay ninguna acción posible.'; +$lang['No tags selected, no actions possible.'] = 'No se han seleccionado etiquetas, no hay ninguna acción posible.'; $lang['Piwigo %s is available, please update'] = 'Piwigo %s está disponible, por favor actualiza.'; $lang['Piwigo Remote Sync is able to upload a whole folder hierarchy. If you run it again, only new photos will be uploaded.'] = 'Piwigo Remote Sync puede subir toda la jerarquÃa de una carpeta. Si lo ejecutas de nuevo, solo las fotos nuevas se subirán.'; $lang['Running on an up-to-date Piwigo is important for security.'] = 'Ejecutar una versión actualizada de Piwigo es importante por seguridad.'; @@ -1007,4 +1009,4 @@ $lang['Visit'] = 'Visitar'; $lang['Welcome!'] = '¡Bienvenidos!'; $lang['With no checksum'] = 'Sin checksum'; $lang['checksums to add'] = 'Checksums que añadir'; -$lang['or'] = 'o'; \ No newline at end of file +$lang['or'] = 'o'; diff --git a/language/et_EE/admin.lang.php b/language/et_EE/admin.lang.php index f89a806c0..7115d26e8 100644 --- a/language/et_EE/admin.lang.php +++ b/language/et_EE/admin.lang.php @@ -106,6 +106,7 @@ $lang['%s must be to set to false in your local/config/config.inc.php file'] = ' $lang['%s value is not correct file because exif are not supported'] = '%s väärtus on vale, kuna Exif metaandmeid ei toetata'; $lang['%u users have automatic permission because they belong to a granted group.'] = '%u kasutajatel on automaatselt luba, kuna nad kuuluvad loaga gruppi.'; $lang['(this tag will be deleted)'] = '(see märksõna kustutakse)'; +$lang['Piwigo for Android application empowers you to connect your Android phone or table to your Piwigo gallery, create some albums and upload several photos at once.'] = 'Piwigo for Android on programm mis võimaldab sul ühenduda Android telefoni või tahvelarvutiga su Piwigo galleriisse, toimetada albumeid ja laadida üles fotosid.'; $lang['Piwigo for iOS application empowers you to connect to your Piwigo gallery from your iPhone, iPad or iPod Touch, create some albums and upload several photos at once.'] = 'Piwigo for iOS on programm mis võimaldab sul ühenduda iPhone, iPad või iPod Touch-iga su Piwigo galleriisse, toimetada albumeid ja laadida üles fotosid.'; $lang['A locked gallery is only visible to administrators'] = 'Lukustatud galleriid on ainult nähtavad administraatoritele'; $lang['A new version of Piwigo is available.'] = 'Piwigo uus versioon on saadaval.'; @@ -446,7 +447,7 @@ $lang['No photo can be deleted'] = 'Ühtki fotot ei saa kustutada'; $lang['No photo in the current set.'] = 'Fotod puuduvad valitud kogumikus.'; $lang['No photo in this album'] = 'Selles albumis pole ühtki fotot'; $lang['No photo selected, %d photos in current set'] = 'Ühtki fotot pole valitud, selles kogumikus on %d fotot.'; -$lang['No photo selected, no action possible.'] = 'Ühtki fotot pole valitud, ükski tegevus pole võimalik'; +$lang['No photos selected, no actions possible.'] = 'Ühtki fotot pole valitud, ükski tegevus pole võimalik'; $lang['No results'] = 'Ei leidnud vasteid'; $lang['No user to send notifications by mail.'] = 'Ühtki kasutajat pole, keda teavitada epostiga.'; $lang['None'] = 'Mitte ükski'; @@ -509,6 +510,7 @@ $lang['Piwigo cannot retrieve upgrade file from server'] = 'Piwigo ei suutnud sa $lang['Piwigo configuration'] = 'Piwigo seadistused'; $lang['Piwigo export plugin for Aperture'] = 'Piwigo eksportimisplugin Aperturele'; $lang['Piwigo export plugin for iPhoto'] = 'Piwigo eksportimisplugin iPhotole'; +$lang['Piwigo for Android'] = 'Piwigo Androidile'; $lang['Piwigo for iOS (iPhone, iPad, iPod Touch)'] = 'Piwigo iOS-ile (iPhone, iPad, iPod Touch)'; $lang['Piwigo publish plugin for Shotwell'] = 'Piwigo avaldamisplugin rakendusele Shotwell'; $lang['Piwigo publish plugin for digiKam'] = 'Piwigo avaldamisplugin rakendusele digiKam'; @@ -915,7 +917,7 @@ $lang['between %d and %d pixels'] = '%d ja %d pikslite vahel'; $lang['This group will be unset to default'] = 'Seda rühma ei kasutata edaspidi vaikerühmana'; $lang['Type here the name of the new group'] = 'Nimeta uus rühm'; $lang['Merge selected groups'] = 'Liida valitud rühmad'; -$lang['No group selected, no action possible.'] = 'Ühtegi rühma pole valitud, seega ei saa midagi teha.'; +$lang['No groups selected, no actions possible.'] = 'Ühtegi rühma pole valitud, seega ei saa midagi teha.'; $lang['No members to manage'] = 'Puudub liikmeid keda hallata'; $lang['Please select at least two groups'] = 'Vali vähemalt kaks rühma'; $lang['Rename'] = 'Nimeta ümber'; @@ -944,7 +946,7 @@ $lang['Last visit on %s, %s.'] = 'Viimane külastus %s, %s.'; $lang['Loading...'] = 'Laadimine...'; $lang['No matching user found'] = 'Vastet ei leitud'; $lang['No user selected of %d users'] = 'Kasutajat ei valitud etteantud %d kasutajatest'; -$lang['No user selected, no action possible.'] = 'Kasutajaid pole valitud, ei saa midagi teha'; +$lang['No users selected, no actions possible.'] = 'Kasutajaid pole valitud, ei saa midagi teha'; $lang['Password updated'] = 'Parool uuendatud'; $lang['Registered on %s, %s.'] = 'Registreeritud %s, %s.'; $lang['Show %s users'] = 'Näita %s kasutajaid'; @@ -990,7 +992,7 @@ $lang['Piwigo %s is available, please update'] = 'Piwigo %s on saadaval, palun u $lang['Piwigo Remote Sync is able to upload a whole folder hierarchy. If you run it again, only new photos will be uploaded.'] = 'Piwigo Remote Sync saab üles laadida kogu kausta hierarhia. Kui käivitad selle uuesti, siis laetakse ainult uued fotod'; $lang['Recipients'] = 'Saajad'; $lang['Running on an up-to-date Piwigo is important for security.'] = 'Värske Piwigo versiooni kasutamine on turvalisuse huvides oluline'; -$lang['No tag selected, no action possible.'] = 'Silti ei ole valitud, toiming ei ole võimalik'; +$lang['No tags selected, no actions possible.'] = 'Silti ei ole valitud, toiming ei ole võimalik'; $lang['Select tags'] = 'Vali sildid'; $lang['For security reason, authentication keys do not work for administrators.'] = 'Turvalisuse huvides autenteerimise võti administraatorite puhul ei toimi.'; $lang['(determined from photos)'] = '(määratud fotode järgi)'; @@ -1001,4 +1003,4 @@ $lang['Piwigo requires an album to add photos.'] = 'Fotode lisamiseks on vaja lu $lang['Display category date'] = 'Näita kategooria kuupäeva'; $lang['Deletion in progress'] = 'Toimub kustutamine'; $lang['Create a first album'] = 'Loo esimene album'; -$lang['... or hide this link'] = '... või peida see link'; \ No newline at end of file +$lang['... or hide this link'] = '... või peida see link'; diff --git a/language/eu_ES/admin.lang.php b/language/eu_ES/admin.lang.php index 158a07893..87528c86f 100755 --- a/language/eu_ES/admin.lang.php +++ b/language/eu_ES/admin.lang.php @@ -389,12 +389,12 @@ $lang['No user is permitted to see this private album'] = 'Ez da erabiltzailerik $lang['No results'] = 'Ez dago emaitzarik'; $lang['No recipient selected'] = 'Ez da hartzailerik hautatu'; $lang['No matching user found'] = 'Ez da aurkitu ba datorren erabiltzailerik'; -$lang['No photo selected, no action possible.'] = 'Ez da argazkirik hautatu, ez dago burutu daiteken ekintzarik.'; +$lang['No photos selected, no actions possible.'] = 'Ez da argazkirik hautatu, ez dago burutu daiteken ekintzarik.'; $lang['No photo selected, %d photos in current set'] = 'Ez da argazkirik hautatu, %d argazki uneko multzoan'; $lang['No photo in this album'] = 'Ez dago argazkirik albumean'; $lang['No photo in the current set.'] = 'Ez dago argazkirik uneko multzoan.'; $lang['No photo can be deleted'] = 'Ezin daiteke argazkirik ezabatu'; -$lang['No group selected, no action possible.'] = 'Ez da talderik hautatu, ez dago burutu daiteken ekintzarik.'; +$lang['No groups selected, no actions possible.'] = 'Ez da talderik hautatu, ez dago burutu daiteken ekintzarik.'; $lang['No order field selected'] = 'Ez da hautatu ordena-eremurik '; $lang['No members to manage'] = 'Ez dago kudeatu beharreko kiderik'; $lang['No mail to send.'] = 'Ez dago bidali beharreko posta elektronikorik.'; @@ -624,7 +624,7 @@ $lang['Notification'] = 'Jakinarazpena'; $lang['Not cropped correctly?'] = 'Ez al da behar bezala moztu?'; $lang['None'] = 'Bat ere ez'; $lang['No user to send notifications by mail.'] = 'Ez dago erabiltzailerik posta elektroniko bidez jakinarazteko.'; -$lang['No user selected, no action possible.'] = 'Ez da erabiltzailerik hautatu, ez dago burutu daiteken ekintzarik.'; +$lang['No users selected, no actions possible.'] = 'Ez da erabiltzailerik hautatu, ez dago burutu daiteken ekintzarik.'; $lang['Support'] = 'Laguntza'; $lang['Summary'] = 'Laburpena'; $lang['Sum of rates'] = 'Balorazioen batuketa'; @@ -980,7 +980,7 @@ $lang['Select tags'] = 'Hautatu etiketak'; $lang['Running on an up-to-date Piwigo is important for security.'] = 'Eguneratutako Piwigo bertsioa exekutatzea garrantzitsua da segurtasun kontuekaitik.'; $lang['Piwigo Remote Sync is able to upload a whole folder hierarchy. If you run it again, only new photos will be uploaded.'] = 'Piwigo Remote Sync karpeta-hierarki osoa kargatzeko ahalmena du. Berriro exekutatzen baduzu, argazki berriak baino ez dira kargatuko.'; $lang['Piwigo %s is available, please update'] = 'Piwigo %s eskuragarri, eguneratu mesedez'; -$lang['No tag selected, no action possible.'] = 'Ez da etiketarik hautatu, ezin da ekintzarik aurrera eraman.'; +$lang['No tags selected, no actions possible.'] = 'Ez da etiketarik hautatu, ezin da ekintzarik aurrera eraman.'; $lang['No filter on album. Select one or type to search'] = 'Ez dago iragazkirik albumerako. Hautatu edo bilatu bat'; $lang['It only takes a few clicks.'] = 'Klik gutxi batzu baino ez da.'; $lang['First photo added'] = 'Lehenengo argazkia gehitu egin da'; @@ -1004,4 +1004,4 @@ $lang['Deletion in progress'] = 'Ezabatzen'; $lang['Create a first album'] = 'Sortu Lehenengo Album bat'; $lang['Compute %d missing checksums'] = 'Kalkulatu galdutako %d kontroleko batura(k)'; $lang['... or hide this link'] = '... edo ezkutatu esteka'; -$lang['%d checksums were added'] = '%d kontroleko batura gehitu d(ir)a'; \ No newline at end of file +$lang['%d checksums were added'] = '%d kontroleko batura gehitu d(ir)a'; diff --git a/language/fa_IR/admin.lang.php b/language/fa_IR/admin.lang.php index 9eb8713da..e9886d647 100644 --- a/language/fa_IR/admin.lang.php +++ b/language/fa_IR/admin.lang.php @@ -665,7 +665,7 @@ $lang['Refresh photo set'] = 'تازه کردن (Refresh) Ø³ÙØª عکس ها'; $lang['The whole page'] = 'تمام ØµÙØÙ‡'; $lang['The whole set'] = 'تمامی عکس ها (Ú©Ù„ Ø³ÙØª)'; $lang['No photo in the current set.'] = 'هیچ عکسی در این Ø³ÙØª نیست.'; -$lang['No photo selected, no action possible.'] = 'هیچ عکسی انتخاب نشده است، هیچ کاری ممکن نیست.'; +$lang['No photos selected, no actions possible.'] = 'هیچ عکسی انتخاب نشده است، هیچ کاری ممکن نیست.'; $lang['Choose an action'] = 'یک کار را انتخاب کنید'; $lang['remove author'] = 'پاک کردن نویسنده'; $lang['Type here the author name'] = 'نام نویسنده را اینجا تایپ نمایید'; @@ -842,6 +842,7 @@ $lang['Multiple Size'] = 'چند سایزه'; $lang['Not cropped correctly?'] = 'درست بریده نشد؟'; $lang['Numeric identifier : %d'] = 'شناسه‌ی عددی: %d'; $lang['Permission management'] = 'مدیریت دسترسی‌ها'; +$lang['Piwigo for Android'] = 'Ø¯Ø±ÛŒØ§ÙØª Piwigo برای Android'; $lang['Rated %d times, score : %.2f'] = 'به تعداد %d بار رأی داده شده، امتیاز : %.2f'; $lang['Save manual order'] = 'ذخیره ÛŒ ترتیب دستی'; $lang['Sharpen'] = 'ØØ§Ù„ت تیز (Sharpen)'; @@ -859,6 +860,7 @@ $lang['cancel manual order'] = 'لغو تغییرات ترتیب دستی'; $lang['middle'] = 'وسط'; $lang['top left corner'] = 'گوشه ÛŒ بالا سمت Ú†Ù¾'; $lang['top right corner'] = 'گوشه ÛŒ بالا سمت راست'; +$lang['Piwigo for Android application empowers you to connect your Android phone or table to your Piwigo gallery, create some albums and upload several photos at once.'] = 'Ù†Ø±Ù…â€ŒØ§ÙØ²Ø§Ø± Piwigo برای Android به شما قدرت وصل شدن به گالری، ساخت آلبوم Ùˆ آپلود عکس به Ú©Ù…Ú© موبایل یا تبلت آندرویدتان را می‌دهد.'; $lang['Piwigo for iOS application empowers you to connect to your Piwigo gallery from your iPhone, iPad or iPod Touch, create some albums and upload several photos at once.'] = 'Ù†Ø±Ù…â€ŒØ§ÙØ²Ø§Ø± Piwigo برای iOS به شما قدرت وصل شدن به گالری، ساخت آلبوم Ùˆ آپلود عکس به Ú©Ù…Ú© iPhoneØŒ iPad یا iPod Touch ـتان را می‌دهد.'; $lang['Adobe Photoshop Lightroom is a photography software designed to manage large quantities of digital images and doing post production work.'] = 'Adobe Photoshop Lightroom یک Ù†Ø±Ù…â€ŒØ§ÙØ²Ø§Ø± عکاسی می‌باشد Ú©Ù‡ برای مدیریت عکس‌های دیجیتالی بزرگ طراØÛŒ شده است.'; $lang['Center of interest'] = 'نقطه‌ی طلایی (Center of Interest)'; @@ -913,7 +915,7 @@ $lang['View in gallery'] = 'نمایش در گالری'; $lang['Duplicate'] = 'دوتایی کردن'; $lang['Manage the members'] = 'مدیریت کاربران'; $lang['Merge selected groups'] = 'ترکیب گروه‌های انتخاب شده'; -$lang['No group selected, no action possible.'] = 'گروهی انتخاب نشده است، هیچ کاری انجام نخواهد شد.'; +$lang['No groups selected, no actions possible.'] = 'گروهی انتخاب نشده است، هیچ کاری انجام نخواهد شد.'; $lang['No members to manage'] = 'کاربری برای ترکیب وجود ندارد'; $lang['Please select at least two groups'] = 'دست Ú©Ù… باید دو گروه را انتخاب کنید'; $lang['Ratio'] = 'نسبت'; @@ -943,7 +945,7 @@ $lang['Showing %s to %s of %s users'] = 'نمايش از %s تا %s از بين $lang['Show %s users'] = 'نمايش %s كاربر'; $lang['Registered on %s, %s.'] = 'ثبت شده در %s, %s.'; $lang['Open user details'] = 'باز كردن مشخصات كاربر'; -$lang['No user selected, no action possible.'] = 'هيچ كاربري انتخاب نشده است، هيچ كاري ممكن نيست.'; +$lang['No users selected, no actions possible.'] = 'هيچ كاربري انتخاب نشده است، هيچ كاري ممكن نيست.'; $lang['No user selected of %d users'] = 'هيچ كاربري از بين %d كاربر انتخاب نشده است.'; $lang['Last visit on %s, %s.'] = 'آخرين بازديد در %s, %s.'; $lang['Close user details'] = 'بستن مشخصات كاربر'; @@ -993,7 +995,7 @@ $lang['(determined from photos)'] = '(تعیین شده از روی عکس‌ه $lang['Confirm deletion'] = 'تایید پاک کردن'; $lang['Delete album "%s" and its %d sub-albums.'] = 'آلبوم "%s" Ùˆ همه‌ی %d زیرآلبوم آن پاک شوند.'; $lang['No filter on album. Select one or type to search'] = 'Ùیلتری روی آلبوم اعمال نشده است. یک Ùیلتر انتخاب کرده Ùˆ یا واژه‌ی مورد نظر خود را تایپ کنید'; -$lang['No tag selected, no action possible.'] = 'هیچ برچسبی انتخاب نشده، کاری قابل انجام نیست'; +$lang['No tags selected, no actions possible.'] = 'هیچ برچسبی انتخاب نشده، کاری قابل انجام نیست'; $lang['Piwigo %s is available, please update'] = 'ورژن %s از Piwigo آماده‌ی آپدیت کردن است '; $lang['Piwigo Remote Sync is able to upload a whole folder hierarchy. If you run it again, only new photos will be uploaded.'] = 'Piwigo Remote Sync قابلیت این را دارد Ú©Ù‡ یک پوشه(Ùولدر) را با تمام زیر مجموعه هایش آپلود کند. اگر مجدد این عملیات را انجام دهید Ùقط موارد جدید آپلود میشود.'; diff --git a/language/fi_FI/admin.lang.php b/language/fi_FI/admin.lang.php index bd267d869..153ed79be 100644 --- a/language/fi_FI/admin.lang.php +++ b/language/fi_FI/admin.lang.php @@ -482,6 +482,7 @@ $lang['Automatic sort order'] = 'Automaattinen järjestys'; $lang['Available on'] = 'Saatavilla'; $lang['Average rate'] = 'Pisteiden keskiarvo'; $lang['Batch Manager'] = 'Massahallintatyökalu'; +$lang['Piwigo for Android application empowers you to connect your Android phone or table to your Piwigo gallery, create some albums and upload several photos at once.'] = 'Piwigo Androidille applikaatio mahdollistaa yhdistämisen Android laitteestasi Piwigo galleriaan albumeiden luontia ja kuvien lisäämistä varten.'; $lang['Options'] = 'Valinnat'; $lang['Original Size'] = 'Alkuperäinen koko'; $lang['No photo in the current set.'] = 'Ei kuvaa tässä setissä'; @@ -557,7 +558,7 @@ $lang['Search for new images in the directories'] = 'Etsi uusia kuvia hakemistoi $lang['Searching...'] = 'Etsii...'; $lang['Type in a search term'] = 'Kirjoita hakusana'; $lang['Permissions'] = 'Oikeudet'; -$lang['No photo selected, no action possible.'] = 'Ei valittua valokuvaa, ei mahdollisia toimintoja.'; +$lang['No photos selected, no actions possible.'] = 'Ei valittua valokuvaa, ei mahdollisia toimintoja.'; $lang['Select:'] = 'Valitse:'; $lang['Selection'] = 'Valinta'; $lang['Delete %d orphan photos'] = 'Poista %d orpoa valokuvaa'; @@ -597,4 +598,4 @@ $lang['Properties'] = 'Ominaisuudet'; $lang['Manage this set of %d photos'] = 'Hallitse tätä %d:n kuvan sarjaa.'; $lang['Empty caddie'] = 'Tyhjennä caddie'; $lang['Remove from caddie'] = 'Poista caddiesta'; -$lang['add new photos to caddie'] = 'Lisää uusia kuvia caddiesta'; \ No newline at end of file +$lang['add new photos to caddie'] = 'Lisää uusia kuvia caddiesta'; diff --git a/language/fr_CA/admin.lang.php b/language/fr_CA/admin.lang.php index 768e3c875..890af82e1 100644 --- a/language/fr_CA/admin.lang.php +++ b/language/fr_CA/admin.lang.php @@ -665,7 +665,7 @@ $lang['Missing a temporary folder'] = 'Impossible de trouver le répertoire temp $lang['No file was uploaded'] = 'Aucun fichier n\'a été transféré'; $lang['No photo in the current set.'] = 'Aucune photo dans le lot.'; $lang['No photo selected, %d photos in current set'] = 'Aucune photo sélectionnée parmi les %d photos du lot'; -$lang['No photo selected, no action possible.'] = 'Aucune photo sélectionnée, aucune action possible.'; +$lang['No photos selected, no actions possible.'] = 'Aucune photo sélectionnée, aucune action possible.'; $lang['on the %d selected photos'] = 'sur les %d photos sélectionnées'; $lang['Orphan tags deleted'] = 'Mots clés orphelins supprimés'; $lang['Refresh photo set'] = 'Rafraîchir le lot de photos'; @@ -826,6 +826,8 @@ $lang['Applications'] = 'Applications'; $lang['Available on'] = 'Disponible sur'; $lang['Piwigo for iOS (iPhone, iPad, iPod Touch)'] = 'Piwigo pour iOS (iPhone, iPad, iPod Touch)'; $lang['Piwigo for iOS application empowers you to connect to your Piwigo gallery from your iPhone, iPad or iPod Touch, create some albums and upload several photos at once.'] = 'L\'application Piwigo pour iOS vous permet de connecter votre iPhone, iPad ou iPod Touch à votre galerie Piwigo pour y créer des albums et envoyer plusieurs photos à la fois.'; +$lang['Piwigo for Android'] = 'Piwigo pour Android'; +$lang['Piwigo for Android application empowers you to connect your Android phone or table to your Piwigo gallery, create some albums and upload several photos at once.'] = 'L\'application Piwigo pour Android vous permet de connecter votre smartphone ou votre tablette Android à votre galerie Piwigo pour y créer des albums et envoyer plusieurs photos à la fois.'; $lang['Piwigo Publish plugin for Lightroom'] = 'Plugin de publication Piwigo pour Lightroom'; $lang['Adobe Photoshop Lightroom is a photography software designed to manage large quantities of digital images and doing post production work.'] = 'Adobe Photoshop Lightroom est un logiciel de photographie conçu pour gérer d\'importantes collections de photos numériques et les post-traiter.'; $lang['The Piwigo publish Plug-in allows you to export and synchronize photos from Lightroom directly to your Piwigo photo gallery.'] = 'Le plugin de publication Piwigo pour Lightroom vous permet d\'exporter et synchroniser vos photos de Lightroom vers votre galerie Piwigo.'; @@ -911,7 +913,7 @@ $lang['Source tag'] = 'Source du mot clé'; $lang['Tag "%s" is now a duplicate of "%s"'] = 'Le mot clé "%s" est désormais une copie de "%s"'; $lang['Manage the members'] = 'Gérer les membres'; $lang['Type here the name of the new group'] = 'Inscrivez ici le nom du nouveau groupe'; -$lang['No group selected, no action possible.'] = 'Pas de groupes sélectionnés, pas d\'actions possibles.'; +$lang['No groups selected, no actions possible.'] = 'Pas de groupes sélectionnés, pas d\'actions possibles.'; $lang['Please select at least two groups'] = 'Merci de sélectionner au moins deux groupes'; $lang['Duplicate'] = 'Dupliquer'; $lang['Merge selected groups'] = 'Fusionner les groupes sélectionnés'; @@ -946,7 +948,7 @@ $lang['Last visit on %s, %s.'] = 'Dernière visite le %s, %s.'; $lang['Loading...'] = 'Chargement...'; $lang['No matching user found'] = 'Aucun utilisateur à afficher'; $lang['No user selected of %d users'] = 'Aucun utilisateur sélectionné sur les %d'; -$lang['No user selected, no action possible.'] = 'Aucun utilisateur sélectionné, aucune action possible.'; +$lang['No users selected, no actions possible.'] = 'Aucun utilisateur sélectionné, aucune action possible.'; $lang['Password updated'] = 'Mot de passe mis à jour'; $lang['Registered on %s, %s.'] = 'Enregistré depuis le %s, %s.'; $lang['Show %s users'] = 'Afficher %s utilisateurs'; @@ -974,9 +976,9 @@ $lang['file name'] = 'nom de fichier'; $lang['width & height'] = 'largeur et hauteur'; $lang['Select tags'] = 'Sélectionner des mots clés'; $lang['Each email sent will contain its own automatic authentication key on links, valid for %s.'] = 'Chaque courriel envoyé contiendra sa propre clef d\'identification automatique sur les liens, valide %s.'; -$lang['No tag selected, no action possible.'] = 'Aucun mot clé sélectionné, aucune action possible.'; +$lang['No tags selected, no actions possible.'] = 'Aucun mot clé sélectionné, aucune action possible.'; $lang['checksums to add'] = 'Checksums à ajouter'; $lang['With no checksum'] = 'Sans checksums'; $lang['Some checksums are missing.'] = 'Des checksums sont manquants'; $lang['Compute %d missing checksums'] = 'Calcule %d des checksums manquants'; -$lang['%d checksums were added'] = '%d des checksums ont été ajoutés'; \ No newline at end of file +$lang['%d checksums were added'] = '%d des checksums ont été ajoutés'; diff --git a/language/fr_CA/common.lang.php b/language/fr_CA/common.lang.php index 50d10915e..2a4a9c6b2 100644 --- a/language/fr_CA/common.lang.php +++ b/language/fr_CA/common.lang.php @@ -417,4 +417,4 @@ $lang['Photo description'] = 'Description de la photo'; $lang['Photo title'] = 'Titre de la photo'; $lang['generate random password'] = 'générer un mot de passe aléatoire'; $lang['Your authentication key is no longer valid.'] = 'Voter clef d\'identification n\'est plus valide'; -$lang['Invalid username or password!'] = 'Nom d\'utilisateur ou mot de passe invalide !'; \ No newline at end of file +$lang['Invalid username or password!'] = 'Nom d\'utilisateur ou mot de passe invalide !'; diff --git a/language/fr_FR/admin.lang.php b/language/fr_FR/admin.lang.php index 87fce89ec..0f51a8e8c 100644 --- a/language/fr_FR/admin.lang.php +++ b/language/fr_FR/admin.lang.php @@ -204,8 +204,8 @@ $lang['jump to photo'] = 'Voir la photo'; $lang['leave'] = "laisser"; $lang['Lock'] = "Verrouiller"; $lang['Locked'] = "Verrouillées"; -$lang['manage album photos'] = 'Gérer les photos de l\'album'; -$lang['manage sub-albums'] = 'Gérer les sous-albums'; +$lang['manage album photos'] = 'gérer les photos de l\'album'; +$lang['manage sub-albums'] = 'gérer les sous-albums'; $lang['Manage'] = "Gérer"; $lang['Execution time is out, treatment must be continue [Estimated time: %d second].'] = "Le temps d'exécution étant dépassé, le traitement doit continuer [Temps estimé: %d second]."; $lang['Execution time is out, treatment must be continue [Estimated time: %d seconds].'] = "Le temps d'exécution étant dépassé, le traitement doit continuer [Temps estimé: %d secondes]."; @@ -458,9 +458,9 @@ $lang['Plugin list'] = "Liste des plugins"; $lang['Check for updates'] = "Rechercher les mises à jour"; $lang['Other plugins'] = "Autres plugins disponibles"; $lang['Last revisions'] = "Dernières révisions"; -$lang['Are you sure you want to delete this plugin?'] = "Etes-vous sûr de vouloir supprimer ce plugin?"; -$lang['Are you sure you want to install this plugin?'] = "Etes-vous sûr de vouloir installer ce plugin?"; -$lang['Are you sure to install this upgrade? You must verify if this version does not need uninstallation.'] = "Etes-vous sur de vouloir installer cette mise à jour? Vous devez vérifiez que cette mise à jour ne nécessite pas de désinstallation préalable."; +$lang['Are you sure you want to delete this plugin?'] = "Êtes-vous sûr de vouloir supprimer ce plugin?"; +$lang['Are you sure you want to install this plugin?'] = "Êtes-vous sûr de vouloir installer ce plugin?"; +$lang['Are you sure to install this upgrade? You must verify if this version does not need uninstallation.'] = "Êtes-vous sur de vouloir installer cette mise à jour? Vous devez vérifiez que cette mise à jour ne nécessite pas de désinstallation préalable."; $lang['Plugin has been successfully copied'] = "Le plugin a été copié avec succès."; $lang['Can\'t create temporary file.'] = "Impossible de créer un fichier temporaire."; $lang['Can\'t download archive.'] = "Impossible de télécharger l'archive."; @@ -674,7 +674,7 @@ $lang['Refresh photo set'] = 'Rafraîchir le lot de photos'; $lang['The whole page'] = 'Toute la page'; $lang['The whole set'] = 'Tout le lot'; $lang['No photo in the current set.'] = 'Aucune photo dans le lot.'; -$lang['No photo selected, no action possible.'] = 'Aucune photo sélectionnée, aucune action possible.'; +$lang['No photos selected, no actions possible.'] = 'Aucune photo sélectionnée, aucune action possible.'; $lang['Choose an action'] = 'Choisir une action'; $lang['remove author'] = 'supprimer l\'auteur'; $lang['Type here the author name'] = 'Entrez ici le nom de l\'auteur'; @@ -701,7 +701,7 @@ $lang['THIS PLUGIN IS NOW PART OF PIWIGO CORE! DELETE IT NOW.'] = 'CE PLUGIN FAI $lang['ERROR: THIS PLUGIN IS MISSING BUT IT IS INSTALLED! UNINSTALL IT NOW.'] = 'ERREUR: CE PLUGIN EST MANQUANT MAIS TOUJOURS INSTALLÉ! DÉSINSTALLEZ-LE.'; $lang['display'] = 'Afficher'; $lang['Restore'] = "Restaurer"; -$lang['Restore default configuration. You will lose your plugin settings!'] = "Restaurer la configuration par défaut? Vous perdrez vos réglages personnels !"; +$lang['Restore default configuration. You will lose your plugin settings!'] = "Restaurer la configuration par défaut ? Vous perdrez vos réglages personnels !"; $lang['Thumbnails generation in progress...'] = 'Génération des miniatures en cours...'; $lang['Photos generation in progress...'] = 'Génération des photos en cours...'; $lang['%s photos have been regenerated'] = '%s photos ont été régénérées'; @@ -823,6 +823,8 @@ $lang['Applications'] = 'Applications'; $lang['Available on'] = 'Disponible sur'; $lang['Piwigo for iOS (iPhone, iPad, iPod Touch)'] = 'Piwigo pour iOS (iPhone, iPad, iPod Touch)'; $lang['Piwigo for iOS application empowers you to connect to your Piwigo gallery from your iPhone, iPad or iPod Touch, create some albums and upload several photos at once.'] = 'L\'application Piwigo pour iOS vous permet de connecter votre iPhone, iPad ou iPod Touch à votre galerie Piwigo pour y créer des albums et envoyer plusieurs photos à la fois.'; +$lang['Piwigo for Android'] = 'Piwigo pour Android'; +$lang['Piwigo for Android application empowers you to connect your Android phone or table to your Piwigo gallery, create some albums and upload several photos at once.'] = 'L\'application Piwigo pour Android vous permet de connecter votre smartphone ou votre tablette Android à votre galerie Piwigo pour y créer des albums et envoyer plusieurs photos à la fois.'; $lang['Piwigo Publish plugin for Lightroom'] = 'Plugin de publication Piwigo pour Lightroom'; $lang['Adobe Photoshop Lightroom is a photography software designed to manage large quantities of digital images and doing post production work.'] = 'Adobe Photoshop Lightroom est un logiciel de photographie conçu pour gérer d\'importantes collections de photos numériques et les post-traiter.'; $lang['The Piwigo publish Plug-in allows you to export and synchronize photos from Lightroom directly to your Piwigo photo gallery.'] = 'Le plugin de publication Piwigo pour Lightroom vous permet d\'exporter et synchroniser vos photos de Lightroom vers votre galerie Piwigo.'; @@ -877,7 +879,7 @@ $lang['Y Position'] = 'Position Y'; $lang['Multiple Size'] = 'Tailles multiples'; $lang['Watermark'] = 'Filigrane'; $lang['Original file : %s'] = 'Fichier original : %s'; -$lang['Posted %s on %s'] = 'Postée %s le %s'; +$lang['Posted the %s'] = 'Postée le %s'; $lang['Added by %s'] = 'Ajouté par %s'; $lang['Visited %d times'] = 'Visitée %d fois'; $lang['Numeric identifier : %d'] = 'Identifiant numérique : %d'; @@ -899,7 +901,7 @@ $lang['%d minutes'] = '%d minutes'; $lang['%d second'] = '%d seconde'; $lang['%d seconds'] = '%d secondes'; $lang['Sharpen'] = 'Renforcer la netteté'; -$lang['Edit photo'] = 'Éditer la photo'; +$lang['Edit photo #%s'] = 'Éditer la photo #%s'; $lang['create a new site'] = 'créer un nouveau site'; $lang['No order field selected'] = 'Aucun critère de tri sélectionné'; $lang['Name of the duplicate'] = "Nom du duplicata"; @@ -919,7 +921,7 @@ $lang['between %d and %d pixels'] = 'entre %d et %d pixels'; $lang['between %.2f and %.2f'] = 'entre %.2f et %.2f'; $lang['Manage the members'] = 'Gérer les membres'; $lang['Type here the name of the new group'] = 'Inscrivez ici le nom du nouveau groupe'; -$lang['No group selected, no action possible.'] = 'Pas de groupes sélectionnés, pas d\'actions possibles.'; +$lang['No groups selected, no actions possible.'] = 'Pas de groupes sélectionnés, pas d\'actions possibles.'; $lang['Please select at least two groups'] = 'Merci de sélectionner au moins deux groupes'; $lang['Duplicate'] = 'Dupliquer'; $lang['Merge selected groups'] = 'Fusionner les groupes sélectionnés'; @@ -937,7 +939,7 @@ $lang['Show %s users'] = 'Afficher %s utilisateurs'; $lang['No matching user found'] = 'Aucun utilisateur à afficher'; $lang['Showing %s to %s of %s users'] = 'Affichage des utilisateurs %s à %s sur %s'; $lang['(filtered from %s total users)'] = '(filtré de %s utilisateurs au total)'; -$lang['No user selected, no action possible.'] = 'Aucun utilisateur sélectionné, aucune action possible.'; +$lang['No users selected, no actions possible.'] = 'Aucun utilisateur sélectionné, aucune action possible.'; $lang['%d of %d users selected'] = '%d des %d utilisateurs sélectionnés.'; $lang['No user selected of %d users'] = 'Aucun utilisateur sélectionné sur les %d'; $lang['All %d users are selected'] = 'Tous les %d utilisateurs sont sélectionnés'; @@ -976,7 +978,7 @@ $lang['Each email sent will contain its own automatic authentication key on link $lang['For security reason, authentication keys do not work for administrators.'] = 'Par mesure de sécurité les clefs d\'identification ne fonctionnent pas pour les administrateurs.'; $lang['Y Repeat'] = 'Répétition Y'; $lang['Select tags'] = 'Sélectionner des tags'; -$lang['No tag selected, no action possible.'] = 'Aucun tag sélectionné, aucune action possible.'; +$lang['No tags selected, no actions possible.'] = 'Aucun tag sélectionné, aucune action possible.'; $lang['Display form'] = 'Afficher le formulaire'; $lang['Delete album "%s".'] = 'Supprimer l\'album "%s".'; $lang['Delete album "%s" and its %d sub-albums.'] = 'Supprimer l\'album "%s" et ses %d sous-albums.'; @@ -1000,6 +1002,9 @@ $lang['Time has come to update your Piwigo with version %s, go to %s'] = 'Il est $lang['Welcome!'] = 'Bienvenue !'; $lang['Piwigo requires an album to add photos.'] = 'Piwigo a besoin d\'un album pour y ajouter des photos.'; $lang['Create a first album'] = 'Créer un premier album'; +$lang['Search tips'] = 'Conseils de recherche'; +$lang['Posted %s'] = 'Postée %s'; +$lang['File type: %s'] = 'Type du fichier : %s'; $lang['or'] = 'ou'; $lang['%d checksums were added'] = '%d sommes de contrôle ont été ajoutées'; $lang['Compute %d missing checksums'] = 'Calcule %d sommes de contrôle manquantes'; @@ -1009,4 +1014,68 @@ $lang['checksums to add'] = 'sommes de contrôle à ajouter'; $lang['Synchronization in progress'] = 'Synchronisation en cours'; $lang['Some checksums are missing.'] = 'Il manque des sommes de contrôle'; $lang['Display category date'] = 'Afficher la date de la catégorie'; -$lang['Deletion in progress'] = 'Suppression en cours'; \ No newline at end of file +$lang['Deletion in progress'] = 'Suppression en cours'; +$lang['Open in gallery'] = "Ouvrir dans la galerie"; +$lang['Promote mobile app on mobile devices'] = 'Promouvoir l\'application mobile sur les smartphones et tablettes'; +$lang['in gallery'] = 'dans la galerie'; +$lang['in administration'] = 'dans l\'administration'; +$lang['Displays a banner to install or open the official Piwigo app'] = 'Affiche une bannière pour installer et/ou ouvrir l\'application mobile officielle Piwigo'; +$lang['Search albums'] = 'Rechercher des albums'; +$lang['You have %d orphan tags %s'] = 'Vous avez %d tag(s) orphelin(s) %s'; +$lang['Review'] = 'Examiner'; +$lang['You have %s1 orphan : %s2'] = 'Vous avez %s1 orphelin(s) : %s2'; +$lang['Delete tags \{%s\}?'] = 'Supprimer les tags \{%s\}?'; +$lang['Yes, delete'] = 'Oui, je veux supprimer'; +$lang['No, I have changed my mind'] = 'Non, j\'ai changé d\'avis'; +$lang['Tag "%s" succesfully deleted'] = 'Le tag \"%s\" a été supprimé'; +$lang['Tags \{%s\} succesfully deleted'] = 'Les tags \{%s\} ont été supprimés'; +$lang['Tag "%s" created'] = 'Le tag \"%s\" a été créé'; +$lang['Tag "%s1" renamed in "%s2"'] = 'Le tag \"%s1\" a été renommé en \"%s2\"'; +$lang['Delete orphan tags ?'] = 'Supprimer les tags orphelins?'; +$lang['Delete them'] = 'Les supprimer'; +$lang['Keep them'] = 'Les garder'; +$lang[' (copy)'] = ' (copie)'; +$lang[' (copy %s)'] = ' (copie %s)'; +$lang['Tag(s) \{%s1\} succesfully merged into "%s2"'] = 'Les tags \{%s1\} ont été fusionnés dans "%s2"'; +$lang['and %s others'] = 'et %s autres'; +$lang['%s other tags available..'] = '%s autres tags disponibles..'; +$lang['%d photos'] = '%d photos'; +$lang['no photo'] = 'pas de photos'; +$lang['Select all %d tags'] = 'Selectionner tout des %d tags'; +$lang['Clear Selection'] = 'Vider la sélection'; +$lang['The %d tags on this page are selected'] = 'Les %d tags sur cette page sont sélectionnés'; +$lang['%d tag selected'] = '%d tag sélectionné'; +$lang['%d tags found'] = '%d tags trouvés'; +$lang['%d tag found'] = '%d tag trouvé'; +$lang['Selection mode'] = 'Mode sélection'; +$lang['At least 2 selected tags are needed to merge'] = 'Au moins 2 tags doivent être sélectionnés pour fusionner'; +$lang['Merge'] = 'Fusionner'; +$lang['Choose which tag to merge these tags into'] = 'Choisissez dans quel tag vont être fusionné les tags'; +$lang['The other tags will be removed'] = 'Les autres tags seront supprimés'; +$lang['Select'] = 'Sélectionner'; +$lang['Tag Manager'] = 'Gestionnaire de tags'; +$lang['No tag found'] = 'Pas de tag trouvé'; +$lang['Manage album photos'] = 'Gérer les photos de l\'album'; +$lang['Manage sub-albums'] = 'Gérer les sous-albums'; +$lang['Delete album'] = 'Supprimer l\'album'; +$lang['Are you sure you want to delete this site?'] = 'Êtes-vous sûr de supprimer ce site ?'; +$lang['Yes, I am sure'] = 'Oui, je suis sûr'; +$lang['Are you sure you want to delete this theme?'] = 'Êtes-vous sûr de supprimer ce thème ?'; +$lang['Are you sure you want to restore this plugin?'] = 'Êtes-vous sûr de restaurer ce plugin ?'; +$lang['Are you sure you want to delete this?'] = 'Êtes-vous sûr de supprimer cela ?'; +$lang['Are you sure you want to restore to default settings?'] = 'Êtes-vous sûr de vouloir rétablir les valeurs par défaut ?'; +$lang['Are you sure you want to delete the ratings of the user "%s"?'] = 'Êtes-vous sûr de vouloir supprimer les notations de l\'utilisateur "%s" ?'; +$lang['Are you sure you want to install the plugin "%s"?'] = 'Êtes-vous sûr de vouloir installer le plugin "%s" ?'; +$lang['Are you sure you want to delete the plugin "%s"?'] = 'Êtes-vous sûr de vouloir supprimer le plugin "%s" ?'; +$lang['Are you sure you want to restore the plugin "%s"?'] = 'Êtes-vous sûr de vouloir restaurer le plugin "%s" ?'; +$lang['Are you sure you want to delete all sizes?'] = 'Êtes-vous sûr de vouloir supprimer toutes les tailles ?'; +$lang['Are you sure you want to lock the gallery?'] = 'Êtes-vous sûr de vouloir verrouiller la galerie ?'; +$lang['Are you sure you want to delete the language "%s"?'] = 'Êtes-vous sûr de vouloir supprimer la langue "%s" ?'; +$lang['Are you sure you want to delete the theme "%s"?'] = 'Êtes-vous sûr de vouloir supprimer le thème "%s" ?'; +$lang['Are you sure you want to update all extensions?'] = 'Êtes-vous sûr de vouloir mettre à jour toutes les extensions ?'; +$lang['Are you sure you want to delete the user "%s"?'] = 'Êtes-vous sûr de vouloir supprimer l\'utilisateur "%s" ?'; +$lang['Please upgrade your PHP version before any update.'] = 'Il faudra mettre à jour votre PHP avant de pouvoir mettre à jour Piwigo.'; +$lang['Requires PHP %s'] = 'Requiert PHP %s'; +$lang['%s MB used'] = '%s MB utilisés'; +$lang['%s GB used'] = '%s GB utilisés'; + diff --git a/language/fr_FR/common.lang.php b/language/fr_FR/common.lang.php index 082d80b2e..96e4861cf 100644 --- a/language/fr_FR/common.lang.php +++ b/language/fr_FR/common.lang.php @@ -412,4 +412,5 @@ $lang['Album name, Z → A'] = 'Nom de l\'album, Z → A'; $lang['Link: %s'] = 'Lien: %s'; $lang['Your authentication key is no longer valid.'] = 'Votre clef d\'identification n\'est plus valide.'; $lang['Invalid username or password!'] = 'Nom d\'utilisateur ou mot de passe invalide !'; -$lang['generate random password'] = 'générer un mot de passe aléatoire'; \ No newline at end of file +$lang['generate random password'] = 'générer un mot de passe aléatoire'; +$lang['Related albums'] = 'Albums liés'; \ No newline at end of file diff --git a/language/gl_ES/admin.lang.php b/language/gl_ES/admin.lang.php index 2dc20ef68..e38cdf5a7 100644 --- a/language/gl_ES/admin.lang.php +++ b/language/gl_ES/admin.lang.php @@ -113,6 +113,7 @@ $lang['ACCESS_5'] = 'Sen acceso'; $lang['Access type'] = 'Tipo de acceso'; $lang['Action'] = 'Acción'; $lang['Actions'] = 'Accións'; +$lang['Piwigo for Android application empowers you to connect your Android phone or table to your Piwigo gallery, create some albums and upload several photos at once.'] = 'O aplicativo Piwigo para Android permÃteche conectar o teu móbil ou tableta Android á túa galerÃa Piwigo, creando álbums e enviando fotos ó mesmo tempo.'; $lang['Piwigo for iOS application empowers you to connect to your Piwigo gallery from your iPhone, iPad or iPod Touch, create some albums and upload several photos at once.'] = 'O aplicativo Piwigo para iOS permÃteche conectar o teu iPhone, iPad ou iPod Touch á túa galerÃa Piwigo, creando álbums e enviando fotos ó mesmo tempo.'; $lang['A locked gallery is only visible to administrators'] = 'Unha galerÃa bloqueada só pode ser vista polos administradores'; $lang['... or '] = '... ou'; @@ -291,6 +292,7 @@ $lang['Piwigo cannot retrieve upgrade file from server'] = 'Piwigo non pode recu $lang['Piwigo configuration'] = 'Configuración de Piwigo'; $lang['Piwigo export plugin for Aperture'] = 'Engadido de exportación Piwigo para Aperture'; $lang['Piwigo export plugin for iPhoto'] = 'Engadido de exportación Piwigo para iPhoto'; +$lang['Piwigo for Android'] = 'Piwigo para Android'; $lang['Piwigo for iOS (iPhone, iPad, iPod Touch)'] = 'Piwigo para iOS (iPhone, iPad, iPod Touch)'; $lang['Piwigo publish plugin for Shotwell'] = 'Engadido de publicación Piwigo para Shotwell'; $lang['Piwigo publish plugin for digiKam'] = 'Engadido de publicación Piwigo para digiKam'; @@ -360,7 +362,7 @@ $lang['No results'] = 'Non hai resultados'; $lang['No user to send notifications by mail.'] = 'Non hai usuario para ser notificado por correo.'; $lang['No photo in this album'] = 'Non hai fotos neste álbum'; $lang['No photo selected, %d photos in current set'] = 'Non hai fotos seleccionadas, hai %d fotos no actual conxunto'; -$lang['No photo selected, no action possible.'] = 'Non hai fotos seleccionadas, non hai acción posible.'; +$lang['No photos selected, no actions possible.'] = 'Non hai fotos seleccionadas, non hai acción posible.'; $lang['No mail to send.'] = 'Non hai ningún correo para ser enviado.'; $lang['No members to manage'] = 'Non hai ningún membro para ser xestionado'; $lang['No order field selected'] = 'Non hai seleccionado ningún campo a ordenar'; @@ -368,7 +370,7 @@ $lang['No photo can be deleted'] = 'Non pode ser borrada ningunha foto'; $lang['No photo in the current set.'] = 'Non hai ningunha foto no actual conxunto.'; $lang['New photos were added'] = 'Foron engadidas novas fotos'; $lang['No file was uploaded'] = 'Non se enviou ningún ficheiro'; -$lang['No group selected, no action possible.'] = 'Non hai ningún grupo seleccionado. Non hai acción posible.'; +$lang['No groups selected, no actions possible.'] = 'Non hai ningún grupo seleccionado. Non hai acción posible.'; $lang['No group is permitted to see this private album'] = 'Ningún grupo ten permiso para ver este álbum privado'; $lang['New photos added'] = 'Novas fotos engadidas'; $lang['Move to album'] = 'Mover ó álbum'; @@ -923,7 +925,7 @@ $lang['All %d users are selected'] = 'Seleccionados %d usuarios (todos)'; $lang['No matching user found'] = 'Non se atopou ningún usuario que coincida'; $lang['No user selected of %d users'] = 'Non está seleccinado nugún dos %d usuarios'; $lang['Showing %s to %s of %s users'] = 'Amosando de %s a %s de %s usuarios'; -$lang['No user selected, no action possible.'] = 'Sen usuario seleccionado non hai acción posible.'; +$lang['No users selected, no actions possible.'] = 'Sen usuario seleccionado non hai acción posible.'; $lang['Resize after upload disabled due to the use of GD as graphic library'] = 'Mudar tamaño despois de enviar está desactivado debido ó uso da biblioteca gráfica GD.'; $lang['Show %s users'] = 'Amosar %s usuarios'; $lang['Last visit on %s, %s.'] = 'Última visita o %s, %s.'; @@ -966,4 +968,4 @@ $lang['No recipient selected'] = 'Non hai ningún destinatario seleccionado'; $lang['No user is permitted to see this private album'] = 'O usuario non ten permitido ver este álbum privado'; $lang['Orphans'] = 'Orfos'; $lang['Recipients'] = 'Destinatarios'; -$lang['Y Repeat'] = 'Repetir Y'; \ No newline at end of file +$lang['Y Repeat'] = 'Repetir Y'; diff --git a/language/he_IL/admin.lang.php b/language/he_IL/admin.lang.php index 177121e32..0452e70cd 100644 --- a/language/he_IL/admin.lang.php +++ b/language/he_IL/admin.lang.php @@ -663,7 +663,7 @@ $lang['Refresh photo set'] = '×¨×¢× ×Ÿ ×ת סט ×”×ª×ž×•× ×•×ª'; $lang['The whole page'] = 'העמוד המל×'; $lang['The whole set'] = 'הסט המל×'; $lang['No photo in the current set.'] = '×ין ×ª×ž×•× ×•×ª בסט ×”× ×•×›×—×™.'; -$lang['No photo selected, no action possible.'] = '××£ ×ª×ž×•× ×” ×œ× × ×‘×—×¨×”, ×ין פעולות ×פשריות.'; +$lang['No photos selected, no actions possible.'] = '××£ ×ª×ž×•× ×” ×œ× × ×‘×—×¨×”, ×ין פעולות ×פשריות.'; $lang['Choose an action'] = 'בחר פעולה'; $lang['remove author'] = 'הסר יוצר'; $lang['Type here the author name'] = 'כתוב ×›×ן ×ת ×©× ×”×™×•×¦×¨'; @@ -795,6 +795,7 @@ $lang['Apply watermark if width is bigger than'] = 'הוסף חותמת מי×(w $lang['Automatic sort order'] = 'מיון ×וטומטי'; $lang['Available on'] = 'זמין על'; $lang['%d physicals'] = '%d פיזי'; +$lang['Piwigo for Android'] = 'piwigo ל×× ×“×¨×•×יד'; $lang['Piwigo for iOS (iPhone, iPad, iPod Touch)'] = 'piwigo לios (×יפון, ×יפד, ×יפוד ו×יפוד ט×צ)'; $lang['Posted %s on %s'] = '×¤×•×¨×¡× %s ב %s'; $lang['Resize after upload'] = '×©× ×” גודל ×חרי ×˜×¢×™× ×”'; @@ -894,7 +895,7 @@ $lang['Rename'] = '×©× ×” ש×'; $lang['Duplicate'] = 'שכפל'; $lang['Manage the members'] = '× ×”×œ ×ת החברי×'; $lang['Merge selected groups'] = 'מזג ×ת הקבוצות ×©× ×‘×—×¨×•'; -$lang['No group selected, no action possible.'] = '××£ קבוצה ×œ× × ×‘×—×¨×”, ×ין פעולות ×פשריות.'; +$lang['No groups selected, no actions possible.'] = '××£ קבוצה ×œ× × ×‘×—×¨×”, ×ין פעולות ×פשריות.'; $lang['No members to manage'] = '×ין ×—×‘×¨×™× ×œ× ×”×œ'; $lang['Notify administrators when a comment is'] = 'עדכן ××“×ž×™× ×™× ×›×שר תגובה ×”×™×'; $lang['Piwigo cannot retrieve upgrade file from server'] = 'Piwigo ×œ× ×™×›×•×œ×” לטעון ×ת קבצי השדרוג מהשרת'; @@ -930,7 +931,8 @@ $lang['Open user details'] = 'פתח פרטי משתמש'; $lang['Numeric identifier : %d'] = 'מזהה מספרי: %d'; $lang['On your Linux, simply install Shotwell with your package manager and the activate Piwigo publishing option.'] = 'במערכת ×”×œ×™× ×•×§×¡ שלך, פשוט התקן Shotwell ×¢× ×ž× ×”×œ החבילות ו××– ×ת הפעל ×ת ×פשרות ×”×¤×¨×¡×•× ×©×œ Piwigo.'; $lang['No user selected of %d users'] = '×œ× × ×‘×—×¨ משתמש מתוך %d משתמשי×'; -$lang['No user selected, no action possible.'] = '×œ× × ×‘×—×¨ משתמש, ×ין ×פשרות לבצע ××£ פעולה.'; +$lang['No users selected, no actions possible.'] = '×œ× × ×‘×—×¨ משתמש, ×ין ×פשרות לבצע ××£ פעולה.'; +$lang['Piwigo for Android application empowers you to connect your Android phone or table to your Piwigo gallery, create some albums and upload several photos at once.'] = ' ×פליקציית Piwigo עבור ×× ×“×¨×•×יד מ×פשרת לך להתחבר מטלפון ×”×× ×“×¨×•×יד ×ו הט×בלט שלך לגלריית Piwigo, ליצור ××œ×‘×•×ž×™× ×•×œ×”×¢×œ×•×ª מספר ×ª×ž×•× ×•×ª בו ×–×ž× ×™×ª '; $lang['Last visit on %s, %s.'] = 'ביקור ×חרון ב- %s, %s.'; $lang['Mail theme'] = 'ערכת × ×•×©× ×“×•×ר'; $lang['No matching user found'] = '×œ× × ×ž×¦× ×ž×©×ª×ž×© מת××™×'; @@ -994,7 +996,7 @@ $lang['First photo added'] = '×ª×ž×•× ×” ר××©×•× ×” × ×•×¡×¤×”'; $lang['For security reason, authentication keys do not work for administrators.'] = 'מפתחות ×ימות ×œ× ×¢×•×‘×“×™× ×¢×‘×•×¨ ××“×ž×™× ×™× ×ž×¡×™×‘×•×ª ×בטחה.'; $lang['It only takes a few clicks.'] = '×–×” רק מצריך מספר לחיצות.'; $lang['No filter on album. Select one or type to search'] = '×ין ×¡×™× ×•×Ÿ על ×”×לבו×. בחר ×חד ×ו הקלד לחיפוש'; -$lang['No tag selected, no action possible.'] = '×œ× × ×‘×—×¨×” תגית, ×œ× × ×™×ª×Ÿ לבצע ×©×•× ×¤×¢×•×œ×”.'; +$lang['No tags selected, no actions possible.'] = '×œ× × ×‘×—×¨×” תגית, ×œ× × ×™×ª×Ÿ לבצע ×©×•× ×¤×¢×•×œ×”.'; $lang['No user is permitted to see this private album'] = 'ל××£ משתמש ×ין הרש××” לצפות ב××œ×‘×•× ×¤×¨×˜×™ ×–×”'; $lang['Orphans'] = 'יתומי×'; $lang['Piwigo %s is available, please update'] = 'פיוויגו %s זמין, ×× × ×¢×“×›×Ÿ'; @@ -1012,4 +1014,4 @@ $lang['Visit'] = 'ביקור'; $lang['Welcome!'] = '×‘×¨×•×›×™× ×”×‘××™×!'; $lang['With no checksum'] = '×œ×œ× ×¦\'קס××'; $lang['checksums to add'] = 'צ\'קס××ž×™× ×œ×”×•×¡×¤×”'; -$lang['or'] = '×ו'; \ No newline at end of file +$lang['or'] = '×ו'; diff --git a/language/hr_HR/admin.lang.php b/language/hr_HR/admin.lang.php index 9947135c3..0f9410906 100644 --- a/language/hr_HR/admin.lang.php +++ b/language/hr_HR/admin.lang.php @@ -653,7 +653,7 @@ $lang['new'] = 'novo'; $lang['No file was uploaded'] = 'Datoteka nije poslana'; $lang['No photo in the current set.'] = 'U trenutnoj grupi nema fotografija.'; $lang['No photo selected, %d photos in current set'] = 'Fotografije nisu oznaÄene, %d fotografija u trenutnoj grupi'; -$lang['No photo selected, no action possible.'] = 'Nijedna fotografija nije oznaÄena.'; +$lang['No photos selected, no actions possible.'] = 'Nijedna fotografija nije oznaÄena.'; $lang['No results'] = 'Nema rezultata'; $lang['on the %d selected photos'] = 'na %d oznaÄenih fotografija'; $lang['Orphan tags deleted'] = 'NekoriÅ¡tene oznake su izbrisane'; @@ -739,6 +739,7 @@ $lang['%d years'] = '%d godina'; $lang['%s ago'] = '%s prije'; $lang['%s in the future'] = '%s u budućnosti'; $lang['%u users have automatic permission because they belong to a granted group.'] = '%u korisnici su u grupi koja ima pristup'; +$lang['Piwigo for Android application empowers you to connect your Android phone or table to your Piwigo gallery, create some albums and upload several photos at once.'] = 'Piwigo za Android je aplikacija koja vam omogućava spajanje vaÅ¡eg tableta ili mobilnog telefona na vaÅ¡u Piwigo galeriju. Kreirajte albume i postavite fotografije.'; $lang['Piwigo for iOS application empowers you to connect to your Piwigo gallery from your iPhone, iPad or iPod Touch, create some albums and upload several photos at once.'] = 'Piwigo za iOS je aplikacija koja vam omogućava spajanje vaÅ¡eg iPhone-a, iPada-a ili iPod Touch-a na vaÅ¡u Piwigo galeriju. Kreirajte albume i postavite fotografije.'; $lang['show details'] = 'prikaži pojedinosti'; $lang['top left corner'] = 'gornji lijevi ugao'; @@ -752,6 +753,7 @@ $lang['Watermark'] = 'Vodeni žig'; $lang['Week starts on'] = 'Tjedan poÄinje od'; $lang['Width'] = 'Å irina'; $lang['Select an album'] = 'Odaberi album'; +$lang['Piwigo for Android'] = 'Piwigo za Android'; $lang['Piwigo for iOS (iPhone, iPad, iPod Touch)'] = 'Piwigo za iOS (iPhone, iPad, iPod Touch)'; $lang['Portrait'] = 'Portret'; $lang['Ratio'] = 'Omjer'; diff --git a/language/hu_HU/admin.lang.php b/language/hu_HU/admin.lang.php index 3fca0e0cc..269fae010 100644 --- a/language/hu_HU/admin.lang.php +++ b/language/hu_HU/admin.lang.php @@ -664,7 +664,7 @@ $lang['Refresh photo set'] = 'Képek frissÃtése'; $lang['The whole page'] = 'Összes kép az oldalon'; $lang['The whole set'] = 'A teljes képkészlet'; $lang['No photo in the current set.'] = 'Nem található a feltételnek megfelelÅ‘ kép.'; -$lang['No photo selected, no action possible.'] = 'Nincs kép kiválasztva, nem lehet műveletet végezni.'; +$lang['No photos selected, no actions possible.'] = 'Nincs kép kiválasztva, nem lehet műveletet végezni.'; $lang['Choose an action'] = 'Művelet kiválasztása'; $lang['remove author'] = 'szerzÅ‘ törlése'; $lang['Type here the author name'] = 'Ãrja be a szerzÅ‘ nevét'; @@ -836,6 +836,7 @@ $lang['X Repeat'] = 'X ismétlÅ‘dés'; $lang['Y Position'] = 'Y pozÃció'; $lang['Available on'] = 'ElérhetÅ‘'; $lang['add a new watermark'] = 'új vÃzjel hozzáadása'; +$lang['Piwigo for Android application empowers you to connect your Android phone or table to your Piwigo gallery, create some albums and upload several photos at once.'] = 'A Piwigo for Android alkalmazás segÃtségével csatlakozhat Piwigo galériájához telefonjával vagy táblagépével, létrehozhat új albumokat, feltölthet képeket (egyszerre akár többet is) képgalériájába.'; $lang['Piwigo for iOS application empowers you to connect to your Piwigo gallery from your iPhone, iPad or iPod Touch, create some albums and upload several photos at once.'] = 'A Piwigo for iOS alkalmazás segÃtségével csatlakozhat Piwigo galériájához iPhone, iPad vagy iPod Touch eszközével, létrehozhat új albumokat, feltölthet képeket (egyszerre akár többet is) képgalériájába.'; $lang['Adobe Photoshop Lightroom is a photography software designed to manage large quantities of digital images and doing post production work.'] = 'Az Adobe Photoshop Lightroom egy képkezelÅ‘ program, melyet nagy mennyiségű digitális kép utómunkálataihoz és kezeléséhez terveztek.'; $lang['Features include gallery browsing, album creation and photo upload.'] = 'JellemzÅ‘i: galéria böngészés, album létrehozás, képek feltöltése.'; @@ -844,6 +845,7 @@ $lang['No group is permitted to see this private album'] = 'Nincs engedélyezett $lang['On your Linux, simply install Shotwell with your package manager and the activate Piwigo publishing option.'] = 'Egyszerűen telepÃtheti a Linux csomagkezelÅ‘je segÃtségével, majd könnyedén beállÃthatja Piwigo galériájának eléréséhez.'; $lang['Piwigo Publish plugin for Lightroom'] = 'Piwigo Lightroom feltöltÅ‘'; $lang['Piwigo export plugin for iPhoto'] = 'Piwigo iPhoto feltöltÅ‘'; +$lang['Piwigo for Android'] = 'Piwigo Androidon'; $lang['Piwigo for iOS (iPhone, iPad, iPod Touch)'] = 'Piwigo iOS-en (iPhone, iPad, iPod Touch)'; $lang['Piwigo publish plugin for Shotwell'] = 'Piwigo Shotwell feltöltÅ‘'; $lang['Piwigo publish plugin for digiKam'] = 'Piwigo digiKam feltöltÅ‘'; @@ -916,7 +918,7 @@ $lang['between %d and %d pixels'] = '%d és %d pixel között'; $lang['Duplicate'] = 'Másolat'; $lang['Manage the members'] = 'Tagok kezelése'; $lang['Merge selected groups'] = 'Kiválasztott csoportok egyesÃtése'; -$lang['No group selected, no action possible.'] = 'Nincs kiválasztott csoport, művelet nem lehetséges.'; +$lang['No groups selected, no actions possible.'] = 'Nincs kiválasztott csoport, művelet nem lehetséges.'; $lang['No members to manage'] = 'Nem tagok kezelése'; $lang['Please select at least two groups'] = 'Jelöljön ki legalább két csoport'; $lang['Rename'] = 'Ãtnevezés'; @@ -938,7 +940,7 @@ $lang['Change password'] = 'Jelszó módosÃtása'; $lang['Change username'] = 'Felhasználónév módosÃtása'; $lang['Loading...'] = 'Töltés...'; $lang['No matching user found'] = 'Felhasználó nem található'; -$lang['No user selected, no action possible.'] = 'Választott felhasználó nem található, művelet nem lehetséges'; +$lang['No users selected, no actions possible.'] = 'Választott felhasználó nem található, művelet nem lehetséges'; $lang['Password updated'] = 'Jelszó frissÃtve'; $lang['Update user'] = 'Felhasználó frissÃtése'; $lang['User %s added'] = '%s felhasználó hozzáadva'; @@ -994,7 +996,7 @@ $lang['Display form'] = 'kérdÅ‘Ãv megjelenÃtése'; $lang['First photo added'] = 'Az elsÅ‘ fotó hozzáadva'; $lang['It only takes a few clicks.'] = 'Csak néhány kattintás.'; $lang['No filter on album. Select one or type to search'] = 'Nincs az albumon szűrÅ‘. Válassz egyet, vagy Ãrj be valamit, a kereséshez'; -$lang['No tag selected, no action possible.'] = 'Nincs cimke választva, nincs mit tenni.'; +$lang['No tags selected, no actions possible.'] = 'Nincs cimke választva, nincs mit tenni.'; $lang['Piwigo %s is available, please update'] = 'Piwigo %s már elérhetÅ‘, kérlek, frissÃts'; $lang['Running on an up-to-date Piwigo is important for security.'] = 'A legfrisebb Piwigo-t futtatni biztonsági okok miatt fontos.'; $lang['Select tags'] = 'Válassz cimkéket'; @@ -1012,4 +1014,4 @@ $lang['Deletion in progress'] = 'A törlés folyamatban van'; $lang['Display album date period'] = 'Mutasd minden albumnál a hozzá tartozó dátumokat, pl. "2018 július 12-tÅ‘l 15-ig"'; $lang['Display category date'] = 'Mutasd a kategória dátumát'; $lang['Piwigo requires an album to add photos.'] = 'Piwigo-nak szükséges van egy albumra, hogy képeket lehessen hozzáadni.'; -$lang['Some checksums are missing.'] = 'Néhány ellenÅ‘rzÅ‘szám hiányzik.'; \ No newline at end of file +$lang['Some checksums are missing.'] = 'Néhány ellenÅ‘rzÅ‘szám hiányzik.'; diff --git a/language/it_IT/admin.lang.php b/language/it_IT/admin.lang.php index f1641270c..56c0cf11f 100644 --- a/language/it_IT/admin.lang.php +++ b/language/it_IT/admin.lang.php @@ -673,7 +673,7 @@ $lang['Refresh photo set'] = 'Aggiornare il set di foto'; $lang['The whole page'] = 'Tutta la pagina'; $lang['The whole set'] = 'L\'intero set'; $lang['No photo in the current set.'] = 'Nessuna foto nel set corrente.'; -$lang['No photo selected, no action possible.'] = 'Nessuna foto selezionata, nessuna azione possibile.'; +$lang['No photos selected, no actions possible.'] = 'Nessuna foto selezionata, nessuna azione possibile.'; $lang['Choose an action'] = 'Scegliere un\'azione'; $lang['remove author'] = 'cancellare l\'autore'; $lang['Type here the author name'] = 'Inserire qui il nome dell\'autore'; @@ -821,6 +821,8 @@ $lang['Applications'] = 'Applicazioni'; $lang['Available on'] = 'Disponibile su'; $lang['Piwigo for iOS (iPhone, iPad, iPod Touch)'] = 'Piwigo per iOS (iPhone, iPad, iPod Touch)'; $lang['Piwigo for iOS application empowers you to connect to your Piwigo gallery from your iPhone, iPad or iPod Touch, create some albums and upload several photos at once.'] = 'L\'applicazione Piwigo per iOS permette di collegarti alla tua galleria Piwigo dal tuo iPhone, iPad o iPod Touch, creando degli album e caricando le immagini.'; +$lang['Piwigo for Android'] = 'Piwigo per Android'; +$lang['Piwigo for Android application empowers you to connect your Android phone or table to your Piwigo gallery, create some albums and upload several photos at once.'] = 'L\'applicazione Piwigo per Android permette di collegarti alla tua galleria di Piwigo dal tuo cellulare o tablet Android, creando degli album e caricando le immagini.'; $lang['Piwigo Publish plugin for Lightroom'] = 'Plugin Piwigo per Lightroom'; $lang['Adobe Photoshop Lightroom is a photography software designed to manage large quantities of digital images and doing post production work.'] = 'Adobe Photoshop Lightroom è un software fotografico specializzato per gestire grandi quantità di immagini ed eseguirne la post-produzione.'; $lang['The Piwigo publish Plug-in allows you to export and synchronize photos from Lightroom directly to your Piwigo photo gallery.'] = 'Il plugin di Piwigo permette di esportare e sincronizzare le immagini da Lightroom direttamente alla tua galleria di Piwigo.'; @@ -917,7 +919,7 @@ $lang['between %d and %d pixels'] = 'tra %d e %d pixels'; $lang['between %.2f and %.2f'] = 'tra %.2f e %.2f'; $lang['Manage the members'] = 'Gestire membri'; $lang['Type here the name of the new group'] = 'Digita quì il nome del nuovo gruppo'; -$lang['No group selected, no action possible.'] = 'Nessun gruppo selezionato, nessuna azione possibile.'; +$lang['No groups selected, no actions possible.'] = 'Nessun gruppo selezionato, nessuna azione possibile.'; $lang['Please select at least two groups'] = 'Seleziona almeno due gruppi'; $lang['Duplicate'] = 'Duplicare'; $lang['Merge selected groups'] = 'Unire i gruppi selezionati'; @@ -935,7 +937,7 @@ $lang['Show %s users'] = 'Mostra %s utenti'; $lang['No matching user found'] = 'Nessun utente corrispondente trovato'; $lang['Showing %s to %s of %s users'] = 'Mostra %s a %s di %s utenti'; $lang['(filtered from %s total users)'] = '(filtrato da %s utenti totali)'; -$lang['No user selected, no action possible.'] = 'Nessun utente selezionato, nessuna azione è possibile.'; +$lang['No users selected, no actions possible.'] = 'Nessun utente selezionato, nessuna azione è possibile.'; $lang['%d of %d users selected'] = '%d di %d utenti selezionati'; $lang['No user selected of %d users'] = 'Nessun utente selezionato di %d utenti'; $lang['All %d users are selected'] = 'Tutti %d utenti sono selezionati'; @@ -993,7 +995,7 @@ $lang['Delete album "%s".'] = 'Cancellare l\'album "%s"'; $lang['Display form'] = 'Visualizzare il modulo'; $lang['First photo added'] = 'Prima foto'; $lang['No filter on album. Select one or type to search'] = 'Nessun filtro. Toccare qui per cercare un album.'; -$lang['No tag selected, no action possible.'] = 'Nessun tag selezionato, nessuna azione possibile.'; +$lang['No tags selected, no actions possible.'] = 'Nessun tag selezionato, nessuna azione possibile.'; $lang['Confirm deletion'] = 'Confermare l\'eliminazione'; $lang['(determined from photos)'] = '(Determinata dalle foto)'; $lang['Some checksums are missing.'] = 'Checkums mancanti'; @@ -1010,4 +1012,4 @@ $lang['Create a first album'] = 'Crea un primo album'; $lang['Deletion in progress'] = 'Cancellazione in corso'; $lang['Display album date period'] = 'Visualizza la data del periodo associato a ciascun album, ad es. "dal 12 al 15 luglio 2018"'; $lang['Display category date'] = 'Visualizza la data della categoria'; -$lang['Piwigo requires an album to add photos.'] = 'Piwigo ha bisogno di un album per aggiungere delle foto.'; \ No newline at end of file +$lang['Piwigo requires an album to add photos.'] = 'Piwigo ha bisogno di un album per aggiungere delle foto.'; diff --git a/language/ja_JP/admin.lang.php b/language/ja_JP/admin.lang.php index 0d9568e0c..a3f7b3ee7 100644 --- a/language/ja_JP/admin.lang.php +++ b/language/ja_JP/admin.lang.php @@ -791,6 +791,7 @@ $lang['Multiple Size'] = '複数ã®ã‚µã‚¤ã‚º'; $lang['Piwigo Publish plugin for Lightroom'] = 'Lightroom 用 Piwigo エクスãƒãƒ¼ãƒˆãƒ—ラグイン'; $lang['Piwigo export plugin for Aperture'] = 'Aperture 用 Piwigo エクスãƒãƒ¼ãƒˆãƒ—ラグイン'; $lang['Piwigo export plugin for iPhoto'] = 'iPhoto 用 Piwigo エクスãƒãƒ¼ãƒˆãƒ—ラグイン'; +$lang['Piwigo for Android'] = 'Android用Piwigo'; $lang['Piwigo for iOS (iPhone, iPad, iPod Touch)'] = 'iOS用Piwigo(iPhone, iPad, iPod Touch)'; $lang['Piwigo publish plugin for Shotwell'] = 'Shotwell 用 Piwigo 公開プラグイン'; $lang['Piwigo publish plugin for digiKam'] = 'digiKam 用 Piwigo 公開プラグイン'; @@ -843,11 +844,11 @@ $lang['simple visitors'] = 'å˜ãƒ¦ãƒ¼ã‚¶ãƒ¼'; $lang['Obsolete Plugins'] = 'サãƒãƒ¼ãƒˆã•れãªã„プラグイン'; $lang['Opacity'] = 'ä¸é€æ˜Žåº¦'; $lang['No results'] = 'çµæžœãªã—'; -$lang['No photo selected, no action possible.'] = '写真ãŒé¸æŠžã•れã¦ã„ãªã„ã®ã§ã€ä½•も実行ã§ãã¾ã›ã‚“。'; +$lang['No photos selected, no actions possible.'] = '写真ãŒé¸æŠžã•れã¦ã„ãªã„ã®ã§ã€ãªã«ã‚‚ã§ãã¾ã›ã‚“。'; $lang['Not cropped correctly?'] = 'æ£ã—ãトリミングã§ãã¾ã›ã‚“ã§ã—ãŸã‹?'; $lang['Notify administrators when a comment is'] = 'コメントã•れãŸéš›ã«ç®¡ç†è€…ã¸çŸ¥ã‚‰ã›ã‚‹'; $lang['Name of the duplicate'] = 'é‡è¤‡ã®åå‰'; -$lang['No group selected, no action possible.'] = 'グループãŒé¸æŠžã•れã¦ã„ãªã„ã®ã§ã€ä½•も実行ã§ãã¾ã›ã‚“。'; +$lang['No groups selected, no actions possible.'] = 'グループãŒé¸æŠžã•れã¦ã„ãªã„ã®ã§ã€ä½•ã‚‚ã§ãã¾ã›ã‚“。'; $lang['No members to manage'] = '管ç†ã™ã¹ãメンãƒãƒ¼ãŒã„ã¾ã›ã‚“'; $lang['No order field selected'] = 'é †åºãƒ•ィールドãŒé¸æŠžã•れã¦ã„ã¾ã›ã‚“'; $lang['Merge selected groups'] = 'é¸æŠžã•れãŸã‚°ãƒ«ãƒ¼ãƒ—ã‚’çµ±åˆã™ã‚‹'; @@ -886,6 +887,7 @@ $lang['All %d users are selected'] = 'å…¨ã¦ã® %d ユーザãŒé¸æŠžã•れ㾠$lang['Piwigo for iOS application empowers you to connect to your Piwigo gallery from your iPhone, iPad or iPod Touch, create some albums and upload several photos at once.'] = 'Piwigo for iOSアプリã¯ã€iPhoneã€iPadã€iPod Touchã‹ã‚‰ã€Piwigoã‚®ãƒ£ãƒ©ãƒªãƒ¼ã«æŽ¥ç¶šã—ã€ã‚¢ãƒ«ãƒãƒ を作æˆã—ãŸã‚Šã€è¤‡æ•°ã®å†™çœŸã‚’一括ã§ã‚¢ãƒƒãƒ—ãƒãƒ¼ãƒ‰ã—ãŸã‚Šã§ãã¾ã™ã€‚'; $lang['Activate it now'] = '今ã™ã有効ã«ã™ã‚‹'; $lang['(filtered from %s total users)'] = '(%s ユーザã‹ã‚‰ã€ãƒ•ィルタリングã•れã¾ã—ãŸ)'; +$lang['Piwigo for Android application empowers you to connect your Android phone or table to your Piwigo gallery, create some albums and upload several photos at once.'] = 'Piwigo for Androidアプリã¯ã€Androidスマートフォンやタブレットã‹ã‚‰ã€Piwigoã‚®ãƒ£ãƒ©ãƒªãƒ¼ã«æŽ¥ç¶šã—ã€ã‚¢ãƒ«ãƒãƒ を作æˆã—ãŸã‚Šã€è¤‡æ•°ã®å†™çœŸã‚’一括ã§ã‚¢ãƒƒãƒ—ãƒãƒ¼ãƒ‰ã—ãŸã‚Šã§ãã¾ã™ã€‚'; $lang['%d of %d users selected'] = '%d 人(%d人ä¸)ã®ãƒ¦ãƒ¼ã‚¶ãŒé¸æŠžã•れã¾ã—ãŸã€‚'; $lang['You are using the Browser uploader. Try the Flash uploader instead.'] = 'ç¾åœ¨ã€Browser アップãƒãƒ¼ãƒ€ã‚’使ã£ã¦ã„ã¾ã™ã€‚代ã‚りã«ã€ Flash アップãƒãƒ¼ãƒ€ã‚’ãŠè©¦ã—下ã•ã„。'; $lang['You are using the Flash uploader. Problems? Try the Browser uploader instead.'] = 'Flash アップãƒãƒ¼ãƒ€ã§å•題ãŒãŠãã¾ã—ãŸã‹? 代ã‚り㫠Browser アップãƒãƒ¼ãƒ€ã‚’ãŠè©¦ã—下ã•ã„。'; @@ -959,7 +961,7 @@ $lang['Recipients'] = 'å—信者'; $lang['No recipient selected'] = 'å—信者ãŒé¸ã°ã‚Œã¦ã„ã¾ã›ã‚“'; $lang['No user is permitted to see this private album'] = 'ã“ã®ãƒ—ライベートアルãƒãƒ を見るã“ã¨ã®ã§ãるユーザーã¯ã„ã¾ã›ã‚“'; $lang['No user selected of %d users'] = '%dã®ãƒ¦ãƒ¼ã‚¶ãƒ¼ã‹ã‚‰ãƒ¦ãƒ¼ã‚¶ãƒ¼ãŒé¸ã°ã‚Œã¦ã„ã¾ã›ã‚“'; -$lang['No user selected, no action possible.'] = 'ユーザーãŒé¸æŠžã•れã¦ã„ãªã„ã®ã§ã€æ“作ã§ãã¾ã›ã‚“'; +$lang['No users selected, no actions possible.'] = 'ユーザーãŒé¸æŠžã•れã¦ã„ãªã„ã®ã§ã€æ“作ã§ãã¾ã›ã‚“'; $lang['On your Linux, simply install Shotwell with your package manager and the activate Piwigo publishing option.'] = 'Linuxã§ã¯ã€Shotwellをパッケージ管ç†ã‚½ãƒ•トウェアã‹ã‚‰ã‚¤ãƒ³ã‚¹ãƒˆãƒ¼ãƒ«ã™ã‚‹ã“ã¨ã§ã€Piwigoã«å…¬é–‹ã™ã‚‹ã‚ªãƒ—ションを使ã†ã“ã¨ãŒã§ãã¾ã™'; $lang['No and unlock sub-albums'] = 'ã„ã„ãˆã€‚サブアルãƒãƒ ã®ãƒãƒƒã‚¯ã‚’解除ã—ã¾ã™'; $lang['Last visit on %s, %s.'] = '最新ã®è¨ªå•æ—¥: %s, %s'; @@ -1009,4 +1011,4 @@ $lang['Visit'] = '訪å•ã™ã‚‹'; $lang['Welcome!'] = 'よã†ã“ãï¼'; $lang['With no checksum'] = 'ãƒã‚§ãƒƒã‚¯ã‚µãƒ ãªã—'; $lang['checksums to add'] = 'è¿½åŠ ã™ã¹ããƒã‚§ãƒƒã‚¯ã‚µãƒ '; -$lang['or'] = 'ã¾ãŸã¯'; \ No newline at end of file +$lang['or'] = 'ã¾ãŸã¯'; diff --git a/language/ja_JP/common.lang.php b/language/ja_JP/common.lang.php index 9b76456d6..9da63926a 100644 --- a/language/ja_JP/common.lang.php +++ b/language/ja_JP/common.lang.php @@ -412,4 +412,4 @@ $lang['Photo description'] = '写真ã®èª¬æ˜Ž'; $lang['Photo title'] = '写真ã®ã‚¿ã‚¤ãƒˆãƒ«'; $lang['Your authentication key is no longer valid.'] = 'ã‚ãªãŸã®èªè¨¼ã‚ãƒ¼ã¯æ—¢ã«ç„¡åйã«ãªã£ã¦ã„ã¾ã™ã€‚'; $lang['generate random password'] = 'ランダムãªãƒ‘スワードを生æˆã—ã¾ã™'; -$lang['Invalid username or password!'] = 'ユーザåã‹ãƒ‘スワードãŒé•ã„ã¾ã™!'; \ No newline at end of file +$lang['Invalid username or password!'] = 'ユーザåã‹ãƒ‘スワードãŒé•ã„ã¾ã™!'; diff --git a/language/ka_GE/admin.lang.php b/language/ka_GE/admin.lang.php index 5dc96aae2..50b31237a 100644 --- a/language/ka_GE/admin.lang.php +++ b/language/ka_GE/admin.lang.php @@ -684,7 +684,7 @@ $lang['Refresh photo set'] = 'გáƒáƒœáƒ•áƒáƒáƒ®áƒšáƒáƒ— ფáƒáƒ¢áƒáƒ”ბ $lang['The whole page'] = 'მთელი გვერდი'; $lang['The whole set'] = 'მთელი რიგი'; $lang['No photo in the current set.'] = 'áƒáƒ áƒáƒ ის სურáƒáƒ—ი მიმდინáƒáƒ ე ნáƒáƒ™áƒ ებში.'; -$lang['No photo selected, no action possible.'] = 'áƒáƒ áƒáƒ ის áƒáƒ ჩეული áƒáƒ ც ერთი ფáƒáƒ¢áƒ, მáƒáƒ¥áƒ›áƒ”დებრშეუძლებელიáƒ.'; +$lang['No photos selected, no actions possible.'] = 'áƒáƒ áƒáƒ ის áƒáƒ ჩეული áƒáƒ ც ერთი ფáƒáƒ¢áƒ, მáƒáƒ¥áƒ›áƒ”დებრშეუძლებელიáƒ.'; $lang['Choose an action'] = 'áƒáƒ˜áƒ ჩიეთ მáƒáƒ¥áƒ›áƒ”დებáƒ'; $lang['remove author'] = 'წáƒáƒ•შáƒáƒšáƒáƒ— áƒáƒ•ტáƒáƒ ი'; $lang['Type here the author name'] = 'ჩáƒáƒ¬áƒ”რეთ áƒáƒ¥ áƒáƒ•ტáƒáƒ ის სáƒáƒ®áƒ”ლი'; diff --git a/language/km_KH/admin.lang.php b/language/km_KH/admin.lang.php index 8fefedeee..94c8fe0a4 100644 --- a/language/km_KH/admin.lang.php +++ b/language/km_KH/admin.lang.php @@ -175,6 +175,7 @@ $lang['Apply action'] = 'ដំណើរ​ការ​សកម្មភាព $lang['Apply selected corrections'] = 'ដំណើរ​ការ​កំណែរ​ប្រែ​ដែល​បាន​ជ្រើស​រើស​'; $lang['Apply to sub-albums'] = 'ដំណើរ​​ការ​ទៅ​កាន់​សៀវ​ភៅ​រូប​ážážâ€‹ážšáž„​'; +$lang['Piwigo for Android application empowers you to connect your Android phone or table to your Piwigo gallery, create some albums and upload several photos at once.'] = 'Piwigo សំរាប់​ Android ធ្វើ​ឲ្យលោក​អ្នក​អាច​ភ្ជាប់​ទូរសáŸáž–្វ​ Android របស់​អ្នក ឬ​ក០Table ទៅកាន់​ Piwigo gallery របស់​អ្នក​​ ដែលលោក​​អ្នក​អាច​បង្កើážâ€‹ážŸáŸ€ážœáž—ៅ​រូប​ážáž ហើយ​ ដាក់បញ្ចូល​នូវ​រូប​ážážâ€‹áž‡áž¶â€‹áž…្រើន​ក្នុង​ពáŸáž›â€‹ážáŸ‚​មួយ។'; $lang['Piwigo for iOS application empowers you to connect to your Piwigo gallery from your iPhone, iPad or iPod Touch, create some albums and upload several photos at once.'] = 'Piwigo សំរាប់​ iOS ធ្វើ​ឲ្យលោក​​អ្នក​អាច​ភ្ជាប់ទៅកាន់​ Piwigo gallery របស់​អ្នក​ពី​ទូរសáŸáž–្វ iPhone, iPad ឬ iPod Touch របស់​អ្នក ដែលលោក​អ្នក​អាច​បង្កើážâ€‹ážŸáŸ€ážœáž—ៅ​រូប​ážáž ហើយ​ ដាក់បញ្ចូល​នូវ​រូប​ážážâ€‹áž‡áž¶â€‹áž…្រើន​ក្នុង​ពáŸáž›â€‹ážáŸ‚​មួយ។'; $lang['%d day'] = '%d ážáŸ’ងៃ'; $lang['%d days'] = '%d ážáŸ’ងៃ'; diff --git a/language/ko_KR/admin.lang.php b/language/ko_KR/admin.lang.php index dc78ce781..19f409c77 100644 --- a/language/ko_KR/admin.lang.php +++ b/language/ko_KR/admin.lang.php @@ -75,7 +75,7 @@ $lang['Password is missing. Please enter the password.'] = 'ë¹„ë°€ë²ˆí˜¸ëž€ì´ $lang['Password updated'] = '비밀번호가 변경ë¨'; $lang['User "%s" created with "%s" like password'] = '"%s" 비밀번호를 사용하는 "%s" 사용ìžê°€ ìƒì„±ë¨'; $lang['No user selected of %d users'] = '%d ì‚¬ìš©ìž ì¤‘ ì„ íƒëœ 사용ìžê°€ ì—†ìŒ'; -$lang['No user selected, no action possible.'] = 'ì„ íƒëœ 사용ìžê°€ 없어서 사용 가능한 ë™ìž‘ì´ ì—†ìŠµë‹ˆë‹¤.'; +$lang['No users selected, no actions possible.'] = 'ì„ íƒëœ 사용ìžê°€ 없어서 사용 가능한 ë™ìž‘ì´ ì—†ìŠµë‹ˆë‹¤.'; $lang['%d members'] = '%d 구성ì›'; $lang['Members'] = '구성ì›'; $lang['No members to manage'] = 'ê´€ë¦¬í• êµ¬ì„±ì›ì´ 없습니다'; @@ -213,6 +213,8 @@ $lang['Piwigo export plugin for Aperture'] = 'Apertureìš© Piwigo ìµìФí¬íЏ $lang['Piwigo publish plugin for digiKam'] = 'dikiKamìš© Piwigo ë°°í¬ í”ŒëŸ¬ê·¸ì¸'; $lang['To export your photos from digiKam to Piwigo, simply install digiKam and the Kipi-plugins.'] = 'digiKamì—서 Piwigo로 ì‚¬ì§„ì„ ë‚´ë³´ë‚´ë ¤ë©´, digiKam ë° Kipi 플러그ì¸ì„ 설치하면 ë©ë‹ˆë‹¤.'; $lang['Piwigo for iOS application empowers you to connect to your Piwigo gallery from your iPhone, iPad or iPod Touch, create some albums and upload several photos at once.'] = 'iOSìš© Piwigo ì•±ì€ iPhone, iPad ë˜ëŠ” iPod Touchì—서 Piwigo ê°¤ëŸ¬ë¦¬ì— ì—°ê²°í•˜ê³ ì•¨ë²”ì„ ìƒì„±í•˜ê³ í•œë²ˆì— ì—¬ëŸ¬ ì‚¬ì§„ì„ ì—…ë¡œë“œ í• ìˆ˜ 있ë„ë¡ í•©ë‹ˆë‹¤.'; +$lang['Piwigo for Android application empowers you to connect your Android phone or table to your Piwigo gallery, create some albums and upload several photos at once.'] = '안드로ì´ë“œìš© Piwigo ì•±ì€ ì•ˆë“œë¡œì´ë“œ í°ê³¼ 태블릿ì—서 Piwigo ê°¤ëŸ¬ë¦¬ì— ì—°ê²°í•˜ê³ ì•¨ë²”ì„ ìƒì„±í•˜ê³ í•œë²ˆì— ì—¬ëŸ¬ ì‚¬ì§„ì„ ì—…ë¡œë“œ í• ìˆ˜ 있ë„ë¡ í•©ë‹ˆë‹¤.'; +$lang['Piwigo for Android'] = '안드로ì´ë“œìš© Piwigo'; $lang['Piwigo for iOS (iPhone, iPad, iPod Touch)'] = 'iOSìš© Piwigo (iPhone, iPad, iPod Touch)'; $lang['Piwigo Uploader'] = 'Piwigo 업로ë”'; $lang['Allowed file types: %s.'] = '가능한 íŒŒì¼ ì¢…ë¥˜: %s.'; @@ -357,7 +359,7 @@ $lang['Save visits in history for'] = 'ë°©ë¬¸ê¸°ë¡ ì €ìž¥: '; $lang['Week starts on'] = '한 ì£¼ì˜ ì‹œìž‘'; $lang['Miscellaneous'] = '기타'; $lang['simple visitors'] = '단순 방문ìž'; -$lang['No photo selected, no action possible.'] = 'ì„ íƒëœ ì‚¬ì§„ì´ ì—†ì–´ì„œ 사용 가능한 ë™ìž‘ì´ ì—†ìŠµë‹ˆë‹¤.'; +$lang['No photos selected, no actions possible.'] = 'ì„ íƒëœ ì‚¬ì§„ì´ ì—†ì–´ì„œ 사용 가능한 ë™ìž‘ì´ ì—†ìŠµë‹ˆë‹¤.'; $lang['Apply action'] = 'ë™ìž‘ ì ìš©'; $lang['Tools'] = 'ë„구'; $lang['Searching...'] = '검색중...'; @@ -441,7 +443,7 @@ $lang['%d parameter was updated.'] = '%d 파ë¼ë¯¸í„°ê°€ 변경ë¨.'; $lang['%d parameters were updated.'] = '%d 파ë¼ë¯¸í„°ê°€ 변경ë¨.'; $lang['Parameters'] = '파ë¼ë¯¸í„°'; $lang['There is no available subscribers to mail.'] = 'ë©”ì¼ë¡œ 공지를 받는 사용ìžê°€ 없습니다.'; -$lang['No group selected, no action possible.'] = 'ì„ íƒëœ ê·¸ë£¹ì´ ì—†ì–´ì„œ 사용 가능한 ë™ìž‘ì´ ì—†ìŠµë‹ˆë‹¤.'; +$lang['No groups selected, no actions possible.'] = 'ì„ íƒëœ ê·¸ë£¹ì´ ì—†ì–´ì„œ 사용 가능한 ë™ìž‘ì´ ì—†ìŠµë‹ˆë‹¤.'; $lang['Group'] = '그룹'; $lang['Group name'] = '그룹 ì´ë¦„'; $lang['Groups'] = '그룹'; diff --git a/language/ko_KR/common.lang.php b/language/ko_KR/common.lang.php index 5b230bbeb..66c964a06 100644 --- a/language/ko_KR/common.lang.php +++ b/language/ko_KR/common.lang.php @@ -412,4 +412,4 @@ $lang['Photo title'] = '사진 ì œëª©'; $lang['No results for'] = '다ìŒì˜ 검색 결과가 ì—†ìŒ'; $lang['Invalid username or password!'] = 'ì‹œìš©ìž ì´ë¦„ ë˜ëŠ” 비밀번호가 올바르지 않습니다.'; $lang['Your authentication key is no longer valid.'] = 'ì¸ì¦í‚¤ê°€ ìœ íš¨í•˜ì§€ 않습니다.'; -$lang['generate random password'] = 'ëžœë¤ ë¹„ë°€ë²ˆí˜¸ ìƒì„±'; \ No newline at end of file +$lang['generate random password'] = 'ëžœë¤ ë¹„ë°€ë²ˆí˜¸ ìƒì„±'; diff --git a/language/lt_LT/admin.lang.php b/language/lt_LT/admin.lang.php index 0d22e74d6..ce395283c 100644 --- a/language/lt_LT/admin.lang.php +++ b/language/lt_LT/admin.lang.php @@ -174,6 +174,7 @@ $lang['%s value is not correct file because exif are not supported'] = '%s reik $lang['(this tag will be deleted)'] = '(Å¡i žyma bus iÅ¡trinta)'; $lang[', click on'] = ', paspausk ant'; $lang['... or '] = '... arba '; +$lang['Piwigo for Android application empowers you to connect your Android phone or table to your Piwigo gallery, create some albums and upload several photos at once.'] = 'Piwigo Android\'ui programÄ—lÄ— suteikia galimybÄ™ sujungti jÅ«sų Android telefonÄ… ar planÅ¡etÄ™ su jÅ«sų Piwigo galerija, kurti kelis albumus ir įkelti kelias nuotraukas iÅ¡kart.'; $lang['Piwigo for iOS application empowers you to connect to your Piwigo gallery from your iPhone, iPad or iPod Touch, create some albums and upload several photos at once.'] = 'Piwigo iOS\'ui programÄ—lÄ— suteikia galimybÄ™ sujungti jÅ«sų iPhone, iPad ar iPod Touch su jÅ«sų Piwigo galerija, kurti kelis albumus ir įkelti kelias nuotraukas iÅ¡kart.'; $lang['A locked gallery is only visible to administrators'] = 'Užrakinta galerija prieinama tik administratoriams'; $lang['A new version of Piwigo is available.'] = 'Yra nauja Piwigo versija.'; @@ -378,6 +379,7 @@ $lang['Piwigo cannot retrieve upgrade file from server'] = 'Piwigo negali atsisi $lang['Piwigo configuration'] = 'Piwigo konfigÅ«racija'; $lang['Piwigo export plugin for Aperture'] = 'Piwigo eksportavimo priedas, skirtas Aperture'; $lang['Piwigo export plugin for iPhoto'] = 'Piwigo eksportavimo priedas, skirtas iPhoto'; +$lang['Piwigo for Android'] = 'Piwigo Android\'ui'; $lang['Piwigo for iOS (iPhone, iPad, iPod Touch)'] = 'Piwigo iOS\'ui (iPhone, iPad, iPod Touch)'; $lang['Piwigo publish plugin for Shotwell'] = 'Piwigo skelbimo priedas, skirtas Shotwell'; $lang['Piwigo publish plugin for digiKam'] = 'Piwigo skelbimo priedas, skirtas digiKam'; @@ -450,14 +452,14 @@ $lang['New photos added'] = 'Naujos nuotraukos įkeltos'; $lang['New tag'] = 'Nauja žyma'; $lang['No file was uploaded'] = 'Nebuvo įkeltas joks failas'; $lang['No group is permitted to see this private album'] = 'Jokiai grupei neleidžiama žiÅ«rÄ—ti Å¡io privataus albumo'; -$lang['No group selected, no action possible.'] = 'Nepasirinkta jokia grupÄ—, todÄ—l jokių veiksmų vykdyti neįmanoma.'; +$lang['No groups selected, no actions possible.'] = 'Nepasirinkta jokia grupÄ—, todÄ—l jokių veiksmų vykdyti neįmanoma.'; $lang['No mail to send.'] = 'Nebus siunÄiamas joks laiÅ¡kas'; $lang['No members to manage'] = 'NÄ—ra jokių narių, kuriuos galima bÅ«tų tvarkyti'; $lang['No photo can be deleted'] = 'Jokios nuotraukos negali bÅ«ti iÅ¡trintos'; $lang['No photo in the current set.'] = 'Å iuo metu rinkinyje nÄ—ra nuotraukų.'; $lang['No photo in this album'] = 'Å iame albume nÄ—ra nuotraukų'; $lang['No photo selected, %d photos in current set'] = 'Nepasirinkta jokia nuotrauka, Å¡iame rinkinyje nuotraukų: %d'; -$lang['No photo selected, no action possible.'] = 'Nepasirinkta jokia nuotrauka, neįmanomas joks veiksmas.'; +$lang['No photos selected, no actions possible.'] = 'Nepasirinkta jokia nuotrauka, neįmanomas joks veiksmas.'; $lang['No results'] = 'NÄ—ra rezultatų'; $lang['No user to send notifications by mail.'] = 'NÄ—ra vartotojų, kurie galÄ—tų bÅ«ti informuoti paÅ¡tu.'; $lang['None'] = 'NÄ—ra'; @@ -936,7 +938,7 @@ $lang['Change username'] = 'Keisti username'; $lang['Loading...'] = 'Kraunasi...'; $lang['No matching user found'] = 'Narių, atitinkanÄių kriterijus, nerasta'; $lang['No user selected of %d users'] = 'Nepasirinktas nÄ— vienas iÅ¡ %d narių'; -$lang['No user selected, no action possible.'] = 'Nepasirinktas narys, negaliu tÄ™sti veiksmų.'; +$lang['No users selected, no actions possible.'] = 'Nepasirinktas narys, negaliu tÄ™sti veiksmų.'; $lang['Password updated'] = 'Slaptažodis atnaujintas'; $lang['Show %s users'] = 'Rodyti %s vartotojus'; $lang['User %s added'] = 'Vartotojas %s pridÄ—tas'; @@ -984,7 +986,7 @@ $lang['For security reason, authentication keys do not work for administrators.' $lang['It only takes a few clicks.'] = 'Tai bus tik keli spragtelÄ—jimai.'; $lang['No filter on album. Select one or type to search'] = 'Albumas neturi filtrų. Pasirinkite vienÄ… arba paraÅ¡ykite kÄ… nors paieÅ¡kai'; $lang['No recipient selected'] = 'GavÄ—jas nepasirinktas'; -$lang['No tag selected, no action possible.'] = 'Nepasirinkta jokia žyma, negalimas joks veiksmas.'; +$lang['No tags selected, no actions possible.'] = 'Nepasirinkta jokia žyma, negalimas joks veiksmas.'; $lang['No user is permitted to see this private album'] = 'Joks lankytojas negali matyti Å¡io privataus albumo'; $lang['Piwigo %s is available, please update'] = 'Piwigo %s prieinama, praÅ¡ome atnaujinti'; $lang['Piwigo Remote Sync is able to upload a whole folder hierarchy. If you run it again, only new photos will be uploaded.'] = 'Piwigo Remote Sync gali įkelti visÄ… katalogų hierarchijÄ…. Jei paleisite jį vÄ—l, tai bus įkeltos tik naujos nuotraukos.'; diff --git a/language/lv_LV/admin.lang.php b/language/lv_LV/admin.lang.php index c12f7e342..e6f02e963 100644 --- a/language/lv_LV/admin.lang.php +++ b/language/lv_LV/admin.lang.php @@ -663,7 +663,7 @@ $lang['Refresh photo set'] = 'AtjauninÄt foto sÄ“riju'; $lang['The whole page'] = 'Visa lapa'; $lang['The whole set'] = 'Visa sÄ“rija'; $lang['No photo in the current set.'] = 'Nav fotoattÄ“lu esoÅ¡ajÄ sÄ“rijÄ.'; -$lang['No photo selected, no action possible.'] = 'Nav atlasÄ«tu fotoattÄ“lu, nekÄdas darbÄ«bas nav iespÄ“jamas.'; +$lang['No photos selected, no actions possible.'] = 'Nav atlasÄ«tu fotoattÄ“lu, nekÄdas darbÄ«bas nav iespÄ“jamas.'; $lang['Choose an action'] = 'IzvÄ“lÄ“ties darbÄ«bu'; $lang['remove author'] = 'izdzÄ“st autoru'; $lang['Type here the author name'] = 'IevadÄ«t autora vÄrdu Å¡eit'; @@ -813,6 +813,8 @@ $lang['Applications'] = 'AplikÄcijas'; $lang['Available on'] = 'Pieejams uz'; $lang['Piwigo for iOS (iPhone, iPad, iPod Touch)'] = 'Piwigo priekÅ¡ iOS (iPhone, iPad, iPod Touch)'; $lang['Piwigo for iOS application empowers you to connect to your Piwigo gallery from your iPhone, iPad or iPod Touch, create some albums and upload several photos at once.'] = 'Piwigo priekÅ¡ iOS aplikÄcijas, kas ļauj piekļūt jÅ«su Piwigo galerijai no iPhone, iPad vai iPod Touch, un bez pÅ«lÄ“m izveidot jaunus albÅ«mus un ielÄdÄ“t jaunas fotogrÄfijas.'; +$lang['Piwigo for Android'] = 'Piwigo priekÅ¡ Android'; +$lang['Piwigo for Android application empowers you to connect your Android phone or table to your Piwigo gallery, create some albums and upload several photos at once.'] = 'Piwigo priekÅ¡ Android aplikÄcija dod jums iespÄ“ju savienot savu Android telefonu vai iekÄrtu ar jÅ«su Piwigo galeriju, bez pÅ«lÄ“m izveidot jaunus albÅ«mus un ielÄdÄ“t jaunas fotogrÄfijas.'; $lang['Piwigo Publish plugin for Lightroom'] = 'Piwigo Publicēšanas spraudnis priekÅ¡ Lightroom'; $lang['Adobe Photoshop Lightroom is a photography software designed to manage large quantities of digital images and doing post production work.'] = 'Adobe Photoshop Lightroom ir fotoredaktora programmatÅ«ra, kas domÄta liela apjoma digitÄlu attÄ“lu pÄrvaldīšanai un pirmsproducēšanas darbu veikÅ¡anai.'; $lang['The Piwigo publish Plug-in allows you to export and synchronize photos from Lightroom directly to your Piwigo photo gallery.'] = 'Piwigo publicēšanas spraudnis ļauj jums eksportÄ“t un sinhronizÄ“t attÄ“lus Lightroom aplikÄcijÄ ar jÅ«su Piwigo foto galeriju.'; @@ -913,7 +915,7 @@ $lang['This group will be set to default'] = 'Å Ä« grupa tiks izmantots pÄ“c nok $lang['Rename'] = 'PÄrdÄ“vÄ“t'; $lang['Please select at least two groups'] = 'LÅ«dzu atlasiet vismaz divas grupas'; $lang['No members to manage'] = 'Nav biedru, ko pÄrvaldÄ«t'; -$lang['No group selected, no action possible.'] = 'Nav izvÄ“lÄ“ta neviena grupa, nekÄdas darbÄ«bas nav iespÄ“jamas.'; +$lang['No groups selected, no actions possible.'] = 'Nav izvÄ“lÄ“ta neviena grupa, nekÄdas darbÄ«bas nav iespÄ“jamas.'; $lang['Manage the members'] = 'PÄrvaldÄ«t biedrus'; $lang['Merge selected groups'] = 'SapludinÄt atlasÄ«tÄs grupas'; $lang['Duplicate'] = 'DublikÄts'; @@ -930,7 +932,7 @@ $lang['Registered on %s, %s.'] = 'ReÄ£istrÄ“ts %s, %s.'; $lang['User %s updated'] = '%s lietotÄjs atjauninÄts'; $lang['Update user'] = 'AtjauninÄt lietotÄju'; $lang['Show %s users'] = 'ParÄdÄ«t %s lietotÄjus'; -$lang['No user selected, no action possible.'] = 'Neviens lietotÄja nav atlasÄ«ts, darbÄ«ba nav iespÄ“jama.'; +$lang['No users selected, no actions possible.'] = 'Neviens lietotÄja nav atlasÄ«ts, darbÄ«ba nav iespÄ“jama.'; $lang['No user selected of %d users'] = 'Neviens no %d lietotÄjiem nav atlasÄ«ts'; $lang['No matching user found'] = 'Nav atrasti atbilstoÅ¡i lietotÄji'; $lang['Users modified'] = 'LietotÄji modoficÄ“ti'; @@ -969,7 +971,7 @@ $lang['No recipient selected'] = 'Nav izvÄ“lÄ“ts neviens saņēmÄ“js'; $lang['Edit user'] = 'Rediģēt lietotÄju'; $lang['Delete %d orphan photos'] = 'DzÄ“st %d nezinÄmos foto '; $lang['orphans to delete'] = 'nepiesaistÄ«tie dzēšanai'; -$lang['No tag selected, no action possible.'] = 'Nav izvÄ“lÄ“tu tegu, nekÄdas darbÄ«bas nav iespÄ“jamas.'; +$lang['No tags selected, no actions possible.'] = 'Nav izvÄ“lÄ“tu tegu, nekÄdas darbÄ«bas nav iespÄ“jamas.'; $lang['Select tags'] = 'IzvÄ“lieties tegus'; $lang['Piwigo %s is available, please update'] = 'Piwigo %s ir pieejams, lÅ«dzu atjauniniet'; $lang['Storage used'] = 'IzmantotÄ krÄtuve'; @@ -1004,4 +1006,4 @@ $lang['Display category date'] = 'Atainot kategorijas datumu'; $lang['Deletion in progress'] = 'Notiek dzēšana'; $lang['Create a first album'] = 'Izveidot pirmo albÅ«mu'; $lang['%d checksums were added'] = '%d kontrolsumma ir pievienota'; -$lang['... or hide this link'] = '... vai paslÄ“pt Å¡o saiti'; \ No newline at end of file +$lang['... or hide this link'] = '... vai paslÄ“pt Å¡o saiti'; diff --git a/language/mn_MN/admin.lang.php b/language/mn_MN/admin.lang.php index d94322676..c179f1eef 100644 --- a/language/mn_MN/admin.lang.php +++ b/language/mn_MN/admin.lang.php @@ -317,6 +317,7 @@ $lang['Save order'] = 'ÐÑ€Ñмбийг хадгалах'; $lang['Restore'] = 'СÑргÑÑÑ…'; $lang['Restore default configuration. You will lose your plugin settings!'] = 'ҮндÑÑн тохиргоог ÑÑргÑÑÑ…. Тохиргоонууд алдагдах болно.'; $lang['Repair and optimize database'] = 'МÑдÑÑллийн Ñанг заÑаж, цÑгцÑлÑÑ…'; +$lang['Piwigo for Android'] = 'Android-д зориулÑан Piwigo'; $lang['Piwigo for iOS (iPhone, iPad, iPod Touch)'] = 'iOS (iPhone, iPad, iPod Touch)-д зориулÑан Piwigo'; $lang['Permalink'] = 'Ð¥Ð¾Ð»Ð±Ð¾Ð¾Ñ Ñ…Ð°Ñг (permalink)'; $lang['Permalinks'] = 'Ð¥Ð¾Ð»Ð±Ð¾Ð¾Ñ Ñ…Ð°Ñг (permalink)'; @@ -426,8 +427,8 @@ $lang['global mode'] = 'ерөнхий Ñ…ÑÑÑг'; $lang['Support'] = 'ТуÑламж дÑмжлÑг'; $lang['Choose an action'] = 'ҮйлдÑлÑÑ Ñонгоно уу'; $lang['Action'] = 'ҮйлдÑл'; -$lang['No user selected, no action possible.'] = 'Ð¥ÑÑ€ÑглÑгч Ñонгоогүй байна'; -$lang['No photo selected, no action possible.'] = 'Зураг огт Ñонгоогүй байна'; +$lang['No users selected, no actions possible.'] = 'Ð¥ÑÑ€ÑглÑгч Ñонгоогүй байна'; +$lang['No photos selected, no actions possible.'] = 'Зураг огт Ñонгоогүй байна'; $lang['Remove all filters'] = 'Бүх Ñонголтыг цуцлах'; $lang['Refresh photo set'] = 'СÑргÑÑÑ…'; $lang['No photo selected, %d photos in current set'] = 'Зураг огт Ñонгоогүй байна, ÑÐ½Ñ Ñ…ÑÑÑгт нийт %d зураг байна.'; @@ -449,7 +450,7 @@ $lang['on the %d selected photos'] = '(ÑонгоÑон %d зурагт Ñ…ÑÑ€Ñ $lang['Apply action'] = 'ГүйцÑтгÑÑ…'; $lang['Actions'] = 'ҮйлдÑл'; $lang['An error occured during extraction (%s).'] = 'Файлыг (%s) задлах үед алдаа гарлаа.'; -$lang['No group selected, no action possible.'] = 'ÐÑг ч бүлÑг Ñонгоогүй байна'; +$lang['No groups selected, no actions possible.'] = 'ÐÑг ч бүлÑг Ñонгоогүй байна'; $lang['Pages seen'] = 'ҮзÑÑн хуудаÑ'; $lang['hide details'] = 'товч мÑдÑÑлÑл'; $lang['Impossible to deactivate this language, first set another language as default.'] = 'Уучлаарай, Тухайн Ñ…Ñлийг идÑвхгүй болгохын тулд Ó©Ó©Ñ€ Ñ…Ñлийг үндÑÑн Ñ…ÑлÑÑÑ€ Ñонгоно уу'; diff --git a/language/nb_NO/admin.lang.php b/language/nb_NO/admin.lang.php index 89ebf5792..83029f6bc 100644 --- a/language/nb_NO/admin.lang.php +++ b/language/nb_NO/admin.lang.php @@ -665,7 +665,7 @@ $lang['Refresh photo set'] = 'Oppdater bilde sesjonen'; $lang['The whole page'] = 'Hele siden'; $lang['The whole set'] = 'Hele sesjonen'; $lang['No photo in the current set.'] = 'Ingen foto i gjeldende sesjon.'; -$lang['No photo selected, no action possible.'] = 'Ingne bilder valgt, ingen tilltak mulig.'; +$lang['No photos selected, no actions possible.'] = 'Ingne bilder valgt, ingen tilltak mulig.'; $lang['Choose an action'] = 'Velg et tilltak'; $lang['remove author'] = 'fjern forfatter'; $lang['Type here the author name'] = 'Skriv forfatter navn her'; @@ -799,6 +799,7 @@ $lang['Available on'] = 'Tilgjengelig pÃ¥'; $lang['List'] = 'Vis'; $lang['Not cropped correctly?'] = 'Ikke beskÃ¥ret riktig?'; $lang['Notify administrators when a comment is'] = 'Gi beskjed til administrator nÃ¥r en kommentar er'; +$lang['Piwigo for Android'] = 'Piwigo for Android'; $lang['Piwigo for iOS (iPhone, iPad, iPod Touch)'] = 'Piwigo for iOS (iPhone, iPad, iPod Touch)'; $lang['Save visits in history for'] = 'Lagre besøkshistorie for '; $lang['Unable to dump database.'] = 'Kan ikke dumpe databasen'; @@ -806,6 +807,7 @@ $lang['You can activate only one mobile theme.'] = 'Du kan kun aktivere et mobil $lang['You can\'t define a default photo order because you have a custom setting in your local configuration.'] = 'Du kan ikke definere standard bilderekkefølge, fordi du har eget oppsett i din lokale konfigurasjon.'; $lang['simple visitors'] = 'vanlig besøkende'; $lang['%u users have automatic permission because they belong to a granted group.'] = '%u brukere har automatisk rettigheter fordi de tilhører en gruppe som allerede har rettigheter.'; +$lang['Piwigo for Android application empowers you to connect your Android phone or table to your Piwigo gallery, create some albums and upload several photos at once.'] = 'Piwigo for Android applikasjonen gjør at du kan koble til ditt Piwigo-galleri fra din Android-telefon, opprette album og laste opp flere bilder samtidig.'; $lang['Piwigo for iOS application empowers you to connect to your Piwigo gallery from your iPhone, iPad or iPod Touch, create some albums and upload several photos at once.'] = 'Piwigo for iOS applikasjonen gjør at du kan koble til ditt Piwigo-galleri fra din iPhone, iPad eller iPod Touch, opprette album og laste opp flere bilder samtidig.'; $lang['Adobe Photoshop Lightroom is a photography software designed to manage large quantities of digital images and doing post production work.'] = 'Adobe Photoshop Lightroom et et bildebehandlingsprogram, lagd for Ã¥ Ã¥ organisere svært mange bilder, samt etterbehandling av bilder.'; $lang['Aperture is a powerful tool to refine images and manage massive libraries on Mac.'] = 'Aperture er et kraftig verktøy for Ã¥ avgrense bilder, og for Ã¥ behandle store bildebibliotek pÃ¥ Mac.'; @@ -909,7 +911,7 @@ $lang['Ratio'] = 'Ratio'; $lang['Duplicate'] = 'Duplikat'; $lang['Manage the members'] = 'Administrer medlemmer'; $lang['Merge selected groups'] = 'Flett markerte grupper'; -$lang['No group selected, no action possible.'] = 'Ingen gruppe markert, kan ikke gjøre noe.'; +$lang['No groups selected, no actions possible.'] = 'Ingen gruppe markert, kan ikke gjøre noe.'; $lang['No members to manage'] = 'Ingen medlemmer Ã¥ behandle'; $lang['Please select at least two groups'] = 'Vennligst marker minst to grupper'; $lang['Rename'] = 'Gi nytt navn'; @@ -934,7 +936,7 @@ $lang['Change username'] = 'Bytt brukernavn'; $lang['Loading...'] = 'Laster...'; $lang['No matching user found'] = 'Ingen treff'; $lang['No user selected of %d users'] = 'Ingen av %d brukere valgt'; -$lang['No user selected, no action possible.'] = 'Ingen bruker valgt, kan ikke gjøre noe.'; +$lang['No users selected, no actions possible.'] = 'Ingen bruker valgt, kan ikke gjøre noe.'; $lang['Password updated'] = 'Passord oppdatert'; $lang['Registered on %s, %s.'] = 'Registrert den %s, %s.'; $lang['Show %s users'] = 'Vis %s brukere'; @@ -970,7 +972,7 @@ $lang['Orphans'] = 'Eierløs'; $lang['Recipients'] = 'Mottakere'; $lang['Y Repeat'] = 'Y Gjenta'; $lang['Display form'] = 'Visningstype'; -$lang['No tag selected, no action possible.'] = 'Ikke noe merke valgt, ingen aksjon mulig'; +$lang['No tags selected, no actions possible.'] = 'Ikke noe merke valgt, ingen aksjon mulig'; $lang['Piwigo Remote Sync is able to upload a whole folder hierarchy. If you run it again, only new photos will be uploaded.'] = 'Piwigo fjernsynkronisering kan laste opp en hel katalogstruktur. Kjøres den igjen, blir bare ny bilder lastet opp'; $lang['Running on an up-to-date Piwigo is important for security.'] = 'En oppdatert versjon av Piwigo er viktig for sikkerheten'; $lang['Select tags'] = 'Velg merker'; @@ -1005,4 +1007,4 @@ $lang['Visit'] = 'Besøk'; $lang['Welcome!'] = 'Velkommen!'; $lang['With no checksum'] = 'Uten sjekksum'; $lang['checksums to add'] = 'sjekksum som skal legges til'; -$lang['or'] = 'eller'; \ No newline at end of file +$lang['or'] = 'eller'; diff --git a/language/nl_NL/admin.lang.php b/language/nl_NL/admin.lang.php index dde753e8f..82200fcbd 100644 --- a/language/nl_NL/admin.lang.php +++ b/language/nl_NL/admin.lang.php @@ -662,7 +662,7 @@ $lang['Refresh photo set'] = 'Vernieuwen foto set'; $lang['The whole page'] = 'De hele pagina'; $lang['The whole set'] = 'De hele set'; $lang['No photo in the current set.'] = 'Geen foto in de huidige reeks.'; -$lang['No photo selected, no action possible.'] = 'Geen foto geselecteerd. Geen actie mogelijk.'; +$lang['No photos selected, no actions possible.'] = 'Geen foto geselecteerd. Geen actie mogelijk.'; $lang['Choose an action'] = 'Kies een actie'; $lang['remove author'] = 'Verwijder auteur'; $lang['Type here the author name'] = 'Type hier de naam van de fotograaf/maker'; @@ -805,6 +805,7 @@ $lang['Center of interest'] = 'Middelpunt van belangstelling'; $lang['Move to album'] = 'Verplaats naar album'; $lang['You can activate only one mobile theme.'] = 'Je kunt slechts een mobiel thema activeren.'; $lang['Piwigo for iOS application empowers you to connect to your Piwigo gallery from your iPhone, iPad or iPod Touch, create some albums and upload several photos at once.'] = 'Piwigo voor IOS applicatie stelt je in staat jouw Piwigo galerie te openen vanaf je iPhone, iPad of iPod Touch, een aantal albums aan te maken en meerdere foto\'s tegelijk te uploaden.'; +$lang['Piwigo for Android application empowers you to connect your Android phone or table to your Piwigo gallery, create some albums and upload several photos at once.'] = 'De Piwigo voor Android applicatie stelt u in staat uw Piwigo galerie te openen vanaf uw Android-telefoon of tablet, een aantal albums aan te maken en meerdere foto\'s tegelijk te uploaden.'; $lang['Adobe Photoshop Lightroom is a photography software designed to manage large quantities of digital images and doing post production work.'] = 'Adobe Photoshop Lightroom is fotografie-software ontworpen om grote hoeveelheden digitale foto\'s te verwerken en voor het verrichten van post-productie werk.'; $lang['Applications'] = 'Toepassingen'; $lang['apply automatic sort order'] = 'Automatische sorteervolgorde toepassen'; @@ -813,6 +814,7 @@ $lang['Available on'] = 'Beschikbaar voor'; $lang['cancel manual order'] = 'Annuleer handmatige volgorde'; $lang['Cancel'] = 'Annuleer'; $lang['List'] = 'Lijst'; +$lang['Piwigo for Android'] = 'Piwigo voor Android'; $lang['Piwigo for iOS (iPhone, iPad, iPod Touch)'] = 'Piwigo voor iOS (iPhone, iPad, iPod Touch)'; $lang['Piwigo Publish plugin for Lightroom'] = 'Piwigo Publish plugin voor Lightroom'; $lang['Piwigo publish plugin for Shotwell'] = 'Piwigo Publish plugin voor Shotwell'; @@ -915,7 +917,7 @@ $lang['between %d and %d pixels'] = 'tussen %d en %d pixels'; $lang['Duplicate'] = 'Kopieer'; $lang['Manage the members'] = 'Beheer de gebruikers'; $lang['Merge selected groups'] = 'Voeg de geselecteerde groepen samen'; -$lang['No group selected, no action possible.'] = 'Geen groep geselecteerd. Handeling niet mogelijk'; +$lang['No groups selected, no actions possible.'] = 'Geen groep geselecteerd. Handeling niet mogelijk'; $lang['No members to manage'] = 'Geen gebruikers te beheren'; $lang['Please select at least two groups'] = 'Selecteer minstens 2 groepen'; $lang['Rename'] = 'Hernoem'; @@ -939,7 +941,7 @@ $lang['Showing %s to %s of %s users'] = 'Toon %s aan %s van de %s gebruikers'; $lang['Update user'] = 'Werk de gebruiker bij'; $lang['No matching user found'] = 'Geen overeenkomende gebruikers gevonden'; $lang['No user selected of %d users'] = 'Geen gebruiker geselecteerd van de %d gebruikers'; -$lang['No user selected, no action possible.'] = 'Geen gebruiker geselecteerd. Geen actie mogelijk'; +$lang['No users selected, no actions possible.'] = 'Geen gebruiker geselecteerd. Geen actie mogelijk'; $lang['Registered on %s, %s.'] = 'Geregistreerd op %s, %s.'; $lang['Show %s users'] = 'Toon %s gebruikers'; $lang['Change username'] = 'Verander gebruikersnaam'; @@ -978,8 +980,8 @@ $lang['delete only album, not photos'] = 'Verwijder alleen het album, niet de fo $lang['Delete album "%s".'] = 'Verwijder album %s.'; $lang['First photo added'] = 'Eerste toegevoegde afbeelding'; $lang['It only takes a few clicks.'] = 'Het duurt slechts een paar klikken.'; -$lang['No tag selected, no action possible.'] = 'Geen label geselecteerd. Geen actie mogelijk'; -$lang['Piwigo %s is available, please update'] = 'Piwigo %s is beschikbaar, update a.u.b.'; +$lang['No tags selected, no actions possible.'] = 'Geen label geselecteerd. Geen actie mogelijk'; +$lang['Piwigo %s is available, please update'] = 'Piwigo %s is beschikbaar, bijwerke a.u.b.'; $lang['Select tags'] = 'Selecteer labels'; $lang['Storage used'] = 'Opslag gebruikt'; $lang['(determined from photos)'] = '(Bepaald op basis van foto\'s)'; @@ -1009,4 +1011,4 @@ $lang['Visit'] = 'Bezoek'; $lang['Welcome!'] = 'Welkom!'; $lang['With no checksum'] = 'Zonder checksum'; $lang['checksums to add'] = 'checksums toe te voegen'; -$lang['or'] = 'of'; \ No newline at end of file +$lang['or'] = 'of'; diff --git a/language/nn_NO/admin.lang.php b/language/nn_NO/admin.lang.php index f35d07164..26ebfc6d7 100644 --- a/language/nn_NO/admin.lang.php +++ b/language/nn_NO/admin.lang.php @@ -217,6 +217,7 @@ $lang['width must be a number superior to'] = 'breidde mÃ¥ vera eit tal større $lang['Anomaly'] = 'Feil'; $lang['Are you sure you want to delete this plugin?'] = 'Er du sikker pÃ¥ at du vil fjerne dette tilleggsprogrammet'; $lang['Are you sure you want to install this plugin?'] = 'Er du sikker pÃ¥ at du vil installere dette tilleggsprogrammet'; +$lang['Piwigo for Android application empowers you to connect your Android phone or table to your Piwigo gallery, create some albums and upload several photos at once.'] = 'Piwigo for Android appen gjer det mogleg Ã¥ kople ein Android telefon eller nettbrett til ditt Piwigo galleri. Du kan lage album og laste opp fleire bilete pÃ¥ ein gong.'; $lang['Piwigo for iOS application empowers you to connect to your Piwigo gallery from your iPhone, iPad or iPod Touch, create some albums and upload several photos at once.'] = 'Piwigo for iOS appen gjer det mogleg Ã¥ kople ein iPhone, iPad eller iPod Touch til ditt Piwigo galleri. Du kan lage album og laste opp fleire bilete pÃ¥ ein gong.'; $lang['Add write access to the "%s" directory'] = 'Legg til skriverettar til "%s" katalogen'; $lang['Adobe Photoshop Lightroom is a photography software designed to manage large quantities of digital images and doing post production work.'] = 'Adobe Photoshop Lightroom er programvare laga for Ã¥ handtere store mengder digitale foto og gjera biletbehandling.'; @@ -288,7 +289,7 @@ $lang['Week starts on'] = 'Veka startar pÃ¥'; $lang['Who can see these photos?'] = 'Kven kan sjÃ¥ desse bileta?'; $lang['New parent album'] = 'Nytt foreldrealbum'; $lang['No display'] = 'Ingen vising'; -$lang['No group selected, no action possible.'] = 'Ingen gruppe er vald, ingen handling mogleg.'; +$lang['No groups selected, no actions possible.'] = 'Ingen gruppe er vald, ingen handling mogleg.'; $lang['Not cropped correctly?'] = 'Ikkje kutta rett?'; $lang['Notification'] = 'Melding'; $lang['Notify administrators when a comment is'] = 'Send melding til administratorar nÃ¥r ein kommentar er'; @@ -484,7 +485,7 @@ $lang['No photo can be deleted'] = 'Ingen bilete kan slettast'; $lang['No photo in the current set.'] = 'Ingen bilete i gjeldande samling'; $lang['No photo in this album'] = 'Ingen bilete i dette albumet'; $lang['No photo selected, %d photos in current set'] = 'Ingen bilete vald, %d bilete i gjeldande samling'; -$lang['No photo selected, no action possible.'] = 'Ingen bilete vald, ingen handling er mogleg.'; +$lang['No photos selected, no actions possible.'] = 'Ingen bilete vald, ingen handling er mogleg.'; $lang['No results'] = 'Ingen resultat'; $lang['No user to send notifications by mail.'] = 'Ingen brukar som kan informerast via e-post.'; $lang['None'] = 'Ingen'; @@ -516,6 +517,7 @@ $lang['Pending Comments'] = 'Ventande kommentarar'; $lang['Permalink'] = 'Permalenke'; $lang['Permalink %s is already used by album %s'] = 'Permalenke %s er allereie i bruk av album %s'; $lang['Permalink history'] = 'Permalenke-historikk'; +$lang['Piwigo for Android'] = 'Piwigo for Android'; $lang['Piwigo for iOS (iPhone, iPad, iPod Touch)'] = 'Piwigo for iOS (iPhone, iPad, iPod Touch)'; $lang['Posted %s on %s'] = 'Lagt til %s %s'; $lang['Permalinks'] = 'Permalenker'; @@ -937,7 +939,7 @@ $lang['No matching user found'] = 'Ingen brukarar vart funne'; $lang['Password updated'] = 'Passordet er endra'; $lang['Show %s users'] = 'Vis %s brukarar'; $lang['No user selected of %d users'] = 'Ingen brukarar valde (totalt %d brukarar)'; -$lang['No user selected, no action possible.'] = 'Ingen brukarar valde - ingen aksjon mogleg'; +$lang['No users selected, no actions possible.'] = 'Ingen brukarar valde - ingen aksjon mogleg'; $lang['Registered on %s, %s.'] = 'Registrera %s, %s.'; $lang['Showing %s to %s of %s users'] = 'Viser %s til %s av %s brukarar'; $lang['Update user'] = 'Endre brukar'; diff --git a/language/pl_PL/admin.lang.php b/language/pl_PL/admin.lang.php index 3c2204fbd..49cebf348 100644 --- a/language/pl_PL/admin.lang.php +++ b/language/pl_PL/admin.lang.php @@ -663,7 +663,7 @@ $lang['Refresh photo set'] = 'OdÅ›wież zestaw zdjęć'; $lang['The whole page'] = 'Całą strona'; $lang['The whole set'] = 'CaÅ‚y zestaw'; $lang['No photo in the current set.'] = 'Brak zdjęć w wybranym zestawie.'; -$lang['No photo selected, no action possible.'] = 'Brak wybranych zdjęć, niedostÄ™pna jest żadna akcja.'; +$lang['No photos selected, no actions possible.'] = 'Brak wybranych zdjęć, niedostÄ™pna jest żadna akcja.'; $lang['Choose an action'] = 'Wybierz akcjÄ™'; $lang['remove author'] = 'usuÅ„ autora'; $lang['Type here the author name'] = 'Wpisz tutaj nazwÄ™ autora'; @@ -802,10 +802,12 @@ $lang['Not cropped correctly?'] = 'Rozmiar nie zmieniony poprawnie?'; $lang['Center of interest'] = 'Centrum zainteresowania'; $lang['Move to album'] = 'PrzenieÅ› do albumu'; +$lang['Piwigo for Android application empowers you to connect your Android phone or table to your Piwigo gallery, create some albums and upload several photos at once.'] = 'Piwigo na Androida aplikacja daje możliwość połączenia Twojej galerii Piwigo z Twoim telefonem lub tabletem opartym na Androidzie. Możesz tworzyć albumy i wysyÅ‚ać wiele zdjęć jednoczeÅ›nie.'; $lang['Piwigo for iOS application empowers you to connect to your Piwigo gallery from your iPhone, iPad or iPod Touch, create some albums and upload several photos at once.'] = 'Piwigo na iOS aplikacja daje możliwość połączenia Twojej galerii Piwigo z Twoim iPhonem, iPadem lub iPodem. Możesz tworzyć albumy i wysyÅ‚ać wiele zdjęć jednoczeÅ›nie.'; $lang['Applications'] = 'Aplikacje'; $lang['Available on'] = 'DostÄ™pne na'; $lang['Cancel'] = 'Anuluj'; +$lang['Piwigo for Android'] = 'Piwigo na Androida'; $lang['Piwigo for iOS (iPhone, iPad, iPod Touch)'] = 'Piwigo na iOS (iPhone, iPad, iPod Touch)'; $lang['any visitor can see this album'] = 'wszyscy odwiedzajÄ…cy galeriÄ™ zobaczÄ… ten album'; $lang['apply automatic sort order'] = 'Zastosuj automatycznÄ… kolejność sortowania'; @@ -913,7 +915,7 @@ $lang['between %.2f and %.2f'] = 'pomiÄ™dzy %.2f i %.2f'; $lang['Duplicate'] = 'Duplikuj'; $lang['Manage the members'] = 'ZarzÄ…dzaj czÅ‚onkami'; $lang['Merge selected groups'] = 'Połącz wybrane grupy'; -$lang['No group selected, no action possible.'] = 'Nie wybrano grup, nie można wykonywać żadnych akcji'; +$lang['No groups selected, no actions possible.'] = 'Nie wybrano grup, nie można wykonywać żadnych akcji'; $lang['No members to manage'] = 'Nie ma czÅ‚onków do zarzÄ…dzania'; $lang['Please select at least two groups'] = 'Wybierz conajmniej dwie grupy'; $lang['Rename'] = 'ZmieÅ„ nazwÄ™'; @@ -935,7 +937,7 @@ $lang['%d of %d users selected'] = 'wybrano %d z %d użytkowników'; $lang['All %d users are selected'] = 'Każdy z %d użytkowników zostaÅ‚ wybrany'; $lang['No matching user found'] = 'Nie odnaleziono pasujÄ…cego użytkownika'; $lang['No user selected of %d users'] = 'Nie wybrano żadnego z %d użytkowników'; -$lang['No user selected, no action possible.'] = 'Nie wybrano żadnego użytkownika, żadna akcja nie jest możliwa.'; +$lang['No users selected, no actions possible.'] = 'Nie wybrano żadnego użytkownika, żadna akcja nie jest możliwa.'; $lang['Update user'] = 'Zaktualizuj użytkownika'; $lang['User %s added'] = 'Dodano użytkownika %s'; $lang['User %s updated'] = 'Użytkownik %s zostaÅ‚ zaktualizowany'; @@ -985,7 +987,7 @@ $lang['(determined from photos)'] = '(pobrane ze zdjÄ™cia)'; $lang['Delete album "%s" and its %d sub-albums.'] = 'Skasuj album "%s" ze wszystkimi %d pod albumami.'; $lang['Recipients'] = 'Odbiorcy'; $lang['No recipient selected'] = 'Nie wybrano odbiorców'; -$lang['No tag selected, no action possible.'] = 'Nie wybrano znaczników, brak możliwych akcji.'; +$lang['No tags selected, no actions possible.'] = 'Nie wybrano znaczników, brak możliwych akcji.'; $lang['First photo added'] = 'Dodano pierwsze zdjÄ™cie'; $lang['Edit user'] = 'Edytuj użytkownika'; $lang['Display form'] = 'Pokaż formularz'; @@ -1007,4 +1009,4 @@ $lang['Synchronization in progress'] = 'Trwa synchronizacja'; $lang['Welcome!'] = 'Witamy!'; $lang['With no checksum'] = 'Bez sum kontrolnych'; $lang['checksums to add'] = 'sumy kontrolne do dodania'; -$lang['or'] = 'lub'; \ No newline at end of file +$lang['or'] = 'lub'; diff --git a/language/pt_BR/admin.lang.php b/language/pt_BR/admin.lang.php index 913f57b61..06f2f6810 100644 --- a/language/pt_BR/admin.lang.php +++ b/language/pt_BR/admin.lang.php @@ -652,6 +652,7 @@ $lang['%d years'] = '%d anos'; $lang['%s ago'] = '%s atrás'; $lang['%s in the future'] = '%s no futuro'; $lang['%u users have automatic permission because they belong to a granted group.'] = 'usuários %u tem permissão automática porque pertencem a um grupo que possui essa permissão'; +$lang['Piwigo for Android application empowers you to connect your Android phone or table to your Piwigo gallery, create some albums and upload several photos at once.'] = 'O aplicativo Piwigo para Android capacita você a conectar o seu celular ou tablet Android à sua galeria Piwigo, criando álbuns e colocando várias fotos ao mesmo tempo.'; $lang['A locked gallery is only visible to administrators'] = 'Uma galeria trancada é somente visÃvel pelos administradores'; $lang['Added by %s'] = 'Adicionado por %s'; $lang['Adobe Photoshop Lightroom is a photography software designed to manage large quantities of digital images and doing post production work.'] = 'O Adobe Photoshop Lightroom é um software de fotografia feito para gerenciar grandes quantidades de imagens digitais e fazer o trabalho de pós-produção'; @@ -709,7 +710,7 @@ $lang['No group is permitted to see this private album'] = 'Nenhum grupo tem per $lang['No order field selected'] = 'Nenhum campo de ordenação selecionado'; $lang['No photo in the current set.'] = 'Nenhuma foto no set atual'; $lang['No photo selected, %d photos in current set'] = 'Nenhuma foto selecionada, %d fotos no set atual'; -$lang['No photo selected, no action possible.'] = 'Nenhuma fotos selecionada, nenhuma ação possÃvel.'; +$lang['No photos selected, no actions possible.'] = 'Nenhuma fotos selecionada, nenhuma ação possÃvel.'; $lang['No results'] = 'Sem Resultados'; $lang['None'] = 'Nenhum'; $lang['Not cropped correctly?'] = 'Não recortado corretamente?'; @@ -743,6 +744,7 @@ $lang['Piwigo Uploader'] = 'Envio de Fotos do Piwigo'; $lang['Piwigo cannot retrieve upgrade file from server'] = 'Piwigo não pode receber arquivos de atualização do servidor'; $lang['Piwigo export plugin for Aperture'] = 'Plugin de Exportação do Piwigo para Aperture'; $lang['Piwigo export plugin for iPhoto'] = 'Plugin de Exportação do Piwigo para iPhoto'; +$lang['Piwigo for Android'] = 'Piwigo para Android'; $lang['Piwigo for iOS (iPhone, iPad, iPod Touch)'] = 'Piwigo para iOS (iPhone, iPad, iPod Touch)'; $lang['Piwigo publish plugin for Shotwell'] = 'Plugin de publicação do Piwigo para Shortwell'; $lang['Piwigo publish plugin for digiKam'] = 'Plugin de publicação do Piwigo para digiKam'; @@ -914,7 +916,7 @@ $lang['between %d and %d pixels'] = 'Entre %d e %d pixels'; $lang['Duplicate'] = 'Duplicado'; $lang['Manage the members'] = 'Gerencie os membros'; $lang['Merge selected groups'] = 'Junte os grupos selecionados'; -$lang['No group selected, no action possible.'] = 'Nenhum grupo selecionado. Nenhuma açao é possÃvel.'; +$lang['No groups selected, no actions possible.'] = 'Nenhum grupo selecionado. Nenhuma açao é possÃvel.'; $lang['No members to manage'] = 'Sem membros para gerenciar'; $lang['Please select at least two groups'] = 'Por favor, selecione ao menos dois grupos'; $lang['Rename'] = 'Renomear'; @@ -936,7 +938,7 @@ $lang['Last visit on %s, %s.'] = 'Última visita em %s, %s.'; $lang['Loading...'] = 'Carregando...'; $lang['No matching user found'] = 'Nenhum usuário encontrado'; $lang['No user selected of %d users'] = 'Nenhum usuário selecionado do total de %d usuários'; -$lang['No user selected, no action possible.'] = 'Nenhum usuário selecionado, nenhuma ação possÃvel.'; +$lang['No users selected, no actions possible.'] = 'Nenhum usuário selecionado, nenhuma ação possÃvel.'; $lang['Password updated'] = 'Senha atualizada'; $lang['Registered on %s, %s.'] = 'Registrado em %s, %s.'; $lang['Show %s users'] = 'Mostra %s usuários'; @@ -985,7 +987,7 @@ $lang['Select tags'] = 'Selecionar etiquetas'; $lang['Running on an up-to-date Piwigo is important for security.'] = 'Executar um Piwigo atualizado é importante para a segurança.'; $lang['Piwigo Remote Sync is able to upload a whole folder hierarchy. If you run it again, only new photos will be uploaded.'] = 'Piwigo Remote Sync é capaz de enviar uma seleção inteira de pastas. Se você executá-lo novamente, apenas novas fotos serão enviadas.'; $lang['Piwigo %s is available, please update'] = 'Piwigo %s está disponÃvel, atualize'; -$lang['No tag selected, no action possible.'] = 'Nenhuma etiqueta selecionada, nenhuma ação possÃvel.'; +$lang['No tags selected, no actions possible.'] = 'Nenhuma etiqueta selecionada, nenhuma ação possÃvel.'; $lang['No filter on album. Select one or type to search'] = 'Nenhum filtro no álbum. Selecione um ou digite para pesquisar'; $lang['It only takes a few clicks.'] = 'Demora apenas alguns cliques.'; $lang['First photo added'] = 'Primeira foto adicionada'; @@ -1009,4 +1011,4 @@ $lang['Visit'] = 'Visita'; $lang['Welcome!'] = 'Bem vindo!'; $lang['With no checksum'] = 'Sem soma de verificação'; $lang['checksums to add'] = 'somas de verificação para adicionar'; -$lang['or'] = 'ou'; \ No newline at end of file +$lang['or'] = 'ou'; diff --git a/language/pt_PT/admin.lang.php b/language/pt_PT/admin.lang.php index d683730c5..6e13b66d6 100644 --- a/language/pt_PT/admin.lang.php +++ b/language/pt_PT/admin.lang.php @@ -609,7 +609,7 @@ $lang['Missing Plugins'] = 'Extenções em Falta'; $lang['No file was uploaded'] = 'Nenhum carregado qualquer arquivo'; $lang['No photo in the current set.'] = 'Nenhuma foto no conjunto actual.'; $lang['No photo selected, %d photos in current set'] = 'Nenhuma foto seleccionada, %d fotos no conjunto actual'; -$lang['No photo selected, no action possible.'] = 'Nenhuma foto seleccionada, ImpossÃvel realizar acção.'; +$lang['No photos selected, no actions possible.'] = 'Nenhuma foto seleccionada, ImpossÃvel realizar acção.'; $lang['None'] = 'Nenhuma'; $lang['on the %d selected photos'] = 'Nas %d fotos seleccionadas'; $lang['Operation in progress'] = 'Operação em progresso.'; @@ -812,6 +812,7 @@ $lang['Cancel'] = 'Cancelar'; $lang['List'] = 'Lista'; $lang['Web Form'] = 'Formulário web'; $lang['Applications'] = 'Aplicações'; +$lang['Piwigo for Android application empowers you to connect your Android phone or table to your Piwigo gallery, create some albums and upload several photos at once.'] = 'A aplicação Piwigo for Android permite-lhe ligar do seu telefone Android ou Tablet à galeria Piwigo, criar albuns e carregar diversas fotos simultâneamente.'; $lang['Piwigo for iOS application empowers you to connect to your Piwigo gallery from your iPhone, iPad or iPod Touch, create some albums and upload several photos at once.'] = 'A aplicação Piwigo for iOS permite-lhe, ligação à sua galeria Piwigo a partir do seu IPhone,IPad ou IPod táctil, criar albuns e carregar fotos simultâneamente.'; $lang['Adobe Photoshop Lightroom is a photography software designed to manage large quantities of digital images and doing post production work.'] = 'Adobe Photoshop Lightroom é um software para fotografia desenhado para manusear larga quantidade de fotos digitais e para transferência depois de produzidas.'; $lang['Aperture is a powerful tool to refine images and manage massive libraries on Mac.'] = 'Abertura é uma potente ferramenta destinada a refinar imagens e gerenciar massivas livrarias em Mac.'; @@ -822,6 +823,7 @@ $lang['iPhoto is the default photo manager on MacOSX. The Piwigo export plugin l $lang['On your Linux, simply install Shotwell with your package manager and the activate Piwigo publishing option.'] = 'Em Linux, instale o Shotwell com o pacote base e, depois terá de ativar a opção ativar publicação Piwigo.'; $lang['Piwigo export plugin for Aperture'] = 'Exportar Extenção Piwigo para Aperture.'; $lang['Piwigo export plugin for iPhoto'] = 'Extenção Piwigo de exportação para Iphoto.'; +$lang['Piwigo for Android'] = 'Piwigo para Android'; $lang['Piwigo for iOS (iPhone, iPad, iPod Touch)'] = 'Piwigo para iOS (iPhone, iPad, iPod táctil)'; $lang['Piwigo publish plugin for digiKam'] = 'Extenção de publicação Piwigo para DigiKam.'; $lang['Piwigo Publish plugin for Lightroom'] = 'Extenção de publicação Piwigo para Lightroom.'; @@ -912,7 +914,7 @@ $lang['between %d and %d pixels'] = 'entre %d e %d pixels'; $lang['Duplicate'] = 'Duplicar'; $lang['Manage the members'] = 'Gerir os membros'; $lang['Merge selected groups'] = 'Omitir os grupos selecionados'; -$lang['No group selected, no action possible.'] = 'Não existe grupo selecionado, não é possivel qualquer ação'; +$lang['No groups selected, no actions possible.'] = 'Não existe grupo selecionado, não é possivel qualquer ação'; $lang['No members to manage'] = 'Sem membros para gerir'; $lang['Please select at least two groups'] = 'Selecione, por favor, pelo menos dois grupo.'; $lang['Rename'] = 'Renomear'; @@ -936,7 +938,7 @@ $lang['Last visit on %s, %s.'] = 'Última visita em %s, %s.'; $lang['Loading...'] = 'Carregando'; $lang['No matching user found'] = 'Não foram encontrados utilizadores que correspondam'; $lang['No user selected of %d users'] = 'Em %d utilizadores não foi nenhum selecionado'; -$lang['No user selected, no action possible.'] = 'Sem utilizador selecionado não é possivel qualquer ação'; +$lang['No users selected, no actions possible.'] = 'Sem utilizador selecionado não é possivel qualquer ação'; $lang['Password updated'] = 'Senha atualizada'; $lang['Registered on %s, %s.'] = 'Registado em %s, %s.'; $lang['Showing %s to %s of %s users'] = 'Mostrando %s para %s de %s utilizadores'; @@ -986,7 +988,7 @@ $lang['Display form'] = 'Formulário de exibição'; $lang['First photo added'] = 'Primeira foto adicionada'; $lang['It only takes a few clicks.'] = 'Demora apenas alguns cliques'; $lang['No filter on album. Select one or type to search'] = 'Nenhum filtro no álbum. Selecione um ou digite para pesquisar'; -$lang['No tag selected, no action possible.'] = 'Nenhuma tag selecionada, nenhuma ação possÃvel.'; +$lang['No tags selected, no actions possible.'] = 'Nenhuma tag selecionada, nenhuma ação possÃvel.'; $lang['Piwigo Remote Sync is able to upload a whole folder hierarchy. If you run it again, only new photos will be uploaded.'] = 'Piwigo Remote Sync é capaz de carregar uma hierarquia de pasta inteira. Se você executá-lo novamente, apenas novas fotos serão enviadas'; $lang['Running on an up-to-date Piwigo is important for security.'] = 'Trabalhar em um Piwigo atualizado é importante para a segurança.'; $lang['Select tags'] = 'Selecionar tags'; diff --git a/language/ro_RO/admin.lang.php b/language/ro_RO/admin.lang.php index f7dc925be..a0a490201 100644 --- a/language/ro_RO/admin.lang.php +++ b/language/ro_RO/admin.lang.php @@ -608,6 +608,7 @@ $lang['Aperture is designed for professional photographers with iPhoto simplicit $lang['Aperture is a powerful tool to refine images and manage massive libraries on Mac.'] = 'Aperture este un instrument puternic proiectat pentru redefinirea imaginilor È™i pentru gestiunea de biblioteci mari pe un sistem Mac.'; $lang['Adobe Photoshop Lightroom is a photography software designed to manage large quantities of digital images and doing post production work.'] = 'Adobe Photoshop Lightroom este un program pentru fotografii proiectat pentru a gestiona È™i a prelucra mari cantități de imagini digitale.'; $lang['Piwigo for iOS application empowers you to connect to your Piwigo gallery from your iPhone, iPad or iPod Touch, create some albums and upload several photos at once.'] = 'Piwigo pentru iOS programul vă permite să vă conectaÈ›i iPhone-ul, iPad-ul sau iPad-ul Touch la galeria dvs. Piwigo, să creaÈ›i unele albume È™i să transmiteÈ›i mai multe fotografii în acelaÈ™i timp.'; +$lang['Piwigo for Android application empowers you to connect your Android phone or table to your Piwigo gallery, create some albums and upload several photos at once.'] = 'Piwigo pentru Android programul vă permite să vă conectaÈ›i telefonul sau tableta dvs. Android la galeria dvs. Piwigo, să creaÈ›i unele albume È™i să transmiteÈ›i mai multe fotografii în acelaÈ™i timp.'; $lang['%u users have automatic permission because they belong to a granted group.'] = 'u% de utilizatori au permisiunea automată, deoarece aceÈ™tia aparÈ›in unui grup cu permisii.'; $lang['View in gallery'] = 'Vezi în galerie'; $lang['Used metadata'] = 'Metadate utilizate'; @@ -672,6 +673,7 @@ $lang['Piwigo version'] = 'Versiune Piwigo'; $lang['Please select at least two groups'] = 'Te rog alege cel puÅ£in două grupuri'; $lang['Permission granted for users'] = 'Permisiuni acordate pentru utilizator'; $lang['Permission management'] = 'Management de permisiuni'; +$lang['Piwigo for Android'] = 'Piwigo pentru Android'; $lang['Piwigo for iOS (iPhone, iPad, iPod Touch)'] = 'Piwigo pentru iOS (iPhone, iPad, iPod Touch='; $lang['The name of a group must not contain " or \' or be empty.'] = 'Numele unui grup trebuie să nu conÅ£ină " sau \' sau sa fie gol.'; $lang['The name of an album must not be empty'] = 'Numele unui album trebuie să nu fie gol'; @@ -735,7 +737,7 @@ $lang['Restore'] = 'Restaurează'; $lang['Save manual order'] = 'Salvează ordinea manuală'; $lang['Save visits in history for'] = 'Salvează vizitele în istoric pentru'; $lang['Search for new images in the directories'] = 'Caută imagini noi în dosarele'; -$lang['No group selected, no action possible.'] = 'Niciun grup ales, nicio acÅ£iune posibilă.'; +$lang['No groups selected, no actions possible.'] = 'Niciun grup ales, nicio acÅ£iune posibilă.'; $lang['No mail to send.'] = 'Niciun mesaj electronic de trimis.'; $lang['No members to manage'] = 'Niciun membru de administrat'; $lang['Merge selected groups'] = 'ÃŽmbină grupurile alese'; @@ -920,7 +922,7 @@ $lang['Hoverbox display'] = 'AfiÈ™aj în fereastră flotantă'; $lang['No display'] = 'Niciu'; $lang['No order field selected'] = 'Nicio ordine a cămpurilor aleasă'; $lang['No photo selected, %d photos in current set'] = 'Nicio fotografie aleasă, %d fotografii în setul curent'; -$lang['No photo selected, no action possible.'] = 'Nicio fotografie aleasă, nicio acÈ›iune posibilă.'; +$lang['No photos selected, no actions possible.'] = 'Nicio fotografie aleasă, nicio acÈ›iune posibilă.'; $lang['No user to send notifications by mail.'] = 'Niciun utilizator petnru a fi înÈ™tiinÈ›at prin e-mail.'; $lang['Piwigo cannot retrieve upgrade file from server'] = 'Pwigo nu poate aduce fotografiile de pe server'; $lang['Webmaster status is required.'] = 'Este necesar statutul de webmaster.'; @@ -931,7 +933,7 @@ $lang['The webmaster has unsubscribed you from receiving notifications by mail.' $lang['Basic settings'] = 'Setări de bază'; $lang['No matching user found'] = 'Niciun utilizator nu corespunde'; $lang['No user selected of %d users'] = 'Niciun utilizator selectat din %d utilizatori'; -$lang['No user selected, no action possible.'] = 'Niciun utilizator selectat, nicio acÈ›iune posibilă'; +$lang['No users selected, no actions possible.'] = 'Niciun utilizator selectat, nicio acÈ›iune posibilă'; $lang['Password updated'] = 'Parolă adusă la zi'; $lang['Showing %s to %s of %s users'] = 'Arăt de la %s la %s din %s utilizatori'; $lang['Update user'] = 'Adu la zi utilizator'; @@ -993,7 +995,7 @@ $lang['delete only album, not photos'] = 'sterge doar albumul, nu si fotografiil $lang['Piwigo %s is available, please update'] = 'Piwigo %s este disponibil, te rugăm să actualizezi'; $lang['First photo added'] = 'Prima fotografie adaugată'; $lang['No filter on album. Select one or type to search'] = 'Niciun filtru pe album. Selectează unul sau tastează pentru a căuta'; -$lang['No tag selected, no action possible.'] = 'Nicio eticheta selectată, nicio acÅ£iune posibilă'; +$lang['No tags selected, no actions possible.'] = 'Nicio eticheta selectată, nicio acÅ£iune posibilă'; $lang['Confirm deletion'] = 'Confirma stergerea'; $lang['Dashboard'] = 'Panou de control'; $lang['Delete album "%s" and its %d sub-albums.'] = 'Åžterge albumul "%s" ÅŸi %d subalbumele ale sale'; @@ -1012,4 +1014,4 @@ $lang['Visit'] = 'Vizita'; $lang['Welcome!'] = 'Bine ai venit!'; $lang['With no checksum'] = 'Fara suma de control'; $lang['checksums to add'] = 'Sume de control de adaugat'; -$lang['or'] = 'sau'; \ No newline at end of file +$lang['or'] = 'sau'; diff --git a/language/ru_RU/admin.lang.php b/language/ru_RU/admin.lang.php index c1fa66482..c8e3e7f91 100644 --- a/language/ru_RU/admin.lang.php +++ b/language/ru_RU/admin.lang.php @@ -665,7 +665,7 @@ $lang['Refresh photo set'] = 'Обновить набор изображений $lang['The whole page'] = 'Ð’Ñе на Ñтранице'; $lang['The whole set'] = 'Ð’Ñе в наборе'; $lang['No photo in the current set.'] = 'Ðет изображений в текущем наборе.'; -$lang['No photo selected, no action possible.'] = 'Ðичего не выбрано, дейÑтвие невозможно.'; +$lang['No photos selected, no actions possible.'] = 'Ðичего не выбрано, дейÑтвие невозможно.'; $lang['Choose an action'] = 'Выберите дейÑтвие'; $lang['remove author'] = 'удалить автора'; $lang['Type here the author name'] = 'напечатайте Ð¸Ð¼Ñ Ð°Ð²Ñ‚Ð¾Ñ€Ð° здеÑÑŒ'; @@ -797,6 +797,7 @@ $lang['With no album'] = 'Без альбома'; $lang['With no tag'] = 'Без меток'; $lang['With no virtual album'] = 'Без виртуальных альбомов'; $lang['%u users have automatic permission because they belong to a granted group.'] = 'Пользователи %u автоматичеÑки получили разрешение, так как входÑÑ‚ в группу, которой дано разрешение.'; +$lang['Piwigo for Android application empowers you to connect your Android phone or table to your Piwigo gallery, create some albums and upload several photos at once.'] = 'Приложение Piwigo Ð´Ð»Ñ Android позволÑет Вам ÑоединÑтьÑÑ Ñ Ð’Ð°ÑˆÐµÐ¹ галереей Piwigo Ñ Ð’Ð°ÑˆÐµÐ³Ð¾ Android телефона, Ñоздавать альбомы и загружать неÑколько фотографий Ñразу.'; $lang['add a new watermark'] = 'добавить новый водÑной знак'; $lang['administrators'] = 'админиÑтраторов'; $lang['Adobe Photoshop Lightroom is a photography software designed to manage large quantities of digital images and doing post production work.'] = 'Adobe Photoshop Lightroom - Ñто Ñофт Ð´Ð»Ñ Ñ„Ð¾Ñ‚Ð¾Ð³Ñ€Ð°Ñ„Ð¾Ð², Ñозданный Ð´Ð»Ñ ÑиÑтематизации большого количеÑтва изображений, их обработки и поÑледующего иÑпользованиÑ.'; @@ -838,11 +839,12 @@ $lang['Permission granted for groups'] = 'Разрешение предоÑта $lang['Permission granted for users'] = 'Разрешение предоÑтавлено Ð´Ð»Ñ Ð¿Ð¾Ð»ÑŒÐ·Ð¾Ð²Ð°Ñ‚ÐµÐ»ÐµÐ¹'; $lang['Permission management'] = 'Управление доÑтупом'; $lang['Photo sizes with crop'] = 'Размеры изображений Ñ ÐºÑ€Ð¾Ð¿Ð¾Ð¼'; -$lang['Piwigo export plugin for Aperture'] = 'Плагин публикации изображений Ð´Ð»Ñ Aperture'; -$lang['Piwigo export plugin for iPhoto'] = 'Плагин публикации избражений Ð´Ð»Ñ iPhoto'; -$lang['Piwigo publish plugin for digiKam'] = 'Плагин публикации изображений Ð´Ð»Ñ digiKam'; -$lang['Piwigo Publish plugin for Lightroom'] = 'Плагин публикации изображений в Piwigo из Lightroom'; -$lang['Piwigo publish plugin for Shotwell'] = 'Плагин публикации изображений Ð´Ð»Ñ Shotwell'; +$lang['Piwigo export plugin for Aperture'] = 'Плагин публикации фотографий Ð´Ð»Ñ Aperture'; +$lang['Piwigo export plugin for iPhoto'] = 'Плагин публикации фотографий Ð´Ð»Ñ iPhoto'; +$lang['Piwigo for Android'] = 'Piwigo Ð´Ð»Ñ Android'; +$lang['Piwigo publish plugin for digiKam'] = 'Плагин публикации фотографий Ð´Ð»Ñ digiKam'; +$lang['Piwigo Publish plugin for Lightroom'] = 'Плагин публикации фотографий в Piwigo из Lightroom'; +$lang['Piwigo publish plugin for Shotwell'] = 'Плагин публикации фотографий Ð´Ð»Ñ Shotwell'; $lang['ReGalAndroid (RemoteGallery client for Android) is an open source (GPL v3) Piwigo client for the Android platform.'] = 'ReGalAndroid (клиент RemoteGallery Ð´Ð»Ñ Android) - Ñто клиент Ð´Ð»Ñ Piwigo Ñ Ð¾Ñ‚ÐºÑ€Ñ‹Ñ‚Ñ‹Ð¼ кодом (GPL v3) Ð´Ð»Ñ Ð¿Ð»Ð°Ñ‚Ñ„Ð¾Ñ€Ð¼Ñ‹ Android.'; $lang['registered users'] = 'зарегиÑтрированных пользователей'; $lang['Save manual order'] = 'Сохранить ручную Ñортировку'; @@ -916,7 +918,7 @@ $lang['between %d and %d pixels'] = 'между %d и %d пикÑелÑми'; $lang['Duplicate'] = 'Дубликат'; $lang['Manage the members'] = 'Управление учаÑтниками'; $lang['Merge selected groups'] = 'Объединить выбранные группы'; -$lang['No group selected, no action possible.'] = 'Группы не выбраны, поÑтому Ñделать ничего нельзÑ'; +$lang['No groups selected, no actions possible.'] = 'Группы не выбраны, поÑтому Ñделать ничего нельзÑ'; $lang['No members to manage'] = 'Ðе выбраны пользователи Ð´Ð»Ñ ÑƒÐ¿Ñ€Ð°Ð²Ð»ÐµÐ½Ð¸Ñ'; $lang['Please select at least two groups'] = 'ПожалуйÑта, выберите Ñ…Ð¾Ñ‚Ñ Ð±Ñ‹ две группы'; $lang['Rename'] = 'Переименовать'; @@ -935,7 +937,7 @@ $lang['(filtered from %s total users)'] = '(отобрано из %s - обще $lang['All %d users are selected'] = '%d - вÑе пользователи выбраны'; $lang['No matching user found'] = 'СоответÑтвующих пользователей не найдено'; $lang['No user selected of %d users'] = 'Ðе выбраны из %d пользователей'; -$lang['No user selected, no action possible.'] = 'Пользователи не выбраны; дейÑтвие невозможно.'; +$lang['No users selected, no actions possible.'] = 'Пользователи не выбраны; дейÑтвие невозможно.'; $lang['Registered on %s, %s.'] = 'ЗарегиÑтрировано %s, %s.'; $lang['Show %s users'] = '%s пользователей показывать'; $lang['Showing %s to %s of %s users'] = 'Показаны пользователи Ñ %s по %s из %s'; @@ -979,7 +981,7 @@ $lang['No filter on album. Select one or type to search'] = 'Ðе фильтра $lang['Share / Send your photos directly from your Mac Os X (10.10 and following) to Piwigo'] = 'ДелитеÑÑŒ или отправлÑйте Ваши Ð¸Ð·Ð¾Ð±Ñ€Ð°Ð¶ÐµÐ½Ð¸Ñ Ð¸Ð· Mac Os X (10.10 выше) прÑмо в Piwigo'; $lang['Time has come to update your Piwigo with version %s, go to %s'] = 'Пришло Ð²Ñ€ÐµÐ¼Ñ Ð¾Ð±Ð½Ð¾Ð²Ð¸Ñ‚ÑŒ Piwigo Ñ Ð²ÐµÑ€Ñии %s до %s'; $lang['delete album and all %d photos, even the %d associated to other albums'] = 'удаление альбома, в котором %d изображений, в том чиÑле %d ÑвÑзанные Ñ Ð´Ñ€ÑƒÐ³Ð¸Ð¼Ð¸ альбомами'; -$lang['No tag selected, no action possible.'] = 'ТÑг не выбран, дейÑтвие невозможно.'; +$lang['No tags selected, no actions possible.'] = 'ТÑг не выбран, дейÑтвие невозможно.'; $lang['Piwigo %s is available, please update'] = 'ДоÑтупна верÑÐ¸Ñ Piwigo %s. ПожалуйÑта, обновитеÑÑŒ.'; $lang['Running on an up-to-date Piwigo is important for security.'] = 'Своевременное обновление и работа только на Ñвежей верÑии Piwigo имеет важное значение Ð´Ð»Ñ Ð±ÐµÐ·Ð¾Ð¿Ð°ÑноÑти.'; $lang['delete album and the %d orphan photos'] = 'удаление альбома и %d неÑвÑзанных изображений'; @@ -1010,4 +1012,4 @@ $lang['Synchronization in progress'] = 'Идет ÑинхронизациÑ'; $lang['Welcome!'] = 'Добро пожаловать!'; $lang['With no checksum'] = 'Без контрольной Ñуммы'; $lang['checksums to add'] = 'добавить коннтрольную Ñумму'; -$lang['or'] = 'или '; \ No newline at end of file +$lang['or'] = 'или '; diff --git a/language/sh_RS/admin.lang.php b/language/sh_RS/admin.lang.php index 10853f3ea..0bbfcfb5c 100644 --- a/language/sh_RS/admin.lang.php +++ b/language/sh_RS/admin.lang.php @@ -653,7 +653,7 @@ $lang['All languages are up to date.'] = 'Svi jezici su ažurni.'; $lang['All plugins are up to date.'] = 'Svi plaginovi su ažurni.'; $lang['All themes are up to date.'] = 'Sve teme su ažurne.'; $lang['Allowed file types: %s.'] = 'Dozvoljeni tipovi fajlova: %s'; -$lang['An error has occured during extract. Please check files permissions of your piwigo installation.Click here to show log error.'] = 'Dogodila se greÅ¡ka u toku raspakivanja. Molimo proverite dozvole na fajlovima VaÅ¡e piwigo instalacije. +$lang['An error has occured during extract. Please check files permissions of your piwigo installation.Click here to show log error.'] = 'Dogodila se greÅ¡ka u toku raspakivanja. Molimo proverite dozvole na fajlovima VaÅ¡e piwigo instalacije. Kliknite ovde da biste videli zapis greÅ¡ke.'; $lang['An error has occured during upgrade.'] = 'Dogodila se greÅ¡ka u toku nadgradnje.'; $lang['Apply action'] = 'Primeni akciju'; @@ -725,7 +725,7 @@ $lang['No destination tag selected'] = 'Nije odabrana odrediÅ¡na oznaka'; $lang['No file was uploaded'] = 'Nije poslat ni jedan fajl'; $lang['No photo in the current set.'] = 'Nema fotografija u trenutnom skupu'; $lang['No photo selected, %d photos in current set'] = 'Nema odabranih fotografija, %d fotografija u trenutnom skupu'; -$lang['No photo selected, no action possible.'] = 'Nema odabranih fotografija, nema dozvoljenih akcija'; +$lang['No photos selected, no actions possible.'] = 'Nema odabranih fotografija, nema dozvoljenih akcija'; $lang['No results'] = 'Nema rezultata'; $lang['Not cropped correctly?'] = 'PogreÅ¡no iseÄeno?'; $lang['Notify administrators when a comment is'] = 'Obavesti administratore kada je komentar'; @@ -822,10 +822,12 @@ $lang['You have %d orphan tags: %s.'] = 'Imate %d napuÅ¡tenih oznaka: %s.'; $lang['You have specified $conf[\'order_by\'] in your local configuration file, this parameter in deprecated, please remove it or rename it into $conf[\'order_by_custom\'] !'] = 'OznaÄili ste $conf[\'order_by\'] u svom lokalnom podeÅ¡avanju, ovaj parametar je zastareo, molimo uklonite ga ili ga preimenujte u $conf[\'order_by_custom\']!'; $lang['Zoom'] = 'Uvećaj'; $lang['Delete selected tags'] = 'ObriÅ¡i odabrane oznake'; +$lang['Piwigo for Android application empowers you to connect your Android phone or table to your Piwigo gallery, create some albums and upload several photos at once.'] = 'Piwigo for Android aplikacija omogućava Vam da se povežete sa VaÅ¡om Piwigo galerijom preko Adroid telefona ili tablet raÄunara, možete da kreirate albume i poÅ¡aljete nekoliko slika odjednom.'; $lang['Piwigo for iOS application empowers you to connect to your Piwigo gallery from your iPhone, iPad or iPod Touch, create some albums and upload several photos at once.'] = 'Piwigo za iOS aplikacija omogućava Vam da se povežete sa VaÅ¡om Piwigo galerijom preko iPhone, iPad ili iPod Touch ureÄ‘aja, možete da kreirate albume i poÅ¡aljete nekoliko slika odjednom.'; $lang['Adobe Photoshop Lightroom is a photography software designed to manage large quantities of digital images and doing post production work.'] = 'Adobe Photoshop Lightroom je softver za fotografije dizajniran da upravlja velikom koliÄinom digitalnih slika i za postprodukciju.'; $lang['Available on'] = 'Dostupno na'; $lang['Delete selected users'] = 'ObriÅ¡i odabrane korisnike'; +$lang['Piwigo for Android'] = 'Piwigo za Android'; $lang['Piwigo for iOS (iPhone, iPad, iPod Touch)'] = 'Piwigo za iOs (iPhone, iPad, iPod Touch)'; $lang['Piwigo Publish plugin for Lightroom'] = 'Piwigo Publish plagin za Ligtroom'; $lang['Piwigo publish plugin for Shotwell'] = 'Piwigo publish plagin za Shotwell'; diff --git a/language/sk_SK/admin.lang.php b/language/sk_SK/admin.lang.php index 4a337eb0c..52a565009 100644 --- a/language/sk_SK/admin.lang.php +++ b/language/sk_SK/admin.lang.php @@ -663,7 +663,7 @@ $lang['Refresh photo set'] = 'ObnoviÅ¥ foto súbor'; $lang['The whole page'] = 'Celá stránka'; $lang['The whole set'] = 'Celý súbor'; $lang['No photo in the current set.'] = 'Žiadna fotografia v súÄasnom súbore.'; -$lang['No photo selected, no action possible.'] = 'Nie je oznaÄená žiadna fotografia, nie je možné pokraÄovaÅ¥ v akcii.'; +$lang['No photos selected, no actions possible.'] = 'Nie je oznaÄená žiadna fotografia, nie je možné pokraÄovaÅ¥ v akcii.'; $lang['Choose an action'] = 'Zvoľ akciu'; $lang['remove author'] = 'odstrániÅ¥ autora'; $lang['Type here the author name'] = 'Sem napÃÅ¡te meno autora'; @@ -814,6 +814,8 @@ $lang['Applications'] = 'Aplikácie'; $lang['Available on'] = 'K dispozÃcii'; $lang['Piwigo for iOS (iPhone, iPad, iPod Touch)'] = 'Piwigo pre iOS (iPhone, iPad, iPod Touch)'; $lang['Piwigo for iOS application empowers you to connect to your Piwigo gallery from your iPhone, iPad or iPod Touch, create some albums and upload several photos at once.'] = 'Piwigo pre iOS aplikácie umožňujúcej spojenie na VaÅ¡u Piwigo galériu pre Váš iPhone, iPad alebo iPod Touch, vytváranie albumov a nahrávanie fotografiÃ.'; +$lang['Piwigo for Android'] = 'Piwigo pre Android'; +$lang['Piwigo for Android application empowers you to connect your Android phone or table to your Piwigo gallery, create some albums and upload several photos at once.'] = 'Piwigo pre Android aplikácie umožňujúcej spojenie na VaÅ¡u Piwigo galériu pre Váš iPhone, iPad alebo iPod Touch, vytváranie albumov a nahrávanie fotografiÃ.'; $lang['Piwigo Publish plugin for Lightroom'] = 'Piwigo publikaÄný doplnok pre Lightroom'; $lang['Adobe Photoshop Lightroom is a photography software designed to manage large quantities of digital images and doing post production work.'] = 'Adobe Photoshop Lightroom je fotografický softvér urÄený na správu väÄÅ¡ieho poÄtu digitálnych fotografià a postprodukÄnú prácu.'; $lang['The Piwigo publish Plug-in allows you to export and synchronize photos from Lightroom directly to your Piwigo photo gallery.'] = 'Piwigo publikaÄný doplnok umožňuje export a synchronizáciu fotografià z Lightroomu priamo do VaÅ¡ej Piwigo foto galérie.'; @@ -915,7 +917,7 @@ $lang['This group will be unset to default'] = 'Táto skupina už viac nebude po $lang['This group will be set to default'] = 'Táto skupina bude použitá ako predvolená'; $lang['Rename'] = 'PremenovaÅ¥'; $lang['Please select at least two groups'] = 'ProsÃm oznaÄte aspoň dve skupiny'; -$lang['No group selected, no action possible.'] = 'Žiadna skupina nie je oznaÄená, žiadna akcia nie je možná.'; +$lang['No groups selected, no actions possible.'] = 'Žiadna skupina nie je oznaÄená, žiadna akcia nie je možná.'; $lang['No members to manage'] = 'Žiadni použÃvatelia na spravovanie'; $lang['Manage the members'] = 'SpravovaÅ¥ použÃvateľov'; $lang['Merge selected groups'] = 'PridaÅ¥ oznaÄené skupiny'; @@ -936,7 +938,7 @@ $lang['Showing %s to %s of %s users'] = 'Zobrazených %s až %s z %s použÃvate $lang['Show %s users'] = 'Zobrazených %s použÃvateľov'; $lang['Registered on %s, %s.'] = 'Registrované na %s, %s.'; $lang['Password updated'] = 'Heslo aktualizované'; -$lang['No user selected, no action possible.'] = 'Žiaden použÃvateľ oznaÄený, žiadna akcia možná.'; +$lang['No users selected, no actions possible.'] = 'Žiaden použÃvateľ oznaÄený, žiadna akcia možná.'; $lang['No user selected of %d users'] = 'Žiaden použÃvateľ z %d použÃvateľov oznaÄený'; $lang['No matching user found'] = 'Nenájdený požÃvateľ'; $lang['Loading...'] = 'Nahrávam...'; @@ -983,7 +985,7 @@ $lang['Select tags'] = 'Vyberte kľúÄové slová'; $lang['Running on an up-to-date Piwigo is important for security.'] = 'Spustenie na aktuálnom Piwigo je dôležité pre bezpeÄnosÅ¥.'; $lang['Piwigo Remote Sync is able to upload a whole folder hierarchy. If you run it again, only new photos will be uploaded.'] = 'Piwigo Remote Sync dokáže nahraÅ¥ celú hierarchiu prieÄinkov. Ak ho znovu spustite, nahrajú sa iba nové fotky.'; $lang['Piwigo %s is available, please update'] = 'Piwigo %s je k dispozÃcii, prosÃm aktualizujte'; -$lang['No tag selected, no action possible.'] = 'Nie je vybrané žiadne kľúÄové slovo, nie je možná žiadna akcia.'; +$lang['No tags selected, no actions possible.'] = 'Nie je vybrané žiadne kľúÄové slovo, nie je možná žiadna akcia.'; $lang['No filter on album. Select one or type to search'] = 'Na albume nie je filter. Vyberte jeden alebo typ pre vyhľadávanie'; $lang['It only takes a few clicks.'] = 'StaÄà len niekoľko kliknutÃ.'; $lang['First photo added'] = 'Prvá fotografia bola pridaná'; @@ -1007,4 +1009,4 @@ $lang['Visit'] = 'NávÅ¡teva'; $lang['Welcome!'] = 'Vitajte!'; $lang['With no checksum'] = 'Bez kontrolného súÄtu'; $lang['checksums to add'] = 'kontrolné súÄty, ktoré sa majú pridaÅ¥'; -$lang['or'] = 'alebo'; \ No newline at end of file +$lang['or'] = 'alebo'; diff --git a/language/sl_SI/admin.lang.php b/language/sl_SI/admin.lang.php index 5433d1572..08273323f 100644 --- a/language/sl_SI/admin.lang.php +++ b/language/sl_SI/admin.lang.php @@ -255,6 +255,7 @@ $lang['%s in the future'] = '%s naprej'; $lang['%u users have automatic permission because they belong to a granted group.'] = '%u uporabniki imajo samodejno dovoljenje ker pripadajo odobreni skupini'; $lang['A locked gallery is only visible to administrators'] = 'Zaklenjeno galerijo lahko vidijo le Administratorji'; $lang['Piwigo for iOS application empowers you to connect to your Piwigo gallery from your iPhone, iPad or iPod Touch, create some albums and upload several photos at once.'] = 'Piwigo za iOS je aplikacija, ki vam omogoÄi povezavo z vaÅ¡o Piwigo galerijo preko iOS naprave (iPhone, iPad ali iPod Touch) . Ustvarite nove albume in naložite veÄ fotografij hkrati.'; +$lang['Piwigo for Android application empowers you to connect your Android phone or table to your Piwigo gallery, create some albums and upload several photos at once.'] = 'Piwigo za Android je aplikacija, ki vam omogoÄi povezavo z vaÅ¡o Piwigo galerijo preko Andriod naprave. Ustvarite nove albume in naložite veÄ fotografij hkrati.'; $lang['%d physicals'] = ' %d fiziÄen'; $lang['%d month'] = '%d mesec'; $lang['%d months'] = '%d mesecev'; @@ -401,7 +402,7 @@ $lang['No photo selected, %d photos in current set'] = 'OznaÄene ni nobene foto $lang['No photo can be deleted'] = 'Ni fotografij, ki bi jih bilo mogoÄe izbrisati'; $lang['No photo in the current set.'] = 'V tem nizu ni fotografij'; $lang['No mail to send.'] = 'Ni maila, ki bi ga lahko poslali'; -$lang['No group selected, no action possible.'] = 'OznaÄena ni nobena skupina, izvesti ni mogoÄe nobenega ukaza'; +$lang['No groups selected, no actions possible.'] = 'OznaÄena ni nobena skupina, izvesti ni mogoÄe nobenega ukaza'; $lang['No group is permitted to see this private album'] = 'Nobena skupina nima dovoljenja za ogled tega privatnega albuma'; $lang['No members to manage'] = 'Ni Älanov za upravljanje'; $lang['No order field selected'] = 'Ni oznaÄenega vrstnega reda polj'; @@ -846,6 +847,7 @@ $lang['Piwigo cannot retrieve upgrade file from server'] = 'Piwigo ne more prene $lang['Piwigo configuration'] = 'Piwigo nastavitve'; $lang['Piwigo export plugin for Aperture'] = 'Piwigo izvoz vtiÄnika za Aperture'; $lang['Piwigo export plugin for iPhoto'] = 'Piwigo izvoz vtiÄnika za iPhoto'; +$lang['Piwigo for Android'] = 'Piwigo za Android'; $lang['Piwigo for iOS (iPhone, iPad, iPod Touch)'] = 'Pivigo za iOS (iPhone, iPad, iPod Touch)'; $lang['Piwigo publish plugin for Shotwell'] = 'Piwigo objavni vtiÄnik za Shotwell'; $lang['Piwigo publish plugin for digiKam'] = 'Piwigo objavni vtiÄnik za digiKam'; @@ -917,7 +919,7 @@ $lang['Optimizations have been completed with some errors.'] = 'Optimizacija se $lang['Optional URL keyword'] = 'Opcijska URL kljuÄna beseda'; $lang['Options'] = 'Možnosti'; $lang['Order of menubar items has been updated successfully.'] = 'Razvrstitev elementov menijske vrstice je bila uspeÅ¡no posodobljena'; -$lang['No photo selected, no action possible.'] = 'Ker ni izbrana nobena slika, ni možno nobeno dejanje.'; +$lang['No photos selected, no actions possible.'] = 'Ker ni izbrana nobena slika, ni možno nobeno dejanje.'; $lang['No results'] = 'Ni rezultatov'; $lang['No user to send notifications by mail.'] = 'Noben uporabnik ne bo obveÅ¡Äen preko e-poÅ¡te.'; $lang['Resize after upload disabled due to the use of GD as graphic library'] = 'Stiskanje fotografij pred nalaganjem je onemogoÄeno zaradi uporabe GD grafiÄne knjižnice.'; @@ -934,7 +936,7 @@ $lang['Last visit on %s, %s.'] = 'Zadnji obisk %s, %s.'; $lang['Loading...'] = 'Nalaganje...'; $lang['No matching user found'] = 'Ne najdem ustreznih uporabnikov'; $lang['No user selected of %d users'] = 'Izbran ni noben uporabnik od %d uporabnikov'; -$lang['No user selected, no action possible.'] = 'Izbran ni noben uporabnik, nobeno dejanje ni mogoÄe'; +$lang['No users selected, no actions possible.'] = 'Izbran ni noben uporabnik, nobeno dejanje ni mogoÄe'; $lang['Password updated'] = 'Geslo posodobljeno'; $lang['Registered on %s, %s.'] = 'Registrirani %s, %s.'; $lang['Show %s users'] = 'Prikaži %s uporabnikov'; @@ -980,7 +982,7 @@ $lang['Display form'] = 'Prikazna oblika'; $lang['First photo added'] = 'Prva slika dodana'; $lang['It only takes a few clicks.'] = 'Potrebno je le nekaj klikov'; $lang['No filter on album. Select one or type to search'] = 'Ni filtra za album. Izberite enega ali tipkajte za izbiro'; -$lang['No tag selected, no action possible.'] = 'Ni izbranih oznak, nobena akcija ni možna.'; +$lang['No tags selected, no actions possible.'] = 'Ni izbranih oznak, nobena akcija ni možna.'; $lang['Piwigo %s is available, please update'] = 'Piwigo %s je na voljo, prosimo posodobite namestitev'; $lang['Piwigo Remote Sync is able to upload a whole folder hierarchy. If you run it again, only new photos will be uploaded.'] = 'Piwigo Oddaljena Sinhronizacija je sposobna prenesti celotno hirearhijo folderjev. ÄŒe jo izvedete ponovno se prenesejo le nove fotografije.'; $lang['Running on an up-to-date Piwigo is important for security.'] = 'Uporaba posodobljene Piwigo namestitve je pomembna zaradi varnosti.'; @@ -1005,4 +1007,4 @@ $lang['Visit'] = 'ObiÅ¡Äi'; $lang['Welcome!'] = 'DobrodoÅ¡li'; $lang['With no checksum'] = 'Brez kontrolne vsote'; $lang['checksums to add'] = 'kontrolne vsote za dodati'; -$lang['or'] = 'ali'; \ No newline at end of file +$lang['or'] = 'ali'; diff --git a/language/sr_RS/admin.lang.php b/language/sr_RS/admin.lang.php index 368d13850..95e990331 100644 --- a/language/sr_RS/admin.lang.php +++ b/language/sr_RS/admin.lang.php @@ -660,7 +660,7 @@ $lang['include child albums'] = 'укључи подалбуме'; $lang['manual order'] = 'ручно уређивање'; $lang['No photo in the current set.'] = 'Ðема фотографија у одабраном Ñкупу.'; $lang['No photo selected, %d photos in current set'] = 'Ðиједна одабрана фотографија, број фотографија у одабраном Ñкупу: %d'; -$lang['No photo selected, no action possible.'] = 'Ðиједна одабрана фотографија, нема могућих операција.'; +$lang['No photos selected, no actions possible.'] = 'Ðиједна одабрана фотографија, нема могућих операција.'; $lang['on the %d selected photos'] = 'on the %d одабране Ñлике'; $lang['Orphan tags deleted'] = 'Orphan ознака обриÑана'; $lang['Refresh photo set'] = 'Обнови Ñкуп Ñлика'; @@ -795,6 +795,7 @@ $lang['Move to album'] = 'Пребаци у албум'; $lang['Minimum width'] = 'Минимална ширина'; $lang['Minimum height'] = 'Минимална виÑина'; $lang['Landscape'] = 'Положено'; +$lang['Piwigo for Android'] = 'ПиВиГо за Ðндроид'; $lang['Panorama'] = 'Панорама'; $lang['Select groups...'] = 'Одабери групе ...'; $lang['Select users...'] = 'Одабери кориÑнике ...'; @@ -879,6 +880,7 @@ $lang['X Repeat'] = 'X понављања'; $lang['pending validation'] = 'чека на потврду'; $lang['visitors need to login and have the appropriate permissions to see this album'] = 'поÑетиоци морају бити пријављени и да поÑедују одговарајуће дозволе како би видели овај албум'; $lang['(filtered from %s total users)'] = '(изфилтрирано од %s кориÑника)'; +$lang['Piwigo for Android application empowers you to connect your Android phone or table to your Piwigo gallery, create some albums and upload several photos at once.'] = 'Ðпликација Piwigo за Ðндроид вам омогућава да повежете телефон или таблет Ñа Piwigo галеријом, правите албуме и шаљете по неколико Ñлика одједном.'; $lang['Piwigo for iOS application empowers you to connect to your Piwigo gallery from your iPhone, iPad or iPod Touch, create some albums and upload several photos at once.'] = 'Ðпликација Piwigo за iOS бам омогућава да повежете Piwigo галерију Ñа iPhone, iPad или iPod Touch уређајима, правите албуме и шаљете по неколико Ñлика одједном.'; $lang['Activate it now'] = 'Ðктивирај Ñада'; $lang['Center of interest'] = 'Центар интереÑа'; @@ -925,7 +927,7 @@ $lang['Piwigo publish plugin for digiKam'] = 'Piwigo објављивање за $lang['Please select at least two groups'] = 'Изаберите најмање две групе'; $lang['No order field selected'] = 'Ðије изабрано поље за редоÑлед'; $lang['No user selected of %d users'] = 'Ðије изабран ни један од %d кориÑника'; -$lang['No user selected, no action possible.'] = 'Ðије изабран кориÑник, није могућа ни једна радња.'; +$lang['No users selected, no actions possible.'] = 'Ðије изабран кориÑник, није могућа ни једна радња.'; $lang['Notify administrators when a comment is'] = 'ОбавеÑти админиÑтраторе када је коментар'; $lang['Numeric identifier : %d'] = 'Број Ñлике: %d'; $lang['Select at least one tag'] = 'Изаберите бар једну ознаку'; @@ -936,7 +938,7 @@ $lang['Features include gallery browsing, album creation and photo upload.'] = ' $lang['For photo sizes with crop, such as "Square", Piwigo will do its best to include the center of interest.'] = 'Уколико треба иÑећи део Ñлике, као код коцкаÑтог приказа, Piwigo ће Ñе потрудити да иÑечак Ñадржи интереÑни центар.'; $lang['If no HD is available and if the current websize is bigger than resize dimensions, Piwigo will move it as HD and create a downsized websize photo from it.'] = 'Уколико велике, HD Ñлике ниÑу доÑтупне и уколико је изабрана величина за приказ на вебу већа од умањене Ñлике'; $lang['Mail theme'] = 'Мејл тема'; -$lang['No group selected, no action possible.'] = 'Ðије изабрана група, па није могућа операција.'; +$lang['No groups selected, no actions possible.'] = 'Ðије изабрана група, па није могућа операција.'; $lang['No matching user found'] = 'Ðије пронађен кориÑник'; $lang['No members to manage'] = 'Ðема кориÑника за управљање'; $lang['Open user details'] = 'Јавни подави о кориÑнику'; @@ -992,7 +994,7 @@ $lang['Display form'] = 'Форма приказа'; $lang['First photo added'] = 'Додата прва фотографија'; $lang['It only takes a few clicks.'] = 'Потребно је Ñамо неколико клика.'; $lang['No filter on album. Select one or type to search'] = 'Ðема филтера или албума. Изаберите један или унеÑите у претрагу.'; -$lang['No tag selected, no action possible.'] = 'Ðије изабрана ознака, није могућа ни једна радња.'; +$lang['No tags selected, no actions possible.'] = 'Ðије изабрана ознака, није могућа ни једна радња.'; $lang['Piwigo %s is available, please update'] = 'ДоÑтупан је Пивиго %s, ажурирајте вашу верзију.'; $lang['Display album date period'] = 'Прикажи опÑег датума из Ñваког албума, нпр. „од 12. до 15. јула 2018.“'; $lang['Display category date'] = 'Прикажи датум за категорију'; @@ -1008,4 +1010,4 @@ $lang['%d checksums were added'] = 'Додато је %d Ñума за пров $lang['... or hide this link'] = '… или Ñакриј ову везу'; $lang['Compute %d missing checksums'] = 'Прорачунај %d недоÑтајућих Ñума за проверу'; $lang['Create a first album'] = 'Ðаправите први албум'; -$lang['Deletion in progress'] = 'БриÑање је у току'; \ No newline at end of file +$lang['Deletion in progress'] = 'БриÑање је у току'; diff --git a/language/sv_SE/admin.lang.php b/language/sv_SE/admin.lang.php index 93162c24c..0740cfa97 100644 --- a/language/sv_SE/admin.lang.php +++ b/language/sv_SE/admin.lang.php @@ -664,7 +664,7 @@ $lang['Refresh photo set'] = 'Uppdatera bilder'; $lang['The whole page'] = 'Hela sidan'; $lang['The whole set'] = 'Hela markeringen'; $lang['No photo in the current set.'] = 'inga bilder i den aktuella markeringen..'; -$lang['No photo selected, no action possible.'] = 'Inga foton är valda, inga Ã¥tgärder är möjlig.'; +$lang['No photos selected, no actions possible.'] = 'Inga foton är valda, inga Ã¥tgärder är möjlig.'; $lang['Choose an action'] = 'Välj en Ã¥tgärd'; $lang['remove author'] = 'ta bort författaren'; $lang['Type here the author name'] = 'Skriv författarens namn här'; @@ -814,6 +814,8 @@ $lang['Applications'] = 'Applikationer'; $lang['Available on'] = 'Tillgängliga pÃ¥'; $lang['Piwigo for iOS (iPhone, iPad, iPod Touch)'] = 'Piwigo för iOS (iPhone, iPad, iPod Touch)'; $lang['Piwigo for iOS application empowers you to connect to your Piwigo gallery from your iPhone, iPad or iPod Touch, create some albums and upload several photos at once.'] = 'Piwigo för iOS applikationer tillÃ¥ter dig ansluta till ditt Piwigo galleri frÃ¥n din iPhone, iPad eller iPod Touch, skapa nÃ¥gra album och ladda upp flera bilder pÃ¥ en gÃ¥ng.'; +$lang['Piwigo for Android'] = 'Piwigo för Android'; +$lang['Piwigo for Android application empowers you to connect your Android phone or table to your Piwigo gallery, create some albums and upload several photos at once.'] = 'Piwigo för Android applikationer tillÃ¥ter dig ansluta till ditt Piwigo galleri frÃ¥n din Android telefon eller tablet, skapa nÃ¥gra album och ladda upp flera bilder pÃ¥ en gÃ¥ng.'; $lang['Piwigo Publish plugin for Lightroom'] = 'Piwigo Publish insticksmodul för Lightroom'; $lang['Adobe Photoshop Lightroom is a photography software designed to manage large quantities of digital images and doing post production work.'] = 'Adobe Photoshop Lightroom är en fotoredigeringsmjukvara designad för att hantera stora mängder bilder och göra efterredigering.'; $lang['The Piwigo publish Plug-in allows you to export and synchronize photos from Lightroom directly to your Piwigo photo gallery.'] = 'Insticksmodulen för Piwigo publicering möjliggör export och synkronisering av bilder mellan Lightroom och ditt bildgalleri.'; @@ -916,7 +918,7 @@ $lang['Please select at least two groups'] = 'Vänligen välj minst tvÃ¥ grupper $lang['Panorama'] = 'Panorama'; $lang['Number of albums per page'] = 'Antal album per sida'; $lang['No members to manage'] = 'Inga medlemmar att hantera'; -$lang['No group selected, no action possible.'] = 'Ingen grupp vald, ingen Ã¥tgärd möjlig'; +$lang['No groups selected, no actions possible.'] = 'Ingen grupp vald, ingen Ã¥tgärd möjlig'; $lang['Name of the duplicate'] = 'Namn pÃ¥ kopia'; $lang['Minimum width'] = 'Minsta bredd'; $lang['Minimum height'] = 'Minsta höjd'; @@ -926,7 +928,7 @@ $lang['Resize after upload disabled due to the use of GD as graphic library'] = $lang['The picture dimensions will be reduced to %dx%d pixels.'] = 'Bildens dimension kommer att reduceras till %dx%d pixlar.'; $lang['Select at least one tag'] = 'Välj minst en etikett'; $lang['(filtered from %s total users)'] = '(filtrerat frÃ¥n totalt %s användare)'; -$lang['No user selected, no action possible.'] = 'Ingen användare vald, ingen Ã¥tgärd möjlig.'; +$lang['No users selected, no actions possible.'] = 'Ingen användare vald, ingen Ã¥tgärd möjlig.'; $lang['No matching user found'] = 'Ingen matchande användare funnen'; $lang['Registered on %s, %s.'] = 'Registrerad %s, %s.'; $lang['Users modified'] = 'Användare modifierade'; @@ -979,7 +981,7 @@ $lang['(determined from photos)'] = '(bestäms frÃ¥n foton)'; $lang['Display form'] = 'Visningsforumlär'; $lang['Piwigo Remote Sync is able to upload a whole folder hierarchy. If you run it again, only new photos will be uploaded.'] = 'Piwigi Fjärrsynk kan ladda upp en hel folderhierarki. Om du kör den igen, kommer bara nya foton att laddas upp.'; $lang['Piwigo %s is available, please update'] = 'Piwigo %s är tillgänglig, vänligen uppdatera'; -$lang['No tag selected, no action possible.'] = 'Ingen tagg vald, ingen Ã¥tgärd är möjlig'; +$lang['No tags selected, no actions possible.'] = 'Ingen tagg vald, ingen Ã¥tgärd är möjlig'; $lang['No filter on album. Select one or type to search'] = 'Inga filter pÃ¥ foldrarna. Välj en eller skriv för att söka'; $lang['delete only album, not photos'] = 'Radera bara folder, inte foton'; $lang['delete album and all %d photos, even the %d associated to other albums'] = 'Radera folder och alla %d foton, även %d associerade med andra foldrar'; @@ -1008,4 +1010,4 @@ $lang['Deletion in progress'] = 'Borttagning pÃ¥gÃ¥r'; $lang['Create a first album'] = 'Skapa ett första album'; $lang['Compute %d missing checksums'] = 'Fullborda %d saknade checksummor'; $lang['... or hide this link'] = '... eller göm denna länk'; -$lang['%d checksums were added'] = '%d checksummor lades till'; \ No newline at end of file +$lang['%d checksums were added'] = '%d checksummor lades till'; diff --git a/language/ta_IN/admin.lang.php b/language/ta_IN/admin.lang.php index 71826e3de..2f4a75147 100644 --- a/language/ta_IN/admin.lang.php +++ b/language/ta_IN/admin.lang.php @@ -85,6 +85,7 @@ $lang['(this tag will be deleted)'] = '(இநà¯à®¤ கà¯à®±à®¿ நீக௠$lang['+ Add an upload box'] = '+ ஒர௠பதிவேறà¯à®± பெடà¯à®Ÿà®¿à®¯à¯ˆ சேரà¯à®•à¯à®•வà¯à®®à¯'; $lang[', click on'] = 'சொடà¯à®•à¯à®•வà¯à®®à¯ மீதà¯'; $lang['... or '] = '... அலà¯à®²à®¤à¯'; +$lang['Piwigo for Android application empowers you to connect your Android phone or table to your Piwigo gallery, create some albums and upload several photos at once.'] = ' Android கà¯à®•ான Piwigo em> பயனà¯à®ªà®¾à®Ÿà¯à®Ÿà¯ உஙà¯à®•ள௠Piwigo கேலரியில௠உஙà¯à®•ள௠Android தொலைபேசி அலà¯à®²à®¤à¯ வரைபடà¯à®Ÿà®¿à®•ை இணைகà¯à®• அனà¯à®®à®¤à®¿à®•à¯à®•à¯à®®à¯, சில ஆலà¯à®ªà®™à¯à®•ளை உரà¯à®µà®¾à®•à¯à®• மறà¯à®±à¯à®®à¯ ஒரே நேரதà¯à®¤à®¿à®²à¯ பல பà¯à®•ைபà¯à®ªà®Ÿà®™à¯à®•ளை பதிவேறà¯à®±à®²à®¾à®®à¯.'; $lang['Piwigo for iOS application empowers you to connect to your Piwigo gallery from your iPhone, iPad or iPod Touch, create some albums and upload several photos at once.'] = ' Piwigo iOS கà¯à®•௠em> பயனà¯à®ªà®¾à®Ÿà¯à®Ÿà¯ சில ஆலà¯à®ªà®™à¯à®•ளை உரà¯à®µà®¾à®•à¯à®•ி ஒரே நேரதà¯à®¤à®¿à®²à¯ பல பà¯à®•ைபà¯à®ªà®Ÿà®™à¯à®•ளை பதிவேறà¯à®±, உஙà¯à®•ள௠à®à®ªà¯‡à®¾à®©à¯, à®à®ªà®¾à®Ÿà¯ அலà¯à®²à®¤à¯ à®à®ªà®¾à®Ÿà¯ டச௠உஙà¯à®•ள௠Piwigo கேலரி இணைகà¯à®• நீஙà¯à®•ள௠அதிகாரமளிகà¯à®•ிகிறதà¯.'; $lang['ACCESS_3'] = 'நிரà¯à®µà®¾à®•ிகள௠அணà¯à®•லà¯'; $lang['ACCESS_4'] = 'வலை மேலாளரà¯à®•ள௠அணà¯à®•லà¯'; diff --git a/language/th_TH/admin.lang.php b/language/th_TH/admin.lang.php index 75097c58f..abfb84be8 100644 --- a/language/th_TH/admin.lang.php +++ b/language/th_TH/admin.lang.php @@ -391,7 +391,7 @@ $lang['No photo can be deleted'] = "ไม่มีรูปที่สาม $lang['No photo in the current set.'] = 'ไม่มีรูปภาพในชุดปัจจุบันนี้.'; $lang['No photo in this album'] = "ไม่มีรูปภาพในà¸à¸±à¸¥à¸šà¸±à¹‰à¸¡à¸™à¸µà¹‰"; $lang['No photo selected, %d photos in current set'] = 'ไม่มีรูปที่ได้เลืà¸à¸à¹„ว้,มีรูปทั้งหมด %d รูปในเซตนี้'; -$lang['No photo selected, no action possible.'] = 'ไม่มีรูปภาพที่ได้เลืà¸à¸à¹„ว้.'; +$lang['No photos selected, no actions possible.'] = 'ไม่มีรูปภาพที่ได้เลืà¸à¸à¹„ว้.'; $lang['No results'] = "ไม่มี ผลลัพธ์"; $lang['No user to send notifications by mail.'] = "ไม่มีผู้ใช้งานที่ได้ติดต่à¸à¸—างเมล."; $lang['no write access'] = "ไม่มีà¸à¸²à¸£à¹€à¸‚ียนà¸à¸²à¸£à¹€à¸‚้าถึงข้à¸à¸¡à¸¹à¸¥"; @@ -786,6 +786,7 @@ $lang['%s ago'] = '%d ที่à¹à¸¥à¹‰à¸§'; $lang['%s has been successfully updated.'] = '%s ได้à¸à¸±à¸žà¹€à¸”ตข้à¸à¸¡à¸¹à¸¥à¸¡à¸¹à¸¥à¹€à¸£à¸µà¸¢à¸šà¸£à¹‰à¸à¸¢à¹à¸¥à¹‰à¸§.'; $lang['%s in the future'] = '%s ในà¸à¸™à¸²à¸„ต'; $lang['%u users have automatic permission because they belong to a granted group.'] = 'à¸à¸³à¸«à¸™à¸”ให้ผู้ใช้ได้รับà¸à¸™à¸¸à¸à¸²à¸•โดยà¸à¸±à¸•โนมัติ เนื่à¸à¸‡à¸ˆà¸²à¸à¸žà¸§à¸à¹€à¸‚าà¸à¸¢à¸¹à¹ˆà¹ƒà¸™à¸à¸¥à¸¸à¹ˆà¸¡à¸—ี่ได้รับà¸à¸™à¸¸à¸à¸²à¸•à¸à¸¢à¸¹à¹ˆà¹à¸¥à¹‰à¸§'; +$lang['Piwigo for Android application empowers you to connect your Android phone or table to your Piwigo gallery, create some albums and upload several photos at once.'] = 'Piwigo สำหรับ à¹à¸à¸™à¸”รà¸à¸¢à¸”์ à¹à¸à¸žà¸žà¸¥à¸´à¹€à¸„ชั่นที่จะช่วยให้คุณสามารถเชื่à¸à¸¡à¸•่à¸à¹‚ทรศัพท์ à¹à¸à¸™à¸”รà¸à¸¢à¸”์ หรืà¸à¹à¸—็บเลต ไปยังà¸à¸±à¸¥à¸šà¸±à¹‰à¸¡à¸£à¸¹à¸›, เพื่à¸à¸ªà¸£à¹‰à¸²à¸‡à¸à¸±à¸¥à¸šà¸±à¹‰à¸¡ à¹à¸¥à¸°à¸à¸±à¸žà¹‚หลดรูปขà¸à¸‡à¸„ุณ.'; $lang['Piwigo for iOS application empowers you to connect to your Piwigo gallery from your iPhone, iPad or iPod Touch, create some albums and upload several photos at once.'] = 'Piwigo สำหรับ ไà¸à¹‚à¸à¹€à¸à¸ª à¹à¸à¸žà¸žà¸¥à¸´à¹€à¸„ชั่นที่จะช่วยให้คุณสามารถเชื่à¸à¸¡à¸•่à¸à¹‚ทรศัพท์ ไปยังà¸à¸±à¸¥à¸šà¸±à¹‰à¸¡à¸£à¸¹à¸› จาภไà¸à¹‚ฟน หรืà¸à¹„à¸à¹à¸žà¸”ทัช, เพื่à¸à¸ªà¸£à¹‰à¸²à¸‡à¸à¸±à¸¥à¸šà¸±à¹‰à¸¡ à¹à¸¥à¸°à¸à¸±à¸žà¹‚หลดรูปขà¸à¸‡à¸„ุณ.'; $lang['A locked gallery is only visible to administrators'] = 'à¹à¸à¸¥à¸¥à¸à¸£à¸µà¹ˆà¸–ูà¸à¸¥à¹‡à¸à¸ สามารถใช้งานได้เฉพาะผู้ดูà¹à¸¥à¸£à¸°à¸šà¸š'; $lang['Activate comments'] = 'เปิดใช้งานคà¸à¸¡à¹€à¸¡à¹‰à¸™à¸•์'; @@ -824,6 +825,7 @@ $lang['Original file : %s'] = 'ไฟล์ต้นฉบับ : %s'; $lang['Permission management'] = 'à¸à¸²à¸£à¸ˆà¸±à¸”à¸à¸²à¸£à¸à¸²à¸£à¸à¸™à¸¸à¸à¸²à¸•'; $lang['Photo name'] = 'ชื่à¸à¸£à¸¹à¸›à¸ าพ'; $lang['Photo sizes with crop'] = 'ขนาดรูปถ่ายที่มีตัด'; +$lang['Piwigo for Android'] = 'Piwigo สำหรับ Android'; $lang['Piwigo for iOS (iPhone, iPad, iPod Touch)'] = 'Piwigo สำหรับ iOS (iPhone, iPad, iPod Touch)'; $lang['Predefined filter'] = 'ตัวà¸à¸£à¸à¸‡à¸—ี่à¸à¸³à¸«à¸™à¸”ไว้ล่วงหน้า'; $lang['Source tag'] = 'à¹à¸«à¸¥à¹ˆà¸‡à¸—ี่มาขà¸à¸‡à¸›à¹‰à¸²à¸¢à¸Šà¸·à¹ˆà¸'; @@ -915,7 +917,7 @@ $lang['between %d and %d pixels'] = 'ระหว่าง %d à¹à¸¥à¸° %d พ $lang['Duplicate'] = 'สำเนา'; $lang['Manage the members'] = 'จัดà¸à¸²à¸£à¸ªà¸¡à¸²à¸Šà¸´à¸'; $lang['Merge selected groups'] = 'รวมà¸à¸¥à¸¸à¹ˆà¸¡à¸—ี่เลืà¸à¸'; -$lang['No group selected, no action possible.'] = 'ยังไม่ได้เลืà¸à¸à¸à¸¥à¸¸à¹ˆà¸¡, ไม่สามารถรวมà¸à¸¥à¸¸à¹ˆà¸¡à¹„ด้'; +$lang['No groups selected, no actions possible.'] = 'ยังไม่ได้เลืà¸à¸à¸à¸¥à¸¸à¹ˆà¸¡, ไม่สามารถรวมà¸à¸¥à¸¸à¹ˆà¸¡à¹„ด้'; $lang['No members to manage'] = 'ไม่มีสมาชิà¸à¸—ี่จะจัดà¸à¸²à¸£'; $lang['Please select at least two groups'] = 'โปรดเลืà¸à¸à¸à¸¥à¸¸à¹ˆà¸¡à¸à¸¢à¹ˆà¸²à¸‡à¸™à¹‰à¸à¸¢à¸ªà¸à¸‡à¸à¸¥à¸¸à¹ˆà¸¡'; $lang['Rename'] = 'เปลี่ยนชื่à¸'; @@ -945,7 +947,7 @@ $lang['Impossible to deactivate the default theme.'] = 'เป็นไปไม $lang['Mail address is mandatory for registration'] = 'à¸à¸µà¹€à¸¡à¸¥à¸™à¸µà¹‰à¸¡à¸µà¸œà¸¥à¸šà¸±à¸‡à¸„ับใช้สำหรับà¸à¸²à¸£à¸¥à¸‡à¸—ะเบียน'; $lang['No and unlock sub-albums'] = 'ไม่มีà¹à¸¥à¸°à¸›à¸¥à¸”ล็à¸à¸„à¸à¸±à¸¥à¸šà¸±à¹‰à¸¡à¸¢à¹ˆà¸à¸¢'; $lang['No user selected of %d users'] = 'ไม่มีผู้ใช้งานที่ถูà¸à¹€à¸¥à¸·à¸à¸ %d ผู้ใช้งาน'; -$lang['No user selected, no action possible.'] = 'ไม่มีผู้ใช้งานที่ถูà¸à¹€à¸¥à¸·à¸à¸, ไม่มีà¸à¸²à¸£à¸”ำเนินà¸à¸²à¸£à¹ƒà¸”ที่เป็นไปได้'; +$lang['No users selected, no actions possible.'] = 'ไม่มีผู้ใช้งานที่ถูà¸à¹€à¸¥à¸·à¸à¸, ไม่มีà¸à¸²à¸£à¸”ำเนินà¸à¸²à¸£à¹ƒà¸”ที่เป็นไปได้'; $lang['Registered on %s, %s.'] = 'ลงทะเบียนเมื่ภon %s, %s.'; $lang['Select at least one tag'] = 'เลืà¸à¸à¸à¸¢à¹ˆà¸²à¸‡à¸™à¹‰à¸ 1 à¹à¸—็à¸'; $lang['The settings for the guest are from the %s user'] = 'à¸à¸²à¸£à¸•ั้งค่าสำหรับผู้มาเยี่ยมชม %s ผู้ใช้งาน'; @@ -984,7 +986,7 @@ $lang['Dashboard'] = 'à¹à¸œà¸‡à¸„วบคุม'; $lang['Running on an up-to-date Piwigo is important for security.'] = 'ใช้งาน Piwigo เวà¸à¸£à¹Œà¸Šà¸±à¹ˆà¸™à¸—ี่เป็นปัจจุบัน มันสำคัà¸à¸¡à¸²à¸à¸ªà¸³à¸«à¸£à¸±à¸šà¹€à¸£à¸·à¹ˆà¸à¸‡à¸„วาม'; $lang['delete only album, not photos'] = 'ลบเฉพาะà¸à¸±à¸¥à¸šà¸±à¹‰à¸¡à¹€à¸—่านั้น, (ไม่ลบรูปภาพ)'; $lang['Piwigo %s is available, please update'] = 'Piwigo %s พร้à¸à¸¡à¹ƒà¸Šà¹‰à¸‡à¸²à¸™à¹à¸¥à¹‰à¸§, à¸à¸£à¸¸à¸“าà¸à¸±à¸›à¹€à¸”ต'; -$lang['No tag selected, no action possible.'] = 'ไม่มีà¹à¸—็à¸à¸—ี่ถูà¸à¹€à¸¥à¸·à¸à¸, ไม่มีà¸à¸²à¸£à¸”ำเนินà¸à¸²à¸£à¹ƒà¸”ๆ'; +$lang['No tags selected, no actions possible.'] = 'ไม่มีà¹à¸—็à¸à¸—ี่ถูà¸à¹€à¸¥à¸·à¸à¸, ไม่มีà¸à¸²à¸£à¸”ำเนินà¸à¸²à¸£à¹ƒà¸”ๆ'; $lang['It only takes a few clicks.'] = 'เพียงไม่à¸à¸µà¹ˆà¸„ลิà¸'; $lang['No filter on album. Select one or type to search'] = 'ไม่มีตัวà¸à¸£à¸à¸‡à¹ƒà¸™à¸à¸±à¸¥à¸šà¸±à¹‰à¸¡. โปรดเลืà¸à¸à¸›à¸£à¸°à¹€à¸ ทà¸à¸²à¸£à¸„้นหา'; $lang['Delete album "%s" and its %d sub-albums.'] = 'ลบà¸à¸±à¸¥à¸šà¸±à¹‰à¸¡ "%s" à¹à¸¥à¸° à¸à¸±à¸¥à¸šà¸±à¹‰à¸¡à¸¢à¹ˆà¸à¸¢ %d .'; diff --git a/language/tr_TR/admin.lang.php b/language/tr_TR/admin.lang.php index 99c5adab8..c3edf8535 100644 --- a/language/tr_TR/admin.lang.php +++ b/language/tr_TR/admin.lang.php @@ -435,7 +435,7 @@ $lang['No photo can be deleted'] = 'FotoÄŸraf silinemez'; $lang['No photo in the current set.'] = 'Bu yığınde fotoÄŸraf bulunmuyor'; $lang['No photo in this album'] = 'Bu albümde fotoÄŸraf yok'; $lang['No photo selected, %d photos in current set'] = 'Yığındeki %d fotoÄŸraftan hiçbiri seçilmedi'; -$lang['No photo selected, no action possible.'] = 'FotoÄŸraf seçilmedi, iÅŸlem yapılamaz.'; +$lang['No photos selected, no actions possible.'] = 'FotoÄŸraf seçilmedi, iÅŸlem yapılamaz.'; $lang['No results'] = 'Sonuç yok'; $lang['No user to send notifications by mail.'] = 'e-Posta yoluyla bilgilendirilecek hiç kullanıcı bulunmuyor.'; $lang['no write access'] = 'Yazma yetkisi yok'; @@ -776,6 +776,7 @@ $lang['You need to upgrade your system to take full advantage of the application $lang['Your configuration settings are saved'] = 'Yapılandırma ayarları kaydedildi'; $lang['Zoom'] = 'YakınlaÅŸtırma'; $lang['%u users have automatic permission because they belong to a granted group.'] = 'izin verilmiÅŸ bir gruba ait oldukları için %u kullanıcı otomatik izine sahip.'; +$lang['Piwigo for Android application empowers you to connect your Android phone or table to your Piwigo gallery, create some albums and upload several photos at once.'] = 'Android için Piwigo uygulaması ile Android telefon veya tablet\'inizden Piwigo galerinize baÄŸlanmaya, albümler yaratmanıza ve birden fazla fotoÄŸraf birden aktarmanıza izin verir.'; $lang['Piwigo for iOS application empowers you to connect to your Piwigo gallery from your iPhone, iPad or iPod Touch, create some albums and upload several photos at once.'] = 'Piwigo for iOS uygulaması ile iPhone, iPad veya iPod Touch\'ınızdan Piwigo galerinize baÄŸlanmaya, albümler yaratmanıza ve birden fazla fotoÄŸraf birden aktarmanıza izin verir. '; $lang['A locked gallery is only visible to administrators'] = 'Kilitli bir galeri sadece yöneticiler tarafından görülebilir'; $lang['Activate comments'] = 'Yorumları etkinleÅŸtir'; @@ -812,6 +813,7 @@ $lang['Photo sizes with crop'] = 'Kırparak fotoÄŸrafı boyutlandır'; $lang['Piwigo Publish plugin for Lightroom'] = 'Lightroom için Piwigo Publish eklentisi '; $lang['Piwigo export plugin for Aperture'] = 'Aperture için Piwigo aktarım eklentisi'; $lang['Piwigo export plugin for iPhoto'] = 'iPhoto için Piwigo aktarım eklentisi'; +$lang['Piwigo for Android'] = 'Android için Piwigo'; $lang['Piwigo for iOS (iPhone, iPad, iPod Touch)'] = 'iOS (iPhone, iPad, iPod Touch) için Piwigo'; $lang['Piwigo publish plugin for Shotwell'] = 'Shotwell için Piwigo publish eklentisi'; $lang['Piwigo publish plugin for digiKam'] = 'digiKam için Piwigo publish eklentisi'; @@ -913,7 +915,7 @@ $lang['Type here the name of the new group'] = 'Buraya yeni grubun ismini yazın $lang['Duplicate'] = 'Kopyasını al'; $lang['Manage the members'] = 'Üyeleri yönet'; $lang['Merge selected groups'] = 'Seçilen grupları birleÅŸtir'; -$lang['No group selected, no action possible.'] = 'Hiç bir grup seçili deÄŸil, herhangi bir iÅŸlem yapılamaz'; +$lang['No groups selected, no actions possible.'] = 'Hiç bir grup seçili deÄŸil, herhangi bir iÅŸlem yapılamaz'; $lang['No members to manage'] = 'Yönetecek üye yok'; $lang['Please select at least two groups'] = 'En azından iki grup seçin'; $lang['Rename'] = 'Yeniden adlandır'; @@ -931,7 +933,7 @@ $lang['No user selected of %d users'] = '%d kullanıcıdan hiçbiri seçilmedi'; $lang['User %s added'] = 'Kullanıcı %s eklendi'; $lang['Update user'] = 'Kullanıcıyı güncelle'; $lang['Show %s users'] = '%s kullanıcıyı göster'; -$lang['No user selected, no action possible.'] = 'Hiç bir kullanıcı seçilmedi, iÅŸlem yapılamaz.'; +$lang['No users selected, no actions possible.'] = 'Hiç bir kullanıcı seçilmedi, iÅŸlem yapılamaz.'; $lang['Last visit on %s, %s.'] = '%s \'ye son ziyaretiniz, %s.'; $lang['on the %d selected users'] = 'seçilen %d kullanıcıda'; $lang['Users modified'] = 'Kullanıcılarda deÄŸiÅŸiklik yapıldı'; @@ -970,7 +972,7 @@ $lang['Orphans'] = 'Sahipsizler'; $lang['Recipients'] = 'Alıcılar'; $lang['Y Repeat'] = 'Y Tekrarla'; $lang['It only takes a few clicks.'] = 'sadece bir kaç tıklama yeterli.'; -$lang['No tag selected, no action possible.'] = 'Etiket seçilmedi'; +$lang['No tags selected, no actions possible.'] = 'Etiket seçilmedi'; $lang['Piwigo %s is available, please update'] = 'Piwigo %s mevcut, lütfen güncelleyiniz'; $lang['delete only album, not photos'] = 'resimler hariç, sadece albümü sil'; $lang['Confirm deletion'] = 'Silmeyi onayla'; @@ -1005,4 +1007,4 @@ $lang['Some checksums are missing.'] = 'Bazı kontrol toplamları eksik.'; $lang['Display category date'] = 'Kategori tarihini görüntüle'; $lang['Compute %d missing checksums'] = '%d eksik kontrol toplamı hesapla'; $lang['... or hide this link'] = '... yada bu baÄŸlantıyı gizle'; -$lang['%d checksums were added'] = '%d kontrol toplamları ilave edildi'; \ No newline at end of file +$lang['%d checksums were added'] = '%d kontrol toplamları ilave edildi'; diff --git a/language/uk_UA/admin.lang.php b/language/uk_UA/admin.lang.php index 8b54d07be..9b8aca740 100644 --- a/language/uk_UA/admin.lang.php +++ b/language/uk_UA/admin.lang.php @@ -321,7 +321,7 @@ $lang['Deactivate all'] = 'Деактивувати вÑе'; $lang['No file was uploaded'] = 'Файл не був завантажений'; $lang['No mail to send.'] = 'Ðемає пошти Ð´Ð»Ñ Ð²Ñ–Ð´Ð¿Ñ€Ð°Ð²ÐºÐ¸.'; $lang['No photo selected, %d photos in current set'] = 'Ðемає виділених зображень, %d Ð·Ð¾Ð±Ñ€Ð°Ð¶ÐµÐ½Ð½Ñ Ð² поточному наборі'; -$lang['No photo selected, no action possible.'] = 'Ðемає виділених фотографій, немає можливих дій.'; +$lang['No photos selected, no actions possible.'] = 'Ðемає виділених фотографій, немає можливих дій.'; $lang['No results'] = 'Ðемає результату'; $lang['No user to send notifications by mail.'] = 'Ðемає кориÑтувачів Ð´Ð»Ñ Ð¾Ð¿Ð¾Ð²Ñ–Ñ‰ÐµÐ½Ð½Ñ Ð¿Ð¾ÑˆÑ‚Ð¾ÑŽ.'; $lang['Notification'] = 'ОповіщеннÑ'; @@ -812,8 +812,10 @@ $lang['Web Form'] = 'Веб-форми'; $lang['Available on'] = 'ДоÑтупні на'; $lang['Delete multiple size images'] = 'Ð’Ð¸Ð´Ð°Ð»ÐµÐ½Ð½Ñ Ð´ÐµÐºÑ–Ð»ÑŒÐºÐ¾Ñ… зображень розміром'; $lang['Generate multiple size images'] = 'Ð¡Ñ‚Ð²Ð¾Ñ€ÐµÐ½Ð½Ñ Ð´ÐµÐºÑ–Ð»ÑŒÐºÐ¾Ñ… зображень розміром'; +$lang['Piwigo for Android'] = 'Piwigo Ð´Ð»Ñ Android'; $lang['Piwigo for iOS (iPhone, iPad, iPod Touch)'] = 'Piwigo Ð´Ð»Ñ iOS(iPhone, iPad, iPod Touch)'; $lang['%u users have automatic permission because they belong to a granted group.'] = '%u кориÑтувачі мають автоматичний дозвіл, тому що вони належать до наданої групи.'; +$lang['Piwigo for Android application empowers you to connect your Android phone or table to your Piwigo gallery, create some albums and upload several photos at once.'] = 'Piwigo Ð´Ð»Ñ Android додаток дозволÑÑ” вам підключити ваш телефон або планшет в галерею Piwigo, Ñтворити кілька альбомів Ñ– завантажити декілька зображень одночаÑно.'; $lang['Piwigo for iOS application empowers you to connect to your Piwigo gallery from your iPhone, iPad or iPod Touch, create some albums and upload several photos at once.'] = 'Piwigo Ð´Ð»Ñ iOS додаток дає можливіÑть підключатиÑÑŒ до вашої галереї Piwigo з вашого ÑенÑорного iPhone, iPad та iPod, Ñтворити кілька альбомів Ñ– завантажити декілька зображень одночаÑно.'; $lang['Adobe Photoshop Lightroom is a photography software designed to manage large quantities of digital images and doing post production work.'] = 'Adobe Photoshop Lightroom ÑвлÑÑ” Ñобою програмне Ð·Ð°Ð±ÐµÐ·Ð¿ÐµÑ‡ÐµÐ½Ð½Ñ Ñ„Ð¾Ñ‚Ð¾Ð³Ñ€Ð°Ñ„Ð°, призначене Ð´Ð»Ñ ÑƒÐ¿Ñ€Ð°Ð²Ð»Ñ–Ð½Ð½Ñ Ð²ÐµÐ»Ð¸ÐºÐ¾ÑŽ кількіÑтю цифрових зображень Ñ– робить роботу поÑтпродакшн.'; $lang['any visitor can see this album'] = 'будь-Ñкий відвідувач може бачити цей альбом'; @@ -911,7 +913,7 @@ $lang['between %d and %d pixels'] = 'між %d Ñ– %d пікÑелÑми'; $lang['Duplicate'] = 'Дублювати'; $lang['Manage the members'] = 'ÐšÐµÑ€ÑƒÐ²Ð°Ð½Ð½Ñ ÑƒÑ‡Ð°Ñниками'; $lang['Merge selected groups'] = 'Ð—Ð»Ð¸Ñ‚Ñ‚Ñ Ð²Ð¸Ð±Ñ€Ð°Ð½Ð¸Ñ… груп'; -$lang['No group selected, no action possible.'] = 'Жодна група не вибрана, не можливі ніÑкі дії.'; +$lang['No groups selected, no actions possible.'] = 'Жодна група не вибрана, не можливі ніÑкі дії.'; $lang['No members to manage'] = 'Ðемає учаÑників Ð´Ð»Ñ ÑƒÐ¿Ñ€Ð°Ð²Ð»Ñ–Ð½Ð½Ñ'; $lang['Please select at least two groups'] = 'Виберіть щонайменше дві групи'; $lang['Rename'] = 'Перейменувати'; @@ -935,7 +937,7 @@ $lang['Last visit on %s, %s.'] = 'Був на Ñайті %s, %s.'; $lang['Loading...'] = 'ЗавантаженнÑ...'; $lang['No matching user found'] = 'Відповідних кориÑтувачі не знайдено'; $lang['No user selected of %d users'] = 'Ðе вибраний жоден з %d кориÑтувачів '; -$lang['No user selected, no action possible.'] = 'Жоден кориÑтувач не обраний, ніÑкі дії можливі.'; +$lang['No users selected, no actions possible.'] = 'Жоден кориÑтувач не обраний, ніÑкі дії можливі.'; $lang['Password updated'] = 'Пароль оновлений'; $lang['Registered on %s, %s.'] = 'ЗареєÑтрований %s, %s.'; $lang['Show %s users'] = 'Відображати %s кориÑтувачів'; @@ -975,7 +977,7 @@ $lang['Time has come to update your Piwigo with version %s, go to %s'] = 'ÐÐ°Ñ $lang['delete album and all %d photos, even the %d associated to other albums'] = 'видалити альбом Ñ– вÑÑ– %d фотографії, навіть, %d пов\'Ñзані з іншими альбомами'; $lang['Piwigo %s is available, please update'] = 'Piwigo %s доÑтупний до оновленнÑ, будь лаÑка, оновітьÑÑ'; $lang['No filter on album. Select one or type to search'] = 'Ðемає фільтрів на альбомі. Виберіть один або введіть Ð´Ð»Ñ Ð¿Ð¾ÑˆÑƒÐºÑƒ'; -$lang['No tag selected, no action possible.'] = 'Теґи не вибрано, ніÑкі дії неможливі.'; +$lang['No tags selected, no actions possible.'] = 'Теґи не вибрано, ніÑкі дії неможливі.'; $lang['Running on an up-to-date Piwigo is important for security.'] = 'Робота на ÑучаÑній Piwigo важлива Ð´Ð»Ñ Ð±ÐµÐ·Ð¿ÐµÐºÐ¸.'; $lang['Select tags'] = 'Виберіть теги'; $lang['Storage used'] = 'ВикориÑтано пам\'Ñті'; @@ -1005,4 +1007,4 @@ $lang['With no checksum'] = 'Без контрольної Ñуми'; $lang['checksums to add'] = 'контрольні Ñуми Ð´Ð»Ñ Ð´Ð¾Ð´Ð°Ð²Ð°Ð½Ð½Ñ'; $lang['or'] = 'чи'; $lang['Deletion in progress'] = 'ВиконуєтьÑÑ Ð²Ð¸Ð´Ð°Ð»ÐµÐ½Ð½Ñ'; -$lang['Create a first album'] = 'Створіть перший альбом'; \ No newline at end of file +$lang['Create a first album'] = 'Створіть перший альбом'; diff --git a/language/vi_VN/admin.lang.php b/language/vi_VN/admin.lang.php index 367c2c746..1624e6a07 100644 --- a/language/vi_VN/admin.lang.php +++ b/language/vi_VN/admin.lang.php @@ -663,7 +663,7 @@ $lang['Refresh photo set'] = 'Cáºp nháºt bá»™ hình'; $lang['The whole page'] = 'Nguyên cả trang'; $lang['The whole set'] = 'Nguyên cả bá»™'; $lang['No photo in the current set.'] = 'Không có hình nà o trong bá»™ hiện tại.'; -$lang['No photo selected, no action possible.'] = 'Không có hình nà o được chá»n, không tác vụ nà o được thá»±c hiện.'; +$lang['No photos selected, no actions possible.'] = 'Không có hình nà o được chá»n, không tác vụ nà o được thá»±c hiện.'; $lang['Choose an action'] = 'Chá»n má»™t tác vụ'; $lang['remove author'] = 'bá» tác giả'; $lang['Type here the author name'] = 'Nháºp tên tác giả và o đây'; @@ -813,6 +813,8 @@ $lang['Applications'] = 'Các ứng dụng'; $lang['Available on'] = 'Có thể dùng được và o'; $lang['Piwigo for iOS (iPhone, iPad, iPod Touch)'] = 'Phiên bản Piwigo cho iOS (iPhone, iPad, iPod Touch)'; $lang['Piwigo for iOS application empowers you to connect to your Piwigo gallery from your iPhone, iPad or iPod Touch, create some albums and upload several photos at once.'] = 'Phiên bản Piwigo cho iOS ứng dụng cho phép bạn kết nối Piwigo cá»§a mình từ iPhone, iPad hoặc iPod Touch, tạo albums ảnh và tải lên máy chá»§ lưu trữ ảnh ngay láºp tức.'; +$lang['Piwigo for Android'] = 'Phiên bản Piwigo cho Android'; +$lang['Piwigo for Android application empowers you to connect your Android phone or table to your Piwigo gallery, create some albums and upload several photos at once.'] = 'Phiên bản Piwigo cho Android ứng dụng cho phép bạn kết nối Piwigo cá»§a mình từ Ä‘iện thoại chạy Android hoặc máy tÃnh bảng, tạo albums ảnh và tải lên máy chá»§ lưu trữ ảnh ngay láºp tức.'; $lang['Piwigo Publish plugin for Lightroom'] = 'Plugin Publish cá»§a Piwigo cho Lightroom'; $lang['%d day'] = '%d ngà y'; $lang['%d days'] = '%d ngà y'; @@ -870,7 +872,7 @@ $lang['Minimum height'] = 'Chiá»u cao tối thiểu'; $lang['Multiple Size'] = 'Äa kÃch thước'; $lang['Name of the duplicate'] = 'Tên cá»§a phần trùng lặp'; $lang['No group is permitted to see this private album'] = 'Không nhóm nà o được phép xem album loại riêng tư'; -$lang['No group selected, no action possible.'] = 'Không nhóm nà o được chá»n, không thể thá»±c thi được tác vụ nà o.'; +$lang['No groups selected, no actions possible.'] = 'Không nhóm nà o được chá»n, không thể thá»±c thi được tác vụ nà o.'; $lang['No members to manage'] = 'Không có thà nh viên nà o để quản lý'; $lang['No order field selected'] = 'Không có tham số vị trà nà o được chá»n'; $lang['Number of albums per page'] = 'Số album ảnh trên má»™t trang'; @@ -936,7 +938,7 @@ $lang['Last visit on %s, %s.'] = 'Xem lần cuối và o lúc %s, %s.'; $lang['Loading...'] = 'Äang tải...'; $lang['No matching user found'] = 'Không tìm thấy ngưá»i dùng nà o phù hợp'; $lang['No user selected of %d users'] = 'Không có ngưá»i dùng nà o được chá»n trong số %d ngưá»i dùng'; -$lang['No user selected, no action possible.'] = 'Không có ngưá»i dùng nà o được chá»n nên không thể là m tiếp'; +$lang['No users selected, no actions possible.'] = 'Không có ngưá»i dùng nà o được chá»n nên không thể là m tiếp'; $lang['Password updated'] = 'Máºt khẩu đã được cáºp nháºt'; $lang['Registered on %s, %s.'] = 'Äã đăng ký và o lúc %s, %s.'; $lang['Show %s users'] = 'Hiển thị %s ngưá»i dùng'; @@ -988,8 +990,8 @@ $lang['First photo added'] = 'Anhr đầu tiên đã được thêm'; $lang['It only takes a few clicks.'] = 'Chỉ tốn và i cú click chuá»™t.'; $lang['No filter on album. Select one or type to search'] = 'Khong có bá»™ lá»c bá»™ ảnh. Chá»n má»™t hoặc nháºp để tìm kiếm'; $lang['No recipient selected'] = 'Chưa chá»n ngưá»i nháºn'; -$lang['No tag selected, no action possible.'] = 'Chưa chá»n từ khóa nên không thể tiến hà nh'; +$lang['No tags selected, no actions possible.'] = 'Chưa chá»n từ khóa nên không thể tiến hà nh'; $lang['No user is permitted to see this private album'] = 'Không có ngưá»i dùng nà o được phép xem bá»™ ảnh riêng tư nà y'; $lang['Orphans'] = 'Các ảnh mồ côi'; $lang['Piwigo %s is available, please update'] = 'Piwigo %s đã có, vui lòng cáºp nháºt'; -$lang['Recipients'] = 'Các ngưá»i nháºn'; \ No newline at end of file +$lang['Recipients'] = 'Các ngưá»i nháºn'; diff --git a/language/zh_CN/admin.lang.php b/language/zh_CN/admin.lang.php index 1420177bf..8d496ce43 100644 --- a/language/zh_CN/admin.lang.php +++ b/language/zh_CN/admin.lang.php @@ -660,8 +660,8 @@ $lang['include child albums'] = '包å«å相册'; $lang['manual order'] = '手动排åº'; $lang['No photo in the current set.'] = '当å‰é›†åˆæ²¡æœ‰å›¾ç‰‡ã€‚'; $lang['No photo selected, %d photos in current set'] = '没有图片被选ä¸ï¼Œå½“å‰é›†åˆä¸æœ‰ %d å¼ å›¾ç‰‡'; -$lang['No photo selected, no action possible.'] = '没有图片被选ä¸ï¼Œä¸èƒ½æ‰§è¡Œä»»ä½•æ“作。'; -$lang['on the %d selected photos'] = '于所选的 %d å¼ å›¾ç‰‡'; +$lang['No photos selected, no actions possible.'] = '没有图片被选ä¸ï¼Œä¸èƒ½æ‰§è¡Œä»»ä½•æ“作。'; +$lang['on the %d selected photos'] = 'äºŽæ¤ %d å¼ æ‰€é€‰å›¾ç‰‡'; $lang['Orphan tags deleted'] = '未关è”ä»»ä½•å›¾ç‰‡çš„æ ‡ç¾å·²è¢«åˆ 除'; $lang['Refresh photo set'] = '刷新图片集'; $lang['Remove all filters'] = 'åˆ é™¤æ‰€æœ‰è¿‡æ»¤å™¨'; @@ -810,7 +810,8 @@ $lang['This album contains %d photos, added between %s and %s.'] = 'æ¤ç›¸å†ŒåŒ… $lang['This album contains %d photos, added on %s.'] = 'æ¤ç›¸å†ŒåŒ…å«%då¼ å›¾ç‰‡ï¼Œæ·»åŠ äºŽ%s。'; $lang['This album contains no photo.'] = 'æ¤ç›¸å†Œä¸æ²¡æœ‰å›¾ç‰‡ã€‚'; $lang['Unlock gallery'] = 'è§£é”图库'; -$lang['Piwigo for iOS application empowers you to connect to your Piwigo gallery from your iPhone, iPad or iPod Touch, create some albums and upload several photos at once.'] = '您å¯ä»¥åœ¨iPhoneã€iPad或iPod Touch上安装Piwigo iOSç‰ˆï¼Œä»¥ä¾¿éšæ—¶éšåœ°è¿žæŽ¥åˆ°æ‚¨çš„Piwigoå›¾åº“ï¼Œåˆ›å»ºç›¸å†Œå’Œä¸Šä¼ å›¾ç‰‡ã€‚'; +$lang['Piwigo for Android application empowers you to connect your Android phone or table to your Piwigo gallery, create some albums and upload several photos at once.'] = 'Piwigo Android版 使您能够从Android手机或平æ¿ç”µè„‘连接到您的Piwigoå›¾åº“ï¼Œæ–¹ä¾¿æ‚¨éšæ—¶éšåœ°åˆ›å»ºç›¸å†Œå’Œä¸Šä¼ 图片。'; +$lang['Piwigo for iOS application empowers you to connect to your Piwigo gallery from your iPhone, iPad or iPod Touch, create some albums and upload several photos at once.'] = 'Piwigo iOS版 使您能够从iPhoneã€iPad或iPod Touch连接到您的Piwigoå›¾åº“ï¼Œæ–¹ä¾¿æ‚¨éšæ—¶éšåœ°åˆ›å»ºç›¸å†Œå’Œä¸Šä¼ 图片。'; $lang['Applications'] = '应用程åº'; $lang['apply automatic sort order'] = '应用自动排åº'; $lang['Automatic sort order'] = '自动排åº'; @@ -818,6 +819,7 @@ $lang['Available on'] = 'å¯ç”¨åœ¨'; $lang['cancel manual order'] = 'å–æ¶ˆæ‰‹åŠ¨æŽ’åº'; $lang['Cancel'] = 'å–æ¶ˆ'; $lang['List'] = '列表'; +$lang['Piwigo for Android'] = 'Piwigo Android版'; $lang['Piwigo for iOS (iPhone, iPad, iPod Touch)'] = 'Piwigo iOS版 (iPhone, iPad, iPod Touch)'; $lang['Save manual order'] = 'ä¿å˜æ‰‹åŠ¨æŽ’åº'; $lang['Web Form'] = 'æµè§ˆå™¨'; @@ -926,7 +928,7 @@ $lang['Type here the name of the new group'] = '在æ¤è¾“入新组的åç§°'; $lang['Duplicate'] = 'å¤åˆ¶'; $lang['Manage the members'] = '管ç†ç”¨æˆ·'; $lang['Merge selected groups'] = 'åˆå¹¶æ‰€é€‰ç»„'; -$lang['No group selected, no action possible.'] = '没有组被选ä¸ï¼Œä¸èƒ½æ‰§è¡Œä»»ä½•æ“作。'; +$lang['No groups selected, no actions possible.'] = '没有组被选ä¸ï¼Œä¸èƒ½æ‰§è¡Œä»»ä½•æ“作。'; $lang['Purge user cache'] = '清除用户缓å˜'; $lang['The picture dimensions will be reduced to %dx%d pixels.'] = '相片的分辨率将会被å‡å°‘到 %dx%d è±¡ç´ .'; $lang['Resize after upload disabled due to the use of GD as graphic library'] = '由于使用 GD å›¾å½¢åº“ï¼Œå› æ¤ç¦ç”¨ä¸Šä¼ åŽè°ƒæ•´å¤§å°'; @@ -935,7 +937,7 @@ $lang['Basic settings'] = '基本设置'; $lang['General'] = '总体'; $lang['Mail theme'] = '邮件主题'; $lang['No user selected of %d users'] = '%d ä¸ªç”¨æˆ·ä¸æ— 用户被选ä¸'; -$lang['No user selected, no action possible.'] = 'æ— ç”¨æˆ·è¢«é€‰ä¸ï¼Œæ— 法执行。'; +$lang['No users selected, no actions possible.'] = 'æ— ç”¨æˆ·è¢«é€‰ä¸ï¼Œæ— 法执行。'; $lang['Password updated'] = '密ç 已更新'; $lang['Registered on %s, %s.'] = '注册于 %s, %s。'; $lang['Show %s users'] = '显示 %s 个用户'; @@ -987,7 +989,7 @@ $lang['Select tags'] = 'é€‰æ‹©æ ‡ç¾'; $lang['Running on an up-to-date Piwigo is important for security.'] = '使用最新版的 Piwigo 对于安全是很é‡è¦çš„。'; $lang['Piwigo Remote Sync is able to upload a whole folder hierarchy. If you run it again, only new photos will be uploaded.'] = 'Piwigo è¿œç¨‹åŒæ¥èƒ½å¤Ÿä¸Šä¼ æ•´ä¸ªç›®å½•å±‚çº§ã€‚å¦‚æžœæ‚¨å†æ¬¡è¿è¡Œï¼Œåªæœ‰æ–°çš„å›¾ç‰‡ä¼šè¢«ä¸Šä¼ ã€‚'; $lang['Piwigo %s is available, please update'] = 'Piwigo %s 已准备就绪,请å‡çº§'; -$lang['No tag selected, no action possible.'] = 'æœªé€‰æ‹©æ ‡ç¾ï¼Œæ— 法执行æ“作。'; +$lang['No tags selected, no actions possible.'] = 'æœªé€‰æ‹©æ ‡ç¾ï¼Œæ— 法执行æ“作。'; $lang['No filter on album. Select one or type to search'] = '没有相册过滤器。选择一个或输入以进行æœç´¢'; $lang['It only takes a few clicks.'] = '这仅需数次点击。'; $lang['First photo added'] = 'é¦–å¼ å›¾ç‰‡å·²æ·»åŠ '; @@ -1014,4 +1016,4 @@ $lang['Welcome!'] = '欢迎ï¼'; $lang['With no checksum'] = 'æ— æ ¡éªŒç '; $lang['checksums to add'] = 'è¦æ·»åŠ çš„æ ¡éªŒç '; $lang['or'] = '或者'; -$lang['... or hide this link'] = '... 或éšè—本链接'; \ No newline at end of file +$lang['... or hide this link'] = '... 或éšè—本链接'; diff --git a/language/zh_HK/admin.lang.php b/language/zh_HK/admin.lang.php index 43731e0db..44ae09d98 100644 --- a/language/zh_HK/admin.lang.php +++ b/language/zh_HK/admin.lang.php @@ -373,6 +373,7 @@ $lang['Are you sure to install this upgrade? You must verify if this version doe $lang['Are you sure you want to delete this plugin?'] = '確定è¦åˆªé™¤æ¤æ’ä»¶å—Ž?'; $lang['%d of %d users selected'] = '%d到%dä½ç”¨æˆ¶é¸æ“‡'; $lang['(filtered from %s total users)'] = '(å…±%sç”¨æˆ¶è¢«éŽæ¿¾ï¼‰'; +$lang['Piwigo for Android application empowers you to connect your Android phone or table to your Piwigo gallery, create some albums and upload several photos at once.'] = 'Android 版的Piwigoå…許從 Android 手機或平版連接到您的Piwigo畫廊,建立多個相冊並一次上傳多張相片。'; $lang['Piwigo for iOS application empowers you to connect to your Piwigo gallery from your iPhone, iPad or iPod Touch, create some albums and upload several photos at once.'] = 'iOS 版的Piwigoå…許您從iPhone, iPad 或 iPod Touch 連接到您的Piwigo畫廊,建立多個相冊並一次上傳多張相片。'; $lang['Add a criteria'] = 'å¢žåŠ å‡†å‰‡'; $lang['Add a filter'] = 'å¢žåŠ ç¯©é¸'; @@ -751,6 +752,7 @@ $lang['Piwigo cannot retrieve upgrade file from server'] = 'Piwigo 無法從伺 $lang['Piwigo configuration'] = 'Piwigoçš„è¨å®š'; $lang['Piwigo export plugin for Aperture'] = 'Apertureçš„Piwigo匯出æ’ä»¶'; $lang['Piwigo export plugin for iPhoto'] = 'iPhotoçš„Piwigo匯出æ’ä»¶'; +$lang['Piwigo for Android'] = 'Android 版的Piwigo'; $lang['Piwigo for iOS (iPhone, iPad, iPod Touch)'] = 'iOS (iPhone, iPad, iPod Touch) 版的 Piwigo '; $lang['Piwigo publish plugin for Shotwell'] = 'Piwigo çš„ Shotwell 照片發布æ’ä»¶ '; $lang['Piwigo publish plugin for digiKam'] = 'Piwigo çš„ ddgiKam 照片發布æ’ä»¶'; @@ -826,7 +828,7 @@ $lang['Original templates'] = '原模æ¿'; $lang['No display'] = 'ä¸é¡¯ç¤º'; $lang['No file was uploaded'] = '沒有文件被上傳'; $lang['No group is permitted to see this private album'] = '沒有群組別有權é™è§€çœ‹æ¤ç§äººç›¸å†Š'; -$lang['No group selected, no action possible.'] = '尚未é¸å–群組別,無法動作'; +$lang['No groups selected, no actions possible.'] = '尚未é¸å–群組別,無法動作'; $lang['No mail to send.'] = '沒有郵件è¦ç™¼é€.'; $lang['No matching user found'] = '沒有發ç¾åŒ¹é…的用戶'; $lang['No members to manage'] = '沒有會員å¯ä»¥ç®¡ç†'; @@ -835,10 +837,10 @@ $lang['No photo can be deleted'] = '沒有圖片å¯ä»¥åˆªé™¤'; $lang['No photo in the current set.'] = 'ç•¶å‰é›†åˆæ²’有相片.'; $lang['No photo in this album'] = '沒有相片在æ¤ç›¸å†Šè£¡'; $lang['No photo selected, %d photos in current set'] = 'æ²’æœ‰é¸æ“‡ç›¸ç‰‡, ç•¶å‰é›†åˆæœ‰%d張相片'; -$lang['No photo selected, no action possible.'] = 'æ²’æœ‰é¸æ“‡ç›¸ç‰‡ï¼Œä¸æœƒæœ‰å‹•作執行'; +$lang['No photos selected, no actions possible.'] = 'æ²’æœ‰é¸æ“‡ç›¸ç‰‡ï¼Œä¸æœƒæœ‰å‹•作執行'; $lang['No results'] = 'æ²’æœ‰çµæžœ'; $lang['No user selected of %d users'] = '%då€‹ç”¨æˆ¶æ²’æœ‰ç”¨æˆ¶é¸æ“‡'; -$lang['No user selected, no action possible.'] = 'æ²’æœ‰ç”¨æˆ¶é¸æ“‡ï¼Œæ²’有行動的å¯èƒ½ã€‚'; +$lang['No users selected, no actions possible.'] = 'æ²’æœ‰ç”¨æˆ¶é¸æ“‡ï¼Œæ²’有行動的å¯èƒ½ã€‚'; $lang['No user to send notifications by mail.'] = '沒有郵件通知用戶.'; $lang['None'] = '沒有'; $lang['Not cropped correctly?'] = '䏿£ç¢ºçš„è£å‰ª?'; diff --git a/language/zh_TW/admin.lang.php b/language/zh_TW/admin.lang.php index 6fc5ea178..a9039cdc0 100644 --- a/language/zh_TW/admin.lang.php +++ b/language/zh_TW/admin.lang.php @@ -658,7 +658,7 @@ $lang['include child albums'] = '包å«å相冊'; $lang['manual order'] = '手工排åº'; $lang['No photo in the current set.'] = 'ç•¶å‰é›†åˆæ²’有相片.'; $lang['No photo selected, %d photos in current set'] = 'æ²’æœ‰é¸æ“‡ç›¸ç‰‡, ç•¶å‰é›†åˆæœ‰ %d 張相片'; -$lang['No photo selected, no action possible.'] = 'æ²’æœ‰é¸æ“‡ç›¸ç‰‡ï¼Œä¸æœƒæœ‰å‹•作執行.'; +$lang['No photos selected, no actions possible.'] = 'æ²’æœ‰é¸æ“‡ç›¸ç‰‡ï¼Œä¸æœƒæœ‰å‹•作執行.'; $lang['on the %d selected photos'] = '在 %d 張已é¸ç›¸ç‰‡ä¸Š'; $lang['Orphan tags deleted'] = 'ç„¡é—œè¯æ¨™ç±¤å·²è¢«åˆªé™¤'; $lang['Refresh photo set'] = '刷新相片集'; @@ -814,6 +814,8 @@ $lang['Applications'] = '申請'; $lang['Available on'] = 'å¯ç”¨çš„'; $lang['Piwigo for iOS (iPhone, iPad, iPod Touch)'] = 'iOS (iPhone, iPad, iPod Touch) 版的 Piwigo '; $lang['Piwigo for iOS application empowers you to connect to your Piwigo gallery from your iPhone, iPad or iPod Touch, create some albums and upload several photos at once.'] = 'iOS 版的Piwigoå…許您從iPhone, iPad 或 iPod Touch 連接到您的Piwigo畫廊,建立多個相冊並一次上傳多張相片。'; +$lang['Piwigo for Android'] = 'Android 版的Piwigo'; +$lang['Piwigo for Android application empowers you to connect your Android phone or table to your Piwigo gallery, create some albums and upload several photos at once.'] = 'Android 版的Piwigoå…許從 Android 手機或平版連接到您的Piwigo畫廊,建立多個相冊並一次上傳多張相片。'; $lang['Piwigo Publish plugin for Lightroom'] = 'Piwigo çš„ Lightroom 照片發布æ’ä»¶'; $lang['Adobe Photoshop Lightroom is a photography software designed to manage large quantities of digital images and doing post production work.'] = 'Adobe çš„ Photoshop Lightroom 是一套æ”影軟件,å¯ç®¡ç†å¤§é‡æ•¸ä½å½±åƒå’Œé€²è¡Œå¾Œè£½å·¥ä½œã€‚'; $lang['The Piwigo publish Plug-in allows you to export and synchronize photos from Lightroom directly to your Piwigo photo gallery.'] = 'Piwigo的發布æ’ä»¶å…è¨±ä½ å¾žLightroomåŒ¯å‡ºç…§ç‰‡ï¼Œä½¿ä½ çš„Lightroom照片與您的Piwigoç›¸å†ŠåŒæ¥ã€‚'; @@ -906,7 +908,7 @@ $lang['Manage the members'] = '會員管ç†'; $lang['Merge selected groups'] = 'åˆä½µé¸æ“‡ç¾¤çµ„'; $lang['Minimum width'] = '最å°å¯¬åº¦'; $lang['Minimum height'] = '最å°é«˜åº¦'; -$lang['No group selected, no action possible.'] = '尚未é¸å–群組別,無法動作'; +$lang['No groups selected, no actions possible.'] = '尚未é¸å–群組別,無法動作'; $lang['No members to manage'] = '沒有會員å¯ä»¥ç®¡ç†'; $lang['Number of albums per page'] = 'æ¯é 相本數é‡'; $lang['Panorama'] = '全景'; @@ -934,7 +936,7 @@ $lang['Last visit on %s, %s.'] = '最後的訪å•在%s, %s。'; $lang['Loading...'] = 'åŠ è¼‰ä¸...'; $lang['No matching user found'] = '沒有發ç¾åŒ¹é…的用戶'; $lang['No user selected of %d users'] = '%då€‹ç”¨æˆ¶æ²’æœ‰ç”¨æˆ¶é¸æ“‡'; -$lang['No user selected, no action possible.'] = 'æ²’æœ‰ç”¨æˆ¶é¸æ“‡ï¼Œæ²’有行動的å¯èƒ½ã€‚'; +$lang['No users selected, no actions possible.'] = 'æ²’æœ‰ç”¨æˆ¶é¸æ“‡ï¼Œæ²’有行動的å¯èƒ½ã€‚'; $lang['Password updated'] = '更新密碼'; $lang['Registered on %s, %s.'] = '註冊在%s, %s。'; $lang['Show %s users'] = '顯示%s用戶'; diff --git a/password.php b/password.php index b19bfabad..286f0a8d7 100644 --- a/password.php +++ b/password.php @@ -238,15 +238,7 @@ function reset_password() array($conf['user_fields']['id'] => $user_id) ); - single_update( - USER_INFOS_TABLE, - array( - 'activation_key' => null, - 'activation_key_expire' => null, - ), - array('user_id' => $user_id) - ); - + deactivate_password_reset_key($user_id); deactivate_user_auth_keys($user_id); $page['infos'][] = l10n('Your password has been reset'); diff --git a/profile.php b/profile.php index cb7873cd1..f2b9a2ccd 100644 --- a/profile.php +++ b/profile.php @@ -243,6 +243,11 @@ function save_profile_from_post($userdata, &$errors) ), array($data)); + if ($_POST['mail_address'] != $userdata['email']) + { + deactivate_password_reset_key($userdata['id']); + } + $activity_details_tables[] = 'users'; } diff --git a/tags.php b/tags.php index 93f7150f4..4ae3885e0 100644 --- a/tags.php +++ b/tags.php @@ -6,25 +6,6 @@ // | file that was distributed with this source code. | // +-----------------------------------------------------------------------+ -// +-----------------------------------------------------------------------+ -// | functions | -// +-----------------------------------------------------------------------+ - -function counter_compare($a, $b) -{ - if ($a['counter'] == $b['counter']) - { - return id_compare($a, $b); - } - - return ($a['counter'] < $b['counter']) ? +1 : -1; -} - -function id_compare($a, $b) -{ - return ($a['id'] < $b['id']) ? -1 : 1; -} - // +-----------------------------------------------------------------------+ // | initialization | // +-----------------------------------------------------------------------+ @@ -145,7 +126,7 @@ else // we want only the first most represented tags, so we sort them by counter // and take the first tags - usort($tags, 'counter_compare'); + usort($tags, 'tags_counter_compare'); $tags = array_slice($tags, 0, $conf['full_tag_cloud_items_number']); // depending on its counter and the other tags counter, each tag has a level diff --git a/themes/Sylvia/icon/datepicker.png b/themes/Sylvia/icon/datepicker.png deleted file mode 100644 index 3d0e015f6..000000000 Binary files a/themes/Sylvia/icon/datepicker.png and /dev/null differ diff --git a/themes/Sylvia/icon/delete.png b/themes/Sylvia/icon/delete.png deleted file mode 100644 index 285e53e19..000000000 Binary files a/themes/Sylvia/icon/delete.png and /dev/null differ diff --git a/themes/Sylvia/icon/edit.png b/themes/Sylvia/icon/edit.png deleted file mode 100644 index 9c755cda1..000000000 Binary files a/themes/Sylvia/icon/edit.png and /dev/null differ diff --git a/themes/Sylvia/icon/errors.png b/themes/Sylvia/icon/errors.png deleted file mode 100644 index e26d8c6e5..000000000 Binary files a/themes/Sylvia/icon/errors.png and /dev/null differ diff --git a/themes/Sylvia/icon/errors_small.png b/themes/Sylvia/icon/errors_small.png deleted file mode 100644 index 724cc659c..000000000 Binary files a/themes/Sylvia/icon/errors_small.png and /dev/null differ diff --git a/themes/Sylvia/icon/favicon.ico b/themes/Sylvia/icon/favicon.ico deleted file mode 100644 index f25fffe2a..000000000 Binary files a/themes/Sylvia/icon/favicon.ico and /dev/null differ diff --git a/themes/Sylvia/icon/img_small.png b/themes/Sylvia/icon/img_small.png deleted file mode 100644 index dbfcc9a00..000000000 Binary files a/themes/Sylvia/icon/img_small.png and /dev/null differ diff --git a/themes/Sylvia/icon/index.php b/themes/Sylvia/icon/index.php deleted file mode 100644 index 58ea04e8f..000000000 --- a/themes/Sylvia/icon/index.php +++ /dev/null @@ -1,15 +0,0 @@ - diff --git a/themes/Sylvia/icon/infos.png b/themes/Sylvia/icon/infos.png deleted file mode 100644 index 00695cb8f..000000000 Binary files a/themes/Sylvia/icon/infos.png and /dev/null differ diff --git a/themes/Sylvia/icon/mimetypes/avi.png b/themes/Sylvia/icon/mimetypes/avi.png deleted file mode 100644 index b5dde0869..000000000 Binary files a/themes/Sylvia/icon/mimetypes/avi.png and /dev/null differ diff --git a/themes/Sylvia/icon/mimetypes/mp3.png b/themes/Sylvia/icon/mimetypes/mp3.png deleted file mode 100644 index cb1288596..000000000 Binary files a/themes/Sylvia/icon/mimetypes/mp3.png and /dev/null differ diff --git a/themes/Sylvia/icon/mimetypes/mpg.png b/themes/Sylvia/icon/mimetypes/mpg.png deleted file mode 100644 index 4dc09c28b..000000000 Binary files a/themes/Sylvia/icon/mimetypes/mpg.png and /dev/null differ diff --git a/themes/Sylvia/icon/mimetypes/ogg.png b/themes/Sylvia/icon/mimetypes/ogg.png deleted file mode 100644 index 978b235f9..000000000 Binary files a/themes/Sylvia/icon/mimetypes/ogg.png and /dev/null differ diff --git a/themes/Sylvia/icon/mimetypes/zip.png b/themes/Sylvia/icon/mimetypes/zip.png deleted file mode 100644 index 7d76f9a60..000000000 Binary files a/themes/Sylvia/icon/mimetypes/zip.png and /dev/null differ diff --git a/themes/Sylvia/icon/note.png b/themes/Sylvia/icon/note.png deleted file mode 100644 index 9ef1af537..000000000 Binary files a/themes/Sylvia/icon/note.png and /dev/null differ diff --git a/themes/Sylvia/icon/rating-stars.gif b/themes/Sylvia/icon/rating-stars.gif deleted file mode 100644 index 4059e0329..000000000 Binary files a/themes/Sylvia/icon/rating-stars.gif and /dev/null differ diff --git a/themes/Sylvia/icon/rating-stars.png b/themes/Sylvia/icon/rating-stars.png deleted file mode 100644 index dba59ef00..000000000 Binary files a/themes/Sylvia/icon/rating-stars.png and /dev/null differ diff --git a/themes/Sylvia/icon/recent.png b/themes/Sylvia/icon/recent.png deleted file mode 100644 index 75567d689..000000000 Binary files a/themes/Sylvia/icon/recent.png and /dev/null differ diff --git a/themes/Sylvia/icon/recent_by_child.png b/themes/Sylvia/icon/recent_by_child.png deleted file mode 100644 index faf5c4d5c..000000000 Binary files a/themes/Sylvia/icon/recent_by_child.png and /dev/null differ diff --git a/themes/Sylvia/icon/recent_s.png b/themes/Sylvia/icon/recent_s.png deleted file mode 100644 index 90b190523..000000000 Binary files a/themes/Sylvia/icon/recent_s.png and /dev/null differ diff --git a/themes/Sylvia/icon/recent_s_by_child.png b/themes/Sylvia/icon/recent_s_by_child.png deleted file mode 100644 index 842a513c4..000000000 Binary files a/themes/Sylvia/icon/recent_s_by_child.png and /dev/null differ diff --git a/themes/Sylvia/icon/remove_s.png b/themes/Sylvia/icon/remove_s.png deleted file mode 100644 index 012efc1ad..000000000 Binary files a/themes/Sylvia/icon/remove_s.png and /dev/null differ diff --git a/themes/Sylvia/icon/start_filter.png b/themes/Sylvia/icon/start_filter.png deleted file mode 100644 index f8611cd83..000000000 Binary files a/themes/Sylvia/icon/start_filter.png and /dev/null differ diff --git a/themes/Sylvia/icon/stop_filter.png b/themes/Sylvia/icon/stop_filter.png deleted file mode 100644 index 145e64cc8..000000000 Binary files a/themes/Sylvia/icon/stop_filter.png and /dev/null differ diff --git a/themes/Sylvia/icon/validate_s.png b/themes/Sylvia/icon/validate_s.png deleted file mode 100644 index adea3d580..000000000 Binary files a/themes/Sylvia/icon/validate_s.png and /dev/null differ diff --git a/themes/Sylvia/images/ajax_loader.gif b/themes/Sylvia/images/ajax_loader.gif deleted file mode 100644 index d84f65378..000000000 Binary files a/themes/Sylvia/images/ajax_loader.gif and /dev/null differ diff --git a/themes/Sylvia/images/bottom-left-bg.jpg b/themes/Sylvia/images/bottom-left-bg.jpg deleted file mode 100644 index 3d8a5eed2..000000000 Binary files a/themes/Sylvia/images/bottom-left-bg.jpg and /dev/null differ diff --git a/themes/Sylvia/images/cat_bottom-left.gif b/themes/Sylvia/images/cat_bottom-left.gif deleted file mode 100644 index 2a042897d..000000000 Binary files a/themes/Sylvia/images/cat_bottom-left.gif and /dev/null differ diff --git a/themes/Sylvia/images/cat_bottom-right.gif b/themes/Sylvia/images/cat_bottom-right.gif deleted file mode 100644 index 901f31d52..000000000 Binary files a/themes/Sylvia/images/cat_bottom-right.gif and /dev/null differ diff --git a/themes/Sylvia/images/cat_top-left.gif b/themes/Sylvia/images/cat_top-left.gif deleted file mode 100644 index 1ea57346e..000000000 Binary files a/themes/Sylvia/images/cat_top-left.gif and /dev/null differ diff --git a/themes/Sylvia/images/cat_top-right.gif b/themes/Sylvia/images/cat_top-right.gif deleted file mode 100644 index 7eb5c491e..000000000 Binary files a/themes/Sylvia/images/cat_top-right.gif and /dev/null differ diff --git a/themes/Sylvia/images/fillet.gif b/themes/Sylvia/images/fillet.gif deleted file mode 100644 index 6da64117b..000000000 Binary files a/themes/Sylvia/images/fillet.gif and /dev/null differ diff --git a/themes/Sylvia/images/header_msgs-bg.gif b/themes/Sylvia/images/header_msgs-bg.gif deleted file mode 100644 index 0879e1b79..000000000 Binary files a/themes/Sylvia/images/header_msgs-bg.gif and /dev/null differ diff --git a/themes/Sylvia/images/menuBox_bottom.gif b/themes/Sylvia/images/menuBox_bottom.gif deleted file mode 100644 index 72c91b117..000000000 Binary files a/themes/Sylvia/images/menuBox_bottom.gif and /dev/null differ diff --git a/themes/Sylvia/images/menuBox_sides.gif b/themes/Sylvia/images/menuBox_sides.gif deleted file mode 100644 index 853772da3..000000000 Binary files a/themes/Sylvia/images/menuBox_sides.gif and /dev/null differ diff --git a/themes/Sylvia/images/menuBox_top.gif b/themes/Sylvia/images/menuBox_top.gif deleted file mode 100644 index 3c80b3cf9..000000000 Binary files a/themes/Sylvia/images/menuBox_top.gif and /dev/null differ diff --git a/themes/Sylvia/images/menuId_bottom.gif b/themes/Sylvia/images/menuId_bottom.gif deleted file mode 100644 index e6d1faa1d..000000000 Binary files a/themes/Sylvia/images/menuId_bottom.gif and /dev/null differ diff --git a/themes/Sylvia/images/menuId_sides.gif b/themes/Sylvia/images/menuId_sides.gif deleted file mode 100644 index 68923cba2..000000000 Binary files a/themes/Sylvia/images/menuId_sides.gif and /dev/null differ diff --git a/themes/Sylvia/images/menuId_top.gif b/themes/Sylvia/images/menuId_top.gif deleted file mode 100644 index 5243a4097..000000000 Binary files a/themes/Sylvia/images/menuId_top.gif and /dev/null differ diff --git a/themes/Sylvia/images/top-left-bg.jpg b/themes/Sylvia/images/top-left-bg.jpg deleted file mode 100644 index 98aa1d6a5..000000000 Binary files a/themes/Sylvia/images/top-left-bg.jpg and /dev/null differ diff --git a/themes/Sylvia/images/transparent.gif b/themes/Sylvia/images/transparent.gif deleted file mode 100644 index 2fb4189a1..000000000 Binary files a/themes/Sylvia/images/transparent.gif and /dev/null differ diff --git a/themes/Sylvia/local_head.tpl b/themes/Sylvia/local_head.tpl deleted file mode 100644 index 932b5d2da..000000000 --- a/themes/Sylvia/local_head.tpl +++ /dev/null @@ -1,3 +0,0 @@ - diff --git a/themes/Sylvia/screenshot.png b/themes/Sylvia/screenshot.png deleted file mode 100644 index ee3637c88..000000000 Binary files a/themes/Sylvia/screenshot.png and /dev/null differ diff --git a/themes/Sylvia/theme-ie.css b/themes/Sylvia/theme-ie.css deleted file mode 100644 index fe2a58a79..000000000 --- a/themes/Sylvia/theme-ie.css +++ /dev/null @@ -1,12 +0,0 @@ -#content .thumbnailCategory .description .text { - scrollbar-face-color:#222; - scrollbar-shadow-color:#444; - scrollbar-highlight-color:#000; - scrollbar-darkshadow-color:#333; - scrollbar-track-color:#111; - scrollbar-arrow-color:#f70; -} - -#debug { word-wrap:break-word; } -/* IE6... Hacks: */ -/*\*/ * html #menubar #mbIdentification .button { margin-right:25px; } /* */ \ No newline at end of file diff --git a/themes/Sylvia/theme.css b/themes/Sylvia/theme.css deleted file mode 100644 index 7abbebe71..000000000 --- a/themes/Sylvia/theme.css +++ /dev/null @@ -1,483 +0,0 @@ -/* thumbnail wrap size */ -.thumbnailCategory .illustration { - min-width:165px !important; /* Usable range 162px-360px , optimal : Thumbnail width + 40px */ -} - .commentElement .illustration { - min-width:220px !important; /* Usable range 219px-360px , optimal : Thumbnail width + 95px */ -} - -/** - * Menubar - */ -#menubar DL { - background:transparent url(images/menuBox_top.gif) no-repeat scroll left top; - margin:0 0 5px 40px; - padding:0; - width: 231px; - min-width: 231px; - border: 0; - min-height: 32px; - overflow-x: hidden; -} -#menubar DT { - background-color:#111; - border:0; - display:inline; - margin-left:8px; - text-align:left; -} -#menubar DD { - background:transparent url(images/menuBox_bottom.gif) no-repeat scroll left bottom; - margin:14px 0 0 0; - padding:0 0 22px; - width: 231px; - min-width: 231px; - border: 0; - overflow-x: hidden; -} -#menubar DD P { - background:transparent url(images/menuBox_sides.gif) repeat-y scroll left bottom; - padding: 2px 16px 0; - margin: 0; -} -#menubar UL, #menubar #mbCategories p, #menubar .illustration { - background:transparent url(images/menuBox_sides.gif) repeat-y scroll left bottom; - margin:0; -} -#menubar DT A { - font-size: 100%; -} -#menubar UL { - color:#333; - font-size: 16px; - line-height: 15px; -} -#menubar UL SPAN.menuInfoCat { - color:#666; -} -#menubar LI { - padding-left: 12px; -} -#menubar LI UL { - background: transparent url(images/transparent.gif); -} -#menubar A, .menuInfoCat { - font-size: 13px; -} -#menubar form { - background:transparent url(images/menuBox_sides.gif) repeat-y scroll left bottom; - margin:0; -} -#menubar p { - padding: 16px 16px 0; -} - -.menubarFilter { - position: relative; - right: 8px; - top: 16px; -} - -#menubar #mbIdentification { - background:transparent url(images/menuId_top.gif) no-repeat scroll left top !important; -} -#menubar #mbIdentification DD { - background:transparent url(images/menuId_bottom.gif) no-repeat scroll left bottom; -} -#menubar #mbIdentification UL, #menubar #mbIdentification p, #menubar #mbIdentification .illustration { - background:transparent url(images/menuId_sides.gif) repeat-y scroll left bottom; -} -#menubar #mbIdentification form { - background:transparent url(images/menuId_sides.gif) repeat-y scroll left bottom; -} -#menubar #mbIdentification form p { - background:transparent none repeat-y scroll left bottom; -} -#menubar #mbIdentification p { - padding: 2px 16px 0; - margin: 0; -} -#menubar #mbIdentification fieldset div input[type="text"] { - margin: 0 0 3px; - width: 174px; - display: inline; -} -#menubar #mbIdentification .button { - height:24px; - width:24px; - right:0px; - top:-40px; -} -#menubar #mbIdentification fieldset { - border:0; - margin:0 24px 0 23px; -} -#menubar #mbIdentification legend { - display: none; -} -#mbIdentification p, .totalImages { - color:#666; -} - -#menubar #menuTagCloud { - background:transparent url(images/menuBox_sides.gif) repeat-y scroll left bottom; - margin:0; - padding: 0 12px; -} - -#qsearchInput:focus, input:focus, select:focus, textarea:focus, input.focus, form .focus { - background-color:#444; - color:#999; -} -#qsearchInput { - color:#999; -} - - -/** - * Content - */ -.content { - background:#222 url(images/fillet.gif) repeat-x scroll left top; - min-height:466px; - border: 1px solid #000; - border-top: 0; - margin:21px 7px 0 290px !important; - padding-top:7px; -} - -#the_page { - background:transparent url(images/top-left-bg.jpg) no-repeat scroll left top; - left:0; - margin:0; - padding:0; - position:absolute; - top:0; - z-index:0; - width: 100%; - min-width: 100%; -} - -.content h2 { - padding:0px 10px 15px 15px; - border:0; -} -.content .navigationBar { - color:#666; -} -/* contentWithMenu */ -.contentWithMenu { - margin-left: 290px; -} -.contentWithMenu #comments { - padding: 0 0 5px 0; -} -.contentWithMenu #imageToolBar { - padding-left: 0; -} -.contentWithMenu #imageHeaderBar .browsePath { - margin-left: 0; -} - -/* Category thumbnails on main page */ -.thumbnailCategories li { - background:#222 url(images/cat_bottom-right.gif) no-repeat scroll right bottom; - width:49%; - margin: 0; - padding:0; -} -.thumbnailCategory { - background:transparent url(images/cat_bottom-left.gif) no-repeat scroll left bottom; - padding: 0 0 2px; - margin:0; -} -.thumbnailCategory .illustration { - background:transparent url(images/cat_top-left.gif) no-repeat scroll left top; - padding: 0 5px 0 10px; - margin: 0 !important; - text-align: center; -} -.thumbnailCategory .illustration a { - display: block; - margin: 0 auto; - padding: 20px 4px 0; - border:0; -} -.thumbnailCategory .description { - background:transparent url(images/cat_top-right.gif) no-repeat scroll right top; - margin: 0; - padding:15px 10px 3px 0; - overflow: hidden !important; - height:158px; -} -.thumbnailCategory .description .text { - display:block; - margin:10px 2px 0 0; - overflow: auto; - overflow-x:hidden; - padding:0 0 5px; -} -.thumbnailCategory .description p.dates { - margin: 0 15px 0 15px; - text-align: right; -} -.thumbnailCategory .description H3 { - display: block; -} -.thumbnailCategories li:hover { - background-color:#111; -} - -/* header */ -#theHeader { - min-height:110px; - height:110px; -} - -.header_msgs { - background:transparent url(images/header_msgs-bg.gif) repeat scroll left top; - border:0; - color:#333; - font-size:24px; - left:0; - margin:0; - padding:10px 0 6px 0; - text-align:center; - top:0; - width:100%; - z-index:99; -} -.header_notes { - background:transparent url(images/header_msgs-bg.gif) repeat scroll left top; - border:0 none; - color:#333; - font-size:16px; - margin:0; - padding:0; - position:absolute; - top:0; - width:100%; - z-index:99; -} -.infos { - color:#f70; - border:0; - background:transparent url(icon/infos.png) no-repeat center right; - margin-left:40px; - text-align:left; -} -.errors { - color:#f33; - border:0; - background:transparent url(icon/errors.png) no-repeat center right; - margin-left:40px; - text-align:left; - font-weight:bold; -} -.infos li, .errors li { - list-style-type:none; -} - -/* User comments */ -#comments { - margin: 0 10px 5px 10px; -} -.content .commentElement { - border: 1px solid #666; -} -.content .commentElement.odd { - background-color: #222; -} -.content .commentElement.even { - background-color: #111; -} -.content .commentElement .illustration { - margin: 2px; - text-align: center; -} -.content .commentElement .description { - padding:15px 10px 3px 0; - overflow-x: hidden !important; -} - -#comments .commentsList hr {display:none;} -#comments .filter input[type="submit"] { margin-top:1.8em; } - -/* Thumbnails */ -.thumbnails .wrap2 { - border: 1px solid #666; /* thumbnails border color and style */ - border-radius: 4px 4px; /* round corners with CSS3 compliant browsers */ -} -.thumbnails .wrap2:hover { - color:#666; - background-color:#111; - border:1px solid #ff3363; /* thumbnails border color when mouse cursor is over it */ -} -.calItem { - border:1px solid #666; - margin:0 5px; - padding:2px 5px 0 8px; -} -SPAN.calItem, td.calDayCellEmpty, td.calDayCellFull { - border:1px solid #666; -} - - -/** - * Picture - */ -#imageToolBar { - padding:0 7%; -} -#imageHeaderBar .imageNumber { - margin-right:7%; -} -#imageHeaderBar .browsePath { - margin-left:7%; -} -#imageHeaderBar, #imageToolBar A:hover { - background-color: transparent; -} -#imageHeaderBar H2 { - border: 0; -} - -#theImage A, .illustration A, A.navThumb, A.navThumb { - border-bottom-width: 0; -} -.rateButtonStarFull, .rateButtonStarEmpty { - background-image: url('icon/rating-stars.gif'); -} - -#thePicturePage .commentElement { - padding: 15px 2px 6px 12px; - border: 1px solid #666; -} -#thePicturePage .commentsList { - padding-left: 12px; - padding-right: 12px; - overflow: visible; - width: auto; -} -#thePicturePage .odd { - background-color: #222; -} - -.pictureContent { - margin:0 7px 7px 290px; -} - -#addComment fieldset { - color: #f70; - border-color: #f70; -} -#addComment fieldset label { - color: #666; -} - - -/** - * Default Layout - */ -*, *:focus, *:active, input:active, a:active, input:focus, a:focus { - outline: none; -} -BODY { - background:#111 url(images/bottom-left-bg.jpg) no-repeat fixed left bottom; - margin:0; - min-height: 100%; - height: 100%; - padding:0; -} -BODY, H1, H3, DT, INPUT.rateButtonSelected, H2, #menubar DT { - color:#666; -} - -/* forms */ -FIELDSET, INPUT, SELECT, TEXTAREA { - border: 1px solid #666; -} -input[type="text"], input[type="password"], input[type="button"], input[type="submit"], input[type="reset"], input[type="file"] { - background-color:#444; - color:#999; -} /* stupid Line but needed due to inpact on other themes and deadline of Piwigo 2.0 */ -input[type="file"] { - background-color:#222; - border: 1px solid #666; -} -INPUT, select, textarea { - color:#999; - background-color:#444; -} -input[type="radio"], input[type="checkbox"], input[type="button"].rateButtonStarEmpty, input[type="button"].rateButtonStarFull { - background-color: transparent; -} -input[type="button"], input[type="submit"], input[type="reset"] { - color:#ff3363; - background-color:#222; - border-color:#ff3363; -} -input[type="button"]:hover, input[type="submit"]:hover, input[type="reset"]:hover { - color:#999; - border-color:#666; -} - -/* links */ -A, .rateButton { - color:#f70; - border-width: 0; -} -A:hover, A:active { - color:#f33; - border-bottom: 1px solid #ff3363; - cursor: pointer; -} -a.external { - color:#ff3363; - border:0; - text-decoration: none; -} -a.external:hover { - color:#ff7700; - border:0; -} -a.Piwigo { - font-family: verdana, arial, helvetica, sans-serif !important; - font-size: 11px; font-weight: normal; letter-spacing: 0; - color : #F33; text-decoration: none; border: 0; } -a.Piwigo:hover { - border-bottom: 1px solid #ff3363; -} - -.titrePage img.button[alt="x"] { margin: 0 3px 3px; } -tr.tagLine, fieldset.tagLetter, legend.tagLetterLegend { - border-color: #666; -} -#debug { - margin: 15px 15px 5px 248px; - font-size:12px; - clear: both; -} - -/* sprites */ -.pwg-icon { - background-image: url(../default/s26/outline_ff3363.png); -} -A:hover .pwg-icon { - background-image: url(../default/s26/outline_ff7700.png); -} - -.message { - color:white; - background-color:#666; -} - -.switchBox { - background-color: #222222; - border: 1px solid #FF3363; - border-radius: 0 15px 0 15px; -} - -.switchBoxTitle { - border-color:#666; -} diff --git a/themes/Sylvia/themeconf.inc.php b/themes/Sylvia/themeconf.inc.php deleted file mode 100644 index 8c007f620..000000000 --- a/themes/Sylvia/themeconf.inc.php +++ /dev/null @@ -1,38 +0,0 @@ - 'Sylvia', - 'parent' => 'default', - 'icon_dir' => 'themes/Sylvia/icon', - 'mime_icon_dir' => 'themes/Sylvia/icon/mimetypes/', -); -/************************************ mainpage_categories.tpl ************************************/ -add_event_handler('loc_end_index_category_thumbnails', 'Sylvia_album'); -function Sylvia_album($tpl_thumbnails_var) -{ - global $template; - $template->set_prefilter('index_category_thumbnails', 'Sylvia_album_prefilter'); - return $tpl_thumbnails_var; -} -function Sylvia_album_prefilter($content, &$smarty) -{ - $search = '#\{html_style\}#'; - $replacement = '{html_style} -.thumbnailCategory .description .text{ldelim} - height: {$derivative_params->max_height()-30}px; -}'; - $content = preg_replace($search, $replacement, $content); - $search = '#\.thumbnailCategory[\t ]*.description\{ldelim\}[\s]*height:[\t ]*\{\$derivative_params->max_height\(\)\+5#'; - $replacement = '.thumbnailCategory .description{ldelim} - height: {$derivative_params->max_height()+15'; - $content = preg_replace($search, $replacement, $content); - return $content; -} -?> diff --git a/themes/clear/index.php b/themes/clear/index.php deleted file mode 100644 index 58ea04e8f..000000000 --- a/themes/clear/index.php +++ /dev/null @@ -1,15 +0,0 @@ - diff --git a/themes/clear/screenshot.png b/themes/clear/screenshot.png deleted file mode 100644 index 6ae1a6a4d..000000000 Binary files a/themes/clear/screenshot.png and /dev/null differ diff --git a/themes/clear/theme.css b/themes/clear/theme.css deleted file mode 100644 index a7c64fa51..000000000 --- a/themes/clear/theme.css +++ /dev/null @@ -1,89 +0,0 @@ - -/* text color */ -BODY, H1, H2, DT, -INPUT.rateButtonSelected /* <= why IE doesn't inherit this ? */ { - color:#696969; /* dimgray */ -} - -/* backgrounds */ -BODY { - background-color: #ffffff; /* white */ -} - -H2, #menubar DT, #imageHeaderBar, #imageToolBar A:hover { - background-color: #d3d3d3; -} - -#menubar DL, .content, #imageToolBar, .switchBox, .header_notes { - background-color: #eeeeee; -} - -/* borders */ -#menubar DL, .content, #imageToolBar, .switchBox { - border: 1px solid #d3d3d3; -} - -#theImage IMG { - border: 3px solid #d3d3d3; -} - -/*I think this rule is never used*/ -.content UL.thumbnail IMG { - border: 1px solid #a0a0a0; -} - -FIELDSET, INPUT, SELECT, TEXTAREA, -.content .thumbnailCategory, -.content .commentElement { - border: 1px solid gray; -} - -.thumbnails .wrap2 { - border: 1px solid #aaaaaa; /* thumbnails border color and style */ -} - -.thumbnails .wrap2:hover, -.content .thumbnailCategories .thumbnailCategory:hover, -.content .thumbnailCategories .thumbnailCategory:hover A, -.content .commentsList .commentElement:hover, -.content .commentsList .commentElement:hover A { - background-color: #faebd7; - border-color: yellow; /* thumbnails border color when mouse cursor is over it */ - color: black; -} - -/* links */ -A, INPUT.rateButton { - color: #005e89; - background: transparent; - border-bottom: 1px dotted #005e89; -} - -A:hover, INPUT.rateButton:hover { - color: #808060; -} - -A.pwg-state-default { - border: 0; -} - -A.navThumb, A.navThumb:hover { - border-bottom: none; -} - -/*calendar elements*/ -.calItem -{ - border: 1px solid silver; -} - -#qsearchInput { color: #005e89; } - -.pwg-icon { - background-image: url(../default/s26/outline_005e89.png); -} - -A:hover .pwg-icon { - background-image: url(../default/s26/outline_808060.png); -} - diff --git a/themes/clear/themeconf.inc.php b/themes/clear/themeconf.inc.php deleted file mode 100644 index 7603b1e41..000000000 --- a/themes/clear/themeconf.inc.php +++ /dev/null @@ -1,15 +0,0 @@ - 'clear', - 'parent' => 'default', - 'colorscheme' => 'clear', -); -?> diff --git a/themes/dark/images/index.php b/themes/dark/images/index.php deleted file mode 100644 index 58ea04e8f..000000000 --- a/themes/dark/images/index.php +++ /dev/null @@ -1,15 +0,0 @@ - diff --git a/themes/dark/images/tableh1_bg.png b/themes/dark/images/tableh1_bg.png deleted file mode 100644 index fb3c51854..000000000 Binary files a/themes/dark/images/tableh1_bg.png and /dev/null differ diff --git a/themes/dark/index.php b/themes/dark/index.php deleted file mode 100644 index 58ea04e8f..000000000 --- a/themes/dark/index.php +++ /dev/null @@ -1,15 +0,0 @@ - diff --git a/themes/dark/screenshot.png b/themes/dark/screenshot.png deleted file mode 100644 index 8886060b1..000000000 Binary files a/themes/dark/screenshot.png and /dev/null differ diff --git a/themes/dark/theme.css b/themes/dark/theme.css deleted file mode 100644 index 04360e00a..000000000 --- a/themes/dark/theme.css +++ /dev/null @@ -1,76 +0,0 @@ - -/* text color */ -BODY, H1, -INPUT.rateButtonSelected /* <= why IE doesn't inherit this ? */ { - color:#d0d0d0; -} - -H2, #menubar DT { - color: #ffff80; - background-image: url(images/tableh1_bg.png); -} - - -/* backgrounds */ - -BODY, #imageToolBar A:hover { - background-color: #2f2f2f; -} - -#menubar DL, .content, #imageToolBar, #imageHeaderBar, .switchBox, .header_notes { - background-color: #505050; -} - -#imageHeaderBar H2 { - background-image: none; -} - -#imageHeaderBar { - border-top: 1px solid #000; -} - -/* borders */ -#menubar DL, .content, .switchBox { - border: 1px solid #000; -} - -#menubar DT, #imageToolBar { - border-bottom: 1px solid #000; -} - -FIELDSET, INPUT, SELECT, TEXTAREA, -.thumbnailCategory , -.content .commentElement , -.thumbnails .wrap2 { - border: 1px solid gray; -} - - -.thumbnails .wrap2:hover, -.thumbnailCategory:hover, -.content .commentElement:hover{ - border-color: yellow; /* thumbnails border color when mouse cursor is over it */ -} - - -/* links */ -A, INPUT.rateButton { - color: #fff; -} - -A:hover { - color: #ffff80; -} - -.pwg-icon { - background-image: url(../default/s26/outline_ffffff.png); -} - -A:hover .pwg-icon { - background-image: url(../default/s26/outline_ffff80.png); -} - -.message { - color:white; - background-color:#666; -} \ No newline at end of file diff --git a/themes/dark/themeconf.inc.php b/themes/dark/themeconf.inc.php deleted file mode 100644 index 7e692996c..000000000 --- a/themes/dark/themeconf.inc.php +++ /dev/null @@ -1,14 +0,0 @@ - 'dark', - 'parent' => 'default', -); -?> diff --git a/themes/default/js/plugins/Chart.min.css b/themes/default/js/plugins/Chart.min.css new file mode 100644 index 000000000..9dc5ac2e5 --- /dev/null +++ b/themes/default/js/plugins/Chart.min.css @@ -0,0 +1 @@ +@keyframes chartjs-render-animation{from{opacity:.99}to{opacity:1}}.chartjs-render-monitor{animation:chartjs-render-animation 1ms}.chartjs-size-monitor,.chartjs-size-monitor-expand,.chartjs-size-monitor-shrink{position:absolute;direction:ltr;left:0;top:0;right:0;bottom:0;overflow:hidden;pointer-events:none;visibility:hidden;z-index:-1}.chartjs-size-monitor-expand>div{position:absolute;width:1000000px;height:1000000px;left:0;top:0}.chartjs-size-monitor-shrink>div{position:absolute;width:200%;height:200%;left:0;top:0} \ No newline at end of file diff --git a/themes/default/js/plugins/Chart.min.js b/themes/default/js/plugins/Chart.min.js new file mode 100644 index 000000000..7c16b0d12 --- /dev/null +++ b/themes/default/js/plugins/Chart.min.js @@ -0,0 +1,7 @@ +/*! + * Chart.js v2.9.3 + * https://www.chartjs.org + * (c) 2019 Chart.js Contributors + * Released under the MIT License + */ +!function(t,e){"object"==typeof exports&&"undefined"!=typeof module?module.exports=e(function(){try{return require("moment")}catch(t){}}()):"function"==typeof define&&define.amd?define(["require"],(function(t){return e(function(){try{return t("moment")}catch(t){}}())})):(t=t||self).Chart=e(t.moment)}(this,(function(t){"use strict";t=t&&t.hasOwnProperty("default")?t.default:t;var e={aliceblue:[240,248,255],antiquewhite:[250,235,215],aqua:[0,255,255],aquamarine:[127,255,212],azure:[240,255,255],beige:[245,245,220],bisque:[255,228,196],black:[0,0,0],blanchedalmond:[255,235,205],blue:[0,0,255],blueviolet:[138,43,226],brown:[165,42,42],burlywood:[222,184,135],cadetblue:[95,158,160],chartreuse:[127,255,0],chocolate:[210,105,30],coral:[255,127,80],cornflowerblue:[100,149,237],cornsilk:[255,248,220],crimson:[220,20,60],cyan:[0,255,255],darkblue:[0,0,139],darkcyan:[0,139,139],darkgoldenrod:[184,134,11],darkgray:[169,169,169],darkgreen:[0,100,0],darkgrey:[169,169,169],darkkhaki:[189,183,107],darkmagenta:[139,0,139],darkolivegreen:[85,107,47],darkorange:[255,140,0],darkorchid:[153,50,204],darkred:[139,0,0],darksalmon:[233,150,122],darkseagreen:[143,188,143],darkslateblue:[72,61,139],darkslategray:[47,79,79],darkslategrey:[47,79,79],darkturquoise:[0,206,209],darkviolet:[148,0,211],deeppink:[255,20,147],deepskyblue:[0,191,255],dimgray:[105,105,105],dimgrey:[105,105,105],dodgerblue:[30,144,255],firebrick:[178,34,34],floralwhite:[255,250,240],forestgreen:[34,139,34],fuchsia:[255,0,255],gainsboro:[220,220,220],ghostwhite:[248,248,255],gold:[255,215,0],goldenrod:[218,165,32],gray:[128,128,128],green:[0,128,0],greenyellow:[173,255,47],grey:[128,128,128],honeydew:[240,255,240],hotpink:[255,105,180],indianred:[205,92,92],indigo:[75,0,130],ivory:[255,255,240],khaki:[240,230,140],lavender:[230,230,250],lavenderblush:[255,240,245],lawngreen:[124,252,0],lemonchiffon:[255,250,205],lightblue:[173,216,230],lightcoral:[240,128,128],lightcyan:[224,255,255],lightgoldenrodyellow:[250,250,210],lightgray:[211,211,211],lightgreen:[144,238,144],lightgrey:[211,211,211],lightpink:[255,182,193],lightsalmon:[255,160,122],lightseagreen:[32,178,170],lightskyblue:[135,206,250],lightslategray:[119,136,153],lightslategrey:[119,136,153],lightsteelblue:[176,196,222],lightyellow:[255,255,224],lime:[0,255,0],limegreen:[50,205,50],linen:[250,240,230],magenta:[255,0,255],maroon:[128,0,0],mediumaquamarine:[102,205,170],mediumblue:[0,0,205],mediumorchid:[186,85,211],mediumpurple:[147,112,219],mediumseagreen:[60,179,113],mediumslateblue:[123,104,238],mediumspringgreen:[0,250,154],mediumturquoise:[72,209,204],mediumvioletred:[199,21,133],midnightblue:[25,25,112],mintcream:[245,255,250],mistyrose:[255,228,225],moccasin:[255,228,181],navajowhite:[255,222,173],navy:[0,0,128],oldlace:[253,245,230],olive:[128,128,0],olivedrab:[107,142,35],orange:[255,165,0],orangered:[255,69,0],orchid:[218,112,214],palegoldenrod:[238,232,170],palegreen:[152,251,152],paleturquoise:[175,238,238],palevioletred:[219,112,147],papayawhip:[255,239,213],peachpuff:[255,218,185],peru:[205,133,63],pink:[255,192,203],plum:[221,160,221],powderblue:[176,224,230],purple:[128,0,128],rebeccapurple:[102,51,153],red:[255,0,0],rosybrown:[188,143,143],royalblue:[65,105,225],saddlebrown:[139,69,19],salmon:[250,128,114],sandybrown:[244,164,96],seagreen:[46,139,87],seashell:[255,245,238],sienna:[160,82,45],silver:[192,192,192],skyblue:[135,206,235],slateblue:[106,90,205],slategray:[112,128,144],slategrey:[112,128,144],snow:[255,250,250],springgreen:[0,255,127],steelblue:[70,130,180],tan:[210,180,140],teal:[0,128,128],thistle:[216,191,216],tomato:[255,99,71],turquoise:[64,224,208],violet:[238,130,238],wheat:[245,222,179],white:[255,255,255],whitesmoke:[245,245,245],yellow:[255,255,0],yellowgreen:[154,205,50]},n=function(t,e){return t(e={exports:{}},e.exports),e.exports}((function(t){var n={};for(var i in e)e.hasOwnProperty(i)&&(n[e[i]]=i);var a=t.exports={rgb:{channels:3,labels:"rgb"},hsl:{channels:3,labels:"hsl"},hsv:{channels:3,labels:"hsv"},hwb:{channels:3,labels:"hwb"},cmyk:{channels:4,labels:"cmyk"},xyz:{channels:3,labels:"xyz"},lab:{channels:3,labels:"lab"},lch:{channels:3,labels:"lch"},hex:{channels:1,labels:["hex"]},keyword:{channels:1,labels:["keyword"]},ansi16:{channels:1,labels:["ansi16"]},ansi256:{channels:1,labels:["ansi256"]},hcg:{channels:3,labels:["h","c","g"]},apple:{channels:3,labels:["r16","g16","b16"]},gray:{channels:1,labels:["gray"]}};for(var r in a)if(a.hasOwnProperty(r)){if(!("channels"in a[r]))throw new Error("missing channels property: "+r);if(!("labels"in a[r]))throw new Error("missing channel labels property: "+r);if(a[r].labels.length!==a[r].channels)throw new Error("channel and label counts mismatch: "+r);var o=a[r].channels,s=a[r].labels;delete a[r].channels,delete a[r].labels,Object.defineProperty(a[r],"channels",{value:o}),Object.defineProperty(a[r],"labels",{value:s})}a.rgb.hsl=function(t){var e,n,i=t[0]/255,a=t[1]/255,r=t[2]/255,o=Math.min(i,a,r),s=Math.max(i,a,r),l=s-o;return s===o?e=0:i===s?e=(a-r)/l:a===s?e=2+(r-i)/l:r===s&&(e=4+(i-a)/l),(e=Math.min(60*e,360))<0&&(e+=360),n=(o+s)/2,[e,100*(s===o?0:n<=.5?l/(s+o):l/(2-s-o)),100*n]},a.rgb.hsv=function(t){var e,n,i,a,r,o=t[0]/255,s=t[1]/255,l=t[2]/255,u=Math.max(o,s,l),d=u-Math.min(o,s,l),h=function(t){return(u-t)/6/d+.5};return 0===d?a=r=0:(r=d/u,e=h(o),n=h(s),i=h(l),o===u?a=i-n:s===u?a=1/3+e-i:l===u&&(a=2/3+n-e),a<0?a+=1:a>1&&(a-=1)),[360*a,100*r,100*u]},a.rgb.hwb=function(t){var e=t[0],n=t[1],i=t[2];return[a.rgb.hsl(t)[0],100*(1/255*Math.min(e,Math.min(n,i))),100*(i=1-1/255*Math.max(e,Math.max(n,i)))]},a.rgb.cmyk=function(t){var e,n=t[0]/255,i=t[1]/255,a=t[2]/255;return[100*((1-n-(e=Math.min(1-n,1-i,1-a)))/(1-e)||0),100*((1-i-e)/(1-e)||0),100*((1-a-e)/(1-e)||0),100*e]},a.rgb.keyword=function(t){var i=n[t];if(i)return i;var a,r,o,s=1/0;for(var l in e)if(e.hasOwnProperty(l)){var u=e[l],d=(r=t,o=u,Math.pow(r[0]-o[0],2)+Math.pow(r[1]-o[1],2)+Math.pow(r[2]-o[2],2));d.04045?Math.pow((e+.055)/1.055,2.4):e/12.92)+.3576*(n=n>.04045?Math.pow((n+.055)/1.055,2.4):n/12.92)+.1805*(i=i>.04045?Math.pow((i+.055)/1.055,2.4):i/12.92)),100*(.2126*e+.7152*n+.0722*i),100*(.0193*e+.1192*n+.9505*i)]},a.rgb.lab=function(t){var e=a.rgb.xyz(t),n=e[0],i=e[1],r=e[2];return i/=100,r/=108.883,n=(n/=95.047)>.008856?Math.pow(n,1/3):7.787*n+16/116,[116*(i=i>.008856?Math.pow(i,1/3):7.787*i+16/116)-16,500*(n-i),200*(i-(r=r>.008856?Math.pow(r,1/3):7.787*r+16/116))]},a.hsl.rgb=function(t){var e,n,i,a,r,o=t[0]/360,s=t[1]/100,l=t[2]/100;if(0===s)return[r=255*l,r,r];e=2*l-(n=l<.5?l*(1+s):l+s-l*s),a=[0,0,0];for(var u=0;u<3;u++)(i=o+1/3*-(u-1))<0&&i++,i>1&&i--,r=6*i<1?e+6*(n-e)*i:2*i<1?n:3*i<2?e+(n-e)*(2/3-i)*6:e,a[u]=255*r;return a},a.hsl.hsv=function(t){var e=t[0],n=t[1]/100,i=t[2]/100,a=n,r=Math.max(i,.01);return n*=(i*=2)<=1?i:2-i,a*=r<=1?r:2-r,[e,100*(0===i?2*a/(r+a):2*n/(i+n)),100*((i+n)/2)]},a.hsv.rgb=function(t){var e=t[0]/60,n=t[1]/100,i=t[2]/100,a=Math.floor(e)%6,r=e-Math.floor(e),o=255*i*(1-n),s=255*i*(1-n*r),l=255*i*(1-n*(1-r));switch(i*=255,a){case 0:return[i,l,o];case 1:return[s,i,o];case 2:return[o,i,l];case 3:return[o,s,i];case 4:return[l,o,i];case 5:return[i,o,s]}},a.hsv.hsl=function(t){var e,n,i,a=t[0],r=t[1]/100,o=t[2]/100,s=Math.max(o,.01);return i=(2-r)*o,n=r*s,[a,100*(n=(n/=(e=(2-r)*s)<=1?e:2-e)||0),100*(i/=2)]},a.hwb.rgb=function(t){var e,n,i,a,r,o,s,l=t[0]/360,u=t[1]/100,d=t[2]/100,h=u+d;switch(h>1&&(u/=h,d/=h),i=6*l-(e=Math.floor(6*l)),0!=(1&e)&&(i=1-i),a=u+i*((n=1-d)-u),e){default:case 6:case 0:r=n,o=a,s=u;break;case 1:r=a,o=n,s=u;break;case 2:r=u,o=n,s=a;break;case 3:r=u,o=a,s=n;break;case 4:r=a,o=u,s=n;break;case 5:r=n,o=u,s=a}return[255*r,255*o,255*s]},a.cmyk.rgb=function(t){var e=t[0]/100,n=t[1]/100,i=t[2]/100,a=t[3]/100;return[255*(1-Math.min(1,e*(1-a)+a)),255*(1-Math.min(1,n*(1-a)+a)),255*(1-Math.min(1,i*(1-a)+a))]},a.xyz.rgb=function(t){var e,n,i,a=t[0]/100,r=t[1]/100,o=t[2]/100;return n=-.9689*a+1.8758*r+.0415*o,i=.0557*a+-.204*r+1.057*o,e=(e=3.2406*a+-1.5372*r+-.4986*o)>.0031308?1.055*Math.pow(e,1/2.4)-.055:12.92*e,n=n>.0031308?1.055*Math.pow(n,1/2.4)-.055:12.92*n,i=i>.0031308?1.055*Math.pow(i,1/2.4)-.055:12.92*i,[255*(e=Math.min(Math.max(0,e),1)),255*(n=Math.min(Math.max(0,n),1)),255*(i=Math.min(Math.max(0,i),1))]},a.xyz.lab=function(t){var e=t[0],n=t[1],i=t[2];return n/=100,i/=108.883,e=(e/=95.047)>.008856?Math.pow(e,1/3):7.787*e+16/116,[116*(n=n>.008856?Math.pow(n,1/3):7.787*n+16/116)-16,500*(e-n),200*(n-(i=i>.008856?Math.pow(i,1/3):7.787*i+16/116))]},a.lab.xyz=function(t){var e,n,i,a=t[0];e=t[1]/500+(n=(a+16)/116),i=n-t[2]/200;var r=Math.pow(n,3),o=Math.pow(e,3),s=Math.pow(i,3);return n=r>.008856?r:(n-16/116)/7.787,e=o>.008856?o:(e-16/116)/7.787,i=s>.008856?s:(i-16/116)/7.787,[e*=95.047,n*=100,i*=108.883]},a.lab.lch=function(t){var e,n=t[0],i=t[1],a=t[2];return(e=360*Math.atan2(a,i)/2/Math.PI)<0&&(e+=360),[n,Math.sqrt(i*i+a*a),e]},a.lch.lab=function(t){var e,n=t[0],i=t[1];return e=t[2]/360*2*Math.PI,[n,i*Math.cos(e),i*Math.sin(e)]},a.rgb.ansi16=function(t){var e=t[0],n=t[1],i=t[2],r=1 in arguments?arguments[1]:a.rgb.hsv(t)[2];if(0===(r=Math.round(r/50)))return 30;var o=30+(Math.round(i/255)<<2|Math.round(n/255)<<1|Math.round(e/255));return 2===r&&(o+=60),o},a.hsv.ansi16=function(t){return a.rgb.ansi16(a.hsv.rgb(t),t[2])},a.rgb.ansi256=function(t){var e=t[0],n=t[1],i=t[2];return e===n&&n===i?e<8?16:e>248?231:Math.round((e-8)/247*24)+232:16+36*Math.round(e/255*5)+6*Math.round(n/255*5)+Math.round(i/255*5)},a.ansi16.rgb=function(t){var e=t%10;if(0===e||7===e)return t>50&&(e+=3.5),[e=e/10.5*255,e,e];var n=.5*(1+~~(t>50));return[(1&e)*n*255,(e>>1&1)*n*255,(e>>2&1)*n*255]},a.ansi256.rgb=function(t){if(t>=232){var e=10*(t-232)+8;return[e,e,e]}var n;return t-=16,[Math.floor(t/36)/5*255,Math.floor((n=t%36)/6)/5*255,n%6/5*255]},a.rgb.hex=function(t){var e=(((255&Math.round(t[0]))<<16)+((255&Math.round(t[1]))<<8)+(255&Math.round(t[2]))).toString(16).toUpperCase();return"000000".substring(e.length)+e},a.hex.rgb=function(t){var e=t.toString(16).match(/[a-f0-9]{6}|[a-f0-9]{3}/i);if(!e)return[0,0,0];var n=e[0];3===e[0].length&&(n=n.split("").map((function(t){return t+t})).join(""));var i=parseInt(n,16);return[i>>16&255,i>>8&255,255&i]},a.rgb.hcg=function(t){var e,n=t[0]/255,i=t[1]/255,a=t[2]/255,r=Math.max(Math.max(n,i),a),o=Math.min(Math.min(n,i),a),s=r-o;return e=s<=0?0:r===n?(i-a)/s%6:r===i?2+(a-n)/s:4+(n-i)/s+4,e/=6,[360*(e%=1),100*s,100*(s<1?o/(1-s):0)]},a.hsl.hcg=function(t){var e=t[1]/100,n=t[2]/100,i=1,a=0;return(i=n<.5?2*e*n:2*e*(1-n))<1&&(a=(n-.5*i)/(1-i)),[t[0],100*i,100*a]},a.hsv.hcg=function(t){var e=t[1]/100,n=t[2]/100,i=e*n,a=0;return i<1&&(a=(n-i)/(1-i)),[t[0],100*i,100*a]},a.hcg.rgb=function(t){var e=t[0]/360,n=t[1]/100,i=t[2]/100;if(0===n)return[255*i,255*i,255*i];var a,r=[0,0,0],o=e%1*6,s=o%1,l=1-s;switch(Math.floor(o)){case 0:r[0]=1,r[1]=s,r[2]=0;break;case 1:r[0]=l,r[1]=1,r[2]=0;break;case 2:r[0]=0,r[1]=1,r[2]=s;break;case 3:r[0]=0,r[1]=l,r[2]=1;break;case 4:r[0]=s,r[1]=0,r[2]=1;break;default:r[0]=1,r[1]=0,r[2]=l}return a=(1-n)*i,[255*(n*r[0]+a),255*(n*r[1]+a),255*(n*r[2]+a)]},a.hcg.hsv=function(t){var e=t[1]/100,n=e+t[2]/100*(1-e),i=0;return n>0&&(i=e/n),[t[0],100*i,100*n]},a.hcg.hsl=function(t){var e=t[1]/100,n=t[2]/100*(1-e)+.5*e,i=0;return n>0&&n<.5?i=e/(2*n):n>=.5&&n<1&&(i=e/(2*(1-n))),[t[0],100*i,100*n]},a.hcg.hwb=function(t){var e=t[1]/100,n=e+t[2]/100*(1-e);return[t[0],100*(n-e),100*(1-n)]},a.hwb.hcg=function(t){var e=t[1]/100,n=1-t[2]/100,i=n-e,a=0;return i<1&&(a=(n-i)/(1-i)),[t[0],100*i,100*a]},a.apple.rgb=function(t){return[t[0]/65535*255,t[1]/65535*255,t[2]/65535*255]},a.rgb.apple=function(t){return[t[0]/255*65535,t[1]/255*65535,t[2]/255*65535]},a.gray.rgb=function(t){return[t[0]/100*255,t[0]/100*255,t[0]/100*255]},a.gray.hsl=a.gray.hsv=function(t){return[0,0,t[0]]},a.gray.hwb=function(t){return[0,100,t[0]]},a.gray.cmyk=function(t){return[0,0,0,t[0]]},a.gray.lab=function(t){return[t[0],0,0]},a.gray.hex=function(t){var e=255&Math.round(t[0]/100*255),n=((e<<16)+(e<<8)+e).toString(16).toUpperCase();return"000000".substring(n.length)+n},a.rgb.gray=function(t){return[(t[0]+t[1]+t[2])/3/255*100]}}));n.rgb,n.hsl,n.hsv,n.hwb,n.cmyk,n.xyz,n.lab,n.lch,n.hex,n.keyword,n.ansi16,n.ansi256,n.hcg,n.apple,n.gray;function i(t){var e=function(){for(var t={},e=Object.keys(n),i=e.length,a=0;a1&&(e=Array.prototype.slice.call(arguments));var n=t(e);if("object"==typeof n)for(var i=n.length,a=0;a1&&(e=Array.prototype.slice.call(arguments)),t(e))};return"conversion"in t&&(e.conversion=t.conversion),e}(i)}))}));var s=o,l={aliceblue:[240,248,255],antiquewhite:[250,235,215],aqua:[0,255,255],aquamarine:[127,255,212],azure:[240,255,255],beige:[245,245,220],bisque:[255,228,196],black:[0,0,0],blanchedalmond:[255,235,205],blue:[0,0,255],blueviolet:[138,43,226],brown:[165,42,42],burlywood:[222,184,135],cadetblue:[95,158,160],chartreuse:[127,255,0],chocolate:[210,105,30],coral:[255,127,80],cornflowerblue:[100,149,237],cornsilk:[255,248,220],crimson:[220,20,60],cyan:[0,255,255],darkblue:[0,0,139],darkcyan:[0,139,139],darkgoldenrod:[184,134,11],darkgray:[169,169,169],darkgreen:[0,100,0],darkgrey:[169,169,169],darkkhaki:[189,183,107],darkmagenta:[139,0,139],darkolivegreen:[85,107,47],darkorange:[255,140,0],darkorchid:[153,50,204],darkred:[139,0,0],darksalmon:[233,150,122],darkseagreen:[143,188,143],darkslateblue:[72,61,139],darkslategray:[47,79,79],darkslategrey:[47,79,79],darkturquoise:[0,206,209],darkviolet:[148,0,211],deeppink:[255,20,147],deepskyblue:[0,191,255],dimgray:[105,105,105],dimgrey:[105,105,105],dodgerblue:[30,144,255],firebrick:[178,34,34],floralwhite:[255,250,240],forestgreen:[34,139,34],fuchsia:[255,0,255],gainsboro:[220,220,220],ghostwhite:[248,248,255],gold:[255,215,0],goldenrod:[218,165,32],gray:[128,128,128],green:[0,128,0],greenyellow:[173,255,47],grey:[128,128,128],honeydew:[240,255,240],hotpink:[255,105,180],indianred:[205,92,92],indigo:[75,0,130],ivory:[255,255,240],khaki:[240,230,140],lavender:[230,230,250],lavenderblush:[255,240,245],lawngreen:[124,252,0],lemonchiffon:[255,250,205],lightblue:[173,216,230],lightcoral:[240,128,128],lightcyan:[224,255,255],lightgoldenrodyellow:[250,250,210],lightgray:[211,211,211],lightgreen:[144,238,144],lightgrey:[211,211,211],lightpink:[255,182,193],lightsalmon:[255,160,122],lightseagreen:[32,178,170],lightskyblue:[135,206,250],lightslategray:[119,136,153],lightslategrey:[119,136,153],lightsteelblue:[176,196,222],lightyellow:[255,255,224],lime:[0,255,0],limegreen:[50,205,50],linen:[250,240,230],magenta:[255,0,255],maroon:[128,0,0],mediumaquamarine:[102,205,170],mediumblue:[0,0,205],mediumorchid:[186,85,211],mediumpurple:[147,112,219],mediumseagreen:[60,179,113],mediumslateblue:[123,104,238],mediumspringgreen:[0,250,154],mediumturquoise:[72,209,204],mediumvioletred:[199,21,133],midnightblue:[25,25,112],mintcream:[245,255,250],mistyrose:[255,228,225],moccasin:[255,228,181],navajowhite:[255,222,173],navy:[0,0,128],oldlace:[253,245,230],olive:[128,128,0],olivedrab:[107,142,35],orange:[255,165,0],orangered:[255,69,0],orchid:[218,112,214],palegoldenrod:[238,232,170],palegreen:[152,251,152],paleturquoise:[175,238,238],palevioletred:[219,112,147],papayawhip:[255,239,213],peachpuff:[255,218,185],peru:[205,133,63],pink:[255,192,203],plum:[221,160,221],powderblue:[176,224,230],purple:[128,0,128],rebeccapurple:[102,51,153],red:[255,0,0],rosybrown:[188,143,143],royalblue:[65,105,225],saddlebrown:[139,69,19],salmon:[250,128,114],sandybrown:[244,164,96],seagreen:[46,139,87],seashell:[255,245,238],sienna:[160,82,45],silver:[192,192,192],skyblue:[135,206,235],slateblue:[106,90,205],slategray:[112,128,144],slategrey:[112,128,144],snow:[255,250,250],springgreen:[0,255,127],steelblue:[70,130,180],tan:[210,180,140],teal:[0,128,128],thistle:[216,191,216],tomato:[255,99,71],turquoise:[64,224,208],violet:[238,130,238],wheat:[245,222,179],white:[255,255,255],whitesmoke:[245,245,245],yellow:[255,255,0],yellowgreen:[154,205,50]},u={getRgba:d,getHsla:h,getRgb:function(t){var e=d(t);return e&&e.slice(0,3)},getHsl:function(t){var e=h(t);return e&&e.slice(0,3)},getHwb:c,getAlpha:function(t){var e=d(t);if(e)return e[3];if(e=h(t))return e[3];if(e=c(t))return e[3]},hexString:function(t,e){e=void 0!==e&&3===t.length?e:t[3];return"#"+v(t[0])+v(t[1])+v(t[2])+(e>=0&&e<1?v(Math.round(255*e)):"")},rgbString:function(t,e){if(e<1||t[3]&&t[3]<1)return f(t,e);return"rgb("+t[0]+", "+t[1]+", "+t[2]+")"},rgbaString:f,percentString:function(t,e){if(e<1||t[3]&&t[3]<1)return g(t,e);var n=Math.round(t[0]/255*100),i=Math.round(t[1]/255*100),a=Math.round(t[2]/255*100);return"rgb("+n+"%, "+i+"%, "+a+"%)"},percentaString:g,hslString:function(t,e){if(e<1||t[3]&&t[3]<1)return p(t,e);return"hsl("+t[0]+", "+t[1]+"%, "+t[2]+"%)"},hslaString:p,hwbString:function(t,e){void 0===e&&(e=void 0!==t[3]?t[3]:1);return"hwb("+t[0]+", "+t[1]+"%, "+t[2]+"%"+(void 0!==e&&1!==e?", "+e:"")+")"},keyword:function(t){return b[t.slice(0,3)]}};function d(t){if(t){var e=[0,0,0],n=1,i=t.match(/^#([a-fA-F0-9]{3,4})$/i),a="";if(i){a=(i=i[1])[3];for(var r=0;rn?(e+.05)/(n+.05):(n+.05)/(e+.05)},level:function(t){var e=this.contrast(t);return e>=7.1?"AAA":e>=4.5?"AA":""},dark:function(){var t=this.values.rgb;return(299*t[0]+587*t[1]+114*t[2])/1e3<128},light:function(){return!this.dark()},negate:function(){for(var t=[],e=0;e<3;e++)t[e]=255-this.values.rgb[e];return this.setValues("rgb",t),this},lighten:function(t){var e=this.values.hsl;return e[2]+=e[2]*t,this.setValues("hsl",e),this},darken:function(t){var e=this.values.hsl;return e[2]-=e[2]*t,this.setValues("hsl",e),this},saturate:function(t){var e=this.values.hsl;return e[1]+=e[1]*t,this.setValues("hsl",e),this},desaturate:function(t){var e=this.values.hsl;return e[1]-=e[1]*t,this.setValues("hsl",e),this},whiten:function(t){var e=this.values.hwb;return e[1]+=e[1]*t,this.setValues("hwb",e),this},blacken:function(t){var e=this.values.hwb;return e[2]+=e[2]*t,this.setValues("hwb",e),this},greyscale:function(){var t=this.values.rgb,e=.3*t[0]+.59*t[1]+.11*t[2];return this.setValues("rgb",[e,e,e]),this},clearer:function(t){var e=this.values.alpha;return this.setValues("alpha",e-e*t),this},opaquer:function(t){var e=this.values.alpha;return this.setValues("alpha",e+e*t),this},rotate:function(t){var e=this.values.hsl,n=(e[0]+t)%360;return e[0]=n<0?360+n:n,this.setValues("hsl",e),this},mix:function(t,e){var n=t,i=void 0===e?.5:e,a=2*i-1,r=this.alpha()-n.alpha(),o=((a*r==-1?a:(a+r)/(1+a*r))+1)/2,s=1-o;return this.rgb(o*this.red()+s*n.red(),o*this.green()+s*n.green(),o*this.blue()+s*n.blue()).alpha(this.alpha()*i+n.alpha()*(1-i))},toJSON:function(){return this.rgb()},clone:function(){var t,e,n=new y,i=this.values,a=n.values;for(var r in i)i.hasOwnProperty(r)&&(t=i[r],"[object Array]"===(e={}.toString.call(t))?a[r]=t.slice(0):"[object Number]"===e?a[r]=t:console.error("unexpected color value:",t));return n}},y.prototype.spaces={rgb:["red","green","blue"],hsl:["hue","saturation","lightness"],hsv:["hue","saturation","value"],hwb:["hue","whiteness","blackness"],cmyk:["cyan","magenta","yellow","black"]},y.prototype.maxes={rgb:[255,255,255],hsl:[360,100,100],hsv:[360,100,100],hwb:[360,100,100],cmyk:[100,100,100,100]},y.prototype.getValues=function(t){for(var e=this.values,n={},i=0;i=0;a--)e.call(n,t[a],a);else for(a=0;a=1?t:-(Math.sqrt(1-t*t)-1)},easeOutCirc:function(t){return Math.sqrt(1-(t-=1)*t)},easeInOutCirc:function(t){return(t/=.5)<1?-.5*(Math.sqrt(1-t*t)-1):.5*(Math.sqrt(1-(t-=2)*t)+1)},easeInElastic:function(t){var e=1.70158,n=0,i=1;return 0===t?0:1===t?1:(n||(n=.3),i<1?(i=1,e=n/4):e=n/(2*Math.PI)*Math.asin(1/i),-i*Math.pow(2,10*(t-=1))*Math.sin((t-e)*(2*Math.PI)/n))},easeOutElastic:function(t){var e=1.70158,n=0,i=1;return 0===t?0:1===t?1:(n||(n=.3),i<1?(i=1,e=n/4):e=n/(2*Math.PI)*Math.asin(1/i),i*Math.pow(2,-10*t)*Math.sin((t-e)*(2*Math.PI)/n)+1)},easeInOutElastic:function(t){var e=1.70158,n=0,i=1;return 0===t?0:2==(t/=.5)?1:(n||(n=.45),i<1?(i=1,e=n/4):e=n/(2*Math.PI)*Math.asin(1/i),t<1?i*Math.pow(2,10*(t-=1))*Math.sin((t-e)*(2*Math.PI)/n)*-.5:i*Math.pow(2,-10*(t-=1))*Math.sin((t-e)*(2*Math.PI)/n)*.5+1)},easeInBack:function(t){var e=1.70158;return t*t*((e+1)*t-e)},easeOutBack:function(t){var e=1.70158;return(t-=1)*t*((e+1)*t+e)+1},easeInOutBack:function(t){var e=1.70158;return(t/=.5)<1?t*t*((1+(e*=1.525))*t-e)*.5:.5*((t-=2)*t*((1+(e*=1.525))*t+e)+2)},easeInBounce:function(t){return 1-S.easeOutBounce(1-t)},easeOutBounce:function(t){return t<1/2.75?7.5625*t*t:t<2/2.75?7.5625*(t-=1.5/2.75)*t+.75:t<2.5/2.75?7.5625*(t-=2.25/2.75)*t+.9375:7.5625*(t-=2.625/2.75)*t+.984375},easeInOutBounce:function(t){return t<.5?.5*S.easeInBounce(2*t):.5*S.easeOutBounce(2*t-1)+.5}},C={effects:S};M.easingEffects=S;var P=Math.PI,A=P/180,D=2*P,T=P/2,I=P/4,F=2*P/3,L={clear:function(t){t.ctx.clearRect(0,0,t.width,t.height)},roundedRect:function(t,e,n,i,a,r){if(r){var o=Math.min(r,a/2,i/2),s=e+o,l=n+o,u=e+i-o,d=n+a-o;t.moveTo(e,l),se.left-1e-6&&t.xe.top-1e-6&&t.y0&&this.requestAnimationFrame()},advance:function(){for(var t,e,n,i,a=this.animations,r=0;r=n?(V.callback(t.onAnimationComplete,[t],e),e.animating=!1,a.splice(r,1)):++r}},J=V.options.resolve,Q=["push","pop","shift","splice","unshift"];function tt(t,e){var n=t._chartjs;if(n){var i=n.listeners,a=i.indexOf(e);-1!==a&&i.splice(a,1),i.length>0||(Q.forEach((function(e){delete t[e]})),delete t._chartjs)}}var et=function(t,e){this.initialize(t,e)};V.extend(et.prototype,{datasetElementType:null,dataElementType:null,_datasetElementOptions:["backgroundColor","borderCapStyle","borderColor","borderDash","borderDashOffset","borderJoinStyle","borderWidth"],_dataElementOptions:["backgroundColor","borderColor","borderWidth","pointStyle"],initialize:function(t,e){var n=this;n.chart=t,n.index=e,n.linkScales(),n.addElements(),n._type=n.getMeta().type},updateIndex:function(t){this.index=t},linkScales:function(){var t=this.getMeta(),e=this.chart,n=e.scales,i=this.getDataset(),a=e.options.scales;null!==t.xAxisID&&t.xAxisID in n&&!i.xAxisID||(t.xAxisID=i.xAxisID||a.xAxes[0].id),null!==t.yAxisID&&t.yAxisID in n&&!i.yAxisID||(t.yAxisID=i.yAxisID||a.yAxes[0].id)},getDataset:function(){return this.chart.data.datasets[this.index]},getMeta:function(){return this.chart.getDatasetMeta(this.index)},getScaleForId:function(t){return this.chart.scales[t]},_getValueScaleId:function(){return this.getMeta().yAxisID},_getIndexScaleId:function(){return this.getMeta().xAxisID},_getValueScale:function(){return this.getScaleForId(this._getValueScaleId())},_getIndexScale:function(){return this.getScaleForId(this._getIndexScaleId())},reset:function(){this._update(!0)},destroy:function(){this._data&&tt(this._data,this)},createMetaDataset:function(){var t=this.datasetElementType;return t&&new t({_chart:this.chart,_datasetIndex:this.index})},createMetaData:function(t){var e=this.dataElementType;return e&&new e({_chart:this.chart,_datasetIndex:this.index,_index:t})},addElements:function(){var t,e,n=this.getMeta(),i=this.getDataset().data||[],a=n.data;for(t=0,e=i.length;tn&&this.insertElements(n,i-n)},insertElements:function(t,e){for(var n=0;na?(r=a/e.innerRadius,t.arc(o,s,e.innerRadius-a,i+r,n-r,!0)):t.arc(o,s,a,i+Math.PI/2,n-Math.PI/2),t.closePath(),t.clip()}function rt(t,e,n){var i="inner"===e.borderAlign;i?(t.lineWidth=2*e.borderWidth,t.lineJoin="round"):(t.lineWidth=e.borderWidth,t.lineJoin="bevel"),n.fullCircles&&function(t,e,n,i){var a,r=n.endAngle;for(i&&(n.endAngle=n.startAngle+it,at(t,n),n.endAngle=r,n.endAngle===n.startAngle&&n.fullCircles&&(n.endAngle+=it,n.fullCircles--)),t.beginPath(),t.arc(n.x,n.y,n.innerRadius,n.startAngle+it,n.startAngle,!0),a=0;as;)a-=it;for(;a=o&&a<=s,u=r>=n.innerRadius&&r<=n.outerRadius;return l&&u}return!1},getCenterPoint:function(){var t=this._view,e=(t.startAngle+t.endAngle)/2,n=(t.innerRadius+t.outerRadius)/2;return{x:t.x+Math.cos(e)*n,y:t.y+Math.sin(e)*n}},getArea:function(){var t=this._view;return Math.PI*((t.endAngle-t.startAngle)/(2*Math.PI))*(Math.pow(t.outerRadius,2)-Math.pow(t.innerRadius,2))},tooltipPosition:function(){var t=this._view,e=t.startAngle+(t.endAngle-t.startAngle)/2,n=(t.outerRadius-t.innerRadius)/2+t.innerRadius;return{x:t.x+Math.cos(e)*n,y:t.y+Math.sin(e)*n}},draw:function(){var t,e=this._chart.ctx,n=this._view,i="inner"===n.borderAlign?.33:0,a={x:n.x,y:n.y,innerRadius:n.innerRadius,outerRadius:Math.max(n.outerRadius-i,0),pixelMargin:i,startAngle:n.startAngle,endAngle:n.endAngle,fullCircles:Math.floor(n.circumference/it)};if(e.save(),e.fillStyle=n.backgroundColor,e.strokeStyle=n.borderColor,a.fullCircles){for(a.endAngle=a.startAngle+it,e.beginPath(),e.arc(a.x,a.y,a.outerRadius,a.startAngle,a.endAngle),e.arc(a.x,a.y,a.innerRadius,a.endAngle,a.startAngle,!0),e.closePath(),t=0;tt.x&&(e=vt(e,"left","right")):t.basen?n:i,r:l.right||a<0?0:a>e?e:a,b:l.bottom||r<0?0:r>n?n:r,l:l.left||o<0?0:o>e?e:o}}function xt(t,e,n){var i=null===e,a=null===n,r=!(!t||i&&a)&&mt(t);return r&&(i||e>=r.left&&e<=r.right)&&(a||n>=r.top&&n<=r.bottom)}z._set("global",{elements:{rectangle:{backgroundColor:gt,borderColor:gt,borderSkipped:"bottom",borderWidth:0}}});var yt=X.extend({_type:"rectangle",draw:function(){var t=this._chart.ctx,e=this._view,n=function(t){var e=mt(t),n=e.right-e.left,i=e.bottom-e.top,a=bt(t,n/2,i/2);return{outer:{x:e.left,y:e.top,w:n,h:i},inner:{x:e.left+a.l,y:e.top+a.t,w:n-a.l-a.r,h:i-a.t-a.b}}}(e),i=n.outer,a=n.inner;t.fillStyle=e.backgroundColor,t.fillRect(i.x,i.y,i.w,i.h),i.w===a.w&&i.h===a.h||(t.save(),t.beginPath(),t.rect(i.x,i.y,i.w,i.h),t.clip(),t.fillStyle=e.borderColor,t.rect(a.x,a.y,a.w,a.h),t.fill("evenodd"),t.restore())},height:function(){var t=this._view;return t.base-t.y},inRange:function(t,e){return xt(this._view,t,e)},inLabelRange:function(t,e){var n=this._view;return pt(n)?xt(n,t,null):xt(n,null,e)},inXRange:function(t){return xt(this._view,t,null)},inYRange:function(t){return xt(this._view,null,t)},getCenterPoint:function(){var t,e,n=this._view;return pt(n)?(t=n.x,e=(n.y+n.base)/2):(t=(n.x+n.base)/2,e=n.y),{x:t,y:e}},getArea:function(){var t=this._view;return pt(t)?t.width*Math.abs(t.y-t.base):t.height*Math.abs(t.x-t.base)},tooltipPosition:function(){var t=this._view;return{x:t.x,y:t.y}}}),_t={},kt=ot,wt=ut,Mt=ft,St=yt;_t.Arc=kt,_t.Line=wt,_t.Point=Mt,_t.Rectangle=St;var Ct=V._deprecated,Pt=V.valueOrDefault;function At(t,e,n){var i,a,r=n.barThickness,o=e.stackCount,s=e.pixels[t],l=V.isNullOrUndef(r)?function(t,e){var n,i,a,r,o=t._length;for(a=1,r=e.length;a0?Math.min(o,Math.abs(i-n)):o,n=i;return o}(e.scale,e.pixels):-1;return V.isNullOrUndef(r)?(i=l*n.categoryPercentage,a=n.barPercentage):(i=r*o,a=1),{chunk:i/o,ratio:a,start:s-i/2}}z._set("bar",{hover:{mode:"label"},scales:{xAxes:[{type:"category",offset:!0,gridLines:{offsetGridLines:!0}}],yAxes:[{type:"linear"}]}}),z._set("global",{datasets:{bar:{categoryPercentage:.8,barPercentage:.9}}});var Dt=nt.extend({dataElementType:_t.Rectangle,_dataElementOptions:["backgroundColor","borderColor","borderSkipped","borderWidth","barPercentage","barThickness","categoryPercentage","maxBarThickness","minBarLength"],initialize:function(){var t,e,n=this;nt.prototype.initialize.apply(n,arguments),(t=n.getMeta()).stack=n.getDataset().stack,t.bar=!0,e=n._getIndexScale().options,Ct("bar chart",e.barPercentage,"scales.[x/y]Axes.barPercentage","dataset.barPercentage"),Ct("bar chart",e.barThickness,"scales.[x/y]Axes.barThickness","dataset.barThickness"),Ct("bar chart",e.categoryPercentage,"scales.[x/y]Axes.categoryPercentage","dataset.categoryPercentage"),Ct("bar chart",n._getValueScale().options.minBarLength,"scales.[x/y]Axes.minBarLength","dataset.minBarLength"),Ct("bar chart",e.maxBarThickness,"scales.[x/y]Axes.maxBarThickness","dataset.maxBarThickness")},update:function(t){var e,n,i=this.getMeta().data;for(this._ruler=this.getRuler(),e=0,n=i.length;e=0&&p.min>=0?p.min:p.max,y=void 0===p.start?p.end:p.max>=0&&p.min>=0?p.max-p.min:p.min-p.max,_=g.length;if(v||void 0===v&&void 0!==b)for(i=0;i<_&&(a=g[i]).index!==t;++i)a.stack===b&&(r=void 0===(u=h._parseValue(f[a.index].data[e])).start?u.end:u.min>=0&&u.max>=0?u.max:u.min,(p.min<0&&r<0||p.max>=0&&r>0)&&(x+=r));return o=h.getPixelForValue(x),l=(s=h.getPixelForValue(x+y))-o,void 0!==m&&Math.abs(l)=0&&!c||y<0&&c?o-m:o+m),{size:l,base:o,head:s,center:s+l/2}},calculateBarIndexPixels:function(t,e,n,i){var a="flex"===i.barThickness?function(t,e,n){var i,a=e.pixels,r=a[t],o=t>0?a[t-1]:null,s=t=Ot?-Rt:b<-Ot?Rt:0)+m,y=Math.cos(b),_=Math.sin(b),k=Math.cos(x),w=Math.sin(x),M=b<=0&&x>=0||x>=Rt,S=b<=zt&&x>=zt||x>=Rt+zt,C=b<=-zt&&x>=-zt||x>=Ot+zt,P=b===-Ot||x>=Ot?-1:Math.min(y,y*p,k,k*p),A=C?-1:Math.min(_,_*p,w,w*p),D=M?1:Math.max(y,y*p,k,k*p),T=S?1:Math.max(_,_*p,w,w*p);u=(D-P)/2,d=(T-A)/2,h=-(D+P)/2,c=-(T+A)/2}for(i=0,a=g.length;i0&&!isNaN(t)?Rt*(Math.abs(t)/e):0},getMaxBorderWidth:function(t){var e,n,i,a,r,o,s,l,u=0,d=this.chart;if(!t)for(e=0,n=d.data.datasets.length;e(u=s>u?s:u)?l:u);return u},setHoverStyle:function(t){var e=t._model,n=t._options,i=V.getHoverColor;t.$previousStyle={backgroundColor:e.backgroundColor,borderColor:e.borderColor,borderWidth:e.borderWidth},e.backgroundColor=Lt(n.hoverBackgroundColor,i(n.backgroundColor)),e.borderColor=Lt(n.hoverBorderColor,i(n.borderColor)),e.borderWidth=Lt(n.hoverBorderWidth,n.borderWidth)},_getRingWeightOffset:function(t){for(var e=0,n=0;n0&&Vt(l[t-1]._model,s)&&(n.controlPointPreviousX=u(n.controlPointPreviousX,s.left,s.right),n.controlPointPreviousY=u(n.controlPointPreviousY,s.top,s.bottom)),t0&&(r=t.getDatasetMeta(r[0]._datasetIndex).data),r},"x-axis":function(t,e){return ie(t,e,{intersect:!1})},point:function(t,e){return te(t,Jt(e,t))},nearest:function(t,e,n){var i=Jt(e,t);n.axis=n.axis||"xy";var a=ne(n.axis);return ee(t,i,n.intersect,a)},x:function(t,e,n){var i=Jt(e,t),a=[],r=!1;return Qt(t,(function(t){t.inXRange(i.x)&&a.push(t),t.inRange(i.x,i.y)&&(r=!0)})),n.intersect&&!r&&(a=[]),a},y:function(t,e,n){var i=Jt(e,t),a=[],r=!1;return Qt(t,(function(t){t.inYRange(i.y)&&a.push(t),t.inRange(i.x,i.y)&&(r=!0)})),n.intersect&&!r&&(a=[]),a}}},re=V.extend;function oe(t,e){return V.where(t,(function(t){return t.pos===e}))}function se(t,e){return t.sort((function(t,n){var i=e?n:t,a=e?t:n;return i.weight===a.weight?i.index-a.index:i.weight-a.weight}))}function le(t,e,n,i){return Math.max(t[n],e[n])+Math.max(t[i],e[i])}function ue(t,e,n){var i,a,r=n.box,o=t.maxPadding;if(n.size&&(t[n.pos]-=n.size),n.size=n.horizontal?r.height:r.width,t[n.pos]+=n.size,r.getPadding){var s=r.getPadding();o.top=Math.max(o.top,s.top),o.left=Math.max(o.left,s.left),o.bottom=Math.max(o.bottom,s.bottom),o.right=Math.max(o.right,s.right)}if(i=e.outerWidth-le(o,t,"left","right"),a=e.outerHeight-le(o,t,"top","bottom"),i!==t.w||a!==t.h)return t.w=i,t.h=a,n.horizontal?i!==t.w:a!==t.h}function de(t,e){var n=e.maxPadding;function i(t){var i={left:0,top:0,right:0,bottom:0};return t.forEach((function(t){i[t]=Math.max(e[t],n[t])})),i}return i(t?["left","right"]:["top","bottom"])}function he(t,e,n){var i,a,r,o,s,l,u=[];for(i=0,a=t.length;idiv{position:absolute;width:1000000px;height:1000000px;left:0;top:0}.chartjs-size-monitor-shrink>div{position:absolute;width:200%;height:200%;left:0;top:0}"}))&&fe.default||fe,me="$chartjs",ve="chartjs-size-monitor",be="chartjs-render-monitor",xe="chartjs-render-animation",ye=["animationstart","webkitAnimationStart"],_e={touchstart:"mousedown",touchmove:"mousemove",touchend:"mouseup",pointerenter:"mouseenter",pointerdown:"mousedown",pointermove:"mousemove",pointerup:"mouseup",pointerleave:"mouseout",pointerout:"mouseout"};function ke(t,e){var n=V.getStyle(t,e),i=n&&n.match(/^(\d+)(\.\d+)?px$/);return i?Number(i[1]):void 0}var we=!!function(){var t=!1;try{var e=Object.defineProperty({},"passive",{get:function(){t=!0}});window.addEventListener("e",null,e)}catch(t){}return t}()&&{passive:!0};function Me(t,e,n){t.addEventListener(e,n,we)}function Se(t,e,n){t.removeEventListener(e,n,we)}function Ce(t,e,n,i,a){return{type:t,chart:e,native:a||null,x:void 0!==n?n:null,y:void 0!==i?i:null}}function Pe(t){var e=document.createElement("div");return e.className=t||"",e}function Ae(t,e,n){var i,a,r,o,s=t[me]||(t[me]={}),l=s.resizer=function(t){var e=Pe(ve),n=Pe(ve+"-expand"),i=Pe(ve+"-shrink");n.appendChild(Pe()),i.appendChild(Pe()),e.appendChild(n),e.appendChild(i),e._reset=function(){n.scrollLeft=1e6,n.scrollTop=1e6,i.scrollLeft=1e6,i.scrollTop=1e6};var a=function(){e._reset(),t()};return Me(n,"scroll",a.bind(n,"expand")),Me(i,"scroll",a.bind(i,"shrink")),e}((i=function(){if(s.resizer){var i=n.options.maintainAspectRatio&&t.parentNode,a=i?i.clientWidth:0;e(Ce("resize",n)),i&&i.clientWidth0){var r=t[0];r.label?n=r.label:r.xLabel?n=r.xLabel:a>0&&r.index-1?t.split("\n"):t}function We(t){var e=z.global;return{xPadding:t.xPadding,yPadding:t.yPadding,xAlign:t.xAlign,yAlign:t.yAlign,rtl:t.rtl,textDirection:t.textDirection,bodyFontColor:t.bodyFontColor,_bodyFontFamily:Re(t.bodyFontFamily,e.defaultFontFamily),_bodyFontStyle:Re(t.bodyFontStyle,e.defaultFontStyle),_bodyAlign:t.bodyAlign,bodyFontSize:Re(t.bodyFontSize,e.defaultFontSize),bodySpacing:t.bodySpacing,titleFontColor:t.titleFontColor,_titleFontFamily:Re(t.titleFontFamily,e.defaultFontFamily),_titleFontStyle:Re(t.titleFontStyle,e.defaultFontStyle),titleFontSize:Re(t.titleFontSize,e.defaultFontSize),_titleAlign:t.titleAlign,titleSpacing:t.titleSpacing,titleMarginBottom:t.titleMarginBottom,footerFontColor:t.footerFontColor,_footerFontFamily:Re(t.footerFontFamily,e.defaultFontFamily),_footerFontStyle:Re(t.footerFontStyle,e.defaultFontStyle),footerFontSize:Re(t.footerFontSize,e.defaultFontSize),_footerAlign:t.footerAlign,footerSpacing:t.footerSpacing,footerMarginTop:t.footerMarginTop,caretSize:t.caretSize,cornerRadius:t.cornerRadius,backgroundColor:t.backgroundColor,opacity:0,legendColorBackground:t.multiKeyBackground,displayColors:t.displayColors,borderColor:t.borderColor,borderWidth:t.borderWidth}}function Ve(t,e){return"center"===e?t.x+t.width/2:"right"===e?t.x+t.width-t.xPadding:t.x+t.xPadding}function He(t){return Be([],Ee(t))}var je=X.extend({initialize:function(){this._model=We(this._options),this._lastActive=[]},getTitle:function(){var t=this,e=t._options,n=e.callbacks,i=n.beforeTitle.apply(t,arguments),a=n.title.apply(t,arguments),r=n.afterTitle.apply(t,arguments),o=[];return o=Be(o,Ee(i)),o=Be(o,Ee(a)),o=Be(o,Ee(r))},getBeforeBody:function(){return He(this._options.callbacks.beforeBody.apply(this,arguments))},getBody:function(t,e){var n=this,i=n._options.callbacks,a=[];return V.each(t,(function(t){var r={before:[],lines:[],after:[]};Be(r.before,Ee(i.beforeLabel.call(n,t,e))),Be(r.lines,i.label.call(n,t,e)),Be(r.after,Ee(i.afterLabel.call(n,t,e))),a.push(r)})),a},getAfterBody:function(){return He(this._options.callbacks.afterBody.apply(this,arguments))},getFooter:function(){var t=this,e=t._options.callbacks,n=e.beforeFooter.apply(t,arguments),i=e.footer.apply(t,arguments),a=e.afterFooter.apply(t,arguments),r=[];return r=Be(r,Ee(n)),r=Be(r,Ee(i)),r=Be(r,Ee(a))},update:function(t){var e,n,i,a,r,o,s,l,u,d,h=this,c=h._options,f=h._model,g=h._model=We(c),p=h._active,m=h._data,v={xAlign:f.xAlign,yAlign:f.yAlign},b={x:f.x,y:f.y},x={width:f.width,height:f.height},y={x:f.caretX,y:f.caretY};if(p.length){g.opacity=1;var _=[],k=[];y=Ne[c.position].call(h,p,h._eventPosition);var w=[];for(e=0,n=p.length;ei.width&&(a=i.width-e.width),a<0&&(a=0)),"top"===d?r+=h:r-="bottom"===d?e.height+h:e.height/2,"center"===d?"left"===u?a+=h:"right"===u&&(a-=h):"left"===u?a-=c:"right"===u&&(a+=c),{x:a,y:r}}(g,x,v=function(t,e){var n,i,a,r,o,s=t._model,l=t._chart,u=t._chart.chartArea,d="center",h="center";s.yl.height-e.height&&(h="bottom");var c=(u.left+u.right)/2,f=(u.top+u.bottom)/2;"center"===h?(n=function(t){return t<=c},i=function(t){return t>c}):(n=function(t){return t<=e.width/2},i=function(t){return t>=l.width-e.width/2}),a=function(t){return t+e.width+s.caretSize+s.caretPadding>l.width},r=function(t){return t-e.width-s.caretSize-s.caretPadding<0},o=function(t){return t<=f?"top":"bottom"},n(s.x)?(d="left",a(s.x)&&(d="center",h=o(s.y))):i(s.x)&&(d="right",r(s.x)&&(d="center",h=o(s.y)));var g=t._options;return{xAlign:g.xAlign?g.xAlign:d,yAlign:g.yAlign?g.yAlign:h}}(this,x),h._chart)}else g.opacity=0;return g.xAlign=v.xAlign,g.yAlign=v.yAlign,g.x=b.x,g.y=b.y,g.width=x.width,g.height=x.height,g.caretX=y.x,g.caretY=y.y,h._model=g,t&&c.custom&&c.custom.call(h,g),h},drawCaret:function(t,e){var n=this._chart.ctx,i=this._view,a=this.getCaretPosition(t,e,i);n.lineTo(a.x1,a.y1),n.lineTo(a.x2,a.y2),n.lineTo(a.x3,a.y3)},getCaretPosition:function(t,e,n){var i,a,r,o,s,l,u=n.caretSize,d=n.cornerRadius,h=n.xAlign,c=n.yAlign,f=t.x,g=t.y,p=e.width,m=e.height;if("center"===c)s=g+m/2,"left"===h?(a=(i=f)-u,r=i,o=s+u,l=s-u):(a=(i=f+p)+u,r=i,o=s-u,l=s+u);else if("left"===h?(i=(a=f+d+u)-u,r=a+u):"right"===h?(i=(a=f+p-d-u)-u,r=a+u):(i=(a=n.caretX)-u,r=a+u),"top"===c)s=(o=g)-u,l=o;else{s=(o=g+m)+u,l=o;var v=r;r=i,i=v}return{x1:i,x2:a,x3:r,y1:o,y2:s,y3:l}},drawTitle:function(t,e,n){var i,a,r,o=e.title,s=o.length;if(s){var l=ze(e.rtl,e.x,e.width);for(t.x=Ve(e,e._titleAlign),n.textAlign=l.textAlign(e._titleAlign),n.textBaseline="middle",i=e.titleFontSize,a=e.titleSpacing,n.fillStyle=e.titleFontColor,n.font=V.fontString(i,e._titleFontStyle,e._titleFontFamily),r=0;r0&&n.stroke()},draw:function(){var t=this._chart.ctx,e=this._view;if(0!==e.opacity){var n={width:e.width,height:e.height},i={x:e.x,y:e.y},a=Math.abs(e.opacity<.001)?0:e.opacity,r=e.title.length||e.beforeBody.length||e.body.length||e.afterBody.length||e.footer.length;this._options.enabled&&r&&(t.save(),t.globalAlpha=a,this.drawBackground(i,e,t,n),i.y+=e.yPadding,V.rtl.overrideTextDirection(t,e.textDirection),this.drawTitle(i,e,t),this.drawBody(i,e,t),this.drawFooter(i,e,t),V.rtl.restoreTextDirection(t,e.textDirection),t.restore())}},handleEvent:function(t){var e,n=this,i=n._options;return n._lastActive=n._lastActive||[],"mouseout"===t.type?n._active=[]:(n._active=n._chart.getElementsAtEventForMode(t,i.mode,i),i.reverse&&n._active.reverse()),(e=!V.arrayEquals(n._active,n._lastActive))&&(n._lastActive=n._active,(i.enabled||i.custom)&&(n._eventPosition={x:t.x,y:t.y},n.update(!0),n.pivot())),e}}),qe=Ne,Ue=je;Ue.positioners=qe;var Ye=V.valueOrDefault;function Ge(){return V.merge({},[].slice.call(arguments),{merger:function(t,e,n,i){if("xAxes"===t||"yAxes"===t){var a,r,o,s=n[t].length;for(e[t]||(e[t]=[]),a=0;a=e[t].length&&e[t].push({}),!e[t][a].type||o.type&&o.type!==e[t][a].type?V.merge(e[t][a],[Oe.getScaleDefaults(r),o]):V.merge(e[t][a],o)}else V._merger(t,e,n,i)}})}function Xe(){return V.merge({},[].slice.call(arguments),{merger:function(t,e,n,i){var a=e[t]||{},r=n[t];"scales"===t?e[t]=Ge(a,r):"scale"===t?e[t]=V.merge(a,[Oe.getScaleDefaults(r.type),r]):V._merger(t,e,n,i)}})}function Ke(t){var e=t.options;V.each(t.scales,(function(e){ge.removeBox(t,e)})),e=Xe(z.global,z[t.config.type],e),t.options=t.config.options=e,t.ensureScalesHaveIDs(),t.buildOrUpdateScales(),t.tooltip._options=e.tooltips,t.tooltip.initialize()}function Ze(t,e,n){var i,a=function(t){return t.id===i};do{i=e+n++}while(V.findIndex(t,a)>=0);return i}function $e(t){return"top"===t||"bottom"===t}function Je(t,e){return function(n,i){return n[t]===i[t]?n[e]-i[e]:n[t]-i[t]}}z._set("global",{elements:{},events:["mousemove","mouseout","click","touchstart","touchmove"],hover:{onHover:null,mode:"nearest",intersect:!0,animationDuration:400},onClick:null,maintainAspectRatio:!0,responsive:!0,responsiveAnimationDuration:0});var Qe=function(t,e){return this.construct(t,e),this};V.extend(Qe.prototype,{construct:function(t,e){var n=this;e=function(t){var e=(t=t||{}).data=t.data||{};return e.datasets=e.datasets||[],e.labels=e.labels||[],t.options=Xe(z.global,z[t.type],t.options||{}),t}(e);var i=Fe.acquireContext(t,e),a=i&&i.canvas,r=a&&a.height,o=a&&a.width;n.id=V.uid(),n.ctx=i,n.canvas=a,n.config=e,n.width=o,n.height=r,n.aspectRatio=r?o/r:null,n.options=e.options,n._bufferedRender=!1,n._layers=[],n.chart=n,n.controller=n,Qe.instances[n.id]=n,Object.defineProperty(n,"data",{get:function(){return n.config.data},set:function(t){n.config.data=t}}),i&&a?(n.initialize(),n.update()):console.error("Failed to create chart: can't acquire context from the given item")},initialize:function(){var t=this;return Le.notify(t,"beforeInit"),V.retinaScale(t,t.options.devicePixelRatio),t.bindEvents(),t.options.responsive&&t.resize(!0),t.initToolTip(),Le.notify(t,"afterInit"),t},clear:function(){return V.canvas.clear(this),this},stop:function(){return $.cancelAnimation(this),this},resize:function(t){var e=this,n=e.options,i=e.canvas,a=n.maintainAspectRatio&&e.aspectRatio||null,r=Math.max(0,Math.floor(V.getMaximumWidth(i))),o=Math.max(0,Math.floor(a?r/a:V.getMaximumHeight(i)));if((e.width!==r||e.height!==o)&&(i.width=e.width=r,i.height=e.height=o,i.style.width=r+"px",i.style.height=o+"px",V.retinaScale(e,n.devicePixelRatio),!t)){var s={width:r,height:o};Le.notify(e,"resize",[s]),n.onResize&&n.onResize(e,s),e.stop(),e.update({duration:n.responsiveAnimationDuration})}},ensureScalesHaveIDs:function(){var t=this.options,e=t.scales||{},n=t.scale;V.each(e.xAxes,(function(t,n){t.id||(t.id=Ze(e.xAxes,"x-axis-",n))})),V.each(e.yAxes,(function(t,n){t.id||(t.id=Ze(e.yAxes,"y-axis-",n))})),n&&(n.id=n.id||"scale")},buildOrUpdateScales:function(){var t=this,e=t.options,n=t.scales||{},i=[],a=Object.keys(n).reduce((function(t,e){return t[e]=!1,t}),{});e.scales&&(i=i.concat((e.scales.xAxes||[]).map((function(t){return{options:t,dtype:"category",dposition:"bottom"}})),(e.scales.yAxes||[]).map((function(t){return{options:t,dtype:"linear",dposition:"left"}})))),e.scale&&i.push({options:e.scale,dtype:"radialLinear",isDefault:!0,dposition:"chartArea"}),V.each(i,(function(e){var i=e.options,r=i.id,o=Ye(i.type,e.dtype);$e(i.position)!==$e(e.dposition)&&(i.position=e.dposition),a[r]=!0;var s=null;if(r in n&&n[r].type===o)(s=n[r]).options=i,s.ctx=t.ctx,s.chart=t;else{var l=Oe.getScaleConstructor(o);if(!l)return;s=new l({id:r,type:o,options:i,ctx:t.ctx,chart:t}),n[s.id]=s}s.mergeTicksOptions(),e.isDefault&&(t.scale=s)})),V.each(a,(function(t,e){t||delete n[e]})),t.scales=n,Oe.addScalesToLayout(this)},buildOrUpdateControllers:function(){var t,e,n=this,i=[],a=n.data.datasets;for(t=0,e=a.length;t=0;--n)this.drawDataset(e[n],t);Le.notify(this,"afterDatasetsDraw",[t])}},drawDataset:function(t,e){var n={meta:t,index:t.index,easingValue:e};!1!==Le.notify(this,"beforeDatasetDraw",[n])&&(t.controller.draw(e),Le.notify(this,"afterDatasetDraw",[n]))},_drawTooltip:function(t){var e=this.tooltip,n={tooltip:e,easingValue:t};!1!==Le.notify(this,"beforeTooltipDraw",[n])&&(e.draw(),Le.notify(this,"afterTooltipDraw",[n]))},getElementAtEvent:function(t){return ae.modes.single(this,t)},getElementsAtEvent:function(t){return ae.modes.label(this,t,{intersect:!0})},getElementsAtXAxis:function(t){return ae.modes["x-axis"](this,t,{intersect:!0})},getElementsAtEventForMode:function(t,e,n){var i=ae.modes[e];return"function"==typeof i?i(this,t,n):[]},getDatasetAtEvent:function(t){return ae.modes.dataset(this,t,{intersect:!0})},getDatasetMeta:function(t){var e=this.data.datasets[t];e._meta||(e._meta={});var n=e._meta[this.id];return n||(n=e._meta[this.id]={type:null,data:[],dataset:null,controller:null,hidden:null,xAxisID:null,yAxisID:null,order:e.order||0,index:t}),n},getVisibleDatasetCount:function(){for(var t=0,e=0,n=this.data.datasets.length;e3?n[2]-n[1]:n[1]-n[0];Math.abs(i)>1&&t!==Math.floor(t)&&(i=t-Math.floor(t));var a=V.log10(Math.abs(i)),r="";if(0!==t)if(Math.max(Math.abs(n[0]),Math.abs(n[n.length-1]))<1e-4){var o=V.log10(Math.abs(t)),s=Math.floor(o)-Math.floor(a);s=Math.max(Math.min(s,20),0),r=t.toExponential(s)}else{var l=-1*Math.floor(a);l=Math.max(Math.min(l,20),0),r=t.toFixed(l)}else r="0";return r},logarithmic:function(t,e,n){var i=t/Math.pow(10,Math.floor(V.log10(t)));return 0===t?"0":1===i||2===i||5===i||0===e||e===n.length-1?t.toExponential():""}}},on=V.isArray,sn=V.isNullOrUndef,ln=V.valueOrDefault,un=V.valueAtIndexOrDefault;function dn(t,e,n){var i,a=t.getTicks().length,r=Math.min(e,a-1),o=t.getPixelForTick(r),s=t._startPixel,l=t._endPixel;if(!(n&&(i=1===a?Math.max(o-s,l-o):0===e?(t.getPixelForTick(1)-o)/2:(o-t.getPixelForTick(r-1))/2,(o+=rl+1e-6)))return o}function hn(t,e,n,i){var a,r,o,s,l,u,d,h,c,f,g,p,m,v=n.length,b=[],x=[],y=[];for(a=0;ae){for(n=0;n=c||d<=1||!s.isHorizontal()?s.labelRotation=h:(e=(t=s._getLabelSizes()).widest.width,n=t.highest.height-t.highest.offset,i=Math.min(s.maxWidth,s.chart.width-e),e+6>(a=l.offset?s.maxWidth/d:i/(d-1))&&(a=i/(d-(l.offset?.5:1)),r=s.maxHeight-cn(l.gridLines)-u.padding-fn(l.scaleLabel),o=Math.sqrt(e*e+n*n),f=V.toDegrees(Math.min(Math.asin(Math.min((t.highest.height+6)/a,1)),Math.asin(Math.min(r/o,1))-Math.asin(n/o))),f=Math.max(h,Math.min(c,f))),s.labelRotation=f)},afterCalculateTickRotation:function(){V.callback(this.options.afterCalculateTickRotation,[this])},beforeFit:function(){V.callback(this.options.beforeFit,[this])},fit:function(){var t=this,e=t.minSize={width:0,height:0},n=t.chart,i=t.options,a=i.ticks,r=i.scaleLabel,o=i.gridLines,s=t._isVisible(),l="bottom"===i.position,u=t.isHorizontal();if(u?e.width=t.maxWidth:s&&(e.width=cn(o)+fn(r)),u?s&&(e.height=cn(o)+fn(r)):e.height=t.maxHeight,a.display&&s){var d=pn(a),h=t._getLabelSizes(),c=h.first,f=h.last,g=h.widest,p=h.highest,m=.4*d.minor.lineHeight,v=a.padding;if(u){var b=0!==t.labelRotation,x=V.toRadians(t.labelRotation),y=Math.cos(x),_=Math.sin(x),k=_*g.width+y*(p.height-(b?p.offset:0))+(b?0:m);e.height=Math.min(t.maxHeight,e.height+k+v);var w,M,S=t.getPixelForTick(0)-t.left,C=t.right-t.getPixelForTick(t.getTicks().length-1);b?(w=l?y*c.width+_*c.offset:_*(c.height-c.offset),M=l?_*(f.height-f.offset):y*f.width+_*f.offset):(w=c.width/2,M=f.width/2),t.paddingLeft=Math.max((w-S)*t.width/(t.width-S),0)+3,t.paddingRight=Math.max((M-C)*t.width/(t.width-C),0)+3}else{var P=a.mirror?0:g.width+v+m;e.width=Math.min(t.maxWidth,e.width+P),t.paddingTop=c.height/2,t.paddingBottom=f.height/2}}t.handleMargins(),u?(t.width=t._length=n.width-t.margins.left-t.margins.right,t.height=e.height):(t.width=e.width,t.height=t._length=n.height-t.margins.top-t.margins.bottom)},handleMargins:function(){var t=this;t.margins&&(t.margins.left=Math.max(t.paddingLeft,t.margins.left),t.margins.top=Math.max(t.paddingTop,t.margins.top),t.margins.right=Math.max(t.paddingRight,t.margins.right),t.margins.bottom=Math.max(t.paddingBottom,t.margins.bottom))},afterFit:function(){V.callback(this.options.afterFit,[this])},isHorizontal:function(){var t=this.options.position;return"top"===t||"bottom"===t},isFullWidth:function(){return this.options.fullWidth},getRightValue:function(t){if(sn(t))return NaN;if(("number"==typeof t||t instanceof Number)&&!isFinite(t))return NaN;if(t)if(this.isHorizontal()){if(void 0!==t.x)return this.getRightValue(t.x)}else if(void 0!==t.y)return this.getRightValue(t.y);return t},_convertTicksToLabels:function(t){var e,n,i,a=this;for(a.ticks=t.map((function(t){return t.value})),a.beforeTickToLabelConversion(),e=a.convertTicksToLabels(t)||a.ticks,a.afterTickToLabelConversion(),n=0,i=t.length;nn-1?null:this.getPixelForDecimal(t*i+(e?i/2:0))},getPixelForDecimal:function(t){return this._reversePixels&&(t=1-t),this._startPixel+t*this._length},getDecimalForPixel:function(t){var e=(t-this._startPixel)/this._length;return this._reversePixels?1-e:e},getBasePixel:function(){return this.getPixelForValue(this.getBaseValue())},getBaseValue:function(){var t=this.min,e=this.max;return this.beginAtZero?0:t<0&&e<0?e:t>0&&e>0?t:0},_autoSkip:function(t){var e,n,i,a,r=this.options.ticks,o=this._length,s=r.maxTicksLimit||o/this._tickSize()+1,l=r.major.enabled?function(t){var e,n,i=[];for(e=0,n=t.length;es)return function(t,e,n){var i,a,r=0,o=e[0];for(n=Math.ceil(n),i=0;iu)return r;return Math.max(u,1)}(l,t,0,s),u>0){for(e=0,n=u-1;e1?(h-d)/(u-1):null,vn(t,i,V.isNullOrUndef(a)?0:d-a,d),vn(t,i,h,V.isNullOrUndef(a)?t.length:h+a),mn(t)}return vn(t,i),mn(t)},_tickSize:function(){var t=this.options.ticks,e=V.toRadians(this.labelRotation),n=Math.abs(Math.cos(e)),i=Math.abs(Math.sin(e)),a=this._getLabelSizes(),r=t.autoSkipPadding||0,o=a?a.widest.width+r:0,s=a?a.highest.height+r:0;return this.isHorizontal()?s*n>o*i?o/n:s/i:s*i=0&&(o=t),void 0!==r&&(t=n.indexOf(r))>=0&&(s=t),e.minIndex=o,e.maxIndex=s,e.min=n[o],e.max=n[s]},buildTicks:function(){var t=this._getLabels(),e=this.minIndex,n=this.maxIndex;this.ticks=0===e&&n===t.length-1?t:t.slice(e,n+1)},getLabelForIndex:function(t,e){var n=this.chart;return n.getDatasetMeta(e).controller._getValueScaleId()===this.id?this.getRightValue(n.data.datasets[e].data[t]):this._getLabels()[t]},_configure:function(){var t=this,e=t.options.offset,n=t.ticks;xn.prototype._configure.call(t),t.isHorizontal()||(t._reversePixels=!t._reversePixels),n&&(t._startValue=t.minIndex-(e?.5:0),t._valueRange=Math.max(n.length-(e?0:1),1))},getPixelForValue:function(t,e,n){var i,a,r,o=this;return yn(e)||yn(n)||(t=o.chart.data.datasets[n].data[e]),yn(t)||(i=o.isHorizontal()?t.x:t.y),(void 0!==i||void 0!==t&&isNaN(e))&&(a=o._getLabels(),t=V.valueOrDefault(i,t),e=-1!==(r=a.indexOf(t))?r:e,isNaN(e)&&(e=t)),o.getPixelForDecimal((e-o._startValue)/o._valueRange)},getPixelForTick:function(t){var e=this.ticks;return t<0||t>e.length-1?null:this.getPixelForValue(e[t],t+this.minIndex)},getValueForPixel:function(t){var e=Math.round(this._startValue+this.getDecimalForPixel(t)*this._valueRange);return Math.min(Math.max(e,0),this.ticks.length-1)},getBasePixel:function(){return this.bottom}}),kn={position:"bottom"};_n._defaults=kn;var wn=V.noop,Mn=V.isNullOrUndef;var Sn=xn.extend({getRightValue:function(t){return"string"==typeof t?+t:xn.prototype.getRightValue.call(this,t)},handleTickRangeOptions:function(){var t=this,e=t.options.ticks;if(e.beginAtZero){var n=V.sign(t.min),i=V.sign(t.max);n<0&&i<0?t.max=0:n>0&&i>0&&(t.min=0)}var a=void 0!==e.min||void 0!==e.suggestedMin,r=void 0!==e.max||void 0!==e.suggestedMax;void 0!==e.min?t.min=e.min:void 0!==e.suggestedMin&&(null===t.min?t.min=e.suggestedMin:t.min=Math.min(t.min,e.suggestedMin)),void 0!==e.max?t.max=e.max:void 0!==e.suggestedMax&&(null===t.max?t.max=e.suggestedMax:t.max=Math.max(t.max,e.suggestedMax)),a!==r&&t.min>=t.max&&(a?t.max=t.min+1:t.min=t.max-1),t.min===t.max&&(t.max++,e.beginAtZero||t.min--)},getTickLimit:function(){var t,e=this.options.ticks,n=e.stepSize,i=e.maxTicksLimit;return n?t=Math.ceil(this.max/n)-Math.floor(this.min/n)+1:(t=this._computeTickLimit(),i=i||11),i&&(t=Math.min(i,t)),t},_computeTickLimit:function(){return Number.POSITIVE_INFINITY},handleDirectionalChanges:wn,buildTicks:function(){var t=this,e=t.options.ticks,n=t.getTickLimit(),i={maxTicks:n=Math.max(2,n),min:e.min,max:e.max,precision:e.precision,stepSize:V.valueOrDefault(e.fixedStepSize,e.stepSize)},a=t.ticks=function(t,e){var n,i,a,r,o=[],s=t.stepSize,l=s||1,u=t.maxTicks-1,d=t.min,h=t.max,c=t.precision,f=e.min,g=e.max,p=V.niceNum((g-f)/u/l)*l;if(p<1e-14&&Mn(d)&&Mn(h))return[f,g];(r=Math.ceil(g/p)-Math.floor(f/p))>u&&(p=V.niceNum(r*p/u/l)*l),s||Mn(c)?n=Math.pow(10,V._decimalPlaces(p)):(n=Math.pow(10,c),p=Math.ceil(p*n)/n),i=Math.floor(f/p)*p,a=Math.ceil(g/p)*p,s&&(!Mn(d)&&V.almostWhole(d/p,p/1e3)&&(i=d),!Mn(h)&&V.almostWhole(h/p,p/1e3)&&(a=h)),r=(a-i)/p,r=V.almostEquals(r,Math.round(r),p/1e3)?Math.round(r):Math.ceil(r),i=Math.round(i*n)/n,a=Math.round(a*n)/n,o.push(Mn(d)?i:d);for(var m=1;me.length-1?null:this.getPixelForValue(e[t])}}),Tn=Cn;Dn._defaults=Tn;var In=V.valueOrDefault,Fn=V.math.log10;var Ln={position:"left",ticks:{callback:rn.formatters.logarithmic}};function On(t,e){return V.isFinite(t)&&t>=0?t:e}var Rn=xn.extend({determineDataLimits:function(){var t,e,n,i,a,r,o=this,s=o.options,l=o.chart,u=l.data.datasets,d=o.isHorizontal();function h(t){return d?t.xAxisID===o.id:t.yAxisID===o.id}o.min=Number.POSITIVE_INFINITY,o.max=Number.NEGATIVE_INFINITY,o.minNotZero=Number.POSITIVE_INFINITY;var c=s.stacked;if(void 0===c)for(t=0;t0){var e=V.min(t),n=V.max(t);o.min=Math.min(o.min,e),o.max=Math.max(o.max,n)}}))}else for(t=0;t0?t.minNotZero=t.min:t.max<1?t.minNotZero=Math.pow(10,Math.floor(Fn(t.max))):t.minNotZero=1)},buildTicks:function(){var t=this,e=t.options.ticks,n=!t.isHorizontal(),i={min:On(e.min),max:On(e.max)},a=t.ticks=function(t,e){var n,i,a=[],r=In(t.min,Math.pow(10,Math.floor(Fn(e.min)))),o=Math.floor(Fn(e.max)),s=Math.ceil(e.max/Math.pow(10,o));0===r?(n=Math.floor(Fn(e.minNotZero)),i=Math.floor(e.minNotZero/Math.pow(10,n)),a.push(r),r=i*Math.pow(10,n)):(n=Math.floor(Fn(r)),i=Math.floor(r/Math.pow(10,n)));var l=n<0?Math.pow(10,Math.abs(n)):1;do{a.push(r),10===++i&&(i=1,l=++n>=0?1:l),r=Math.round(i*Math.pow(10,n)*l)/l}while(ne.length-1?null:this.getPixelForValue(e[t])},_getFirstTickValue:function(t){var e=Math.floor(Fn(t));return Math.floor(t/Math.pow(10,e))*Math.pow(10,e)},_configure:function(){var t=this,e=t.min,n=0;xn.prototype._configure.call(t),0===e&&(e=t._getFirstTickValue(t.minNotZero),n=In(t.options.ticks.fontSize,z.global.defaultFontSize)/t._length),t._startValue=Fn(e),t._valueOffset=n,t._valueRange=(Fn(t.max)-Fn(e))/(1-n)},getPixelForValue:function(t){var e=this,n=0;return(t=+e.getRightValue(t))>e.min&&t>0&&(n=(Fn(t)-e._startValue)/e._valueRange+e._valueOffset),e.getPixelForDecimal(n)},getValueForPixel:function(t){var e=this,n=e.getDecimalForPixel(t);return 0===n&&0===e.min?0:Math.pow(10,e._startValue+(n-e._valueOffset)*e._valueRange)}}),zn=Ln;Rn._defaults=zn;var Nn=V.valueOrDefault,Bn=V.valueAtIndexOrDefault,En=V.options.resolve,Wn={display:!0,animate:!0,position:"chartArea",angleLines:{display:!0,color:"rgba(0,0,0,0.1)",lineWidth:1,borderDash:[],borderDashOffset:0},gridLines:{circular:!1},ticks:{showLabelBackdrop:!0,backdropColor:"rgba(255,255,255,0.75)",backdropPaddingY:2,backdropPaddingX:2,callback:rn.formatters.linear},pointLabels:{display:!0,fontSize:10,callback:function(t){return t}}};function Vn(t){var e=t.ticks;return e.display&&t.display?Nn(e.fontSize,z.global.defaultFontSize)+2*e.backdropPaddingY:0}function Hn(t,e,n,i,a){return t===i||t===a?{start:e-n/2,end:e+n/2}:ta?{start:e-n,end:e}:{start:e,end:e+n}}function jn(t){return 0===t||180===t?"center":t<180?"left":"right"}function qn(t,e,n,i){var a,r,o=n.y+i/2;if(V.isArray(e))for(a=0,r=e.length;a270||t<90)&&(n.y-=e.h)}function Yn(t){return V.isNumber(t)?t:0}var Gn=Sn.extend({setDimensions:function(){var t=this;t.width=t.maxWidth,t.height=t.maxHeight,t.paddingTop=Vn(t.options)/2,t.xCenter=Math.floor(t.width/2),t.yCenter=Math.floor((t.height-t.paddingTop)/2),t.drawingArea=Math.min(t.height-t.paddingTop,t.width)/2},determineDataLimits:function(){var t=this,e=t.chart,n=Number.POSITIVE_INFINITY,i=Number.NEGATIVE_INFINITY;V.each(e.data.datasets,(function(a,r){if(e.isDatasetVisible(r)){var o=e.getDatasetMeta(r);V.each(a.data,(function(e,a){var r=+t.getRightValue(e);isNaN(r)||o.data[a].hidden||(n=Math.min(r,n),i=Math.max(r,i))}))}})),t.min=n===Number.POSITIVE_INFINITY?0:n,t.max=i===Number.NEGATIVE_INFINITY?0:i,t.handleTickRangeOptions()},_computeTickLimit:function(){return Math.ceil(this.drawingArea/Vn(this.options))},convertTicksToLabels:function(){var t=this;Sn.prototype.convertTicksToLabels.call(t),t.pointLabels=t.chart.data.labels.map((function(){var e=V.callback(t.options.pointLabels.callback,arguments,t);return e||0===e?e:""}))},getLabelForIndex:function(t,e){return+this.getRightValue(this.chart.data.datasets[e].data[t])},fit:function(){var t=this.options;t.display&&t.pointLabels.display?function(t){var e,n,i,a=V.options._parseFont(t.options.pointLabels),r={l:0,r:t.width,t:0,b:t.height-t.paddingTop},o={};t.ctx.font=a.string,t._pointLabelSizes=[];var s,l,u,d=t.chart.data.labels.length;for(e=0;er.r&&(r.r=f.end,o.r=h),g.startr.b&&(r.b=g.end,o.b=h)}t.setReductions(t.drawingArea,r,o)}(this):this.setCenterPoint(0,0,0,0)},setReductions:function(t,e,n){var i=this,a=e.l/Math.sin(n.l),r=Math.max(e.r-i.width,0)/Math.sin(n.r),o=-e.t/Math.cos(n.t),s=-Math.max(e.b-(i.height-i.paddingTop),0)/Math.cos(n.b);a=Yn(a),r=Yn(r),o=Yn(o),s=Yn(s),i.drawingArea=Math.min(Math.floor(t-(a+r)/2),Math.floor(t-(o+s)/2)),i.setCenterPoint(a,r,o,s)},setCenterPoint:function(t,e,n,i){var a=this,r=a.width-e-a.drawingArea,o=t+a.drawingArea,s=n+a.drawingArea,l=a.height-a.paddingTop-i-a.drawingArea;a.xCenter=Math.floor((o+r)/2+a.left),a.yCenter=Math.floor((s+l)/2+a.top+a.paddingTop)},getIndexAngle:function(t){var e=this.chart,n=(t*(360/e.data.labels.length)+((e.options||{}).startAngle||0))%360;return(n<0?n+360:n)*Math.PI*2/360},getDistanceFromCenterForValue:function(t){var e=this;if(V.isNullOrUndef(t))return NaN;var n=e.drawingArea/(e.max-e.min);return e.options.ticks.reverse?(e.max-t)*n:(t-e.min)*n},getPointPosition:function(t,e){var n=this.getIndexAngle(t)-Math.PI/2;return{x:Math.cos(n)*e+this.xCenter,y:Math.sin(n)*e+this.yCenter}},getPointPositionForValue:function(t,e){return this.getPointPosition(t,this.getDistanceFromCenterForValue(e))},getBasePosition:function(t){var e=this.min,n=this.max;return this.getPointPositionForValue(t||0,this.beginAtZero?0:e<0&&n<0?n:e>0&&n>0?e:0)},_drawGrid:function(){var t,e,n,i=this,a=i.ctx,r=i.options,o=r.gridLines,s=r.angleLines,l=Nn(s.lineWidth,o.lineWidth),u=Nn(s.color,o.color);if(r.pointLabels.display&&function(t){var e=t.ctx,n=t.options,i=n.pointLabels,a=Vn(n),r=t.getDistanceFromCenterForValue(n.ticks.reverse?t.min:t.max),o=V.options._parseFont(i);e.save(),e.font=o.string,e.textBaseline="middle";for(var s=t.chart.data.labels.length-1;s>=0;s--){var l=0===s?a/2:0,u=t.getPointPosition(s,r+l+5),d=Bn(i.fontColor,s,z.global.defaultFontColor);e.fillStyle=d;var h=t.getIndexAngle(s),c=V.toDegrees(h);e.textAlign=jn(c),Un(c,t._pointLabelSizes[s],u),qn(e,t.pointLabels[s],u,o.lineHeight)}e.restore()}(i),o.display&&V.each(i.ticks,(function(t,n){0!==n&&(e=i.getDistanceFromCenterForValue(i.ticksAsNumbers[n]),function(t,e,n,i){var a,r=t.ctx,o=e.circular,s=t.chart.data.labels.length,l=Bn(e.color,i-1),u=Bn(e.lineWidth,i-1);if((o||s)&&l&&u){if(r.save(),r.strokeStyle=l,r.lineWidth=u,r.setLineDash&&(r.setLineDash(e.borderDash||[]),r.lineDashOffset=e.borderDashOffset||0),r.beginPath(),o)r.arc(t.xCenter,t.yCenter,n,0,2*Math.PI);else{a=t.getPointPosition(0,n),r.moveTo(a.x,a.y);for(var d=1;d=0;t--)e=i.getDistanceFromCenterForValue(r.ticks.reverse?i.min:i.max),n=i.getPointPosition(t,e),a.beginPath(),a.moveTo(i.xCenter,i.yCenter),a.lineTo(n.x,n.y),a.stroke();a.restore()}},_drawLabels:function(){var t=this,e=t.ctx,n=t.options.ticks;if(n.display){var i,a,r=t.getIndexAngle(0),o=V.options._parseFont(n),s=Nn(n.fontColor,z.global.defaultFontColor);e.save(),e.font=o.string,e.translate(t.xCenter,t.yCenter),e.rotate(r),e.textAlign="center",e.textBaseline="middle",V.each(t.ticks,(function(r,l){(0!==l||n.reverse)&&(i=t.getDistanceFromCenterForValue(t.ticksAsNumbers[l]),n.showLabelBackdrop&&(a=e.measureText(r).width,e.fillStyle=n.backdropColor,e.fillRect(-a/2-n.backdropPaddingX,-i-o.size/2-n.backdropPaddingY,a+2*n.backdropPaddingX,o.size+2*n.backdropPaddingY)),e.fillStyle=s,e.fillText(r,0,-i))})),e.restore()}},_drawTitle:V.noop}),Xn=Wn;Gn._defaults=Xn;var Kn=V._deprecated,Zn=V.options.resolve,$n=V.valueOrDefault,Jn=Number.MIN_SAFE_INTEGER||-9007199254740991,Qn=Number.MAX_SAFE_INTEGER||9007199254740991,ti={millisecond:{common:!0,size:1,steps:1e3},second:{common:!0,size:1e3,steps:60},minute:{common:!0,size:6e4,steps:60},hour:{common:!0,size:36e5,steps:24},day:{common:!0,size:864e5,steps:30},week:{common:!1,size:6048e5,steps:4},month:{common:!0,size:2628e6,steps:12},quarter:{common:!1,size:7884e6,steps:4},year:{common:!0,size:3154e7}},ei=Object.keys(ti);function ni(t,e){return t-e}function ii(t){return V.valueOrDefault(t.time.min,t.ticks.min)}function ai(t){return V.valueOrDefault(t.time.max,t.ticks.max)}function ri(t,e,n,i){var a=function(t,e,n){for(var i,a,r,o=0,s=t.length-1;o>=0&&o<=s;){if(a=t[(i=o+s>>1)-1]||null,r=t[i],!a)return{lo:null,hi:r};if(r[e]n))return{lo:a,hi:r};s=i-1}}return{lo:r,hi:null}}(t,e,n),r=a.lo?a.hi?a.lo:t[t.length-2]:t[0],o=a.lo?a.hi?a.hi:t[t.length-1]:t[1],s=o[e]-r[e],l=s?(n-r[e])/s:0,u=(o[i]-r[i])*l;return r[i]+u}function oi(t,e){var n=t._adapter,i=t.options.time,a=i.parser,r=a||i.format,o=e;return"function"==typeof a&&(o=a(o)),V.isFinite(o)||(o="string"==typeof r?n.parse(o,r):n.parse(o)),null!==o?+o:(a||"function"!=typeof r||(o=r(e),V.isFinite(o)||(o=n.parse(o))),o)}function si(t,e){if(V.isNullOrUndef(e))return null;var n=t.options.time,i=oi(t,t.getRightValue(e));return null===i?i:(n.round&&(i=+t._adapter.startOf(i,n.round)),i)}function li(t,e,n,i){var a,r,o,s=ei.length;for(a=ei.indexOf(t);a=0&&(e[r].major=!0);return e}(t,r,o,n):r}var di=xn.extend({initialize:function(){this.mergeTicksOptions(),xn.prototype.initialize.call(this)},update:function(){var t=this,e=t.options,n=e.time||(e.time={}),i=t._adapter=new an._date(e.adapters.date);return Kn("time scale",n.format,"time.format","time.parser"),Kn("time scale",n.min,"time.min","ticks.min"),Kn("time scale",n.max,"time.max","ticks.max"),V.mergeIf(n.displayFormats,i.formats()),xn.prototype.update.apply(t,arguments)},getRightValue:function(t){return t&&void 0!==t.t&&(t=t.t),xn.prototype.getRightValue.call(this,t)},determineDataLimits:function(){var t,e,n,i,a,r,o,s=this,l=s.chart,u=s._adapter,d=s.options,h=d.time.unit||"day",c=Qn,f=Jn,g=[],p=[],m=[],v=s._getLabels();for(t=0,n=v.length;t1?function(t){var e,n,i,a={},r=[];for(e=0,n=t.length;e1e5*u)throw e+" and "+n+" are too far apart with stepSize of "+u+" "+l;for(a=h;a=a&&n<=r&&d.push(n);return i.min=a,i.max=r,i._unit=l.unit||(s.autoSkip?li(l.minUnit,i.min,i.max,h):function(t,e,n,i,a){var r,o;for(r=ei.length-1;r>=ei.indexOf(n);r--)if(o=ei[r],ti[o].common&&t._adapter.diff(a,i,o)>=e-1)return o;return ei[n?ei.indexOf(n):0]}(i,d.length,l.minUnit,i.min,i.max)),i._majorUnit=s.major.enabled&&"year"!==i._unit?function(t){for(var e=ei.indexOf(t)+1,n=ei.length;ee&&s=0&&t0?s:1}}),hi={position:"bottom",distribution:"linear",bounds:"data",adapters:{},time:{parser:!1,unit:!1,round:!1,displayFormat:!1,isoWeekday:!1,minUnit:"millisecond",displayFormats:{}},ticks:{autoSkip:!1,source:"auto",major:{enabled:!1}}};di._defaults=hi;var ci={category:_n,linear:Dn,logarithmic:Rn,radialLinear:Gn,time:di},fi={datetime:"MMM D, YYYY, h:mm:ss a",millisecond:"h:mm:ss.SSS a",second:"h:mm:ss a",minute:"h:mm a",hour:"hA",day:"MMM D",week:"ll",month:"MMM YYYY",quarter:"[Q]Q - YYYY",year:"YYYY"};an._date.override("function"==typeof t?{_id:"moment",formats:function(){return fi},parse:function(e,n){return"string"==typeof e&&"string"==typeof n?e=t(e,n):e instanceof t||(e=t(e)),e.isValid()?e.valueOf():null},format:function(e,n){return t(e).format(n)},add:function(e,n,i){return t(e).add(n,i).valueOf()},diff:function(e,n,i){return t(e).diff(t(n),i)},startOf:function(e,n,i){return e=t(e),"isoWeek"===n?e.isoWeekday(i).valueOf():e.startOf(n).valueOf()},endOf:function(e,n){return t(e).endOf(n).valueOf()},_create:function(e){return t(e)}}:{}),z._set("global",{plugins:{filler:{propagate:!0}}});var gi={dataset:function(t){var e=t.fill,n=t.chart,i=n.getDatasetMeta(e),a=i&&n.isDatasetVisible(e)&&i.dataset._children||[],r=a.length||0;return r?function(t,e){return e=n)&&i;switch(r){case"bottom":return"start";case"top":return"end";case"zero":return"origin";case"origin":case"start":case"end":return r;default:return!1}}function mi(t){return(t.el._scale||{}).getPointPositionForValue?function(t){var e,n,i,a,r,o=t.el._scale,s=o.options,l=o.chart.data.labels.length,u=t.fill,d=[];if(!l)return null;for(e=s.ticks.reverse?o.max:o.min,n=s.ticks.reverse?o.min:o.max,i=o.getPointPositionForValue(0,e),a=0;a0;--r)V.canvas.lineTo(t,n[r],n[r-1],!0);else for(o=n[0].cx,s=n[0].cy,l=Math.sqrt(Math.pow(n[0].x-o,2)+Math.pow(n[0].y-s,2)),r=a-1;r>0;--r)t.arc(o,s,l,n[r].angle,n[r-1].angle,!0)}}function _i(t,e,n,i,a,r){var o,s,l,u,d,h,c,f,g=e.length,p=i.spanGaps,m=[],v=[],b=0,x=0;for(t.beginPath(),o=0,s=g;o=0;--n)(e=l[n].$filler)&&e.visible&&(a=(i=e.el)._view,r=i._children||[],o=e.mapper,s=a.backgroundColor||z.global.defaultColor,o&&s&&r.length&&(V.canvas.clipArea(u,t.chartArea),_i(u,r,o,a,s,i._loop),V.canvas.unclipArea(u)))}},wi=V.rtl.getRtlAdapter,Mi=V.noop,Si=V.valueOrDefault;function Ci(t,e){return t.usePointStyle&&t.boxWidth>e?e:t.boxWidth}z._set("global",{legend:{display:!0,position:"top",align:"center",fullWidth:!0,reverse:!1,weight:1e3,onClick:function(t,e){var n=e.datasetIndex,i=this.chart,a=i.getDatasetMeta(n);a.hidden=null===a.hidden?!i.data.datasets[n].hidden:null,i.update()},onHover:null,onLeave:null,labels:{boxWidth:40,padding:10,generateLabels:function(t){var e=t.data.datasets,n=t.options.legend||{},i=n.labels&&n.labels.usePointStyle;return t._getSortedDatasetMetas().map((function(n){var a=n.controller.getStyle(i?0:void 0);return{text:e[n.index].label,fillStyle:a.backgroundColor,hidden:!t.isDatasetVisible(n.index),lineCap:a.borderCapStyle,lineDash:a.borderDash,lineDashOffset:a.borderDashOffset,lineJoin:a.borderJoinStyle,lineWidth:a.borderWidth,strokeStyle:a.borderColor,pointStyle:a.pointStyle,rotation:a.rotation,datasetIndex:n.index}}),this)}}},legendCallback:function(t){var e,n,i,a=document.createElement("ul"),r=t.data.datasets;for(a.setAttribute("class",t.id+"-legend"),e=0,n=r.length;el.width)&&(h+=o+n.padding,d[d.length-(e>0?0:1)]=0),s[e]={left:0,top:0,width:i,height:o},d[d.length-1]+=i+n.padding})),l.height+=h}else{var c=n.padding,f=t.columnWidths=[],g=t.columnHeights=[],p=n.padding,m=0,v=0;V.each(t.legendItems,(function(t,e){var i=Ci(n,o)+o/2+a.measureText(t.text).width;e>0&&v+o+2*c>l.height&&(p+=m+n.padding,f.push(m),g.push(v),m=0,v=0),m=Math.max(m,i),v+=o+c,s[e]={left:0,top:0,width:i,height:o}})),p+=m,f.push(m),g.push(v),l.width+=p}t.width=l.width,t.height=l.height}else t.width=l.width=t.height=l.height=0},afterFit:Mi,isHorizontal:function(){return"top"===this.options.position||"bottom"===this.options.position},draw:function(){var t=this,e=t.options,n=e.labels,i=z.global,a=i.defaultColor,r=i.elements.line,o=t.height,s=t.columnHeights,l=t.width,u=t.lineWidths;if(e.display){var d,h=wi(e.rtl,t.left,t.minSize.width),c=t.ctx,f=Si(n.fontColor,i.defaultFontColor),g=V.options._parseFont(n),p=g.size;c.textAlign=h.textAlign("left"),c.textBaseline="middle",c.lineWidth=.5,c.strokeStyle=f,c.fillStyle=f,c.font=g.string;var m=Ci(n,p),v=t.legendHitBoxes,b=function(t,i){switch(e.align){case"start":return n.padding;case"end":return t-i;default:return(t-i+n.padding)/2}},x=t.isHorizontal();d=x?{x:t.left+b(l,u[0]),y:t.top+n.padding,line:0}:{x:t.left+n.padding,y:t.top+b(o,s[0]),line:0},V.rtl.overrideTextDirection(t.ctx,e.textDirection);var y=p+n.padding;V.each(t.legendItems,(function(e,i){var f=c.measureText(e.text).width,g=m+p/2+f,_=d.x,k=d.y;h.setWidth(t.minSize.width),x?i>0&&_+g+n.padding>t.left+t.minSize.width&&(k=d.y+=y,d.line++,_=d.x=t.left+b(l,u[d.line])):i>0&&k+y>t.top+t.minSize.height&&(_=d.x=_+t.columnWidths[d.line]+n.padding,d.line++,k=d.y=t.top+b(o,s[d.line]));var w=h.x(_);!function(t,e,i){if(!(isNaN(m)||m<=0)){c.save();var o=Si(i.lineWidth,r.borderWidth);if(c.fillStyle=Si(i.fillStyle,a),c.lineCap=Si(i.lineCap,r.borderCapStyle),c.lineDashOffset=Si(i.lineDashOffset,r.borderDashOffset),c.lineJoin=Si(i.lineJoin,r.borderJoinStyle),c.lineWidth=o,c.strokeStyle=Si(i.strokeStyle,a),c.setLineDash&&c.setLineDash(Si(i.lineDash,r.borderDash)),n&&n.usePointStyle){var s=m*Math.SQRT2/2,l=h.xPlus(t,m/2),u=e+p/2;V.canvas.drawPoint(c,i.pointStyle,s,l,u,i.rotation)}else c.fillRect(h.leftForLtr(t,m),e,m,p),0!==o&&c.strokeRect(h.leftForLtr(t,m),e,m,p);c.restore()}}(w,k,e),v[i].left=h.leftForLtr(w,v[i].width),v[i].top=k,function(t,e,n,i){var a=p/2,r=h.xPlus(t,m+a),o=e+a;c.fillText(n.text,r,o),n.hidden&&(c.beginPath(),c.lineWidth=2,c.moveTo(r,o),c.lineTo(h.xPlus(r,i),o),c.stroke())}(w,k,e,f),x?d.x+=g+n.padding:d.y+=y})),V.rtl.restoreTextDirection(t.ctx,e.textDirection)}},_getLegendItemAt:function(t,e){var n,i,a,r=this;if(t>=r.left&&t<=r.right&&e>=r.top&&e<=r.bottom)for(a=r.legendHitBoxes,n=0;n=(i=a[n]).left&&t<=i.left+i.width&&e>=i.top&&e<=i.top+i.height)return r.legendItems[n];return null},handleEvent:function(t){var e,n=this,i=n.options,a="mouseup"===t.type?"click":t.type;if("mousemove"===a){if(!i.onHover&&!i.onLeave)return}else{if("click"!==a)return;if(!i.onClick)return}e=n._getLegendItemAt(t.x,t.y),"click"===a?e&&i.onClick&&i.onClick.call(n,t.native,e):(i.onLeave&&e!==n._hoveredItem&&(n._hoveredItem&&i.onLeave.call(n,t.native,n._hoveredItem),n._hoveredItem=e),i.onHover&&e&&i.onHover.call(n,t.native,e))}});function Ai(t,e){var n=new Pi({ctx:t.ctx,options:e,chart:t});ge.configure(t,n,e),ge.addBox(t,n),t.legend=n}var Di={id:"legend",_element:Pi,beforeInit:function(t){var e=t.options.legend;e&&Ai(t,e)},beforeUpdate:function(t){var e=t.options.legend,n=t.legend;e?(V.mergeIf(e,z.global.legend),n?(ge.configure(t,n,e),n.options=e):Ai(t,e)):n&&(ge.removeBox(t,n),delete t.legend)},afterEvent:function(t,e){var n=t.legend;n&&n.handleEvent(e)}},Ti=V.noop;z._set("global",{title:{display:!1,fontStyle:"bold",fullWidth:!0,padding:10,position:"top",text:"",weight:2e3}});var Ii=X.extend({initialize:function(t){V.extend(this,t),this.legendHitBoxes=[]},beforeUpdate:Ti,update:function(t,e,n){var i=this;return i.beforeUpdate(),i.maxWidth=t,i.maxHeight=e,i.margins=n,i.beforeSetDimensions(),i.setDimensions(),i.afterSetDimensions(),i.beforeBuildLabels(),i.buildLabels(),i.afterBuildLabels(),i.beforeFit(),i.fit(),i.afterFit(),i.afterUpdate(),i.minSize},afterUpdate:Ti,beforeSetDimensions:Ti,setDimensions:function(){var t=this;t.isHorizontal()?(t.width=t.maxWidth,t.left=0,t.right=t.width):(t.height=t.maxHeight,t.top=0,t.bottom=t.height),t.paddingLeft=0,t.paddingTop=0,t.paddingRight=0,t.paddingBottom=0,t.minSize={width:0,height:0}},afterSetDimensions:Ti,beforeBuildLabels:Ti,buildLabels:Ti,afterBuildLabels:Ti,beforeFit:Ti,fit:function(){var t,e=this,n=e.options,i=e.minSize={},a=e.isHorizontal();n.display?(t=(V.isArray(n.text)?n.text.length:1)*V.options._parseFont(n).lineHeight+2*n.padding,e.width=i.width=a?e.maxWidth:t,e.height=i.height=a?t:e.maxHeight):e.width=i.width=e.height=i.height=0},afterFit:Ti,isHorizontal:function(){var t=this.options.position;return"top"===t||"bottom"===t},draw:function(){var t=this,e=t.ctx,n=t.options;if(n.display){var i,a,r,o=V.options._parseFont(n),s=o.lineHeight,l=s/2+n.padding,u=0,d=t.top,h=t.left,c=t.bottom,f=t.right;e.fillStyle=V.valueOrDefault(n.fontColor,z.global.defaultFontColor),e.font=o.string,t.isHorizontal()?(a=h+(f-h)/2,r=d+l,i=f-h):(a="left"===n.position?h+l:f-l,r=d+(c-d)/2,i=c-d,u=Math.PI*("left"===n.position?-.5:.5)),e.save(),e.translate(a,r),e.rotate(u),e.textAlign="center",e.textBaseline="middle";var g=n.text;if(V.isArray(g))for(var p=0,m=0;m=0;i--){var a=t[i];if(e(a))return a}},V.isNumber=function(t){return!isNaN(parseFloat(t))&&isFinite(t)},V.almostEquals=function(t,e,n){return Math.abs(t-e)=t},V.max=function(t){return t.reduce((function(t,e){return isNaN(e)?t:Math.max(t,e)}),Number.NEGATIVE_INFINITY)},V.min=function(t){return t.reduce((function(t,e){return isNaN(e)?t:Math.min(t,e)}),Number.POSITIVE_INFINITY)},V.sign=Math.sign?function(t){return Math.sign(t)}:function(t){return 0===(t=+t)||isNaN(t)?t:t>0?1:-1},V.toRadians=function(t){return t*(Math.PI/180)},V.toDegrees=function(t){return t*(180/Math.PI)},V._decimalPlaces=function(t){if(V.isFinite(t)){for(var e=1,n=0;Math.round(t*e)/e!==t;)e*=10,n++;return n}},V.getAngleFromPoint=function(t,e){var n=e.x-t.x,i=e.y-t.y,a=Math.sqrt(n*n+i*i),r=Math.atan2(i,n);return r<-.5*Math.PI&&(r+=2*Math.PI),{angle:r,distance:a}},V.distanceBetweenPoints=function(t,e){return Math.sqrt(Math.pow(e.x-t.x,2)+Math.pow(e.y-t.y,2))},V.aliasPixel=function(t){return t%2==0?0:.5},V._alignPixel=function(t,e,n){var i=t.currentDevicePixelRatio,a=n/2;return Math.round((e-a)*i)/i+a},V.splineCurve=function(t,e,n,i){var a=t.skip?e:t,r=e,o=n.skip?e:n,s=Math.sqrt(Math.pow(r.x-a.x,2)+Math.pow(r.y-a.y,2)),l=Math.sqrt(Math.pow(o.x-r.x,2)+Math.pow(o.y-r.y,2)),u=s/(s+l),d=l/(s+l),h=i*(u=isNaN(u)?0:u),c=i*(d=isNaN(d)?0:d);return{previous:{x:r.x-h*(o.x-a.x),y:r.y-h*(o.y-a.y)},next:{x:r.x+c*(o.x-a.x),y:r.y+c*(o.y-a.y)}}},V.EPSILON=Number.EPSILON||1e-14,V.splineCurveMonotone=function(t){var e,n,i,a,r,o,s,l,u,d=(t||[]).map((function(t){return{model:t._model,deltaK:0,mK:0}})),h=d.length;for(e=0;e0?d[e-1]:null,(a=e0?d[e-1]:null,a=e=t.length-1?t[0]:t[e+1]:e>=t.length-1?t[t.length-1]:t[e+1]},V.previousItem=function(t,e,n){return n?e<=0?t[t.length-1]:t[e-1]:e<=0?t[0]:t[e-1]},V.niceNum=function(t,e){var n=Math.floor(V.log10(t)),i=t/Math.pow(10,n);return(e?i<1.5?1:i<3?2:i<7?5:10:i<=1?1:i<=2?2:i<=5?5:10)*Math.pow(10,n)},V.requestAnimFrame="undefined"==typeof window?function(t){t()}:window.requestAnimationFrame||window.webkitRequestAnimationFrame||window.mozRequestAnimationFrame||window.oRequestAnimationFrame||window.msRequestAnimationFrame||function(t){return window.setTimeout(t,1e3/60)},V.getRelativePosition=function(t,e){var n,i,a=t.originalEvent||t,r=t.target||t.srcElement,o=r.getBoundingClientRect(),s=a.touches;s&&s.length>0?(n=s[0].clientX,i=s[0].clientY):(n=a.clientX,i=a.clientY);var l=parseFloat(V.getStyle(r,"padding-left")),u=parseFloat(V.getStyle(r,"padding-top")),d=parseFloat(V.getStyle(r,"padding-right")),h=parseFloat(V.getStyle(r,"padding-bottom")),c=o.right-o.left-l-d,f=o.bottom-o.top-u-h;return{x:n=Math.round((n-o.left-l)/c*r.width/e.currentDevicePixelRatio),y:i=Math.round((i-o.top-u)/f*r.height/e.currentDevicePixelRatio)}},V.getConstraintWidth=function(t){return n(t,"max-width","clientWidth")},V.getConstraintHeight=function(t){return n(t,"max-height","clientHeight")},V._calculatePadding=function(t,e,n){return(e=V.getStyle(t,e)).indexOf("%")>-1?n*parseInt(e,10)/100:parseInt(e,10)},V._getParentNode=function(t){var e=t.parentNode;return e&&"[object ShadowRoot]"===e.toString()&&(e=e.host),e},V.getMaximumWidth=function(t){var e=V._getParentNode(t);if(!e)return t.clientWidth;var n=e.clientWidth,i=n-V._calculatePadding(e,"padding-left",n)-V._calculatePadding(e,"padding-right",n),a=V.getConstraintWidth(t);return isNaN(a)?i:Math.min(i,a)},V.getMaximumHeight=function(t){var e=V._getParentNode(t);if(!e)return t.clientHeight;var n=e.clientHeight,i=n-V._calculatePadding(e,"padding-top",n)-V._calculatePadding(e,"padding-bottom",n),a=V.getConstraintHeight(t);return isNaN(a)?i:Math.min(i,a)},V.getStyle=function(t,e){return t.currentStyle?t.currentStyle[e]:document.defaultView.getComputedStyle(t,null).getPropertyValue(e)},V.retinaScale=function(t,e){var n=t.currentDevicePixelRatio=e||"undefined"!=typeof window&&window.devicePixelRatio||1;if(1!==n){var i=t.canvas,a=t.height,r=t.width;i.height=a*n,i.width=r*n,t.ctx.scale(n,n),i.style.height||i.style.width||(i.style.height=a+"px",i.style.width=r+"px")}},V.fontString=function(t,e,n){return e+" "+t+"px "+n},V.longestText=function(t,e,n,i){var a=(i=i||{}).data=i.data||{},r=i.garbageCollect=i.garbageCollect||[];i.font!==e&&(a=i.data={},r=i.garbageCollect=[],i.font=e),t.font=e;var o,s,l,u,d,h=0,c=n.length;for(o=0;on.length){for(o=0;oi&&(i=r),i},V.numberOfLabelLines=function(t){var e=1;return V.each(t,(function(t){V.isArray(t)&&t.length>e&&(e=t.length)})),e},V.color=k?function(t){return t instanceof CanvasGradient&&(t=z.global.defaultColor),k(t)}:function(t){return console.error("Color.js not found!"),t},V.getHoverColor=function(t){return t instanceof CanvasPattern||t instanceof CanvasGradient?t:V.color(t).saturate(.5).darken(.1).rgbString()}}(),tn._adapters=an,tn.Animation=Z,tn.animationService=$,tn.controllers=$t,tn.DatasetController=nt,tn.defaults=z,tn.Element=X,tn.elements=_t,tn.Interaction=ae,tn.layouts=ge,tn.platform=Fe,tn.plugins=Le,tn.Scale=xn,tn.scaleService=Oe,tn.Ticks=rn,tn.Tooltip=Ue,tn.helpers.each(ci,(function(t,e){tn.scaleService.registerScaleType(e,t,t._defaults)})),Li)Li.hasOwnProperty(Ni)&&tn.plugins.register(Li[Ni]);tn.platform.initialize();var Bi=tn;return"undefined"!=typeof window&&(window.Chart=tn),tn.Chart=tn,tn.Legend=Li.legend._element,tn.Title=Li.title._element,tn.pluginService=tn.plugins,tn.PluginBase=tn.Element.extend({}),tn.canvasHelpers=tn.helpers.canvas,tn.layoutService=tn.layouts,tn.LinearScaleBase=Sn,tn.helpers.each(["Bar","Bubble","Doughnut","Line","PolarArea","Radar","Scatter"],(function(t){tn[t]=function(e,n){return new tn(e,tn.helpers.merge(n||{},{type:t.charAt(0).toLowerCase()+t.slice(1)}))}})),Bi})); diff --git a/themes/default/js/plugins/jqtree.css b/themes/default/js/plugins/jqtree.css new file mode 100644 index 000000000..1e97f6c22 --- /dev/null +++ b/themes/default/js/plugins/jqtree.css @@ -0,0 +1,184 @@ +ul.jqtree-tree { + list-style: none outside; + margin-left: 0; + margin-bottom: 0; + padding: 0; +} + + ul.jqtree-tree ul.jqtree_common { + list-style: none outside; + margin-left: 12px; + margin-right: 0; + margin-bottom: 0; + padding: 0; + display: block; + } + + ul.jqtree-tree li.jqtree-closed > ul.jqtree_common { + display: none; + } + + ul.jqtree-tree li.jqtree_common { + clear: both; + list-style-type: none; + } + + ul.jqtree-tree .jqtree-toggler { + border-bottom: none; + color: #333; + text-decoration: none; + vertical-align: middle; + } + + ul.jqtree-tree .jqtree-toggler:hover { + color: #000; + text-decoration: none; + } + + ul.jqtree-tree .jqtree-toggler.jqtree-closed { + background-position: 0 0; + } + + ul.jqtree-tree .jqtree-toggler.jqtree-toggler-left { + margin-right: 0.5em; + } + + ul.jqtree-tree .jqtree-toggler.jqtree-toggler-right { + margin-left: 0.5em; + } + + ul.jqtree-tree .jqtree-element { + cursor: pointer; + position: relative; + display: -webkit-box; + display: flex; + } + + ul.jqtree-tree .jqtree-title { + color: #1C4257; + vertical-align: middle; + margin-left: 1.5em; + } + + ul.jqtree-tree .jqtree-title.jqtree-title-folder { + margin-left: 0; + } + + ul.jqtree-tree li.jqtree-folder { + margin-bottom: 4px; + } + + ul.jqtree-tree li.jqtree-folder.jqtree-closed { + margin-bottom: 1px; + } + + ul.jqtree-tree li.jqtree-ghost { + position: relative; + z-index: 10; + margin-right: 10px; + } + + ul.jqtree-tree li.jqtree-ghost span { + display: block; + } + + ul.jqtree-tree li.jqtree-ghost span.jqtree-circle { + border: solid 2px #0000ff; + border-radius: 100px; + height: 8px; + width: 8px; + position: absolute; + top: -4px; + left: -6px; + box-sizing: border-box; + } + + ul.jqtree-tree li.jqtree-ghost span.jqtree-line { + background-color: #0000ff; + height: 2px; + padding: 0; + position: absolute; + top: -1px; + left: 2px; + width: 100%; + } + + ul.jqtree-tree li.jqtree-ghost.jqtree-inside { + margin-left: 48px; + } + + ul.jqtree-tree span.jqtree-border { + position: absolute; + display: block; + left: -2px; + top: 0; + border: solid 2px #0000ff; + border-radius: 6px; + margin: 0; + box-sizing: content-box; + } + + ul.jqtree-tree li.jqtree-selected > .jqtree-element, + ul.jqtree-tree li.jqtree-selected > .jqtree-element:hover { + background-color: #97BDD6; + background: -webkit-gradient(linear, left top, left bottom, from(#BEE0F5), to(#89AFCA)); + background: linear-gradient(#BEE0F5, #89AFCA); + text-shadow: 0 1px 0 rgba(255, 255, 255, 0.7); + } + + ul.jqtree-tree .jqtree-moving > .jqtree-element .jqtree-title { + outline: dashed 1px #0000ff; + } + +ul.jqtree-tree.jqtree-rtl { + direction: rtl; +} + +ul.jqtree-tree.jqtree-rtl ul.jqtree_common { + margin-left: 0; + margin-right: 12px; + } + +ul.jqtree-tree.jqtree-rtl .jqtree-toggler { + margin-left: 0.5em; + margin-right: 0; + } + +ul.jqtree-tree.jqtree-rtl .jqtree-title { + margin-left: 0; + margin-right: 1.5em; + } + +ul.jqtree-tree.jqtree-rtl .jqtree-title.jqtree-title-folder { + margin-right: 0; + } + +ul.jqtree-tree.jqtree-rtl li.jqtree-ghost { + margin-right: 0; + margin-left: 10px; + } + +ul.jqtree-tree.jqtree-rtl li.jqtree-ghost span.jqtree-circle { + right: -6px; + } + +ul.jqtree-tree.jqtree-rtl li.jqtree-ghost span.jqtree-line { + right: 2px; + } + +ul.jqtree-tree.jqtree-rtl li.jqtree-ghost.jqtree-inside { + margin-left: 0; + margin-right: 48px; + } + +ul.jqtree-tree.jqtree-rtl span.jqtree-border { + right: -2px; + } + +span.jqtree-dragging { + color: #fff; + background: #000; + opacity: 0.6; + cursor: pointer; + padding: 2px 8px; +} diff --git a/themes/default/js/plugins/jquery-confirm.min.css b/themes/default/js/plugins/jquery-confirm.min.css new file mode 100644 index 000000000..bd1bc7590 --- /dev/null +++ b/themes/default/js/plugins/jquery-confirm.min.css @@ -0,0 +1,9 @@ +/*! + * jquery-confirm v3.3.4 (http://craftpip.github.io/jquery-confirm/) + * Author: boniface pereira + * Website: www.craftpip.com + * Contact: hey@craftpip.com + * + * Copyright 2013-2019 jquery-confirm + * Licensed under MIT (https://github.com/craftpip/jquery-confirm/blob/master/LICENSE) + */@-webkit-keyframes jconfirm-spin{from{-webkit-transform:rotate(0deg);transform:rotate(0deg)}to{-webkit-transform:rotate(360deg);transform:rotate(360deg)}}@keyframes jconfirm-spin{from{-webkit-transform:rotate(0deg);transform:rotate(0deg)}to{-webkit-transform:rotate(360deg);transform:rotate(360deg)}}body[class*=jconfirm-no-scroll-]{overflow:hidden!important}.jconfirm{position:fixed;top:0;left:0;right:0;bottom:0;z-index:99999999;font-family:inherit;overflow:hidden}.jconfirm .jconfirm-bg{position:fixed;top:0;left:0;right:0;bottom:0;-webkit-transition:opacity .4s;transition:opacity .4s}.jconfirm .jconfirm-bg.jconfirm-bg-h{opacity:0!important}.jconfirm .jconfirm-scrollpane{-webkit-perspective:500px;perspective:500px;-webkit-perspective-origin:center;perspective-origin:center;display:table;width:100%;height:100%}.jconfirm .jconfirm-row{display:table-row;width:100%}.jconfirm .jconfirm-cell{display:table-cell;vertical-align:middle}.jconfirm .jconfirm-holder{max-height:100%;padding:50px 0}.jconfirm .jconfirm-box-container{-webkit-transition:-webkit-transform;transition:-webkit-transform;transition:transform;transition:transform,-webkit-transform}.jconfirm .jconfirm-box-container.jconfirm-no-transition{-webkit-transition:none!important;transition:none!important}.jconfirm .jconfirm-box{background:white;border-radius:4px;position:relative;outline:0;padding:15px 15px 0;overflow:hidden;margin-left:auto;margin-right:auto}@-webkit-keyframes type-blue{1%,100%{border-color:#3498db}50%{border-color:#5faee3}}@keyframes type-blue{1%,100%{border-color:#3498db}50%{border-color:#5faee3}}@-webkit-keyframes type-green{1%,100%{border-color:#2ecc71}50%{border-color:#54d98c}}@keyframes type-green{1%,100%{border-color:#2ecc71}50%{border-color:#54d98c}}@-webkit-keyframes type-red{1%,100%{border-color:#e74c3c}50%{border-color:#ed7669}}@keyframes type-red{1%,100%{border-color:#e74c3c}50%{border-color:#ed7669}}@-webkit-keyframes type-orange{1%,100%{border-color:#f1c40f}50%{border-color:#f4d03f}}@keyframes type-orange{1%,100%{border-color:#f1c40f}50%{border-color:#f4d03f}}@-webkit-keyframes type-purple{1%,100%{border-color:#9b59b6}50%{border-color:#b07cc6}}@keyframes type-purple{1%,100%{border-color:#9b59b6}50%{border-color:#b07cc6}}@-webkit-keyframes type-dark{1%,100%{border-color:#34495e}50%{border-color:#46627f}}@keyframes type-dark{1%,100%{border-color:#34495e}50%{border-color:#46627f}}.jconfirm .jconfirm-box.jconfirm-type-animated{-webkit-animation-duration:2s;animation-duration:2s;-webkit-animation-iteration-count:infinite;animation-iteration-count:infinite}.jconfirm .jconfirm-box.jconfirm-type-blue{border-top:solid 7px #3498db;-webkit-animation-name:type-blue;animation-name:type-blue}.jconfirm .jconfirm-box.jconfirm-type-green{border-top:solid 7px #2ecc71;-webkit-animation-name:type-green;animation-name:type-green}.jconfirm .jconfirm-box.jconfirm-type-red{border-top:solid 7px #e74c3c;-webkit-animation-name:type-red;animation-name:type-red}.jconfirm .jconfirm-box.jconfirm-type-orange{border-top:solid 7px #f1c40f;-webkit-animation-name:type-orange;animation-name:type-orange}.jconfirm .jconfirm-box.jconfirm-type-purple{border-top:solid 7px #9b59b6;-webkit-animation-name:type-purple;animation-name:type-purple}.jconfirm .jconfirm-box.jconfirm-type-dark{border-top:solid 7px #34495e;-webkit-animation-name:type-dark;animation-name:type-dark}.jconfirm .jconfirm-box.loading{height:120px}.jconfirm .jconfirm-box.loading:before{content:'';position:absolute;left:0;background:white;right:0;top:0;bottom:0;border-radius:10px;z-index:1}.jconfirm .jconfirm-box.loading:after{opacity:.6;content:'';height:30px;width:30px;border:solid 3px transparent;position:absolute;left:50%;margin-left:-15px;border-radius:50%;-webkit-animation:jconfirm-spin 1s infinite linear;animation:jconfirm-spin 1s infinite linear;border-bottom-color:dodgerblue;top:50%;margin-top:-15px;z-index:2}.jconfirm .jconfirm-box div.jconfirm-closeIcon{height:20px;width:20px;position:absolute;top:10px;right:10px;cursor:pointer;opacity:.6;text-align:center;font-size:27px!important;line-height:14px!important;display:none;z-index:1}.jconfirm .jconfirm-box div.jconfirm-closeIcon:empty{display:none}.jconfirm .jconfirm-box div.jconfirm-closeIcon .fa{font-size:16px}.jconfirm .jconfirm-box div.jconfirm-closeIcon .glyphicon{font-size:16px}.jconfirm .jconfirm-box div.jconfirm-closeIcon .zmdi{font-size:16px}.jconfirm .jconfirm-box div.jconfirm-closeIcon:hover{opacity:1}.jconfirm .jconfirm-box div.jconfirm-title-c{display:block;font-size:22px;line-height:20px;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none;cursor:default;padding-bottom:15px}.jconfirm .jconfirm-box div.jconfirm-title-c.jconfirm-hand{cursor:move}.jconfirm .jconfirm-box div.jconfirm-title-c .jconfirm-icon-c{font-size:inherit;display:inline-block;vertical-align:middle}.jconfirm .jconfirm-box div.jconfirm-title-c .jconfirm-icon-c i{vertical-align:middle}.jconfirm .jconfirm-box div.jconfirm-title-c .jconfirm-icon-c:empty{display:none}.jconfirm .jconfirm-box div.jconfirm-title-c .jconfirm-title{-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none;font-size:inherit;font-family:inherit;display:inline-block;vertical-align:middle}.jconfirm .jconfirm-box div.jconfirm-title-c .jconfirm-title:empty{display:none}.jconfirm .jconfirm-box div.jconfirm-content-pane{margin-bottom:15px;height:auto;-webkit-transition:height .4s ease-in;transition:height .4s ease-in;display:inline-block;width:100%;position:relative;overflow-x:hidden;overflow-y:auto}.jconfirm .jconfirm-box div.jconfirm-content-pane.no-scroll{overflow-y:hidden}.jconfirm .jconfirm-box div.jconfirm-content-pane::-webkit-scrollbar{width:3px}.jconfirm .jconfirm-box div.jconfirm-content-pane::-webkit-scrollbar-track{background:rgba(0,0,0,0.1)}.jconfirm .jconfirm-box div.jconfirm-content-pane::-webkit-scrollbar-thumb{background:#666;border-radius:3px}.jconfirm .jconfirm-box div.jconfirm-content-pane .jconfirm-content{overflow:auto}.jconfirm .jconfirm-box div.jconfirm-content-pane .jconfirm-content img{max-width:100%;height:auto}.jconfirm .jconfirm-box div.jconfirm-content-pane .jconfirm-content:empty{display:none}.jconfirm .jconfirm-box .jconfirm-buttons{padding-bottom:11px}.jconfirm .jconfirm-box .jconfirm-buttons>button{margin-bottom:4px;margin-left:2px;margin-right:2px}.jconfirm .jconfirm-box .jconfirm-buttons button{display:inline-block;padding:6px 12px;font-size:14px;font-weight:400;line-height:1.42857143;text-align:center;white-space:nowrap;vertical-align:middle;-ms-touch-action:manipulation;touch-action:manipulation;cursor:pointer;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none;border-radius:4px;min-height:1em;-webkit-transition:opacity .1s ease,background-color .1s ease,color .1s ease,background .1s ease,-webkit-box-shadow .1s ease;transition:opacity .1s ease,background-color .1s ease,color .1s ease,background .1s ease,-webkit-box-shadow .1s ease;transition:opacity .1s ease,background-color .1s ease,color .1s ease,box-shadow .1s ease,background .1s ease;transition:opacity .1s ease,background-color .1s ease,color .1s ease,box-shadow .1s ease,background .1s ease,-webkit-box-shadow .1s ease;-webkit-tap-highlight-color:transparent;border:0;background-image:none}.jconfirm .jconfirm-box .jconfirm-buttons button.btn-blue{background-color:#3498db;color:#FFF;text-shadow:none;-webkit-transition:background .2s;transition:background .2s}.jconfirm .jconfirm-box .jconfirm-buttons button.btn-blue:hover{background-color:#2980b9;color:#FFF}.jconfirm .jconfirm-box .jconfirm-buttons button.btn-green{background-color:#2ecc71;color:#FFF;text-shadow:none;-webkit-transition:background .2s;transition:background .2s}.jconfirm .jconfirm-box .jconfirm-buttons button.btn-green:hover{background-color:#27ae60;color:#FFF}.jconfirm .jconfirm-box .jconfirm-buttons button.btn-red{background-color:#e74c3c;color:#FFF;text-shadow:none;-webkit-transition:background .2s;transition:background .2s}.jconfirm .jconfirm-box .jconfirm-buttons button.btn-red:hover{background-color:#c0392b;color:#FFF}.jconfirm .jconfirm-box .jconfirm-buttons button.btn-orange{background-color:#f1c40f;color:#FFF;text-shadow:none;-webkit-transition:background .2s;transition:background .2s}.jconfirm .jconfirm-box .jconfirm-buttons button.btn-orange:hover{background-color:#f39c12;color:#FFF}.jconfirm .jconfirm-box .jconfirm-buttons button.btn-default{background-color:#ecf0f1;color:#000;text-shadow:none;-webkit-transition:background .2s;transition:background .2s}.jconfirm .jconfirm-box .jconfirm-buttons button.btn-default:hover{background-color:#bdc3c7;color:#000}.jconfirm .jconfirm-box .jconfirm-buttons button.btn-purple{background-color:#9b59b6;color:#FFF;text-shadow:none;-webkit-transition:background .2s;transition:background .2s}.jconfirm .jconfirm-box .jconfirm-buttons button.btn-purple:hover{background-color:#8e44ad;color:#FFF}.jconfirm .jconfirm-box .jconfirm-buttons button.btn-dark{background-color:#34495e;color:#FFF;text-shadow:none;-webkit-transition:background .2s;transition:background .2s}.jconfirm .jconfirm-box .jconfirm-buttons button.btn-dark:hover{background-color:#2c3e50;color:#FFF}.jconfirm .jconfirm-box.jconfirm-type-red .jconfirm-title-c .jconfirm-icon-c{color:#e74c3c!important}.jconfirm .jconfirm-box.jconfirm-type-blue .jconfirm-title-c .jconfirm-icon-c{color:#3498db!important}.jconfirm .jconfirm-box.jconfirm-type-green .jconfirm-title-c .jconfirm-icon-c{color:#2ecc71!important}.jconfirm .jconfirm-box.jconfirm-type-purple .jconfirm-title-c .jconfirm-icon-c{color:#9b59b6!important}.jconfirm .jconfirm-box.jconfirm-type-orange .jconfirm-title-c .jconfirm-icon-c{color:#f1c40f!important}.jconfirm .jconfirm-box.jconfirm-type-dark .jconfirm-title-c .jconfirm-icon-c{color:#34495e!important}.jconfirm .jconfirm-clear{clear:both}.jconfirm.jconfirm-rtl{direction:rtl}.jconfirm.jconfirm-rtl div.jconfirm-closeIcon{left:5px;right:auto}.jconfirm.jconfirm-white .jconfirm-bg,.jconfirm.jconfirm-light .jconfirm-bg{background-color:#444;opacity:.2}.jconfirm.jconfirm-white .jconfirm-box,.jconfirm.jconfirm-light .jconfirm-box{-webkit-box-shadow:0 2px 6px rgba(0,0,0,0.2);box-shadow:0 2px 6px rgba(0,0,0,0.2);border-radius:5px}.jconfirm.jconfirm-white .jconfirm-box .jconfirm-title-c .jconfirm-icon-c,.jconfirm.jconfirm-light .jconfirm-box .jconfirm-title-c .jconfirm-icon-c{margin-right:8px;margin-left:0}.jconfirm.jconfirm-white .jconfirm-box .jconfirm-buttons,.jconfirm.jconfirm-light .jconfirm-box .jconfirm-buttons{float:right}.jconfirm.jconfirm-white .jconfirm-box .jconfirm-buttons button,.jconfirm.jconfirm-light .jconfirm-box .jconfirm-buttons button{text-transform:uppercase;font-size:14px;font-weight:bold;text-shadow:none}.jconfirm.jconfirm-white .jconfirm-box .jconfirm-buttons button.btn-default,.jconfirm.jconfirm-light .jconfirm-box .jconfirm-buttons button.btn-default{-webkit-box-shadow:none;box-shadow:none;color:#333}.jconfirm.jconfirm-white .jconfirm-box .jconfirm-buttons button.btn-default:hover,.jconfirm.jconfirm-light .jconfirm-box .jconfirm-buttons button.btn-default:hover{background:#ddd}.jconfirm.jconfirm-white.jconfirm-rtl .jconfirm-title-c .jconfirm-icon-c,.jconfirm.jconfirm-light.jconfirm-rtl .jconfirm-title-c .jconfirm-icon-c{margin-left:8px;margin-right:0}.jconfirm.jconfirm-black .jconfirm-bg,.jconfirm.jconfirm-dark .jconfirm-bg{background-color:darkslategray;opacity:.4}.jconfirm.jconfirm-black .jconfirm-box,.jconfirm.jconfirm-dark .jconfirm-box{-webkit-box-shadow:0 2px 6px rgba(0,0,0,0.2);box-shadow:0 2px 6px rgba(0,0,0,0.2);background:#444;border-radius:5px;color:white}.jconfirm.jconfirm-black .jconfirm-box .jconfirm-title-c .jconfirm-icon-c,.jconfirm.jconfirm-dark .jconfirm-box .jconfirm-title-c .jconfirm-icon-c{margin-right:8px;margin-left:0}.jconfirm.jconfirm-black .jconfirm-box .jconfirm-buttons,.jconfirm.jconfirm-dark .jconfirm-box .jconfirm-buttons{float:right}.jconfirm.jconfirm-black .jconfirm-box .jconfirm-buttons button,.jconfirm.jconfirm-dark .jconfirm-box .jconfirm-buttons button{border:0;background-image:none;text-transform:uppercase;font-size:14px;font-weight:bold;text-shadow:none;-webkit-transition:background .1s;transition:background .1s;color:white}.jconfirm.jconfirm-black .jconfirm-box .jconfirm-buttons button.btn-default,.jconfirm.jconfirm-dark .jconfirm-box .jconfirm-buttons button.btn-default{-webkit-box-shadow:none;box-shadow:none;color:#fff;background:0}.jconfirm.jconfirm-black .jconfirm-box .jconfirm-buttons button.btn-default:hover,.jconfirm.jconfirm-dark .jconfirm-box .jconfirm-buttons button.btn-default:hover{background:#666}.jconfirm.jconfirm-black.jconfirm-rtl .jconfirm-title-c .jconfirm-icon-c,.jconfirm.jconfirm-dark.jconfirm-rtl .jconfirm-title-c .jconfirm-icon-c{margin-left:8px;margin-right:0}.jconfirm .jconfirm-box.hilight.jconfirm-hilight-shake{-webkit-animation:shake .82s cubic-bezier(0.36,0.07,0.19,0.97) both;animation:shake .82s cubic-bezier(0.36,0.07,0.19,0.97) both;-webkit-transform:translate3d(0,0,0);transform:translate3d(0,0,0)}.jconfirm .jconfirm-box.hilight.jconfirm-hilight-glow{-webkit-animation:glow .82s cubic-bezier(0.36,0.07,0.19,0.97) both;animation:glow .82s cubic-bezier(0.36,0.07,0.19,0.97) both;-webkit-transform:translate3d(0,0,0);transform:translate3d(0,0,0)}@-webkit-keyframes shake{10%,90%{-webkit-transform:translate3d(-2px,0,0);transform:translate3d(-2px,0,0)}20%,80%{-webkit-transform:translate3d(4px,0,0);transform:translate3d(4px,0,0)}30%,50%,70%{-webkit-transform:translate3d(-8px,0,0);transform:translate3d(-8px,0,0)}40%,60%{-webkit-transform:translate3d(8px,0,0);transform:translate3d(8px,0,0)}}@keyframes shake{10%,90%{-webkit-transform:translate3d(-2px,0,0);transform:translate3d(-2px,0,0)}20%,80%{-webkit-transform:translate3d(4px,0,0);transform:translate3d(4px,0,0)}30%,50%,70%{-webkit-transform:translate3d(-8px,0,0);transform:translate3d(-8px,0,0)}40%,60%{-webkit-transform:translate3d(8px,0,0);transform:translate3d(8px,0,0)}}@-webkit-keyframes glow{0%,100%{-webkit-box-shadow:0 0 0 red;box-shadow:0 0 0 red}50%{-webkit-box-shadow:0 0 30px red;box-shadow:0 0 30px red}}@keyframes glow{0%,100%{-webkit-box-shadow:0 0 0 red;box-shadow:0 0 0 red}50%{-webkit-box-shadow:0 0 30px red;box-shadow:0 0 30px red}}.jconfirm{-webkit-perspective:400px;perspective:400px}.jconfirm .jconfirm-box{opacity:1;-webkit-transition-property:all;transition-property:all}.jconfirm .jconfirm-box.jconfirm-animation-top,.jconfirm .jconfirm-box.jconfirm-animation-left,.jconfirm .jconfirm-box.jconfirm-animation-right,.jconfirm .jconfirm-box.jconfirm-animation-bottom,.jconfirm .jconfirm-box.jconfirm-animation-opacity,.jconfirm .jconfirm-box.jconfirm-animation-zoom,.jconfirm .jconfirm-box.jconfirm-animation-scale,.jconfirm .jconfirm-box.jconfirm-animation-none,.jconfirm .jconfirm-box.jconfirm-animation-rotate,.jconfirm .jconfirm-box.jconfirm-animation-rotatex,.jconfirm .jconfirm-box.jconfirm-animation-rotatey,.jconfirm .jconfirm-box.jconfirm-animation-scaley,.jconfirm .jconfirm-box.jconfirm-animation-scalex{opacity:0}.jconfirm .jconfirm-box.jconfirm-animation-rotate{-webkit-transform:rotate(90deg);transform:rotate(90deg)}.jconfirm .jconfirm-box.jconfirm-animation-rotatex{-webkit-transform:rotateX(90deg);transform:rotateX(90deg);-webkit-transform-origin:center;transform-origin:center}.jconfirm .jconfirm-box.jconfirm-animation-rotatexr{-webkit-transform:rotateX(-90deg);transform:rotateX(-90deg);-webkit-transform-origin:center;transform-origin:center}.jconfirm .jconfirm-box.jconfirm-animation-rotatey{-webkit-transform:rotatey(90deg);transform:rotatey(90deg);-webkit-transform-origin:center;transform-origin:center}.jconfirm .jconfirm-box.jconfirm-animation-rotateyr{-webkit-transform:rotatey(-90deg);transform:rotatey(-90deg);-webkit-transform-origin:center;transform-origin:center}.jconfirm .jconfirm-box.jconfirm-animation-scaley{-webkit-transform:scaley(1.5);transform:scaley(1.5);-webkit-transform-origin:center;transform-origin:center}.jconfirm .jconfirm-box.jconfirm-animation-scalex{-webkit-transform:scalex(1.5);transform:scalex(1.5);-webkit-transform-origin:center;transform-origin:center}.jconfirm .jconfirm-box.jconfirm-animation-top{-webkit-transform:translate(0px,-100px);transform:translate(0px,-100px)}.jconfirm .jconfirm-box.jconfirm-animation-left{-webkit-transform:translate(-100px,0px);transform:translate(-100px,0px)}.jconfirm .jconfirm-box.jconfirm-animation-right{-webkit-transform:translate(100px,0px);transform:translate(100px,0px)}.jconfirm .jconfirm-box.jconfirm-animation-bottom{-webkit-transform:translate(0px,100px);transform:translate(0px,100px)}.jconfirm .jconfirm-box.jconfirm-animation-zoom{-webkit-transform:scale(1.2);transform:scale(1.2)}.jconfirm .jconfirm-box.jconfirm-animation-scale{-webkit-transform:scale(0.5);transform:scale(0.5)}.jconfirm .jconfirm-box.jconfirm-animation-none{visibility:hidden}.jconfirm.jconfirm-supervan .jconfirm-bg{background-color:rgba(54,70,93,0.95)}.jconfirm.jconfirm-supervan .jconfirm-box{background-color:transparent}.jconfirm.jconfirm-supervan .jconfirm-box.jconfirm-type-blue{border:0}.jconfirm.jconfirm-supervan .jconfirm-box.jconfirm-type-green{border:0}.jconfirm.jconfirm-supervan .jconfirm-box.jconfirm-type-red{border:0}.jconfirm.jconfirm-supervan .jconfirm-box.jconfirm-type-orange{border:0}.jconfirm.jconfirm-supervan .jconfirm-box.jconfirm-type-purple{border:0}.jconfirm.jconfirm-supervan .jconfirm-box.jconfirm-type-dark{border:0}.jconfirm.jconfirm-supervan .jconfirm-box div.jconfirm-closeIcon{color:white}.jconfirm.jconfirm-supervan .jconfirm-box div.jconfirm-title-c{text-align:center;color:white;font-size:28px;font-weight:normal}.jconfirm.jconfirm-supervan .jconfirm-box div.jconfirm-title-c>*{padding-bottom:25px}.jconfirm.jconfirm-supervan .jconfirm-box div.jconfirm-title-c .jconfirm-icon-c{margin-right:8px;margin-left:0}.jconfirm.jconfirm-supervan .jconfirm-box div.jconfirm-content-pane{margin-bottom:25px}.jconfirm.jconfirm-supervan .jconfirm-box div.jconfirm-content{text-align:center;color:white}.jconfirm.jconfirm-supervan .jconfirm-box .jconfirm-buttons{text-align:center}.jconfirm.jconfirm-supervan .jconfirm-box .jconfirm-buttons button{font-size:16px;border-radius:2px;background:#303f53;text-shadow:none;border:0;color:white;padding:10px;min-width:100px}.jconfirm.jconfirm-supervan.jconfirm-rtl .jconfirm-box div.jconfirm-title-c .jconfirm-icon-c{margin-left:8px;margin-right:0}.jconfirm.jconfirm-material .jconfirm-bg{background-color:rgba(0,0,0,0.67)}.jconfirm.jconfirm-material .jconfirm-box{background-color:white;-webkit-box-shadow:0 7px 8px -4px rgba(0,0,0,0.2),0 13px 19px 2px rgba(0,0,0,0.14),0 5px 24px 4px rgba(0,0,0,0.12);box-shadow:0 7px 8px -4px rgba(0,0,0,0.2),0 13px 19px 2px rgba(0,0,0,0.14),0 5px 24px 4px rgba(0,0,0,0.12);padding:30px 25px 10px 25px}.jconfirm.jconfirm-material .jconfirm-box .jconfirm-title-c .jconfirm-icon-c{margin-right:8px;margin-left:0}.jconfirm.jconfirm-material .jconfirm-box div.jconfirm-closeIcon{color:rgba(0,0,0,0.87)}.jconfirm.jconfirm-material .jconfirm-box div.jconfirm-title-c{color:rgba(0,0,0,0.87);font-size:22px;font-weight:bold}.jconfirm.jconfirm-material .jconfirm-box div.jconfirm-content{color:rgba(0,0,0,0.87)}.jconfirm.jconfirm-material .jconfirm-box .jconfirm-buttons{text-align:right}.jconfirm.jconfirm-material .jconfirm-box .jconfirm-buttons button{text-transform:uppercase;font-weight:500}.jconfirm.jconfirm-material.jconfirm-rtl .jconfirm-title-c .jconfirm-icon-c{margin-left:8px;margin-right:0}.jconfirm.jconfirm-bootstrap .jconfirm-bg{background-color:rgba(0,0,0,0.21)}.jconfirm.jconfirm-bootstrap .jconfirm-box{background-color:white;-webkit-box-shadow:0 3px 8px 0 rgba(0,0,0,0.2);box-shadow:0 3px 8px 0 rgba(0,0,0,0.2);border:solid 1px rgba(0,0,0,0.4);padding:15px 0 0}.jconfirm.jconfirm-bootstrap .jconfirm-box .jconfirm-title-c .jconfirm-icon-c{margin-right:8px;margin-left:0}.jconfirm.jconfirm-bootstrap .jconfirm-box div.jconfirm-closeIcon{color:rgba(0,0,0,0.87)}.jconfirm.jconfirm-bootstrap .jconfirm-box div.jconfirm-title-c{color:rgba(0,0,0,0.87);font-size:22px;font-weight:bold;padding-left:15px;padding-right:15px}.jconfirm.jconfirm-bootstrap .jconfirm-box div.jconfirm-content{color:rgba(0,0,0,0.87);padding:0 15px}.jconfirm.jconfirm-bootstrap .jconfirm-box .jconfirm-buttons{text-align:right;padding:10px;margin:-5px 0 0;border-top:solid 1px #ddd;overflow:hidden;border-radius:0 0 4px 4px}.jconfirm.jconfirm-bootstrap .jconfirm-box .jconfirm-buttons button{font-weight:500}.jconfirm.jconfirm-bootstrap.jconfirm-rtl .jconfirm-title-c .jconfirm-icon-c{margin-left:8px;margin-right:0}.jconfirm.jconfirm-modern .jconfirm-bg{background-color:slategray;opacity:.6}.jconfirm.jconfirm-modern .jconfirm-box{background-color:white;-webkit-box-shadow:0 7px 8px -4px rgba(0,0,0,0.2),0 13px 19px 2px rgba(0,0,0,0.14),0 5px 24px 4px rgba(0,0,0,0.12);box-shadow:0 7px 8px -4px rgba(0,0,0,0.2),0 13px 19px 2px rgba(0,0,0,0.14),0 5px 24px 4px rgba(0,0,0,0.12);padding:30px 30px 15px}.jconfirm.jconfirm-modern .jconfirm-box div.jconfirm-closeIcon{color:rgba(0,0,0,0.87);top:15px;right:15px}.jconfirm.jconfirm-modern .jconfirm-box div.jconfirm-title-c{color:rgba(0,0,0,0.87);font-size:24px;font-weight:bold;text-align:center;margin-bottom:10px}.jconfirm.jconfirm-modern .jconfirm-box div.jconfirm-title-c .jconfirm-icon-c{-webkit-transition:-webkit-transform .5s;transition:-webkit-transform .5s;transition:transform .5s;transition:transform .5s,-webkit-transform .5s;-webkit-transform:scale(0);transform:scale(0);display:block;margin-right:0;margin-left:0;margin-bottom:10px;font-size:69px;color:#aaa}.jconfirm.jconfirm-modern .jconfirm-box div.jconfirm-content{text-align:center;font-size:15px;color:#777;margin-bottom:25px}.jconfirm.jconfirm-modern .jconfirm-box .jconfirm-buttons{text-align:center}.jconfirm.jconfirm-modern .jconfirm-box .jconfirm-buttons button{font-weight:bold;text-transform:uppercase;-webkit-transition:background .1s;transition:background .1s;padding:10px 20px}.jconfirm.jconfirm-modern .jconfirm-box .jconfirm-buttons button+button{margin-left:4px}.jconfirm.jconfirm-modern.jconfirm-open .jconfirm-box .jconfirm-title-c .jconfirm-icon-c{-webkit-transform:scale(1);transform:scale(1)} \ No newline at end of file diff --git a/themes/default/js/plugins/jquery-confirm.min.js b/themes/default/js/plugins/jquery-confirm.min.js new file mode 100644 index 000000000..4cf8123e2 --- /dev/null +++ b/themes/default/js/plugins/jquery-confirm.min.js @@ -0,0 +1,10 @@ +/*! + * jquery-confirm v3.3.4 (http://craftpip.github.io/jquery-confirm/) + * Author: Boniface Pereira + * Website: www.craftpip.com + * Contact: hey@craftpip.com + * + * Copyright 2013-2019 jquery-confirm + * Licensed under MIT (https://github.com/craftpip/jquery-confirm/blob/master/LICENSE) + */ +(function(factory){if(typeof define==="function"&&define.amd){define(["jquery"],factory);}else{if(typeof module==="object"&&module.exports){module.exports=function(root,jQuery){if(jQuery===undefined){if(typeof window!=="undefined"){jQuery=require("jquery");}else{jQuery=require("jquery")(root);}}factory(jQuery);return jQuery;};}else{factory(jQuery);}}}(function($){var w=window;$.fn.confirm=function(options,option2){if(typeof options==="undefined"){options={};}if(typeof options==="string"){options={content:options,title:(option2)?option2:false};}$(this).each(function(){var $this=$(this);if($this.attr("jc-attached")){console.warn("jConfirm has already been attached to this element ",$this[0]);return;}$this.on("click",function(e){e.preventDefault();var jcOption=$.extend({},options);if($this.attr("data-title")){jcOption.title=$this.attr("data-title");}if($this.attr("data-content")){jcOption.content=$this.attr("data-content");}if(typeof jcOption.buttons==="undefined"){jcOption.buttons={};}jcOption["$target"]=$this;if($this.attr("href")&&Object.keys(jcOption.buttons).length===0){var buttons=$.extend(true,{},w.jconfirm.pluginDefaults.defaultButtons,(w.jconfirm.defaults||{}).defaultButtons||{});var firstBtn=Object.keys(buttons)[0];jcOption.buttons=buttons;jcOption.buttons[firstBtn].action=function(){location.href=$this.attr("href");};}jcOption.closeIcon=false;var instance=$.confirm(jcOption);});$this.attr("jc-attached",true);});return $(this);};$.confirm=function(options,option2){if(typeof options==="undefined"){options={};}if(typeof options==="string"){options={content:options,title:(option2)?option2:false};}var putDefaultButtons=!(options.buttons===false);if(typeof options.buttons!=="object"){options.buttons={};}if(Object.keys(options.buttons).length===0&&putDefaultButtons){var buttons=$.extend(true,{},w.jconfirm.pluginDefaults.defaultButtons,(w.jconfirm.defaults||{}).defaultButtons||{});options.buttons=buttons;}return w.jconfirm(options);};$.alert=function(options,option2){if(typeof options==="undefined"){options={};}if(typeof options==="string"){options={content:options,title:(option2)?option2:false};}var putDefaultButtons=!(options.buttons===false);if(typeof options.buttons!=="object"){options.buttons={};}if(Object.keys(options.buttons).length===0&&putDefaultButtons){var buttons=$.extend(true,{},w.jconfirm.pluginDefaults.defaultButtons,(w.jconfirm.defaults||{}).defaultButtons||{});var firstBtn=Object.keys(buttons)[0];options.buttons[firstBtn]=buttons[firstBtn];}return w.jconfirm(options);};$.dialog=function(options,option2){if(typeof options==="undefined"){options={};}if(typeof options==="string"){options={content:options,title:(option2)?option2:false,closeIcon:function(){}};}options.buttons={};if(typeof options.closeIcon==="undefined"){options.closeIcon=function(){};}options.confirmKeys=[13];return w.jconfirm(options);};w.jconfirm=function(options){if(typeof options==="undefined"){options={};}var pluginOptions=$.extend(true,{},w.jconfirm.pluginDefaults);if(w.jconfirm.defaults){pluginOptions=$.extend(true,pluginOptions,w.jconfirm.defaults);}pluginOptions=$.extend(true,{},pluginOptions,options);var instance=new w.Jconfirm(pluginOptions);w.jconfirm.instances.push(instance);return instance;};w.Jconfirm=function(options){$.extend(this,options);this._init();};w.Jconfirm.prototype={_init:function(){var that=this;if(!w.jconfirm.instances.length){w.jconfirm.lastFocused=$("body").find(":focus");}this._id=Math.round(Math.random()*99999);this.contentParsed=$(document.createElement("div"));if(!this.lazyOpen){setTimeout(function(){that.open();},0);}},_buildHTML:function(){var that=this;this._parseAnimation(this.animation,"o");this._parseAnimation(this.closeAnimation,"c");this._parseBgDismissAnimation(this.backgroundDismissAnimation);this._parseColumnClass(this.columnClass);this._parseTheme(this.theme);this._parseType(this.type);var template=$(this.template);template.find(".jconfirm-box").addClass(this.animationParsed).addClass(this.backgroundDismissAnimationParsed).addClass(this.typeParsed);if(this.typeAnimated){template.find(".jconfirm-box").addClass("jconfirm-type-animated");}if(this.useBootstrap){template.find(".jc-bs3-row").addClass(this.bootstrapClasses.row);template.find(".jc-bs3-row").addClass("justify-content-md-center justify-content-sm-center justify-content-xs-center justify-content-lg-center");template.find(".jconfirm-box-container").addClass(this.columnClassParsed);if(this.containerFluid){template.find(".jc-bs3-container").addClass(this.bootstrapClasses.containerFluid);}else{template.find(".jc-bs3-container").addClass(this.bootstrapClasses.container);}}else{template.find(".jconfirm-box").css("width",this.boxWidth);}if(this.titleClass){template.find(".jconfirm-title-c").addClass(this.titleClass);}template.addClass(this.themeParsed);var ariaLabel="jconfirm-box"+this._id;template.find(".jconfirm-box").attr("aria-labelledby",ariaLabel).attr("tabindex",-1);template.find(".jconfirm-content").attr("id",ariaLabel);if(this.bgOpacity!==null){template.find(".jconfirm-bg").css("opacity",this.bgOpacity);}if(this.rtl){template.addClass("jconfirm-rtl");}this.$el=template.appendTo(this.container);this.$jconfirmBoxContainer=this.$el.find(".jconfirm-box-container");this.$jconfirmBox=this.$body=this.$el.find(".jconfirm-box");this.$jconfirmBg=this.$el.find(".jconfirm-bg");this.$title=this.$el.find(".jconfirm-title");this.$titleContainer=this.$el.find(".jconfirm-title-c");this.$content=this.$el.find("div.jconfirm-content");this.$contentPane=this.$el.find(".jconfirm-content-pane");this.$icon=this.$el.find(".jconfirm-icon-c");this.$closeIcon=this.$el.find(".jconfirm-closeIcon");this.$holder=this.$el.find(".jconfirm-holder");this.$btnc=this.$el.find(".jconfirm-buttons");this.$scrollPane=this.$el.find(".jconfirm-scrollpane");that.setStartingPoint();this._contentReady=$.Deferred();this._modalReady=$.Deferred();this.$holder.css({"padding-top":this.offsetTop,"padding-bottom":this.offsetBottom,});this.setTitle();this.setIcon();this._setButtons();this._parseContent();this.initDraggable();if(this.isAjax){this.showLoading(false);}$.when(this._contentReady,this._modalReady).then(function(){if(that.isAjaxLoading){setTimeout(function(){that.isAjaxLoading=false;that.setContent();that.setTitle();that.setIcon();setTimeout(function(){that.hideLoading(false);that._updateContentMaxHeight();},100);if(typeof that.onContentReady==="function"){that.onContentReady();}},50);}else{that._updateContentMaxHeight();that.setTitle();that.setIcon();if(typeof that.onContentReady==="function"){that.onContentReady();}}if(that.autoClose){that._startCountDown();}}).then(function(){that._watchContent();});if(this.animation==="none"){this.animationSpeed=1;this.animationBounce=1;}this.$body.css(this._getCSS(this.animationSpeed,this.animationBounce));this.$contentPane.css(this._getCSS(this.animationSpeed,1));this.$jconfirmBg.css(this._getCSS(this.animationSpeed,1));this.$jconfirmBoxContainer.css(this._getCSS(this.animationSpeed,1));},_typePrefix:"jconfirm-type-",typeParsed:"",_parseType:function(type){this.typeParsed=this._typePrefix+type;},setType:function(type){var oldClass=this.typeParsed;this._parseType(type);this.$jconfirmBox.removeClass(oldClass).addClass(this.typeParsed);},themeParsed:"",_themePrefix:"jconfirm-",setTheme:function(theme){var previous=this.theme;this.theme=theme||this.theme;this._parseTheme(this.theme);if(previous){this.$el.removeClass(previous);}this.$el.addClass(this.themeParsed);this.theme=theme;},_parseTheme:function(theme){var that=this;theme=theme.split(",");$.each(theme,function(k,a){if(a.indexOf(that._themePrefix)===-1){theme[k]=that._themePrefix+$.trim(a);}});this.themeParsed=theme.join(" ").toLowerCase();},backgroundDismissAnimationParsed:"",_bgDismissPrefix:"jconfirm-hilight-",_parseBgDismissAnimation:function(bgDismissAnimation){var animation=bgDismissAnimation.split(",");var that=this;$.each(animation,function(k,a){if(a.indexOf(that._bgDismissPrefix)===-1){animation[k]=that._bgDismissPrefix+$.trim(a);}});this.backgroundDismissAnimationParsed=animation.join(" ").toLowerCase();},animationParsed:"",closeAnimationParsed:"",_animationPrefix:"jconfirm-animation-",setAnimation:function(animation){this.animation=animation||this.animation;this._parseAnimation(this.animation,"o");},_parseAnimation:function(animation,which){which=which||"o";var animations=animation.split(",");var that=this;$.each(animations,function(k,a){if(a.indexOf(that._animationPrefix)===-1){animations[k]=that._animationPrefix+$.trim(a);}});var a_string=animations.join(" ").toLowerCase();if(which==="o"){this.animationParsed=a_string;}else{this.closeAnimationParsed=a_string;}return a_string;},setCloseAnimation:function(closeAnimation){this.closeAnimation=closeAnimation||this.closeAnimation;this._parseAnimation(this.closeAnimation,"c");},setAnimationSpeed:function(speed){this.animationSpeed=speed||this.animationSpeed;},columnClassParsed:"",setColumnClass:function(colClass){if(!this.useBootstrap){console.warn("cannot set columnClass, useBootstrap is set to false");return;}this.columnClass=colClass||this.columnClass;this._parseColumnClass(this.columnClass);this.$jconfirmBoxContainer.addClass(this.columnClassParsed);},_updateContentMaxHeight:function(){var height=$(window).height()-(this.$jconfirmBox.outerHeight()-this.$contentPane.outerHeight())-(this.offsetTop+this.offsetBottom);this.$contentPane.css({"max-height":height+"px"});},setBoxWidth:function(width){if(this.useBootstrap){console.warn("cannot set boxWidth, useBootstrap is set to true");return;}this.boxWidth=width;this.$jconfirmBox.css("width",width);},_parseColumnClass:function(colClass){colClass=colClass.toLowerCase();var p;switch(colClass){case"xl":case"xlarge":p="col-md-12";break;case"l":case"large":p="col-md-8 col-md-offset-2";break;case"m":case"medium":p="col-md-6 col-md-offset-3";break;case"s":case"small":p="col-md-4 col-md-offset-4";break;case"xs":case"xsmall":p="col-md-2 col-md-offset-5";break;default:p=colClass;}this.columnClassParsed=p;},initDraggable:function(){var that=this;var $t=this.$titleContainer;this.resetDrag();if(this.draggable){$t.on("mousedown",function(e){$t.addClass("jconfirm-hand");that.mouseX=e.clientX;that.mouseY=e.clientY;that.isDrag=true;});$(window).on("mousemove."+this._id,function(e){if(that.isDrag){that.movingX=e.clientX-that.mouseX+that.initialX;that.movingY=e.clientY-that.mouseY+that.initialY;that.setDrag();}});$(window).on("mouseup."+this._id,function(){$t.removeClass("jconfirm-hand");if(that.isDrag){that.isDrag=false;that.initialX=that.movingX;that.initialY=that.movingY;}});}},resetDrag:function(){this.isDrag=false;this.initialX=0;this.initialY=0;this.movingX=0;this.movingY=0;this.mouseX=0;this.mouseY=0;this.$jconfirmBoxContainer.css("transform","translate("+0+"px, "+0+"px)");},setDrag:function(){if(!this.draggable){return;}this.alignMiddle=false;var boxWidth=this.$jconfirmBox.outerWidth();var boxHeight=this.$jconfirmBox.outerHeight();var windowWidth=$(window).width();var windowHeight=$(window).height();var that=this;var dragUpdate=1;if(that.movingX%dragUpdate===0||that.movingY%dragUpdate===0){if(that.dragWindowBorder){var leftDistance=(windowWidth/2)-boxWidth/2;var topDistance=(windowHeight/2)-boxHeight/2;topDistance-=that.dragWindowGap;leftDistance-=that.dragWindowGap;if(leftDistance+that.movingX<0){that.movingX=-leftDistance;}else{if(leftDistance-that.movingX<0){that.movingX=leftDistance;}}if(topDistance+that.movingY<0){that.movingY=-topDistance;}else{if(topDistance-that.movingY<0){that.movingY=topDistance;}}}that.$jconfirmBoxContainer.css("transform","translate("+that.movingX+"px, "+that.movingY+"px)");}},_scrollTop:function(){if(typeof pageYOffset!=="undefined"){return pageYOffset;}else{var B=document.body;var D=document.documentElement;D=(D.clientHeight)?D:B;return D.scrollTop;}},_watchContent:function(){var that=this;if(this._timer){clearInterval(this._timer);}var prevContentHeight=0;this._timer=setInterval(function(){if(that.smoothContent){var contentHeight=that.$content.outerHeight()||0;if(contentHeight!==prevContentHeight){prevContentHeight=contentHeight;}var wh=$(window).height();var total=that.offsetTop+that.offsetBottom+that.$jconfirmBox.height()-that.$contentPane.height()+that.$content.height();if(total').html(that.buttons[key].text).addClass(that.buttons[key].btnClass).prop("disabled",that.buttons[key].isDisabled).css("display",that.buttons[key].isHidden?"none":"").click(function(e){e.preventDefault();var res=that.buttons[key].action.apply(that,[that.buttons[key]]);that.onAction.apply(that,[key,that.buttons[key]]);that._stopCountDown();if(typeof res==="undefined"||res){that.close();}});that.buttons[key].el=button_element;that.buttons[key].setText=function(text){button_element.html(text);};that.buttons[key].addClass=function(className){button_element.addClass(className);};that.buttons[key].removeClass=function(className){button_element.removeClass(className);};that.buttons[key].disable=function(){that.buttons[key].isDisabled=true;button_element.prop("disabled",true);};that.buttons[key].enable=function(){that.buttons[key].isDisabled=false;button_element.prop("disabled",false);};that.buttons[key].show=function(){that.buttons[key].isHidden=false;button_element.css("display","");};that.buttons[key].hide=function(){that.buttons[key].isHidden=true;button_element.css("display","none");};that["$_"+key]=that["$$"+key]=button_element;that.$btnc.append(button_element);});if(total_buttons===0){this.$btnc.hide();}if(this.closeIcon===null&&total_buttons===0){this.closeIcon=true;}if(this.closeIcon){if(this.closeIconClass){var closeHtml='';this.$closeIcon.html(closeHtml);}this.$closeIcon.click(function(e){e.preventDefault();var buttonName=false;var shouldClose=false;var str;if(typeof that.closeIcon==="function"){str=that.closeIcon();}else{str=that.closeIcon;}if(typeof str==="string"&&typeof that.buttons[str]!=="undefined"){buttonName=str;shouldClose=false;}else{if(typeof str==="undefined"||!!(str)===true){shouldClose=true;}else{shouldClose=false;}}if(buttonName){var btnResponse=that.buttons[buttonName].action.apply(that);shouldClose=(typeof btnResponse==="undefined")||!!(btnResponse);}if(shouldClose){that.close();}});this.$closeIcon.show();}else{this.$closeIcon.hide();}},setTitle:function(string,force){force=force||false;if(typeof string!=="undefined"){if(typeof string==="string"){this.title=string;}else{if(typeof string==="function"){if(typeof string.promise==="function"){console.error("Promise was returned from title function, this is not supported.");}var response=string();if(typeof response==="string"){this.title=response;}else{this.title=false;}}else{this.title=false;}}}if(this.isAjaxLoading&&!force){return;}this.$title.html(this.title||"");this.updateTitleContainer();},setIcon:function(iconClass,force){force=force||false;if(typeof iconClass!=="undefined"){if(typeof iconClass==="string"){this.icon=iconClass;}else{if(typeof iconClass==="function"){var response=iconClass();if(typeof response==="string"){this.icon=response;}else{this.icon=false;}}else{this.icon=false;}}}if(this.isAjaxLoading&&!force){return;}this.$icon.html(this.icon?'':"");this.updateTitleContainer();},updateTitleContainer:function(){if(!this.title&&!this.icon){this.$titleContainer.hide();}else{this.$titleContainer.show();}},setContentPrepend:function(content,force){if(!content){return;}this.contentParsed.prepend(content);},setContentAppend:function(content){if(!content){return;}this.contentParsed.append(content);},setContent:function(content,force){force=!!force;var that=this;if(content){this.contentParsed.html("").append(content);}if(this.isAjaxLoading&&!force){return;}this.$content.html("");this.$content.append(this.contentParsed);setTimeout(function(){that.$body.find("input[autofocus]:visible:first").focus();},100);},loadingSpinner:false,showLoading:function(disableButtons){this.loadingSpinner=true;this.$jconfirmBox.addClass("loading");if(disableButtons){this.$btnc.find("button").prop("disabled",true);}},hideLoading:function(enableButtons){this.loadingSpinner=false;this.$jconfirmBox.removeClass("loading");if(enableButtons){this.$btnc.find("button").prop("disabled",false);}},ajaxResponse:false,contentParsed:"",isAjax:false,isAjaxLoading:false,_parseContent:function(){var that=this;var e=" ";if(typeof this.content==="function"){var res=this.content.apply(this);if(typeof res==="string"){this.content=res;}else{if(typeof res==="object"&&typeof res.always==="function"){this.isAjax=true;this.isAjaxLoading=true;res.always(function(data,status,xhr){that.ajaxResponse={data:data,status:status,xhr:xhr};that._contentReady.resolve(data,status,xhr);if(typeof that.contentLoaded==="function"){that.contentLoaded(data,status,xhr);}});this.content=e;}else{this.content=e;}}}if(typeof this.content==="string"&&this.content.substr(0,4).toLowerCase()==="url:"){this.isAjax=true;this.isAjaxLoading=true;var u=this.content.substring(4,this.content.length);$.get(u).done(function(html){that.contentParsed.html(html);}).always(function(data,status,xhr){that.ajaxResponse={data:data,status:status,xhr:xhr};that._contentReady.resolve(data,status,xhr);if(typeof that.contentLoaded==="function"){that.contentLoaded(data,status,xhr);}});}if(!this.content){this.content=e;}if(!this.isAjax){this.contentParsed.html(this.content);this.setContent();that._contentReady.resolve();}},_stopCountDown:function(){clearInterval(this.autoCloseInterval);if(this.$cd){this.$cd.remove();}},_startCountDown:function(){var that=this;var opt=this.autoClose.split("|");if(opt.length!==2){console.error("Invalid option for autoClose. example 'close|10000'");return false;}var button_key=opt[0];var time=parseInt(opt[1]);if(typeof this.buttons[button_key]==="undefined"){console.error("Invalid button key '"+button_key+"' for autoClose");return false;}var seconds=Math.ceil(time/1000);this.$cd=$(' ('+seconds+")").appendTo(this["$_"+button_key]);this.autoCloseInterval=setInterval(function(){that.$cd.html(" ("+(seconds-=1)+") ");if(seconds<=0){that["$$"+button_key].trigger("click");that._stopCountDown();}},1000);},_getKey:function(key){switch(key){case 192:return"tilde";case 13:return"enter";case 16:return"shift";case 9:return"tab";case 20:return"capslock";case 17:return"ctrl";case 91:return"win";case 18:return"alt";case 27:return"esc";case 32:return"space";}var initial=String.fromCharCode(key);if(/^[A-z0-9]+$/.test(initial)){return initial.toLowerCase();}else{return false;}},reactOnKey:function(e){var that=this;var a=$(".jconfirm");if(a.eq(a.length-1)[0]!==this.$el[0]){return false;}var key=e.which;if(this.$content.find(":input").is(":focus")&&/13|32/.test(key)){return false;}var keyChar=this._getKey(key);if(keyChar==="esc"&&this.escapeKey){if(this.escapeKey===true){this.$scrollPane.trigger("click");}else{if(typeof this.escapeKey==="string"||typeof this.escapeKey==="function"){var buttonKey;if(typeof this.escapeKey==="function"){buttonKey=this.escapeKey();}else{buttonKey=this.escapeKey;}if(buttonKey){if(typeof this.buttons[buttonKey]==="undefined"){console.warn("Invalid escapeKey, no buttons found with key "+buttonKey);}else{this["$_"+buttonKey].trigger("click");}}}}}$.each(this.buttons,function(key,button){if(button.keys.indexOf(keyChar)!==-1){that["$_"+key].trigger("click");}});},setDialogCenter:function(){console.info("setDialogCenter is deprecated, dialogs are centered with CSS3 tables");},_unwatchContent:function(){clearInterval(this._timer);},close:function(onClosePayload){var that=this;if(typeof this.onClose==="function"){this.onClose(onClosePayload);}this._unwatchContent();$(window).unbind("resize."+this._id);$(window).unbind("keyup."+this._id);$(window).unbind("jcKeyDown."+this._id);if(this.draggable){$(window).unbind("mousemove."+this._id);$(window).unbind("mouseup."+this._id);this.$titleContainer.unbind("mousedown");}that.$el.removeClass(that.loadedClass);$("body").removeClass("jconfirm-no-scroll-"+that._id);that.$jconfirmBoxContainer.removeClass("jconfirm-no-transition");setTimeout(function(){that.$body.addClass(that.closeAnimationParsed);that.$jconfirmBg.addClass("jconfirm-bg-h");var closeTimer=(that.closeAnimation==="none")?1:that.animationSpeed;setTimeout(function(){that.$el.remove();var l=w.jconfirm.instances;var i=w.jconfirm.instances.length-1;for(i;i>=0;i--){if(w.jconfirm.instances[i]._id===that._id){w.jconfirm.instances.splice(i,1);}}if(!w.jconfirm.instances.length){if(that.scrollToPreviousElement&&w.jconfirm.lastFocused&&w.jconfirm.lastFocused.length&&$.contains(document,w.jconfirm.lastFocused[0])){var $lf=w.jconfirm.lastFocused;if(that.scrollToPreviousElementAnimate){var st=$(window).scrollTop();var ot=w.jconfirm.lastFocused.offset().top;var wh=$(window).height();if(!(ot>st&&ot<(st+wh))){var scrollTo=(ot-Math.round((wh/3)));$("html, body").animate({scrollTop:scrollTo},that.animationSpeed,"swing",function(){$lf.focus();});}else{$lf.focus();}}else{$lf.focus();}w.jconfirm.lastFocused=false;}}if(typeof that.onDestroy==="function"){that.onDestroy();}},closeTimer*0.4);},50);return true;},open:function(){if(this.isOpen()){return false;}this._buildHTML();this._bindEvents();this._open();return true;},setStartingPoint:function(){var el=false;if(this.animateFromElement!==true&&this.animateFromElement){el=this.animateFromElement;w.jconfirm.lastClicked=false;}else{if(w.jconfirm.lastClicked&&this.animateFromElement===true){el=w.jconfirm.lastClicked;w.jconfirm.lastClicked=false;}else{return false;}}if(!el){return false;}var offset=el.offset();var iTop=el.outerHeight()/2;var iLeft=el.outerWidth()/2;iTop-=this.$jconfirmBox.outerHeight()/2;iLeft-=this.$jconfirmBox.outerWidth()/2;var sourceTop=offset.top+iTop;sourceTop=sourceTop-this._scrollTop();var sourceLeft=offset.left+iLeft;var wh=$(window).height()/2;var ww=$(window).width()/2;var targetH=wh-this.$jconfirmBox.outerHeight()/2;var targetW=ww-this.$jconfirmBox.outerWidth()/2;sourceTop-=targetH;sourceLeft-=targetW;if(Math.abs(sourceTop)>wh||Math.abs(sourceLeft)>ww){return false;}this.$jconfirmBoxContainer.css("transform","translate("+sourceLeft+"px, "+sourceTop+"px)");},_open:function(){var that=this;if(typeof that.onOpenBefore==="function"){that.onOpenBefore();}this.$body.removeClass(this.animationParsed);this.$jconfirmBg.removeClass("jconfirm-bg-h");this.$body.focus();that.$jconfirmBoxContainer.css("transform","translate("+0+"px, "+0+"px)");setTimeout(function(){that.$body.css(that._getCSS(that.animationSpeed,1));that.$body.css({"transition-property":that.$body.css("transition-property")+", margin"});that.$jconfirmBoxContainer.addClass("jconfirm-no-transition");that._modalReady.resolve();if(typeof that.onOpen==="function"){that.onOpen();}that.$el.addClass(that.loadedClass);},this.animationSpeed);},loadedClass:"jconfirm-open",isClosed:function(){return !this.$el||this.$el.parent().length===0;},isOpen:function(){return !this.isClosed();},toggle:function(){if(!this.isOpen()){this.open();}else{this.close();}}};w.jconfirm.instances=[];w.jconfirm.lastFocused=false;w.jconfirm.pluginDefaults={template:'×',title:"Hello",titleClass:"",type:"default",typeAnimated:true,draggable:true,dragWindowGap:15,dragWindowBorder:true,animateFromElement:true,alignMiddle:true,smoothContent:true,content:"Are you sure to continue?",buttons:{},defaultButtons:{ok:{action:function(){}},close:{action:function(){}}},contentLoaded:function(){},icon:"",lazyOpen:false,bgOpacity:null,theme:"light",animation:"scale",closeAnimation:"scale",animationSpeed:400,animationBounce:1,escapeKey:true,rtl:false,container:"body",containerFluid:false,backgroundDismiss:false,backgroundDismissAnimation:"shake",autoClose:false,closeIcon:null,closeIconClass:false,watchInterval:100,columnClass:"col-md-4 col-md-offset-4 col-sm-6 col-sm-offset-3 col-xs-10 col-xs-offset-1",boxWidth:"50%",scrollToPreviousElement:true,scrollToPreviousElementAnimate:true,useBootstrap:true,offsetTop:40,offsetBottom:40,bootstrapClasses:{container:"container",containerFluid:"container-fluid",row:"row"},onContentReady:function(){},onOpenBefore:function(){},onOpen:function(){},onClose:function(){},onDestroy:function(){},onAction:function(){}};var keyDown=false;$(window).on("keydown",function(e){if(!keyDown){var $target=$(e.target);var pass=false;if($target.closest(".jconfirm-box").length){pass=true;}if(pass){$(window).trigger("jcKeyDown");}keyDown=true;}});$(window).on("keyup",function(){keyDown=false;});w.jconfirm.lastClicked=false;$(document).on("mousedown","button, a, [jc-source]",function(){w.jconfirm.lastClicked=$(this);});})); \ No newline at end of file diff --git a/themes/default/js/plugins/moment-with-locales.min.js b/themes/default/js/plugins/moment-with-locales.min.js new file mode 100644 index 000000000..b79adb7f6 --- /dev/null +++ b/themes/default/js/plugins/moment-with-locales.min.js @@ -0,0 +1,2 @@ +!function(e,a){"object"==typeof exports&&"undefined"!=typeof module?module.exports=a():"function"==typeof define&&define.amd?define(a):e.moment=a()}(this,function(){"use strict";var e,n;function M(){return e.apply(null,arguments)}function _(e){return e instanceof Array||"[object Array]"===Object.prototype.toString.call(e)}function i(e){return null!=e&&"[object Object]"===Object.prototype.toString.call(e)}function h(e,a){return Object.prototype.hasOwnProperty.call(e,a)}function o(e){if(Object.getOwnPropertyNames)return 0===Object.getOwnPropertyNames(e).length;var a;for(a in e)if(h(e,a))return;return 1}function r(e){return void 0===e}function m(e){return"number"==typeof e||"[object Number]"===Object.prototype.toString.call(e)}function d(e){return e instanceof Date||"[object Date]"===Object.prototype.toString.call(e)}function u(e,a){for(var t=[],s=0;s>>0,s=0;sFe(e)?(r=e+1,d-Fe(e)):(r=e,d);return{year:r,dayOfYear:_}}function Ce(e,a,t){var s,n,r=Je(e.year(),a,t),d=Math.floor((e.dayOfYear()-r-1)/7)+1;return d<1?s=d+Ie(n=e.year()-1,a,t):d>Ie(e.year(),a,t)?(s=d-Ie(e.year(),a,t),n=e.year()+1):(n=e.year(),s=d),{week:s,year:n}}function Ie(e,a,t){var s=Je(e,a,t),n=Je(e+1,a,t);return(Fe(e)-s+n)/7}W("w",["ww",2],"wo","week"),W("W",["WW",2],"Wo","isoWeek"),z("week","w"),z("isoWeek","W"),C("week",5),C("isoWeek",5),le("w",ae),le("ww",ae,$),le("W",ae),le("WW",ae,$),Ye(["w","ww","W","WW"],function(e,a,t,s){a[s.substr(0,1)]=G(e)});function Ue(e,a){return e.slice(a,7).concat(e.slice(0,a))}W("d",0,"do","day"),W("dd",0,0,function(e){return this.localeData().weekdaysMin(this,e)}),W("ddd",0,0,function(e){return this.localeData().weekdaysShort(this,e)}),W("dddd",0,0,function(e){return this.localeData().weekdays(this,e)}),W("e",0,0,"weekday"),W("E",0,0,"isoWeekday"),z("day","d"),z("weekday","e"),z("isoWeekday","E"),C("day",11),C("weekday",11),C("isoWeekday",11),le("d",ae),le("e",ae),le("E",ae),le("dd",function(e,a){return a.weekdaysMinRegex(e)}),le("ddd",function(e,a){return a.weekdaysShortRegex(e)}),le("dddd",function(e,a){return a.weekdaysRegex(e)}),Ye(["dd","ddd","dddd"],function(e,a,t,s){var n=t._locale.weekdaysParse(e,s,t._strict);null!=n?a.d=n:L(t).invalidWeekday=e}),Ye(["d","e","E"],function(e,a,t,s){a[s]=G(e)});var Ge="Sunday_Monday_Tuesday_Wednesday_Thursday_Friday_Saturday".split("_"),Ve="Sun_Mon_Tue_Wed_Thu_Fri_Sat".split("_"),Be="Su_Mo_Tu_We_Th_Fr_Sa".split("_"),Ke=ue,qe=ue,Ze=ue;function $e(){function e(e,a){return a.length-e.length}for(var a,t,s,n,r=[],d=[],_=[],i=[],o=0;o<7;o++)a=c([2e3,1]).day(o),t=he(this.weekdaysMin(a,"")),s=he(this.weekdaysShort(a,"")),n=he(this.weekdays(a,"")),r.push(t),d.push(s),_.push(n),i.push(t),i.push(s),i.push(n);r.sort(e),d.sort(e),_.sort(e),i.sort(e),this._weekdaysRegex=new RegExp("^("+i.join("|")+")","i"),this._weekdaysShortRegex=this._weekdaysRegex,this._weekdaysMinRegex=this._weekdaysRegex,this._weekdaysStrictRegex=new RegExp("^("+_.join("|")+")","i"),this._weekdaysShortStrictRegex=new RegExp("^("+d.join("|")+")","i"),this._weekdaysMinStrictRegex=new RegExp("^("+r.join("|")+")","i")}function Qe(){return this.hours()%12||12}function Xe(e,a){W(e,0,0,function(){return this.localeData().meridiem(this.hours(),this.minutes(),a)})}function ea(e,a){return a._meridiemParse}W("H",["HH",2],0,"hour"),W("h",["hh",2],0,Qe),W("k",["kk",2],0,function(){return this.hours()||24}),W("hmm",0,0,function(){return""+Qe.apply(this)+S(this.minutes(),2)}),W("hmmss",0,0,function(){return""+Qe.apply(this)+S(this.minutes(),2)+S(this.seconds(),2)}),W("Hmm",0,0,function(){return""+this.hours()+S(this.minutes(),2)}),W("Hmmss",0,0,function(){return""+this.hours()+S(this.minutes(),2)+S(this.seconds(),2)}),Xe("a",!0),Xe("A",!1),z("hour","h"),C("hour",13),le("a",ea),le("A",ea),le("H",ae),le("h",ae),le("k",ae),le("HH",ae,$),le("hh",ae,$),le("kk",ae,$),le("hmm",te),le("hmmss",se),le("Hmm",te),le("Hmmss",se),Le(["H","HH"],De),Le(["k","kk"],function(e,a,t){var s=G(e);a[De]=24===s?0:s}),Le(["a","A"],function(e,a,t){t._isPm=t._locale.isPM(e),t._meridiem=e}),Le(["h","hh"],function(e,a,t){a[De]=G(e),L(t).bigHour=!0}),Le("hmm",function(e,a,t){var s=e.length-2;a[De]=G(e.substr(0,s)),a[Te]=G(e.substr(s)),L(t).bigHour=!0}),Le("hmmss",function(e,a,t){var s=e.length-4,n=e.length-2;a[De]=G(e.substr(0,s)),a[Te]=G(e.substr(s,2)),a[ge]=G(e.substr(n)),L(t).bigHour=!0}),Le("Hmm",function(e,a,t){var s=e.length-2;a[De]=G(e.substr(0,s)),a[Te]=G(e.substr(s))}),Le("Hmmss",function(e,a,t){var s=e.length-4,n=e.length-2;a[De]=G(e.substr(0,s)),a[Te]=G(e.substr(s,2)),a[ge]=G(e.substr(n))});var aa=V("Hours",!0);var ta,sa={calendar:{sameDay:"[Today at] LT",nextDay:"[Tomorrow at] LT",nextWeek:"dddd [at] LT",lastDay:"[Yesterday at] LT",lastWeek:"[Last] dddd [at] LT",sameElse:"L"},longDateFormat:{LTS:"h:mm:ss A",LT:"h:mm A",L:"MM/DD/YYYY",LL:"MMMM D, YYYY",LLL:"MMMM D, YYYY h:mm A",LLLL:"dddd, MMMM D, YYYY h:mm A"},invalidDate:"Invalid date",ordinal:"%d",dayOfMonthOrdinalParse:/\d{1,2}/,relativeTime:{future:"in %s",past:"%s ago",s:"a few seconds",ss:"%d seconds",m:"a minute",mm:"%d minutes",h:"an hour",hh:"%d hours",d:"a day",dd:"%d days",w:"a week",ww:"%d weeks",M:"a month",MM:"%d months",y:"a year",yy:"%d years"},months:Se,monthsShort:je,week:{dow:0,doy:6},weekdays:Ge,weekdaysMin:Be,weekdaysShort:Ve,meridiemParse:/[ap]\.?m?\.?/i},na={},ra={};function da(e){return e?e.toLowerCase().replace("_","-"):e}function _a(e){for(var a,t,s,n,r=0;r=a&&function(e,a){for(var t=Math.min(e.length,a.length),s=0;s=a-1)break;a--}r++}return ta}function ia(a){var e=null;if(void 0===na[a]&&"undefined"!=typeof module&&module&&module.exports)try{e=ta._abbr,require("./locale/"+a),oa(e)}catch(e){na[a]=null}return na[a]}function oa(e,a){var t;return e&&((t=r(a)?ua(e):ma(e,a))?ta=t:"undefined"!=typeof console&&console.warn&&console.warn("Locale "+e+" not found. Did you forget to load it?")),ta._abbr}function ma(e,a){if(null===a)return delete na[e],null;var t,s=sa;if(a.abbr=e,null!=na[e])w("defineLocaleOverride","use moment.updateLocale(localeName, config) to change an existing locale. moment.defineLocale(localeName, config) should only be used for creating a new locale See http://momentjs.com/guides/#/warnings/define-locale/ for more info."),s=na[e]._config;else if(null!=a.parentLocale)if(null!=na[a.parentLocale])s=na[a.parentLocale]._config;else{if(null==(t=ia(a.parentLocale)))return ra[a.parentLocale]||(ra[a.parentLocale]=[]),ra[a.parentLocale].push({name:e,config:a}),null;s=t._config}return na[e]=new b(H(s,a)),ra[e]&&ra[e].forEach(function(e){ma(e.name,e.config)}),oa(e),na[e]}function ua(e){var a;if(e&&e._locale&&e._locale._abbr&&(e=e._locale._abbr),!e)return ta;if(!_(e)){if(a=ia(e))return a;e=[e]}return _a(e)}function la(e){var a,t=e._a;return t&&-2===L(e).overflow&&(a=t[pe]<0||11be(t[fe],t[pe])?ke:t[De]<0||24Ie(t,r,d)?L(e)._overflowWeeks=!0:null!=i?L(e)._overflowWeekday=!0:(_=Re(t,s,n,r,d),e._a[fe]=_.year,e._dayOfYear=_.dayOfYear)}(e),null!=e._dayOfYear&&(r=ga(e._a[fe],s[fe]),(e._dayOfYear>Fe(r)||0===e._dayOfYear)&&(L(e)._overflowDayOfYear=!0),t=Ne(r,0,e._dayOfYear),e._a[pe]=t.getUTCMonth(),e._a[ke]=t.getUTCDate()),a=0;a<3&&null==e._a[a];++a)e._a[a]=i[a]=s[a];for(;a<7;a++)e._a[a]=i[a]=null==e._a[a]?2===a?1:0:e._a[a];24===e._a[De]&&0===e._a[Te]&&0===e._a[ge]&&0===e._a[we]&&(e._nextDay=!0,e._a[De]=0),e._d=(e._useUTC?Ne:function(e,a,t,s,n,r,d){var _;return e<100&&0<=e?(_=new Date(e+400,a,t,s,n,r,d),isFinite(_.getFullYear())&&_.setFullYear(e)):_=new Date(e,a,t,s,n,r,d),_}).apply(null,i),n=e._useUTC?e._d.getUTCDay():e._d.getDay(),null!=e._tzm&&e._d.setUTCMinutes(e._d.getUTCMinutes()-e._tzm),e._nextDay&&(e._a[De]=24),e._w&&void 0!==e._w.d&&e._w.d!==n&&(L(e).weekdayMismatch=!0)}}function va(e){if(e._f!==M.ISO_8601)if(e._f!==M.RFC_2822){e._a=[],L(e).empty=!0;for(var a,t,s,n,r,d,_,i=""+e._i,o=i.length,m=0,u=E(e._f,e._locale).match(j)||[],l=0;lt.valueOf():t.valueOf()"}),yt.toJSON=function(){return this.isValid()?this.toISOString():null},yt.toString=function(){return this.clone().locale("en").format("ddd MMM DD YYYY HH:mm:ss [GMT]ZZ")},yt.unix=function(){return Math.floor(this.valueOf()/1e3)},yt.valueOf=function(){return this._d.valueOf()-6e4*(this._offset||0)},yt.creationData=function(){return{input:this._i,format:this._f,locale:this._locale,isUTC:this._isUTC,strict:this._strict}},yt.eraName=function(){for(var e,a=this.localeData().eras(),t=0,s=a.length;tthis.clone().month(0).utcOffset()||this.utcOffset()>this.clone().month(5).utcOffset()},yt.isLocal=function(){return!!this.isValid()&&!this._isUTC},yt.isUtcOffset=function(){return!!this.isValid()&&this._isUTC},yt.isUtc=Ca,yt.isUTC=Ca,yt.zoneAbbr=function(){return this._isUTC?"UTC":""},yt.zoneName=function(){return this._isUTC?"Coordinated Universal Time":""},yt.dates=t("dates accessor is deprecated. Use date instead.",lt),yt.months=t("months accessor is deprecated. Use month instead",Ae),yt.years=t("years accessor is deprecated. Use year instead",ze),yt.zone=t("moment().zone is deprecated, use moment().utcOffset instead. http://momentjs.com/guides/#/warnings/zone/",function(e,a){return null!=e?("string"!=typeof e&&(e=-e),this.utcOffset(e,a),this):-this.utcOffset()}),yt.isDSTShifted=t("isDSTShifted is deprecated. See http://momentjs.com/guides/#/warnings/dst-shifted/ for more information",function(){if(!r(this._isDSTShifted))return this._isDSTShifted;var e,a={};return p(a,this),(a=Ha(a))._a?(e=(a._isUTC?c:Sa)(a._a),this._isDSTShifted=this.isValid()&&0=0?this.parent.children[e]:null}return null},e.prototype.getNextSibling=function(){if(this.parent){var e=this.parent.getChildIndex(this)+1;return e/g,">").replace(/"/g,""").replace(/'/g,"'").replace(/\//g,"/")},t.getBoolString=function(e){return e?"true":"false"}},function(e,t){e.exports=jQuery},function(e,t,o){"use strict";t.__esModule=!0;var n=function(){function e(e,t){this.$el=jQuery(e);var o=this.constructor.defaults;this.options=jQuery.extend({},o,t)}return e.register=function(t,o){var n=function(){return"simple_widget_"+o};function r(t,o){var n=jQuery.data(t,o);return n&&n instanceof e?n:null}function i(e,o){for(var i=n(),s=0,a=e.get();so.right||t>o.bottom)return null;for(var n=0,r=this.hitAreas.length;n>1,s=this.hitAreas[i];if(ts.bottom))return s;n=i+1}}return null},e.prototype.mustOpenFolderTimer=function(e){var t=e.node;return t.isFolder()&&!t.is_open&&e.position===s.Position.Inside},e.prototype.updateDropHint=function(){if(this.hoveredArea){this.removeDropHint();var e=this.treeWidget._getNodeElementForNode(this.hoveredArea.node);this.previousGhost=e.addDropHint(this.hoveredArea.position)}},e.prototype.startOpenFolderTimer=function(e){var t=this;this.stopOpenFolderTimer(),this.openFolderTimer=window.setTimeout(function(){t.treeWidget._openNode(e,t.treeWidget.options.slide,function(){t.refresh(),t.updateDropHint()})},this.treeWidget.options.openFolderDelay)},e.prototype.stopOpenFolderTimer=function(){this.openFolderTimer&&(clearTimeout(this.openFolderTimer),this.openFolderTimer=null)},e.prototype.moveItem=function(e){var t=this;if(this.currentItem&&this.hoveredArea&&this.hoveredArea.position!==s.Position.None&&this.canMoveToArea(this.hoveredArea)){var o=this.currentItem.node,n=this.hoveredArea.node,r=this.hoveredArea.position,i=o.parent;r===s.Position.Inside&&(this.hoveredArea.node.is_open=!0);var a=function(){t.treeWidget.tree.moveNode(o,n,r),t.treeWidget.element.empty(),t.treeWidget._refreshElements(null)};this.treeWidget._triggerEvent("tree.move",{move_info:{moved_node:o,target_node:n,position:s.getPositionName(r),previous_parent:i,do_move:a,original_event:e.originalEvent}}).isDefaultPrevented()||a()}},e.prototype.getTreeDimensions=function(){var e=this.treeWidget.element.offset();if(e){var t=this.treeWidget.element,o=t.width()||0,n=t.height()||0,r=e.left+this.treeWidget._getScrollLeft();return{left:r,top:e.top,right:r+o,bottom:e.top+n+16}}return{left:0,top:0,right:0,bottom:0}},e}();t.DragAndDropHandler=l;var d=function(e){function t(t,o,n){var r=e.call(this,t)||this;return r.currentNode=o,r.treeBottom=n,r}return r(t,e),t.prototype.generate=function(){return this.positions=[],this.lastTop=0,this.iterate(),this.generateHitAreas(this.positions)},t.prototype.generateHitAreas=function(e){for(var t=-1,o=[],n=[],r=0,i=e;r'+e+""),this.$element.css("position","absolute"),n.append(this.$element)}return e.prototype.move=function(e,t){this.$element.offset({left:e-this.offsetX,top:t-this.offsetY})},e.prototype.remove=function(){this.$element.remove()},e}()},function(e,t,o){"use strict";t.__esModule=!0;var n=o(1),r=function(){function e(e){this.treeWidget=e,this.openedIconElement=this.createButtonElement(e.options.openedIcon),this.closedIconElement=this.createButtonElement(e.options.closedIcon)}return e.prototype.render=function(e){e&&e.parent?this.renderFromNode(e):this.renderFromRoot()},e.prototype.renderFromRoot=function(){var e=this.treeWidget.element;e.empty(),this.createDomElements(e[0],this.treeWidget.tree.children,!0,1)},e.prototype.renderFromNode=function(e){var t=jQuery(e.element),o=this.createLi(e,e.getLevel());this.attachNodeData(e,o),t.after(o),t.remove(),e.children&&this.createDomElements(o,e.children,!1,e.getLevel()+1)},e.prototype.createDomElements=function(e,t,o,n){var r=this.createUl(o);e.appendChild(r);for(var i=0,s=t;i1)){var n=o.changedTouches[0];return t._handleMouseDown(t._getPositionInfo(n))}},t.touchMove=function(e){var o=e.originalEvent;if(!(o.touches.length>1)){var n=o.changedTouches[0];return t._handleMouseMove(e,t._getPositionInfo(n))}},t.touchEnd=function(e){var o=e.originalEvent;if(!(o.touches.length>1)){var n=o.changedTouches[0];return t._handleMouseUp(t._getPositionInfo(n))}},t}return r(t,e),t.prototype.setMouseDelay=function(e){this.mouseDelay=e},t.prototype._init=function(){this.$el.on("mousedown.mousewidget",this.mouseDown),this.$el.on("touchstart.mousewidget",this.touchStart),this.isMouseStarted=!1,this.mouseDelay=0,this.mouseDelayTimer=null,this.isMouseDelayMet=!0,this.mouseDownInfo=null},t.prototype._deinit=function(){this.$el.off("mousedown.mousewidget"),this.$el.off("touchstart.mousewidget");var e=jQuery(document);e.off("mousemove.mousewidget"),e.off("mouseup.mousewidget")},t.prototype._handleMouseDown=function(e){if(this.isMouseStarted&&this._handleMouseUp(e),this.mouseDownInfo=e,this._mouseCapture(e))return this._handleStartMouse(),!0},t.prototype._handleStartMouse=function(){var e=jQuery(document);e.on("mousemove.mousewidget",this.mouseMove),e.on("touchmove.mousewidget",this.touchMove),e.on("mouseup.mousewidget",this.mouseUp),e.on("touchend.mousewidget",this.touchEnd),this.mouseDelay&&this._startMouseDelayTimer()},t.prototype._startMouseDelayTimer=function(){var e=this;this.mouseDelayTimer&&clearTimeout(this.mouseDelayTimer),this.mouseDelayTimer=window.setTimeout(function(){e.isMouseDelayMet=!0},this.mouseDelay),this.isMouseDelayMet=!1},t.prototype._handleMouseMove=function(e,t){return this.isMouseStarted?(this._mouseDrag(t),e.preventDefault()):!(!this.mouseDelay||this.isMouseDelayMet)||(this.mouseDownInfo&&(this.isMouseStarted=!1!==this._mouseStart(this.mouseDownInfo)),this.isMouseStarted?this._mouseDrag(t):this._handleMouseUp(t),!this.isMouseStarted)},t.prototype._getPositionInfo=function(e){return{pageX:e.pageX,pageY:e.pageY,target:e.target,originalEvent:e}},t.prototype._handleMouseUp=function(e){var t=jQuery(document);t.off("mousemove.mousewidget"),t.off("touchmove.mousewidget"),t.off("mouseup.mousewidget"),t.off("touchend.mousewidget"),this.isMouseStarted&&(this.isMouseStarted=!1,this._mouseStop(e))},t}(o(3).default);t.default=i},function(e,t,o){"use strict";t.__esModule=!0;var n=o(1),r=function(){function e(e){this.treeWidget=e}return e.prototype.saveState=function(){var e=JSON.stringify(this.getState());this.treeWidget.options.onSetStateFromStorage?this.treeWidget.options.onSetStateFromStorage(e):this.supportsLocalStorage()&&localStorage.setItem(this.getKeyName(),e)},e.prototype.getStateFromStorage=function(){var e=this._loadFromStorage();return e?this._parseState(e):null},e.prototype.getState=function(){var e,t=this;return{open_nodes:(e=[],t.treeWidget.tree.iterate(function(t){return t.is_open&&t.id&&t.hasChildren()&&e.push(t.id),!0}),e),selected_node:t.treeWidget.getSelectedNodes().map(function(e){return e.id})}},e.prototype.setInitialState=function(e){if(e){var t=!1;return e.open_nodes&&(t=this._openInitialNodes(e.open_nodes)),e.selected_node&&(this._resetSelection(),this._selectInitialNodes(e.selected_node)),t}return!1},e.prototype.setInitialStateOnDemand=function(e,t){e?this._setInitialStateOnDemand(e.open_nodes,e.selected_node,t):t()},e.prototype.getNodeIdToBeSelected=function(){var e=this.getStateFromStorage();return e&&e.selected_node?e.selected_node[0]:null},e.prototype._parseState=function(e){var t=jQuery.parseJSON(e);return t&&t.selected_node&&n.isInt(t.selected_node)&&(t.selected_node=[t.selected_node]),t},e.prototype._loadFromStorage=function(){return this.treeWidget.options.onGetStateFromStorage?this.treeWidget.options.onGetStateFromStorage():this.supportsLocalStorage()?localStorage.getItem(this.getKeyName()):void 0},e.prototype._openInitialNodes=function(e){for(var t=!1,o=0,n=e;o=r},e.prototype.getScrollLeft=function(){return this.$scrollParent&&this.$scrollParent.scrollLeft()||0},e.prototype.initScrollParent=function(){var e=this,t=function(){e.scrollParentTop=0,e.$scrollParent=null};"fixed"===this.treeWidget.$el.css("position")&&t();var o=function(){var t=["overflow","overflow-y"],o=function(e){for(var o=0,n=t;o0,s=o.left+n.clientWidth,a=o.left,l=e.pageX>s-20,d=e.pageX0,i=e.pageX>n-20,s=e.pageX-o<20;i?t.scrollLeft(o+20):s&&r&&t.scrollLeft(Math.max(o-20,0))}},e}();t.default=n},function(e,t,o){"use strict";t.__esModule=!0;var n=function(){function e(e){this.treeWidget=e,this.clear()}return e.prototype.getSelectedNode=function(){var e=this.getSelectedNodes();return!!e.length&&e[0]},e.prototype.getSelectedNodes=function(){if(this.selectedSingleNode)return[this.selectedSingleNode];var e=[];for(var t in this.selectedNodes)if(this.selectedNodes.hasOwnProperty(t)){var o=this.treeWidget.getNodeById(t);o&&e.push(o)}return e},e.prototype.getSelectedNodesUnder=function(e){if(this.selectedSingleNode)return e.isParentOf(this.selectedSingleNode)?[this.selectedSingleNode]:[];var t=[];for(var o in this.selectedNodes)if(this.selectedNodes.hasOwnProperty(o)){var n=this.treeWidget.getNodeById(o);n&&e.isParentOf(n)&&t.push(n)}return t},e.prototype.isNodeSelected=function(e){return!!e&&(null!=e.id?!!this.selectedNodes[e.id]:!!this.selectedSingleNode&&this.selectedSingleNode.element===e.element)},e.prototype.clear=function(){this.selectedNodes={},this.selectedSingleNode=null},e.prototype.removeFromSelection=function(e,t){var o=this;void 0===t&&(t=!1),null==e.id?this.selectedSingleNode&&e.element===this.selectedSingleNode.element&&(this.selectedSingleNode=null):(delete this.selectedNodes[e.id],t&&e.iterate(function(){return delete o.selectedNodes[e.id],!0}))},e.prototype.addToSelection=function(e){null!=e.id?this.selectedNodes[e.id]=!0:this.selectedSingleNode=e},e}();t.default=n},function(e,t,o){"use strict";var n,r=this&&this.__extends||(n=function(e,t){return(n=Object.setPrototypeOf||{__proto__:[]}instanceof Array&&function(e,t){e.__proto__=t}||function(e,t){for(var o in t)t.hasOwnProperty(o)&&(e[o]=t[o])})(e,t)},function(e,t){function o(){this.constructor=e}n(e,t),e.prototype=null===t?Object.create(t):(o.prototype=t.prototype,new o)});t.__esModule=!0;var i=o(0),s=function(){function e(e,t){this.init(e,t)}return e.prototype.init=function(e,t){this.node=e,this.treeWidget=t,e.element||(e.element=this.treeWidget.element.get(0)),this.$element=jQuery(e.element)},e.prototype.addDropHint=function(e){return this.mustShowBorderDropHint(e)?new l(this.$element,this.treeWidget._getScrollLeft()):new d(this.node,this.$element,e)},e.prototype.select=function(e){var t=this.getLi();t.addClass("jqtree-selected"),t.attr("aria-selected","true");var o=this.getSpan();o.attr("tabindex",this.treeWidget.options.tabIndex),e&&o.focus()},e.prototype.deselect=function(){var e=this.getLi();e.removeClass("jqtree-selected"),e.attr("aria-selected","false");var t=this.getSpan();t.removeAttr("tabindex"),t.blur()},e.prototype.getUl=function(){return this.$element.children("ul:first")},e.prototype.getSpan=function(){return this.$element.children(".jqtree-element").find("span.jqtree-title")},e.prototype.getLi=function(){return this.$element},e.prototype.mustShowBorderDropHint=function(e){return e===i.Position.Inside},e}();t.NodeElement=s;var a=function(e){function t(){return null!==e&&e.apply(this,arguments)||this}return r(t,e),t.prototype.open=function(e,t,o){var n=this;if(void 0===t&&(t=!0),void 0===o&&(o="fast"),!this.node.is_open){this.node.is_open=!0;var r=this.getButton();r.removeClass("jqtree-closed"),r.html("");var i=r.get(0);if(i){var s=this.treeWidget.renderer.openedIconElement.cloneNode(!0);i.appendChild(s)}var a=function(){n.getLi().removeClass("jqtree-closed"),n.getSpan().attr("aria-expanded","true"),e&&e(n.node),n.treeWidget._triggerEvent("tree.open",{node:n.node})};t?this.getUl().slideDown(o,a):(this.getUl().show(),a())}},t.prototype.close=function(e,t){var o=this;if(void 0===e&&(e=!0),void 0===t&&(t="fast"),this.node.is_open){this.node.is_open=!1;var n=this.getButton();n.addClass("jqtree-closed"),n.html("");var r=n.get(0);if(r){var i=this.treeWidget.renderer.closedIconElement.cloneNode(!0);r.appendChild(i)}var s=function(){o.getLi().addClass("jqtree-closed"),o.getSpan().attr("aria-expanded","false"),o.treeWidget._triggerEvent("tree.close",{node:o.node})};e?this.getUl().slideUp(t,s):(this.getUl().hide(),s())}},t.prototype.mustShowBorderDropHint=function(e){return!this.node.is_open&&e===i.Position.Inside},t.prototype.getButton=function(){return this.$element.children(".jqtree-element").find("a.jqtree-toggler")},t}(s);t.FolderElement=a;var l=function(){function e(e,t){var o=e.children(".jqtree-element"),n=e.width()||0,r=Math.max(n+t-4,0),i=o.outerHeight()||0,s=Math.max(i-4,0);this.$hint=jQuery(''),o.append(this.$hint),this.$hint.css({width:r,height:s})}return e.prototype.remove=function(){this.$hint.remove()},e}();t.BorderDropHint=l;var d=function(){function e(e,t,o){this.$element=t,this.node=e,this.$ghost=jQuery('\n '),o===i.Position.After?this.moveAfter():o===i.Position.Before?this.moveBefore():o===i.Position.Inside&&(e.isFolder()&&e.is_open?this.moveInsideOpenFolder():this.moveInside())}return e.prototype.remove=function(){this.$ghost.remove()},e.prototype.moveAfter=function(){this.$element.after(this.$ghost)},e.prototype.moveBefore=function(){this.$element.before(this.$ghost)},e.prototype.moveInsideOpenFolder=function(){jQuery(this.node.children[0].element).before(this.$ghost)},e.prototype.moveInside=function(){this.$element.after(this.$ghost),this.$ghost.addClass("jqtree-inside")},e}()},,function(e,t,o){e.exports=o(4)}]); \ No newline at end of file diff --git a/themes/default/template/comments.tpl b/themes/default/template/comments.tpl index 6a38dcf99..42d786ac5 100644 --- a/themes/default/template/comments.tpl +++ b/themes/default/template/comments.tpl @@ -12,7 +12,7 @@ - {'Filter'|@translate} + {'Filter'|@translate} diff --git a/themes/default/template/header.tpl b/themes/default/template/header.tpl index 03084aa87..5092b3814 100644 --- a/themes/default/template/header.tpl +++ b/themes/default/template/header.tpl @@ -1,6 +1,9 @@ +{if $SHOW_MOBILE_APP_BANNER} + +{/if} diff --git a/themes/default/template/include/resize.inc.tpl b/themes/default/template/include/resize.inc.tpl deleted file mode 100644 index 152ee61a2..000000000 --- a/themes/default/template/include/resize.inc.tpl +++ /dev/null @@ -1,16 +0,0 @@ -{* Resize possible *} -{footer_script require='jquery.ui.resizable'}{literal} - jQuery().ready(function(){ - // Resize possible for list - jQuery(".categoryList").resizable({ - handles: "all", - animate: true, - animateDuration: "slow", - animateEasing: "swing", - preventDefault: true, - preserveCursor: true, - autoHide: true, - ghost: true - }); - }); -{/literal}{/footer_script} diff --git a/themes/default/template/menubar_related_categories.tpl b/themes/default/template/menubar_related_categories.tpl new file mode 100644 index 000000000..1d1e0837e --- /dev/null +++ b/themes/default/template/menubar_related_categories.tpl @@ -0,0 +1,28 @@ + + {'Related albums'|@translate} + + +{assign var='ref_level' value=0} +{foreach from=$block->data.MENU_CATEGORIES item=cat} + {if $cat.LEVEL > $ref_level} + + {else} + + {''|@str_repeat:($ref_level-$cat.LEVEL)} + {/if} + + {if isset($cat.url)} + {$cat.name} + {else} + {$cat.name} + {/if} + {if $cat.count_images > 0} + {$cat.count_images} + {/if} + {if $cat.count_categories > 0} + {$cat.count_categories} + {/if} + {assign var='ref_level' value=$cat.LEVEL} +{/foreach} +{''|@str_repeat:$ref_level} + diff --git a/themes/default/template/search.tpl b/themes/default/template/search.tpl index 4129746bd..cca8ca41e 100644 --- a/themes/default/template/search.tpl +++ b/themes/default/template/search.tpl @@ -1,8 +1,3 @@ -{* Example of resizeable *} -{* -{include file='include/resize.inc.tpl'} -*} - {combine_script id='jquery.selectize' load='footer' path='themes/default/js/plugins/selectize.min.js'} {combine_css id='jquery.selectize' path="themes/default/js/plugins/selectize.{$themeconf.colorscheme}.css"} diff --git a/themes/default/theme.css b/themes/default/theme.css index 3468e3992..8b1d94944 100644 --- a/themes/default/theme.css +++ b/themes/default/theme.css @@ -113,6 +113,10 @@ padding:0 25px; } +#menubar .badge { + margin-left:5px; +} + .badge::before { content: '['; } @@ -121,6 +125,34 @@ content: ']'; } +.badge.badgeCategories::before { + content:"("; +} +.badge.badgeCategories::after { + content:")"; +} + +/* A nicer (more modern) way to present badge, with a background color and no brackets */ + +/* +.badge::before, .badge::after { + content:none; +} + +.badge { + display: inline-block; + min-width: 5px; + padding: 3px 7px; + color: #eee; + line-height: 1; + vertical-align: middle; + white-space: nowrap; + text-align: center; + background-color: #666; + border-radius: 10px; +} +*/ + /* category and tag results paragraphs on a quick search */ .search_results { font-size: 16px; @@ -792,3 +824,8 @@ LEGEND { .selectize-dropdown [data-selectable], .selectize-dropdown .optgroup-header { padding: 0px 5px !important; } + + +#TagsGroupRemoveTag span{ + display:none; +} diff --git a/themes/elegant/admin/admin.inc.php b/themes/elegant/admin/admin.inc.php deleted file mode 100644 index 7f68dc072..000000000 --- a/themes/elegant/admin/admin.inc.php +++ /dev/null @@ -1,29 +0,0 @@ -set_filenames(array( - 'theme_admin_content' => dirname(__FILE__) . '/admin.tpl')); - -$template->assign('options', safe_unserialize($conf['elegant'])); - -$template->assign_var_from_handle('ADMIN_CONTENT', 'theme_admin_content'); - -?> \ No newline at end of file diff --git a/themes/elegant/admin/admin.tpl b/themes/elegant/admin/admin.tpl deleted file mode 100644 index 2cbad5e21..000000000 --- a/themes/elegant/admin/admin.tpl +++ /dev/null @@ -1,44 +0,0 @@ -{combine_css path="themes/default/js/ui/theme/jquery.ui.button.css"} -{combine_css path="themes/elegant/admin/jquery.ui.button.css"} -{footer_script require='jquery.ui.button'} -{literal} -jQuery(document).ready(function(){ - jQuery( ".radio" ).buttonset(); -}); -{/literal} -{/footer_script} - - - {'Elegant, Configuration Page'|@translate} - - - - - {'Panels options'|@translate} - {'Choose what should be the default state for each panel, or disable the animation:'|@translate} - - - {'Main Menu Panel'|@translate} - {'Displayed'|@translate} - {'Hidden'|@translate} - {'Disable the animation'|@translate} - - - {'Photo Description Panel'|@translate} - {'Displayed'|@translate} - {'Hidden'|@translate} - {'Disable the animation'|@translate} - - - {'Comments Panel'|@translate} - {'Displayed'|@translate} - {'Hidden'|@translate} - {'Disable the animation'|@translate} - - - - - - - - diff --git a/themes/elegant/admin/index.php b/themes/elegant/admin/index.php deleted file mode 100644 index c01bbd832..000000000 --- a/themes/elegant/admin/index.php +++ /dev/null @@ -1,15 +0,0 @@ - diff --git a/themes/elegant/admin/jquery.ui.button.css b/themes/elegant/admin/jquery.ui.button.css deleted file mode 100644 index 4bc0491e3..000000000 --- a/themes/elegant/admin/jquery.ui.button.css +++ /dev/null @@ -1,571 +0,0 @@ -/*! jQuery UI - v1.10.3 - 2013-06-16 -* http://jqueryui.com -* Includes: jquery.ui.core.css, jquery.ui.button.css -* To view and modify this theme, visit http://jqueryui.com/themeroller/?ffDefault=Verdana%2CArial%2Csans-serif&fwDefault=normal&fsDefault=1.1em&cornerRadius=4px&bgColorHeader=cccccc&bgTextureHeader=highlight_soft&bgImgOpacityHeader=75&borderColorHeader=aaaaaa&fcHeader=222222&iconColorHeader=222222&bgColorContent=ffffff&bgTextureContent=flat&bgImgOpacityContent=75&borderColorContent=aaaaaa&fcContent=222222&iconColorContent=222222&bgColorDefault=e6e6e6&bgTextureDefault=glass&bgImgOpacityDefault=75&borderColorDefault=d3d3d3&fcDefault=555555&iconColorDefault=888888&bgColorHover=dadada&bgTextureHover=glass&bgImgOpacityHover=75&borderColorHover=999999&fcHover=212121&iconColorHover=454545&bgColorActive=ffffff&bgTextureActive=glass&bgImgOpacityActive=65&borderColorActive=aaaaaa&fcActive=212121&iconColorActive=454545&bgColorHighlight=fbf9ee&bgTextureHighlight=glass&bgImgOpacityHighlight=55&borderColorHighlight=fcefa1&fcHighlight=363636&iconColorHighlight=2e83ff&bgColorError=fef1ec&bgTextureError=glass&bgImgOpacityError=95&borderColorError=cd0a0a&fcError=cd0a0a&iconColorError=cd0a0a&bgColorOverlay=aaaaaa&bgTextureOverlay=flat&bgImgOpacityOverlay=0&opacityOverlay=30&bgColorShadow=aaaaaa&bgTextureShadow=flat&bgImgOpacityShadow=0&opacityShadow=30&thicknessShadow=8px&offsetTopShadow=-8px&offsetLeftShadow=-8px&cornerRadiusShadow=8px -* Copyright 2013 jQuery Foundation and other contributors Licensed MIT */ - -/* Layout helpers -----------------------------------*/ -#content .ui-helper-hidden { - display: none; -} -#content .ui-helper-hidden-accessible { - border: 0; - clip: rect(0 0 0 0); - height: 1px; - margin: -1px; - overflow: hidden; - padding: 0; - position: absolute; - width: 1px; -} -#content .ui-helper-reset { - margin: 0; - padding: 0; - border: 0; - outline: 0; - line-height: 1.3; - text-decoration: none; - font-size: 100%; - list-style: none; -} -#content .ui-helper-clearfix:before, -#content .ui-helper-clearfix:after { - content: ""; - display: table; - border-collapse: collapse; -} -#content .ui-helper-clearfix:after { - clear: both; -} -#content .ui-helper-clearfix { - min-height: 0; /* support: IE7 */ -} -#content .ui-helper-zfix { - width: 100%; - height: 100%; - top: 0; - left: 0; - position: absolute; - opacity: 0; - filter:Alpha(Opacity=0); -} - -#content .ui-front { - z-index: 100; -} - - -/* Interaction Cues -----------------------------------*/ -#content .ui-state-disabled { - cursor: default !important; -} - - -/* Icons -----------------------------------*/ - -/* states and images */ -#content .ui-icon { - display: block; - text-indent: -99999px; - overflow: hidden; - background-repeat: no-repeat; -} - - -/* Misc visuals -----------------------------------*/ - -/* Overlays */ -#content .ui-widget-overlay { - position: fixed; - top: 0; - left: 0; - width: 100%; - height: 100%; -} -#content .ui-button { - display: inline-block; - position: relative; - padding: 0; - line-height: normal; - margin-right: .1em; - cursor: pointer; - vertical-align: middle; - text-align: center; - overflow: visible; /* removes extra width in IE */ -} -#content .ui-button, -#content .ui-button:link, -#content .ui-button:visited, -#content .ui-button:hover, -#content .ui-button:active { - text-decoration: none; -} -/* to make room for the icon, a width needs to be set here */ -#content .ui-button-icon-only { - width: 2.2em; -} -/* button elements seem to need a little more width */ -#content button.ui-button-icon-only { - width: 2.4em; -} -#content .ui-button-icons-only { - width: 3.4em; -} -#content button.ui-button-icons-only { - width: 3.7em; -} - -/* button text element */ -#content .ui-button .ui-button-text { - display: block; - line-height: normal; -} -#content .ui-button-text-only .ui-button-text { - padding: .4em 1em; -} -#content .ui-button-icon-only .ui-button-text, -#content .ui-button-icons-only .ui-button-text { - padding: .4em; - text-indent: -9999999px; -} -#content .ui-button-text-icon-primary .ui-button-text, -#content .ui-button-text-icons .ui-button-text { - padding: .4em 1em .4em 2.1em; -} -#content .ui-button-text-icon-secondary .ui-button-text, -#content .ui-button-text-icons .ui-button-text { - padding: .4em 2.1em .4em 1em; -} -#content .ui-button-text-icons .ui-button-text { - padding-left: 2.1em; - padding-right: 2.1em; -} -/* no icon support for input elements, provide padding by default */ -#content input.ui-button { - padding: .4em 1em; -} - -/* button icon element(s) */ -#content .ui-button-icon-only .ui-icon, -#content .ui-button-text-icon-primary .ui-icon, -#content .ui-button-text-icon-secondary .ui-icon, -#content .ui-button-text-icons .ui-icon, -#content .ui-button-icons-only .ui-icon { - position: absolute; - top: 50%; - margin-top: -8px; -} -#content .ui-button-icon-only .ui-icon { - left: 50%; - margin-left: -8px; -} -#content .ui-button-text-icon-primary .ui-button-icon-primary, -#content .ui-button-text-icons .ui-button-icon-primary, -#content .ui-button-icons-only .ui-button-icon-primary { - left: .5em; -} -#content .ui-button-text-icon-secondary .ui-button-icon-secondary, -#content .ui-button-text-icons .ui-button-icon-secondary, -#content .ui-button-icons-only .ui-button-icon-secondary { - right: .5em; -} - -/* button sets */ -#content .ui-buttonset { - margin-right: 7px; -} -#content .ui-buttonset .ui-button { - margin-left: 0; - margin-right: -.3em; -} - -/* workarounds */ -/* reset extra padding in Firefox, see h5bp.com/l */ -#content input.ui-button::-moz-focus-inner, -#content button.ui-button::-moz-focus-inner { - border: 0; - padding: 0; -} - -/* Component containers -----------------------------------*/ -#content .ui-widget-content { - border: 1px solid #aaaaaa; - background: #ffffff url(images/ui-bg_flat_75_ffffff_40x100.png) 50% 50% repeat-x; - color: #222222; -} -#content .ui-widget-content a { - color: #222222; -} -#content .ui-widget-header { - border: 1px solid #aaaaaa; - background: #cccccc url(images/ui-bg_highlight-soft_75_cccccc_1x100.png) 50% 50% repeat-x; - color: #222222; - font-weight: bold; -} -#content .ui-widget-header a { - color: #222222; -} - -/* Interaction states -----------------------------------*/ -#content .ui-state-default, -#content .ui-widget-content .ui-state-default, -#content .ui-widget-header .ui-state-default { - border: 1px solid #d3d3d3; - background: #e6e6e6 url(images/ui-bg_glass_75_e6e6e6_1x400.png) 50% 50% repeat-x; - font-weight: normal; - color: #555555; -} -#content .ui-state-default a, -#content .ui-state-default a:link, -#content .ui-state-default a:visited { - color: #555555; - text-decoration: none; -} -#content .ui-state-hover, -#content .ui-widget-content .ui-state-hover, -#content .ui-widget-header .ui-state-hover, -#content .ui-state-focus, -#content .ui-widget-content .ui-state-focus, -#content .ui-widget-header .ui-state-focus { - border: 1px solid #999999; - background: #dadada url(images/ui-bg_glass_75_dadada_1x400.png) 50% 50% repeat-x; - font-weight: normal; - color: #212121; -} -#content .ui-state-hover a, -#content .ui-state-hover a:hover, -#content .ui-state-hover a:link, -#content .ui-state-hover a:visited { - color: #212121; - text-decoration: none; -} -#content .ui-state-active, -#content .ui-widget-content .ui-state-active, -#content .ui-widget-header .ui-state-active { - border: 1px solid #aaaaaa; - background: #ffffff url(images/ui-bg_glass_65_ffffff_1x400.png) 50% 50% repeat-x; - font-weight: normal; - color: #212121; -} -#content .ui-state-active a, -#content .ui-state-active a:link, -#content .ui-state-active a:visited { - color: #212121; - text-decoration: none; -} - -/* Interaction Cues -----------------------------------*/ -#content .ui-state-highlight, -#content .ui-widget-content .ui-state-highlight, -#content .ui-widget-header .ui-state-highlight { - border: 1px solid #fcefa1; - background: #fbf9ee url(images/ui-bg_glass_55_fbf9ee_1x400.png) 50% 50% repeat-x; - color: #363636; -} -#content .ui-state-highlight a, -#content .ui-widget-content .ui-state-highlight a, -#content .ui-widget-header .ui-state-highlight a { - color: #363636; -} -#content .ui-state-error, -#content .ui-widget-content .ui-state-error, -#content .ui-widget-header .ui-state-error { - border: 1px solid #cd0a0a; - background: #fef1ec url(images/ui-bg_glass_95_fef1ec_1x400.png) 50% 50% repeat-x; - color: #cd0a0a; -} -#content .ui-state-error a, -#content .ui-widget-content .ui-state-error a, -#content .ui-widget-header .ui-state-error a { - color: #cd0a0a; -} -#content .ui-state-error-text, -#content .ui-widget-content .ui-state-error-text, -#content .ui-widget-header .ui-state-error-text { - color: #cd0a0a; -} -#content .ui-priority-primary, -#content .ui-widget-content .ui-priority-primary, -#content .ui-widget-header .ui-priority-primary { - font-weight: bold; -} -#content .ui-priority-secondary, -#content .ui-widget-content .ui-priority-secondary, -#content .ui-widget-header .ui-priority-secondary { - opacity: .7; - filter:Alpha(Opacity=70); - font-weight: normal; -} -#content .ui-state-disabled, -#content .ui-widget-content .ui-state-disabled, -#content .ui-widget-header .ui-state-disabled { - opacity: .35; - filter:Alpha(Opacity=35); - background-image: none; -} -#content .ui-state-disabled .ui-icon { - filter:Alpha(Opacity=35); /* For IE8 - See #6059 */ -} - -/* Icons -----------------------------------*/ - -/* states and images */ -#content .ui-icon { - width: 16px; - height: 16px; -} -#content .ui-icon, -#content .ui-widget-content .ui-icon { - background-image: url(images/ui-icons_222222_256x240.png); -} -#content .ui-widget-header .ui-icon { - background-image: url(images/ui-icons_222222_256x240.png); -} -#content .ui-state-default .ui-icon { - background-image: url(images/ui-icons_888888_256x240.png); -} -#content .ui-state-hover .ui-icon, -#content .ui-state-focus .ui-icon { - background-image: url(images/ui-icons_454545_256x240.png); -} -#content .ui-state-active .ui-icon { - background-image: url(images/ui-icons_454545_256x240.png); -} -#content .ui-state-highlight .ui-icon { - background-image: url(images/ui-icons_2e83ff_256x240.png); -} -#content .ui-state-error .ui-icon, -#content .ui-state-error-text .ui-icon { - background-image: url(images/ui-icons_cd0a0a_256x240.png); -} - -/* positioning */ -#content .ui-icon-blank { background-position: 16px 16px; } -#content .ui-icon-carat-1-n { background-position: 0 0; } -#content .ui-icon-carat-1-ne { background-position: -16px 0; } -#content .ui-icon-carat-1-e { background-position: -32px 0; } -#content .ui-icon-carat-1-se { background-position: -48px 0; } -#content .ui-icon-carat-1-s { background-position: -64px 0; } -#content .ui-icon-carat-1-sw { background-position: -80px 0; } -#content .ui-icon-carat-1-w { background-position: -96px 0; } -#content .ui-icon-carat-1-nw { background-position: -112px 0; } -#content .ui-icon-carat-2-n-s { background-position: -128px 0; } -#content .ui-icon-carat-2-e-w { background-position: -144px 0; } -#content .ui-icon-triangle-1-n { background-position: 0 -16px; } -#content .ui-icon-triangle-1-ne { background-position: -16px -16px; } -#content .ui-icon-triangle-1-e { background-position: -32px -16px; } -#content .ui-icon-triangle-1-se { background-position: -48px -16px; } -#content .ui-icon-triangle-1-s { background-position: -64px -16px; } -#content .ui-icon-triangle-1-sw { background-position: -80px -16px; } -#content .ui-icon-triangle-1-w { background-position: -96px -16px; } -#content .ui-icon-triangle-1-nw { background-position: -112px -16px; } -#content .ui-icon-triangle-2-n-s { background-position: -128px -16px; } -#content .ui-icon-triangle-2-e-w { background-position: -144px -16px; } -#content .ui-icon-arrow-1-n { background-position: 0 -32px; } -#content .ui-icon-arrow-1-ne { background-position: -16px -32px; } -#content .ui-icon-arrow-1-e { background-position: -32px -32px; } -#content .ui-icon-arrow-1-se { background-position: -48px -32px; } -#content .ui-icon-arrow-1-s { background-position: -64px -32px; } -#content .ui-icon-arrow-1-sw { background-position: -80px -32px; } -#content .ui-icon-arrow-1-w { background-position: -96px -32px; } -#content .ui-icon-arrow-1-nw { background-position: -112px -32px; } -#content .ui-icon-arrow-2-n-s { background-position: -128px -32px; } -#content .ui-icon-arrow-2-ne-sw { background-position: -144px -32px; } -#content .ui-icon-arrow-2-e-w { background-position: -160px -32px; } -#content .ui-icon-arrow-2-se-nw { background-position: -176px -32px; } -#content .ui-icon-arrowstop-1-n { background-position: -192px -32px; } -#content .ui-icon-arrowstop-1-e { background-position: -208px -32px; } -#content .ui-icon-arrowstop-1-s { background-position: -224px -32px; } -#content .ui-icon-arrowstop-1-w { background-position: -240px -32px; } -#content .ui-icon-arrowthick-1-n { background-position: 0 -48px; } -#content .ui-icon-arrowthick-1-ne { background-position: -16px -48px; } -#content .ui-icon-arrowthick-1-e { background-position: -32px -48px; } -#content .ui-icon-arrowthick-1-se { background-position: -48px -48px; } -#content .ui-icon-arrowthick-1-s { background-position: -64px -48px; } -#content .ui-icon-arrowthick-1-sw { background-position: -80px -48px; } -#content .ui-icon-arrowthick-1-w { background-position: -96px -48px; } -#content .ui-icon-arrowthick-1-nw { background-position: -112px -48px; } -#content .ui-icon-arrowthick-2-n-s { background-position: -128px -48px; } -#content .ui-icon-arrowthick-2-ne-sw { background-position: -144px -48px; } -#content .ui-icon-arrowthick-2-e-w { background-position: -160px -48px; } -#content .ui-icon-arrowthick-2-se-nw { background-position: -176px -48px; } -#content .ui-icon-arrowthickstop-1-n { background-position: -192px -48px; } -#content .ui-icon-arrowthickstop-1-e { background-position: -208px -48px; } -#content .ui-icon-arrowthickstop-1-s { background-position: -224px -48px; } -#content .ui-icon-arrowthickstop-1-w { background-position: -240px -48px; } -#content .ui-icon-arrowreturnthick-1-w { background-position: 0 -64px; } -#content .ui-icon-arrowreturnthick-1-n { background-position: -16px -64px; } -#content .ui-icon-arrowreturnthick-1-e { background-position: -32px -64px; } -#content .ui-icon-arrowreturnthick-1-s { background-position: -48px -64px; } -#content .ui-icon-arrowreturn-1-w { background-position: -64px -64px; } -#content .ui-icon-arrowreturn-1-n { background-position: -80px -64px; } -#content .ui-icon-arrowreturn-1-e { background-position: -96px -64px; } -#content .ui-icon-arrowreturn-1-s { background-position: -112px -64px; } -#content .ui-icon-arrowrefresh-1-w { background-position: -128px -64px; } -#content .ui-icon-arrowrefresh-1-n { background-position: -144px -64px; } -#content .ui-icon-arrowrefresh-1-e { background-position: -160px -64px; } -#content .ui-icon-arrowrefresh-1-s { background-position: -176px -64px; } -#content .ui-icon-arrow-4 { background-position: 0 -80px; } -#content .ui-icon-arrow-4-diag { background-position: -16px -80px; } -#content .ui-icon-extlink { background-position: -32px -80px; } -#content .ui-icon-newwin { background-position: -48px -80px; } -#content .ui-icon-refresh { background-position: -64px -80px; } -#content .ui-icon-shuffle { background-position: -80px -80px; } -#content .ui-icon-transfer-e-w { background-position: -96px -80px; } -#content .ui-icon-transferthick-e-w { background-position: -112px -80px; } -#content .ui-icon-folder-collapsed { background-position: 0 -96px; } -#content .ui-icon-folder-open { background-position: -16px -96px; } -#content .ui-icon-document { background-position: -32px -96px; } -#content .ui-icon-document-b { background-position: -48px -96px; } -#content .ui-icon-note { background-position: -64px -96px; } -#content .ui-icon-mail-closed { background-position: -80px -96px; } -#content .ui-icon-mail-open { background-position: -96px -96px; } -#content .ui-icon-suitcase { background-position: -112px -96px; } -#content .ui-icon-comment { background-position: -128px -96px; } -#content .ui-icon-person { background-position: -144px -96px; } -#content .ui-icon-print { background-position: -160px -96px; } -#content .ui-icon-trash { background-position: -176px -96px; } -#content .ui-icon-locked { background-position: -192px -96px; } -#content .ui-icon-unlocked { background-position: -208px -96px; } -#content .ui-icon-bookmark { background-position: -224px -96px; } -#content .ui-icon-tag { background-position: -240px -96px; } -#content .ui-icon-home { background-position: 0 -112px; } -#content .ui-icon-flag { background-position: -16px -112px; } -#content .ui-icon-calendar { background-position: -32px -112px; } -#content .ui-icon-cart { background-position: -48px -112px; } -#content .ui-icon-pencil { background-position: -64px -112px; } -#content .ui-icon-clock { background-position: -80px -112px; } -#content .ui-icon-disk { background-position: -96px -112px; } -#content .ui-icon-calculator { background-position: -112px -112px; } -#content .ui-icon-zoomin { background-position: -128px -112px; } -#content .ui-icon-zoomout { background-position: -144px -112px; } -#content .ui-icon-search { background-position: -160px -112px; } -#content .ui-icon-wrench { background-position: -176px -112px; } -#content .ui-icon-gear { background-position: -192px -112px; } -#content .ui-icon-heart { background-position: -208px -112px; } -#content .ui-icon-star { background-position: -224px -112px; } -#content .ui-icon-link { background-position: -240px -112px; } -#content .ui-icon-cancel { background-position: 0 -128px; } -#content .ui-icon-plus { background-position: -16px -128px; } -#content .ui-icon-plusthick { background-position: -32px -128px; } -#content .ui-icon-minus { background-position: -48px -128px; } -#content .ui-icon-minusthick { background-position: -64px -128px; } -#content .ui-icon-close { background-position: -80px -128px; } -#content .ui-icon-closethick { background-position: -96px -128px; } -#content .ui-icon-key { background-position: -112px -128px; } -#content .ui-icon-lightbulb { background-position: -128px -128px; } -#content .ui-icon-scissors { background-position: -144px -128px; } -#content .ui-icon-clipboard { background-position: -160px -128px; } -#content .ui-icon-copy { background-position: -176px -128px; } -#content .ui-icon-contact { background-position: -192px -128px; } -#content .ui-icon-image { background-position: -208px -128px; } -#content .ui-icon-video { background-position: -224px -128px; } -#content .ui-icon-script { background-position: -240px -128px; } -#content .ui-icon-alert { background-position: 0 -144px; } -#content .ui-icon-info { background-position: -16px -144px; } -#content .ui-icon-notice { background-position: -32px -144px; } -#content .ui-icon-help { background-position: -48px -144px; } -#content .ui-icon-check { background-position: -64px -144px; } -#content .ui-icon-bullet { background-position: -80px -144px; } -#content .ui-icon-radio-on { background-position: -96px -144px; } -#content .ui-icon-radio-off { background-position: -112px -144px; } -#content .ui-icon-pin-w { background-position: -128px -144px; } -#content .ui-icon-pin-s { background-position: -144px -144px; } -#content .ui-icon-play { background-position: 0 -160px; } -#content .ui-icon-pause { background-position: -16px -160px; } -#content .ui-icon-seek-next { background-position: -32px -160px; } -#content .ui-icon-seek-prev { background-position: -48px -160px; } -#content .ui-icon-seek-end { background-position: -64px -160px; } -#content .ui-icon-seek-start { background-position: -80px -160px; } -/* ui-icon-seek-first is deprecated, use ui-icon-seek-start instead */ -#content .ui-icon-seek-first { background-position: -80px -160px; } -#content .ui-icon-stop { background-position: -96px -160px; } -#content .ui-icon-eject { background-position: -112px -160px; } -#content .ui-icon-volume-off { background-position: -128px -160px; } -#content .ui-icon-volume-on { background-position: -144px -160px; } -#content .ui-icon-power { background-position: 0 -176px; } -#content .ui-icon-signal-diag { background-position: -16px -176px; } -#content .ui-icon-signal { background-position: -32px -176px; } -#content .ui-icon-battery-0 { background-position: -48px -176px; } -#content .ui-icon-battery-1 { background-position: -64px -176px; } -#content .ui-icon-battery-2 { background-position: -80px -176px; } -#content .ui-icon-battery-3 { background-position: -96px -176px; } -#content .ui-icon-circle-plus { background-position: 0 -192px; } -#content .ui-icon-circle-minus { background-position: -16px -192px; } -#content .ui-icon-circle-close { background-position: -32px -192px; } -#content .ui-icon-circle-triangle-e { background-position: -48px -192px; } -#content .ui-icon-circle-triangle-s { background-position: -64px -192px; } -#content .ui-icon-circle-triangle-w { background-position: -80px -192px; } -#content .ui-icon-circle-triangle-n { background-position: -96px -192px; } -#content .ui-icon-circle-arrow-e { background-position: -112px -192px; } -#content .ui-icon-circle-arrow-s { background-position: -128px -192px; } -#content .ui-icon-circle-arrow-w { background-position: -144px -192px; } -#content .ui-icon-circle-arrow-n { background-position: -160px -192px; } -#content .ui-icon-circle-zoomin { background-position: -176px -192px; } -#content .ui-icon-circle-zoomout { background-position: -192px -192px; } -#content .ui-icon-circle-check { background-position: -208px -192px; } -#content .ui-icon-circlesmall-plus { background-position: 0 -208px; } -#content .ui-icon-circlesmall-minus { background-position: -16px -208px; } -#content .ui-icon-circlesmall-close { background-position: -32px -208px; } -#content .ui-icon-squaresmall-plus { background-position: -48px -208px; } -#content .ui-icon-squaresmall-minus { background-position: -64px -208px; } -#content .ui-icon-squaresmall-close { background-position: -80px -208px; } -#content .ui-icon-grip-dotted-vertical { background-position: 0 -224px; } -#content .ui-icon-grip-dotted-horizontal { background-position: -16px -224px; } -#content .ui-icon-grip-solid-vertical { background-position: -32px -224px; } -#content .ui-icon-grip-solid-horizontal { background-position: -48px -224px; } -#content .ui-icon-gripsmall-diagonal-se { background-position: -64px -224px; } -#content .ui-icon-grip-diagonal-se { background-position: -80px -224px; } - - -/* Misc visuals -----------------------------------*/ - -/* Corner radius */ -#content .ui-corner-all, -#content .ui-corner-top, -#content .ui-corner-left, -#content .ui-corner-tl { - border-top-left-radius: 4px; -} -#content .ui-corner-all, -#content .ui-corner-top, -#content .ui-corner-right, -#content .ui-corner-tr { - border-top-right-radius: 4px; -} -#content .ui-corner-all, -#content .ui-corner-bottom, -#content .ui-corner-left, -#content .ui-corner-bl { - border-bottom-left-radius: 4px; -} -#content .ui-corner-all, -#content .ui-corner-bottom, -#content .ui-corner-right, -#content .ui-corner-br { - border-bottom-right-radius: 4px; -} - -/* Overlays */ -#content .ui-widget-overlay { - background: #aaaaaa url(images/ui-bg_flat_0_aaaaaa_40x100.png) 50% 50% repeat-x; - opacity: .3; - filter: Alpha(Opacity=30); -} -#content .ui-widget-shadow { - margin: -8px 0 0 -8px; - padding: 8px; - background: #aaaaaa url(images/ui-bg_flat_0_aaaaaa_40x100.png) 50% 50% repeat-x; - opacity: .3; - filter: Alpha(Opacity=30); - border-radius: 8px; -} diff --git a/themes/elegant/admin/upgrade.inc.php b/themes/elegant/admin/upgrade.inc.php deleted file mode 100644 index b07fb4768..000000000 --- a/themes/elegant/admin/upgrade.inc.php +++ /dev/null @@ -1,28 +0,0 @@ - 'on', //on - off - disabled - 'p_pict_descr' => 'on', //on - off - disabled - 'p_pict_comment' => 'off', //on - off - disabled - ); - - conf_update_param('elegant', $config, true); -} -elseif (count(safe_unserialize( $conf['elegant'] ))!=3) -{ - $conff = safe_unserialize($conf['elegant']); - $config = array( - 'p_main_menu' => (isset($conff['p_main_menu'])) ? $conff['p_main_menu'] :'on', - 'p_pict_descr' => (isset($conff['p_pict_descr'])) ? $conff['p_pict_descr'] :'on', - 'p_pict_comment' => (isset($conff['p_pict_comment'])) ? $conff['p_pict_comment'] :'off', - ); - - conf_update_param('elegant', $config, true); -} -?> \ No newline at end of file diff --git a/themes/elegant/fix-ie7.css b/themes/elegant/fix-ie7.css deleted file mode 100644 index 380666696..000000000 --- a/themes/elegant/fix-ie7.css +++ /dev/null @@ -1,3 +0,0 @@ -#theImage.infoshown { float: left;} -#theImage.infohidden { float: right;} -#imageToolBar .actionButtons { float: right;} \ No newline at end of file diff --git a/themes/elegant/icon/arrows_ccc.png b/themes/elegant/icon/arrows_ccc.png deleted file mode 100644 index d4e0b3514..000000000 Binary files a/themes/elegant/icon/arrows_ccc.png and /dev/null differ diff --git a/themes/elegant/icon/arrows_fff.png b/themes/elegant/icon/arrows_fff.png deleted file mode 100644 index a3a4cd675..000000000 Binary files a/themes/elegant/icon/arrows_fff.png and /dev/null differ diff --git a/themes/elegant/icon/icons_sprite-hover.png b/themes/elegant/icon/icons_sprite-hover.png deleted file mode 100644 index f181301af..000000000 Binary files a/themes/elegant/icon/icons_sprite-hover.png and /dev/null differ diff --git a/themes/elegant/icon/icons_sprite.png b/themes/elegant/icon/icons_sprite.png deleted file mode 100644 index af96ffedc..000000000 Binary files a/themes/elegant/icon/icons_sprite.png and /dev/null differ diff --git a/themes/elegant/icon/icons_sprite.xcf b/themes/elegant/icon/icons_sprite.xcf deleted file mode 100644 index e9dfe623f..000000000 Binary files a/themes/elegant/icon/icons_sprite.xcf and /dev/null differ diff --git a/themes/elegant/icon/img_next.png b/themes/elegant/icon/img_next.png deleted file mode 100644 index be982ed82..000000000 Binary files a/themes/elegant/icon/img_next.png and /dev/null differ diff --git a/themes/elegant/icon/img_prev.png b/themes/elegant/icon/img_prev.png deleted file mode 100644 index 1061c77b5..000000000 Binary files a/themes/elegant/icon/img_prev.png and /dev/null differ diff --git a/themes/elegant/icon/none.png b/themes/elegant/icon/none.png deleted file mode 100644 index f32e0d46b..000000000 Binary files a/themes/elegant/icon/none.png and /dev/null differ diff --git a/themes/elegant/icon/rating-stars.png b/themes/elegant/icon/rating-stars.png deleted file mode 100644 index b4d4de476..000000000 Binary files a/themes/elegant/icon/rating-stars.png and /dev/null differ diff --git a/themes/elegant/index.php b/themes/elegant/index.php deleted file mode 100644 index 58ea04e8f..000000000 --- a/themes/elegant/index.php +++ /dev/null @@ -1,15 +0,0 @@ - diff --git a/themes/elegant/language/ar_SA/theme.lang.php b/themes/elegant/language/ar_SA/theme.lang.php deleted file mode 100644 index 74abd8223..000000000 --- a/themes/elegant/language/ar_SA/theme.lang.php +++ /dev/null @@ -1,17 +0,0 @@ - \ No newline at end of file diff --git a/themes/elegant/language/bg_BG/theme.lang.php b/themes/elegant/language/bg_BG/theme.lang.php deleted file mode 100644 index 5e68f94e6..000000000 --- a/themes/elegant/language/bg_BG/theme.lang.php +++ /dev/null @@ -1,17 +0,0 @@ - \ No newline at end of file diff --git a/themes/elegant/language/br_FR/theme.lang.php b/themes/elegant/language/br_FR/theme.lang.php deleted file mode 100644 index f74c94b76..000000000 --- a/themes/elegant/language/br_FR/theme.lang.php +++ /dev/null @@ -1,17 +0,0 @@ - \ No newline at end of file diff --git a/themes/elegant/language/ca_ES/theme.lang.php b/themes/elegant/language/ca_ES/theme.lang.php deleted file mode 100644 index fd471ad8f..000000000 --- a/themes/elegant/language/ca_ES/theme.lang.php +++ /dev/null @@ -1,17 +0,0 @@ - \ No newline at end of file diff --git a/themes/elegant/language/cs_CZ/index.php b/themes/elegant/language/cs_CZ/index.php deleted file mode 100644 index c01bbd832..000000000 --- a/themes/elegant/language/cs_CZ/index.php +++ /dev/null @@ -1,15 +0,0 @@ - diff --git a/themes/elegant/language/cs_CZ/theme.lang.php b/themes/elegant/language/cs_CZ/theme.lang.php deleted file mode 100644 index b5e534976..000000000 --- a/themes/elegant/language/cs_CZ/theme.lang.php +++ /dev/null @@ -1,11 +0,0 @@ - \ No newline at end of file diff --git a/themes/elegant/language/da_DK/theme.lang.php b/themes/elegant/language/da_DK/theme.lang.php deleted file mode 100644 index 32af74f0e..000000000 --- a/themes/elegant/language/da_DK/theme.lang.php +++ /dev/null @@ -1,17 +0,0 @@ - \ No newline at end of file diff --git a/themes/elegant/language/de_DE/theme.lang.php b/themes/elegant/language/de_DE/theme.lang.php deleted file mode 100644 index 9e0ec9d2a..000000000 --- a/themes/elegant/language/de_DE/theme.lang.php +++ /dev/null @@ -1,16 +0,0 @@ - \ No newline at end of file diff --git a/themes/elegant/language/en_UK/index.php b/themes/elegant/language/en_UK/index.php deleted file mode 100644 index c01bbd832..000000000 --- a/themes/elegant/language/en_UK/index.php +++ /dev/null @@ -1,15 +0,0 @@ - diff --git a/themes/elegant/language/en_UK/theme.lang.php b/themes/elegant/language/en_UK/theme.lang.php deleted file mode 100644 index c2eb97e86..000000000 --- a/themes/elegant/language/en_UK/theme.lang.php +++ /dev/null @@ -1,11 +0,0 @@ - \ No newline at end of file diff --git a/themes/elegant/language/eo_EO/theme.lang.php b/themes/elegant/language/eo_EO/theme.lang.php deleted file mode 100644 index 6226882cd..000000000 --- a/themes/elegant/language/eo_EO/theme.lang.php +++ /dev/null @@ -1,17 +0,0 @@ - \ No newline at end of file diff --git a/themes/elegant/language/es_ES/theme.lang.php b/themes/elegant/language/es_ES/theme.lang.php deleted file mode 100644 index 13f2f2d9b..000000000 --- a/themes/elegant/language/es_ES/theme.lang.php +++ /dev/null @@ -1,17 +0,0 @@ - \ No newline at end of file diff --git a/themes/elegant/language/et_EE/theme.lang.php b/themes/elegant/language/et_EE/theme.lang.php deleted file mode 100644 index 5b8fb91e7..000000000 --- a/themes/elegant/language/et_EE/theme.lang.php +++ /dev/null @@ -1,16 +0,0 @@ - \ No newline at end of file diff --git a/themes/elegant/language/fi_FI/theme.lang.php b/themes/elegant/language/fi_FI/theme.lang.php deleted file mode 100644 index 6e28ea198..000000000 --- a/themes/elegant/language/fi_FI/theme.lang.php +++ /dev/null @@ -1,17 +0,0 @@ - \ No newline at end of file diff --git a/themes/elegant/language/fr_CA/index.php b/themes/elegant/language/fr_CA/index.php deleted file mode 100644 index c01bbd832..000000000 --- a/themes/elegant/language/fr_CA/index.php +++ /dev/null @@ -1,15 +0,0 @@ - diff --git a/themes/elegant/language/fr_CA/theme.lang.php b/themes/elegant/language/fr_CA/theme.lang.php deleted file mode 100644 index 46b8a3bcc..000000000 --- a/themes/elegant/language/fr_CA/theme.lang.php +++ /dev/null @@ -1,12 +0,0 @@ - \ No newline at end of file diff --git a/themes/elegant/language/fr_FR/index.php b/themes/elegant/language/fr_FR/index.php deleted file mode 100644 index c01bbd832..000000000 --- a/themes/elegant/language/fr_FR/index.php +++ /dev/null @@ -1,15 +0,0 @@ - diff --git a/themes/elegant/language/fr_FR/theme.lang.php b/themes/elegant/language/fr_FR/theme.lang.php deleted file mode 100644 index 5b5ad5b2e..000000000 --- a/themes/elegant/language/fr_FR/theme.lang.php +++ /dev/null @@ -1,12 +0,0 @@ - \ No newline at end of file diff --git a/themes/elegant/language/gl_ES/theme.lang.php b/themes/elegant/language/gl_ES/theme.lang.php deleted file mode 100644 index 4c52b4f65..000000000 --- a/themes/elegant/language/gl_ES/theme.lang.php +++ /dev/null @@ -1,16 +0,0 @@ - diff --git a/themes/elegant/language/he_IL/theme.lang.php b/themes/elegant/language/he_IL/theme.lang.php deleted file mode 100644 index 477d284ea..000000000 --- a/themes/elegant/language/he_IL/theme.lang.php +++ /dev/null @@ -1,16 +0,0 @@ - \ No newline at end of file diff --git a/themes/elegant/language/index.php b/themes/elegant/language/index.php deleted file mode 100644 index c01bbd832..000000000 --- a/themes/elegant/language/index.php +++ /dev/null @@ -1,15 +0,0 @@ - diff --git a/themes/elegant/language/it_IT/theme.lang.php b/themes/elegant/language/it_IT/theme.lang.php deleted file mode 100644 index f0c808ca5..000000000 --- a/themes/elegant/language/it_IT/theme.lang.php +++ /dev/null @@ -1,17 +0,0 @@ - \ No newline at end of file diff --git a/themes/elegant/language/ja_JP/index.php b/themes/elegant/language/ja_JP/index.php deleted file mode 100644 index ec6605317..000000000 --- a/themes/elegant/language/ja_JP/index.php +++ /dev/null @@ -1,7 +0,0 @@ - diff --git a/themes/elegant/language/ja_JP/theme.lang.php b/themes/elegant/language/ja_JP/theme.lang.php deleted file mode 100644 index 0737204a7..000000000 --- a/themes/elegant/language/ja_JP/theme.lang.php +++ /dev/null @@ -1,16 +0,0 @@ - diff --git a/themes/elegant/language/km_KH/theme.lang.php b/themes/elegant/language/km_KH/theme.lang.php deleted file mode 100644 index 672488144..000000000 --- a/themes/elegant/language/km_KH/theme.lang.php +++ /dev/null @@ -1,17 +0,0 @@ - \ No newline at end of file diff --git a/themes/elegant/language/kn_IN/theme.lang.php b/themes/elegant/language/kn_IN/theme.lang.php deleted file mode 100644 index 14273677e..000000000 --- a/themes/elegant/language/kn_IN/theme.lang.php +++ /dev/null @@ -1,17 +0,0 @@ - \ No newline at end of file diff --git a/themes/elegant/language/ko_KR/theme.lang.php b/themes/elegant/language/ko_KR/theme.lang.php deleted file mode 100644 index ab2904943..000000000 --- a/themes/elegant/language/ko_KR/theme.lang.php +++ /dev/null @@ -1,17 +0,0 @@ - \ No newline at end of file diff --git a/themes/elegant/language/lt_LT/theme.lang.php b/themes/elegant/language/lt_LT/theme.lang.php deleted file mode 100644 index c97774809..000000000 --- a/themes/elegant/language/lt_LT/theme.lang.php +++ /dev/null @@ -1,17 +0,0 @@ - \ No newline at end of file diff --git a/themes/elegant/language/lv_LV/theme.lang.php b/themes/elegant/language/lv_LV/theme.lang.php deleted file mode 100644 index af23655c0..000000000 --- a/themes/elegant/language/lv_LV/theme.lang.php +++ /dev/null @@ -1,17 +0,0 @@ - \ No newline at end of file diff --git a/themes/elegant/language/mn_MN/index.php b/themes/elegant/language/mn_MN/index.php deleted file mode 100644 index ec6605317..000000000 --- a/themes/elegant/language/mn_MN/index.php +++ /dev/null @@ -1,7 +0,0 @@ - diff --git a/themes/elegant/language/mn_MN/theme.lang.php b/themes/elegant/language/mn_MN/theme.lang.php deleted file mode 100644 index bee23f289..000000000 --- a/themes/elegant/language/mn_MN/theme.lang.php +++ /dev/null @@ -1,17 +0,0 @@ - \ No newline at end of file diff --git a/themes/elegant/language/nb_NO/theme.lang.php b/themes/elegant/language/nb_NO/theme.lang.php deleted file mode 100644 index bbe9b90cd..000000000 --- a/themes/elegant/language/nb_NO/theme.lang.php +++ /dev/null @@ -1,17 +0,0 @@ - \ No newline at end of file diff --git a/themes/elegant/language/nl_NL/theme.lang.php b/themes/elegant/language/nl_NL/theme.lang.php deleted file mode 100644 index a1d91e9a1..000000000 --- a/themes/elegant/language/nl_NL/theme.lang.php +++ /dev/null @@ -1,16 +0,0 @@ - \ No newline at end of file diff --git a/themes/elegant/language/pl_PL/theme.lang.php b/themes/elegant/language/pl_PL/theme.lang.php deleted file mode 100644 index 61020c8f3..000000000 --- a/themes/elegant/language/pl_PL/theme.lang.php +++ /dev/null @@ -1,17 +0,0 @@ - \ No newline at end of file diff --git a/themes/elegant/language/pt_BR/theme.lang.php b/themes/elegant/language/pt_BR/theme.lang.php deleted file mode 100644 index e31e8b9d6..000000000 --- a/themes/elegant/language/pt_BR/theme.lang.php +++ /dev/null @@ -1,17 +0,0 @@ - \ No newline at end of file diff --git a/themes/elegant/language/pt_PT/theme.lang.php b/themes/elegant/language/pt_PT/theme.lang.php deleted file mode 100644 index 3bf665290..000000000 --- a/themes/elegant/language/pt_PT/theme.lang.php +++ /dev/null @@ -1,17 +0,0 @@ - \ No newline at end of file diff --git a/themes/elegant/language/ro_RO/theme.lang.php b/themes/elegant/language/ro_RO/theme.lang.php deleted file mode 100644 index 5a5349f73..000000000 --- a/themes/elegant/language/ro_RO/theme.lang.php +++ /dev/null @@ -1,17 +0,0 @@ - \ No newline at end of file diff --git a/themes/elegant/language/ru_RU/theme.lang.php b/themes/elegant/language/ru_RU/theme.lang.php deleted file mode 100644 index c28d2352e..000000000 --- a/themes/elegant/language/ru_RU/theme.lang.php +++ /dev/null @@ -1,17 +0,0 @@ - \ No newline at end of file diff --git a/themes/elegant/language/sk_SK/theme.lang.php b/themes/elegant/language/sk_SK/theme.lang.php deleted file mode 100644 index d8b4a8d38..000000000 --- a/themes/elegant/language/sk_SK/theme.lang.php +++ /dev/null @@ -1,17 +0,0 @@ - \ No newline at end of file diff --git a/themes/elegant/language/sl_SI/theme.lang.php b/themes/elegant/language/sl_SI/theme.lang.php deleted file mode 100644 index 678a2315c..000000000 --- a/themes/elegant/language/sl_SI/theme.lang.php +++ /dev/null @@ -1,17 +0,0 @@ - \ No newline at end of file diff --git a/themes/elegant/language/sr_RS/index.php b/themes/elegant/language/sr_RS/index.php deleted file mode 100644 index ec6605317..000000000 --- a/themes/elegant/language/sr_RS/index.php +++ /dev/null @@ -1,7 +0,0 @@ - diff --git a/themes/elegant/language/sr_RS/theme.lang.php b/themes/elegant/language/sr_RS/theme.lang.php deleted file mode 100644 index 67b934063..000000000 --- a/themes/elegant/language/sr_RS/theme.lang.php +++ /dev/null @@ -1,16 +0,0 @@ - \ No newline at end of file diff --git a/themes/elegant/language/ta_IN/theme.lang.php b/themes/elegant/language/ta_IN/theme.lang.php deleted file mode 100644 index 15826689d..000000000 --- a/themes/elegant/language/ta_IN/theme.lang.php +++ /dev/null @@ -1,18 +0,0 @@ - \ No newline at end of file diff --git a/themes/elegant/language/th_TH/theme.lang.php b/themes/elegant/language/th_TH/theme.lang.php deleted file mode 100644 index b641b3b19..000000000 --- a/themes/elegant/language/th_TH/theme.lang.php +++ /dev/null @@ -1,18 +0,0 @@ - \ No newline at end of file diff --git a/themes/elegant/language/tr_TR/theme.lang.php b/themes/elegant/language/tr_TR/theme.lang.php deleted file mode 100644 index 216931bc5..000000000 --- a/themes/elegant/language/tr_TR/theme.lang.php +++ /dev/null @@ -1,17 +0,0 @@ - \ No newline at end of file diff --git a/themes/elegant/language/uk_UA/theme.lang.php b/themes/elegant/language/uk_UA/theme.lang.php deleted file mode 100644 index b34287dde..000000000 --- a/themes/elegant/language/uk_UA/theme.lang.php +++ /dev/null @@ -1,17 +0,0 @@ - \ No newline at end of file diff --git a/themes/elegant/language/vi_VN/theme.lang.php b/themes/elegant/language/vi_VN/theme.lang.php deleted file mode 100644 index 675d81657..000000000 --- a/themes/elegant/language/vi_VN/theme.lang.php +++ /dev/null @@ -1,17 +0,0 @@ - \ No newline at end of file diff --git a/themes/elegant/language/zh_CN/theme.lang.php b/themes/elegant/language/zh_CN/theme.lang.php deleted file mode 100644 index 13984a0a8..000000000 --- a/themes/elegant/language/zh_CN/theme.lang.php +++ /dev/null @@ -1,17 +0,0 @@ - \ No newline at end of file diff --git a/themes/elegant/language/zh_HK/theme.lang.php b/themes/elegant/language/zh_HK/theme.lang.php deleted file mode 100644 index e55ea0044..000000000 --- a/themes/elegant/language/zh_HK/theme.lang.php +++ /dev/null @@ -1,17 +0,0 @@ - \ No newline at end of file diff --git a/themes/elegant/language/zh_TW/theme.lang.php b/themes/elegant/language/zh_TW/theme.lang.php deleted file mode 100644 index 9d042dea4..000000000 --- a/themes/elegant/language/zh_TW/theme.lang.php +++ /dev/null @@ -1,17 +0,0 @@ - \ No newline at end of file diff --git a/themes/elegant/local_head.tpl b/themes/elegant/local_head.tpl deleted file mode 100644 index 8c2b4045c..000000000 --- a/themes/elegant/local_head.tpl +++ /dev/null @@ -1,11 +0,0 @@ -{footer_script} - var p_main_menu = "{$elegant.p_main_menu}", p_pict_descr = "{$elegant.p_pict_descr}", p_pict_comment = "{$elegant.p_pict_comment}"; -{/footer_script} -{if $BODY_ID=='thePicturePage'} - {combine_script id='elegant.scripts_pp' load='footer' require='jquery' path='themes/elegant/scripts_pp.js'} -{else} - {combine_script id='elegant.scripts' load='footer' require='jquery' path='themes/elegant/scripts.js'} -{/if} - diff --git a/themes/elegant/screenshot.png b/themes/elegant/screenshot.png deleted file mode 100644 index 5d938d235..000000000 Binary files a/themes/elegant/screenshot.png and /dev/null differ diff --git a/themes/elegant/scripts.js b/themes/elegant/scripts.js deleted file mode 100644 index 51da49fd6..000000000 --- a/themes/elegant/scripts.js +++ /dev/null @@ -1,54 +0,0 @@ -(function() { - var session_storage = window.sessionStorage || {}; - - var menubar=jQuery("#menubar"), - menuswitcher=jQuery("#menuSwitcher"), - content=jQuery("#the_page > .content"), - pcontent=jQuery("#content"); - - function hideMenu(delay) { - menubar.hide(delay); - menuswitcher.addClass("menuhidden").removeClass("menushown"); - content.addClass("menuhidden").removeClass("menushown"); - pcontent.addClass("menuhidden").removeClass("menushown"); - session_storage['page-menu'] = 'hidden'; - } - - function showMenu(delay) { - menubar.show(delay); - menuswitcher.addClass("menushown").removeClass("menuhidden"); - content.addClass("menushown").removeClass("menuhidden"); - pcontent.addClass("menushown").removeClass("menuhidden"); - session_storage['page-menu'] = 'visible'; - } - - jQuery(function(){ - if (menubar.length == 1 && p_main_menu!="disabled") { - menuswitcher.html(' '); - - if (session_storage['page-menu'] === undefined && p_main_menu == 'off') { - session_storage['page-menu'] = 'hidden'; - } - - if (session_storage['page-menu'] == 'hidden') { - hideMenu(0); - } - else { - showMenu(0); - } - - menuswitcher.click(function(e){ - if (menubar.is(":hidden")) { - showMenu(0); - } - else { - hideMenu(0); - } - e.preventDefault(); - }); - } - else if (menubar.length == 1 && p_main_menu=="disabled") { - showMenu(0); - } - }); -}()); \ No newline at end of file diff --git a/themes/elegant/scripts_pp.js b/themes/elegant/scripts_pp.js deleted file mode 100644 index f85570d7c..000000000 --- a/themes/elegant/scripts_pp.js +++ /dev/null @@ -1,172 +0,0 @@ -(function() { - var session_storage = window.sessionStorage || {}; - - var menubar=jQuery("#menubar"), - menuswitcher, - content=jQuery("#the_page > .content"), - pcontent=jQuery("#content"), - imageInfos=jQuery("#imageInfos"), - infoswitcher, - theImage=jQuery("#theImage"), - comments=jQuery("#thePicturePage #comments"), - comments_button, - commentsswitcher, - comments_add, - comments_top_offset = 0; - - function hideMenu(delay) { - menubar.hide(delay); - menuswitcher.addClass("menuhidden").removeClass("menushown"); - content.addClass("menuhidden").removeClass("menushown"); - pcontent.addClass("menuhidden").removeClass("menushown"); - session_storage['picture-menu'] = 'hidden'; - } - - function showMenu(delay) { - menubar.show(delay); - menuswitcher.addClass("menushown").removeClass("menuhidden"); - content.addClass("menushown").removeClass("menuhidden"); - pcontent.addClass("menushown").removeClass("menuhidden"); - session_storage['picture-menu'] = 'visible'; - } - - function hideInfo(delay) { - imageInfos.hide(delay); - infoswitcher.addClass("infohidden").removeClass("infoshown"); - theImage.addClass("infohidden").removeClass("infoshown"); - session_storage['side-info'] = 'hidden'; - } - - function showInfo(delay) { - imageInfos.show(delay); - infoswitcher.addClass("infoshown").removeClass("infohidden"); - theImage.addClass("infoshown").removeClass("infohidden"); - session_storage['side-info'] = 'visible'; - } - - function commentsToggle() { - if (comments.hasClass("commentshidden")) { - comments.removeClass("commentshidden").addClass("commentsshown"); - comments_button.addClass("comments_toggle_off").removeClass("comments_toggle_on"); - session_storage['comments'] = 'visible'; - comments_top_offset = comments_add.offset().top - parseFloat(comments_add.css('marginTop').replace(/auto/, 0)); - } - else { - comments.addClass("commentshidden").removeClass("commentsshown"); - comments_button.addClass("comments_toggle_on").removeClass("comments_toggle_off"); - session_storage['comments'] = 'hidden'; - comments_top_offset = 0; - } - } - - jQuery(function(){ - // side-menu show/hide - if (menubar.length == 1 && p_main_menu!="disabled") { - menuswitcher=jQuery("#menuSwitcher"); - - menuswitcher.html(' '); - - if (session_storage['picture-menu'] === undefined && p_main_menu == 'off') { - session_storage['picture-menu'] = 'hidden'; - } - - if (session_storage['picture-menu'] == 'hidden') { - hideMenu(0); - } - else { - showMenu(0); - } - - menuswitcher.click(function(e){ - if (menubar.is(":hidden")) { - showMenu(0); - } - else { - hideMenu(0); - } - e.preventDefault(); - }); - } - - // info show/hide - if (imageInfos.length == 1 && p_pict_descr!="disabled") { - infoswitcher=jQuery("#infoSwitcher"); - - infoswitcher.html(' '); - - if (session_storage['side-info'] === undefined && p_pict_descr == 'off') { - session_storage['side-info'] = 'hidden'; - } - - if (session_storage['side-info'] == 'hidden') { - hideInfo(0); - } - else { - showInfo(0); - } - - infoswitcher.click(function(e){ - if (imageInfos.is(":hidden")) { - showInfo(0); - } - else { - hideInfo(0); - } - e.preventDefault(); - }); - } - - // comments show/hide - if (comments.length == 1 && p_pict_comment!="disabled") { - commentsswitcher=jQuery("#commentsSwitcher"); - comments_button=jQuery("#comments h3"); - comments_add=jQuery('#commentAdd'); - - commentsswitcher.html(' '); - - if (comments_button.length == 0) { - jQuery("#addComment").before("Comments"); - comments_button=jQuery("#comments h3"); - } - - if (session_storage['comments'] === undefined && p_pict_comment == 'off') { - session_storage['comments'] = 'hidden'; - } - - if (session_storage['comments'] == 'hidden') { - comments.addClass("commentshidden"); - comments_button.addClass("comments_toggle comments_toggle_on"); - } - else { - comments.addClass("commentsshown"); - comments_button.addClass("comments_toggle comments_toggle_off"); - } - - comments_button.click(commentsToggle); - commentsswitcher.click(commentsToggle); - - jQuery(window).scroll(function (event) { - if (comments_top_offset==0) return; - - var y = jQuery(this).scrollTop(); - - if (y >= comments_top_offset) { - comments_add.css({ - 'position': 'absolute', - 'top': y-comments.offset().top+10 - }); - } - else { - comments_add.css({ - 'position': 'static', - 'top': 0 - }); - } - }); - - if (comments_add.is(":visible")) { - comments_top_offset = comments_add.offset().top - parseFloat(comments_add.css('marginTop').replace(/auto/, 0)); - } - } - }); -}()); diff --git a/themes/elegant/theme.css b/themes/elegant/theme.css deleted file mode 100644 index 3fb589222..000000000 --- a/themes/elegant/theme.css +++ /dev/null @@ -1,292 +0,0 @@ -/* backgrounds */ - -html, body { background-color: #111;} - -#content, .content { background-color: #222;} -.content .titrePage { background-color: #111;} - -#menubar, #the_page #menuSwitcher.menuhidden { background-color: #222;} - -#thePicturePage, #imageHeaderBar { background-color: #111;} -#imageInfos, #infoSwitcher.infohidden { background-color: #333;} -#thePicturePage #comments { background-color: #333;} -#pictureCommentList li { background-color: #444;} - -.calendarTitle { background-color: #222;} - -.switchBox, .header_notes { background-color: #555;} -.thumbnailCategory , .commentElement { background-color: #333;} -.message { background-color: #666;} - -INPUT[type="text"], INPUT[type="password"], -INPUT[type="button"], INPUT[type="submit"], -INPUT[type="reset"], INPUT[type="file"], -SELECT, TEXTAREA, OPTION { background-color: #555;} -INPUT:focus, SELECT:focus, TEXTAREA:focus { background-color: #666;} - - -/* font colors */ - -body, legend { color: #aaa;} -a { color: #ccc;} -a:hover { color: #fff;} -INPUT.rateButton { color: #fff;} -H1, H3, INPUT.rateButtonSelected { color: #ccc;} -.message { color: #fff;} -.commentContent .comments_toggle:hover { color: #fff;} -INPUT[type="text"], INPUT[type="password"], -INPUT[type="button"], INPUT[type="submit"], -INPUT[type="reset"], INPUT[type="file"], -SELECT, TEXTAREA { color: #ccc;} -INPUT:focus, SELECT:focus, TEXTAREA:focus { color: #fff;} - - -/* borders */ - -#content,.content, .content .titrePage { border-bottom: 2px solid #444;} -#imageHeaderBar { border: solid 0 #444; border-bottom-width:2px;} -#copyright { border-top-width:2px;} -#content .calendarTitleBar { border-bottom: none;} -.calendarTitle { border-top: 2px solid #444;} -.switchBox { border: 1px solid #000;} -.switchBoxTitle { border-bottom: 1px solid #444;} -INPUT, SELECT, TEXTAREA { border: 1px solid #666;} -FIELDSET {border: 2px solid #444;} - -/* form */ -legend {font-style:normal;} -#qsearchInput {margin-left:-20px} - -/* icons */ - -.pwg-icon { background-image: url(icon/icons_sprite.png);} -A:hover .pwg-icon { background-image: url(icon/icons_sprite-hover.png);} - - -/* general rules */ - -body { margin: 5px 0;} -a:hover { border-bottom: none;} -#copyright { padding:0 4px 0 0; text-align:right;} - - -/* content */ - -#the_page #content.menushown, #the_page > .content.menushown, .contentWithMenu { margin-left: 240px;} -#the_page #content.menuhidden, #the_page > .content.menuhidden { margin-left: 35px;} -#the_page #content, #the_page > .content { margin-right: 0;} - -#content,.content { margin-bottom: 4px; padding-bottom: 4px;} -#thePicturePage #content { padding-bottom: 0;} -.content .titrePage { padding:0; margin-bottom:4px;} -.content .titrePage H2 { line-height: 20px; padding: 8px 0 0 2px;} - - -/* menubar */ - -#menubar { - display: inline; - width: 230px; - float: left; - margin: 28px 8px 10px 0; - padding: 0; -} -#menubar DT { text-align: left;} -#menubar dd { padding: 0 0 1em 1em;} -#menubar .pwg-icon-filter { display: none;} - -#quickconnect FIELDSET { - margin: 0 10px 0 -10px; - border: 2px solid #444444; -} - -/* switchers */ - -#menuSwitcher { - display: block; - text-align: center; - height: 32px; - cursor: pointer; - float: left; - margin: 28px 0 0 -34px; -} - - -#imageInfos, #infoSwitcher.infohidden { border-radius: 10px 0 0 10px;} -#menubar, #the_page #menuSwitcher.menuhidden { border-radius: 0 10px 10px 0;} -#the_page #menuSwitcher.menuhidden { width: 25px; margin-left: 0;} - -#infoSwitcher { - display: block; - text-align: center; - height: 32px; - cursor: pointer; - position:absolute; - left:75%; - top:0; - margin: 10px 0 0 7px; - z-index:99; -} - -#infoSwitcher.infohidden { - width:25px; - top:10px; - right:0; - left:auto; - margin:0; -} - -#slideshow #theImage { width: 100%; margin: auto; overflow: visible;} -#theImage.infohidden { width: 100%;} - -#commentsSwitcher { float: left; margin: 2px 0; cursor:pointer;} -.noCommentContent #commentsSwitcher { display: none;} - -.switchArrow { width: 16px; height: 16px; margin: 8px 5px 8px 4px;} -.switchArrow { background: transparent url("icon/arrows_ccc.png");} -.switchArrow:hover { background: transparent url("icon/arrows_fff.png");} -.menuhidden .switchArrow { background-position: 0 0;} -.menushown .switchArrow { background-position: -16px 0;} -.infohidden .switchArrow { background-position: -16px 0;} -.infoshown .switchArrow { background-position: 0 0;} -.commentshidden .switchArrow { background-position: -48px 0;} -.commentsshown .switchArrow { background-position: -32px 0;} - - -/* switchboxes */ - -.switchBox { - border-radius: 4px 4px 4px 4px; - padding: 0.5em 10px; - text-align: left; - z-index: 100; -} -.derivativeSizeDetails { display: none;} - -/* thumbnails */ - -#thumbnails { padding-top: 5px;} -.thumbnailCategory .illustration, -.commentElement .illustration { margin: 2px; text-align: center;} - - -/* picture page */ - -.contentWithMenu #imageHeaderBar { padding: 0;} -#imageHeaderBar { padding: 0 0 0 10px;} -#imageHeaderBar { width: auto;} -#imageHeaderBar h2 { font-size: 100%; font-weight: inherit;} -#imageHeaderBar .browsePath { - display:inline-block; - float:left; - font-size:120%; - line-height:20px; - padding: 8px 0 0 2px; - font-weight:bold; - margin:0; -} -#imageToolBar .imageNumber { display: inline-block; float: right; line-height: 26px; margin: 0 2px 0 0; min-width: 40px; text-align: center;} -#imageToolBar { margin-top: -28px; margin-bottom: 0; float: right;} -#thePicturePage .pwg-button { width: 26px;} -#thePicturePage .actionButtons { margin-right: 26px;} - -#theImageAndInfos { - display: block; - width: 100%; - position: relative; -} -#theImage { - display: inline-block; - width: 75%; - vertical-align: top; - overflow: auto; - padding: 10px 0 5px 0; -} - -.rateButtonStarFull { background: url('icon/rating-stars.png') no-repeat -16px center; width:16px;} -.rateButtonStarEmpty { background: url('icon/rating-stars.png') no-repeat 0 center; width:16px;} - - -/* image infos */ - -#imageInfos { - display: inline-block; - width: 24.5%; - vertical-align: top; - padding-top: 35px; - padding-bottom: 5px; - margin: 10px 0 10px 0.5%; - word-wrap:break-word; -} - -#imageInfos .navThumbs { width: 250px; height: 130px; margin: auto; padding: 0 5px;} -#imageInfos .navThumb { position: relative; margin: 0; overflow: hidden;} -#imageInfos #linkPrev { float: left;} -#imageInfos #linkNext { float: right;} -#imageInfos .prevThumbHover { background: transparent url(icon/none.png) no-repeat center center;} -#imageInfos .prevThumbHover:hover { background: transparent url(icon/img_prev.png) no-repeat center center;} -#imageInfos .nextThumbHover { background: transparent url(icon/none.png) no-repeat center center;} -#imageInfos .nextThumbHover:hover { background: transparent url(icon/img_next.png) no-repeat center center;} - -#imageInfos dl.imageInfoTable { display: block; padding: 0 15px; margin: 12px auto;} -#imageInfos .imageInfo { display: block; line-height: 16px;} -#imageInfos .imageInfo dt { display: block; font-weight: bold; text-align: left; padding: 0;} -#imageInfos .imageInfo dd { display: block; text-align: left; margin: 0 0 5px 20px;} -#imageInfos h3 { margin: 20px 0 10px;} - - -/* image comments */ - -#thePicturePage #comments { padding: 2px 5px; position:relative;} -#thePicturePage #comments h3 { margin: 10px 0;} -#thePicturePage #comments form { margin: 10px 0;} -#thePicturePage #comments fieldset { margin: 0 1em;} - -.commentshidden #pictureComments { display: none;} -.commentContent .comments_toggle { cursor: pointer;} - -#commentAdd, #pictureCommentList { width: 48%; padding: 0 1%;} -#commentAdd { float: left; } -#pictureCommentList { float: right; } - -#commentAdd input[type="text"], -#commentAdd textarea { - width: 95%; - font-family: Arial,Helvetica,sans-serif; - font-size: 100%; -} -#pictureCommentList .commentsOrder { float: left; margin-bottom: 5px;} -#pictureCommentList .navigationBar { float: right; margin-bottom: 5px;} -#pictureComments h4 { margin: 0;} -#pictureComments form p { margin: 5px 0;} -#pictureComments form p textarea { margin: 10px 0;} -#pictureComments INPUT { margin: 10px;} -#pictureComments INPUT[type=submit] { margin: 0;} -.commentElement .description { padding: 5px;} - -/* tag page */ - -FIELDSET.tagLetter, LEGEND.tagLetterLegend, TR.tagLine { - border-color: #333; -} - -FIELDSET.tagLetter { - width:250px; -} - -TABLE.tagLetterContent { - font-size:inherit; -} - -TD.nbEntries { - white-space: nowrap; -} - -/* calendar */ - -.calendarViews { margin-top: 4px;} - -/* plugins */ - -#the_page .content .stuffs { margin: 0!important} -.categoryActions .theme_menuf { display: none;} diff --git a/themes/elegant/themeconf.inc.php b/themes/elegant/themeconf.inc.php deleted file mode 100644 index 5ff8842eb..000000000 --- a/themes/elegant/themeconf.inc.php +++ /dev/null @@ -1,27 +0,0 @@ - 'elegant', - 'parent' => 'default', - 'local_head' => 'local_head.tpl' -); -// Need upgrade? -global $conf; -include(PHPWG_THEMES_PATH.'elegant/admin/upgrade.inc.php'); - -add_event_handler('init', 'set_config_values_elegant'); -function set_config_values_elegant() -{ - global $conf, $template; - $config = unserialize( $conf['elegant'] ); - $template->assign( 'elegant', $config ); -} - -?> diff --git a/themes/smartpocket/admin/admin.inc.php b/themes/smartpocket/admin/admin.inc.php deleted file mode 100644 index 6b2069837..000000000 --- a/themes/smartpocket/admin/admin.inc.php +++ /dev/null @@ -1,28 +0,0 @@ -set_filenames(array( - 'theme_admin_content' => dirname(__FILE__) . '/admin.tpl')); - -$template->assign('options', safe_unserialize($conf['smartpocket'])); - -$template->assign_var_from_handle('ADMIN_CONTENT', 'theme_admin_content'); - -?> \ No newline at end of file diff --git a/themes/smartpocket/admin/admin.tpl b/themes/smartpocket/admin/admin.tpl deleted file mode 100644 index baf6d47fe..000000000 --- a/themes/smartpocket/admin/admin.tpl +++ /dev/null @@ -1,47 +0,0 @@ -{html_style} -.graphicalCheckbox { - font-size:16px; - line-height:16px; -} - -input[type=checkbox] { - display:none; -} -{/html_style} - -{footer_script}{literal} -jQuery(document).ready(function() { - jQuery('form li label input[type=checkbox]').change(function() { - jQuery(this).prev().toggleClass('icon-check icon-check-empty'); - }); -}); -{/literal}{/footer_script} - - - {'Smartpocket, Configuration Page'|@translate} - - - - - {'Slideshow Options'|@translate} - - - - {'Loop the slideshow'|@translate} - - - - - - {'Autohide the bar of the slideshow'|@translate} - - - - - - - - - - - diff --git a/themes/smartpocket/admin/index.php b/themes/smartpocket/admin/index.php deleted file mode 100644 index c01bbd832..000000000 --- a/themes/smartpocket/admin/index.php +++ /dev/null @@ -1,15 +0,0 @@ - diff --git a/themes/smartpocket/admin/maintain.inc.php b/themes/smartpocket/admin/maintain.inc.php deleted file mode 100644 index 92fe7b1e3..000000000 --- a/themes/smartpocket/admin/maintain.inc.php +++ /dev/null @@ -1,43 +0,0 @@ - true,//true - false - 'autohide' => 5000,//5000 - 0 - ); - - function activate($theme_version, &$errors=array()) - { - global $conf, $prefixeTable; - - if (empty($conf['smartpocket'])) - { - conf_update_param('smartpocket', $this->default_conf, true); - } - elseif (count(safe_unserialize($conf['smartpocket'])) != 2) - { - $conff = safe_unserialize($conf['smartpocket']); - - $config = array( - 'loop' => (!empty($conff['loop'])) ? $conff['loop'] :true, - 'autohide' => (!empty($conff['autohide'])) ? $conff['autohide'] :5000, - ); - - conf_update_param('smartpocket', $config, true); - } - $this->installed = true; - } - - function deactivate() - { - } - - function delete() - { - // delete configuration - conf_delete_param('smartpocket'); - } -} -?> \ No newline at end of file diff --git a/themes/smartpocket/admin/upgrade.inc.php b/themes/smartpocket/admin/upgrade.inc.php deleted file mode 100644 index 53e4e1aae..000000000 --- a/themes/smartpocket/admin/upgrade.inc.php +++ /dev/null @@ -1,25 +0,0 @@ - true,//true - false - 'autohide' => 5000,//5000 - 0 - ); - - conf_update_param('smartpocket', $config, true); -} -elseif (count(safe_unserialize($conf['smartpocket'])) != 2) -{ - $conff = safe_unserialize($conf['smartpocket']); - $config = array( - 'loop' => (!empty($conff['loop'])) ? $conff['loop'] :true, - 'autohide' => (!empty($conff['autohide'])) ? $conff['autohide'] :5000, - ); - conf_update_param('smartpocket', $config, true); -} -?> \ No newline at end of file diff --git a/themes/smartpocket/images/ajax-loader.gif b/themes/smartpocket/images/ajax-loader.gif deleted file mode 100644 index fd1a189c2..000000000 Binary files a/themes/smartpocket/images/ajax-loader.gif and /dev/null differ diff --git a/themes/smartpocket/images/ajax-loader.png b/themes/smartpocket/images/ajax-loader.png deleted file mode 100644 index 0973ae040..000000000 Binary files a/themes/smartpocket/images/ajax-loader.png and /dev/null differ diff --git a/themes/smartpocket/images/error.gif b/themes/smartpocket/images/error.gif deleted file mode 100644 index 6a96f4d61..000000000 Binary files a/themes/smartpocket/images/error.gif and /dev/null differ diff --git a/themes/smartpocket/images/icons-18-black.png b/themes/smartpocket/images/icons-18-black.png deleted file mode 100644 index 791646384..000000000 Binary files a/themes/smartpocket/images/icons-18-black.png and /dev/null differ diff --git a/themes/smartpocket/images/icons-18-white.png b/themes/smartpocket/images/icons-18-white.png deleted file mode 100644 index 3419b81f6..000000000 Binary files a/themes/smartpocket/images/icons-18-white.png and /dev/null differ diff --git a/themes/smartpocket/images/icons-36-black.png b/themes/smartpocket/images/icons-36-black.png deleted file mode 100644 index 043bfcd52..000000000 Binary files a/themes/smartpocket/images/icons-36-black.png and /dev/null differ diff --git a/themes/smartpocket/images/icons-36-white.png b/themes/smartpocket/images/icons-36-white.png deleted file mode 100644 index 12455c907..000000000 Binary files a/themes/smartpocket/images/icons-36-white.png and /dev/null differ diff --git a/themes/smartpocket/images/icons.png b/themes/smartpocket/images/icons.png deleted file mode 100644 index c4011d1d0..000000000 Binary files a/themes/smartpocket/images/icons.png and /dev/null differ diff --git a/themes/smartpocket/images/icons@2x.png b/themes/smartpocket/images/icons@2x.png deleted file mode 100644 index 87b63455d..000000000 Binary files a/themes/smartpocket/images/icons@2x.png and /dev/null differ diff --git a/themes/smartpocket/images/loader.gif b/themes/smartpocket/images/loader.gif deleted file mode 100644 index c95d05a05..000000000 Binary files a/themes/smartpocket/images/loader.gif and /dev/null differ diff --git a/themes/smartpocket/jquery.mobile.css b/themes/smartpocket/jquery.mobile.css deleted file mode 100644 index 422d175b7..000000000 --- a/themes/smartpocket/jquery.mobile.css +++ /dev/null @@ -1,3366 +0,0 @@ -/* -* jQuery Mobile 1.3.1 -* Git HEAD hash: 74b4bec049fd93e4fe40205e6157de16eb64eb46 <> Date: Mon Apr 8 2013 19:41:28 UTC -* http://jquerymobile.com -* -* Copyright 2010, 2013 jQuery Foundation, Inc. and other contributors -* Released under the MIT license. -* http://jquery.org/license -* -*/ - - -/* Swatches */ -/* A ------------------------------------------------------------------------------------------------------------*/ -.ui-bar-a { - border: 1px solid #333 /*{a-bar-border}*/; - background: #111 /*{a-bar-background-color}*/; - color: #fff /*{a-bar-color}*/; - font-weight: bold; - text-shadow: 0 /*{a-bar-shadow-x}*/ -1px /*{a-bar-shadow-y}*/ 0 /*{a-bar-shadow-radius}*/ #000 /*{a-bar-shadow-color}*/; - background-image: -webkit-gradient(linear, left top, left bottom, from( #3c3c3c /*{a-bar-background-start}*/), to( #111 /*{a-bar-background-end}*/)); /* Saf4+, Chrome */ - background-image: -webkit-linear-gradient( #3c3c3c /*{a-bar-background-start}*/, #111 /*{a-bar-background-end}*/); /* Chrome 10+, Saf5.1+ */ - background-image: -moz-linear-gradient( #3c3c3c /*{a-bar-background-start}*/, #111 /*{a-bar-background-end}*/); /* FF3.6 */ - background-image: -ms-linear-gradient( #3c3c3c /*{a-bar-background-start}*/, #111 /*{a-bar-background-end}*/); /* IE10 */ - background-image: -o-linear-gradient( #3c3c3c /*{a-bar-background-start}*/, #111 /*{a-bar-background-end}*/); /* Opera 11.10+ */ - background-image: linear-gradient( #3c3c3c /*{a-bar-background-start}*/, #111 /*{a-bar-background-end}*/); -} -.ui-bar-a, -.ui-bar-a input, -.ui-bar-a select, -.ui-bar-a textarea, -.ui-bar-a button { - font-family: Helvetica, Arial, sans-serif /*{global-font-family}*/; -} -.ui-bar-a .ui-link-inherit { - color: #fff /*{a-bar-color}*/; -} -.ui-bar-a a.ui-link { - color: #7cc4e7 /*{a-bar-link-color}*/; - font-weight: bold; -} -.ui-bar-a a.ui-link:visited { - color: #2489ce /*{a-bar-link-visited}*/; -} -.ui-bar-a a.ui-link:hover { - color: #2489ce /*{a-bar-link-hover}*/; -} -.ui-bar-a a.ui-link:active { - color: #2489ce /*{a-bar-link-active}*/; -} -.ui-body-a, -.ui-overlay-a { - border: 1px solid #444 /*{a-body-border}*/; - background: #222 /*{a-body-background-color}*/; - color: #fff /*{a-body-color}*/; - text-shadow: 0 /*{a-body-shadow-x}*/ 1px /*{a-body-shadow-y}*/ 0 /*{a-body-shadow-radius}*/ #111 /*{a-body-shadow-color}*/; - font-weight: normal; - background-image: -webkit-gradient(linear, left top, left bottom, from( #444 /*{a-body-background-start}*/), to( #222 /*{a-body-background-end}*/)); /* Saf4+, Chrome */ - background-image: -webkit-linear-gradient( #444 /*{a-body-background-start}*/, #222 /*{a-body-background-end}*/); /* Chrome 10+, Saf5.1+ */ - background-image: -moz-linear-gradient( #444 /*{a-body-background-start}*/, #222 /*{a-body-background-end}*/); /* FF3.6 */ - background-image: -ms-linear-gradient( #444 /*{a-body-background-start}*/, #222 /*{a-body-background-end}*/); /* IE10 */ - background-image: -o-linear-gradient( #444 /*{a-body-background-start}*/, #222 /*{a-body-background-end}*/); /* Opera 11.10+ */ - background-image: linear-gradient( #444 /*{a-body-background-start}*/, #222 /*{a-body-background-end}*/); -} -.ui-overlay-a { - background-image: none; - border-width: 0; -} -.ui-body-a, -.ui-body-a input, -.ui-body-a select, -.ui-body-a textarea, -.ui-body-a button { - font-family: Helvetica, Arial, sans-serif /*{global-font-family}*/; -} -.ui-body-a .ui-link-inherit { - color: #fff /*{a-body-color}*/; -} -.ui-body-a .ui-link { - color: #2489ce /*{a-body-link-color}*/; - font-weight: bold; -} -.ui-body-a .ui-link:visited { - color: #2489ce /*{a-body-link-visited}*/; -} -.ui-body-a .ui-link:hover { - color: #2489ce /*{a-body-link-hover}*/; -} -.ui-body-a .ui-link:active { - color: #2489ce /*{a-body-link-active}*/; -} -.ui-btn-up-a { - border: 1px solid #111 /*{a-bup-border}*/; - background: #333 /*{a-bup-background-color}*/; - font-weight: bold; - color: #fff /*{a-bup-color}*/; - text-shadow: 0 /*{a-bup-shadow-x}*/ 1px /*{a-bup-shadow-y}*/ 0 /*{a-bup-shadow-radius}*/ #111 /*{a-bup-shadow-color}*/; - background-image: -webkit-gradient(linear, left top, left bottom, from( #444 /*{a-bup-background-start}*/), to( #2d2d2d /*{a-bup-background-end}*/)); /* Saf4+, Chrome */ - background-image: -webkit-linear-gradient( #444 /*{a-bup-background-start}*/, #2d2d2d /*{a-bup-background-end}*/); /* Chrome 10+, Saf5.1+ */ - background-image: -moz-linear-gradient( #444 /*{a-bup-background-start}*/, #2d2d2d /*{a-bup-background-end}*/); /* FF3.6 */ - background-image: -ms-linear-gradient( #444 /*{a-bup-background-start}*/, #2d2d2d /*{a-bup-background-end}*/); /* IE10 */ - background-image: -o-linear-gradient( #444 /*{a-bup-background-start}*/, #2d2d2d /*{a-bup-background-end}*/); /* Opera 11.10+ */ - background-image: linear-gradient( #444 /*{a-bup-background-start}*/, #2d2d2d /*{a-bup-background-end}*/); -} -.ui-btn-up-a:visited, -.ui-btn-up-a a.ui-link-inherit { - color: #fff /*{a-bup-color}*/; -} -.ui-btn-hover-a { - border: 1px solid #000 /*{a-bhover-border}*/; - background: #444 /*{a-bhover-background-color}*/; - font-weight: bold; - color: #fff /*{a-bhover-color}*/; - text-shadow: 0 /*{a-bhover-shadow-x}*/ 1px /*{a-bhover-shadow-y}*/ 0 /*{a-bhover-shadow-radius}*/ #111 /*{a-bhover-shadow-color}*/; - background-image: -webkit-gradient(linear, left top, left bottom, from( #555 /*{a-bhover-background-start}*/), to( #383838 /*{a-bhover-background-end}*/)); /* Saf4+, Chrome */ - background-image: -webkit-linear-gradient( #555 /*{a-bhover-background-start}*/, #383838 /*{a-bhover-background-end}*/); /* Chrome 10+, Saf5.1+ */ - background-image: -moz-linear-gradient( #555 /*{a-bhover-background-start}*/, #383838 /*{a-bhover-background-end}*/); /* FF3.6 */ - background-image: -ms-linear-gradient( #555 /*{a-bhover-background-start}*/, #383838 /*{a-bhover-background-end}*/); /* IE10 */ - background-image: -o-linear-gradient( #555 /*{a-bhover-background-start}*/, #383838 /*{a-bhover-background-end}*/); /* Opera 11.10+ */ - background-image: linear-gradient( #555 /*{a-bhover-background-start}*/, #383838 /*{a-bhover-background-end}*/); -} -.ui-btn-hover-a:visited, -.ui-btn-hover-a:hover, -.ui-btn-hover-a a.ui-link-inherit { - color: #fff /*{a-bhover-color}*/; -} -.ui-btn-down-a { - border: 1px solid #000 /*{a-bdown-border}*/; - background: #222 /*{a-bdown-background-color}*/; - font-weight: bold; - color: #fff /*{a-bdown-color}*/; - text-shadow: 0 /*{a-bdown-shadow-x}*/ 1px /*{a-bdown-shadow-y}*/ 0 /*{a-bdown-shadow-radius}*/ #111 /*{a-bdown-shadow-color}*/; - background-image: -webkit-gradient(linear, left top, left bottom, from( #202020 /*{a-bdown-background-start}*/), to( #2c2c2c /*{a-bdown-background-end}*/)); /* Saf4+, Chrome */ - background-image: -webkit-linear-gradient( #202020 /*{a-bdown-background-start}*/, #2c2c2c /*{a-bdown-background-end}*/); /* Chrome 10+, Saf5.1+ */ - background-image: -moz-linear-gradient( #202020 /*{a-bdown-background-start}*/, #2c2c2c /*{a-bdown-background-end}*/); /* FF3.6 */ - background-image: -ms-linear-gradient( #202020 /*{a-bdown-background-start}*/, #2c2c2c /*{a-bdown-background-end}*/); /* IE10 */ - background-image: -o-linear-gradient( #202020 /*{a-bdown-background-start}*/, #2c2c2c /*{a-bdown-background-end}*/); /* Opera 11.10+ */ - background-image: linear-gradient( #202020 /*{a-bdown-background-start}*/, #2c2c2c /*{a-bdown-background-end}*/); -} -.ui-btn-down-a:visited, -.ui-btn-down-a:hover, -.ui-btn-down-a a.ui-link-inherit { - color: #fff /*{a-bdown-color}*/; -} -.ui-btn-up-a, -.ui-btn-hover-a, -.ui-btn-down-a { - font-family: Helvetica, Arial, sans-serif /*{global-font-family}*/; - text-decoration: none; -} -/* B ------------------------------------------------------------------------------------------------------------*/ -.ui-bar-b { - border: 1px solid #456f9a /*{b-bar-border}*/; - background: #5e87b0 /*{b-bar-background-color}*/; - color: #fff /*{b-bar-color}*/; - font-weight: bold; - text-shadow: 0 /*{b-bar-shadow-x}*/ 1px /*{b-bar-shadow-y}*/ 0 /*{b-bar-shadow-radius}*/ #3e6790 /*{b-bar-shadow-color}*/; - background-image: -webkit-gradient(linear, left top, left bottom, from( #6facd5 /*{b-bar-background-start}*/), to( #497bae /*{b-bar-background-end}*/)); /* Saf4+, Chrome */ - background-image: -webkit-linear-gradient( #6facd5 /*{b-bar-background-start}*/, #497bae /*{b-bar-background-end}*/); /* Chrome 10+, Saf5.1+ */ - background-image: -moz-linear-gradient( #6facd5 /*{b-bar-background-start}*/, #497bae /*{b-bar-background-end}*/); /* FF3.6 */ - background-image: -ms-linear-gradient( #6facd5 /*{b-bar-background-start}*/, #497bae /*{b-bar-background-end}*/); /* IE10 */ - background-image: -o-linear-gradient( #6facd5 /*{b-bar-background-start}*/, #497bae /*{b-bar-background-end}*/); /* Opera 11.10+ */ - background-image: linear-gradient( #6facd5 /*{b-bar-background-start}*/, #497bae /*{b-bar-background-end}*/); -} -.ui-bar-b, -.ui-bar-b input, -.ui-bar-b select, -.ui-bar-b textarea, -.ui-bar-b button { - font-family: Helvetica, Arial, sans-serif /*{global-font-family}*/; -} -.ui-bar-b .ui-link-inherit { - color: #fff /*{b-bar-color}*/; -} -.ui-bar-b a.ui-link { - color: #ddf0f8 /*{b-bar-link-color}*/; - font-weight: bold; -} -.ui-bar-b a.ui-link:visited { - color: #ddf0f8 /*{b-bar-link-visited}*/; -} -.ui-bar-b a.ui-link:hover { - color: #ddf0f8 /*{b-bar-link-hover}*/; -} -.ui-bar-b a.ui-link:active { - color: #ddf0f8 /*{b-bar-link-active}*/; -} -.ui-body-b, -.ui-overlay-b { - border: 1px solid #999 /*{b-body-border}*/; - background: #f3f3f3 /*{b-body-background-color}*/; - color: #222 /*{b-body-color}*/; - text-shadow: 0 /*{b-body-shadow-x}*/ 1px /*{b-body-shadow-y}*/ 0 /*{b-body-shadow-radius}*/ #fff /*{b-body-shadow-color}*/; - font-weight: normal; - background-image: -webkit-gradient(linear, left top, left bottom, from( #ddd /*{b-body-background-start}*/), to( #ccc /*{b-body-background-end}*/)); /* Saf4+, Chrome */ - background-image: -webkit-linear-gradient( #ddd /*{b-body-background-start}*/, #ccc /*{b-body-background-end}*/); /* Chrome 10+, Saf5.1+ */ - background-image: -moz-linear-gradient( #ddd /*{b-body-background-start}*/, #ccc /*{b-body-background-end}*/); /* FF3.6 */ - background-image: -ms-linear-gradient( #ddd /*{b-body-background-start}*/, #ccc /*{b-body-background-end}*/); /* IE10 */ - background-image: -o-linear-gradient( #ddd /*{b-body-background-start}*/, #ccc /*{b-body-background-end}*/); /* Opera 11.10+ */ - background-image: linear-gradient( #ddd /*{b-body-background-start}*/, #ccc /*{b-body-background-end}*/); -} -.ui-overlay-b { - background-image: none; - border-width: 0; -} -.ui-body-b, -.ui-body-b input, -.ui-body-b select, -.ui-body-b textarea, -.ui-body-b button { - font-family: Helvetica, Arial, sans-serif /*{global-font-family}*/; -} -.ui-body-b .ui-link-inherit { - color: #333 /*{b-body-color}*/; -} -.ui-body-b .ui-link { - color: #2489ce /*{b-body-link-color}*/; - font-weight: bold; -} -.ui-body-b .ui-link:visited { - color: #2489ce /*{b-body-link-visited}*/; -} -.ui-body-b .ui-link:hover { - color: #2489ce /*{b-body-link-hover}*/; -} -.ui-body-b .ui-link:active { - color: #2489ce /*{b-body-link-active}*/; -} -.ui-btn-up-b { - border: 1px solid #044062 /*{b-bup-border}*/; - background: #396b9e /*{b-bup-background-color}*/; - font-weight: bold; - color: #fff /*{b-bup-color}*/; - text-shadow: 0 /*{b-bup-shadow-x}*/ 1px /*{b-bup-shadow-y}*/ 0 /*{b-bup-shadow-radius}*/ #194b7e /*{b-bup-shadow-color}*/; - background-image: -webkit-gradient(linear, left top, left bottom, from( #5f9cc5 /*{b-bup-background-start}*/), to( #396b9e /*{b-bup-background-end}*/)); /* Saf4+, Chrome */ - background-image: -webkit-linear-gradient( #5f9cc5 /*{b-bup-background-start}*/, #396b9e /*{b-bup-background-end}*/); /* Chrome 10+, Saf5.1+ */ - background-image: -moz-linear-gradient( #5f9cc5 /*{b-bup-background-start}*/, #396b9e /*{b-bup-background-end}*/); /* FF3.6 */ - background-image: -ms-linear-gradient( #5f9cc5 /*{b-bup-background-start}*/, #396b9e /*{b-bup-background-end}*/); /* IE10 */ - background-image: -o-linear-gradient( #5f9cc5 /*{b-bup-background-start}*/, #396b9e /*{b-bup-background-end}*/); /* Opera 11.10+ */ - background-image: linear-gradient( #5f9cc5 /*{b-bup-background-start}*/, #396b9e /*{b-bup-background-end}*/); -} -.ui-btn-up-b:visited, -.ui-btn-up-b a.ui-link-inherit { - color: #fff /*{b-bup-color}*/; -} -.ui-btn-hover-b { - border: 1px solid #00415e /*{b-bhover-border}*/; - background: #4b88b6 /*{b-bhover-background-color}*/; - font-weight: bold; - color: #fff /*{b-bhover-color}*/; - text-shadow: 0 /*{b-bhover-shadow-x}*/ 1px /*{b-bhover-shadow-y}*/ 0 /*{b-bhover-shadow-radius}*/ #194b7e /*{b-bhover-shadow-color}*/; - background-image: -webkit-gradient(linear, left top, left bottom, from( #6facd5 /*{b-bhover-background-start}*/), to( #4272a4 /*{b-bhover-background-end}*/)); /* Saf4+, Chrome */ - background-image: -webkit-linear-gradient( #6facd5 /*{b-bhover-background-start}*/, #4272a4 /*{b-bhover-background-end}*/); /* Chrome 10+, Saf5.1+ */ - background-image: -moz-linear-gradient( #6facd5 /*{b-bhover-background-start}*/, #4272a4 /*{b-bhover-background-end}*/); /* FF3.6 */ - background-image: -ms-linear-gradient( #6facd5 /*{b-bhover-background-start}*/, #4272a4 /*{b-bhover-background-end}*/); /* IE10 */ - background-image: -o-linear-gradient( #6facd5 /*{b-bhover-background-start}*/, #4272a4 /*{b-bhover-background-end}*/); /* Opera 11.10+ */ - background-image: linear-gradient( #6facd5 /*{b-bhover-background-start}*/, #4272a4 /*{b-bhover-background-end}*/); -} -.ui-btn-hover-b:visited, -.ui-btn-hover-b:hover, -.ui-btn-hover-b a.ui-link-inherit { - color: #fff /*{b-bhover-color}*/; -} -.ui-btn-down-b { - border: 1px solid #225377 /*{b-bdown-border}*/; - background: #4e89c5 /*{b-bdown-background-color}*/; - font-weight: bold; - color: #fff /*{b-bdown-color}*/; - text-shadow: 0 /*{b-bdown-shadow-x}*/ 1px /*{b-bdown-shadow-y}*/ 0 /*{b-bdown-shadow-radius}*/ #194b7e /*{b-bdown-shadow-color}*/; - background-image: -webkit-gradient(linear, left top, left bottom, from( #295b8e /*{b-bdown-background-start}*/), to( #3e79b5 /*{b-bdown-background-end}*/)); /* Saf4+, Chrome */ - background-image: -webkit-linear-gradient( #295b8e /*{b-bdown-background-start}*/, #3e79b5 /*{b-bdown-background-end}*/); /* Chrome 10+, Saf5.1+ */ - background-image: -moz-linear-gradient( #295b8e /*{b-bdown-background-start}*/, #3e79b5 /*{b-bdown-background-end}*/); /* FF3.6 */ - background-image: -ms-linear-gradient( #295b8e /*{b-bdown-background-start}*/, #3e79b5 /*{b-bdown-background-end}*/); /* IE10 */ - background-image: -o-linear-gradient( #295b8e /*{b-bdown-background-start}*/, #3e79b5 /*{b-bdown-background-end}*/); /* Opera 11.10+ */ - background-image: linear-gradient( #295b8e /*{b-bdown-background-start}*/, #3e79b5 /*{b-bdown-background-end}*/); -} -.ui-btn-down-b:visited, -.ui-btn-down-b:hover, -.ui-btn-down-b a.ui-link-inherit { - color: #fff /*{b-bdown-color}*/; -} -.ui-btn-up-b, -.ui-btn-hover-b, -.ui-btn-down-b { - font-family: Helvetica, Arial, sans-serif /*{global-font-family}*/; - text-decoration: none; -} -/* C ------------------------------------------------------------------------------------------------------------*/ -.ui-bar-c { - border: 1px solid #b3b3b3 /*{c-bar-border}*/; - background: #eee /*{c-bar-background-color}*/; - color: #3e3e3e /*{c-bar-color}*/; - font-weight: bold; - text-shadow: 0 /*{c-bar-shadow-x}*/ 1px /*{c-bar-shadow-y}*/ 0 /*{c-bar-shadow-radius}*/ #fff /*{c-bar-shadow-color}*/; - background-image: -webkit-gradient(linear, left top, left bottom, from( #f0f0f0 /*{c-bar-background-start}*/), to( #ddd /*{c-bar-background-end}*/)); /* Saf4+, Chrome */ - background-image: -webkit-linear-gradient( #f0f0f0 /*{c-bar-background-start}*/, #ddd /*{c-bar-background-end}*/); /* Chrome 10+, Saf5.1+ */ - background-image: -moz-linear-gradient( #f0f0f0 /*{c-bar-background-start}*/, #ddd /*{c-bar-background-end}*/); /* FF3.6 */ - background-image: -ms-linear-gradient( #f0f0f0 /*{c-bar-background-start}*/, #ddd /*{c-bar-background-end}*/); /* IE10 */ - background-image: -o-linear-gradient( #f0f0f0 /*{c-bar-background-start}*/, #ddd /*{c-bar-background-end}*/); /* Opera 11.10+ */ - background-image: linear-gradient( #f0f0f0 /*{c-bar-background-start}*/, #ddd /*{c-bar-background-end}*/); -} -.ui-bar-c .ui-link-inherit { - color: #3e3e3e /*{c-bar-color}*/; -} -.ui-bar-c a.ui-link { - color: #7cc4e7 /*{c-bar-link-color}*/; - font-weight: bold; -} -.ui-bar-c a.ui-link:visited { - color: #2489ce /*{c-bar-link-visited}*/; -} -.ui-bar-c a.ui-link:hover { - color: #2489ce /*{c-bar-link-hover}*/; -} -.ui-bar-c a.ui-link:active { - color: #2489ce /*{c-bar-link-active}*/; -} -.ui-bar-c, -.ui-bar-c input, -.ui-bar-c select, -.ui-bar-c textarea, -.ui-bar-c button { - font-family: Helvetica, Arial, sans-serif /*{global-font-family}*/; -} -.ui-body-c, -.ui-overlay-c { - border: 1px solid #aaa /*{c-body-border}*/; - color: #333 /*{c-body-color}*/; - text-shadow: 0 /*{c-body-shadow-x}*/ 1px /*{c-body-shadow-y}*/ 0 /*{c-body-shadow-radius}*/ #fff /*{c-body-shadow-color}*/; - background: #f9f9f9 /*{c-body-background-color}*/; - background-image: -webkit-gradient(linear, left top, left bottom, from( #f9f9f9 /*{c-body-background-start}*/), to( #eee /*{c-body-background-end}*/)); /* Saf4+, Chrome */ - background-image: -webkit-linear-gradient( #f9f9f9 /*{c-body-background-start}*/, #eee /*{c-body-background-end}*/); /* Chrome 10+, Saf5.1+ */ - background-image: -moz-linear-gradient( #f9f9f9 /*{c-body-background-start}*/, #eee /*{c-body-background-end}*/); /* FF3.6 */ - background-image: -ms-linear-gradient( #f9f9f9 /*{c-body-background-start}*/, #eee /*{c-body-background-end}*/); /* IE10 */ - background-image: -o-linear-gradient( #f9f9f9 /*{c-body-background-start}*/, #eee /*{c-body-background-end}*/); /* Opera 11.10+ */ - background-image: linear-gradient( #f9f9f9 /*{c-body-background-start}*/, #eee /*{c-body-background-end}*/); -} -.ui-overlay-c { - background-image: none; - border-width: 0; -} -.ui-body-c, -.ui-body-c input, -.ui-body-c select, -.ui-body-c textarea, -.ui-body-c button { - font-family: Helvetica, Arial, sans-serif /*{global-font-family}*/; -} -.ui-body-c .ui-link-inherit { - color: #333 /*{c-body-color}*/; -} -.ui-body-c .ui-link { - color: #2489ce /*{c-body-link-color}*/; - font-weight: bold; -} -.ui-body-c .ui-link:visited { - color: #2489ce /*{c-body-link-visited}*/; -} -.ui-body-c .ui-link:hover { - color: #2489ce /*{c-body-link-hover}*/; -} -.ui-body-c .ui-link:active { - color: #2489ce /*{c-body-link-active}*/; -} -.ui-btn-up-c { - border: 1px solid #ccc /*{c-bup-border}*/; - background: #eee /*{c-bup-background-color}*/; - font-weight: bold; - color: #222 /*{c-bup-color}*/; - text-shadow: 0 /*{c-bup-shadow-x}*/ 1px /*{c-bup-shadow-y}*/ 0 /*{c-bup-shadow-radius}*/ #fff /*{c-bup-shadow-color}*/; - background-image: -webkit-gradient(linear, left top, left bottom, from( #fff /*{c-bup-background-start}*/), to( #f1f1f1 /*{c-bup-background-end}*/)); /* Saf4+, Chrome */ - background-image: -webkit-linear-gradient( #fff /*{c-bup-background-start}*/, #f1f1f1 /*{c-bup-background-end}*/); /* Chrome 10+, Saf5.1+ */ - background-image: -moz-linear-gradient( #fff /*{c-bup-background-start}*/, #f1f1f1 /*{c-bup-background-end}*/); /* FF3.6 */ - background-image: -ms-linear-gradient( #fff /*{c-bup-background-start}*/, #f1f1f1 /*{c-bup-background-end}*/); /* IE10 */ - background-image: -o-linear-gradient( #fff /*{c-bup-background-start}*/, #f1f1f1 /*{c-bup-background-end}*/); /* Opera 11.10+ */ - background-image: linear-gradient( #fff /*{c-bup-background-start}*/, #f1f1f1 /*{c-bup-background-end}*/); -} -.ui-btn-up-c:visited, -.ui-btn-up-c a.ui-link-inherit { - color: #2f3e46 /*{c-bup-color}*/; -} -.ui-btn-hover-c { - border: 1px solid #bbb /*{c-bhover-border}*/; - background: #dfdfdf /*{c-bhover-background-color}*/; - font-weight: bold; - color: #222 /*{c-bhover-color}*/; - text-shadow: 0 /*{c-bhover-shadow-x}*/ 1px /*{c-bhover-shadow-y}*/ 0 /*{c-bhover-shadow-radius}*/ #fff /*{c-bhover-shadow-color}*/; - background-image: -webkit-gradient(linear, left top, left bottom, from( #f6f6f6 /*{c-bhover-background-start}*/), to( #e0e0e0 /*{c-bhover-background-end}*/)); /* Saf4+, Chrome */ - background-image: -webkit-linear-gradient( #f6f6f6 /*{c-bhover-background-start}*/, #e0e0e0 /*{c-bhover-background-end}*/); /* Chrome 10+, Saf5.1+ */ - background-image: -moz-linear-gradient( #f6f6f6 /*{c-bhover-background-start}*/, #e0e0e0 /*{c-bhover-background-end}*/); /* FF3.6 */ - background-image: -ms-linear-gradient( #f6f6f6 /*{c-bhover-background-start}*/, #e0e0e0 /*{c-bhover-background-end}*/); /* IE10 */ - background-image: -o-linear-gradient( #f6f6f6 /*{c-bhover-background-start}*/, #e0e0e0 /*{c-bhover-background-end}*/); /* Opera 11.10+ */ - background-image: linear-gradient( #f6f6f6 /*{c-bhover-background-start}*/, #e0e0e0 /*{c-bhover-background-end}*/); -} -.ui-btn-hover-c:visited, -.ui-btn-hover-c:hover, -.ui-btn-hover-c a.ui-link-inherit { - color: #2f3e46 /*{c-bhover-color}*/; -} -.ui-btn-down-c { - border: 1px solid #bbb /*{c-bdown-border}*/; - background: #d6d6d6 /*{c-bdown-background-color}*/; - font-weight: bold; - color: #222 /*{c-bdown-color}*/; - text-shadow: 0 /*{c-bdown-shadow-x}*/ 1px /*{c-bdown-shadow-y}*/ 0 /*{c-bdown-shadow-radius}*/ #fff /*{c-bdown-shadow-color}*/; - background-image: -webkit-gradient(linear, left top, left bottom, from( #d0d0d0 /*{c-bdown-background-start}*/), to( #dfdfdf /*{c-bdown-background-end}*/)); /* Saf4+, Chrome */ - background-image: -webkit-linear-gradient( #d0d0d0 /*{c-bdown-background-start}*/, #dfdfdf /*{c-bdown-background-end}*/); /* Chrome 10+, Saf5.1+ */ - background-image: -moz-linear-gradient( #d0d0d0 /*{c-bdown-background-start}*/, #dfdfdf /*{c-bdown-background-end}*/); /* FF3.6 */ - background-image: -ms-linear-gradient( #d0d0d0 /*{c-bdown-background-start}*/, #dfdfdf /*{c-bdown-background-end}*/); /* IE10 */ - background-image: -o-linear-gradient( #d0d0d0 /*{c-bdown-background-start}*/, #dfdfdf /*{c-bdown-background-end}*/); /* Opera 11.10+ */ - background-image: linear-gradient( #d0d0d0 /*{c-bdown-background-start}*/, #dfdfdf /*{c-bdown-background-end}*/); -} -.ui-btn-down-c:visited, -.ui-btn-down-c:hover, -.ui-btn-down-c a.ui-link-inherit { - color: #2f3e46 /*{c-bdown-color}*/; -} -.ui-btn-up-c, -.ui-btn-hover-c, -.ui-btn-down-c { - font-family: Helvetica, Arial, sans-serif /*{global-font-family}*/; - text-decoration: none; -} -/* D ------------------------------------------------------------------------------------------------------------*/ -.ui-bar-d { - border: 1px solid #bbb /*{d-bar-border}*/; - background: #bbb /*{d-bar-background-color}*/; - color: #333 /*{d-bar-color}*/; - font-weight: bold; - text-shadow: 0 /*{d-bar-shadow-x}*/ 1px /*{d-bar-shadow-y}*/ 0 /*{d-bar-shadow-radius}*/ #eee /*{d-bar-shadow-color}*/; - background-image: -webkit-gradient(linear, left top, left bottom, from( #ddd /*{d-bar-background-start}*/), to( #bbb /*{d-bar-background-end}*/)); /* Saf4+, Chrome */ - background-image: -webkit-linear-gradient( #ddd /*{d-bar-background-start}*/, #bbb /*{d-bar-background-end}*/); /* Chrome 10+, Saf5.1+ */ - background-image: -moz-linear-gradient( #ddd /*{d-bar-background-start}*/, #bbb /*{d-bar-background-end}*/); /* FF3.6 */ - background-image: -ms-linear-gradient( #ddd /*{d-bar-background-start}*/, #bbb /*{d-bar-background-end}*/); /* IE10 */ - background-image: -o-linear-gradient( #ddd /*{d-bar-background-start}*/, #bbb /*{d-bar-background-end}*/); /* Opera 11.10+ */ - background-image: linear-gradient( #ddd /*{d-bar-background-start}*/, #bbb /*{d-bar-background-end}*/); -} -.ui-bar-d, -.ui-bar-d input, -.ui-bar-d select, -.ui-bar-d textarea, -.ui-bar-d button { - font-family: Helvetica, Arial, sans-serif /*{global-font-family}*/; -} -.ui-bar-d .ui-link-inherit { - color: #333 /*{d-bar-color}*/; -} -.ui-bar-d a.ui-link { - color: #2489ce /*{d-bar-link-color}*/; - font-weight: bold; -} -.ui-bar-d a.ui-link:visited { - color: #2489ce /*{d-bar-link-visited}*/; -} -.ui-bar-d a.ui-link:hover { - color: #2489ce /*{d-bar-link-hover}*/; -} -.ui-bar-d a.ui-link:active { - color: #2489ce /*{d-bar-link-active}*/; -} -.ui-body-d, -.ui-overlay-d { - border: 1px solid #bbb /*{d-body-border}*/; - color: #333 /*{d-body-color}*/; - text-shadow: 0 /*{d-body-shadow-x}*/ 1px /*{d-body-shadow-y}*/ 0 /*{d-body-shadow-radius}*/ #fff /*{d-body-shadow-color}*/; - background: #fff /*{d-body-background-color}*/; - background-image: -webkit-gradient(linear, left top, left bottom, from( #fff /*{d-body-background-start}*/), to( #fff /*{d-body-background-end}*/)); /* Saf4+, Chrome */ - background-image: -webkit-linear-gradient( #fff /*{d-body-background-start}*/, #fff /*{d-body-background-end}*/); /* Chrome 10+, Saf5.1+ */ - background-image: -moz-linear-gradient( #fff /*{d-body-background-start}*/, #fff /*{d-body-background-end}*/); /* FF3.6 */ - background-image: -ms-linear-gradient( #fff /*{d-body-background-start}*/, #fff /*{d-body-background-end}*/); /* IE10 */ - background-image: -o-linear-gradient( #fff /*{d-body-background-start}*/, #fff /*{d-body-background-end}*/); /* Opera 11.10+ */ - background-image: linear-gradient( #fff /*{d-body-background-start}*/, #fff /*{d-body-background-end}*/); -} -.ui-overlay-d { - background-image: none; - border-width: 0; -} -.ui-body-d, -.ui-body-d input, -.ui-body-d select, -.ui-body-d textarea, -.ui-body-d button { - font-family: Helvetica, Arial, sans-serif /*{global-font-family}*/; -} -.ui-body-d .ui-link-inherit { - color: #333 /*{d-body-color}*/; -} -.ui-body-d .ui-link { - color: #2489ce /*{d-body-link-color}*/; - font-weight: bold; -} -.ui-body-d .ui-link:visited { - color: #2489ce /*{d-body-link-visited}*/; -} -.ui-body-d .ui-link:hover { - color: #2489ce /*{d-body-link-hover}*/; -} -.ui-body-d .ui-link:active { - color: #2489ce /*{d-body-link-active}*/; -} -.ui-btn-up-d { - border: 1px solid #bbb /*{d-bup-border}*/; - background: #fff /*{d-bup-background-color}*/; - font-weight: bold; - color: #333 /*{d-bup-color}*/; - text-shadow: 0 /*{d-bup-shadow-x}*/ 1px /*{d-bup-shadow-y}*/ 0 /*{d-bup-shadow-radius}*/ #fff /*{d-bup-shadow-color}*/; - background-image: -webkit-gradient(linear, left top, left bottom, from( #fafafa /*{d-bup-background-start}*/), to( #f6f6f6 /*{d-bup-background-end}*/)); /* Saf4+, Chrome */ - background-image: -webkit-linear-gradient( #fafafa /*{d-bup-background-start}*/, #f6f6f6 /*{d-bup-background-end}*/); /* Chrome 10+, Saf5.1+ */ - background-image: -moz-linear-gradient( #fafafa /*{d-bup-background-start}*/, #f6f6f6 /*{d-bup-background-end}*/); /* FF3.6 */ - background-image: -ms-linear-gradient( #fafafa /*{d-bup-background-start}*/, #f6f6f6 /*{d-bup-background-end}*/); /* IE10 */ - background-image: -o-linear-gradient( #fafafa /*{d-bup-background-start}*/, #f6f6f6 /*{d-bup-background-end}*/); /* Opera 11.10+ */ - background-image: linear-gradient( #fafafa /*{d-bup-background-start}*/, #f6f6f6 /*{d-bup-background-end}*/); -} -.ui-btn-up-d:visited, -.ui-btn-up-d a.ui-link-inherit { - color: #333 /*{d-bup-color}*/; -} -.ui-btn-hover-d { - border: 1px solid #aaa /*{d-bhover-border}*/; - background: #eee /*{d-bhover-background-color}*/; - font-weight: bold; - color: #333 /*{d-bhover-color}*/; - cursor: pointer; - text-shadow: 0 /*{d-bhover-shadow-x}*/ 1px /*{d-bhover-shadow-y}*/ 0 /*{d-bhover-shadow-radius}*/ #fff /*{d-bhover-shadow-color}*/; - background-image: -webkit-gradient(linear, left top, left bottom, from( #eee /*{d-bhover-background-start}*/), to( #fff /*{d-bhover-background-end}*/)); /* Saf4+, Chrome */ - background-image: -webkit-linear-gradient( #eee /*{d-bhover-background-start}*/, #fff /*{d-bhover-background-end}*/); /* Chrome 10+, Saf5.1+ */ - background-image: -moz-linear-gradient( #eee /*{d-bhover-background-start}*/, #fff /*{d-bhover-background-end}*/); /* FF3.6 */ - background-image: -ms-linear-gradient( #eee /*{d-bhover-background-start}*/, #fff /*{d-bhover-background-end}*/); /* IE10 */ - background-image: -o-linear-gradient( #eee /*{d-bhover-background-start}*/, #fff /*{d-bhover-background-end}*/); /* Opera 11.10+ */ - background-image: linear-gradient( #eee /*{d-bhover-background-start}*/, #fff /*{d-bhover-background-end}*/); -} -.ui-btn-hover-d:visited, -.ui-btn-hover-d:hover, -.ui-btn-hover-d a.ui-link-inherit { - color: #333 /*{d-bhover-color}*/; -} -.ui-btn-down-d { - border: 1px solid #aaa /*{d-bdown-border}*/; - background: #eee /*{d-bdown-background-color}*/; - font-weight: bold; - color: #333 /*{d-bdown-color}*/; - text-shadow: 0 /*{d-bdown-shadow-x}*/ 1px /*{d-bdown-shadow-y}*/ 0 /*{d-bdown-shadow-radius}*/ #fff /*{d-bdown-shadow-color}*/; - background-image: -webkit-gradient(linear, left top, left bottom, from( #e5e5e5 /*{d-bdown-background-start}*/), to( #f2f2f2 /*{d-bdown-background-end}*/)); /* Saf4+, Chrome */ - background-image: -webkit-linear-gradient( #e5e5e5 /*{d-bdown-background-start}*/, #f2f2f2 /*{d-bdown-background-end}*/); /* Chrome 10+, Saf5.1+ */ - background-image: -moz-linear-gradient( #e5e5e5 /*{d-bdown-background-start}*/, #f2f2f2 /*{d-bdown-background-end}*/); /* FF3.6 */ - background-image: -ms-linear-gradient( #e5e5e5 /*{d-bdown-background-start}*/, #f2f2f2 /*{d-bdown-background-end}*/); /* IE10 */ - background-image: -o-linear-gradient( #e5e5e5 /*{d-bdown-background-start}*/, #f2f2f2 /*{d-bdown-background-end}*/); /* Opera 11.10+ */ - background-image: linear-gradient( #e5e5e5 /*{d-bdown-background-start}*/, #f2f2f2 /*{d-bdown-background-end}*/); -} -.ui-btn-down-d:visited, -.ui-btn-down-d:hover, -.ui-btn-down-d a.ui-link-inherit { - color: #333 /*{d-bdown-color}*/; -} -.ui-btn-up-d, -.ui-btn-hover-d, -.ui-btn-down-d { - font-family: Helvetica, Arial, sans-serif /*{global-font-family}*/; - text-decoration: none; -} -/* E ------------------------------------------------------------------------------------------------------------*/ -.ui-bar-e { - border: 1px solid #f7c942 /*{e-bar-border}*/; - background: #fadb4e /*{e-bar-background-color}*/; - color: #333 /*{e-bar-color}*/; - font-weight: bold; - text-shadow: 0 /*{e-bar-shadow-x}*/ 1px /*{e-bar-shadow-y}*/ 0 /*{e-bar-shadow-radius}*/ #fff /*{e-bar-shadow-color}*/; - background-image: -webkit-gradient(linear, left top, left bottom, from( #fceda7 /*{e-bar-background-start}*/), to( #fbef7e /*{e-bar-background-end}*/)); /* Saf4+, Chrome */ - background-image: -webkit-linear-gradient( #fceda7 /*{e-bar-background-start}*/, #fbef7e /*{e-bar-background-end}*/); /* Chrome 10+, Saf5.1+ */ - background-image: -moz-linear-gradient( #fceda7 /*{e-bar-background-start}*/, #fbef7e /*{e-bar-background-end}*/); /* FF3.6 */ - background-image: -ms-linear-gradient( #fceda7 /*{e-bar-background-start}*/, #fbef7e /*{e-bar-background-end}*/); /* IE10 */ - background-image: -o-linear-gradient( #fceda7 /*{e-bar-background-start}*/, #fbef7e /*{e-bar-background-end}*/); /* Opera 11.10+ */ - background-image: linear-gradient( #fceda7 /*{e-bar-background-start}*/, #fbef7e /*{e-bar-background-end}*/); -} -.ui-bar-e, -.ui-bar-e input, -.ui-bar-e select, -.ui-bar-e textarea, -.ui-bar-e button { - font-family: Helvetica, Arial, sans-serif /*{global-font-family}*/; -} -.ui-bar-e .ui-link-inherit { - color: #333 /*{e-bar-color}*/; -} -.ui-bar-e a.ui-link { - color: #2489ce /*{e-bar-link-color}*/; - font-weight: bold; -} -.ui-bar-e a.ui-link:visited { - color: #2489ce /*{e-bar-link-visited}*/; -} -.ui-bar-e a.ui-link:hover { - color: #2489ce /*{e-bar-link-hover}*/; -} -.ui-bar-e a.ui-link:active { - color: #2489ce /*{e-bar-link-active}*/; -} -.ui-body-e, -.ui-overlay-e { - border: 1px solid #f7c942 /*{e-body-border}*/; - color: #222 /*{e-body-color}*/; - text-shadow: 0 /*{e-body-shadow-x}*/ 1px /*{e-body-shadow-y}*/ 0 /*{e-body-shadow-radius}*/ #fff /*{e-body-shadow-color}*/; - background: #fff9df /*{e-body-background-color}*/; - background-image: -webkit-gradient(linear, left top, left bottom, from( #fffadf /*{e-body-background-start}*/), to( #fff3a5 /*{e-body-background-end}*/)); /* Saf4+, Chrome */ - background-image: -webkit-linear-gradient( #fffadf /*{e-body-background-start}*/, #fff3a5 /*{e-body-background-end}*/); /* Chrome 10+, Saf5.1+ */ - background-image: -moz-linear-gradient( #fffadf /*{e-body-background-start}*/, #fff3a5 /*{e-body-background-end}*/); /* FF3.6 */ - background-image: -ms-linear-gradient( #fffadf /*{e-body-background-start}*/, #fff3a5 /*{e-body-background-end}*/); /* IE10 */ - background-image: -o-linear-gradient( #fffadf /*{e-body-background-start}*/, #fff3a5 /*{e-body-background-end}*/); /* Opera 11.10+ */ - background-image: linear-gradient( #fffadf /*{e-body-background-start}*/, #fff3a5 /*{e-body-background-end}*/); -} -.ui-overlay-e { - background-image: none; - border-width: 0; -} -.ui-body-e, -.ui-body-e input, -.ui-body-e select, -.ui-body-e textarea, -.ui-body-e button { - font-family: Helvetica, Arial, sans-serif /*{global-font-family}*/; -} -.ui-body-e .ui-link-inherit { - color: #222 /*{e-body-color}*/; -} -.ui-body-e .ui-link { - color: #2489ce /*{e-body-link-color}*/; - font-weight: bold; -} -.ui-body-e .ui-link:visited { - color: #2489ce /*{e-body-link-visited}*/; -} -.ui-body-e .ui-link:hover { - color: #2489ce /*{e-body-link-hover}*/; -} -.ui-body-e .ui-link:active { - color: #2489ce /*{e-body-link-active}*/; -} -.ui-btn-up-e { - border: 1px solid #f4c63f /*{e-bup-border}*/; - background: #fadb4e /*{e-bup-background-color}*/; - font-weight: bold; - color: #222 /*{e-bup-color}*/; - text-shadow: 0 /*{e-bup-shadow-x}*/ 1px /*{e-bup-shadow-y}*/ 0 /*{e-bup-shadow-radius}*/ #fff /*{e-bup-shadow-color}*/; - background-image: -webkit-gradient(linear, left top, left bottom, from( #ffefaa /*{e-bup-background-start}*/), to( #ffe155 /*{e-bup-background-end}*/)); /* Saf4+, Chrome */ - background-image: -webkit-linear-gradient( #ffefaa /*{e-bup-background-start}*/, #ffe155 /*{e-bup-background-end}*/); /* Chrome 10+, Saf5.1+ */ - background-image: -moz-linear-gradient( #ffefaa /*{e-bup-background-start}*/, #ffe155 /*{e-bup-background-end}*/); /* FF3.6 */ - background-image: -ms-linear-gradient( #ffefaa /*{e-bup-background-start}*/, #ffe155 /*{e-bup-background-end}*/); /* IE10 */ - background-image: -o-linear-gradient( #ffefaa /*{e-bup-background-start}*/, #ffe155 /*{e-bup-background-end}*/); /* Opera 11.10+ */ - background-image: linear-gradient( #ffefaa /*{e-bup-background-start}*/, #ffe155 /*{e-bup-background-end}*/); -} -.ui-btn-up-e:visited, -.ui-btn-up-e a.ui-link-inherit { - color: #222 /*{e-bup-color}*/; -} -.ui-btn-hover-e { - border: 1px solid #f2c43d /*{e-bhover-border}*/; - background: #fbe26f /*{e-bhover-background-color}*/; - font-weight: bold; - color: #111 /*{e-bhover-color}*/; - text-shadow: 0 /*{e-bhover-shadow-x}*/ 1px /*{e-bhover-shadow-y}*/ 0 /*{e-bhover-shadow-radius}*/ #fff /*{e-bhover-shadow-color}*/; - background-image: -webkit-gradient(linear, left top, left bottom, from( #fff5ba /*{e-bhover-background-start}*/), to( #fbdd52 /*{e-bhover-background-end}*/)); /* Saf4+, Chrome */ - background-image: -webkit-linear-gradient( #fff5ba /*{e-bhover-background-start}*/, #fbdd52 /*{e-bhover-background-end}*/); /* Chrome 10+, Saf5.1+ */ - background-image: -moz-linear-gradient( #fff5ba /*{e-bhover-background-start}*/, #fbdd52 /*{e-bhover-background-end}*/); /* FF3.6 */ - background-image: -ms-linear-gradient( #fff5ba /*{e-bhover-background-start}*/, #fbdd52 /*{e-bhover-background-end}*/); /* IE10 */ - background-image: -o-linear-gradient( #fff5ba /*{e-bhover-background-start}*/, #fbdd52 /*{e-bhover-background-end}*/); /* Opera 11.10+ */ - background-image: linear-gradient( #fff5ba /*{e-bhover-background-start}*/, #fbdd52 /*{e-bhover-background-end}*/); -} -.ui-btn-hover-e:visited, -.ui-btn-hover-e:hover, -.ui-btn-hover-e a.ui-link-inherit { - color: #333 /*{e-bhover-color}*/; -} -.ui-btn-down-e { - border: 1px solid #f2c43d /*{e-bdown-border}*/; - background: #fceda7 /*{e-bdown-background-color}*/; - font-weight: bold; - color: #111 /*{e-bdown-color}*/; - text-shadow: 0 /*{e-bdown-shadow-x}*/ 1px /*{e-bdown-shadow-y}*/ 0 /*{e-bdown-shadow-radius}*/ #fff /*{e-bdown-shadow-color}*/; - background-image: -webkit-gradient(linear, left top, left bottom, from( #f8d94c /*{e-bdown-background-start}*/), to( #fadb4e /*{e-bdown-background-end}*/)); /* Saf4+, Chrome */ - background-image: -webkit-linear-gradient( #f8d94c /*{e-bdown-background-start}*/, #fadb4e /*{e-bdown-background-end}*/); /* Chrome 10+, Saf5.1+ */ - background-image: -moz-linear-gradient( #f8d94c /*{e-bdown-background-start}*/, #fadb4e /*{e-bdown-background-end}*/); /* FF3.6 */ - background-image: -ms-linear-gradient( #f8d94c /*{e-bdown-background-start}*/, #fadb4e /*{e-bdown-background-end}*/); /* IE10 */ - background-image: -o-linear-gradient( #f8d94c /*{e-bdown-background-start}*/, #fadb4e /*{e-bdown-background-end}*/); /* Opera 11.10+ */ - background-image: linear-gradient( #f8d94c /*{e-bdown-background-start}*/, #fadb4e /*{e-bdown-background-end}*/); -} -.ui-btn-down-e:visited, -.ui-btn-down-e:hover, -.ui-btn-down-e a.ui-link-inherit { - color: #333 /*{e-bdown-color}*/; -} -.ui-btn-up-e, -.ui-btn-hover-e, -.ui-btn-down-e { - font-family: Helvetica, Arial, sans-serif /*{global-font-family}*/; - text-decoration: none; -} -/* Structure */ -/* links within "buttons" ------------------------------------------------------------------------------------------------------------*/ -a.ui-link-inherit { - text-decoration: none !important; -} -/* Active class used as the "on" state across all themes ------------------------------------------------------------------------------------------------------------*/ -.ui-btn-active { - border: 1px solid #2373a5 /*{global-active-border}*/; - background: #5393c5 /*{global-active-background-color}*/; - font-weight: bold; - color: #fff /*{global-active-color}*/; - cursor: pointer; - text-shadow: 0 /*{global-active-shadow-x}*/ 1px /*{global-active-shadow-y}*/ 0 /*{global-active-shadow-radius}*/ #3373a5 /*{global-active-shadow-color}*/; - text-decoration: none; - background-image: -webkit-gradient(linear, left top, left bottom, from( #5393c5 /*{global-active-background-start}*/), to( #6facd5 /*{global-active-background-end}*/)); /* Saf4+, Chrome */ - background-image: -webkit-linear-gradient( #5393c5 /*{global-active-background-start}*/, #6facd5 /*{global-active-background-end}*/); /* Chrome 10+, Saf5.1+ */ - background-image: -moz-linear-gradient( #5393c5 /*{global-active-background-start}*/, #6facd5 /*{global-active-background-end}*/); /* FF3.6 */ - background-image: -ms-linear-gradient( #5393c5 /*{global-active-background-start}*/, #6facd5 /*{global-active-background-end}*/); /* IE10 */ - background-image: -o-linear-gradient( #5393c5 /*{global-active-background-start}*/, #6facd5 /*{global-active-background-end}*/); /* Opera 11.10+ */ - background-image: linear-gradient( #5393c5 /*{global-active-background-start}*/, #6facd5 /*{global-active-background-end}*/); - font-family: Helvetica, Arial, sans-serif /*{global-font-family}*/; -} -.ui-btn-active:visited, -.ui-btn-active:hover, -.ui-btn-active a.ui-link-inherit { - color: #fff /*{global-active-color}*/; -} -/* button inner top highlight ------------------------------------------------------------------------------------------------------------*/ -.ui-btn-inner { - border-top: 1px solid #fff; - border-color: rgba(255,255,255,.3); -} -/* corner rounding classes ------------------------------------------------------------------------------------------------------------*/ -.ui-corner-all { - -webkit-border-radius: .6em /*{global-radii-blocks}*/; - border-radius: .6em /*{global-radii-blocks}*/; -} -/* Form field separator ------------------------------------------------------------------------------------------------------------*/ -.ui-br { - border-color: rgb(130,130,130); - border-color: rgba(130,130,130,.3); - border-style: solid; -} -/* Interaction cues ------------------------------------------------------------------------------------------------------------*/ -.ui-disabled { - filter: Alpha(Opacity=30); - opacity: .3; - zoom: 1; -} -.ui-disabled, -.ui-disabled a { - cursor: default !important; - pointer-events: none; -} -/* Icons ------------------------------------------------------------------------------------------------------------*/ -.ui-icon, -.ui-icon-searchfield:after { - background-color: #666 /*{global-icon-color}*/; - background-color: rgba(0,0,0,.4) /*{global-icon-disc}*/; - background-image: url(images/icons-18-white.png) /*{global-icon-set}*/; - background-repeat: no-repeat; - -webkit-border-radius: 9px; - border-radius: 9px; -} -/* Alt icon color ------------------------------------------------------------------------------------------------------------*/ -.ui-icon-alt .ui-icon, -.ui-icon-alt .ui-icon-searchfield:after { - background-color: #fff; - background-color: rgba(255,255,255,.3); - background-image: url(images/icons-18-black.png); - background-repeat: no-repeat; -} -/* No disc ------------------------------------------------------------------------------------------------------------*/ -.ui-icon-nodisc .ui-icon, -.ui-icon-nodisc .ui-icon-searchfield:after, -.ui-icon-nodisc .ui-icon-alt .ui-icon, -.ui-icon-nodisc .ui-icon-alt .ui-icon-searchfield:after { - background-color: transparent; -} -/* Icon sprite ------------------------------------------------------------------------------------------------------------*/ -/* plus minus */ -.ui-icon-plus { - background-position: -1px -1px; -} -.ui-icon-minus { - background-position: -37px -1px; -} -/* delete/close */ -.ui-icon-delete { - background-position: -73px -1px; -} -/* arrows */ -.ui-icon-arrow-r { - background-position: -108px -1px; -} -.ui-icon-arrow-l { - background-position: -144px -1px; -} -.ui-icon-arrow-u { - background-position: -180px -1px; -} -.ui-icon-arrow-d { - background-position: -216px -1px; -} -/* misc */ -.ui-icon-check { - background-position: -252px -1px; -} -.ui-icon-gear { - background-position: -288px -1px; -} -.ui-icon-refresh { - background-position: -323px -1px; -} -.ui-icon-forward { - background-position: -360px -1px; -} -.ui-icon-back { - background-position: -396px -1px; -} -.ui-icon-grid { - background-position: -432px -1px; -} -.ui-icon-star { - background-position: -467px -1px; -} -.ui-icon-alert { - background-position: -503px -1px; -} -.ui-icon-info { - background-position: -539px -1px; -} -.ui-icon-home { - background-position: -575px -1px; -} -/* search */ -.ui-icon-search, -.ui-icon-searchfield:after { - background-position: -611px -1px; -} -/* checkbox radio */ -.ui-icon-checkbox-on { - background-position: -647px -1px; -} -.ui-icon-checkbox-off { - background-position: -683px -1px; -} -.ui-icon-radio-on { - background-position: -718px -1px; -} -.ui-icon-radio-off { - background-position: -754px -1px; -} -/* menu edit */ -.ui-icon-bars { - background-position: -788px -1px; -} -.ui-icon-edit { - background-position: -824px -1px; -} -/* HD/"retina" sprite ------------------------------------------------------------------------------------------------------------*/ -@media only screen and (-webkit-min-device-pixel-ratio: 1.3), - only screen and (min--moz-device-pixel-ratio: 1.3), - only screen and (min-resolution: 200dpi) { - - .ui-icon-plus, .ui-icon-minus, .ui-icon-delete, .ui-icon-arrow-r, - .ui-icon-arrow-l, .ui-icon-arrow-u, .ui-icon-arrow-d, .ui-icon-check, - .ui-icon-gear, .ui-icon-refresh, .ui-icon-forward, .ui-icon-back, - .ui-icon-grid, .ui-icon-star, .ui-icon-alert, .ui-icon-info, .ui-icon-home, .ui-icon-bars, .ui-icon-edit, - .ui-icon-search, .ui-icon-searchfield:after, - .ui-icon-checkbox-off, .ui-icon-checkbox-on, .ui-icon-radio-off, .ui-icon-radio-on { - background-image: url(images/icons-36-white.png); - -moz-background-size: 864px 18px; - -o-background-size: 864px 18px; - -webkit-background-size: 864px 18px; - background-size: 864px 18px; - } - .ui-icon-alt .ui-icon { - background-image: url(images/icons-36-black.png); - } - .ui-icon-plus { - background-position: 0 50%; - } - .ui-icon-minus { - background-position: -36px 50%; - } - .ui-icon-delete { - background-position: -72px 50%; - } - .ui-icon-arrow-r { - background-position: -108px 50%; - } - .ui-icon-arrow-l { - background-position: -144px 50%; - } - .ui-icon-arrow-u { - background-position: -179px 50%; - } - .ui-icon-arrow-d { - background-position: -215px 50%; - } - .ui-icon-check { - background-position: -252px 50%; - } - .ui-icon-gear { - background-position: -287px 50%; - } - .ui-icon-refresh { - background-position: -323px 50%; - } - .ui-icon-forward { - background-position: -360px 50%; - } - .ui-icon-back { - background-position: -395px 50%; - } - .ui-icon-grid { - background-position: -431px 50%; - } - .ui-icon-star { - background-position: -467px 50%; - } - .ui-icon-alert { - background-position: -503px 50%; - } - .ui-icon-info { - background-position: -538px 50%; - } - .ui-icon-home { - background-position: -575px 50%; - } - .ui-icon-search, - .ui-icon-searchfield:after { - background-position: -611px 50%; - } - .ui-icon-checkbox-on { - background-position: -647px 50%; - } - .ui-icon-checkbox-off { - background-position: -683px 50%; - } - .ui-icon-radio-on { - background-position: -718px 50%; - } - .ui-icon-radio-off { - background-position: -754px 50%; - } - .ui-icon-bars { - background-position: -788px 50%; - - }.ui-icon-edit { - background-position: -824px 50%; - } -} -/* checks,radios */ -.ui-checkbox .ui-icon, -.ui-selectmenu-list .ui-icon { - -webkit-border-radius: 3px; - border-radius: 3px; -} -.ui-icon-checkbox-off, -.ui-icon-radio-off { - background-color: transparent; -} -.ui-checkbox-on .ui-icon, -.ui-radio-on .ui-icon { - background-color: #4596ce /*{global-active-background-color}*/; /* NOTE: this hex should match the active state color. It's repeated here for cascade */ -} -/* loading icon */ -.ui-icon-loading { - background: url(images/ajax-loader.gif); - background-size: 46px 46px; -} -/* Button corner class ------------------------------------------------------------------------------------------------------------*/ -.ui-btn-corner-all { - -webkit-border-radius: 1em /*{global-radii-buttons}*/; - border-radius: 1em /*{global-radii-buttons}*/; -} -/* radius clip workaround for cleaning up corner trapping */ -.ui-corner-all, -.ui-btn-corner-all { - -webkit-background-clip: padding; - background-clip: padding-box; -} -/* Overlay / modal ------------------------------------------------------------------------------------------------------------*/ -.ui-overlay { - background: #666; - filter: Alpha(Opacity=50); - opacity: .5; - position: absolute; - width: 100%; - height: 100%; -} -.ui-overlay-shadow { - -moz-box-shadow: 0 0 12px rgba(0,0,0,.6); - -webkit-box-shadow: 0 0 12px rgba(0,0,0,.6); - box-shadow: 0 0 12px rgba(0,0,0,.6); -} -.ui-shadow { - -moz-box-shadow: 0 1px 3px /*{global-box-shadow-size}*/ rgba(0,0,0,.2) /*{global-box-shadow-color}*/; - -webkit-box-shadow: 0 1px 3px /*{global-box-shadow-size}*/ rgba(0,0,0,.2) /*{global-box-shadow-color}*/; - box-shadow: 0 1px 3px /*{global-box-shadow-size}*/ rgba(0,0,0,.2) /*{global-box-shadow-color}*/ -} -.ui-bar-a .ui-shadow, -.ui-bar-b .ui-shadow , -.ui-bar-c .ui-shadow { - -moz-box-shadow: 0 1px 0 rgba(255,255,255,.3); - -webkit-box-shadow: 0 1px 0 rgba(255,255,255,.3); - box-shadow: 0 1px 0 rgba(255,255,255,.3); -} -.ui-shadow-inset { - -moz-box-shadow: inset 0 1px 4px rgba(0,0,0,.2); - -webkit-box-shadow: inset 0 1px 4px rgba(0,0,0,.2); - box-shadow: inset 0 1px 4px rgba(0,0,0,.2); -} -.ui-icon-shadow { - -moz-box-shadow: 0 1px 0 rgba(255,255,255,.4) /*{global-icon-shadow}*/; - -webkit-box-shadow: 0 1px 0 rgba(255,255,255,.4) /*{global-icon-shadow}*/; - box-shadow: 0 1px 0 rgba(255,255,255,.4) /*{global-icon-shadow}*/; -} -/* Focus state - set here for specificity (note: these classes are added by JavaScript) ------------------------------------------------------------------------------------------------------------*/ -.ui-btn:focus, .ui-link-inherit:focus { - outline: 0; -} -.ui-btn.ui-focus { - z-index: 1; -} -.ui-focus, -.ui-btn:focus { - -moz-box-shadow: inset 0 0 3px #387bbe /*{global-active-background-color}*/, 0 0 9px #387bbe /*{global-active-background-color}*/; - -webkit-box-shadow: inset 0 0 3px #387bbe /*{global-active-background-color}*/, 0 0 9px #387bbe /*{global-active-background-color}*/; - box-shadow: inset 0 0 3px #387bbe /*{global-active-background-color}*/, 0 0 9px #387bbe /*{global-active-background-color}*/; -} -.ui-input-text.ui-focus, -.ui-input-search.ui-focus { - -moz-box-shadow: 0 0 12px #387bbe /*{global-active-background-color}*/; - -webkit-box-shadow: 0 0 12px #387bbe /*{global-active-background-color}*/; - box-shadow: 0 0 12px #387bbe /*{global-active-background-color}*/; -} -/* unset box shadow in browsers that don't do it right ------------------------------------------------------------------------------------------------------------*/ -.ui-mobile-nosupport-boxshadow * { - -moz-box-shadow: none !important; - -webkit-box-shadow: none !important; - box-shadow: none !important; -} -/* ...and bring back focus */ -.ui-mobile-nosupport-boxshadow .ui-focus, -.ui-mobile-nosupport-boxshadow .ui-btn:focus, -.ui-mobile-nosupport-boxshadow .ui-link-inherit:focus { - outline-width: 1px; - outline-style: auto; -} -/* some unsets - more probably needed */ -.ui-mobile, .ui-mobile body { height: 99.9%; } -.ui-mobile fieldset, .ui-page { padding: 0; margin: 0; } -.ui-mobile a img, .ui-mobile fieldset { border-width: 0; } -/* responsive page widths */ -.ui-mobile-viewport { margin: 0; overflow-x: visible; -webkit-text-size-adjust: 100%; -ms-text-size-adjust:none; -webkit-tap-highlight-color: rgba(0, 0, 0, 0); } -/* Issue #2066 */ -body.ui-mobile-viewport, -div.ui-mobile-viewport { overflow-x: hidden; } -/* "page" containers - full-screen views, one should always be in view post-pageload */ -.ui-mobile [data-role=page], .ui-mobile [data-role=dialog], .ui-page { top: 0; left: 0; width: 100%; min-height: 100%; position: absolute; display: none; border: 0; } -.ui-mobile .ui-page-active { display: block; overflow: visible; } -/* on ios4, setting focus on the page element causes flashing during transitions when there is an outline, so we turn off outlines */ -.ui-page { outline: none; } -/*orientations from js are available */ -@media screen and (orientation: portrait){ -.ui-mobile .ui-page { min-height: 420px; } -} -@media screen and (orientation: landscape){ -.ui-mobile .ui-page { min-height: 300px; } -} -/* loading screen */ -.ui-loading .ui-loader { display: block; } -.ui-loader { display: none; z-index: 9999999; position: fixed; top: 50%; left: 50%; border:0; } -.ui-loader-default { background: none; filter: Alpha(Opacity=18); opacity: .18; width: 46px; height: 46px; margin-left: -23px; margin-top: -23px; } -.ui-loader-verbose { width: 200px; filter: Alpha(Opacity=88); opacity: .88; box-shadow: 0 1px 1px -1px #fff; height: auto; margin-left: -110px; margin-top: -43px; padding: 10px; } -.ui-loader-default h1 { font-size: 0; width: 0; height: 0; overflow: hidden; } -.ui-loader-verbose h1 { font-size: 16px; margin: 0; text-align: center; } -.ui-loader .ui-icon { background-color: #000; display: block; margin: 0; width: 44px; height: 44px; padding: 1px; -webkit-border-radius: 36px; border-radius: 36px; } -.ui-loader-verbose .ui-icon { margin: 0 auto 10px; filter: Alpha(Opacity=75); opacity: .75; } -.ui-loader-textonly { padding: 15px; margin-left: -115px; } -.ui-loader-textonly .ui-icon { display: none; } -.ui-loader-fakefix { position: absolute; } -/*fouc*/ -.ui-mobile-rendering > * { visibility: hidden; } -/*headers, content panels*/ -.ui-bar, .ui-body { position: relative; padding: .4em 15px; overflow: hidden; display: block; clear:both; } -.ui-bar { font-size: 16px; margin: 0; } -.ui-bar h1, .ui-bar h2, .ui-bar h3, .ui-bar h4, .ui-bar h5, .ui-bar h6 { margin: 0; padding: 0; font-size: 16px; display: inline-block; } -.ui-header, .ui-footer { position: relative; zoom: 1; } -.ui-mobile .ui-header, .ui-mobile .ui-footer { border-left-width: 0; border-right-width: 0; } -.ui-header .ui-btn-left, -.ui-header .ui-btn-right, -.ui-footer .ui-btn-left, -.ui-footer .ui-btn-right, -.ui-header-fixed.ui-fixed-hidden .ui-btn-left, -.ui-header-fixed.ui-fixed-hidden .ui-btn-right { position: absolute; top: 3px; } -.ui-header-fixed .ui-btn-left, -.ui-header-fixed .ui-btn-right { top: 4px;} -.ui-header .ui-btn-left, -.ui-footer .ui-btn-left { left: 5px; } -.ui-header .ui-btn-right, -.ui-footer .ui-btn-right { right: 5px; } -.ui-footer > .ui-btn-icon-notext, -.ui-header > .ui-btn-icon-notext, -.ui-header-fixed.ui-fixed-hidden > .ui-btn-icon-notext { top: 6px; } -.ui-header-fixed > .ui-btn-icon-notext { top: 7px;} -.ui-header .ui-title, .ui-footer .ui-title { min-height: 1.1em; text-align: center; font-size: 16px; display: block; margin: .6em 30% .8em; padding: 0; text-overflow: ellipsis; overflow: hidden; white-space: nowrap; outline: 0 !important; } -.ui-footer .ui-title { margin: .6em 15px .8em; } -/* content area*/ -.ui-content { border-width: 0; overflow: visible; overflow-x: hidden; padding: 15px; } -/* corner styling for dialogs and popups */ -.ui-corner-all > .ui-header:first-child, -.ui-corner-all > .ui-content:first-child, -.ui-corner-all > .ui-footer:first-child { - -webkit-border-top-left-radius: inherit; - border-top-left-radius: inherit; - -webkit-border-top-right-radius: inherit; - border-top-right-radius: inherit; -} -.ui-corner-all > .ui-header:last-child, -.ui-corner-all > .ui-content:last-child, -.ui-corner-all > .ui-footer:last-child { - -webkit-border-bottom-left-radius: inherit; - border-bottom-left-radius: inherit; - -webkit-border-bottom-right-radius: inherit; - border-bottom-right-radius: inherit; -} -/* icons sizing */ -.ui-icon { width: 18px; height: 18px; } -/* non-js content hiding */ -.ui-nojs { position: absolute; left: -9999px; } -/* accessible content hiding */ -.ui-hide-label label.ui-input-text, .ui-hide-label label.ui-select, .ui-hide-label label.ui-slider, .ui-hide-label label.ui-submit, .ui-hide-label .ui-controlgroup-label, -.ui-hidden-accessible { position: absolute !important; left: -9999px; clip: rect(1px 1px 1px 1px); clip: rect(1px,1px,1px,1px); } -/* Transitions originally inspired by those from jQtouch, nice work, folks */ -.ui-mobile-viewport-transitioning, -.ui-mobile-viewport-transitioning .ui-page { - width: 100%; - height: 100%; - overflow: hidden; - -webkit-box-sizing: border-box; - -moz-box-sizing: border-box; - box-sizing: border-box; -} -.ui-page-pre-in { - opacity: 0; -} -.in { - -webkit-animation-timing-function: ease-out; - -webkit-animation-duration: 350ms; - -moz-animation-timing-function: ease-out; - -moz-animation-duration: 350ms; - animation-timing-function: ease-out; - animation-duration: 350ms; -} -.out { - -webkit-animation-timing-function: ease-in; - -webkit-animation-duration: 225ms; - -moz-animation-timing-function: ease-in; - -moz-animation-duration: 225ms; - animation-timing-function: ease-in; - animation-duration: 225ms; -} -@-webkit-keyframes fadein { - from { opacity: 0; } - to { opacity: 1; } -} -@-moz-keyframes fadein { - from { opacity: 0; } - to { opacity: 1; } -} -@keyframes fadein { - from { opacity: 0; } - to { opacity: 1; } -} -@-webkit-keyframes fadeout { - from { opacity: 1; } - to { opacity: 0; } -} -@-moz-keyframes fadeout { - from { opacity: 1; } - to { opacity: 0; } -} -@keyframes fadeout { - from { opacity: 1; } - to { opacity: 0; } -} -.fade.out { - opacity: 0; - -webkit-animation-duration: 125ms; - -webkit-animation-name: fadeout; - -moz-animation-duration: 125ms; - -moz-animation-name: fadeout; - animation-duration: 125ms; - animation-name: fadeout; -} -.fade.in { - opacity: 1; - -webkit-animation-duration: 225ms; - -webkit-animation-name: fadein; - -moz-animation-duration: 225ms; - -moz-animation-name: fadein; - animation-duration: 225ms; - animation-name: fadein; -} -.pop { - -webkit-transform-origin: 50% 50%; - -moz-transform-origin: 50% 50%; - transform-origin: 50% 50%; -} -.pop.in { - -webkit-transform: scale(1); - -webkit-animation-name: popin; - -webkit-animation-duration: 350ms; - -moz-transform: scale(1); - -moz-animation-name: popin; - -moz-animation-duration: 350ms; - transform: scale(1); - animation-name: popin; - animation-duration: 350ms; - opacity: 1; -} -.pop.out { - -webkit-animation-name: fadeout; - -webkit-animation-duration: 100ms; - -moz-animation-name: fadeout; - -moz-animation-duration: 100ms; - animation-name: fadeout; - animation-duration: 100ms; - opacity: 0; -} -.pop.in.reverse { - -webkit-animation-name: fadein; - -moz-animation-name: fadein; - animation-name: fadein; -} -.pop.out.reverse { - -webkit-transform: scale(.8); - -webkit-animation-name: popout; - -moz-transform: scale(.8); - -moz-animation-name: popout; - transform: scale(.8); - animation-name: popout; -} -@-webkit-keyframes popin { - from { - -webkit-transform: scale(.8); - opacity: 0; - } - to { - -webkit-transform: scale(1); - opacity: 1; - } -} -@-moz-keyframes popin { - from { - -moz-transform: scale(.8); - opacity: 0; - } - to { - -moz-transform: scale(1); - opacity: 1; - } -} -@keyframes popin { - from { - transform: scale(.8); - opacity: 0; - } - to { - transform: scale(1); - opacity: 1; - } -} -@-webkit-keyframes popout { - from { - -webkit-transform: scale(1); - opacity: 1; - } - to { - -webkit-transform: scale(.8); - opacity: 0; - } -} -@-moz-keyframes popout { - from { - -moz-transform: scale(1); - opacity: 1; - } - to { - -moz-transform: scale(.8); - opacity: 0; - } -} -@keyframes popout { - from { - transform: scale(1); - opacity: 1; - } - to { - transform: scale(.8); - opacity: 0; - } -} -/* keyframes for slidein from sides */ -@-webkit-keyframes slideinfromright { - from { -webkit-transform: translate3d(100%,0,0); } - to { -webkit-transform: translate3d(0,0,0); } -} -@-moz-keyframes slideinfromright { - from { -moz-transform: translateX(100%); } - to { -moz-transform: translateX(0); } -} -@keyframes slideinfromright { - from { transform: translateX(100%); } - to { transform: translateX(0); } -} -@-webkit-keyframes slideinfromleft { - from { -webkit-transform: translate3d(-100%,0,0); } - to { -webkit-transform: translate3d(0,0,0); } -} -@-moz-keyframes slideinfromleft { - from { -moz-transform: translateX(-100%); } - to { -moz-transform: translateX(0); } -} -@keyframes slideinfromleft { - from { transform: translateX(-100%); } - to { transform: translateX(0); } -} -/* keyframes for slideout to sides */ -@-webkit-keyframes slideouttoleft { - from { -webkit-transform: translate3d(0,0,0); } - to { -webkit-transform: translate3d(-100%,0,0); } -} -@-moz-keyframes slideouttoleft { - from { -moz-transform: translateX(0); } - to { -moz-transform: translateX(-100%); } -} -@keyframes slideouttoleft { - from { transform: translateX(0); } - to { transform: translateX(-100%); } -} -@-webkit-keyframes slideouttoright { - from { -webkit-transform: translate3d(0,0,0); } - to { -webkit-transform: translate3d(100%,0,0); } -} -@-moz-keyframes slideouttoright { - from { -moz-transform: translateX(0); } - to { -moz-transform: translateX(100%); } -} -@keyframes slideouttoright { - from { transform: translateX(0); } - to { transform: translateX(100%); } -} -.slide.out, .slide.in { - -webkit-animation-timing-function: ease-out; - -webkit-animation-duration: 350ms; - -moz-animation-timing-function: ease-out; - -moz-animation-duration: 350ms; - animation-timing-function: ease-out; - animation-duration: 350ms; -} -.slide.out { - -webkit-transform: translate3d(-100%,0,0); - -webkit-animation-name: slideouttoleft; - -moz-transform: translateX(-100%); - -moz-animation-name: slideouttoleft; - transform: translateX(-100%); - animation-name: slideouttoleft; -} -.slide.in { - -webkit-transform: translate3d(0,0,0); - -webkit-animation-name: slideinfromright; - -moz-transform: translateX(0); - -moz-animation-name: slideinfromright; - transform: translateX(0); - animation-name: slideinfromright; -} -.slide.out.reverse { - -webkit-transform: translate3d(100%,0,0); - -webkit-animation-name: slideouttoright; - -moz-transform: translateX(100%); - -moz-animation-name: slideouttoright; - transform: translateX(100%); - animation-name: slideouttoright; -} -.slide.in.reverse { - -webkit-transform: translate3d(0,0,0); - -webkit-animation-name: slideinfromleft; - -moz-transform: translateX(0); - -moz-animation-name: slideinfromleft; - transform: translateX(0); - animation-name: slideinfromleft; -} -.slidefade.out { - -webkit-transform: translateX(-100%); - -webkit-animation-name: slideouttoleft; - -webkit-animation-duration: 225ms; - -moz-transform: translateX(-100%); - -moz-animation-name: slideouttoleft; - -moz-animation-duration: 225ms; - transform: translateX(-100%); - animation-name: slideouttoleft; - animation-duration: 225ms; -} -.slidefade.in { - -webkit-transform: translateX(0); - -webkit-animation-name: fadein; - -webkit-animation-duration: 200ms; - -moz-transform: translateX(0); - -moz-animation-name: fadein; - -moz-animation-duration: 200ms; - transform: translateX(0); - animation-name: fadein; - animation-duration: 200ms; -} -.slidefade.out.reverse { - -webkit-transform: translateX(100%); - -webkit-animation-name: slideouttoright; - -webkit-animation-duration: 200ms; - -moz-transform: translateX(100%); - -moz-animation-name: slideouttoright; - -moz-animation-duration: 200ms; - transform: translateX(100%); - animation-name: slideouttoright; - animation-duration: 200ms; -} -.slidefade.in.reverse { - -webkit-transform: translateX(0); - -webkit-animation-name: fadein; - -webkit-animation-duration: 200ms; - -moz-transform: translateX(0); - -moz-animation-name: fadein; - -moz-animation-duration: 200ms; - transform: translateX(0); - animation-name: fadein; - animation-duration: 200ms; -} -/* slide down */ -.slidedown.out { - -webkit-animation-name: fadeout; - -webkit-animation-duration: 100ms; - -moz-animation-name: fadeout; - -moz-animation-duration: 100ms; - animation-name: fadeout; - animation-duration: 100ms; -} -.slidedown.in { - -webkit-transform: translateY(0); - -webkit-animation-name: slideinfromtop; - -webkit-animation-duration: 250ms; - -moz-transform: translateY(0); - -moz-animation-name: slideinfromtop; - -moz-animation-duration: 250ms; - transform: translateY(0); - animation-name: slideinfromtop; - animation-duration: 250ms; -} -.slidedown.in.reverse { - -webkit-animation-name: fadein; - -webkit-animation-duration: 150ms; - -moz-animation-name: fadein; - -moz-animation-duration: 150ms; - animation-name: fadein; - animation-duration: 150ms; -} -.slidedown.out.reverse { - -webkit-transform: translateY(-100%); - -webkit-animation-name: slideouttotop; - -webkit-animation-duration: 200ms; - -moz-transform: translateY(-100%); - -moz-animation-name: slideouttotop; - -moz-animation-duration: 200ms; - transform: translateY(-100%); - animation-name: slideouttotop; - animation-duration: 200ms; -} -@-webkit-keyframes slideinfromtop { - from { -webkit-transform: translateY(-100%); } - to { -webkit-transform: translateY(0); } -} -@-moz-keyframes slideinfromtop { - from { -moz-transform: translateY(-100%); } - to { -moz-transform: translateY(0); } -} -@keyframes slideinfromtop { - from { transform: translateY(-100%); } - to { transform: translateY(0); } -} -@-webkit-keyframes slideouttotop { - from { -webkit-transform: translateY(0); } - to { -webkit-transform: translateY(-100%); } -} -@-moz-keyframes slideouttotop { - from { -moz-transform: translateY(0); } - to { -moz-transform: translateY(-100%); } -} -@keyframes slideouttotop { - from { transform: translateY(0); } - to { transform: translateY(-100%); } -} -/* slide up */ -.slideup.out { - -webkit-animation-name: fadeout; - -webkit-animation-duration: 100ms; - -moz-animation-name: fadeout; - -moz-animation-duration: 100ms; - animation-name: fadeout; - animation-duration: 100ms; -} -.slideup.in { - -webkit-transform: translateY(0); - -webkit-animation-name: slideinfrombottom; - -webkit-animation-duration: 250ms; - -moz-transform: translateY(0); - -moz-animation-name: slideinfrombottom; - -moz-animation-duration: 250ms; - transform: translateY(0); - animation-name: slideinfrombottom; - animation-duration: 250ms; -} -.slideup.in.reverse { - -webkit-animation-name: fadein; - -webkit-animation-duration: 150ms; - -moz-animation-name: fadein; - -moz-animation-duration: 150ms; - animation-name: fadein; - animation-duration: 150ms; -} -.slideup.out.reverse { - -webkit-transform: translateY(100%); - -webkit-animation-name: slideouttobottom; - -webkit-animation-duration: 200ms; - -moz-transform: translateY(100%); - -moz-animation-name: slideouttobottom; - -moz-animation-duration: 200ms; - transform: translateY(100%); - animation-name: slideouttobottom; - animation-duration: 200ms; -} -@-webkit-keyframes slideinfrombottom { - from { -webkit-transform: translateY(100%); } - to { -webkit-transform: translateY(0); } -} -@-moz-keyframes slideinfrombottom { - from { -moz-transform: translateY(100%); } - to { -moz-transform: translateY(0); } -} -@keyframes slideinfrombottom { - from { transform: translateY(100%); } - to { transform: translateY(0); } -} -@-webkit-keyframes slideouttobottom { - from { -webkit-transform: translateY(0); } - to { -webkit-transform: translateY(100%); } -} -@-moz-keyframes slideouttobottom { - from { -moz-transform: translateY(0); } - to { -moz-transform: translateY(100%); } -} -@keyframes slideouttobottom { - from { transform: translateY(0); } - to { transform: translateY(100%); } -} -/* The properties in this rule are only necessary for the 'flip' transition. - * We need specify the perspective to create a projection matrix. This will add - * some depth as the element flips. The depth number represents the distance of - * the viewer from the z-plane. According to the CSS3 spec, 1000 is a moderate - * value. - */ -.viewport-flip { - -webkit-perspective: 1000; - -moz-perspective: 1000; - perspective: 1000; - position: absolute; -} -.flip { - -webkit-backface-visibility: hidden; - -webkit-transform: translateX(0); /* Needed to work around an iOS 3.1 bug that causes listview thumbs to disappear when -webkit-visibility:hidden is used. */ - -moz-backface-visibility: hidden; - -moz-transform: translateX(0); - backface-visibility: hidden; - transform: translateX(0); -} -.flip.out { - -webkit-transform: rotateY(-90deg) scale(.9); - -webkit-animation-name: flipouttoleft; - -webkit-animation-duration: 175ms; - -moz-transform: rotateY(-90deg) scale(.9); - -moz-animation-name: flipouttoleft; - -moz-animation-duration: 175ms; - transform: rotateY(-90deg) scale(.9); - animation-name: flipouttoleft; - animation-duration: 175ms; -} -.flip.in { - -webkit-animation-name: flipintoright; - -webkit-animation-duration: 225ms; - -moz-animation-name: flipintoright; - -moz-animation-duration: 225ms; - animation-name: flipintoright; - animation-duration: 225ms; -} -.flip.out.reverse { - -webkit-transform: rotateY(90deg) scale(.9); - -webkit-animation-name: flipouttoright; - -moz-transform: rotateY(90deg) scale(.9); - -moz-animation-name: flipouttoright; - transform: rotateY(90deg) scale(.9); - animation-name: flipouttoright; -} -.flip.in.reverse { - -webkit-animation-name: flipintoleft; - -moz-animation-name: flipintoleft; - animation-name: flipintoleft; -} -@-webkit-keyframes flipouttoleft { - from { -webkit-transform: rotateY(0); } - to { -webkit-transform: rotateY(-90deg) scale(.9); } -} -@-moz-keyframes flipouttoleft { - from { -moz-transform: rotateY(0); } - to { -moz-transform: rotateY(-90deg) scale(.9); } -} -@keyframes flipouttoleft { - from { transform: rotateY(0); } - to { transform: rotateY(-90deg) scale(.9); } -} -@-webkit-keyframes flipouttoright { - from { -webkit-transform: rotateY(0) ; } - to { -webkit-transform: rotateY(90deg) scale(.9); } -} -@-moz-keyframes flipouttoright { - from { -moz-transform: rotateY(0); } - to { -moz-transform: rotateY(90deg) scale(.9); } -} -@keyframes flipouttoright { - from { transform: rotateY(0); } - to { transform: rotateY(90deg) scale(.9); } -} -@-webkit-keyframes flipintoleft { - from { -webkit-transform: rotateY(-90deg) scale(.9); } - to { -webkit-transform: rotateY(0); } -} -@-moz-keyframes flipintoleft { - from { -moz-transform: rotateY(-90deg) scale(.9); } - to { -moz-transform: rotateY(0); } -} -@keyframes flipintoleft { - from { transform: rotateY(-90deg) scale(.9); } - to { transform: rotateY(0); } -} -@-webkit-keyframes flipintoright { - from { -webkit-transform: rotateY(90deg) scale(.9); } - to { -webkit-transform: rotateY(0); } -} -@-moz-keyframes flipintoright { - from { -moz-transform: rotateY(90deg) scale(.9); } - to { -moz-transform: rotateY(0); } -} -@keyframes flipintoright { - from { transform: rotateY(90deg) scale(.9); } - to { transform: rotateY(0); } -} -/* The properties in this rule are only necessary for the 'flip' transition. - * We need specify the perspective to create a projection matrix. This will add - * some depth as the element flips. The depth number represents the distance of - * the viewer from the z-plane. According to the CSS3 spec, 1000 is a moderate - * value. - */ -.viewport-turn { - -webkit-perspective: 200px; - -moz-perspective: 200px; - -ms-perspective: 200px; - perspective: 200px; - position: absolute; -} -.turn { - -webkit-backface-visibility: hidden; - -webkit-transform: translateX(0); /* Needed to work around an iOS 3.1 bug that causes listview thumbs to disappear when -webkit-visibility:hidden is used. */ - -webkit-transform-origin: 0; - - -moz-backface-visibility: hidden; - -moz-transform: translateX(0); - -moz-transform-origin: 0; - - backface-visibility :hidden; - transform: translateX(0); - transform-origin: 0; -} -.turn.out { - -webkit-transform: rotateY(-90deg) scale(.9); - -webkit-animation-name: flipouttoleft; - -webkit-animation-duration: 125ms; - -moz-transform: rotateY(-90deg) scale(.9); - -moz-animation-name: flipouttoleft; - -moz-animation-duration: 125ms; - transform: rotateY(-90deg) scale(.9); - animation-name: flipouttoleft; - animation-duration: 125ms; -} -.turn.in { - -webkit-animation-name: flipintoright; - -webkit-animation-duration: 250ms; - -moz-animation-name: flipintoright; - -moz-animation-duration: 250ms; - animation-name: flipintoright; - animation-duration: 250ms; - -} -.turn.out.reverse { - -webkit-transform: rotateY(90deg) scale(.9); - -webkit-animation-name: flipouttoright; - -moz-transform: rotateY(90deg) scale(.9); - -moz-animation-name: flipouttoright; - transform: rotateY(90deg) scale(.9); - animation-name: flipouttoright; -} -.turn.in.reverse { - -webkit-animation-name: flipintoleft; - -moz-animation-name: flipintoleft; - animation-name: flipintoleft; -} -@-webkit-keyframes flipouttoleft { - from { -webkit-transform: rotateY(0); } - to { -webkit-transform: rotateY(-90deg) scale(.9); } -} -@-moz-keyframes flipouttoleft { - from { -moz-transform: rotateY(0); } - to { -moz-transform: rotateY(-90deg) scale(.9); } -} -@keyframes flipouttoleft { - from { transform: rotateY(0); } - to { transform: rotateY(-90deg) scale(.9); } -} -@-webkit-keyframes flipouttoright { - from { -webkit-transform: rotateY(0) ; } - to { -webkit-transform: rotateY(90deg) scale(.9); } -} -@-moz-keyframes flipouttoright { - from { -moz-transform: rotateY(0); } - to { -moz-transform: rotateY(90deg) scale(.9); } -} -@keyframes flipouttoright { - from { transform: rotateY(0); } - to { transform: rotateY(90deg) scale(.9); } -} -@-webkit-keyframes flipintoleft { - from { -webkit-transform: rotateY(-90deg) scale(.9); } - to { -webkit-transform: rotateY(0); } -} -@-moz-keyframes flipintoleft { - from { -moz-transform: rotateY(-90deg) scale(.9); } - to { -moz-transform: rotateY(0); } -} -@keyframes flipintoleft { - from { transform: rotateY(-90deg) scale(.9); } - to { transform: rotateY(0); } -} -@-webkit-keyframes flipintoright { - from { -webkit-transform: rotateY(90deg) scale(.9); } - to { -webkit-transform: rotateY(0); } -} -@-moz-keyframes flipintoright { - from { -moz-transform: rotateY(90deg) scale(.9); } - to { -moz-transform: rotateY(0); } -} -@keyframes flipintoright { - from { transform: rotateY(90deg) scale(.9); } - to { transform: rotateY(0); } -} -/* flow transition */ -.flow { - -webkit-transform-origin: 50% 30%; - -webkit-box-shadow: 0 0 20px rgba(0,0,0,.4); - -moz-transform-origin: 50% 30%; - -moz-box-shadow: 0 0 20px rgba(0,0,0,.4); - transform-origin: 50% 30%; - box-shadow: 0 0 20px rgba(0,0,0,.4); -} -.ui-dialog.flow { - -webkit-transform-origin: none; - -webkit-box-shadow: none; - -moz-transform-origin: none; - -moz-box-shadow: none; - transform-origin: none; - box-shadow: none; -} -.flow.out { - -webkit-transform: translateX(-100%) scale(.7); - -webkit-animation-name: flowouttoleft; - -webkit-animation-timing-function: ease; - -webkit-animation-duration: 350ms; - -moz-transform: translateX(-100%) scale(.7); - -moz-animation-name: flowouttoleft; - -moz-animation-timing-function: ease; - -moz-animation-duration: 350ms; - transform: translateX(-100%) scale(.7); - animation-name: flowouttoleft; - animation-timing-function: ease; - animation-duration: 350ms; -} -.flow.in { - -webkit-transform: translateX(0) scale(1); - -webkit-animation-name: flowinfromright; - -webkit-animation-timing-function: ease; - -webkit-animation-duration: 350ms; - -moz-transform: translateX(0) scale(1); - -moz-animation-name: flowinfromright; - -moz-animation-timing-function: ease; - -moz-animation-duration: 350ms; - transform: translateX(0) scale(1); - animation-name: flowinfromright; - animation-timing-function: ease; - animation-duration: 350ms; -} -.flow.out.reverse { - -webkit-transform: translateX(100%); - -webkit-animation-name: flowouttoright; - -moz-transform: translateX(100%); - -moz-animation-name: flowouttoright; - transform: translateX(100%); - animation-name: flowouttoright; -} -.flow.in.reverse { - -webkit-animation-name: flowinfromleft; - -moz-animation-name: flowinfromleft; - animation-name: flowinfromleft; -} -@-webkit-keyframes flowouttoleft { - 0% { -webkit-transform: translateX(0) scale(1); } - 60%, 70% { -webkit-transform: translateX(0) scale(.7); } - 100% { -webkit-transform: translateX(-100%) scale(.7); } -} -@-moz-keyframes flowouttoleft { - 0% { -moz-transform: translateX(0) scale(1); } - 60%, 70% { -moz-transform: translateX(0) scale(.7); } - 100% { -moz-transform: translateX(-100%) scale(.7); } -} -@keyframes flowouttoleft { - 0% { transform: translateX(0) scale(1); } - 60%, 70% { transform: translateX(0) scale(.7); } - 100% { transform: translateX(-100%) scale(.7); } -} -@-webkit-keyframes flowouttoright { - 0% { -webkit-transform: translateX(0) scale(1); } - 60%, 70% { -webkit-transform: translateX(0) scale(.7); } - 100% { -webkit-transform: translateX(100%) scale(.7); } -} -@-moz-keyframes flowouttoright { - 0% { -moz-transform: translateX(0) scale(1); } - 60%, 70% { -moz-transform: translateX(0) scale(.7); } - 100% { -moz-transform: translateX(100%) scale(.7); } -} -@keyframes flowouttoright { - 0% { transform: translateX(0) scale(1); } - 60%, 70% { transform: translateX(0) scale(.7); } - 100% { transform: translateX(100%) scale(.7); } -} -@-webkit-keyframes flowinfromleft { - 0% { -webkit-transform: translateX(-100%) scale(.7); } - 30%, 40% { -webkit-transform: translateX(0) scale(.7); } - 100% { -webkit-transform: translateX(0) scale(1); } -} -@-moz-keyframes flowinfromleft { - 0% { -moz-transform: translateX(-100%) scale(.7); } - 30%, 40% { -moz-transform: translateX(0) scale(.7); } - 100% { -moz-transform: translateX(0) scale(1); } -} -@keyframes flowinfromleft { - 0% { transform: translateX(-100%) scale(.7); } - 30%, 40% { transform: translateX(0) scale(.7); } - 100% { transform: translateX(0) scale(1); } -} -@-webkit-keyframes flowinfromright { - 0% { -webkit-transform: translateX(100%) scale(.7); } - 30%, 40% { -webkit-transform: translateX(0) scale(.7); } - 100% { -webkit-transform: translateX(0) scale(1); } -} -@-moz-keyframes flowinfromright { - 0% { -moz-transform: translateX(100%) scale(.7); } - 30%, 40% { -moz-transform: translateX(0) scale(.7); } - 100% { -moz-transform: translateX(0) scale(1); } -} -@keyframes flowinfromright { - 0% { transform: translateX(100%) scale(.7); } - 30%, 40% { transform: translateX(0) scale(.7); } - 100% { transform: translateX(0) scale(1); } -} -/* content configurations. */ -.ui-grid-a, .ui-grid-b, .ui-grid-c, .ui-grid-d { overflow: hidden; } -.ui-block-a, .ui-block-b, .ui-block-c, .ui-block-d, .ui-block-e { margin: 0; padding: 0; border: 0; float: left; min-height: 1px; -webkit-box-sizing: border-box; -moz-box-sizing: border-box; -ms-box-sizing: border-box; box-sizing: border-box; } -/* grid solo: 100 - single item fallback */ -.ui-grid-solo .ui-block-a { display: block; float: none; } -/* Lower percentages for older browsers (i.e. IE7) to prevent wrapping. -.5px to fix BB5 wrap issue. */ -/* grid a: 50/50 */ -.ui-grid-a .ui-block-a, .ui-grid-a .ui-block-b { width: 49.95%; } -.ui-grid-a > :nth-child(n) { width: 50%; margin-right: -.5px; } -.ui-grid-a .ui-block-a { clear: left; } -/* grid b: 33/33/33 */ -.ui-grid-b .ui-block-a, .ui-grid-b .ui-block-b, .ui-grid-b .ui-block-c { width: 33.25%; } -.ui-grid-b > :nth-child(n) { width: 33.333%; margin-right: -.5px; } -.ui-grid-b .ui-block-a { clear: left; } -/* grid c: 25/25/25/25 */ -.ui-grid-c .ui-block-a, .ui-grid-c .ui-block-b, .ui-grid-c .ui-block-c, .ui-grid-c .ui-block-d { width: 24.925%; } -.ui-grid-c > :nth-child(n) { width: 25%; margin-right: -.5px; } -.ui-grid-c .ui-block-a { clear: left; } -/* grid d: 20/20/20/20/20 */ -.ui-grid-d .ui-block-a, .ui-grid-d .ui-block-b, .ui-grid-d .ui-block-c, .ui-grid-d .ui-block-d, .ui-grid-d .ui-block-e { width: 19.925%; } -.ui-grid-d > :nth-child(n) { width: 20%; } -.ui-grid-d .ui-block-a { clear: left; } -/* preset breakpoint to switch to stacked grid styles below 35em (560px) */ -@media all and (max-width: 35em) { - .ui-responsive .ui-block-a, - .ui-responsive .ui-block-b, - .ui-responsive .ui-block-c, - .ui-responsive .ui-block-d, - .ui-responsive .ui-block-e { - width: 100%; - float:none; - } -} -/* fixed page header & footer configuration */ -.ui-header-fixed, -.ui-footer-fixed { - left: 0; - right: 0; - width: 100%; - position: fixed; - z-index: 1000; -} -.ui-header-fixed { - top: -1px; - padding-top: 1px; -} -.ui-header-fixed.ui-fixed-hidden { - top: 0; - padding-top: 0; -} -.ui-footer-fixed { - bottom: -1px; - padding-bottom: 1px; -} -.ui-footer-fixed.ui-fixed-hidden { - bottom: 0; - padding-bottom: 0; -} -.ui-header-fullscreen, -.ui-footer-fullscreen { - filter: Alpha(Opacity=90); - opacity: .9; -} -.ui-page-header-fixed { - padding-top: 2.6875em; -} -.ui-page-footer-fixed { - padding-bottom: 2.6875em; -} -.ui-page-header-fullscreen > .ui-content, -.ui-page-footer-fullscreen > .ui-content { - padding: 0; -} -.ui-fixed-hidden { - position: absolute; -} -.ui-page-header-fullscreen .ui-fixed-hidden, -.ui-page-footer-fullscreen .ui-fixed-hidden { - left: -9999px; -} -.ui-header-fixed .ui-btn, -.ui-footer-fixed .ui-btn { - z-index: 10; -} -/* workarounds for other widgets */ -.ui-android-2x-fixed .ui-li-has-thumb { - -webkit-transform: translate3d(0,0,0); -} -.ui-navbar { max-width: 100%; } -.ui-navbar.ui-mini { margin: 0; } -.ui-navbar ul:before, .ui-navbar ul:after { content: " "; display: table; } -.ui-navbar ul:after { clear: both; } -.ui-navbar ul { list-style:none; margin: 0; padding: 0; position: relative; display: block; border: 0; max-width: 100%; overflow: visible; zoom: 1; } -.ui-navbar li .ui-btn { display: block; text-align: center; margin: 0 -1px 0 0; border-right-width: 0; } -.ui-navbar li .ui-btn-icon-right .ui-icon { right: 6px; } -/* add border if not in header/footer (full width) */ -.ui-navbar li:last-child .ui-btn, -.ui-navbar .ui-grid-duo .ui-block-b .ui-btn { margin-right: 0; border-right-width: 1px; } -.ui-header .ui-navbar li:last-child .ui-btn, -.ui-footer .ui-navbar li:last-child .ui-btn, -.ui-header .ui-navbar .ui-grid-duo .ui-block-b .ui-btn, -.ui-footer .ui-navbar .ui-grid-duo .ui-block-b .ui-btn { margin-right: -1px; border-right-width: 0; } -.ui-navbar .ui-grid-duo li.ui-block-a:last-child .ui-btn { margin-right: -1px; border-right-width: 1px; } -.ui-header .ui-navbar li .ui-btn, -.ui-footer .ui-navbar li .ui-btn { border-top-width: 0; border-bottom-width: 0; } -/* fixing gaps caused by subpixel problem */ -.ui-header .ui-navbar .ui-grid-b li.ui-block-c .ui-btn, -.ui-footer .ui-navbar .ui-grid-b li.ui-block-c .ui-btn { margin-right: -5px; } -.ui-header .ui-navbar .ui-grid-c li.ui-block-d .ui-btn, -.ui-footer .ui-navbar .ui-grid-c li.ui-block-d .ui-btn, -.ui-header .ui-navbar .ui-grid-d li.ui-block-e .ui-btn, -.ui-footer .ui-navbar .ui-grid-d li.ui-block-e .ui-btn { margin-right: -4px; } -.ui-header .ui-navbar .ui-grid-b li.ui-block-c .ui-btn-icon-right .ui-icon, -.ui-footer .ui-navbar .ui-grid-b li.ui-block-c .ui-btn-icon-right .ui-icon, -.ui-header .ui-navbar .ui-grid-c li.ui-block-d .ui-btn-icon-right .ui-icon, -.ui-footer .ui-navbar .ui-grid-c li.ui-block-d .ui-btn-icon-right .ui-icon, -.ui-header .ui-navbar .ui-grid-d li.ui-block-e .ui-btn-icon-right .ui-icon, -.ui-footer .ui-navbar .ui-grid-d li.ui-block-e .ui-btn-icon-right .ui-icon { right: 8px; } -.ui-navbar li .ui-btn .ui-btn-inner { padding-top: .7em; padding-bottom: .8em } -.ui-navbar li .ui-btn-icon-top .ui-btn-inner { padding-top: 30px; } -.ui-navbar li .ui-btn-icon-bottom .ui-btn-inner { padding-bottom: 30px; } -.ui-btn { display: block; text-align: center; cursor:pointer; position: relative; margin: .5em 0; padding: 0; } -.ui-mini { margin-top: .25em; margin-bottom: .25em; } -.ui-btn-left, .ui-btn-right, .ui-input-clear, .ui-btn-inline, -.ui-grid-a .ui-btn, .ui-grid-b .ui-btn, .ui-grid-c .ui-btn, .ui-grid-d .ui-btn, .ui-grid-e .ui-btn, .ui-grid-solo .ui-btn { margin-right: 5px; margin-left: 5px; } -.ui-btn-inner { font-size: 16px; padding: .6em 20px; min-width: .75em; display: block; position: relative; text-overflow: ellipsis; overflow: hidden; white-space: nowrap; zoom: 1; } -.ui-btn input, .ui-btn button { z-index: 2; } -.ui-btn-left, .ui-btn-right, .ui-btn-inline { display: inline-block; vertical-align: middle; } -.ui-mobile .ui-btn-left, .ui-mobile .ui-btn-right, .ui-btn-left > .ui-btn, .ui-btn-right > .ui-btn { margin: 0; } /* .ui-mobile to increase specificity level */ -.ui-btn-block { display: block; } -.ui-header > .ui-btn, -.ui-footer > .ui-btn { display: inline-block; margin: 0; } -.ui-header .ui-btn-block, -.ui-footer .ui-btn-block { display: block; } -.ui-header .ui-btn-inner, -.ui-footer .ui-btn-inner, -.ui-mini .ui-btn-inner { font-size: 12.5px; padding: .55em 11px .5em; } -.ui-fullsize .ui-btn-inner, -.ui-fullsize .ui-btn-inner { font-size: 16px; padding: .6em 20px; } -.ui-btn-icon-notext { width: 24px; height: 24px; } -.ui-btn-icon-notext .ui-btn-inner { padding: 0; height: 100%; } -.ui-btn-icon-notext .ui-btn-inner .ui-icon { margin: 2px 1px 2px 3px; float: left; } -.ui-btn-text { position: relative; z-index: 1; width: 100%; -moz-user-select: none; -webkit-user-select: none; -ms-user-select: none; } -div.ui-btn-text { width: auto; } -.ui-btn-icon-notext .ui-btn-text { position: absolute; left: -9999px; } -.ui-btn-icon-left .ui-btn-inner { padding-left: 40px; } -.ui-btn-icon-right .ui-btn-inner { padding-right: 40px; } -.ui-btn-icon-top .ui-btn-inner { padding-top: 40px; } -.ui-btn-icon-bottom .ui-btn-inner { padding-bottom: 40px; } -.ui-header .ui-btn-icon-left .ui-btn-inner, -.ui-footer .ui-btn-icon-left .ui-btn-inner, -.ui-mini.ui-btn-icon-left .ui-btn-inner, -.ui-mini .ui-btn-icon-left .ui-btn-inner { padding-left: 30px; } -.ui-header .ui-btn-icon-right .ui-btn-inner, -.ui-footer .ui-btn-icon-right .ui-btn-inner, -.ui-mini.ui-btn-icon-right .ui-btn-inner, -.ui-mini .ui-btn-icon-right .ui-btn-inner { padding-right: 30px; } -.ui-header .ui-btn-icon-top .ui-btn-inner, -.ui-footer .ui-btn-icon-top .ui-btn-inner { padding: 30px 3px .5em 3px; } -.ui-mini.ui-btn-icon-top .ui-btn-inner, -.ui-mini .ui-btn-icon-top .ui-btn-inner { padding-top: 30px; } -.ui-header .ui-btn-icon-bottom .ui-btn-inner, -.ui-footer .ui-btn-icon-bottom .ui-btn-inner { padding: .55em 3px 30px 3px; } -.ui-mini.ui-btn-icon-bottom .ui-btn-inner, -.ui-mini .ui-btn-icon-bottom .ui-btn-inner { padding-bottom: 30px; } -/* Corner styling inheritance */ -.ui-btn-inner { - -webkit-border-radius: inherit; - border-radius: inherit; -} -/*btn icon positioning*/ -.ui-btn-icon-notext .ui-icon { display: block; z-index: 0;} -.ui-btn-icon-left > .ui-btn-inner > .ui-icon, .ui-btn-icon-right > .ui-btn-inner > .ui-icon { position: absolute; top: 50%; margin-top: -9px; } -.ui-btn-icon-top .ui-btn-inner .ui-icon, .ui-btn-icon-bottom .ui-btn-inner .ui-icon { position: absolute; left: 50%; margin-left: -9px; } -.ui-btn-icon-left .ui-icon { left: 10px; } -.ui-btn-icon-right .ui-icon { right: 10px; } -.ui-btn-icon-top .ui-icon { top: 10px; } -.ui-btn-icon-bottom .ui-icon { top: auto; bottom: 10px; } -.ui-header .ui-btn-icon-left .ui-icon, -.ui-footer .ui-btn-icon-left .ui-icon, -.ui-mini.ui-btn-icon-left .ui-icon, -.ui-mini .ui-btn-icon-left .ui-icon { left: 5px; } -.ui-header .ui-btn-icon-right .ui-icon, -.ui-footer .ui-btn-icon-right .ui-icon, -.ui-mini.ui-btn-icon-right .ui-icon, -.ui-mini .ui-btn-icon-right .ui-icon { right: 5px; } -.ui-header .ui-btn-icon-top .ui-icon, -.ui-footer .ui-btn-icon-top .ui-icon, -.ui-mini.ui-btn-icon-top .ui-icon, -.ui-mini .ui-btn-icon-top .ui-icon { top: 5px; } -.ui-header .ui-btn-icon-bottom .ui-icon, -.ui-footer .ui-btn-icon-bottom .ui-icon, -.ui-mini.ui-btn-icon-bottom .ui-icon, -.ui-mini .ui-btn-icon-bottom .ui-icon { bottom: 5px; } -/*hiding native button,inputs */ -.ui-btn-hidden { position: absolute; top: 0; left: 0; width: 100%; height: 100%; -webkit-appearance: none; cursor: pointer; background: #fff; background: rgba(255,255,255,0); filter: Alpha(Opacity=0); opacity: .1; font-size: 1px; border: none; text-indent: -9999px; } -/* Fixes IE/WP filter alpha opacity bugs */ -.ui-disabled .ui-btn-hidden { display: none; } -.ui-disabled { z-index: 1; } -.ui-field-contain .ui-btn.ui-submit { margin: 0; } -label.ui-submit { font-size: 16px; line-height: 1.4; font-weight: normal; margin: 0 0 .3em; display: block; } -@media all and (min-width: 28em){ - .ui-field-contain label.ui-submit { vertical-align: top; display: inline-block; width: 20%; margin: 0 2% 0 0; } - .ui-field-contain .ui-btn.ui-submit { width: 78%; display: inline-block; -webkit-box-sizing: border-box; -moz-box-sizing: border-box; -ms-box-sizing: border-box; box-sizing: border-box; } - .ui-hide-label .ui-btn.ui-submit { width: auto; display: block; } -} -.ui-collapsible-inset { margin: .5em 0; } -.ui-collapsible-heading { font-size: 16px; display: block; margin: 0 -15px; padding: 0; position: relative; } -.ui-collapsible-inset .ui-collapsible-heading { margin: 0; } -.ui-collapsible-heading .ui-btn { text-align: left; margin: 0; border-left-width: 0; border-right-width: 0; } -.ui-collapsible-inset .ui-collapsible-heading .ui-btn { border-right-width: 1px; border-left-width: 1px; } -.ui-collapsible-collapsed + .ui-collapsible:not(.ui-collapsible-inset) .ui-collapsible-heading .ui-btn { border-top-width: 0; } -.ui-collapsible-set .ui-collapsible:not(.ui-collapsible-inset) .ui-collapsible-heading .ui-btn { border-top-width: 1px; } -.ui-collapsible-heading .ui-btn-inner { padding-left: 12px; padding-right: 12px; } -.ui-collapsible-heading .ui-btn-icon-left .ui-btn-inner { padding-left: 40px; } -.ui-collapsible-heading .ui-btn-icon-right .ui-btn-inner { padding-right: 40px; } -.ui-collapsible-heading .ui-btn-icon-top .ui-btn-inner, -.ui-collapsible-heading .ui-btn-icon-bottom .ui-btn-inner { text-align: center; } -.ui-collapsible-heading .ui-btn-icon-left.ui-mini .ui-btn-inner { padding-left: 30px; } -.ui-collapsible-heading .ui-btn-icon-right.ui-mini .ui-btn-inner { padding-right: 30px; } -.ui-collapsible-heading .ui-btn span.ui-btn { position: absolute; left: 6px; top: 50%; margin: -12px 0 0 0; width: 20px; height: 20px; padding: 1px 0 1px 2px; text-indent: -9999px; } -.ui-collapsible-heading .ui-btn span.ui-btn .ui-btn-inner { padding: 10px 0; } -.ui-collapsible-heading .ui-btn span.ui-btn .ui-icon { left: 0; margin-top: -10px; } -.ui-collapsible-heading-status { position: absolute; top: -9999px; left: 0; } -.ui-collapsible-content { - display: block; - margin: 0 -15px; - padding: 10px 15px; - border-left-width: 0; - border-right-width: 0; - border-top: none; /* Overrides ui-body-* */ - background-image: none; /* Overrides ui-body-* */ -} -.ui-collapsible-inset .ui-collapsible-content { margin: 0; border-right-width: 1px; border-left-width: 1px; } -.ui-collapsible-content-collapsed { display: none; } -.ui-collapsible-set > .ui-collapsible.ui-corner-all { - -webkit-border-radius: 0; - border-radius: 0; -} -.ui-collapsible-heading, -.ui-collapsible-heading > .ui-btn { - -webkit-border-radius: inherit; - border-radius: inherit; -} -.ui-collapsible-set .ui-collapsible.ui-first-child { - -webkit-border-top-right-radius: inherit; - border-top-right-radius: inherit; - -webkit-border-top-left-radius: inherit; - border-top-left-radius: inherit; -} -.ui-collapsible-content, -.ui-collapsible-set .ui-collapsible.ui-last-child { - -webkit-border-bottom-right-radius: inherit; - border-bottom-right-radius: inherit; - -webkit-border-bottom-left-radius: inherit; - border-bottom-left-radius: inherit; -} -.ui-collapsible-themed-content:not(.ui-collapsible-collapsed) > .ui-collapsible-heading { - -webkit-border-bottom-right-radius: 0; - border-bottom-right-radius: 0; - -webkit-border-bottom-left-radius: 0; - border-bottom-left-radius: 0; -} -.ui-collapsible-set { margin: .5em 0; } -.ui-collapsible-set .ui-collapsible { margin: -1px 0 0; } -.ui-collapsible-set .ui-collapsible.ui-first-child { margin-top: 0; } -.ui-controlgroup, fieldset.ui-controlgroup { padding: 0; margin: .5em 0; zoom: 1; } -.ui-controlgroup.ui-mini, fieldset.ui-controlgroup.ui-mini { margin: .25em 0; } -.ui-field-contain .ui-controlgroup, .ui-field-contain fieldset.ui-controlgroup { margin: 0; } -.ui-bar .ui-controlgroup { margin: 0 5px; } -.ui-controlgroup-label { font-size: 16px; line-height: 1.4; font-weight: normal; margin: 0 0 .4em; } -.ui-controlgroup-controls label.ui-select, -.ui-controlgroup-controls label.ui-submit { position: absolute; left: -9999px; } -.ui-controlgroup li { list-style: none; } -.ui-controlgroup .ui-btn { margin: 0; } -.ui-controlgroup .ui-btn-icon-notext { width: auto; height: auto; top: auto; } -.ui-controlgroup .ui-btn-icon-notext .ui-btn-inner { height: 20px; padding: .6em 20px .6em 20px } -.ui-controlgroup-horizontal .ui-btn-icon-notext .ui-btn-inner { width: 18px; } -.ui-controlgroup.ui-mini .ui-btn-icon-notext .ui-btn-inner, -.ui-header .ui-controlgroup .ui-btn-icon-notext .ui-btn-inner, -.ui-footer .ui-controlgroup .ui-btn-icon-notext .ui-btn-inner { height: 16px; padding: .55em 11px .5em 11px; } -.ui-controlgroup .ui-btn-icon-notext .ui-btn-inner .ui-icon { position: absolute; top: 50%; right: 50%; margin: -9px -9px 0 0; } -.ui-controlgroup-horizontal .ui-btn-inner { text-align: center; } -.ui-controlgroup-horizontal.ui-mini .ui-btn-inner { height: 16px; line-height: 16px; } -.ui-controlgroup .ui-checkbox label, .ui-controlgroup .ui-radio label { font-size: 16px; } -.ui-controlgroup-horizontal .ui-controlgroup-controls:before, -.ui-controlgroup-horizontal .ui-controlgroup-controls:after { content: ""; display: table; } -.ui-controlgroup-horizontal .ui-controlgroup-controls:after { clear: both; } -.ui-controlgroup-horizontal .ui-controlgroup-controls { display: inline-block; vertical-align: middle; zoom: 1; } -.ui-controlgroup-horizontal .ui-controlgroup-controls > .ui-btn, .ui-controlgroup-horizontal .ui-controlgroup-controls li > .ui-btn, -.ui-controlgroup-horizontal .ui-checkbox, .ui-controlgroup-horizontal .ui-radio, -.ui-controlgroup-horizontal .ui-select { float: left; clear: none; margin: 0; } -/* On IE7 the floating selects will be displayed as block if .ui-btn-text has width 100% */ -.ui-controlgroup-horizontal .ui-select .ui-btn-text { width: auto; } -.ui-controlgroup-vertical .ui-btn { border-bottom-width: 0; } -.ui-controlgroup-vertical .ui-btn.ui-last-child { border-bottom-width: 1px; } -.ui-controlgroup-horizontal .ui-btn { border-right-width: 0; } -.ui-controlgroup-horizontal .ui-btn.ui-last-child { border-right-width: 1px; } -.ui-controlgroup .ui-btn-corner-all { - -webkit-border-radius: 0; - border-radius: 0; -} -.ui-controlgroup .ui-controlgroup-controls, -.ui-controlgroup .ui-radio, -.ui-controlgroup .ui-checkbox, -.ui-controlgroup .ui-select, -.ui-controlgroup li { - -webkit-border-radius: inherit; - border-radius: inherit; -} -.ui-controlgroup-vertical .ui-btn.ui-first-child { - -webkit-border-top-left-radius: inherit; - border-top-left-radius: inherit; - -webkit-border-top-right-radius: inherit; - border-top-right-radius: inherit; -} -.ui-controlgroup-vertical .ui-btn.ui-last-child { - -webkit-border-bottom-left-radius: inherit; - border-bottom-left-radius: inherit; - -webkit-border-bottom-right-radius: inherit; - border-bottom-right-radius: inherit; -} -.ui-controlgroup-horizontal .ui-btn.ui-first-child { - -webkit-border-top-left-radius: inherit; - border-top-left-radius: inherit; - -webkit-border-bottom-left-radius: inherit; - border-bottom-left-radius: inherit; -} -.ui-controlgroup-horizontal .ui-btn.ui-last-child { - -webkit-border-top-right-radius: inherit; - border-top-right-radius: inherit; - -webkit-border-bottom-right-radius: inherit; - border-bottom-right-radius: inherit; -} -.ui-controlgroup .ui-shadow:not(.ui-focus) { - -moz-box-shadow: none; - -webkit-box-shadow: none; - box-shadow: none; -} -@media all and (min-width: 28em){ - .ui-field-contain .ui-controlgroup-label { vertical-align: top; display: inline-block; width: 20%; margin: 0 2% 0 0; } - .ui-field-contain .ui-controlgroup-controls { width: 78%; display: inline-block; } - .ui-field-contain .ui-controlgroup .ui-select { width: 100%; display: block; } - .ui-field-contain .ui-controlgroup-horizontal .ui-select { width: auto; } - .ui-hide-label .ui-controlgroup-controls { width: 100%; } -} -.ui-dialog { - background: none !important; /* this is to ensure that dialog theming does not apply (by default at least) on the page div */ -} -.ui-dialog-contain { - width: 92.5%; - max-width: 500px; - margin: 10% auto 15px auto; - padding: 0; - position: relative; - top: -15px; -} -.ui-dialog-contain > .ui-header, -.ui-dialog-contain > .ui-content, -.ui-dialog-contain > .ui-footer { - display: block; - position: relative; - width: auto; - margin: 0; -} -.ui-dialog-contain > .ui-header { - border: none; - overflow: hidden; - z-index: 10; - padding: 0; -} -.ui-dialog-contain > .ui-content { - padding: 15px; -} -.ui-dialog-contain > .ui-footer { - z-index: 10; - padding: 0 15px; -} -.ui-popup-open .ui-header-fixed, -.ui-popup-open .ui-footer-fixed { - position: absolute !important; /* See line #553 of popup.js */ -} -.ui-popup-screen { - background-image: url(data:image/gif;base64,R0lGODlhAQABAID/AMDAwAAAACH5BAEAAAAALAAAAAABAAEAAAICRAEAOw==); /* Necessary to set some form of background to ensure element is clickable in IE6/7. While legacy IE won't understand the data-URI'd image, it ensures no additional requests occur in all other browsers with little overhead. */ - top: 0; - left: 0; - right: 0; - bottom: 1px; - position: absolute; - filter: Alpha(Opacity=0); - opacity: 0; - z-index: 1099; -} -.ui-popup-screen.in { - opacity: 0.5; - filter: Alpha(Opacity=50); -} -.ui-popup-screen.out { - opacity: 0; - filter: Alpha(Opacity=0); -} -.ui-popup-container { - z-index: 1100; - display: inline-block; - position: absolute; - padding: 0; - outline: 0; -} -.ui-popup { - position: relative; -} -.ui-popup.ui-content, -.ui-popup .ui-content { - overflow: visible; -} -.ui-popup > p, -.ui-popup > h1, -.ui-popup > h2, -.ui-popup > h3, -.ui-popup > h4, -.ui-popup > h5, -.ui-popup > h6 { - margin: .5em 7px; -} -.ui-popup > span { - display: block; - margin: .5em 7px; -} -.ui-popup .ui-title { - font-size: 16px; - font-weight: bold; - margin-top: .5em; - margin-bottom: .5em; -} -.ui-popup-container .ui-content > p, -.ui-popup-container .ui-content > h1, -.ui-popup-container .ui-content > h2, -.ui-popup-container .ui-content > h3, -.ui-popup-container .ui-content > h4, -.ui-popup-container .ui-content > h5, -.ui-popup-container .ui-content > h6 { - margin: .5em 0; -} -.ui-popup-container .ui-content > span { - margin: 0; -} -.ui-popup-container .ui-content > p:first-child, -.ui-popup-container .ui-content > h1:first-child, -.ui-popup-container .ui-content > h2:first-child, -.ui-popup-container .ui-content > h3:first-child, -.ui-popup-container .ui-content > h4:first-child, -.ui-popup-container .ui-content > h5:first-child, -.ui-popup-container .ui-content > h6:first-child { - margin-top: 0; -} -.ui-popup-container .ui-content > p:last-child, -.ui-popup-container .ui-content > h1:last-child, -.ui-popup-container .ui-content > h2:last-child, -.ui-popup-container .ui-content > h3:last-child, -.ui-popup-container .ui-content > h4:last-child, -.ui-popup-container .ui-content > h5:last-child, -.ui-popup-container .ui-content > h6:last-child { - margin-bottom: 0; -} -.ui-popup > img { - width: auto; - height: auto; - max-width: 100%; - max-height: 100%; - vertical-align: middle; -} -.ui-popup:not(.ui-content) > img:only-child, -.ui-popup:not(.ui-content) > .ui-btn-left:first-child + img:last-child, -.ui-popup:not(.ui-content) > .ui-btn-right:first-child + img:last-child { - -webkit-border-radius: inherit; - border-radius: inherit; -} -.ui-popup iframe { - vertical-align: middle; -} -@media all and (min-width: 28em){ - .ui-popup .ui-field-contain label.ui-submit, - .ui-popup .ui-field-contain .ui-controlgroup-label, - .ui-popup .ui-field-contain label.ui-select, - .ui-popup .ui-field-contain label.ui-input-text { - font-size: 16px; line-height: 1.4; display: block; font-weight: normal; margin: 0 0 .3em; - } - .ui-popup .ui-field-contain .ui-btn.ui-submit, - .ui-popup .ui-field-contain .ui-controlgroup-controls, - .ui-popup .ui-field-contain .ui-select, - .ui-popup .ui-field-contain input.ui-input-text, - .ui-popup .ui-field-contain textarea.ui-input-text, - .ui-popup .ui-field-contain .ui-input-search { - width: 100%; display: block; - } -} -.ui-popup > .ui-btn-left, -.ui-popup > .ui-btn-right { - position: absolute; - top: -9px; - margin: 0; - z-index: 1101; -} -.ui-popup > .ui-btn-left { left: -9px; } -.ui-popup > .ui-btn-right { right: -9px; } -.ui-popup-hidden { top: -99999px; left: -9999px; } -.ui-checkbox, .ui-radio { position: relative; clear: both; margin: 0; z-index: 1; } -.ui-checkbox .ui-btn, .ui-radio .ui-btn { text-align: left; z-index: 2; } -.ui-controlgroup .ui-checkbox .ui-btn, .ui-controlgroup .ui-radio .ui-btn { margin: 0; } -.ui-checkbox .ui-btn-inner, .ui-radio .ui-btn-inner { white-space: normal; } -.ui-checkbox .ui-btn-icon-left .ui-btn-inner,.ui-radio .ui-btn-icon-left .ui-btn-inner { padding-left: 45px; } -.ui-checkbox .ui-mini.ui-btn-icon-left .ui-btn-inner,.ui-radio .ui-mini.ui-btn-icon-left .ui-btn-inner { padding-left: 36px; } -.ui-checkbox .ui-btn-icon-right .ui-btn-inner, .ui-radio .ui-btn-icon-right .ui-btn-inner { padding-right: 45px; } -.ui-checkbox .ui-mini.ui-btn-icon-right .ui-btn-inner, .ui-radio .ui-mini.ui-btn-icon-right .ui-btn-inner { padding-right: 36px; } -.ui-checkbox .ui-btn-icon-top .ui-btn-inner, .ui-radio .ui-btn-icon-top .ui-btn-inner { padding-right: 0; padding-left: 0; text-align: center; } -.ui-checkbox .ui-btn-icon-bottom .ui-btn-inner, .ui-radio .ui-btn-icon-bottom .ui-btn-inner { padding-right: 0; padding-left: 0; text-align: center; } -.ui-checkbox .ui-icon, .ui-radio .ui-icon { top: 1.1em; } -.ui-checkbox .ui-btn-icon-left .ui-icon, .ui-radio .ui-btn-icon-left .ui-icon { left: 15px; } -.ui-checkbox .ui-mini.ui-btn-icon-left .ui-icon, .ui-radio .ui-mini.ui-btn-icon-left .ui-icon { left: 9px; } -.ui-checkbox .ui-btn-icon-right .ui-icon, .ui-radio .ui-btn-icon-right .ui-icon { right: 15px; } -.ui-checkbox .ui-mini.ui-btn-icon-right .ui-icon, .ui-radio .ui-mini.ui-btn-icon-right .ui-icon { right: 9px; } -.ui-checkbox .ui-btn-icon-top .ui-icon, .ui-radio .ui-btn-icon-top .ui-icon { top: 10px; } -.ui-checkbox .ui-btn-icon-bottom .ui-icon, .ui-radio .ui-btn-icon-bottom .ui-icon { top: auto; bottom: 10px; } -.ui-checkbox .ui-btn-icon-right .ui-icon, .ui-radio .ui-btn-icon-right .ui-icon { right: 15px; } -.ui-checkbox .ui-mini.ui-btn-icon-right .ui-icon, .ui-radio .ui-mini.ui-btn-icon-right .ui-icon { right: 9px; } -.ui-controlgroup-horizontal .ui-checkbox .ui-icon, -.ui-controlgroup-horizontal .ui-radio .ui-icon { display: none; } -.ui-controlgroup-horizontal .ui-checkbox .ui-btn-inner, -.ui-controlgroup-horizontal .ui-radio .ui-btn-inner { padding: .6em 20px; } -.ui-controlgroup-horizontal .ui-checkbox .ui-mini .ui-btn-inner, -.ui-controlgroup-horizontal .ui-radio .ui-mini .ui-btn-inner { padding: .55em 11px .5em; } -/* input, label positioning */ -.ui-checkbox input,.ui-radio input { position:absolute; left:20px; top:50%; width: 10px; height: 10px; margin:-5px 0 0 0; outline: 0 !important; z-index: 1; } -.ui-field-contain, fieldset.ui-field-contain { padding: .8em 0; margin: 0; border-width: 0 0 1px 0; overflow: visible; } -.ui-field-contain:last-child { border-bottom-width: 0; } -.ui-field-contain { max-width: 100%; } /* This prevents horizontal scrollbar in IE7 */ -@media all and (min-width: 28em){ - .ui-field-contain, .ui-mobile fieldset.ui-field-contain { border-width: 0; padding: 0; margin: 1em 0; } -} -.ui-select { display: block; position: relative; } -.ui-select select { position: absolute; left: -9999px; top: -9999px; } -.ui-select .ui-btn { opacity: 1; } -.ui-field-contain .ui-select .ui-btn { margin: 0; } -/* Fixes #2588: When Windows Phone 7.5 (Mango) tries to calculate a numeric opacity for a select (including "inherit") without explicitly specifying an opacity on the parent to give it context, a bug appears where clicking elsewhere on the page after opening the select will open the select again. */ -.ui-select .ui-btn select { cursor: pointer; -webkit-appearance: none; left: 0; top:0; width: 100%; min-height: 1.5em; min-height: 100%; height: 3em; max-height: 100%; filter: Alpha(Opacity=0); opacity: 0; z-index: 2; } -.ui-select .ui-disabled { opacity: .3; } -/* Display none because of issues with IE/WP's filter alpha opacity */ -.ui-select .ui-disabled select { display: none; } -@-moz-document url-prefix() { .ui-select .ui-btn select { opacity: 0.0001; }} -.ui-select .ui-btn.ui-select-nativeonly { border-radius: 0; border: 0; } -.ui-select .ui-btn.ui-select-nativeonly select { opacity: 1; text-indent: 0; display: block; } -.ui-select .ui-disabled.ui-select-nativeonly .ui-btn-inner { opacity: 0; } -.ui-select .ui-btn-icon-right .ui-btn-inner, .ui-select .ui-li-has-count .ui-btn-inner { padding-right: 45px; } -.ui-select .ui-mini.ui-btn-icon-right .ui-btn-inner { padding-right: 32px; } -.ui-select .ui-btn-icon-right.ui-li-has-count .ui-btn-inner { padding-right: 80px; } -.ui-select .ui-mini.ui-btn-icon-right.ui-li-has-count .ui-btn-inner { padding-right: 67px; } -.ui-select .ui-btn-icon-right .ui-icon { right: 15px; } -.ui-select .ui-mini.ui-btn-icon-right .ui-icon { right: 7px; } -.ui-select .ui-btn-icon-right.ui-li-has-count .ui-li-count { right: 45px; } -.ui-select .ui-mini.ui-btn-icon-right.ui-li-has-count .ui-li-count { right: 32px; } -/* labels */ -label.ui-select { font-size: 16px; line-height: 1.4; font-weight: normal; margin: 0 0 .3em; display: block; } -/*listbox*/ -.ui-select .ui-btn-text, .ui-selectmenu .ui-btn-text { display: block; min-height: 1em; overflow: hidden !important; -/* This !important is required for iPad Safari specifically. See https://github.com/jquery/jquery-mobile/issues/2647 */ } -.ui-select .ui-btn-text { text-overflow: ellipsis; } -.ui-selectmenu { padding: 6px; min-width: 160px; } -.ui-selectmenu .ui-listview { margin: 0; } -.ui-selectmenu .ui-btn.ui-li-divider { cursor: default; } -.ui-screen-hidden, .ui-selectmenu-list .ui-li .ui-icon { display: none; } -.ui-selectmenu-list .ui-li .ui-icon { display: block; } -.ui-li.ui-selectmenu-placeholder { display: none; } -.ui-selectmenu .ui-header { margin: 0; padding: 0; } -.ui-selectmenu.ui-popup .ui-header { -webkit-border-top-left-radius: 0; border-top-left-radius: 0; -webkit-border-top-right-radius: 0; border-top-right-radius: 0; } -.ui-selectmenu .ui-header .ui-title { margin: 0.6em 46px 0.8em; } -@media all and (min-width: 28em){ - .ui-field-contain label.ui-select { vertical-align: top; display: inline-block; width: 20%; margin: 0 2% 0 0; } - .ui-field-contain .ui-select { width: 78%; display: inline-block; } - .ui-hide-label .ui-select { width: 100%; } -} -/* when no placeholder is defined in a multiple select, the header height doesn't even extend past the close button. this shim's content in there */ -.ui-selectmenu .ui-header h1:after { content: '.'; visibility: hidden; } -label.ui-input-text { font-size: 16px; line-height: 1.4; display: block; font-weight: normal; margin: 0 0 .3em; } -input.ui-input-text, textarea.ui-input-text { background-image: none; padding: .4em; margin: .5em 0; min-height: 1.4em; line-height: 1.4em; font-size: 16px; display: block; width: 100%; outline: 0; } -input.ui-mini, .ui-mini input, textarea.ui-mini { font-size: 14px; } -div.ui-input-text input.ui-input-text, div.ui-input-text textarea.ui-input-text, -.ui-input-search input.ui-input-text { border: none; width: 100%; padding: .4em 0; margin: 0; display: block; background: transparent none; outline: 0 !important; } -.ui-input-search, div.ui-input-text { margin: .5em 0; background-image: none; position: relative; } -.ui-input-search { padding: 0 30px; } -div.ui-input-text { padding: 0 .4em; } -div.ui-input-has-clear { padding: 0 30px 0 .4em; } -input.ui-input-text.ui-mini, textarea.ui-input-text.ui-mini, -.ui-input-search.ui-mini, div.ui-input-text.ui-mini { margin: .25em 0; } -.ui-field-contain input.ui-input-text, .ui-field-contain textarea.ui-input-text, -.ui-field-contain .ui-input-search, .ui-field-contain div.ui-input-text { margin: 0; } -textarea.ui-input-text { -webkit-box-sizing: border-box; -moz-box-sizing: border-box; -ms-box-sizing: border-box; box-sizing: border-box; } -input.ui-input-text { -webkit-appearance: none; } -textarea.ui-input-text { height: 50px; -webkit-transition: height 200ms linear; -moz-transition: height 200ms linear; -o-transition: height 200ms linear; transition: height 200ms linear; } -textarea.ui-mini { height: 45px; } -.ui-icon-searchfield:after { position: absolute; left: 7px; top: 50%; margin-top: -9px; content: ""; width: 18px; height: 18px; opacity: .5; } -.ui-input-search .ui-input-clear, .ui-input-text .ui-input-clear { position: absolute; right: 0; top: 50%; margin-top: -13px; } -.ui-mini .ui-input-clear { right: -3px; } -.ui-input-search .ui-input-clear-hidden, .ui-input-text .ui-input-clear-hidden { display: none; } -/* Resolves issue #5166: Added to support issue introduced in Firefox 15. We can likely remove this in the future. */ -input::-moz-placeholder, textarea::-moz-placeholder { color: #aaa; } -/* Resolves issue #5131: Width of textinput depends on its type, for Android 4.1 */ -input[type=number]::-webkit-outer-spin-button { margin: 0; } -@media all and (min-width: 28em){ - .ui-field-contain label.ui-input-text { vertical-align: top; display: inline-block; width: 20%; margin: 0 2% 0 0 } - .ui-field-contain input.ui-input-text, - .ui-field-contain textarea.ui-input-text, - .ui-field-contain .ui-input-search, - .ui-field-contain div.ui-input-text { width: 78%; display: inline-block; } - .ui-field-contain .ui-input-search, - .ui-field-contain div.ui-input-text { -webkit-box-sizing: border-box; -moz-box-sizing: border-box; -ms-box-sizing: border-box; box-sizing: border-box; } - .ui-hide-label input.ui-input-text, - .ui-hide-label textarea.ui-input-text, - .ui-hide-label .ui-input-search, - .ui-hide-label div.ui-input-text, - .ui-input-search input.ui-input-text, - div.ui-input-text input.ui-input-text { width: 100%; } -} -.ui-rangeslider { - zoom: 1; - margin: 0; -} -.ui-rangeslider:before, -.ui-rangeslider:after { - content: ""; - display: table; -} -.ui-rangeslider:after { - clear: both; -} -/* Margin-top/bottom: .5em * 16px/14px to make it equal to ui-rangeslider-sliders margin (input font-size is 14px) */ -.ui-rangeslider input.ui-input-text.ui-slider-input { - margin: .57143em 0; -} -.ui-rangeslider.ui-mini input.ui-slider-input { - margin: .28571em 0; -} -.ui-rangeslider input.ui-slider-input.ui-rangeslider-last { - float: right; -} -.ui-rangeslider .ui-rangeslider-sliders { - position: relative; - overflow: visible; - height: 30px; - margin: .5em 68px; -} -.ui-rangeslider.ui-mini .ui-rangeslider-sliders { - margin: .25em 68px; -} -.ui-field-contain .ui-rangeslider input.ui-slider-input, -.ui-field-contain .ui-rangeslider.ui-mini input.ui-slider-input, -.ui-field-contain .ui-rangeslider .ui-rangeslider-sliders, -.ui-field-contain .ui-rangeslider.ui-mini .ui-rangeslider-sliders { - margin-top: 0; - margin-bottom: 0; -} -.ui-rangeslider .ui-rangeslider-sliders .ui-slider-track { - position: absolute; - top: 6px; - right: 0; - left: 0; - margin: 0; -} -.ui-rangeslider.ui-mini .ui-rangeslider-sliders .ui-slider-track { - top: 8px; -} -.ui-rangeslider .ui-slider-track:first-child .ui-slider-bg { - display: none; -} -.ui-rangeslider .ui-rangeslider-sliders .ui-slider-track:first-child { - background-color: transparent; - background: none; - border-width: 0; - height: 0; -} -/* this makes ie6 and ie7 set height to 0 to fix z-index problem */ -html >/**/body .ui-rangeslider .ui-rangeslider-sliders .ui-slider-track:first-child { - height: 15px; - border-width: 1px; -} -html >/**/body .ui-rangeslider.ui-mini .ui-rangeslider-sliders .ui-slider-track:first-child { - height: 12px; -} -@media all and (min-width: 28em){ - .ui-field-contain .ui-rangeslider label.ui-slider { - float: left; - } - .ui-field-contain .ui-rangeslider input.ui-slider-input { - position: relative; - z-index: 1; - } - .ui-field-contain .ui-rangeslider input.ui-slider-input.ui-rangeslider-first, - .ui-field-contain .ui-rangeslider.ui-mini input.ui-slider-input.ui-rangeslider-first { - margin-right: 17px; - } - .ui-field-contain .ui-rangeslider .ui-rangeslider-sliders, - .ui-field-contain .ui-rangeslider.ui-mini .ui-rangeslider-sliders { - float: left; - width: 78%; - margin: 0 -68px; - } - .ui-field-contain .ui-rangeslider .ui-slider-track, - .ui-field-contain .ui-rangeslider.ui-mini .ui-slider-track { - right: 68px; - left: 68px; - } - .ui-field-contain.ui-hide-label .ui-rangeslider input.ui-slider-input.ui-rangeslider-first { - margin: 0; - } - .ui-field-contain.ui-hide-label .ui-rangeslider .ui-rangeslider-sliders, - .ui-field-contain.ui-hide-label .ui-rangeslider.ui-mini .ui-rangeslider-sliders { - width: auto; - float: none; - margin: 0 68px; - } - .ui-field-contain.ui-hide-label .ui-rangeslider .ui-slider-track, - .ui-field-contain.ui-hide-label .ui-rangeslider.ui-mini .ui-slider-track { - right: 0; - left: 0; - } -} -.ui-listview { margin: 0; } -ol.ui-listview, ol.ui-listview .ui-li-divider { counter-reset: listnumbering; } -.ui-content .ui-listview, .ui-panel-inner > .ui-listview { margin: -15px; } -.ui-collapsible-content > .ui-listview { margin: -10px -15px; } -.ui-content .ui-listview-inset, .ui-panel-inner .ui-listview-inset { margin: 1em 0; } -.ui-collapsible-content .ui-listview-inset { margin: .5em 0; } -.ui-listview, .ui-li { list-style: none; padding: 0; } -.ui-li, .ui-li.ui-field-contain { display: block; margin: 0; position: relative; overflow: visible; text-align: left; border-width: 0; border-top-width: 1px; } -.ui-li.ui-btn, .ui-li.ui-field-contain, .ui-li-divider, .ui-li-static { margin: 0; } -.ui-listview-inset .ui-li { border-right-width: 1px; border-left-width: 1px; } -.ui-li.ui-last-child, .ui-li.ui-field-contain.ui-last-child { border-bottom-width: 1px; } -.ui-collapsible-content > .ui-listview:not(.ui-listview-inset) > .ui-li.ui-first-child { border-top-width: 0; } -.ui-collapsible-themed-content .ui-listview:not(.ui-listview-inset) > .ui-li.ui-last-child { border-bottom-width: 0; } -.ui-li .ui-btn-text a.ui-link-inherit { text-overflow: ellipsis; overflow: hidden; white-space: nowrap; } -.ui-li-static { background-image: none; } -.ui-li-divider { padding: .5em 15px; font-size: 14px; font-weight: bold; } -ol.ui-listview .ui-link-inherit:before, ol.ui-listview .ui-li-static:before, .ui-li-dec { font-size: .8em; display: inline-block; padding-right: .3em; font-weight: normal; counter-increment: listnumbering; content: counter(listnumbering) ". "; } -ol.ui-listview .ui-li-jsnumbering:before { content: "" !important; } /* to avoid chance of duplication */ -.ui-listview .ui-li > .ui-btn-text { - -webkit-border-radius: inherit; - border-radius: inherit; -} -.ui-listview > .ui-li.ui-first-child, -.ui-listview .ui-btn.ui-first-child > .ui-li > .ui-btn-text > .ui-link-inherit { - -webkit-border-top-right-radius: inherit; - border-top-right-radius: inherit; - -webkit-border-top-left-radius: inherit; - border-top-left-radius: inherit; -} -.ui-listview > .ui-li.ui-last-child, -.ui-listview .ui-btn.ui-last-child > .ui-li > .ui-btn-text > .ui-link-inherit, -.ui-collapsible-content > .ui-listview:not(.ui-listview-inset), -.ui-collapsible-content > .ui-listview:not(.ui-listview-inset) .ui-li.ui-last-child { - -webkit-border-bottom-right-radius: inherit; - border-bottom-right-radius: inherit; - -webkit-border-bottom-left-radius: inherit; - border-bottom-left-radius: inherit; -} -.ui-listview > .ui-li.ui-first-child .ui-li-link-alt { - -webkit-border-top-right-radius: inherit; - border-top-right-radius: inherit; -} -.ui-listview > .ui-li.ui-last-child .ui-li-link-alt { - -webkit-border-bottom-right-radius: inherit; - border-bottom-right-radius: inherit; -} -.ui-listview > .ui-li.ui-first-child .ui-li-thumb:not(.ui-li-icon) { - -webkit-border-top-left-radius: inherit; - border-top-left-radius: inherit; -} -.ui-listview > .ui-li.ui-last-child .ui-li-thumb:not(.ui-li-icon) { - -webkit-border-bottom-left-radius: inherit; - border-bottom-left-radius: inherit; -} -.ui-li>.ui-btn-inner { display: block; position: relative; padding: 0; } -.ui-li .ui-btn-inner a.ui-link-inherit, .ui-li-static.ui-li { padding: .7em 15px; display: block; } -.ui-li-has-thumb .ui-btn-inner a.ui-link-inherit, .ui-li-static.ui-li-has-thumb { min-height: 59px; padding-left: 100px; } -.ui-li-has-icon .ui-btn-inner a.ui-link-inherit, .ui-li-static.ui-li-has-icon { min-height: 20px; padding-left: 40px; } -.ui-li-has-count .ui-btn-inner a.ui-link-inherit, .ui-li-static.ui-li-has-count, .ui-li-divider.ui-li-has-count { padding-right: 45px; } -.ui-li-has-arrow .ui-btn-inner a.ui-link-inherit, .ui-li-static.ui-li-has-arrow { padding-right: 40px; } -.ui-li-has-arrow.ui-li-has-count .ui-btn-inner a.ui-link-inherit, .ui-li-static.ui-li-has-arrow.ui-li-has-count { padding-right: 75px; } -.ui-li-heading { font-size: 16px; font-weight: bold; display: block; margin: .6em 0; text-overflow: ellipsis; overflow: hidden; white-space: nowrap; } -.ui-li-desc { font-size: 12px; font-weight: normal; display: block; margin: -.5em 0 .6em; text-overflow: ellipsis; overflow: hidden; white-space: nowrap; } -ol.ui-listview > .ui-li .ui-li-heading { display: inline-block; width: 100%; margin-left: -1.3em; text-indent: 1.3em; vertical-align: middle; } -ol.ui-listview > .ui-li .ui-li-desc:not(.ui-li-aside) { text-indent: 1.55em; } -.ui-li-thumb, .ui-listview .ui-li-icon { position: absolute; left: 1px; top: 0; max-height: 80px; max-width: 80px; } -.ui-listview .ui-li-icon { max-height: 16px; max-width: 16px; left: 10px; top: .9em; } -.ui-li-thumb, .ui-listview .ui-li-icon, .ui-li-content { float: left; margin-right: 10px; } -.ui-li-aside { float: right; width: 50%; text-align: right; margin: .3em 0; } -@media all and (min-width: 480px){ - .ui-li-aside { width: 45%; } -} -.ui-li-divider { cursor: default; } -.ui-li-has-alt .ui-btn-inner a.ui-link-inherit, .ui-li-static.ui-li-has-alt { padding-right: 53px; } -.ui-li-has-alt.ui-li-has-count .ui-btn-inner a.ui-link-inherit, .ui-li-static.ui-li-has-alt.ui-li-has-count { padding-right: 88px; } -.ui-li-has-count .ui-li-count { position: absolute; font-size: 11px; font-weight: bold; padding: .2em .5em; top: 50%; margin-top: -.9em; right: 10px; } -.ui-li-has-count.ui-li-divider .ui-li-count, .ui-li-has-count .ui-link-inherit .ui-li-count { margin-top: -.95em; } -.ui-li-has-arrow.ui-li-has-count .ui-li-count { right: 40px; } -.ui-li-has-alt.ui-li-has-count .ui-li-count { right: 53px; } -.ui-li-link-alt { position: absolute; width: 40px; height: 100%; border-width: 0; border-left-width: 1px; top: 0; right: 0; margin: 0; padding: 0; z-index: 2; } -.ui-li-link-alt .ui-btn { overflow: hidden; position: absolute; right: 8px; top: 50%; margin: -13px 0 0 0; border-bottom-width: 1px; z-index: -1;} -.ui-li-link-alt .ui-btn-inner { padding: 0; height: 100%; position: absolute; width: 100%; top: 0; left: 0;} -.ui-li-link-alt .ui-btn .ui-icon { right: 50%; margin-right: -9px; } -.ui-li-link-alt .ui-btn-icon-notext .ui-btn-inner .ui-icon { position: absolute; top: 50%; margin-top: -9px; } -.ui-listview * .ui-btn-inner > .ui-btn > .ui-btn-inner { border-top: 0; } -.ui-listview-filter { border-width: 0; overflow: hidden; margin: -15px -15px 15px -15px; } -.ui-collapsible-content .ui-listview-filter { margin: -10px -15px 10px -15px; border-bottom: inherit; } -.ui-listview-filter-inset { margin: -15px -5px; background: transparent; } -.ui-collapsible-content .ui-listview-filter-inset { margin: -5px; border-bottom-width: 0; } -.ui-listview-filter .ui-input-search { margin: 5px; width: auto; display: block; } -.ui-li.ui-screen-hidden{ display:none; } -/* Odd iPad positioning issue. */ -@media only screen and (min-device-width: 768px) and (max-device-width: 1024px) { - .ui-li .ui-btn-text { overflow: visible; } -} -label.ui-slider { - font-size: 16px; - line-height: 1.4; - font-weight: normal; - margin: 0; - display: block; -} -.ui-field-contain label.ui-slider { - margin-bottom: .4em; -} -div.ui-slider { - height: 30px; - margin: .5em 0; - zoom: 1; -} -div.ui-slider.ui-mini { - margin: .25em 0; -} -.ui-field-contain div.ui-slider, -.ui-field-contain div.ui-slider.ui-mini { - margin: 0; -} -div.ui-slider:before, div.ui-slider:after { - content: ""; - display: table; -} -div.ui-slider:after { - clear: both; -} -/* High level of specificity to override Textinput CSS. */ -input.ui-input-text.ui-slider-input { - display: block; - float: left; - margin: 0; - padding: 4px; - width: 40px; - height: 22px; - line-height: 22px; - font-size: 14px; - border-width: 0; - background-image: none; - font-weight: bold; - text-align: center; - vertical-align: text-bottom; - outline: 0; - -webkit-box-sizing: content-box; - -moz-box-sizing: content-box; - -ms-box-sizing: content-box; - box-sizing: content-box; -} -.ui-slider-input::-webkit-outer-spin-button, -.ui-slider-input::-webkit-inner-spin-button { - -webkit-appearance: none; - margin: 0; -} -.ui-slider-track, -.ui-slider-switch { - position: relative; - overflow: visible; - height: 15px; - margin: 0 15px 0 68px; - top: 6px; -} -.ui-slider-track.ui-mini { - height: 12px; - top: 8px; -} -.ui-slider-bg { - border: none; - height: 100%; -} -/* High level of specificity to override button margins in grids */ -.ui-slider-track .ui-btn.ui-slider-handle, -.ui-slider-switch .ui-btn.ui-slider-handle { - position: absolute; - z-index: 1; - top: 50%; - width: 28px; - height: 28px; - margin: -15px 0 0 -15px; - outline: 0; -} -.ui-slider-track.ui-mini .ui-slider-handle { - height: 14px; - width: 14px; - margin: -8px 0 0 -7px; -} -.ui-slider-handle .ui-btn-inner { - padding: 0; - height: 100%; -} -.ui-slider-track.ui-mini .ui-slider-handle .ui-btn-inner { - height: 30px; - width: 30px; - padding: 0; - margin: -9px 0 0 -9px; - border-top: none; -} -select.ui-slider-switch { - display: none; -} -div.ui-slider-switch { - display: inline-block; - height: 32px; - width: 5.8em; - margin: .5em 0; - top: 0; -} -/* reset the clearfix */ -div.ui-slider-switch:before, div.ui-slider-switch:after { - display: none; - clear: none; -} -div.ui-slider-switch.ui-mini { - width: 5em; - height: 29px; - margin: .25em 0; - top: 0; -} -.ui-field-contain .ui-slider-switch, -.ui-field-contain .ui-slider-switch.ui-mini { - margin: 0; -} -.ui-slider-inneroffset { - margin: 0 16px; - position: relative; - z-index: 1; -} -.ui-slider-switch.ui-mini .ui-slider-inneroffset { - margin: 0 15px 0 14px; -} -.ui-slider-switch .ui-btn.ui-slider-handle { - margin: 1px 0 0 -15px; -} -.ui-slider-switch.ui-mini .ui-slider-handle { - width: 25px; - height: 25px; - margin: 1px 0 0 -13px; - padding: 0; -} -.ui-slider-handle-snapping { - -webkit-transition: left 70ms linear; - -moz-transition: left 70ms linear; -} -.ui-slider-switch.ui-mini .ui-slider-handle .ui-btn-inner { - height: 30px; - width: 30px; - padding: 0; - margin: 0; - border-top: none; -} -.ui-slider-switch .ui-slider-label { - position: absolute; - text-align: center; - width: 100%; - overflow: hidden; - font-size: 16px; - top: 0; - line-height: 2; - min-height: 100%; - border-width: 0; - white-space: nowrap; - cursor: pointer; -} -.ui-slider-switch.ui-mini .ui-slider-label { - font-size: 14px; -} -.ui-slider-switch .ui-slider-label-a { - z-index: 1; - left: 0; - text-indent: -1.5em; -} -.ui-slider-switch .ui-slider-label-b { - z-index: 0; - right: 0; - text-indent: 1.5em; -} -@media all and (min-width: 28em){ - .ui-field-contain label.ui-slider { - vertical-align: top; - display: inline-block; - width: 20%; - margin: 0 2% 0 0; - } - .ui-field-contain div.ui-slider { - display: inline-block; - width: 78%; - } - .ui-field-contain.ui-hide-label div.ui-slider { - display: block; - width: auto; - } - .ui-field-contain div.ui-slider-switch, - .ui-field-contain.ui-hide-label div.ui-slider-switch { - display: inline-block; - width: 5.8em; - } - .ui-field-contain div.ui-slider-switch.ui-mini { - width: 5em; - } -} -.ui-table { - border: 0; - border-collapse: collapse; - padding: 0; - width: 100%; -} -.ui-table th, -.ui-table td { - line-height: 1.5em; - text-align: left; - padding: .4em .5em; - vertical-align:top; -} -.ui-table th .ui-btn, -.ui-table td .ui-btn { - line-height: normal; -} -.ui-table th { - font-weight: bold; -} -.ui-table caption { - text-align:left; - margin-bottom:1.4em; - opacity: .5; -} -/* Add strokes between each row */ -.table-stroke thead th { - border-bottom: 1px solid #d6d6d6; /* non-RGBA fallback */ - border-bottom: 1px solid rgba(0, 0, 0, .1); -} -.table-stroke tbody th, -.table-stroke tbody td { - border-bottom: 1px solid #e6e6e6; /* non-RGBA fallback */ - border-bottom: 1px solid rgba(0, 0, 0, .05); -} -/* Add alternating row stripes */ -.table-stripe tbody tr:nth-child(odd) td, -.table-stripe tbody tr:nth-child(odd) th { - background-color: #eeeeee; /* non-RGBA fallback */ - background-color: rgba(0,0,0,0.04); -} -/* Add stroke to the header and last item */ -.table-stripe thead th, -.table-stripe tbody tr:last-child { - border-bottom: 1px solid #d6d6d6; /* non-RGBA fallback */ - border-bottom: 1px solid rgba(0, 0, 0, .1); -} -/* - Styles for the table columntoggle mode -*/ -.ui-table-columntoggle-btn { - float: right; - margin-bottom:.8em; -} -/* Remove top/bottom margins around the fieldcontain on check list */ -.ui-table-columntoggle-popup fieldset { - margin:0; -} -/* Hide all prioritized columns by default */ -@media only all { - th.ui-table-priority-6, - td.ui-table-priority-6, - th.ui-table-priority-5, - td.ui-table-priority-5, - th.ui-table-priority-4, - td.ui-table-priority-4, - th.ui-table-priority-3, - td.ui-table-priority-3, - th.ui-table-priority-2, - td.ui-table-priority-2, - th.ui-table-priority-1, - td.ui-table-priority-1 { - display: none; - } -} -/* Preset breakpoints if ".ui-responsive" class added to table */ -/* Show priority 1 at 320px (20em x 16px) */ -@media screen and (min-width: 20em) { - .ui-table-columntoggle.ui-responsive th.ui-table-priority-1, - .ui-table-columntoggle.ui-responsive td.ui-table-priority-1 { - display: table-cell; - } -} -/* Show priority 2 at 480px (30em x 16px) */ -@media screen and (min-width: 30em) { - .ui-table-columntoggle.ui-responsive th.ui-table-priority-2, - .ui-table-columntoggle.ui-responsive td.ui-table-priority-2 { - display: table-cell; - } -} -/* Show priority 3 at 640px (40em x 16px) */ -@media screen and (min-width: 40em) { - .ui-table-columntoggle.ui-responsive th.ui-table-priority-3, - .ui-table-columntoggle.ui-responsive td.ui-table-priority-3 { - display: table-cell; - } -} -/* Show priority 4 at 800px (50em x 16px) */ -@media screen and (min-width: 50em) { - .ui-table-columntoggle.ui-responsive th.ui-table-priority-4, - .ui-table-columntoggle.ui-responsive td.ui-table-priority-4 { - display: table-cell; - } -} -/* Show priority 5 at 960px (60em x 16px) */ -@media screen and (min-width: 60em) { - .ui-table-columntoggle.ui-responsive th.ui-table-priority-5, - .ui-table-columntoggle.ui-responsive td.ui-table-priority-5 { - display: table-cell; - } -} -/* Show priority 6 at 1,120px (70em x 16px) */ -@media screen and (min-width: 70em) { - .ui-table-columntoggle.ui-responsive th.ui-table-priority-6, - .ui-table-columntoggle.ui-responsive td.ui-table-priority-6 { - display: table-cell; - } -} -/* Unchecked manually: Always hide */ -.ui-table-columntoggle th.ui-table-cell-hidden, -.ui-table-columntoggle td.ui-table-cell-hidden, -.ui-table-columntoggle.ui-responsive th.ui-table-cell-hidden, -.ui-table-columntoggle.ui-responsive td.ui-table-cell-hidden { - display: none; -} -/* Checked manually: Always show */ -.ui-table-columntoggle th.ui-table-cell-visible, -.ui-table-columntoggle td.ui-table-cell-visible, -.ui-table-columntoggle.ui-responsive th.ui-table-cell-visible, -.ui-table-columntoggle.ui-responsive td.ui-table-cell-visible { - display: table-cell; -} -/* - Styles for the table columntoggle mode -*/ -.ui-table-reflow td .ui-table-cell-label, -.ui-table-reflow th .ui-table-cell-label { - display: none; -} -/* Mobile first styles: Begin with the stacked presentation at narrow widths */ -@media only all { - /* Hide the table headers */ - .ui-table-reflow thead td, - .ui-table-reflow thead th { - display: none; - } - /* Show the table cells as a block level element */ - .ui-table-reflow td, - .ui-table-reflow th { - text-align: left; - display: block; - } - /* Add a fair amount of top margin to visually separate each row when stacked */ - .ui-table-reflow tbody th { - margin-top: 3em; - } - /* Make the label elements a percentage width */ - .ui-table-reflow td .ui-table-cell-label, - .ui-table-reflow th .ui-table-cell-label { - display: block; - padding: .4em; - min-width: 30%; - display: inline-block; - margin: -.4em 1em -.4em -.4em; - } - /* For grouped headers, have a different style to visually separate the levels by classing the first label in each col group */ - .ui-table-reflow th .ui-table-cell-label-top, - .ui-table-reflow td .ui-table-cell-label-top { - display: block; - padding: .4em 0; - margin: .4em 0; - text-transform: uppercase; - font-size: .9em; - font-weight: normal; - } -} -/* Breakpoint to show as a standard table at 560px (35em x 16px) or wider */ -@media ( min-width: 35em ) { - /* Fixes table rendering when switching between breakpoints in Safari <= 5. See https://github.com/jquery/jquery-mobile/issues/5380 */ - .ui-table-reflow.ui-responsive { - display: table-row-group; - } - /* Show the table header rows */ - .ui-table-reflow.ui-responsive td, - .ui-table-reflow.ui-responsive th, - .ui-table-reflow.ui-responsive tbody th, - .ui-table-reflow.ui-responsive tbody td, - .ui-table-reflow.ui-responsive thead td, - .ui-table-reflow.ui-responsive thead th { - display: table-cell; - margin: 0; - } - /* Hide the labels in each cell */ - .ui-table-reflow.ui-responsive td .ui-table-cell-label, - .ui-table-reflow.ui-responsive th .ui-table-cell-label { - display: none; - } -} -/* Hack to make IE9 and WP7.5 treat cells like block level elements, scoped to ui-responsive class */ -/* Applied in a max-width media query up to the table layout breakpoint so we don't need to negate this*/ -@media ( max-width: 35em ) { - .ui-table-reflow.ui-responsive td, - .ui-table-reflow.ui-responsive th { - width: 100%; - -webkit-box-sizing: border-box; - -moz-box-sizing: border-box; - box-sizing: border-box; - float: left; - clear: left; - } -} -/* panel */ -.ui-panel { - width: 17em; - min-height: 100%; - max-height: none; - border-width: 0; - position: absolute; - top: 0; - display: block; -} -.ui-panel-closed { - width: 0; - max-height: 100%; - overflow: hidden; - visibility: hidden; -} -.ui-panel-fixed { - position: fixed; - bottom: -1px; /* fixes gap on Chrome for Android */ - padding-bottom: 1px; -} -.ui-panel-display-overlay { - z-index: 1001; /* fixed toolbars have z-index 1000 */ -} -.ui-panel-display-reveal { - z-index: 0; -} -.ui-panel-display-push { - z-index: 999; -} -.ui-panel-inner { - padding: 15px; -} -/* content-wrap */ -.ui-panel-content-wrap { - position: relative; - left: 0; - min-height: inherit; - border: none; - z-index: 999; -} -.ui-panel-content-wrap-display-overlay, -.ui-panel-animate.ui-panel-content-wrap > .ui-header, /* ios4 fix */ -.ui-panel-content-wrap-closed { - position: static; -} -/* dismiss */ -.ui-panel-dismiss { - position: absolute; - top: 0; - left:0; - height: 100%; - width: 100%; - z-index: 1002; - display: none; -} -.ui-panel-dismiss-open { - display: block; -} -/* animate class is added to panel, wrapper and fixed toolbars */ -.ui-panel-animate { - -webkit-transition: -webkit-transform 350ms ease; - -moz-transition: -moz-transform 350ms ease; - transition: transform 350ms ease; -} -/* hardware acceleration for smoother transitions on WebKit browsers */ -.ui-panel-animate.ui-panel:not(.ui-panel-display-reveal), -.ui-panel-animate.ui-panel:not(.ui-panel-display-reveal) > div, -.ui-panel-animate.ui-panel-closed.ui-panel-display-reveal > div, -.ui-panel-animate.ui-panel-content-wrap, -.ui-panel-animate.ui-panel-content-fixed-toolbar { - -webkit-backface-visibility: hidden; - -webkit-transform: translate3d(0,0,0); -} -/* positioning: panel */ -/* panel left */ -.ui-panel-position-left { - left: -17em; -} -/* animated: panel left (for overlay and push) */ -.ui-panel-animate.ui-panel-position-left.ui-panel-display-overlay, -.ui-panel-animate.ui-panel-position-left.ui-panel-display-push { - left: 0; - -webkit-transform: translate3d(-17em,0,0); - -moz-transform: translate3d(-17em,0,0); - transform: translate3d(-17em,0,0); -} -/* panel left open */ -.ui-panel-position-left.ui-panel-display-reveal, /* negate "panel left" for reveal */ -.ui-panel-position-left.ui-panel-open { - left: 0; -} -/* animated: panel left open (for overlay and push) */ -.ui-panel-animate.ui-panel-position-left.ui-panel-open.ui-panel-display-overlay, -.ui-panel-animate.ui-panel-position-left.ui-panel-open.ui-panel-display-push { - -webkit-transform: translate3d(0,0,0); - transform: translate3d(0,0,0); - -moz-transform: none; -} -/* panel right */ -.ui-panel-position-right { - right: -17em; -} -/* animated: panel right (for overlay and push) */ -.ui-panel-animate.ui-panel-position-right.ui-panel-display-overlay, -.ui-panel-animate.ui-panel-position-right.ui-panel-display-push { - right: 0; - -webkit-transform: translate3d(17em,0,0); - -moz-transform: translate3d(17em,0,0); - transform: translate3d(17em,0,0); -} -/* panel right open */ -.ui-panel-position-right.ui-panel-display-reveal, /* negate "panel right" for reveal */ -.ui-panel-position-right.ui-panel-open { - right: 0; -} -/* animated: panel right open (for overlay and push) */ -.ui-panel-animate.ui-panel-position-right.ui-panel-open.ui-panel-display-overlay, -.ui-panel-animate.ui-panel-position-right.ui-panel-open.ui-panel-display-push { - -webkit-transform: translate3d(0,0,0); - transform: translate3d(0,0,0); - -moz-transform: none; -} -/* positioning: content wrap, fixed toolbars and dismiss */ -/* panel left open */ -.ui-panel-content-fixed-toolbar-position-left.ui-panel-content-fixed-toolbar-open, -.ui-panel-content-wrap-position-left.ui-panel-content-wrap-open, -.ui-panel-dismiss-position-left.ui-panel-dismiss-open { - left: 17em; - right: -17em; -} -/* animated: panel left open (for reveal and push) */ -.ui-panel-animate.ui-panel-content-fixed-toolbar-position-left.ui-panel-content-fixed-toolbar-open.ui-panel-content-fixed-toolbar-display-reveal, -.ui-panel-animate.ui-panel-content-fixed-toolbar-position-left.ui-panel-content-fixed-toolbar-open.ui-panel-content-fixed-toolbar-display-push, -.ui-panel-animate.ui-panel-content-wrap-position-left.ui-panel-content-wrap-open.ui-panel-content-wrap-display-reveal, -.ui-panel-animate.ui-panel-content-wrap-position-left.ui-panel-content-wrap-open.ui-panel-content-wrap-display-push { - left: 0; - right: 0; - -webkit-transform: translate3d(17em,0,0); - -moz-transform: translate3d(17em,0,0); - transform: translate3d(17em,0,0); -} -/* panel right open */ -.ui-panel-content-fixed-toolbar-position-right.ui-panel-content-fixed-toolbar-open, -.ui-panel-content-wrap-position-right.ui-panel-content-wrap-open, -.ui-panel-dismiss-position-right.ui-panel-dismiss-open { - left: -17em; - right: 17em; -} -/* animated: panel right open (for reveal and push) */ -.ui-panel-animate.ui-panel-content-fixed-toolbar-position-right.ui-panel-content-fixed-toolbar-open.ui-panel-content-fixed-toolbar-display-reveal, -.ui-panel-animate.ui-panel-content-fixed-toolbar-position-right.ui-panel-content-fixed-toolbar-open.ui-panel-content-fixed-toolbar-display-push, -.ui-panel-animate.ui-panel-content-wrap-position-right.ui-panel-content-wrap-open.ui-panel-content-wrap-display-reveal, -.ui-panel-animate.ui-panel-content-wrap-position-right.ui-panel-content-wrap-open.ui-panel-content-wrap-display-push { - left: 0; - right: 0; - -webkit-transform: translate3d(-17em,0,0); - -moz-transform: translate3d(-17em,0,0); - transform: translate3d(-17em,0,0); -} -/* negate "panel left/right open" for overlay */ -.ui-panel-content-fixed-toolbar-open.ui-panel-content-fixed-toolbar-display-overlay, -.ui-panel-content-wrap-open.ui-panel-content-wrap-display-overlay { - left: 0; -} -/* always disable overflow-x to prevent zoom issue on Android */ -.ui-page-active.ui-page-panel { - overflow-x: hidden; -} -/* shadows and borders */ -.ui-panel-display-reveal { - -webkit-box-shadow: inset -5px 0 5px rgba(0,0,0,.15); - -moz-box-shadow: inset -5px 0 5px rgba(0,0,0,.15); - box-shadow: inset -5px 0 5px rgba(0,0,0,.15); -} -.ui-panel-position-right.ui-panel-display-reveal { - -webkit-box-shadow: inset 5px 0 5px rgba(0,0,0,.15); - -moz-box-shadow: inset 5px 0 5px rgba(0,0,0,.15); - box-shadow: inset 5px 0 5px rgba(0,0,0,.15); -} -.ui-panel-display-overlay { - -webkit-box-shadow: 5px 0 5px rgba(0,0,0,.15); - -moz-box-shadow: 5px 0 5px rgba(0,0,0,.15); - box-shadow: 5px 0 5px rgba(0,0,0,.15); -} -.ui-panel-position-right.ui-panel-display-overlay { - -webkit-box-shadow: -5px 0 5px rgba(0,0,0,.15); - -moz-box-shadow: -5px 0 5px rgba(0,0,0,.15); - box-shadow: -5px 0 5px rgba(0,0,0,.15); -} -.ui-panel-display-push.ui-panel-open.ui-panel-position-left { - border-right-width: 1px; - margin-right: -1px; -} -.ui-panel-animate.ui-panel-content-fixed-toolbar-position-left.ui-panel-content-fixed-toolbar-open.ui-panel-content-fixed-toolbar-display-push { - margin-left: 1px; -} -.ui-panel-display-push.ui-panel-open.ui-panel-position-right { - border-left-width: 1px; - margin-left: -1px; -} -.ui-panel-animate.ui-panel-content-fixed-toolbar-position-right.ui-panel-content-fixed-toolbar-open.ui-panel-content-fixed-toolbar-display-push { - margin-right: 1px; -} -/* wrap on wide viewports once open */ -@media (min-width:55em){ - .ui-responsive-panel.ui-page-panel-open .ui-panel-content-fixed-toolbar-display-push.ui-panel-content-fixed-toolbar-position-left, - .ui-responsive-panel.ui-page-panel-open .ui-panel-content-fixed-toolbar-display-reveal.ui-panel-content-fixed-toolbar-position-left, - .ui-responsive-panel.ui-page-panel-open .ui-panel-content-wrap-display-push.ui-panel-content-wrap-position-left, - .ui-responsive-panel.ui-page-panel-open .ui-panel-content-wrap-display-reveal.ui-panel-content-wrap-position-left { - margin-right: 17em; - } - .ui-responsive-panel.ui-page-panel-open .ui-panel-content-fixed-toolbar-display-push.ui-panel-content-fixed-toolbar-position-right, - .ui-responsive-panel.ui-page-panel-open .ui-panel-content-fixed-toolbar-display-reveal.ui-panel-content-fixed-toolbar-position-right, - .ui-responsive-panel.ui-page-panel-open .ui-panel-content-wrap-display-push.ui-panel-content-wrap-position-right, - .ui-responsive-panel.ui-page-panel-open .ui-panel-content-wrap-display-reveal.ui-panel-content-wrap-position-right { - margin-left: 17em; - } - .ui-responsive-panel.ui-page-panel-open .ui-panel-content-fixed-toolbar-display-push, - .ui-responsive-panel.ui-page-panel-open .ui-panel-content-fixed-toolbar-display-reveal { - width: auto; - } - .ui-responsive-panel .ui-panel-dismiss-display-push { - display: none; - } -} diff --git a/themes/smartpocket/js/code.photoswipe.jquery.min.js b/themes/smartpocket/js/code.photoswipe.jquery.min.js deleted file mode 100644 index d209fc3e3..000000000 --- a/themes/smartpocket/js/code.photoswipe.jquery.min.js +++ /dev/null @@ -1,164 +0,0 @@ -// PhotoSwipe - http://www.photoswipe.com/ -// Copyright (c) 2012 by Code Computerlove (http://www.codecomputerlove.com) -// Licensed under the MIT license -// version: 3.0.5.1 -(function(e){Function.prototype.bind||(Function.prototype.bind=function(d){var a=[].slice,b=a.call(arguments,1),c=this,g=function(){},f=function(){return c.apply(this instanceof g?this:d||{},b.concat(a.call(arguments)))};g.prototype=c.prototype;f.prototype=new g;return f});"undefined"===typeof e.Code&&(e.Code={});e.Code.Util={registerNamespace:function(){var d=arguments,a=null,b,c,g,f,i;b=0;for(f=d.length;bd.DOM.windowHeight()}};d.Browser._detect()})(window,window.Code.Util); -(function(e,d,a){a.extend(a,{Events:{add:function(a,c,g){"mousewheel"===c&&(c=this._normaliseMouseWheelType());d(a).bind(c,g)},remove:function(a,c,g){"mousewheel"===c&&(c=this._normaliseMouseWheelType());d(a).unbind(c,g)},fire:function(a,c){var g,f=Array.prototype.slice.call(arguments).splice(2);"mousewheel"===c&&(c=this._normaliseMouseWheelType());g="string"===typeof c?{type:c}:c;d(a).trigger(d.Event(g.type,g),f)},getMousePosition:function(a){return{x:a.pageX,y:a.pageY}},getTouchEvent:function(a){return a.originalEvent}, -getWheelDelta:function(b){var c=0;a.isNothing(b.originalEvent.wheelDelta)?a.isNothing(b.originalEvent.detail)||(c=-b.originalEvent.detail/3):c=b.originalEvent.wheelDelta/120;return c},domReady:function(a){d(document).ready(a)},_normaliseMouseWheelType:function(){return a.Browser.isEventSupported("mousewheel")?"mousewheel":"DOMMouseScroll"}}})})(window,window.jQuery,window.Code.Util); -(function(e,d,a){a.extend(a,{DOM:{setData:function(b,c,g){if(a.isLikeArray(b)){var f,d;f=0;for(d=b.length;f"+a+">");a.attr(c);a.append(g);return a[0]},appendChild:function(a,c){d(c).append(a)},insertBefore:function(a,c){d(a).insertBefore(c)},appendText:function(a,c){d(c).text(a)},appendToBody:function(a){d("body").append(a)},removeChild:function(a){d(a).empty().remove()},removeChildren:function(a){d(a).empty()}, -hasAttribute:function(b,c){return!a.isNothing(d(b).attr(c))},getAttribute:function(b,c,g){b=d(b).attr(c);a.isNothing(b)&&!a.isNothing(g)&&(b=g);return b},setAttribute:function(b,c,g){if(a.isLikeArray(b)){var f,d;f=0;for(d=b.length;f=f&&(f=1);if(0>=b&&(d.DOM.setStyle(a,"opacity",f),!d.isNothing(c))){c(a); -return}1<=d.DOM.getStyle(a,"opacity")&&d.DOM.setStyle(a,"opacity",0);d.Browser.isCSSTransformSupported?this._applyTransition(a,"opacity",f,b,c,g):d.isNothing(e.jQuery)||e.jQuery(a).fadeTo(b,f,c)},fadeTo:function(a,b,c,g,f){this.fadeIn(a,c,g,f,b)},fadeOut:function(a,b,c,g){if(0>=b&&(d.DOM.setStyle(a,"opacity",0),!d.isNothing(c))){c(a);return}d.Browser.isCSSTransformSupported?this._applyTransition(a,"opacity",0,b,c,g):e.jQuery(a).fadeTo(b,0,c)},slideBy:function(a,b,c,g,f,i){var j={},b=d.coalesce(b, -0),c=d.coalesce(c,0),i=d.coalesce(i,"ease-out");j[this._transitionPrefix+"Property"]="all";j[this._transitionPrefix+"Delay"]="0";0===g?(j[this._transitionPrefix+"Duration"]="",j[this._transitionPrefix+"TimingFunction"]=""):(j[this._transitionPrefix+"Duration"]=g+"ms",j[this._transitionPrefix+"TimingFunction"]=d.coalesce(i,"ease-out"),d.Events.add(a,this._transitionEndLabel,this._getTransitionEndHandler()));j[this._transformLabel]=d.Browser.is3dSupported?"translate3d("+b+"px, "+c+"px, 0px)":"translate("+ -b+"px, "+c+"px)";d.isNothing(f)||(a.cclallcallback=f);d.DOM.setStyle(a,j);0===g&&e.setTimeout(function(){this._leaveTransforms(a)}.bind(this),this._applyTransitionDelay)},resetTranslate:function(a){var b={};b[this._transformLabel]=b[this._transformLabel]=d.Browser.is3dSupported?"translate3d(0px, 0px, 0px)":"translate(0px, 0px)";d.DOM.setStyle(a,b)},_applyTransition:function(a,b,c,g,f,i){var j={},i=d.coalesce(i,"ease-in");j[this._transitionPrefix+"Property"]=b;j[this._transitionPrefix+"Duration"]= -g+"ms";j[this._transitionPrefix+"TimingFunction"]=i;j[this._transitionPrefix+"Delay"]="0";d.Events.add(a,this._transitionEndLabel,this._getTransitionEndHandler());d.DOM.setStyle(a,j);d.isNothing(f)||(a["ccl"+b+"callback"]=f);e.setTimeout(function(){d.DOM.setStyle(a,b,c)},this._applyTransitionDelay)},_onTransitionEnd:function(a){d.Events.remove(a.currentTarget,this._transitionEndLabel,this._getTransitionEndHandler());this._leaveTransforms(a.currentTarget)},_leaveTransforms:function(a){var b=a.style[this._transitionPrefix+ -"Property"],c=""!==b?"ccl"+b+"callback":"cclallcallback",g,b=d.coalesce(a.style.webkitTransform,a.style.MozTransform,a.style.OTransform,a.style.transform),f,i=e.parseInt(d.DOM.getStyle(a,"left"),0),j=e.parseInt(d.DOM.getStyle(a,"top"),0),h,l,k={};""!==b&&(b=d.Browser.is3dSupported?b.match(/translate3d\((.*?)\)/):b.match(/translate\((.*?)\)/),d.isNothing(b)||(f=b[1].split(", "),h=e.parseInt(f[0],0),l=e.parseInt(f[1],0)));k[this._transitionPrefix+"Property"]="";k[this._transitionPrefix+"Duration"]= -"";k[this._transitionPrefix+"TimingFunction"]="";k[this._transitionPrefix+"Delay"]="";d.DOM.setStyle(a,k);e.setTimeout(function(){if(!d.isNothing(f)){k={};k[this._transformLabel]="";k.left=i+h+"px";k.top=j+l+"px";d.DOM.setStyle(a,k)}if(!d.isNothing(a[c])){g=a[c];delete a[c];g(a)}}.bind(this),this._applyTransitionDelay)}}})})(window,window.Code.Util); -(function(e,d,a){a.registerNamespace("Code.Util.TouchElement");a.TouchElement.EventTypes={onTouch:"CodeUtilTouchElementOnTouch"};a.TouchElement.ActionTypes={touchStart:"touchStart",touchMove:"touchMove",touchEnd:"touchEnd",touchMoveEnd:"touchMoveEnd",tap:"tap",doubleTap:"doubleTap",swipeLeft:"swipeLeft",swipeRight:"swipeRight",swipeUp:"swipeUp",swipeDown:"swipeDown",gestureStart:"gestureStart",gestureChange:"gestureChange",gestureEnd:"gestureEnd"}})(window,window.klass,window.Code.Util); -(function(e,d,a){a.registerNamespace("Code.Util.TouchElement");a.TouchElement.TouchElementClass=d({el:null,captureSettings:null,touchStartPoint:null,touchEndPoint:null,touchStartTime:null,doubleTapTimeout:null,touchStartHandler:null,touchMoveHandler:null,touchEndHandler:null,mouseDownHandler:null,mouseMoveHandler:null,mouseUpHandler:null,mouseOutHandler:null,gestureStartHandler:null,gestureChangeHandler:null,gestureEndHandler:null,swipeThreshold:null,swipeTimeThreshold:null,doubleTapSpeed:null,dispose:function(){var b; -this.removeEventHandlers();for(b in this)a.objectHasProperty(this,b)&&(this[b]=null)},initialize:function(b,c){this.el=b;this.captureSettings={swipe:!1,move:!1,gesture:!1,doubleTap:!1,preventDefaultTouchEvents:!0,allowVerticalScroll:!1};a.extend(this.captureSettings,c);this.swipeThreshold=50;this.doubleTapSpeed=this.swipeTimeThreshold=250;this.touchStartPoint={x:0,y:0};this.touchEndPoint={x:0,y:0}},addEventHandlers:function(){a.isNothing(this.touchStartHandler)&&(this.touchStartHandler=this.onTouchStart.bind(this), -this.touchMoveHandler=this.onTouchMove.bind(this),this.touchEndHandler=this.onTouchEnd.bind(this),this.mouseDownHandler=this.onMouseDown.bind(this),this.mouseMoveHandler=this.onMouseMove.bind(this),this.mouseUpHandler=this.onMouseUp.bind(this),this.mouseOutHandler=this.onMouseOut.bind(this),this.gestureStartHandler=this.onGestureStart.bind(this),this.gestureChangeHandler=this.onGestureChange.bind(this),this.gestureEndHandler=this.onGestureEnd.bind(this));a.Events.add(this.el,"touchstart",this.touchStartHandler); -this.captureSettings.move&&a.Events.add(this.el,"touchmove",this.touchMoveHandler);a.Events.add(this.el,"touchend",this.touchEndHandler);a.Events.add(this.el,"mousedown",this.mouseDownHandler);a.Browser.isGestureSupported&&this.captureSettings.gesture&&(a.Events.add(this.el,"gesturestart",this.gestureStartHandler),a.Events.add(this.el,"gesturechange",this.gestureChangeHandler),a.Events.add(this.el,"gestureend",this.gestureEndHandler))},removeEventHandlers:function(){a.Events.remove(this.el,"touchstart", -this.touchStartHandler);this.captureSettings.move&&a.Events.remove(this.el,"touchmove",this.touchMoveHandler);a.Events.remove(this.el,"touchend",this.touchEndHandler);a.Events.remove(this.el,"mousedown",this.mouseDownHandler);a.Browser.isGestureSupported&&this.captureSettings.gesture&&(a.Events.remove(this.el,"gesturestart",this.gestureStartHandler),a.Events.remove(this.el,"gesturechange",this.gestureChangeHandler),a.Events.remove(this.el,"gestureend",this.gestureEndHandler))},getTouchPoint:function(a){return{x:a[0].pageX, -y:a[0].pageY}},fireTouchEvent:function(b){var c=0,g=0,f=0,d,c=this.touchEndPoint.x-this.touchStartPoint.x,g=this.touchEndPoint.y-this.touchStartPoint.y,f=Math.sqrt(c*c+g*g);if(this.captureSettings.swipe&&(d=new Date,d-=this.touchStartTime,d<=this.swipeTimeThreshold)){if(e.Math.abs(c)>=this.swipeThreshold){a.Events.fire(this,{type:a.TouchElement.EventTypes.onTouch,target:this,point:this.touchEndPoint,action:0>c?a.TouchElement.ActionTypes.swipeLeft:a.TouchElement.ActionTypes.swipeRight,targetEl:b.target, -currentTargetEl:b.currentTarget});return}if(e.Math.abs(g)>=this.swipeThreshold){a.Events.fire(this,{type:a.TouchElement.EventTypes.onTouch,target:this,point:this.touchEndPoint,action:0>g?a.TouchElement.ActionTypes.swipeUp:a.TouchElement.ActionTypes.swipeDown,targetEl:b.target,currentTargetEl:b.currentTarget});return}}1this.imageEl.naturalHeight;this.imageEl.isLoading=!1;a.Events.fire(this,{type:b.Image.EventTypes.onLoad,target:this})},onImageError:function(){this.imageEl.onload=null;this.imageEl.onerror=null;this.imageEl.onabort=null;this.imageEl.isLoading=!1;this.imageEl.isError=!0;a.Events.fire(this,{type:b.Image.EventTypes.onError, -target:this})}})})(window,window.klass,window.Code.Util); -(function(e,d,a){a.registerNamespace("Code.PhotoSwipe.Cache");e=e.Code.PhotoSwipe;e.Cache.Mode={normal:"normal",aggressive:"aggressive"};e.Cache.Functions={getImageSource:function(a){return a.href},getImageCaption:function(b){if("IMG"===b.nodeName)return a.DOM.getAttribute(b,"alt");var c,g,f;c=0;for(g=b.childNodes.length;cb&&(b=this.initialBodyHeight),a.DOM.windowHeight()>b&&(b= -a.DOM.windowHeight())):(c=a.DOM.width(this.settings.target),b=a.DOM.height(this.settings.target),f="0px");a.DOM.setStyle(this.el,{width:c,height:b,top:f})},fadeIn:function(c,b){this.resetPosition();a.DOM.setStyle(this.el,"opacity",0);a.DOM.show(this.el);a.Animation.fadeIn(this.el,c,b)}})})(window,window.klass,window.Code.Util); -(function(e,d,a){a.registerNamespace("Code.PhotoSwipe.Carousel");e=e.Code.PhotoSwipe;e.Carousel.EventTypes={onSlideByEnd:"PhotoSwipeCarouselOnSlideByEnd",onSlideshowStart:"PhotoSwipeCarouselOnSlideshowStart",onSlideshowStop:"PhotoSwipeCarouselOnSlideshowStop"};e.Carousel.CssClasses={carousel:"ps-carousel",content:"ps-carousel-content",item:"ps-carousel-item",itemLoading:"ps-carousel-item-loading",itemError:"ps-carousel-item-error"};e.Carousel.SlideByAction={previous:"previous",current:"current",next:"next"}})(window, -window.klass,window.Code.Util); -(function(e,d,a){a.registerNamespace("Code.PhotoSwipe.Carousel");var b=e.Code.PhotoSwipe;b.Carousel.CarouselClass=d({el:null,contentEl:null,settings:null,cache:null,slideByEndHandler:null,currentCacheIndex:null,isSliding:null,isSlideshowActive:null,lastSlideByAction:null,touchStartPoint:null,touchStartPosition:null,imageLoadHandler:null,imageErrorHandler:null,slideshowTimeout:null,dispose:function(){var c,g,f;g=0;for(f=this.cache.images.length;gthis.cache.images.length&&(this.settings.loop=!1);this.el=a.DOM.createElement("div",{"class":b.Carousel.CssClasses.carousel},"");a.DOM.setStyle(this.el,{display:"block",position:"absolute",left:0,top:0,overflow:"hidden",zIndex:this.settings.zIndex});a.DOM.hide(this.el);this.contentEl=a.DOM.createElement("div",{"class":b.Carousel.CssClasses.content},"");a.DOM.setStyle(this.contentEl,{display:"block",position:"absolute",left:0,top:0});a.DOM.appendChild(this.contentEl, -this.el);d=3>c.images.length?c.images.length:3;for(f=0;fe&&(b=e/f,f=Math.round(f*b),d=Math.round(d*b)),d>h)b=h/d,d=Math.round(d*b),f=Math.round(f*b)}else b=c.isLandscape?e/c.naturalWidth:h/c.naturalHeight,f=Math.round(c.naturalWidth* -b),d=Math.round(c.naturalHeight*b),"zoom"===this.settings.imageScaleMethod?(b=1,de?b=e/f:d>h&&(b=h/d),1!==b&&(f=Math.round(f*b),d=Math.round(d*b)));b=Math.round((h-d)/2)+"px";e=Math.round((e-f)/2)+"px";a.DOM.setStyle(c,{position:"absolute",width:f,height:d,top:b,left:e,display:"block"})}},setContentLeftPosition:function(){var c,b,d;c=this.settings.target===e?a.DOM.windowWidth():a.DOM.width(this.settings.target); -b=this.getItemEls();d=0;this.settings.loop?d=-1*(c+this.settings.margin):this.currentCacheIndex===this.cache.images.length-1?d=-1*(b.length-1)*(c+this.settings.margin):0this.cache.images.length-1&&(b=0),0>e&&(e=this.cache.images.length-1),b=this.cache.getImages([e,this.currentCacheIndex,b]),a||this.addCacheImageToItemEl(b[1],d[1]),this.addCacheImageToItemEl(b[2],d[2]),this.addCacheImageToItemEl(b[0], -d[0])):1===d.length?a||(b=this.cache.getImages([this.currentCacheIndex]),this.addCacheImageToItemEl(b[0],d[0])):2===d.length?0===this.currentCacheIndex?(b=this.cache.getImages([this.currentCacheIndex,this.currentCacheIndex+1]),a||this.addCacheImageToItemEl(b[0],d[0]),this.addCacheImageToItemEl(b[1],d[1])):(b=this.cache.getImages([this.currentCacheIndex-1,this.currentCacheIndex]),a||this.addCacheImageToItemEl(b[1],d[1]),this.addCacheImageToItemEl(b[0],d[0])):0===this.currentCacheIndex?(b=this.cache.getImages([this.currentCacheIndex, -this.currentCacheIndex+1,this.currentCacheIndex+2]),a||this.addCacheImageToItemEl(b[0],d[0]),this.addCacheImageToItemEl(b[1],d[1]),this.addCacheImageToItemEl(b[2],d[2])):(this.currentCacheIndex===this.cache.images.length-1?(b=this.cache.getImages([this.currentCacheIndex-2,this.currentCacheIndex-1,this.currentCacheIndex]),a||this.addCacheImageToItemEl(b[2],d[2]),this.addCacheImageToItemEl(b[1],d[1])):(b=this.cache.getImages([this.currentCacheIndex-1,this.currentCacheIndex,this.currentCacheIndex+1]), -a||this.addCacheImageToItemEl(b[1],d[1]),this.addCacheImageToItemEl(b[2],d[2])),this.addCacheImageToItemEl(b[0],d[0]))},addCacheImageToItemEl:function(c,d){a.DOM.removeClass(d,b.Carousel.CssClasses.itemError);a.DOM.addClass(d,b.Carousel.CssClasses.itemLoading);a.DOM.removeChildren(d);a.DOM.setStyle(c.imageEl,{display:"none"});a.DOM.appendChild(c.imageEl,d);a.Animation.resetTranslate(c.imageEl);a.Events.add(c,b.Image.EventTypes.onLoad,this.imageLoadHandler);a.Events.add(c,b.Image.EventTypes.onError, -this.imageErrorHandler);c.load()},slideCarousel:function(c,d,f){if(!this.isSliding){var i,j;i=this.settings.target===e?a.DOM.windowWidth()+this.settings.margin:a.DOM.width(this.settings.target)+this.settings.margin;f=a.coalesce(f,this.settings.slideSpeed);if(!(1>e.Math.abs(j))){switch(d){case a.TouchElement.ActionTypes.swipeLeft:c=-1*i;break;case a.TouchElement.ActionTypes.swipeRight:c=i;break;default:j=c.x-this.touchStartPoint.x,c=e.Math.abs(j)>i/2?0c?b.Carousel.SlideByAction.next: -0this.currentCacheIndex?this.currentCacheIndex=this.cache.images.length-1:this.currentCacheIndex=== -this.cache.images.length&&(this.currentCacheIndex=0)):3=c?this.slideByEndHandler():a.Browser.isCSSTransformSupported?(d=a.coalesce(this.contentEl.style.webkitTransform,this.contentEl.style.MozTransform, -this.contentEl.style.OTransform,this.contentEl.style.transform,""),0===d.indexOf("translate3d("+b)?this.slideByEndHandler():0===d.indexOf("translate("+b)?this.slideByEndHandler():a.Animation.slideBy(this.contentEl,b,0,c,this.slideByEndHandler,this.settings.slideTimingFunction)):a.isNothing(e.jQuery)||(d={left:this.getStartingPos().x+b+"px"},"ease-out"===this.settings.animationTimingFunction&&(this.settings.animationTimingFunction="easeOutQuad"),a.isNothing(e.jQuery.easing[this.settings.animationTimingFunction])&& -(this.settings.animationTimingFunction="linear"),e.jQuery(this.contentEl).animate(d,this.settings.slideSpeed,this.settings.animationTimingFunction,this.slideByEndHandler))}})})(window,window.klass,window.Code.Util,window.Code.PhotoSwipe.TouchElement); -(function(e,d,a){a.registerNamespace("Code.PhotoSwipe.Toolbar");var b=e.Code.PhotoSwipe;b.Toolbar.CssClasses={toolbar:"ps-toolbar",toolbarContent:"ps-toolbar-content",toolbarTop:"ps-toolbar-top",caption:"ps-caption",captionBottom:"ps-caption-bottom",captionContent:"ps-caption-content",close:"ps-toolbar-close",play:"ps-toolbar-play",playDisabled:"ps-toolbar-play-disabled",previous:"ps-toolbar-previous",previousDisabled:"ps-toolbar-previous-disabled",next:"ps-toolbar-next",nextDisabled:"ps-toolbar-next-disabled"}; -b.Toolbar.ToolbarAction={close:"close",play:"play",next:"next",previous:"previous",none:"none"};b.Toolbar.EventTypes={onTap:"PhotoSwipeToolbarOnClick",onBeforeShow:"PhotoSwipeToolbarOnBeforeShow",onShow:"PhotoSwipeToolbarOnShow",onBeforeHide:"PhotoSwipeToolbarOnBeforeHide",onHide:"PhotoSwipeToolbarOnHide"};b.Toolbar.getToolbar=function(){return''}})(window,window.klass,window.Code.Util); -(function(e,d,a){a.registerNamespace("Code.PhotoSwipe.Toolbar");var b=e.Code.PhotoSwipe;b.Toolbar.ToolbarClass=d({toolbarEl:null,closeEl:null,playEl:null,previousEl:null,nextEl:null,captionEl:null,captionContentEl:null,currentCaption:null,settings:null,cache:null,timeout:null,isVisible:null,fadeOutHandler:null,touchStartHandler:null,touchMoveHandler:null,clickHandler:null,dispose:function(){var b;this.clearTimeout();this.removeEventHandlers();a.Animation.stop(this.toolbarEl);a.Animation.stop(this.captionEl); -a.DOM.removeChild(this.toolbarEl,this.toolbarEl.parentNode);a.DOM.removeChild(this.captionEl,this.captionEl.parentNode);for(b in this)a.objectHasProperty(this,b)&&(this[b]=null)},initialize:function(c,d){var f;this.settings=d;this.cache=c;this.isVisible=!1;this.fadeOutHandler=this.onFadeOut.bind(this);this.touchStartHandler=this.onTouchStart.bind(this);this.touchMoveHandler=this.onTouchMove.bind(this);this.clickHandler=this.onClick.bind(this);f=b.Toolbar.CssClasses.toolbar;this.settings.captionAndToolbarFlipPosition&& -(f=f+" "+b.Toolbar.CssClasses.toolbarTop);this.toolbarEl=a.DOM.createElement("div",{"class":f},this.settings.getToolbar());a.DOM.setStyle(this.toolbarEl,{left:0,position:"absolute",overflow:"hidden",zIndex:this.settings.zIndex});this.settings.target===e?a.DOM.appendToBody(this.toolbarEl):a.DOM.appendChild(this.toolbarEl,this.settings.target);a.DOM.hide(this.toolbarEl);this.closeEl=a.DOM.find("."+b.Toolbar.CssClasses.close,this.toolbarEl)[0];this.settings.preventHide&&!a.isNothing(this.closeEl)&&a.DOM.hide(this.closeEl); -this.playEl=a.DOM.find("."+b.Toolbar.CssClasses.play,this.toolbarEl)[0];this.settings.preventSlideshow&&!a.isNothing(this.playEl)&&a.DOM.hide(this.playEl);this.nextEl=a.DOM.find("."+b.Toolbar.CssClasses.next,this.toolbarEl)[0];this.previousEl=a.DOM.find("."+b.Toolbar.CssClasses.previous,this.toolbarEl)[0];f=b.Toolbar.CssClasses.caption;this.settings.captionAndToolbarFlipPosition&&(f=f+" "+b.Toolbar.CssClasses.captionBottom);this.captionEl=a.DOM.createElement("div",{"class":f},"");a.DOM.setStyle(this.captionEl, -{left:0,position:"absolute",overflow:"hidden",zIndex:this.settings.zIndex});this.settings.target===e?a.DOM.appendToBody(this.captionEl):a.DOM.appendChild(this.captionEl,this.settings.target);a.DOM.hide(this.captionEl);this.captionContentEl=a.DOM.createElement("div",{"class":b.Toolbar.CssClasses.captionContent},"");a.DOM.appendChild(this.captionContentEl,this.captionEl);this.addEventHandlers()},resetPosition:function(){var b,d,f;this.settings.target===e?(this.settings.captionAndToolbarFlipPosition? -(d=a.DOM.windowScrollTop(),f=a.DOM.windowScrollTop()+a.DOM.windowHeight()-a.DOM.height(this.captionEl)):(d=a.DOM.windowScrollTop()+a.DOM.windowHeight()-a.DOM.height(this.toolbarEl),f=a.DOM.windowScrollTop()),b=a.DOM.windowWidth()):(this.settings.captionAndToolbarFlipPosition?(d="0",f=a.DOM.height(this.settings.target)-a.DOM.height(this.captionEl)):(d=a.DOM.height(this.settings.target)-a.DOM.height(this.toolbarEl),f=0),b=a.DOM.width(this.settings.target));a.DOM.setStyle(this.toolbarEl,{top:d+"px", -width:b});a.DOM.setStyle(this.captionEl,{top:f+"px",width:b})},toggleVisibility:function(a){this.isVisible?this.fadeOut():this.show(a)},show:function(c){a.Animation.stop(this.toolbarEl);a.Animation.stop(this.captionEl);this.resetPosition();this.setToolbarStatus(c);a.Events.fire(this,{type:b.Toolbar.EventTypes.onBeforeShow,target:this});this.showToolbar();this.setCaption(c);this.showCaption();this.isVisible=!0;this.setTimeout();a.Events.fire(this,{type:b.Toolbar.EventTypes.onShow,target:this})},setTimeout:function(){0< -this.settings.captionAndToolbarAutoHideDelay&&(this.clearTimeout(),this.timeout=e.setTimeout(this.fadeOut.bind(this),this.settings.captionAndToolbarAutoHideDelay))},clearTimeout:function(){a.isNothing(this.timeout)||(e.clearTimeout(this.timeout),this.timeout=null)},fadeOut:function(){this.clearTimeout();a.Events.fire(this,{type:b.Toolbar.EventTypes.onBeforeHide,target:this});a.Animation.fadeOut(this.toolbarEl,this.settings.fadeOutSpeed);a.Animation.fadeOut(this.captionEl,this.settings.fadeOutSpeed, -this.fadeOutHandler);this.isVisible=!1},addEventHandlers:function(){a.Browser.isTouchSupported&&(a.Browser.blackberry||a.Events.add(this.toolbarEl,"touchstart",this.touchStartHandler),a.Events.add(this.toolbarEl,"touchmove",this.touchMoveHandler),a.Events.add(this.captionEl,"touchmove",this.touchMoveHandler));a.Events.add(this.toolbarEl,"click",this.clickHandler)},removeEventHandlers:function(){a.Browser.isTouchSupported&&(a.Browser.blackberry||a.Events.remove(this.toolbarEl,"touchstart",this.touchStartHandler), -a.Events.remove(this.toolbarEl,"touchmove",this.touchMoveHandler),a.Events.remove(this.captionEl,"touchmove",this.touchMoveHandler));a.Events.remove(this.toolbarEl,"click",this.clickHandler)},handleTap:function(c){this.clearTimeout();var d;if(c.target===this.nextEl||a.DOM.isChildOf(c.target,this.nextEl))d=b.Toolbar.ToolbarAction.next;else if(c.target===this.previousEl||a.DOM.isChildOf(c.target,this.previousEl))d=b.Toolbar.ToolbarAction.previous;else if(c.target===this.closeEl||a.DOM.isChildOf(c.target, -this.closeEl))d=b.Toolbar.ToolbarAction.close;else if(c.target===this.playEl||a.DOM.isChildOf(c.target,this.playEl))d=b.Toolbar.ToolbarAction.play;this.setTimeout();a.isNothing(d)&&(d=b.Toolbar.ToolbarAction.none);a.Events.fire(this,{type:b.Toolbar.EventTypes.onTap,target:this,action:d,tapTarget:c.target})},setCaption:function(b){a.DOM.removeChildren(this.captionContentEl);this.currentCaption=a.coalesce(this.cache.images[b].caption,"\u00a0");a.isObject(this.currentCaption)?a.DOM.appendChild(this.currentCaption, -this.captionContentEl):(""===this.currentCaption&&(this.currentCaption="\u00a0"),a.DOM.appendText(this.currentCaption,this.captionContentEl));this.currentCaption="\u00a0"===this.currentCaption?"":this.currentCaption;this.resetPosition()},showToolbar:function(){a.DOM.setStyle(this.toolbarEl,{opacity:this.settings.captionAndToolbarOpacity});a.DOM.show(this.toolbarEl)},showCaption:function(){(""===this.currentCaption||1>this.captionContentEl.childNodes.length)&&!this.settings.captionAndToolbarShowEmptyCaptions? -a.DOM.hide(this.captionEl):(a.DOM.setStyle(this.captionEl,{opacity:this.settings.captionAndToolbarOpacity}),a.DOM.show(this.captionEl))},setToolbarStatus:function(c){this.settings.loop||(a.DOM.removeClass(this.previousEl,b.Toolbar.CssClasses.previousDisabled),a.DOM.removeClass(this.nextEl,b.Toolbar.CssClasses.nextDisabled),a.DOM.removeClass(this.playEl,b.Toolbar.CssClasses.playDisabled),0this.settings.maxUserZoom&&(a=this.settings.maxUserZoom);return a},setStartingScaleAndRotation:function(a,b){this.transformSettings.startingScale=this.getScale(a);this.transformSettings.startingRotation=(this.transformSettings.startingRotation+b)%360},zoomRotate:function(a,b){this.transformSettings.scale=this.getScale(a);this.transformSettings.rotation=this.transformSettings.startingRotation+b;this.applyTransform()},panStart:function(a){this.setStartingTranslateFromCurrentTransform(); -this.panStartingPoint={x:a.x,y:a.y}},pan:function(a){var b=(a.y-this.panStartingPoint.y)/this.transformSettings.scale;this.transformSettings.translateX=this.transformSettings.startingTranslateX+(a.x-this.panStartingPoint.x)/this.transformSettings.scale;this.transformSettings.translateY=this.transformSettings.startingTranslateY+b;this.applyTransform()},zoomAndPanToPoint:function(b,d){if(this.settings.target===e){this.panStart({x:a.DOM.windowWidth()/2,y:a.DOM.windowHeight()/2});var f=(d.y-this.panStartingPoint.y)/ -this.transformSettings.scale;this.transformSettings.translateX=-1*(this.transformSettings.startingTranslateX+(d.x-this.panStartingPoint.x)/this.transformSettings.scale);this.transformSettings.translateY=-1*(this.transformSettings.startingTranslateY+f)}this.setStartingScaleAndRotation(b,0);this.transformSettings.scale=this.transformSettings.startingScale;this.transformSettings.rotation=0;this.applyTransform()},applyTransform:function(){var c=this.transformSettings.rotation%360,d=e.parseInt(this.transformSettings.translateX, -10),f=e.parseInt(this.transformSettings.translateY,10),i="scale("+this.transformSettings.scale+") rotate("+c+"deg) translate("+d+"px, "+f+"px)";a.DOM.setStyle(this.transformEl,{webkitTransform:i,MozTransform:i,msTransform:i,OTransform:i,transform:i});a.Events.fire(this,{target:this,type:b.ZoomPanRotate.EventTypes.onTransform,scale:this.transformSettings.scale,rotation:this.transformSettings.rotation,rotationDegs:c,translateX:d,translateY:f})}})})(window,window.klass,window.Code.Util); -(function(e,d){d.registerNamespace("Code.PhotoSwipe");var a=e.Code.PhotoSwipe;a.CssClasses={buildingBody:"ps-building",activeBody:"ps-active"};a.EventTypes={onBeforeShow:"PhotoSwipeOnBeforeShow",onShow:"PhotoSwipeOnShow",onBeforeHide:"PhotoSwipeOnBeforeHide",onHide:"PhotoSwipeOnHide",onDisplayImage:"PhotoSwipeOnDisplayImage",onResetPosition:"PhotoSwipeOnResetPosition",onSlideshowStart:"PhotoSwipeOnSlideshowStart",onSlideshowStop:"PhotoSwipeOnSlideshowStop",onTouch:"PhotoSwipeOnTouch",onBeforeCaptionAndToolbarShow:"PhotoSwipeOnBeforeCaptionAndToolbarShow", -onCaptionAndToolbarShow:"PhotoSwipeOnCaptionAndToolbarShow",onBeforeCaptionAndToolbarHide:"PhotoSwipeOnBeforeCaptionAndToolbarHide",onCaptionAndToolbarHide:"PhotoSwipeOnCaptionAndToolbarHide",onToolbarTap:"PhotoSwipeOnToolbarTap",onBeforeZoomPanRotateShow:"PhotoSwipeOnBeforeZoomPanRotateShow",onZoomPanRotateShow:"PhotoSwipeOnZoomPanRotateShow",onBeforeZoomPanRotateHide:"PhotoSwipeOnBeforeZoomPanRotateHide",onZoomPanRotateHide:"PhotoSwipeOnZoomPanRotateHide",onZoomPanRotateTransform:"PhotoSwipeOnZoomPanRotateTransform"}; -a.instances=[];a.activeInstances=[];a.setActivateInstance=function(b){if(-1this.currentIndex||this.currentIndex>this.originalImages.length-1)throw"Code.PhotoSwipe.PhotoSwipeClass.show: Starting index out of range";this.isAlreadyGettingPage=this.getWindowDimensions();h.setActivateInstance(this);this.windowDimensions=this.getWindowDimensions();this.settings.target===e?a.DOM.addClass(e.document.body,h.CssClasses.buildingBody):a.DOM.addClass(this.settings.target,h.CssClasses.buildingBody);this.createComponents();a.Events.fire(this,{type:h.EventTypes.onBeforeShow, -target:this});this.documentOverlay.fadeIn(this.settings.fadeInSpeed,this.onDocumentOverlayFadeIn.bind(this))},getWindowDimensions:function(){return{width:a.DOM.windowWidth(),height:a.DOM.windowHeight()}},createComponents:function(){this.documentOverlay=new c.DocumentOverlayClass(this.settings);this.carousel=new g.CarouselClass(this.cache,this.settings);this.uiLayer=new i.UILayerClass(this.settings);this.settings.captionAndToolbarHide||(this.toolbar=new f.ToolbarClass(this.cache,this.settings))},resetPosition:function(){if(!this._isResettingPosition){var b= -this.getWindowDimensions();this._isResettingPosition=!0;this.windowDimensions=b;this.destroyZoomPanRotate();this.documentOverlay.resetPosition();this.carousel.resetPosition();a.isNothing(this.toolbar)||this.toolbar.resetPosition();this.uiLayer.resetPosition();this._isResettingPosition=!1;a.Events.fire(this,{type:h.EventTypes.onResetPosition,target:this})}},addEventHandler:function(b,c){a.Events.add(this,b,c)},addEventHandlers:function(){a.isNothing(this.windowOrientationChangeHandler)&&(this.windowOrientationChangeHandler= -this.onWindowOrientationChange.bind(this),this.windowScrollHandler=this.onWindowScroll.bind(this),this.keyDownHandler=this.onKeyDown.bind(this),this.windowHashChangeHandler=this.onWindowHashChange.bind(this),this.uiLayerTouchHandler=this.onUILayerTouch.bind(this),this.carouselSlideByEndHandler=this.onCarouselSlideByEnd.bind(this),this.carouselSlideshowStartHandler=this.onCarouselSlideshowStart.bind(this),this.carouselSlideshowStopHandler=this.onCarouselSlideshowStop.bind(this),this.toolbarTapHandler= -this.onToolbarTap.bind(this),this.toolbarBeforeShowHandler=this.onToolbarBeforeShow.bind(this),this.toolbarShowHandler=this.onToolbarShow.bind(this),this.toolbarBeforeHideHandler=this.onToolbarBeforeHide.bind(this),this.toolbarHideHandler=this.onToolbarHide.bind(this),this.mouseWheelHandler=this.onMouseWheel.bind(this),this.zoomPanRotateTransformHandler=this.onZoomPanRotateTransform.bind(this));a.Browser.android?this.orientationEventName="resize":a.Browser.iOS&&!a.Browser.safari?a.Events.add(e.document.body, -"orientationchange",this.windowOrientationChangeHandler):this.orientationEventName=!a.isNothing(e.onorientationchange)?"orientationchange":"resize";a.isNothing(this.orientationEventName)||a.Events.add(e,this.orientationEventName,this.windowOrientationChangeHandler);this.settings.target===e&&a.Events.add(e,"scroll",this.windowScrollHandler);this.settings.enableKeyboard&&a.Events.add(e.document,"keydown",this.keyDownHandler);this.isBackEventSupported&&this.settings.backButtonHideEnabled&&(this.windowHashChangeHandler= -this.onWindowHashChange.bind(this),this.settings.jQueryMobile?e.location.hash=this.settings.jQueryMobileDialogHash:(this.currentHistoryHashValue="PhotoSwipe"+(new Date).getTime().toString(),e.location.hash=this.currentHistoryHashValue),a.Events.add(e,"hashchange",this.windowHashChangeHandler));this.settings.enableMouseWheel&&a.Events.add(e,"mousewheel",this.mouseWheelHandler);a.Events.add(this.uiLayer,a.TouchElement.EventTypes.onTouch,this.uiLayerTouchHandler);a.Events.add(this.carousel,g.EventTypes.onSlideByEnd, -this.carouselSlideByEndHandler);a.Events.add(this.carousel,g.EventTypes.onSlideshowStart,this.carouselSlideshowStartHandler);a.Events.add(this.carousel,g.EventTypes.onSlideshowStop,this.carouselSlideshowStopHandler);a.isNothing(this.toolbar)||(a.Events.add(this.toolbar,f.EventTypes.onTap,this.toolbarTapHandler),a.Events.add(this.toolbar,f.EventTypes.onBeforeShow,this.toolbarBeforeShowHandler),a.Events.add(this.toolbar,f.EventTypes.onShow,this.toolbarShowHandler),a.Events.add(this.toolbar,f.EventTypes.onBeforeHide, -this.toolbarBeforeHideHandler),a.Events.add(this.toolbar,f.EventTypes.onHide,this.toolbarHideHandler))},removeEventHandlers:function(){a.Browser.iOS&&!a.Browser.safari&&a.Events.remove(e.document.body,"orientationchange",this.windowOrientationChangeHandler);a.isNothing(this.orientationEventName)||a.Events.remove(e,this.orientationEventName,this.windowOrientationChangeHandler);a.Events.remove(e,"scroll",this.windowScrollHandler);this.settings.enableKeyboard&&a.Events.remove(e.document,"keydown",this.keyDownHandler); -this.isBackEventSupported&&(this.settings.backButtonHideEnabled&&null!==this.windowHashChangeHandler)&&a.Events.remove(e,"hashchange",this.windowHashChangeHandler);this.settings.enableMouseWheel&&a.Events.remove(e,"mousewheel",this.mouseWheelHandler);a.isNothing(this.uiLayer)||a.Events.remove(this.uiLayer,a.TouchElement.EventTypes.onTouch,this.uiLayerTouchHandler);a.isNothing(this.toolbar)||(a.Events.remove(this.carousel,g.EventTypes.onSlideByEnd,this.carouselSlideByEndHandler),a.Events.remove(this.carousel, -g.EventTypes.onSlideshowStart,this.carouselSlideshowStartHandler),a.Events.remove(this.carousel,g.EventTypes.onSlideshowStop,this.carouselSlideshowStopHandler));a.isNothing(this.toolbar)||(a.Events.remove(this.toolbar,f.EventTypes.onTap,this.toolbarTapHandler),a.Events.remove(this.toolbar,f.EventTypes.onBeforeShow,this.toolbarBeforeShowHandler),a.Events.remove(this.toolbar,f.EventTypes.onShow,this.toolbarShowHandler),a.Events.remove(this.toolbar,f.EventTypes.onBeforeHide,this.toolbarBeforeHideHandler), -a.Events.remove(this.toolbar,f.EventTypes.onHide,this.toolbarHideHandler))},hide:function(){if(!this.settings.preventHide){if(a.isNothing(this.documentOverlay))throw"Code.PhotoSwipe.PhotoSwipeClass.hide: PhotoSwipe instance is already hidden";a.isNothing(this.hiding)&&(this.clearUIWebViewResetPositionTimeout(),this.destroyZoomPanRotate(),this.removeEventHandlers(),a.Events.fire(this,{type:h.EventTypes.onBeforeHide,target:this}),this.uiLayer.dispose(),this.uiLayer=null,a.isNothing(this.toolbar)||(this.toolbar.dispose(), -this.toolbar=null),this.carousel.dispose(),this.carousel=null,a.DOM.removeClass(e.document.body,h.CssClasses.activeBody),a.DOM.removeClass(e.document.getElementsByTagName("html")[0],h.CssClasses.activeBody),this.documentOverlay.dispose(),this.documentOverlay=null,this._isResettingPosition=!1,h.unsetActivateInstance(this),a.Events.fire(this,{type:h.EventTypes.onHide,target:this}),this.goBackInHistory())}},goBackInHistory:function(){this.isBackEventSupported&&this.settings.backButtonHideEnabled&&(this.backButtonClicked|| -e.history.back())},play:function(){!this.isZoomActive()&&(!this.settings.preventSlideshow&&!a.isNothing(this.carousel))&&(!a.isNothing(this.toolbar)&&this.toolbar.isVisible&&this.toolbar.fadeOut(),this.carousel.startSlideshow())},stop:function(){this.isZoomActive()||a.isNothing(this.carousel)||this.carousel.stopSlideshow()},previous:function(){this.isZoomActive()||a.isNothing(this.carousel)||this.carousel.previous()},next:function(){this.isZoomActive()||a.isNothing(this.carousel)||this.carousel.next()}, -toggleToolbar:function(){this.isZoomActive()||a.isNothing(this.toolbar)||this.toolbar.toggleVisibility(this.currentIndex)},fadeOutToolbarIfVisible:function(){!a.isNothing(this.toolbar)&&(this.toolbar.isVisible&&0g&&(b.point.x=g);b.point.yc&&(b.point.y=c);this.createZoomPanRotate(); -this.isZoomActive()&&this.zoomPanRotate.zoomAndPanToPoint(this.settings.doubleTapZoomLevel,b.point);break;case a.TouchElement.ActionTypes.gestureStart:this.createZoomPanRotate()}a.Events.fire(this,{type:h.EventTypes.onTouch,target:this,point:b.point,action:b.action})},onCarouselSlideByEnd:function(b){this.currentIndex=b.cacheIndex;a.isNothing(this.toolbar)||(this.toolbar.setCaption(this.currentIndex),this.toolbar.setToolbarStatus(this.currentIndex));a.Events.fire(this,{type:h.EventTypes.onDisplayImage, -target:this,action:b.action,index:b.cacheIndex})},onToolbarTap:function(b){switch(b.action){case f.ToolbarAction.next:this.next();break;case f.ToolbarAction.previous:this.previous();break;case f.ToolbarAction.close:this.hide();break;case f.ToolbarAction.play:this.play()}a.Events.fire(this,{type:h.EventTypes.onToolbarTap,target:this,toolbarAction:b.action,tapTarget:b.tapTarget})},onMouseWheel:function(b){var c=a.Events.getWheelDelta(b);b.timeStamp-(this.mouseWheelStartTime||0)c?this.next():0c.DOM.windowHeight()}};c.Browser._detect()})(window,window.Code.Util); -(function(e,c){c.extend(c,{Events:{add:function(a,b,d){this._checkHandlersProperty(a);"mousewheel"===b&&(b=this._normaliseMouseWheelType());"undefined"===typeof a.__eventHandlers[b]&&(a.__eventHandlers[b]=[]);a.__eventHandlers[b].push(d);this._isBrowserObject(a)&&a.addEventListener(b,d,!1)},remove:function(a,b,d){this._checkHandlersProperty(a);"mousewheel"===b&&(b=this._normaliseMouseWheelType());if(a.__eventHandlers[b]instanceof Array){var f,g,e=a.__eventHandlers[b];if(c.isNothing(d)){if(this._isBrowserObject(a)){f= -0;for(g=e.length;fj.length){a.dispatchEvent(d);return}}this._checkHandlersProperty(a);d="string"===typeof b?{type:b}:b;d.target||(d.target=a);if(!d.type)throw Error("Event object missing 'type' property.");if(a.__eventHandlers[d.type]instanceof Array){g=a.__eventHandlers[d.type];j.unshift(d);d=0;for(f=g.length;d=g&&(g=1);if(0>=b&&(c.DOM.setStyle(a,"opacity",g),!c.isNothing(d))){d(a); -return}1<=c.DOM.getStyle(a,"opacity")&&c.DOM.setStyle(a,"opacity",0);c.Browser.isCSSTransformSupported?this._applyTransition(a,"opacity",g,b,d,f):c.isNothing(e.jQuery)||e.jQuery(a).fadeTo(b,g,d)},fadeTo:function(a,b,d,f,c){this.fadeIn(a,d,f,c,b)},fadeOut:function(a,b,d,f){if(0>=b&&(c.DOM.setStyle(a,"opacity",0),!c.isNothing(d))){d(a);return}c.Browser.isCSSTransformSupported?this._applyTransition(a,"opacity",0,b,d,f):e.jQuery(a).fadeTo(b,0,d)},slideBy:function(a,b,d,f,g,h){var j={},b=c.coalesce(b, -0),d=c.coalesce(d,0),h=c.coalesce(h,"ease-out");j[this._transitionPrefix+"Property"]="all";j[this._transitionPrefix+"Delay"]="0";0===f?(j[this._transitionPrefix+"Duration"]="",j[this._transitionPrefix+"TimingFunction"]=""):(j[this._transitionPrefix+"Duration"]=f+"ms",j[this._transitionPrefix+"TimingFunction"]=c.coalesce(h,"ease-out"),c.Events.add(a,this._transitionEndLabel,this._getTransitionEndHandler()));j[this._transformLabel]=c.Browser.is3dSupported?"translate3d("+b+"px, "+d+"px, 0px)":"translate("+ -b+"px, "+d+"px)";c.isNothing(g)||(a.cclallcallback=g);c.DOM.setStyle(a,j);0===f&&e.setTimeout(function(){this._leaveTransforms(a)}.bind(this),this._applyTransitionDelay)},resetTranslate:function(a){var b={};b[this._transformLabel]=b[this._transformLabel]=c.Browser.is3dSupported?"translate3d(0px, 0px, 0px)":"translate(0px, 0px)";c.DOM.setStyle(a,b)},_applyTransition:function(a,b,d,f,g,h){var j={},h=c.coalesce(h,"ease-in");j[this._transitionPrefix+"Property"]=b;j[this._transitionPrefix+"Duration"]= -f+"ms";j[this._transitionPrefix+"TimingFunction"]=h;j[this._transitionPrefix+"Delay"]="0";c.Events.add(a,this._transitionEndLabel,this._getTransitionEndHandler());c.DOM.setStyle(a,j);c.isNothing(g)||(a["ccl"+b+"callback"]=g);e.setTimeout(function(){c.DOM.setStyle(a,b,d)},this._applyTransitionDelay)},_onTransitionEnd:function(a){c.Events.remove(a.currentTarget,this._transitionEndLabel,this._getTransitionEndHandler());this._leaveTransforms(a.currentTarget)},_leaveTransforms:function(a){var b=a.style[this._transitionPrefix+ -"Property"],d=""!==b?"ccl"+b+"callback":"cclallcallback",f,b=c.coalesce(a.style.webkitTransform,a.style.MozTransform,a.style.OTransform,a.style.transform),g,h=e.parseInt(c.DOM.getStyle(a,"left"),0),j=e.parseInt(c.DOM.getStyle(a,"top"),0),i,l,k={};""!==b&&(b=c.Browser.is3dSupported?b.match(/translate3d\((.*?)\)/):b.match(/translate\((.*?)\)/),c.isNothing(b)||(g=b[1].split(", "),i=e.parseInt(g[0],0),l=e.parseInt(g[1],0)));k[this._transitionPrefix+"Property"]="";k[this._transitionPrefix+"Duration"]= -"";k[this._transitionPrefix+"TimingFunction"]="";k[this._transitionPrefix+"Delay"]="";c.DOM.setStyle(a,k);e.setTimeout(function(){if(!c.isNothing(g)){k={};k[this._transformLabel]="";k.left=h+i+"px";k.top=j+l+"px";c.DOM.setStyle(a,k)}if(!c.isNothing(a[d])){f=a[d];delete a[d];f(a)}}.bind(this),this._applyTransitionDelay)}}})})(window,window.Code.Util); -(function(e,c,a){a.registerNamespace("Code.Util.TouchElement");a.TouchElement.EventTypes={onTouch:"CodeUtilTouchElementOnTouch"};a.TouchElement.ActionTypes={touchStart:"touchStart",touchMove:"touchMove",touchEnd:"touchEnd",touchMoveEnd:"touchMoveEnd",tap:"tap",doubleTap:"doubleTap",swipeLeft:"swipeLeft",swipeRight:"swipeRight",swipeUp:"swipeUp",swipeDown:"swipeDown",gestureStart:"gestureStart",gestureChange:"gestureChange",gestureEnd:"gestureEnd"}})(window,window.klass,window.Code.Util); -(function(e,c,a){a.registerNamespace("Code.Util.TouchElement");a.TouchElement.TouchElementClass=c({el:null,captureSettings:null,touchStartPoint:null,touchEndPoint:null,touchStartTime:null,doubleTapTimeout:null,touchStartHandler:null,touchMoveHandler:null,touchEndHandler:null,mouseDownHandler:null,mouseMoveHandler:null,mouseUpHandler:null,mouseOutHandler:null,gestureStartHandler:null,gestureChangeHandler:null,gestureEndHandler:null,swipeThreshold:null,swipeTimeThreshold:null,doubleTapSpeed:null,dispose:function(){var b; -this.removeEventHandlers();for(b in this)a.objectHasProperty(this,b)&&(this[b]=null)},initialize:function(b,d){this.el=b;this.captureSettings={swipe:!1,move:!1,gesture:!1,doubleTap:!1,preventDefaultTouchEvents:!0,allowVerticalScroll:!1};a.extend(this.captureSettings,d);this.swipeThreshold=50;this.doubleTapSpeed=this.swipeTimeThreshold=250;this.touchStartPoint={x:0,y:0};this.touchEndPoint={x:0,y:0}},addEventHandlers:function(){a.isNothing(this.touchStartHandler)&&(this.touchStartHandler=this.onTouchStart.bind(this), -this.touchMoveHandler=this.onTouchMove.bind(this),this.touchEndHandler=this.onTouchEnd.bind(this),this.mouseDownHandler=this.onMouseDown.bind(this),this.mouseMoveHandler=this.onMouseMove.bind(this),this.mouseUpHandler=this.onMouseUp.bind(this),this.mouseOutHandler=this.onMouseOut.bind(this),this.gestureStartHandler=this.onGestureStart.bind(this),this.gestureChangeHandler=this.onGestureChange.bind(this),this.gestureEndHandler=this.onGestureEnd.bind(this));a.Events.add(this.el,"touchstart",this.touchStartHandler); -this.captureSettings.move&&a.Events.add(this.el,"touchmove",this.touchMoveHandler);a.Events.add(this.el,"touchend",this.touchEndHandler);a.Events.add(this.el,"mousedown",this.mouseDownHandler);a.Browser.isGestureSupported&&this.captureSettings.gesture&&(a.Events.add(this.el,"gesturestart",this.gestureStartHandler),a.Events.add(this.el,"gesturechange",this.gestureChangeHandler),a.Events.add(this.el,"gestureend",this.gestureEndHandler))},removeEventHandlers:function(){a.Events.remove(this.el,"touchstart", -this.touchStartHandler);this.captureSettings.move&&a.Events.remove(this.el,"touchmove",this.touchMoveHandler);a.Events.remove(this.el,"touchend",this.touchEndHandler);a.Events.remove(this.el,"mousedown",this.mouseDownHandler);a.Browser.isGestureSupported&&this.captureSettings.gesture&&(a.Events.remove(this.el,"gesturestart",this.gestureStartHandler),a.Events.remove(this.el,"gesturechange",this.gestureChangeHandler),a.Events.remove(this.el,"gestureend",this.gestureEndHandler))},getTouchPoint:function(a){return{x:a[0].pageX, -y:a[0].pageY}},fireTouchEvent:function(b){var d=0,f=0,c=0,h,d=this.touchEndPoint.x-this.touchStartPoint.x,f=this.touchEndPoint.y-this.touchStartPoint.y,c=Math.sqrt(d*d+f*f);if(this.captureSettings.swipe&&(h=new Date,h-=this.touchStartTime,h<=this.swipeTimeThreshold)){if(e.Math.abs(d)>=this.swipeThreshold){a.Events.fire(this,{type:a.TouchElement.EventTypes.onTouch,target:this,point:this.touchEndPoint,action:0>d?a.TouchElement.ActionTypes.swipeLeft:a.TouchElement.ActionTypes.swipeRight,targetEl:b.target, -currentTargetEl:b.currentTarget});return}if(e.Math.abs(f)>=this.swipeThreshold){a.Events.fire(this,{type:a.TouchElement.EventTypes.onTouch,target:this,point:this.touchEndPoint,action:0>f?a.TouchElement.ActionTypes.swipeUp:a.TouchElement.ActionTypes.swipeDown,targetEl:b.target,currentTargetEl:b.currentTarget});return}}1this.imageEl.naturalHeight;this.imageEl.isLoading=!1;a.Events.fire(this,{type:b.Image.EventTypes.onLoad,target:this})},onImageError:function(){this.imageEl.onload=null;this.imageEl.onerror=null;this.imageEl.onabort=null;this.imageEl.isLoading=!1;this.imageEl.isError=!0;a.Events.fire(this,{type:b.Image.EventTypes.onError, -target:this})}})})(window,window.klass,window.Code.Util); -(function(e,c,a){a.registerNamespace("Code.PhotoSwipe.Cache");e=e.Code.PhotoSwipe;e.Cache.Mode={normal:"normal",aggressive:"aggressive"};e.Cache.Functions={getImageSource:function(a){return a.href},getImageCaption:function(b){if("IMG"===b.nodeName)return a.DOM.getAttribute(b,"alt");var d,f,c;d=0;for(f=b.childNodes.length;df&&(f=this.initialBodyHeight),a.DOM.windowHeight()>f&&(f= -a.DOM.windowHeight())):(b=a.DOM.width(this.settings.target),f=a.DOM.height(this.settings.target),c="0px");a.DOM.setStyle(this.el,{width:b,height:f,top:c})},fadeIn:function(b,f){this.resetPosition();a.DOM.setStyle(this.el,"opacity",0);a.DOM.show(this.el);a.Animation.fadeIn(this.el,b,f)}})})(window,window.klass,window.Code.Util); -(function(e,c,a){a.registerNamespace("Code.PhotoSwipe.Carousel");e=e.Code.PhotoSwipe;e.Carousel.EventTypes={onSlideByEnd:"PhotoSwipeCarouselOnSlideByEnd",onSlideshowStart:"PhotoSwipeCarouselOnSlideshowStart",onSlideshowStop:"PhotoSwipeCarouselOnSlideshowStop"};e.Carousel.CssClasses={carousel:"ps-carousel",content:"ps-carousel-content",item:"ps-carousel-item",itemLoading:"ps-carousel-item-loading",itemError:"ps-carousel-item-error"};e.Carousel.SlideByAction={previous:"previous",current:"current",next:"next"}})(window, -window.klass,window.Code.Util); -(function(e,c,a){a.registerNamespace("Code.PhotoSwipe.Carousel");var b=e.Code.PhotoSwipe;b.Carousel.CarouselClass=c({el:null,contentEl:null,settings:null,cache:null,slideByEndHandler:null,currentCacheIndex:null,isSliding:null,isSlideshowActive:null,lastSlideByAction:null,touchStartPoint:null,touchStartPosition:null,imageLoadHandler:null,imageErrorHandler:null,slideshowTimeout:null,dispose:function(){var d,f,c;f=0;for(c=this.cache.images.length;fthis.cache.images.length&&(this.settings.loop=!1);this.el=a.DOM.createElement("div",{"class":b.Carousel.CssClasses.carousel},"");a.DOM.setStyle(this.el,{display:"block",position:"absolute",left:0,top:0,overflow:"hidden",zIndex:this.settings.zIndex});a.DOM.hide(this.el);this.contentEl=a.DOM.createElement("div",{"class":b.Carousel.CssClasses.content},"");a.DOM.setStyle(this.contentEl,{display:"block",position:"absolute",left:0,top:0});a.DOM.appendChild(this.contentEl, -this.el);h=3>d.images.length?d.images.length:3;for(c=0;cj&&(c=j/e,e=Math.round(e*c),h=Math.round(h*c)),h>i)c=i/h,h=Math.round(h*c),e=Math.round(e*c)}else c=b.isLandscape?j/b.naturalWidth:i/b.naturalHeight,e=Math.round(b.naturalWidth* -c),h=Math.round(b.naturalHeight*c),"zoom"===this.settings.imageScaleMethod?(c=1,hj?c=j/e:h>i&&(c=i/h),1!==c&&(e=Math.round(e*c),h=Math.round(h*c)));c=Math.round((i-h)/2)+"px";j=Math.round((j-e)/2)+"px";a.DOM.setStyle(b,{position:"absolute",width:e,height:h,top:c,left:j,display:"block"})}},setContentLeftPosition:function(){var b,c,g;b=this.settings.target===e?a.DOM.windowWidth():a.DOM.width(this.settings.target); -c=this.getItemEls();g=0;this.settings.loop?g=-1*(b+this.settings.margin):this.currentCacheIndex===this.cache.images.length-1?g=-1*(c.length-1)*(b+this.settings.margin):0this.cache.images.length-1&&(b=0),0>e&&(e=this.cache.images.length-1),b=this.cache.getImages([e,this.currentCacheIndex,b]),a||this.addCacheImageToItemEl(b[1],c[1]),this.addCacheImageToItemEl(b[2],c[2]),this.addCacheImageToItemEl(b[0], -c[0])):1===c.length?a||(b=this.cache.getImages([this.currentCacheIndex]),this.addCacheImageToItemEl(b[0],c[0])):2===c.length?0===this.currentCacheIndex?(b=this.cache.getImages([this.currentCacheIndex,this.currentCacheIndex+1]),a||this.addCacheImageToItemEl(b[0],c[0]),this.addCacheImageToItemEl(b[1],c[1])):(b=this.cache.getImages([this.currentCacheIndex-1,this.currentCacheIndex]),a||this.addCacheImageToItemEl(b[1],c[1]),this.addCacheImageToItemEl(b[0],c[0])):0===this.currentCacheIndex?(b=this.cache.getImages([this.currentCacheIndex, -this.currentCacheIndex+1,this.currentCacheIndex+2]),a||this.addCacheImageToItemEl(b[0],c[0]),this.addCacheImageToItemEl(b[1],c[1]),this.addCacheImageToItemEl(b[2],c[2])):(this.currentCacheIndex===this.cache.images.length-1?(b=this.cache.getImages([this.currentCacheIndex-2,this.currentCacheIndex-1,this.currentCacheIndex]),a||this.addCacheImageToItemEl(b[2],c[2]),this.addCacheImageToItemEl(b[1],c[1])):(b=this.cache.getImages([this.currentCacheIndex-1,this.currentCacheIndex,this.currentCacheIndex+1]), -a||this.addCacheImageToItemEl(b[1],c[1]),this.addCacheImageToItemEl(b[2],c[2])),this.addCacheImageToItemEl(b[0],c[0]))},addCacheImageToItemEl:function(d,c){a.DOM.removeClass(c,b.Carousel.CssClasses.itemError);a.DOM.addClass(c,b.Carousel.CssClasses.itemLoading);a.DOM.removeChildren(c);a.DOM.setStyle(d.imageEl,{display:"none"});a.DOM.appendChild(d.imageEl,c);a.Animation.resetTranslate(d.imageEl);a.Events.add(d,b.Image.EventTypes.onLoad,this.imageLoadHandler);a.Events.add(d,b.Image.EventTypes.onError, -this.imageErrorHandler);d.load()},slideCarousel:function(d,c,g){if(!this.isSliding){var h,j;h=this.settings.target===e?a.DOM.windowWidth()+this.settings.margin:a.DOM.width(this.settings.target)+this.settings.margin;g=a.coalesce(g,this.settings.slideSpeed);if(!(1>e.Math.abs(j))){switch(c){case a.TouchElement.ActionTypes.swipeLeft:d=-1*h;break;case a.TouchElement.ActionTypes.swipeRight:d=h;break;default:j=d.x-this.touchStartPoint.x,d=e.Math.abs(j)>h/2?0d?b.Carousel.SlideByAction.next: -0this.currentCacheIndex?this.currentCacheIndex=this.cache.images.length-1:this.currentCacheIndex=== -this.cache.images.length&&(this.currentCacheIndex=0)):3=d?this.slideByEndHandler():a.Browser.isCSSTransformSupported?(c=a.coalesce(this.contentEl.style.webkitTransform,this.contentEl.style.MozTransform, -this.contentEl.style.OTransform,this.contentEl.style.transform,""),0===c.indexOf("translate3d("+b)?this.slideByEndHandler():0===c.indexOf("translate("+b)?this.slideByEndHandler():a.Animation.slideBy(this.contentEl,b,0,d,this.slideByEndHandler,this.settings.slideTimingFunction)):a.isNothing(e.jQuery)||(c={left:this.getStartingPos().x+b+"px"},"ease-out"===this.settings.animationTimingFunction&&(this.settings.animationTimingFunction="easeOutQuad"),a.isNothing(e.jQuery.easing[this.settings.animationTimingFunction])&& -(this.settings.animationTimingFunction="linear"),e.jQuery(this.contentEl).animate(c,this.settings.slideSpeed,this.settings.animationTimingFunction,this.slideByEndHandler))}})})(window,window.klass,window.Code.Util,window.Code.PhotoSwipe.TouchElement); -(function(e,c,a){a.registerNamespace("Code.PhotoSwipe.Toolbar");var b=e.Code.PhotoSwipe;b.Toolbar.CssClasses={toolbar:"ps-toolbar",toolbarContent:"ps-toolbar-content",toolbarTop:"ps-toolbar-top",caption:"ps-caption",captionBottom:"ps-caption-bottom",captionContent:"ps-caption-content",close:"ps-toolbar-close",play:"ps-toolbar-play",playDisabled:"ps-toolbar-play-disabled",previous:"ps-toolbar-previous",previousDisabled:"ps-toolbar-previous-disabled",next:"ps-toolbar-next",nextDisabled:"ps-toolbar-next-disabled"}; -b.Toolbar.ToolbarAction={close:"close",play:"play",next:"next",previous:"previous",none:"none"};b.Toolbar.EventTypes={onTap:"PhotoSwipeToolbarOnClick",onBeforeShow:"PhotoSwipeToolbarOnBeforeShow",onShow:"PhotoSwipeToolbarOnShow",onBeforeHide:"PhotoSwipeToolbarOnBeforeHide",onHide:"PhotoSwipeToolbarOnHide"};b.Toolbar.getToolbar=function(){return''}})(window,window.klass,window.Code.Util); -(function(e,c,a){a.registerNamespace("Code.PhotoSwipe.Toolbar");var b=e.Code.PhotoSwipe;b.Toolbar.ToolbarClass=c({toolbarEl:null,closeEl:null,playEl:null,previousEl:null,nextEl:null,captionEl:null,captionContentEl:null,currentCaption:null,settings:null,cache:null,timeout:null,isVisible:null,fadeOutHandler:null,touchStartHandler:null,touchMoveHandler:null,clickHandler:null,dispose:function(){var b;this.clearTimeout();this.removeEventHandlers();a.Animation.stop(this.toolbarEl);a.Animation.stop(this.captionEl); -a.DOM.removeChild(this.toolbarEl,this.toolbarEl.parentNode);a.DOM.removeChild(this.captionEl,this.captionEl.parentNode);for(b in this)a.objectHasProperty(this,b)&&(this[b]=null)},initialize:function(d,c){var g;this.settings=c;this.cache=d;this.isVisible=!1;this.fadeOutHandler=this.onFadeOut.bind(this);this.touchStartHandler=this.onTouchStart.bind(this);this.touchMoveHandler=this.onTouchMove.bind(this);this.clickHandler=this.onClick.bind(this);g=b.Toolbar.CssClasses.toolbar;this.settings.captionAndToolbarFlipPosition&& -(g=g+" "+b.Toolbar.CssClasses.toolbarTop);this.toolbarEl=a.DOM.createElement("div",{"class":g},this.settings.getToolbar());a.DOM.setStyle(this.toolbarEl,{left:0,position:"absolute",overflow:"hidden",zIndex:this.settings.zIndex});this.settings.target===e?a.DOM.appendToBody(this.toolbarEl):a.DOM.appendChild(this.toolbarEl,this.settings.target);a.DOM.hide(this.toolbarEl);this.closeEl=a.DOM.find("."+b.Toolbar.CssClasses.close,this.toolbarEl)[0];this.settings.preventHide&&!a.isNothing(this.closeEl)&&a.DOM.hide(this.closeEl); -this.playEl=a.DOM.find("."+b.Toolbar.CssClasses.play,this.toolbarEl)[0];this.settings.preventSlideshow&&!a.isNothing(this.playEl)&&a.DOM.hide(this.playEl);this.nextEl=a.DOM.find("."+b.Toolbar.CssClasses.next,this.toolbarEl)[0];this.previousEl=a.DOM.find("."+b.Toolbar.CssClasses.previous,this.toolbarEl)[0];g=b.Toolbar.CssClasses.caption;this.settings.captionAndToolbarFlipPosition&&(g=g+" "+b.Toolbar.CssClasses.captionBottom);this.captionEl=a.DOM.createElement("div",{"class":g},"");a.DOM.setStyle(this.captionEl, -{left:0,position:"absolute",overflow:"hidden",zIndex:this.settings.zIndex});this.settings.target===e?a.DOM.appendToBody(this.captionEl):a.DOM.appendChild(this.captionEl,this.settings.target);a.DOM.hide(this.captionEl);this.captionContentEl=a.DOM.createElement("div",{"class":b.Toolbar.CssClasses.captionContent},"");a.DOM.appendChild(this.captionContentEl,this.captionEl);this.addEventHandlers()},resetPosition:function(){var b,c,g;this.settings.target===e?(this.settings.captionAndToolbarFlipPosition? -(c=a.DOM.windowScrollTop(),g=a.DOM.windowScrollTop()+a.DOM.windowHeight()-a.DOM.height(this.captionEl)):(c=a.DOM.windowScrollTop()+a.DOM.windowHeight()-a.DOM.height(this.toolbarEl),g=a.DOM.windowScrollTop()),b=a.DOM.windowWidth()):(this.settings.captionAndToolbarFlipPosition?(c="0",g=a.DOM.height(this.settings.target)-a.DOM.height(this.captionEl)):(c=a.DOM.height(this.settings.target)-a.DOM.height(this.toolbarEl),g=0),b=a.DOM.width(this.settings.target));a.DOM.setStyle(this.toolbarEl,{top:c+"px", -width:b});a.DOM.setStyle(this.captionEl,{top:g+"px",width:b})},toggleVisibility:function(a){this.isVisible?this.fadeOut():this.show(a)},show:function(d){a.Animation.stop(this.toolbarEl);a.Animation.stop(this.captionEl);this.resetPosition();this.setToolbarStatus(d);a.Events.fire(this,{type:b.Toolbar.EventTypes.onBeforeShow,target:this});this.showToolbar();this.setCaption(d);this.showCaption();this.isVisible=!0;this.setTimeout();a.Events.fire(this,{type:b.Toolbar.EventTypes.onShow,target:this})},setTimeout:function(){0< -this.settings.captionAndToolbarAutoHideDelay&&(this.clearTimeout(),this.timeout=e.setTimeout(this.fadeOut.bind(this),this.settings.captionAndToolbarAutoHideDelay))},clearTimeout:function(){a.isNothing(this.timeout)||(e.clearTimeout(this.timeout),this.timeout=null)},fadeOut:function(){this.clearTimeout();a.Events.fire(this,{type:b.Toolbar.EventTypes.onBeforeHide,target:this});a.Animation.fadeOut(this.toolbarEl,this.settings.fadeOutSpeed);a.Animation.fadeOut(this.captionEl,this.settings.fadeOutSpeed, -this.fadeOutHandler);this.isVisible=!1},addEventHandlers:function(){a.Browser.isTouchSupported&&(a.Browser.blackberry||a.Events.add(this.toolbarEl,"touchstart",this.touchStartHandler),a.Events.add(this.toolbarEl,"touchmove",this.touchMoveHandler),a.Events.add(this.captionEl,"touchmove",this.touchMoveHandler));a.Events.add(this.toolbarEl,"click",this.clickHandler)},removeEventHandlers:function(){a.Browser.isTouchSupported&&(a.Browser.blackberry||a.Events.remove(this.toolbarEl,"touchstart",this.touchStartHandler), -a.Events.remove(this.toolbarEl,"touchmove",this.touchMoveHandler),a.Events.remove(this.captionEl,"touchmove",this.touchMoveHandler));a.Events.remove(this.toolbarEl,"click",this.clickHandler)},handleTap:function(d){this.clearTimeout();var c;if(d.target===this.nextEl||a.DOM.isChildOf(d.target,this.nextEl))c=b.Toolbar.ToolbarAction.next;else if(d.target===this.previousEl||a.DOM.isChildOf(d.target,this.previousEl))c=b.Toolbar.ToolbarAction.previous;else if(d.target===this.closeEl||a.DOM.isChildOf(d.target, -this.closeEl))c=b.Toolbar.ToolbarAction.close;else if(d.target===this.playEl||a.DOM.isChildOf(d.target,this.playEl))c=b.Toolbar.ToolbarAction.play;this.setTimeout();a.isNothing(c)&&(c=b.Toolbar.ToolbarAction.none);a.Events.fire(this,{type:b.Toolbar.EventTypes.onTap,target:this,action:c,tapTarget:d.target})},setCaption:function(b){a.DOM.removeChildren(this.captionContentEl);this.currentCaption=a.coalesce(this.cache.images[b].caption,"\u00a0");a.isObject(this.currentCaption)?a.DOM.appendChild(this.currentCaption, -this.captionContentEl):(""===this.currentCaption&&(this.currentCaption="\u00a0"),a.DOM.appendText(this.currentCaption,this.captionContentEl));this.currentCaption="\u00a0"===this.currentCaption?"":this.currentCaption;this.resetPosition()},showToolbar:function(){a.DOM.setStyle(this.toolbarEl,{opacity:this.settings.captionAndToolbarOpacity});a.DOM.show(this.toolbarEl)},showCaption:function(){(""===this.currentCaption||1>this.captionContentEl.childNodes.length)&&!this.settings.captionAndToolbarShowEmptyCaptions? -a.DOM.hide(this.captionEl):(a.DOM.setStyle(this.captionEl,{opacity:this.settings.captionAndToolbarOpacity}),a.DOM.show(this.captionEl))},setToolbarStatus:function(d){this.settings.loop||(a.DOM.removeClass(this.previousEl,b.Toolbar.CssClasses.previousDisabled),a.DOM.removeClass(this.nextEl,b.Toolbar.CssClasses.nextDisabled),a.DOM.removeClass(this.playEl,b.Toolbar.CssClasses.playDisabled),0this.settings.maxUserZoom&&(a=this.settings.maxUserZoom);return a},setStartingScaleAndRotation:function(a,b){this.transformSettings.startingScale=this.getScale(a);this.transformSettings.startingRotation=(this.transformSettings.startingRotation+b)%360},zoomRotate:function(a,b){this.transformSettings.scale=this.getScale(a);this.transformSettings.rotation=this.transformSettings.startingRotation+b;this.applyTransform()},panStart:function(a){this.setStartingTranslateFromCurrentTransform(); -this.panStartingPoint={x:a.x,y:a.y}},pan:function(a){var b=(a.y-this.panStartingPoint.y)/this.transformSettings.scale;this.transformSettings.translateX=this.transformSettings.startingTranslateX+(a.x-this.panStartingPoint.x)/this.transformSettings.scale;this.transformSettings.translateY=this.transformSettings.startingTranslateY+b;this.applyTransform()},zoomAndPanToPoint:function(b,c){if(this.settings.target===e){this.panStart({x:a.DOM.windowWidth()/2,y:a.DOM.windowHeight()/2});var g=(c.y-this.panStartingPoint.y)/ -this.transformSettings.scale;this.transformSettings.translateX=-1*(this.transformSettings.startingTranslateX+(c.x-this.panStartingPoint.x)/this.transformSettings.scale);this.transformSettings.translateY=-1*(this.transformSettings.startingTranslateY+g)}this.setStartingScaleAndRotation(b,0);this.transformSettings.scale=this.transformSettings.startingScale;this.transformSettings.rotation=0;this.applyTransform()},applyTransform:function(){var c=this.transformSettings.rotation%360,f=e.parseInt(this.transformSettings.translateX, -10),g=e.parseInt(this.transformSettings.translateY,10),h="scale("+this.transformSettings.scale+") rotate("+c+"deg) translate("+f+"px, "+g+"px)";a.DOM.setStyle(this.transformEl,{webkitTransform:h,MozTransform:h,msTransform:h,OTransform:h,transform:h});a.Events.fire(this,{target:this,type:b.ZoomPanRotate.EventTypes.onTransform,scale:this.transformSettings.scale,rotation:this.transformSettings.rotation,rotationDegs:c,translateX:f,translateY:g})}})})(window,window.klass,window.Code.Util); -(function(e,c){c.registerNamespace("Code.PhotoSwipe");var a=e.Code.PhotoSwipe;a.CssClasses={buildingBody:"ps-building",activeBody:"ps-active"};a.EventTypes={onBeforeShow:"PhotoSwipeOnBeforeShow",onShow:"PhotoSwipeOnShow",onBeforeHide:"PhotoSwipeOnBeforeHide",onHide:"PhotoSwipeOnHide",onDisplayImage:"PhotoSwipeOnDisplayImage",onResetPosition:"PhotoSwipeOnResetPosition",onSlideshowStart:"PhotoSwipeOnSlideshowStart",onSlideshowStop:"PhotoSwipeOnSlideshowStop",onTouch:"PhotoSwipeOnTouch",onBeforeCaptionAndToolbarShow:"PhotoSwipeOnBeforeCaptionAndToolbarShow", -onCaptionAndToolbarShow:"PhotoSwipeOnCaptionAndToolbarShow",onBeforeCaptionAndToolbarHide:"PhotoSwipeOnBeforeCaptionAndToolbarHide",onCaptionAndToolbarHide:"PhotoSwipeOnCaptionAndToolbarHide",onToolbarTap:"PhotoSwipeOnToolbarTap",onBeforeZoomPanRotateShow:"PhotoSwipeOnBeforeZoomPanRotateShow",onZoomPanRotateShow:"PhotoSwipeOnZoomPanRotateShow",onBeforeZoomPanRotateHide:"PhotoSwipeOnBeforeZoomPanRotateHide",onZoomPanRotateHide:"PhotoSwipeOnZoomPanRotateHide",onZoomPanRotateTransform:"PhotoSwipeOnZoomPanRotateTransform"}; -a.instances=[];a.activeInstances=[];a.setActivateInstance=function(b){if(-1this.currentIndex||this.currentIndex>this.originalImages.length-1)throw"Code.PhotoSwipe.PhotoSwipeClass.show: Starting index out of range";this.isAlreadyGettingPage=this.getWindowDimensions();i.setActivateInstance(this);this.windowDimensions=this.getWindowDimensions();this.settings.target===e?a.DOM.addClass(e.document.body,i.CssClasses.buildingBody):a.DOM.addClass(this.settings.target,i.CssClasses.buildingBody);this.createComponents();a.Events.fire(this,{type:i.EventTypes.onBeforeShow, -target:this});this.documentOverlay.fadeIn(this.settings.fadeInSpeed,this.onDocumentOverlayFadeIn.bind(this))},getWindowDimensions:function(){return{width:a.DOM.windowWidth(),height:a.DOM.windowHeight()}},createComponents:function(){this.documentOverlay=new d.DocumentOverlayClass(this.settings);this.carousel=new f.CarouselClass(this.cache,this.settings);this.uiLayer=new h.UILayerClass(this.settings);this.settings.captionAndToolbarHide||(this.toolbar=new g.ToolbarClass(this.cache,this.settings))},resetPosition:function(){if(!this._isResettingPosition){var b= -this.getWindowDimensions();this._isResettingPosition=!0;this.windowDimensions=b;this.destroyZoomPanRotate();this.documentOverlay.resetPosition();this.carousel.resetPosition();a.isNothing(this.toolbar)||this.toolbar.resetPosition();this.uiLayer.resetPosition();this._isResettingPosition=!1;a.Events.fire(this,{type:i.EventTypes.onResetPosition,target:this})}},addEventHandler:function(b,c){a.Events.add(this,b,c)},addEventHandlers:function(){a.isNothing(this.windowOrientationChangeHandler)&&(this.windowOrientationChangeHandler= -this.onWindowOrientationChange.bind(this),this.windowScrollHandler=this.onWindowScroll.bind(this),this.keyDownHandler=this.onKeyDown.bind(this),this.windowHashChangeHandler=this.onWindowHashChange.bind(this),this.uiLayerTouchHandler=this.onUILayerTouch.bind(this),this.carouselSlideByEndHandler=this.onCarouselSlideByEnd.bind(this),this.carouselSlideshowStartHandler=this.onCarouselSlideshowStart.bind(this),this.carouselSlideshowStopHandler=this.onCarouselSlideshowStop.bind(this),this.toolbarTapHandler= -this.onToolbarTap.bind(this),this.toolbarBeforeShowHandler=this.onToolbarBeforeShow.bind(this),this.toolbarShowHandler=this.onToolbarShow.bind(this),this.toolbarBeforeHideHandler=this.onToolbarBeforeHide.bind(this),this.toolbarHideHandler=this.onToolbarHide.bind(this),this.mouseWheelHandler=this.onMouseWheel.bind(this),this.zoomPanRotateTransformHandler=this.onZoomPanRotateTransform.bind(this));a.Browser.android?this.orientationEventName="resize":a.Browser.iOS&&!a.Browser.safari?a.Events.add(e.document.body, -"orientationchange",this.windowOrientationChangeHandler):this.orientationEventName=!a.isNothing(e.onorientationchange)?"orientationchange":"resize";a.isNothing(this.orientationEventName)||a.Events.add(e,this.orientationEventName,this.windowOrientationChangeHandler);this.settings.target===e&&a.Events.add(e,"scroll",this.windowScrollHandler);this.settings.enableKeyboard&&a.Events.add(e.document,"keydown",this.keyDownHandler);this.isBackEventSupported&&this.settings.backButtonHideEnabled&&(this.windowHashChangeHandler= -this.onWindowHashChange.bind(this),this.settings.jQueryMobile?e.location.hash=this.settings.jQueryMobileDialogHash:(this.currentHistoryHashValue="PhotoSwipe"+(new Date).getTime().toString(),e.location.hash=this.currentHistoryHashValue),a.Events.add(e,"hashchange",this.windowHashChangeHandler));this.settings.enableMouseWheel&&a.Events.add(e,"mousewheel",this.mouseWheelHandler);a.Events.add(this.uiLayer,a.TouchElement.EventTypes.onTouch,this.uiLayerTouchHandler);a.Events.add(this.carousel,f.EventTypes.onSlideByEnd, -this.carouselSlideByEndHandler);a.Events.add(this.carousel,f.EventTypes.onSlideshowStart,this.carouselSlideshowStartHandler);a.Events.add(this.carousel,f.EventTypes.onSlideshowStop,this.carouselSlideshowStopHandler);a.isNothing(this.toolbar)||(a.Events.add(this.toolbar,g.EventTypes.onTap,this.toolbarTapHandler),a.Events.add(this.toolbar,g.EventTypes.onBeforeShow,this.toolbarBeforeShowHandler),a.Events.add(this.toolbar,g.EventTypes.onShow,this.toolbarShowHandler),a.Events.add(this.toolbar,g.EventTypes.onBeforeHide, -this.toolbarBeforeHideHandler),a.Events.add(this.toolbar,g.EventTypes.onHide,this.toolbarHideHandler))},removeEventHandlers:function(){a.Browser.iOS&&!a.Browser.safari&&a.Events.remove(e.document.body,"orientationchange",this.windowOrientationChangeHandler);a.isNothing(this.orientationEventName)||a.Events.remove(e,this.orientationEventName,this.windowOrientationChangeHandler);a.Events.remove(e,"scroll",this.windowScrollHandler);this.settings.enableKeyboard&&a.Events.remove(e.document,"keydown",this.keyDownHandler); -this.isBackEventSupported&&(this.settings.backButtonHideEnabled&&null!==this.windowHashChangeHandler)&&a.Events.remove(e,"hashchange",this.windowHashChangeHandler);this.settings.enableMouseWheel&&a.Events.remove(e,"mousewheel",this.mouseWheelHandler);a.isNothing(this.uiLayer)||a.Events.remove(this.uiLayer,a.TouchElement.EventTypes.onTouch,this.uiLayerTouchHandler);a.isNothing(this.toolbar)||(a.Events.remove(this.carousel,f.EventTypes.onSlideByEnd,this.carouselSlideByEndHandler),a.Events.remove(this.carousel, -f.EventTypes.onSlideshowStart,this.carouselSlideshowStartHandler),a.Events.remove(this.carousel,f.EventTypes.onSlideshowStop,this.carouselSlideshowStopHandler));a.isNothing(this.toolbar)||(a.Events.remove(this.toolbar,g.EventTypes.onTap,this.toolbarTapHandler),a.Events.remove(this.toolbar,g.EventTypes.onBeforeShow,this.toolbarBeforeShowHandler),a.Events.remove(this.toolbar,g.EventTypes.onShow,this.toolbarShowHandler),a.Events.remove(this.toolbar,g.EventTypes.onBeforeHide,this.toolbarBeforeHideHandler), -a.Events.remove(this.toolbar,g.EventTypes.onHide,this.toolbarHideHandler))},hide:function(){if(!this.settings.preventHide){if(a.isNothing(this.documentOverlay))throw"Code.PhotoSwipe.PhotoSwipeClass.hide: PhotoSwipe instance is already hidden";a.isNothing(this.hiding)&&(this.clearUIWebViewResetPositionTimeout(),this.destroyZoomPanRotate(),this.removeEventHandlers(),a.Events.fire(this,{type:i.EventTypes.onBeforeHide,target:this}),this.uiLayer.dispose(),this.uiLayer=null,a.isNothing(this.toolbar)||(this.toolbar.dispose(), -this.toolbar=null),this.carousel.dispose(),this.carousel=null,a.DOM.removeClass(e.document.body,i.CssClasses.activeBody),a.DOM.removeClass(e.document.getElementsByTagName("html")[0],i.CssClasses.activeBody),this.documentOverlay.dispose(),this.documentOverlay=null,this._isResettingPosition=!1,i.unsetActivateInstance(this),a.Events.fire(this,{type:i.EventTypes.onHide,target:this}),this.goBackInHistory())}},goBackInHistory:function(){this.isBackEventSupported&&this.settings.backButtonHideEnabled&&(this.backButtonClicked|| -e.history.back())},play:function(){!this.isZoomActive()&&(!this.settings.preventSlideshow&&!a.isNothing(this.carousel))&&(!a.isNothing(this.toolbar)&&this.toolbar.isVisible&&this.toolbar.fadeOut(),this.carousel.startSlideshow())},stop:function(){this.isZoomActive()||a.isNothing(this.carousel)||this.carousel.stopSlideshow()},previous:function(){this.isZoomActive()||a.isNothing(this.carousel)||this.carousel.previous()},next:function(){this.isZoomActive()||a.isNothing(this.carousel)||this.carousel.next()}, -toggleToolbar:function(){this.isZoomActive()||a.isNothing(this.toolbar)||this.toolbar.toggleVisibility(this.currentIndex)},fadeOutToolbarIfVisible:function(){!a.isNothing(this.toolbar)&&(this.toolbar.isVisible&&0g&&(b.point.x=g);b.point.yc&&(b.point.y=c);this.createZoomPanRotate(); -this.isZoomActive()&&this.zoomPanRotate.zoomAndPanToPoint(this.settings.doubleTapZoomLevel,b.point);break;case a.TouchElement.ActionTypes.gestureStart:this.createZoomPanRotate()}a.Events.fire(this,{type:i.EventTypes.onTouch,target:this,point:b.point,action:b.action})},onCarouselSlideByEnd:function(b){this.currentIndex=b.cacheIndex;a.isNothing(this.toolbar)||(this.toolbar.setCaption(this.currentIndex),this.toolbar.setToolbarStatus(this.currentIndex));a.Events.fire(this,{type:i.EventTypes.onDisplayImage, -target:this,action:b.action,index:b.cacheIndex})},onToolbarTap:function(b){switch(b.action){case g.ToolbarAction.next:this.next();break;case g.ToolbarAction.previous:this.previous();break;case g.ToolbarAction.close:this.hide();break;case g.ToolbarAction.play:this.play()}a.Events.fire(this,{type:i.EventTypes.onToolbarTap,target:this,toolbarAction:b.action,tapTarget:b.tapTarget})},onMouseWheel:function(b){var c=a.Events.getWheelDelta(b);b.timeStamp-(this.mouseWheelStartTime||0)c?this.next():0").appendTo(b),e=d.css("display");d.remove();if(e==="none"||e===""){ch||(ch=c.createElement("iframe"),ch.frameBorder=ch.width=ch.height=0),b.appendChild(ch);if(!ci||!ch.createElement)ci=(ch.contentWindow||ch.contentDocument).document,ci.write((c.compatMode==="CSS1Compat"?"":"")+""),ci.close();d=ci.createElement(a),ci.body.appendChild(d),e=f.css(d,"display"),b.removeChild(ch)}cg[a]=e}return cg[a]}function cq(a,b){var c={};f.each(cm.concat.apply([],cm.slice(0,b)),function(){c[this]=a});return c}function cp(){cn=b}function co(){setTimeout(cp,0);return cn=f.now()}function cf(){try{return new a.ActiveXObject("Microsoft.XMLHTTP")}catch(b){}}function ce(){try{return new a.XMLHttpRequest}catch(b){}}function b$(a,c){a.dataFilter&&(c=a.dataFilter(c,a.dataType));var d=a.dataTypes,e={},g,h,i=d.length,j,k=d[0],l,m,n,o,p;for(g=1;g0){c!=="border"&&f.each(e,function(){c||(d-=parseFloat(f.css(a,"padding"+this))||0),c==="margin"?d+=parseFloat(f.css(a,c+this))||0:d-=parseFloat(f.css(a,"border"+this+"Width"))||0});return d+"px"}d=bv(a,b,b);if(d<0||d==null)d=a.style[b]||0;d=parseFloat(d)||0,c&&f.each(e,function(){d+=parseFloat(f.css(a,"padding"+this))||0,c!=="padding"&&(d+=parseFloat(f.css(a,"border"+this+"Width"))||0),c==="margin"&&(d+=parseFloat(f.css(a,c+this))||0)});return d+"px"}function bl(a,b){b.src?f.ajax({url:b.src,async:!1,dataType:"script"}):f.globalEval((b.text||b.textContent||b.innerHTML||"").replace(bd,"/*$0*/")),b.parentNode&&b.parentNode.removeChild(b)}function bk(a){f.nodeName(a,"input")?bj(a):"getElementsByTagName"in a&&f.grep(a.getElementsByTagName("input"),bj)}function bj(a){if(a.type==="checkbox"||a.type==="radio")a.defaultChecked=a.checked}function bi(a){return"getElementsByTagName"in a?a.getElementsByTagName("*"):"querySelectorAll"in a?a.querySelectorAll("*"):[]}function bh(a,b){var c;if(b.nodeType===1){b.clearAttributes&&b.clearAttributes(),b.mergeAttributes&&b.mergeAttributes(a),c=b.nodeName.toLowerCase();if(c==="object")b.outerHTML=a.outerHTML;else if(c!=="input"||a.type!=="checkbox"&&a.type!=="radio"){if(c==="option")b.selected=a.defaultSelected;else if(c==="input"||c==="textarea")b.defaultValue=a.defaultValue}else a.checked&&(b.defaultChecked=b.checked=a.checked),b.value!==a.value&&(b.value=a.value);b.removeAttribute(f.expando)}}function bg(a,b){if(b.nodeType===1&&!!f.hasData(a)){var c=f.expando,d=f.data(a),e=f.data(b,d);if(d=d[c]){var g=d.events;e=e[c]=f.extend({},d);if(g){delete e.handle,e.events={};for(var h in g)for(var i=0,j=g[h].length;i=0===c})}function U(a){return!a||!a.parentNode||a.parentNode.nodeType===11}function M(a,b){return(a&&a!=="*"?a+".":"")+b.replace(y,"`").replace(z,"&")}function L(a){var b,c,d,e,g,h,i,j,k,l,m,n,o,p=[],q=[],r=f._data(this,"events");if(!(a.liveFired===this||!r||!r.live||a.target.disabled||a.button&&a.type==="click")){a.namespace&&(n=new RegExp("(^|\\.)"+a.namespace.split(".").join("\\.(?:.*\\.)?")+"(\\.|$)")),a.liveFired=this;var s=r.live.slice(0);for(i=0;ic)break;a.currentTarget=e.elem,a.data=e.handleObj.data,a.handleObj=e.handleObj,o=e.handleObj.origHandler.apply(e.elem,arguments);if(o===!1||a.isPropagationStopped()){c=e.level,o===!1&&(b=!1);if(a.isImmediatePropagationStopped())break}}return b}}function J(a,c,d){var e=f.extend({},d[0]);e.type=a,e.originalEvent={},e.liveFired=b,f.event.handle.call(c,e),e.isDefaultPrevented()&&d[0].preventDefault()}function D(){return!0}function C(){return!1}function m(a,c,d){var e=c+"defer",g=c+"queue",h=c+"mark",i=f.data(a,e,b,!0);i&&(d==="queue"||!f.data(a,g,b,!0))&&(d==="mark"||!f.data(a,h,b,!0))&&setTimeout(function(){!f.data(a,g,b,!0)&&!f.data(a,h,b,!0)&&(f.removeData(a,e,!0),i.resolve())},0)}function l(a){for(var b in a)if(b!=="toJSON")return!1;return!0}function k(a,c,d){if(d===b&&a.nodeType===1){var e="data-"+c.replace(j,"-$1").toLowerCase();d=a.getAttribute(e);if(typeof d=="string"){try{d=d==="true"?!0:d==="false"?!1:d==="null"?null:f.isNaN(d)?i.test(d)?f.parseJSON(d):d:parseFloat(d)}catch(g){}f.data(a,c,d)}else d=b}return d}var c=a.document,d=a.navigator,e=a.location,f=function(){function K(){if(!e.isReady){try{c.documentElement.doScroll("left")}catch(a){setTimeout(K,1);return}e.ready()}}var e=function(a,b){return new e.fn.init(a,b,h)},f=a.jQuery,g=a.$,h,i=/^(?:[^#<]*(<[\w\W]+>)[^>]*$|#([\w\-]*)$)/,j=/\S/,k=/^\s+/,l=/\s+$/,m=/\d/,n=/^<(\w+)\s*\/?>(?:<\/\1>)?$/,o=/^[\],:{}\s]*$/,p=/\\(?:["\\\/bfnrt]|u[0-9a-fA-F]{4})/g,q=/"[^"\\\n\r]*"|true|false|null|-?\d+(?:\.\d*)?(?:[eE][+\-]?\d+)?/g,r=/(?:^|:|,)(?:\s*\[)+/g,s=/(webkit)[ \/]([\w.]+)/,t=/(opera)(?:.*version)?[ \/]([\w.]+)/,u=/(msie) ([\w.]+)/,v=/(mozilla)(?:.*? rv:([\w.]+))?/,w=/-([a-z]|[0-9])/ig,x=/^-ms-/,y=function(a,b){return(b+"").toUpperCase()},z=d.userAgent,A,B,C,D=Object.prototype.toString,E=Object.prototype.hasOwnProperty,F=Array.prototype.push,G=Array.prototype.slice,H=String.prototype.trim,I=Array.prototype.indexOf,J={};e.fn=e.prototype={constructor:e,init:function(a,d,f){var g,h,j,k;if(!a)return this;if(a.nodeType){this.context=this[0]=a,this.length=1;return this}if(a==="body"&&!d&&c.body){this.context=c,this[0]=c.body,this.selector=a,this.length=1;return this}if(typeof a=="string"){a.charAt(0)!=="<"||a.charAt(a.length-1)!==">"||a.length<3?g=i.exec(a):g=[null,a,null];if(g&&(g[1]||!d)){if(g[1]){d=d instanceof e?d[0]:d,k=d?d.ownerDocument||d:c,j=n.exec(a),j?e.isPlainObject(d)?(a=[c.createElement(j[1])],e.fn.attr.call(a,d,!0)):a=[k.createElement(j[1])]:(j=e.buildFragment([g[1]],[k]),a=(j.cacheable?e.clone(j.fragment):j.fragment).childNodes);return e.merge(this,a)}h=c.getElementById(g[2]);if(h&&h.parentNode){if(h.id!==g[2])return f.find(a);this.length=1,this[0]=h}this.context=c,this.selector=a;return this}return!d||d.jquery?(d||f).find(a):this.constructor(d).find(a)}if(e.isFunction(a))return f.ready(a);a.selector!==b&&(this.selector=a.selector,this.context=a.context);return e.makeArray(a,this)},selector:"",jquery:"1.6.4",length:0,size:function(){return this.length},toArray:function(){return G.call(this,0)},get:function(a){return a==null?this.toArray():a<0?this[this.length+a]:this[a]},pushStack:function(a,b,c){var d=this.constructor();e.isArray(a)?F.apply(d,a):e.merge(d,a),d.prevObject=this,d.context=this.context,b==="find"?d.selector=this.selector+(this.selector?" ":"")+c:b&&(d.selector=this.selector+"."+b+"("+c+")");return d},each:function(a,b){return e.each(this,a,b)},ready:function(a){e.bindReady(),B.done(a);return this},eq:function(a){return a===-1?this.slice(a):this.slice(a,+a+1)},first:function(){return this.eq(0)},last:function(){return this.eq(-1)},slice:function(){return this.pushStack(G.apply(this,arguments),"slice",G.call(arguments).join(","))},map:function(a){return this.pushStack(e.map(this,function(b,c){return a.call(b,c,b)}))},end:function(){return this.prevObject||this.constructor(null)},push:F,sort:[].sort,splice:[].splice},e.fn.init.prototype=e.fn,e.extend=e.fn.extend=function(){var a,c,d,f,g,h,i=arguments[0]||{},j=1,k=arguments.length,l=!1;typeof i=="boolean"&&(l=i,i=arguments[1]||{},j=2),typeof i!="object"&&!e.isFunction(i)&&(i={}),k===j&&(i=this,--j);for(;j0)return;B.resolveWith(c,[e]),e.fn.trigger&&e(c).trigger("ready").unbind("ready")}},bindReady:function(){if(!B){B=e._Deferred();if(c.readyState==="complete")return setTimeout(e.ready,1);if(c.addEventListener)c.addEventListener("DOMContentLoaded",C,!1),a.addEventListener("load",e.ready,!1);else if(c.attachEvent){c.attachEvent("onreadystatechange",C),a.attachEvent("onload",e.ready);var b=!1;try{b=a.frameElement==null}catch(d){}c.documentElement.doScroll&&b&&K()}}},isFunction:function(a){return e.type(a)==="function"},isArray:Array.isArray||function(a){return e.type(a)==="array"},isWindow:function(a){return a&&typeof a=="object"&&"setInterval"in a},isNaN:function(a){return a==null||!m.test(a)||isNaN(a)},type:function(a){return a==null?String(a):J[D.call(a)]||"object"},isPlainObject:function(a){if(!a||e.type(a)!=="object"||a.nodeType||e.isWindow(a))return!1;try{if(a.constructor&&!E.call(a,"constructor")&&!E.call(a.constructor.prototype,"isPrototypeOf"))return!1}catch(c){return!1}var d;for(d in a);return d===b||E.call(a,d)},isEmptyObject:function(a){for(var b in a)return!1;return!0},error:function(a){throw a},parseJSON:function(b){if(typeof b!="string"||!b)return null;b=e.trim(b);if(a.JSON&&a.JSON.parse)return a.JSON.parse(b);if(o.test(b.replace(p,"@").replace(q,"]").replace(r,"")))return(new Function("return "+b))();e.error("Invalid JSON: "+b)},parseXML:function(c){var d,f;try{a.DOMParser?(f=new DOMParser,d=f.parseFromString(c,"text/xml")):(d=new ActiveXObject("Microsoft.XMLDOM"),d.async="false",d.loadXML(c))}catch(g){d=b}(!d||!d.documentElement||d.getElementsByTagName("parsererror").length)&&e.error("Invalid XML: "+c);return d},noop:function(){},globalEval:function(b){b&&j.test(b)&&(a.execScript||function(b){a.eval.call(a,b)})(b)},camelCase:function(a){return a.replace(x,"ms-").replace(w,y)},nodeName:function(a,b){return a.nodeName&&a.nodeName.toUpperCase()===b.toUpperCase()},each:function(a,c,d){var f,g=0,h=a.length,i=h===b||e.isFunction(a);if(d){if(i){for(f in a)if(c.apply(a[f],d)===!1)break}else for(;g0&&a[0]&&a[j-1]||j===0||e.isArray(a));if(k)for(;i1?h.call(arguments,0):c,--e||g.resolveWith(g,h.call(b,0))}}var b=arguments,c=0,d=b.length,e=d,g=d<=1&&a&&f.isFunction(a.promise)?a:f.Deferred();if(d>1){for(;ca",d=a.getElementsByTagName("*"),e=a.getElementsByTagName("a")[0];if(!d||!d.length||!e)return{};g=c.createElement("select"),h=g.appendChild(c.createElement("option")),i=a.getElementsByTagName("input")[0],k={leadingWhitespace:a.firstChild.nodeType===3,tbody:!a.getElementsByTagName("tbody").length,htmlSerialize:!!a.getElementsByTagName("link").length,style:/top/.test(e.getAttribute("style")),hrefNormalized:e.getAttribute("href")==="/a",opacity:/^0.55$/.test(e.style.opacity),cssFloat:!!e.style.cssFloat,checkOn:i.value==="on",optSelected:h.selected,getSetAttribute:a.className!=="t",submitBubbles:!0,changeBubbles:!0,focusinBubbles:!1,deleteExpando:!0,noCloneEvent:!0,inlineBlockNeedsLayout:!1,shrinkWrapBlocks:!1,reliableMarginRight:!0},i.checked=!0,k.noCloneChecked=i.cloneNode(!0).checked,g.disabled=!0,k.optDisabled=!h.disabled;try{delete a.test}catch(v){k.deleteExpando=!1}!a.addEventListener&&a.attachEvent&&a.fireEvent&&(a.attachEvent("onclick",function(){k.noCloneEvent=!1}),a.cloneNode(!0).fireEvent("onclick")),i=c.createElement("input"),i.value="t",i.setAttribute("type","radio"),k.radioValue=i.value==="t",i.setAttribute("checked","checked"),a.appendChild(i),l=c.createDocumentFragment(),l.appendChild(a.firstChild),k.checkClone=l.cloneNode(!0).cloneNode(!0).lastChild.checked,a.innerHTML="",a.style.width=a.style.paddingLeft="1px",m=c.getElementsByTagName("body")[0],o=c.createElement(m?"div":"body"),p={visibility:"hidden",width:0,height:0,border:0,margin:0,background:"none"},m&&f.extend(p,{position:"absolute",left:"-1000px",top:"-1000px"});for(t in p)o.style[t]=p[t];o.appendChild(a),n=m||b,n.insertBefore(o,n.firstChild),k.appendChecked=i.checked,k.boxModel=a.offsetWidth===2,"zoom"in a.style&&(a.style.display="inline",a.style.zoom=1,k.inlineBlockNeedsLayout=a.offsetWidth===2,a.style.display="",a.innerHTML="",k.shrinkWrapBlocks=a.offsetWidth!==2),a.innerHTML="t",q=a.getElementsByTagName("td"),u=q[0].offsetHeight===0,q[0].style.display="",q[1].style.display="none",k.reliableHiddenOffsets=u&&q[0].offsetHeight===0,a.innerHTML="",c.defaultView&&c.defaultView.getComputedStyle&&(j=c.createElement("div"),j.style.width="0",j.style.marginRight="0",a.appendChild(j),k.reliableMarginRight=(parseInt((c.defaultView.getComputedStyle(j,null)||{marginRight:0}).marginRight,10)||0)===0),o.innerHTML="",n.removeChild(o);if(a.attachEvent)for(t in{submit:1,change:1,focusin:1})s="on"+t,u=s in a,u||(a.setAttribute(s,"return;"),u=typeof a[s]=="function"),k[t+"Bubbles"]=u;o=l=g=h=m=j=a=i=null;return k}(),f.boxModel=f.support.boxModel;var i=/^(?:\{.*\}|\[.*\])$/,j=/([A-Z])/g;f.extend({cache:{},uuid:0,expando:"jQuery"+(f.fn.jquery+Math.random()).replace(/\D/g,""),noData:{embed:!0,object:"clsid:D27CDB6E-AE6D-11cf-96B8-444553540000",applet:!0},hasData:function(a){a=a.nodeType?f.cache[a[f.expando]]:a[f.expando];return!!a&&!l(a)},data:function(a,c,d,e){if(!!f.acceptData(a)){var g,h,i=f.expando,j=typeof c=="string",k=a.nodeType,l=k?f.cache:a,m=k?a[f.expando]:a[f.expando]&&f.expando;if((!m||e&&m&&l[m]&&!l[m][i])&&j&&d===b)return;m||(k?a[f.expando]=m=++f.uuid:m=f.expando),l[m]||(l[m]={},k||(l[m].toJSON=f.noop));if(typeof c=="object"||typeof c=="function")e?l[m][i]=f.extend(l[m][i],c):l[m]=f.extend(l[m],c);g=l[m],e&&(g[i]||(g[i]={}),g=g[i]),d!==b&&(g[f.camelCase(c)]=d);if(c==="events"&&!g[c])return g[i]&&g[i].events;j?(h=g[c],h==null&&(h=g[f.camelCase(c)])):h=g;return h}},removeData:function(a,b,c){if(!!f.acceptData(a)){var d,e=f.expando,g=a.nodeType,h=g?f.cache:a,i=g?a[f.expando]:f.expando;if(!h[i])return;if(b){d=c?h[i][e]:h[i];if(d){d[b]||(b=f.camelCase(b)),delete d[b];if(!l(d))return}}if(c){delete h[i][e];if(!l(h[i]))return}var j=h[i][e];f.support.deleteExpando||!h.setInterval?delete h[i]:h[i]=null,j?(h[i]={},g||(h[i].toJSON=f.noop),h[i][e]=j):g&&(f.support.deleteExpando?delete a[f.expando]:a.removeAttribute?a.removeAttribute(f.expando):a[f.expando]=null)}},_data:function(a,b,c){return f.data(a,b,c,!0)},acceptData:function(a){if(a.nodeName){var b=f.noData[a.nodeName.toLowerCase()];if(b)return b!==!0&&a.getAttribute("classid")===b}return!0}}),f.fn.extend({data:function(a,c){var d=null;if(typeof a=="undefined"){if(this.length){d=f.data(this[0]);if(this[0].nodeType===1){var e=this[0].attributes,g;for(var h=0,i=e.length;h-1)return!0;return!1},val:function(a){var c,d,e=this[0];if(!arguments.length){if(e){c=f.valHooks[e.nodeName.toLowerCase()]||f.valHooks[e.type];if(c&&"get"in c&&(d=c.get(e,"value"))!==b)return d;d=e.value;return typeof d=="string"?d.replace(p,""):d==null?"":d}return b}var g=f.isFunction(a);return this.each(function(d){var e=f(this),h;if(this.nodeType===1){g?h=a.call(this,d,e.val()):h=a,h==null?h="":typeof h=="number"?h+="":f.isArray(h)&&(h=f.map(h,function(a){return a==null?"":a+""})),c=f.valHooks[this.nodeName.toLowerCase()]||f.valHooks[this.type];if(!c||!("set"in c)||c.set(this,h,"value")===b)this.value=h}})}}),f.extend({valHooks:{option:{get:function(a){var b=a.attributes.value;return!b||b.specified?a.value:a.text}},select:{get:function(a){var b,c=a.selectedIndex,d=[],e=a.options,g=a.type==="select-one";if(c<0)return null;for(var h=g?c:0,i=g?c+1:e.length;h=0}),c.length||(a.selectedIndex=-1);return c}}},attrFn:{val:!0,css:!0,html:!0,text:!0,data:!0,width:!0,height:!0,offset:!0},attrFix:{tabindex:"tabIndex"},attr:function(a,c,d,e){var g=a.nodeType;if(!a||g===3||g===8||g===2)return b;if(e&&c in f.attrFn)return f(a)[c](d);if(!("getAttribute"in a))return f.prop(a,c,d);var h,i,j=g!==1||!f.isXMLDoc(a);j&&(c=f.attrFix[c]||c,i=f.attrHooks[c],i||(t.test(c)?i=v:u&&(i=u)));if(d!==b){if(d===null){f.removeAttr(a,c);return b}if(i&&"set"in i&&j&&(h=i.set(a,d,c))!==b)return h;a.setAttribute(c,""+d);return d}if(i&&"get"in i&&j&&(h=i.get(a,c))!==null)return h;h=a.getAttribute(c);return h===null?b:h},removeAttr:function(a,b){var c;a.nodeType===1&&(b=f.attrFix[b]||b,f.attr(a,b,""),a.removeAttribute(b),t.test(b)&&(c=f.propFix[b]||b)in a&&(a[c]=!1))},attrHooks:{type:{set:function(a,b){if(q.test(a.nodeName)&&a.parentNode)f.error("type property can't be changed");else if(!f.support.radioValue&&b==="radio"&&f.nodeName(a,"input")){var c=a.value;a.setAttribute("type",b),c&&(a.value=c);return b}}},value:{get:function(a,b){if(u&&f.nodeName(a,"button"))return u.get(a,b);return b in a?a.value:null},set:function(a,b,c){if(u&&f.nodeName(a,"button"))return u.set(a,b,c);a.value=b}}},propFix:{tabindex:"tabIndex",readonly:"readOnly","for":"htmlFor","class":"className",maxlength:"maxLength",cellspacing:"cellSpacing",cellpadding:"cellPadding",rowspan:"rowSpan",colspan:"colSpan",usemap:"useMap",frameborder:"frameBorder",contenteditable:"contentEditable"},prop:function(a,c,d){var e=a.nodeType;if(!a||e===3||e===8||e===2)return b;var g,h,i=e!==1||!f.isXMLDoc(a);i&&(c=f.propFix[c]||c,h=f.propHooks[c]);return d!==b?h&&"set"in h&&(g=h.set(a,d,c))!==b?g:a[c]=d:h&&"get"in h&&(g=h.get(a,c))!==null?g:a[c]},propHooks:{tabIndex:{get:function(a){var c=a.getAttributeNode("tabindex");return c&&c.specified?parseInt(c.value,10):r.test(a.nodeName)||s.test(a.nodeName)&&a.href?0:b}}}}),f.attrHooks.tabIndex=f.propHooks.tabIndex,v={get:function(a,c){var d;return f.prop(a,c)===!0||(d=a.getAttributeNode(c))&&d.nodeValue!==!1?c.toLowerCase():b},set:function(a,b,c){var d;b===!1?f.removeAttr(a,c):(d=f.propFix[c]||c,d in a&&(a[d]=!0),a.setAttribute(c,c.toLowerCase()));return c}},f.support.getSetAttribute||(u=f.valHooks.button={get:function(a,c){var d;d=a.getAttributeNode(c);return d&&d.nodeValue!==""?d.nodeValue:b},set:function(a,b,d){var e=a.getAttributeNode(d);e||(e=c.createAttribute(d),a.setAttributeNode(e));return e.nodeValue=b+""}},f.each(["width","height"],function(a,b){f.attrHooks[b]=f.extend(f.attrHooks[b],{set:function(a,c){if(c===""){a.setAttribute(b,"auto");return c}}})})),f.support.hrefNormalized||f.each(["href","src","width","height"],function(a,c){f.attrHooks[c]=f.extend(f.attrHooks[c],{get:function(a){var d=a.getAttribute(c,2);return d===null?b:d}})}),f.support.style||(f.attrHooks.style={get:function(a){return a.style.cssText.toLowerCase()||b},set:function(a,b){return a.style.cssText=""+b}}),f.support.optSelected||(f.propHooks.selected=f.extend(f.propHooks.selected,{get:function(a){var b=a.parentNode;b&&(b.selectedIndex,b.parentNode&&b.parentNode.selectedIndex);return null}})),f.support.checkOn||f.each(["radio","checkbox"],function(){f.valHooks[this]={get:function(a){return a.getAttribute("value")===null?"on":a.value}}}),f.each(["radio","checkbox"],function(){f.valHooks[this]=f.extend(f.valHooks[this],{set:function(a,b){if(f.isArray(b))return a.checked=f.inArray(f(a).val(),b)>=0}})});var w=/\.(.*)$/,x=/^(?:textarea|input|select)$/i,y=/\./g,z=/ /g,A=/[^\w\s.|`]/g,B=function(a){return a.replace(A,"\\$&")};f.event={add:function(a,c,d,e){if(a.nodeType!==3&&a.nodeType!==8){if(d===!1)d=C;else if(!d)return;var g,h;d.handler&&(g=d,d=g.handler),d.guid||(d.guid=f.guid++);var i=f._data(a);if(!i)return;var j=i.events,k=i.handle;j||(i.events=j={}),k||(i.handle=k=function(a){return typeof f!="undefined"&&(!a||f.event.triggered!==a.type)?f.event.handle.apply(k.elem,arguments):b}),k.elem=a,c=c.split(" ");var l,m=0,n;while(l=c[m++]){h=g?f.extend({},g):{handler:d,data:e},l.indexOf(".")>-1?(n=l.split("."),l=n.shift(),h.namespace=n.slice(0).sort().join(".")):(n=[],h.namespace=""),h.type=l,h.guid||(h.guid=d.guid);var o=j[l],p=f.event.special[l]||{};if(!o){o=j[l]=[];if(!p.setup||p.setup.call(a,e,n,k)===!1)a.addEventListener?a.addEventListener(l,k,!1):a.attachEvent&&a.attachEvent("on"+l,k)}p.add&&(p.add.call(a,h),h.handler.guid||(h.handler.guid=d.guid)),o.push(h),f.event.global[l]=!0}a=null}},global:{},remove:function(a,c,d,e){if(a.nodeType!==3&&a.nodeType!==8){d===!1&&(d=C);var g,h,i,j,k=0,l,m,n,o,p,q,r,s=f.hasData(a)&&f._data(a),t=s&&s.events;if(!s||!t)return;c&&c.type&&(d=c.handler,c=c.type);if(!c||typeof c=="string"&&c.charAt(0)==="."){c=c||"";for(h in t)f.event.remove(a,h+c);return}c=c.split(" ");while(h=c[k++]){r=h,q=null,l=h.indexOf(".")<0,m=[],l||(m=h.split("."),h=m.shift(),n=new RegExp("(^|\\.)"+f.map(m.slice(0).sort(),B).join("\\.(?:.*\\.)?")+"(\\.|$)")),p=t[h];if(!p)continue;if(!d){for(j=0;j=0&&(h=h.slice(0,-1),j=!0),h.indexOf(".")>=0&&(i=h.split("."),h=i.shift(),i.sort());if(!!e&&!f.event.customEvent[h]||!!f.event.global[h]){c=typeof c=="object"?c[f.expando]?c:new f.Event(h,c):new f.Event(h),c.type=h,c.exclusive=j,c.namespace=i.join("."),c.namespace_re=new RegExp("(^|\\.)"+i.join("\\.(?:.*\\.)?")+"(\\.|$)");if(g||!e)c.preventDefault(),c.stopPropagation();if(!e){f.each(f.cache,function(){var a=f.expando,b=this[a];b&&b.events&&b.events[h]&&f.event.trigger(c,d,b.handle.elem)});return}if(e.nodeType===3||e.nodeType===8)return;c.result=b,c.target=e,d=d!=null?f.makeArray(d):[],d.unshift(c);var k=e,l=h.indexOf(":")<0?"on"+h:"";do{var m=f._data(k,"handle");c.currentTarget=k,m&&m.apply(k,d),l&&f.acceptData(k)&&k[l]&&k[l].apply(k,d)===!1&&(c.result=!1,c.preventDefault()),k=k.parentNode||k.ownerDocument||k===c.target.ownerDocument&&a}while(k&&!c.isPropagationStopped());if(!c.isDefaultPrevented()){var n,o=f.event.special[h]||{};if((!o._default||o._default.call(e.ownerDocument,c)===!1)&&(h!=="click"||!f.nodeName(e,"a"))&&f.acceptData(e)){try{l&&e[h]&&(n=e[l],n&&(e[l]=null),f.event.triggered=h,e[h]())}catch(p){}n&&(e[l]=n),f.event.triggered=b}}return c.result}},handle:function(c){c=f.event.fix(c||a.event);var d=((f._data(this,"events")||{})[c.type]||[]).slice(0),e=!c.exclusive&&!c.namespace,g=Array.prototype.slice.call(arguments,0);g[0]=c,c.currentTarget=this;for(var h=0,i=d.length;h-1?f.map(a.options,function(a){return a.selected}).join("-"):"":f.nodeName(a,"select")&&(c=a.selectedIndex);return c},I=function(c){var d=c.target,e,g;if(!!x.test(d.nodeName)&&!d.readOnly){e=f._data(d,"_change_data"),g=H(d),(c.type!=="focusout"||d.type!=="radio")&&f._data(d,"_change_data",g);if(e===b||g===e)return;if(e!=null||g)c.type="change",c.liveFired=b,f.event.trigger(c,arguments[1],d)}};f.event.special.change={filters:{focusout:I,beforedeactivate:I,click:function(a){var b=a.target,c=f.nodeName(b,"input")?b.type:"";(c==="radio"||c==="checkbox"||f.nodeName(b,"select"))&&I.call(this,a)},keydown:function(a){var b=a.target,c=f.nodeName(b,"input")?b.type:"";(a.keyCode===13&&!f.nodeName(b,"textarea")||a.keyCode===32&&(c==="checkbox"||c==="radio")||c==="select-multiple")&&I.call(this,a)},beforeactivate:function(a){var b=a.target;f._data(b,"_change_data",H(b))}},setup:function(a,b){if(this.type==="file")return!1;for(var c in G)f.event.add(this,c+".specialChange",G[c]);return x.test(this.nodeName)},teardown:function(a){f.event.remove(this,".specialChange");return x.test(this.nodeName)}},G=f.event.special.change.filters,G.focus=G.beforeactivate}f.support.focusinBubbles||f.each({focus:"focusin",blur:"focusout"},function(a,b){function e(a){var c=f.event.fix(a);c.type=b,c.originalEvent={},f.event.trigger(c,null,c.target),c.isDefaultPrevented()&&a.preventDefault()}var d=0;f.event.special[b]={setup:function(){d++===0&&c.addEventListener(a,e,!0)},teardown:function(){--d===0&&c.removeEventListener(a,e,!0)}}}),f.each(["bind","one"],function(a,c){f.fn[c]=function(a,d,e){var g;if(typeof a=="object"){for(var h in a)this[c](h,d,a[h],e);return this}if(arguments.length===2||d===!1)e=d,d=b;c==="one"?(g=function(a){f(this).unbind(a,g);return e.apply(this,arguments)},g.guid=e.guid||f.guid++):g=e;if(a==="unload"&&c!=="one")this.one(a,d,e);else for(var i=0,j=this.length;i0?this.bind(b,a,c):this.trigger(b)},f.attrFn&&(f.attrFn[b]=!0)}),function(){function u(a,b,c,d,e,f){for(var g=0,h=d.length;g0){j=i;break}}i=i[a]}d[g]=j}}}function t(a,b,c,d,e,f){for(var g=0,h=d.length;g+~,(\[\\]+)+|[>+~])(\s*,\s*)?((?:.|\r|\n)*)/g,d=0,e=Object.prototype.toString,g=!1,h=!0,i=/\\/g,j=/\W/;[0,0].sort(function(){h=!1;return 0});var k=function(b,d,f,g){f=f||[],d=d||c;var h=d;if(d.nodeType!==1&&d.nodeType!==9)return[];if(!b||typeof b!="string")return f;var i,j,n,o,q,r,s,t,u=!0,w=k.isXML(d),x=[],y=b;do{a.exec(""),i=a.exec(y);if(i){y=i[3],x.push(i[1]);if(i[2]){o=i[3];break}}}while(i);if(x.length>1&&m.exec(b))if(x.length===2&&l.relative[x[0]])j=v(x[0]+x[1],d);else{j=l.relative[x[0]]?[d]:k(x.shift(),d);while(x.length)b=x.shift(),l.relative[b]&&(b+=x.shift()),j=v(b,j)}else{!g&&x.length>1&&d.nodeType===9&&!w&&l.match.ID.test(x[0])&&!l.match.ID.test(x[x.length-1])&&(q=k.find(x.shift(),d,w),d=q.expr?k.filter(q.expr,q.set)[0]:q.set[0]);if(d){q=g?{expr:x.pop(),set:p(g)}:k.find(x.pop(),x.length===1&&(x[0]==="~"||x[0]==="+")&&d.parentNode?d.parentNode:d,w),j=q.expr?k.filter(q.expr,q.set):q.set,x.length>0?n=p(j):u=!1;while(x.length)r=x.pop(),s=r,l.relative[r]?s=x.pop():r="",s==null&&(s=d),l.relative[r](n,s,w)}else n=x=[]}n||(n=j),n||k.error(r||b);if(e.call(n)==="[object Array]")if(!u)f.push.apply(f,n);else if(d&&d.nodeType===1)for(t=0;n[t]!=null;t++)n[t]&&(n[t]===!0||n[t].nodeType===1&&k.contains(d,n[t]))&&f.push(j[t]);else for(t=0;n[t]!=null;t++)n[t]&&n[t].nodeType===1&&f.push(j[t]);else p(n,f);o&&(k(o,h,f,g),k.uniqueSort(f));return f};k.uniqueSort=function(a){if(r){g=h,a.sort(r);if(g)for(var b=1;b0},k.find=function(a,b,c){var d;if(!a)return[];for(var e=0,f=l.order.length;e":function(a,b){var c,d=typeof b=="string",e=0,f=a.length;if(d&&!j.test(b)){b=b.toLowerCase();for(;e=0)?c||d.push(h):c&&(b[g]=!1));return!1},ID:function(a){return a[1].replace(i,"")},TAG:function(a,b){return a[1].replace(i,"").toLowerCase()},CHILD:function(a){if(a[1]==="nth"){a[2]||k.error(a[0]),a[2]=a[2].replace(/^\+|\s*/g,"");var b=/(-?)(\d*)(?:n([+\-]?\d*))?/.exec(a[2]==="even"&&"2n"||a[2]==="odd"&&"2n+1"||!/\D/.test(a[2])&&"0n+"+a[2]||a[2]);a[2]=b[1]+(b[2]||1)-0,a[3]=b[3]-0}else a[2]&&k.error(a[0]);a[0]=d++;return a},ATTR:function(a,b,c,d,e,f){var g=a[1]=a[1].replace(i,"");!f&&l.attrMap[g]&&(a[1]=l.attrMap[g]),a[4]=(a[4]||a[5]||"").replace(i,""),a[2]==="~="&&(a[4]=" "+a[4]+" ");return a},PSEUDO:function(b,c,d,e,f){if(b[1]==="not")if((a.exec(b[3])||"").length>1||/^\w/.test(b[3]))b[3]=k(b[3],null,null,c);else{var g=k.filter(b[3],c,d,!0^f);d||e.push.apply(e,g);return!1}else if(l.match.POS.test(b[0])||l.match.CHILD.test(b[0]))return!0;return b},POS:function(a){a.unshift(!0);return a}},filters:{enabled:function(a){return a.disabled===!1&&a.type!=="hidden"},disabled:function(a){return a.disabled===!0},checked:function(a){return a.checked===!0},selected:function(a){a.parentNode&&a.parentNode.selectedIndex;return a.selected===!0},parent:function(a){return!!a.firstChild},empty:function(a){return!a.firstChild},has:function(a,b,c){return!!k(c[3],a).length},header:function(a){return/h\d/i.test(a.nodeName)},text:function(a){var b=a.getAttribute("type"),c=a.type;return a.nodeName.toLowerCase()==="input"&&"text"===c&&(b===c||b===null)},radio:function(a){return a.nodeName.toLowerCase()==="input"&&"radio"===a.type},checkbox:function(a){return a.nodeName.toLowerCase()==="input"&&"checkbox"===a.type},file:function(a){return a.nodeName.toLowerCase()==="input"&&"file"===a.type},password:function(a){return a.nodeName.toLowerCase()==="input"&&"password"===a.type},submit:function(a){var b=a.nodeName.toLowerCase();return(b==="input"||b==="button")&&"submit"===a.type},image:function(a){return a.nodeName.toLowerCase()==="input"&&"image"===a.type},reset:function(a){var b=a.nodeName.toLowerCase();return(b==="input"||b==="button")&&"reset"===a.type},button:function(a){var b=a.nodeName.toLowerCase();return b==="input"&&"button"===a.type||b==="button"},input:function(a){return/input|select|textarea|button/i.test(a.nodeName)},focus:function(a){return a===a.ownerDocument.activeElement}},setFilters:{first:function(a,b){return b===0},last:function(a,b,c,d){return b===d.length-1},even:function(a,b){return b%2===0},odd:function(a,b){return b%2===1},lt:function(a,b,c){return bc[3]-0},nth:function(a,b,c){return c[3]-0===b},eq:function(a,b,c){return c[3]-0===b}},filter:{PSEUDO:function(a,b,c,d){var e=b[1],f=l.filters[e];if(f)return f(a,c,b,d);if(e==="contains")return(a.textContent||a.innerText||k.getText([a])||"").indexOf(b[3])>=0;if(e==="not"){var g=b[3];for(var h=0,i=g.length;h=0}},ID:function(a,b){return a.nodeType===1&&a.getAttribute("id")===b},TAG:function(a,b){return b==="*"&&a.nodeType===1||a.nodeName.toLowerCase()===b},CLASS:function(a,b){return(" "+(a.className||a.getAttribute("class"))+" ").indexOf(b)>-1},ATTR:function(a,b){var c=b[1],d=l.attrHandle[c]?l.attrHandle[c](a):a[c]!=null?a[c]:a.getAttribute(c),e=d+"",f=b[2],g=b[4];return d==null?f==="!=":f==="="?e===g:f==="*="?e.indexOf(g)>=0:f==="~="?(" "+e+" ").indexOf(g)>=0:g?f==="!="?e!==g:f==="^="?e.indexOf(g)===0:f==="$="?e.substr(e.length-g.length)===g:f==="|="?e===g||e.substr(0,g.length+1)===g+"-":!1:e&&d!==!1},POS:function(a,b,c,d){var e=b[2],f=l.setFilters[e];if(f)return f(a,c,b,d)}}},m=l.match.POS,n=function(a,b){return"\\"+(b-0+1)};for(var o in l.match)l.match[o]=new RegExp(l.match[o].source+/(?![^\[]*\])(?![^\(]*\))/.source),l.leftMatch[o]=new RegExp(/(^(?:.|\r|\n)*?)/.source+l.match[o].source.replace(/\\(\d+)/g,n));var p=function(a,b){a=Array.prototype.slice.call(a,0);if(b){b.push.apply(b,a);return b}return a};try{Array.prototype.slice.call(c.documentElement.childNodes,0)[0].nodeType}catch(q){p=function(a,b){var c=0,d=b||[];if(e.call(a)==="[object Array]")Array.prototype.push.apply(d,a);else if(typeof a.length=="number")for(var f=a.length;c",e.insertBefore(a,e.firstChild),c.getElementById(d)&&(l.find.ID=function(a,c,d){if(typeof c.getElementById!="undefined"&&!d){var e=c.getElementById(a[1]);return e?e.id===a[1]||typeof e.getAttributeNode!="undefined"&&e.getAttributeNode("id").nodeValue===a[1]?[e]:b:[]}},l.filter.ID=function(a,b){var c=typeof a.getAttributeNode!="undefined"&&a.getAttributeNode("id");return a.nodeType===1&&c&&c.nodeValue===b}),e.removeChild(a),e=a=null}(),function(){var a=c.createElement("div");a.appendChild(c.createComment("")),a.getElementsByTagName("*").length>0&&(l.find.TAG=function(a,b){var c=b.getElementsByTagName(a[1]);if(a[1]==="*"){var d=[];for(var e=0;c[e];e++)c[e].nodeType===1&&d.push(c[e]);c=d}return c}),a.innerHTML="",a.firstChild&&typeof a.firstChild.getAttribute!="undefined"&&a.firstChild.getAttribute("href")!=="#"&&(l.attrHandle.href=function(a){return a.getAttribute("href",2)}),a=null}(),c.querySelectorAll&&function(){var a=k,b=c.createElement("div"),d="__sizzle__";b.innerHTML="";if(!b.querySelectorAll||b.querySelectorAll(".TEST").length!==0){k=function(b,e,f,g){e=e||c;if(!g&&!k.isXML(e)){var h=/^(\w+$)|^\.([\w\-]+$)|^#([\w\-]+$)/.exec(b);if(h&&(e.nodeType===1||e.nodeType===9)){if(h[1])return p(e.getElementsByTagName(b),f);if(h[2]&&l.find.CLASS&&e.getElementsByClassName)return p(e.getElementsByClassName(h[2]),f)}if(e.nodeType===9){if(b==="body"&&e.body)return p([e.body],f);if(h&&h[3]){var i=e.getElementById(h[3]);if(!i||!i.parentNode)return p([],f);if(i.id===h[3])return p([i],f)}try{return p(e.querySelectorAll(b),f)}catch(j){}}else if(e.nodeType===1&&e.nodeName.toLowerCase()!=="object"){var m=e,n=e.getAttribute("id"),o=n||d,q=e.parentNode,r=/^\s*[+~]/.test(b);n?o=o.replace(/'/g,"\\$&"):e.setAttribute("id",o),r&&q&&(e=e.parentNode);try{if(!r||q)return p(e.querySelectorAll("[id='"+o+"'] "+b),f)}catch(s){}finally{n||m.removeAttribute("id")}}}return a(b,e,f,g)};for(var e in a)k[e]=a[e];b=null}}(),function(){var a=c.documentElement,b=a.matchesSelector||a.mozMatchesSelector||a.webkitMatchesSelector||a.msMatchesSelector;if(b){var d=!b.call(c.createElement("div"),"div"),e=!1;try{b.call(c.documentElement,"[test!='']:sizzle")}catch(f){e=!0}k.matchesSelector=function(a,c){c=c.replace(/\=\s*([^'"\]]*)\s*\]/g,"='$1']");if(!k.isXML(a))try{if(e||!l.match.PSEUDO.test(c)&&!/!=/.test(c)){var f=b.call(a,c);if(f||!d||a.document&&a.document.nodeType!==11)return f}}catch(g){}return k(c,null,null,[a]).length>0}}}(),function(){var a=c.createElement("div");a.innerHTML="";if(!!a.getElementsByClassName&&a.getElementsByClassName("e").length!==0){a.lastChild.className="e";if(a.getElementsByClassName("e").length===1)return;l.order.splice(1,0,"CLASS"),l.find.CLASS=function(a,b,c){if(typeof b.getElementsByClassName!="undefined"&&!c)return b.getElementsByClassName(a[1])},a=null}}(),c.documentElement.contains?k.contains=function(a,b){return a!==b&&(a.contains?a.contains(b):!0)}:c.documentElement.compareDocumentPosition?k.contains=function(a,b){return!!(a.compareDocumentPosition(b)&16)}:k.contains=function(){return!1},k.isXML=function(a){var b=(a?a.ownerDocument||a:0).documentElement;return b?b.nodeName!=="HTML":!1};var v=function(a,b){var c,d=[],e="",f=b.nodeType?[b]:b;while(c=l.match.PSEUDO.exec(a))e+=c[0],a=a.replace(l.match.PSEUDO,"");a=l.relative[a]?a+"*":a;for(var g=0,h=f.length;g0)for(h=g;h0:this.filter(a).length>0)},closest:function(a,b){var c=[],d,e,g=this[0];if(f.isArray(a)){var h,i,j={},k=1;if(g&&a.length){for(d=0,e=a.length;d-1:f(g).is(h))&&c.push({selector:i,elem:g,level:k});g=g.parentNode,k++}}return c}var l=S.test(a)||typeof a!="string"?f(a,b||this.context):0;for(d=0,e=this.length;d-1:f.find.matchesSelector(g,a)){c.push(g);break}g=g.parentNode;if(!g||!g.ownerDocument||g===b||g.nodeType===11)break}}c=c.length>1?f.unique(c):c;return this.pushStack(c,"closest",a)},index:function(a){if(!a)return this[0]&&this[0].parentNode?this.prevAll().length:-1;if(typeof a=="string")return f.inArray(this[0],f(a));return f.inArray(a.jquery?a[0]:a,this)},add:function(a,b){var c=typeof a=="string"?f(a,b):f.makeArray(a&&a.nodeType?[a]:a),d=f.merge(this.get(),c);return this.pushStack(U(c[0])||U(d[0])?d:f.unique(d))},andSelf:function(){return this.add(this.prevObject)}}),f.each({parent:function(a){var b=a.parentNode;return b&&b.nodeType!==11?b:null},parents:function(a){return f.dir(a,"parentNode")},parentsUntil:function(a,b,c){return f.dir(a,"parentNode",c)},next:function(a){return f.nth(a,2,"nextSibling")},prev:function(a){return f.nth(a,2,"previousSibling")},nextAll:function(a){return f.dir(a,"nextSibling")},prevAll:function(a){return f.dir(a,"previousSibling")},nextUntil:function(a,b,c){return f.dir(a,"nextSibling",c)},prevUntil:function(a,b,c){return f.dir(a,"previousSibling",c)},siblings:function(a){return f.sibling(a.parentNode.firstChild,a)},children:function(a){return f.sibling(a.firstChild)},contents:function(a){return f.nodeName(a,"iframe")?a.contentDocument||a.contentWindow.document:f.makeArray(a.childNodes)}},function(a,b){f.fn[a]=function(c,d){var e=f.map(this,b,c),g=R.call(arguments);N.test(a)||(d=c),d&&typeof d=="string"&&(e=f.filter(d,e)),e=this.length>1&&!T[a]?f.unique(e):e,(this.length>1||P.test(d))&&O.test(a)&&(e=e.reverse());return this.pushStack(e,a,g.join(","))}}),f.extend({filter:function(a,b,c){c&&(a=":not("+a+")");return b.length===1?f.find.matchesSelector(b[0],a)?[b[0]]:[]:f.find.matches(a,b)},dir:function(a,c,d){var e=[],g=a[c];while(g&&g.nodeType!==9&&(d===b||g.nodeType!==1||!f(g).is(d)))g.nodeType===1&&e.push(g),g=g[c];return e},nth:function(a,b,c,d){b=b||1;var e=0;for(;a;a=a[c])if(a.nodeType===1&&++e===b)break;return a},sibling:function(a,b){var c=[];for(;a;a=a.nextSibling)a.nodeType===1&&a!==b&&c.push(a);return c}});var W=/ jQuery\d+="(?:\d+|null)"/g,X=/^\s+/,Y=/<(?!area|br|col|embed|hr|img|input|link|meta|param)(([\w:]+)[^>]*)\/>/ig,Z=/<([\w:]+)/,$=/",""],legend:[1,"",""],thead:[1,"",""],tr:[2,"",""],td:[3,"",""],col:[2,"",""],area:[1,"",""],_default:[0,"",""]};be.optgroup=be.option,be.tbody=be.tfoot=be.colgroup=be.caption=be.thead,be.th=be.td,f.support.htmlSerialize||(be._default=[1,"div",""]),f.fn.extend({text:function(a){if(f.isFunction(a))return this.each(function(b){var c=f(this);c.text(a.call(this,b,c.text()))});if(typeof a!="object"&&a!==b)return this.empty().append((this[0]&&this[0].ownerDocument||c).createTextNode(a));return f.text(this)},wrapAll:function(a){if(f.isFunction(a))return this.each(function(b){f(this).wrapAll(a.call(this,b))});if(this[0]){var b=f(a,this[0].ownerDocument).eq(0).clone(!0);this[0].parentNode&&b.insertBefore(this[0]),b.map(function(){var a=this;while(a.firstChild&&a.firstChild.nodeType===1)a=a.firstChild;return a}).append(this)}return this},wrapInner:function(a){if(f.isFunction(a))return this.each(function(b){f(this).wrapInner(a.call(this,b))});return this.each(function(){var b=f(this),c=b.contents();c.length?c.wrapAll(a):b.append(a)})},wrap:function(a){return this.each(function(){f(this).wrapAll(a)})},unwrap:function(){return this.parent().each(function(){f.nodeName(this,"body")||f(this).replaceWith(this.childNodes)}).end()},append:function(){return this.domManip(arguments,!0,function(a){this.nodeType===1&&this.appendChild(a)})},prepend:function(){return this.domManip(arguments,!0,function(a){this.nodeType===1&&this.insertBefore(a,this.firstChild)})},before:function(){if(this[0]&&this[0].parentNode)return this.domManip(arguments,!1,function(a){this.parentNode.insertBefore(a,this)});if(arguments.length){var a=f(arguments[0]);a.push.apply(a,this.toArray());return this.pushStack(a,"before",arguments)}},after:function(){if(this[0]&&this[0].parentNode)return this.domManip(arguments,!1,function(a){this.parentNode.insertBefore(a,this.nextSibling)});if(arguments.length){var a=this.pushStack(this,"after",arguments);a.push.apply(a,f(arguments[0]).toArray());return a}},remove:function(a,b){for(var c=0,d;(d=this[c])!=null;c++)if(!a||f.filter(a,[d]).length)!b&&d.nodeType===1&&(f.cleanData(d.getElementsByTagName("*")),f.cleanData([d])),d.parentNode&&d.parentNode.removeChild(d);return this},empty:function(){for(var a=0,b;(b=this[a])!=null;a++){b.nodeType===1&&f.cleanData(b.getElementsByTagName("*"));while(b.firstChild)b.removeChild(b.firstChild)}return this},clone:function(a,b){a=a==null?!1:a,b=b==null?a:b;return this.map(function(){return f.clone(this,a,b)})},html:function(a){if(a===b)return this[0]&&this[0].nodeType===1?this[0].innerHTML.replace(W,""):null;if(typeof a=="string"&&!ba.test(a)&&(f.support.leadingWhitespace||!X.test(a))&&!be[(Z.exec(a)||["",""])[1].toLowerCase()]){a=a.replace(Y,"<$1>$2>");try{for(var c=0,d=this.length;c1&&l0?this.clone(!0):this).get();f(e[h])[b](j),d=d.concat(j)}return this.pushStack(d,a,e.selector)}}),f.extend({clone:function(a,b,c){var d=a.cloneNode(!0),e,g,h;if((!f.support.noCloneEvent||!f.support.noCloneChecked)&&(a.nodeType===1||a.nodeType===11)&&!f.isXMLDoc(a)){bh(a,d),e=bi(a),g=bi(d);for(h=0;e[h];++h)g[h]&&bh(e[h],g[h])}if(b){bg(a,d);if(c){e=bi(a),g=bi(d);for(h=0;e[h];++h)bg(e[h],g[h])}}e=g=null;return d},clean:function(a,b,d,e){var g;b=b||c,typeof b.createElement=="undefined"&&(b=b.ownerDocument||b[0]&&b[0].ownerDocument||c);var h=[],i;for(var j=0,k;(k=a[j])!=null;j++){typeof k=="number"&&(k+="");if(!k)continue;if(typeof k=="string")if(!_.test(k))k=b.createTextNode(k);else{k=k.replace(Y,"<$1>$2>");var l=(Z.exec(k)||["",""])[1].toLowerCase(),m=be[l]||be._default,n=m[0],o=b.createElement("div");o.innerHTML=m[1]+k+m[2];while(n--)o=o.lastChild;if(!f.support.tbody){var p=$.test(k),q=l==="table"&&!p?o.firstChild&&o.firstChild.childNodes:m[1]===""&&!p?o.childNodes:[];for(i=q.length-1;i>=0;--i)f.nodeName(q[i],"tbody")&&!q[i].childNodes.length&&q[i].parentNode.removeChild(q[i])}!f.support.leadingWhitespace&&X.test(k)&&o.insertBefore(b.createTextNode(X.exec(k)[0]),o.firstChild),k=o.childNodes}var r;if(!f.support.appendChecked)if(k[0]&&typeof (r=k.length)=="number")for(i=0;i=0)return b+"px"}}}),f.support.opacity||(f.cssHooks.opacity={get:function(a,b){return bn.test((b&&a.currentStyle?a.currentStyle.filter:a.style.filter)||"")?parseFloat(RegExp.$1)/100+"":b?"1":""},set:function(a,b){var c=a.style,d=a.currentStyle,e=f.isNaN(b)?"":"alpha(opacity="+b*100+")",g=d&&d.filter||c.filter||"";c.zoom=1;if(b>=1&&f.trim(g.replace(bm,""))===""){c.removeAttribute("filter");if(d&&!d.filter)return}c.filter=bm.test(g)?g.replace(bm,e):g+" "+e}}),f(function(){f.support.reliableMarginRight||(f.cssHooks.marginRight={get:function(a,b){var c;f.swap(a,{display:"inline-block"},function(){b?c=bv(a,"margin-right","marginRight"):c=a.style.marginRight});return c}})}),c.defaultView&&c.defaultView.getComputedStyle&&(bw=function(a,c){var d,e,g;c=c.replace(bo,"-$1").toLowerCase();if(!(e=a.ownerDocument.defaultView))return b;if(g=e.getComputedStyle(a,null))d=g.getPropertyValue(c),d===""&&!f.contains(a.ownerDocument.documentElement,a)&&(d=f.style(a,c));return d}),c.documentElement.currentStyle&&(bx=function(a,b){var c,d=a.currentStyle&&a.currentStyle[b],e=a.runtimeStyle&&a.runtimeStyle[b],f=a.style;!bp.test(d)&&bq.test(d)&&(c=f.left,e&&(a.runtimeStyle.left=a.currentStyle.left),f.left=b==="fontSize"?"1em":d||0,d=f.pixelLeft+"px",f.left=c,e&&(a.runtimeStyle.left=e));return d===""?"auto":d}),bv=bw||bx,f.expr&&f.expr.filters&&(f.expr.filters.hidden=function(a){var b=a.offsetWidth,c=a.offsetHeight;return b===0&&c===0||!f.support.reliableHiddenOffsets&&(a.style.display||f.css(a,"display"))==="none"},f.expr.filters.visible=function(a){return!f.expr.filters.hidden(a)});var bz=/%20/g,bA=/\[\]$/,bB=/\r?\n/g,bC=/#.*$/,bD=/^(.*?):[ \t]*([^\r\n]*)\r?$/mg,bE=/^(?:color|date|datetime|datetime-local|email|hidden|month|number|password|range|search|tel|text|time|url|week)$/i,bF=/^(?:about|app|app\-storage|.+\-extension|file|res|widget):$/,bG=/^(?:GET|HEAD)$/,bH=/^\/\//,bI=/\?/,bJ=/'),a.close(),t.location.hash=i)}}(),l}()}(e,this),function(e){t.matchMedia=t.matchMedia||function(e){var t,i=e.documentElement,n=i.firstElementChild||i.firstChild,a=e.createElement("body"),o=e.createElement("div");return o.id="mq-test-1",o.style.cssText="position:absolute;top:-100em",a.style.background="none",a.appendChild(o),function(e){return o.innerHTML='',i.insertBefore(a,n),t=42===o.offsetWidth,i.removeChild(a),{matches:t,media:e}}}(i),e.mobile.media=function(e){return t.matchMedia(e).matches}}(e),function(e){var t={touch:"ontouchend"in i};e.mobile.support=e.mobile.support||{},e.extend(e.support,t),e.extend(e.mobile.support,t)}(e),function(e){e.extend(e.support,{orientation:"orientation"in t&&"onorientationchange"in t})}(e),function(e,n){function a(e){var t=e.charAt(0).toUpperCase()+e.substr(1),i=(e+" "+p.join(t+" ")+t).split(" ");for(var a in i)if(u[i[a]]!==n)return!0}function o(e,t,n){for(var a,o=i.createElement("div"),s=function(e){return e.charAt(0).toUpperCase()+e.substr(1)},r=function(e){return""===e?"":"-"+e.charAt(0).toLowerCase()+e.substr(1)+"-"},l=function(i){var n=r(i)+e+": "+t+";",l=s(i),d=l+(""===l?e:s(e));o.setAttribute("style",n),o.style[d]&&(a=!0)},d=n?n:p,c=0;d.length>c;c++)l(d[c]);return!!a}function s(){var a="transform-3d",o=e.mobile.media("(-"+p.join("-"+a+"),(-")+"-"+a+"),("+a+")");if(o)return!!o;var s=i.createElement("div"),r={MozTransform:"-moz-transform",transform:"transform"};h.append(s);for(var l in r)s.style[l]!==n&&(s.style[l]="translate3d( 100px, 1px, 1px )",o=t.getComputedStyle(s).getPropertyValue(r[l]));return!!o&&"none"!==o}function r(){var t,i,n=location.protocol+"//"+location.host+location.pathname+"ui-dir/",a=e("head base"),o=null,s="";return a.length?s=a.attr("href"):a=o=e("",{href:n}).appendTo("head"),t=e("").prependTo(h),i=t[0].href,a[0].href=s||location.pathname,o&&o.remove(),0===i.indexOf(n)}function l(){var e,n=i.createElement("x"),a=i.documentElement,o=t.getComputedStyle;return"pointerEvents"in n.style?(n.style.pointerEvents="auto",n.style.pointerEvents="x",a.appendChild(n),e=o&&"auto"===o(n,"").pointerEvents,a.removeChild(n),!!e):!1}function d(){var e=i.createElement("div");return e.getBoundingClientRect!==n}function c(){var e=t,i=navigator.userAgent,n=navigator.platform,a=i.match(/AppleWebKit\/([0-9]+)/),o=!!a&&a[1],s=i.match(/Fennec\/([0-9]+)/),r=!!s&&s[1],l=i.match(/Opera Mobi\/([0-9]+)/),d=!!l&&l[1];return(n.indexOf("iPhone")>-1||n.indexOf("iPad")>-1||n.indexOf("iPod")>-1)&&o&&534>o||e.operamini&&"[object OperaMini]"==={}.toString.call(e.operamini)||l&&7458>d||i.indexOf("Android")>-1&&o&&533>o||r&&6>r||"palmGetResource"in t&&o&&534>o||i.indexOf("MeeGo")>-1&&i.indexOf("NokiaBrowser/8.5.0")>-1?!1:!0}var h=e("").prependTo("html"),u=h[0].style,p=["Webkit","Moz","O"],m="palmGetResource"in t,f=t.opera,g=t.operamini&&"[object OperaMini]"==={}.toString.call(t.operamini),b=t.blackberry&&!a("-webkit-transform");e.extend(e.mobile,{browser:{}}),e.mobile.browser.oldIE=function(){var e=3,t=i.createElement("div"),n=t.all||[];do t.innerHTML="";while(n[0]);return e>4?e:!e}(),e.extend(e.support,{cssTransitions:"WebKitTransitionEvent"in t||o("transition","height 100ms linear",["Webkit","Moz",""])&&!e.mobile.browser.oldIE&&!f,pushState:"pushState"in history&&"replaceState"in history&&!(t.navigator.userAgent.indexOf("Firefox")>=0&&t.top!==t)&&-1===t.navigator.userAgent.search(/CriOS/),mediaquery:e.mobile.media("only all"),cssPseudoElement:!!a("content"),touchOverflow:!!a("overflowScrolling"),cssTransform3d:s(),boxShadow:!!a("boxShadow")&&!b,fixedPosition:c(),scrollTop:("pageXOffset"in t||"scrollTop"in i.documentElement||"scrollTop"in h[0])&&!m&&!g,dynamicBaseTag:r(),cssPointerEvents:l(),boundingRect:d()}),h.remove();var v=function(){var e=t.navigator.userAgent;return e.indexOf("Nokia")>-1&&(e.indexOf("Symbian/3")>-1||e.indexOf("Series60/5")>-1)&&e.indexOf("AppleWebKit")>-1&&e.match(/(BrowserNG|NokiaBrowser)\/7\.[0-3]/)}();e.mobile.gradeA=function(){return(e.support.mediaquery||e.mobile.browser.oldIE&&e.mobile.browser.oldIE>=7)&&(e.support.boundingRect||null!==e.fn.jquery.match(/1\.[0-7+]\.[0-9+]?/))},e.mobile.ajaxBlacklist=t.blackberry&&!t.WebKitPoint||g||v,v&&e(function(){e("head link[rel='stylesheet']").attr("rel","alternate stylesheet").attr("rel","stylesheet")}),e.support.boxShadow||e("html").addClass("ui-mobile-nosupport-boxshadow")}(e),function(e,t){var i,n=e.mobile.window;e.event.special.navigate=i={bound:!1,pushStateEnabled:!0,originalEventName:t,isPushStateEnabled:function(){return e.support.pushState&&e.mobile.pushStateEnabled===!0&&this.isHashChangeEnabled()},isHashChangeEnabled:function(){return e.mobile.hashListeningEnabled===!0},popstate:function(t){var i=new e.Event("navigate"),a=new e.Event("beforenavigate"),o=t.originalEvent.state||{};location.href,n.trigger(a),a.isDefaultPrevented()||(t.historyState&&e.extend(o,t.historyState),i.originalEvent=t,setTimeout(function(){n.trigger(i,{state:o})},0))},hashchange:function(t){var i=new e.Event("navigate"),a=new e.Event("beforenavigate");n.trigger(a),a.isDefaultPrevented()||(i.originalEvent=t,n.trigger(i,{state:t.hashchangeState||{}}))},setup:function(){i.bound||(i.bound=!0,i.isPushStateEnabled()?(i.originalEventName="popstate",n.bind("popstate.navigate",i.popstate)):i.isHashChangeEnabled()&&(i.originalEventName="hashchange",n.bind("hashchange.navigate",i.hashchange)))}}}(e),function(e,i){var n,a,o="&ui-state=dialog";e.mobile.path=n={uiStateKey:"&ui-state",urlParseRE:/^\s*(((([^:\/#\?]+:)?(?:(\/\/)((?:(([^:@\/#\?]+)(?:\:([^:@\/#\?]+))?)@)?(([^:\/#\?\]\[]+|\[[^\/\]@#?]+\])(?:\:([0-9]+))?))?)?)?((\/?(?:[^\/\?#]+\/+)*)([^\?#]*)))?(\?[^#]+)?)(#.*)?/,getLocation:function(e){var t=e?this.parseUrl(e):location,i=this.parseUrl(e||location.href).hash;return i="#"===i?"":i,t.protocol+"//"+t.host+t.pathname+t.search+i},parseLocation:function(){return this.parseUrl(this.getLocation())},parseUrl:function(t){if("object"===e.type(t))return t;var i=n.urlParseRE.exec(t||"")||[];return{href:i[0]||"",hrefNoHash:i[1]||"",hrefNoSearch:i[2]||"",domain:i[3]||"",protocol:i[4]||"",doubleSlash:i[5]||"",authority:i[6]||"",username:i[8]||"",password:i[9]||"",host:i[10]||"",hostname:i[11]||"",port:i[12]||"",pathname:i[13]||"",directory:i[14]||"",filename:i[15]||"",search:i[16]||"",hash:i[17]||""}},makePathAbsolute:function(e,t){if(e&&"/"===e.charAt(0))return e;e=e||"",t=t?t.replace(/^\/|(\/[^\/]*|[^\/]+)$/g,""):"";for(var i=t?t.split("/"):[],n=e.split("/"),a=0;n.length>a;a++){var o=n[a];switch(o){case".":break;case"..":i.length&&i.pop();break;default:i.push(o)}}return"/"+i.join("/")},isSameDomain:function(e,t){return n.parseUrl(e).domain===n.parseUrl(t).domain},isRelativeUrl:function(e){return""===n.parseUrl(e).protocol},isAbsoluteUrl:function(e){return""!==n.parseUrl(e).protocol},makeUrlAbsolute:function(e,t){if(!n.isRelativeUrl(e))return e;t===i&&(t=this.documentBase);var a=n.parseUrl(e),o=n.parseUrl(t),s=a.protocol||o.protocol,r=a.protocol?a.doubleSlash:a.doubleSlash||o.doubleSlash,l=a.authority||o.authority,d=""!==a.pathname,c=n.makePathAbsolute(a.pathname||o.filename,o.pathname),h=a.search||!d&&o.search||"",u=a.hash;return s+r+l+c+h+u},addSearchParams:function(t,i){var a=n.parseUrl(t),o="object"==typeof i?e.param(i):i,s=a.search||"?";return a.hrefNoSearch+s+("?"!==s.charAt(s.length-1)?"&":"")+o+(a.hash||"")},convertUrlToDataUrl:function(e){var i=n.parseUrl(e);return n.isEmbeddedPage(i)?i.hash.split(o)[0].replace(/^#/,"").replace(/\?.*$/,""):n.isSameDomain(i,this.documentBase)?i.hrefNoHash.replace(this.documentBase.domain,"").split(o)[0]:t.decodeURIComponent(e)},get:function(e){return e===i&&(e=n.parseLocation().hash),n.stripHash(e).replace(/[^\/]*\.[^\/*]+$/,"")},set:function(e){location.hash=e},isPath:function(e){return/\//.test(e)},clean:function(e){return e.replace(this.documentBase.domain,"")},stripHash:function(e){return e.replace(/^#/,"")},stripQueryParams:function(e){return e.replace(/\?.*$/,"")},cleanHash:function(e){return n.stripHash(e.replace(/\?.*$/,"").replace(o,""))},isHashValid:function(e){return/^#[^#]+$/.test(e)},isExternal:function(e){var t=n.parseUrl(e);return t.protocol&&t.domain!==this.documentUrl.domain?!0:!1},hasProtocol:function(e){return/^(:?\w+:)/.test(e)},isEmbeddedPage:function(e){var t=n.parseUrl(e);return""!==t.protocol?!this.isPath(t.hash)&&t.hash&&(t.hrefNoHash===this.documentUrl.hrefNoHash||this.documentBaseDiffers&&t.hrefNoHash===this.documentBase.hrefNoHash):/^#/.test(t.href)},squash:function(e,t){var i,a,o,s,r=this.isPath(e),l=this.parseUrl(e),d=l.hash,c="";return t=t||(n.isPath(e)?n.getLocation():n.getDocumentUrl()),a=r?n.stripHash(e):e,a=n.isPath(l.hash)?n.stripHash(l.hash):a,s=a.indexOf(this.uiStateKey),s>-1&&(c=a.slice(s),a=a.slice(0,s)),i=n.makeUrlAbsolute(a,t),o=this.parseUrl(i).search,r?((n.isPath(d)||0===d.replace("#","").indexOf(this.uiStateKey))&&(d=""),c&&-1===d.indexOf(this.uiStateKey)&&(d+=c),-1===d.indexOf("#")&&""!==d&&(d="#"+d),i=n.parseUrl(i),i=i.protocol+"//"+i.host+i.pathname+o+d):i+=i.indexOf("#")>-1?c:"#"+c,i},isPreservableHash:function(e){return 0===e.replace("#","").indexOf(this.uiStateKey)}},n.documentUrl=n.parseLocation(),a=e("head").find("base"),n.documentBase=a.length?n.parseUrl(n.makeUrlAbsolute(a.attr("href"),n.documentUrl.href)):n.documentUrl,n.documentBaseDiffers=n.documentUrl.hrefNoHash!==n.documentBase.hrefNoHash,n.getDocumentUrl=function(t){return t?e.extend({},n.documentUrl):n.documentUrl.href},n.getDocumentBase=function(t){return t?e.extend({},n.documentBase):n.documentBase.href}}(e),function(e,t){e.mobile.path,e.mobile.History=function(e,t){this.stack=e||[],this.activeIndex=t||0},e.extend(e.mobile.History.prototype,{getActive:function(){return this.stack[this.activeIndex]},getLast:function(){return this.stack[this.previousIndex]},getNext:function(){return this.stack[this.activeIndex+1]},getPrev:function(){return this.stack[this.activeIndex-1]},add:function(e,t){t=t||{},this.getNext()&&this.clearForward(),t.hash&&-1===t.hash.indexOf("#")&&(t.hash="#"+t.hash),t.url=e,this.stack.push(t),this.activeIndex=this.stack.length-1},clearForward:function(){this.stack=this.stack.slice(0,this.activeIndex+1)},find:function(e,t,i){t=t||this.stack;var n,a,o,s=t.length;for(a=0;s>a;a++)if(n=t[a],(decodeURIComponent(e)===decodeURIComponent(n.url)||decodeURIComponent(e)===decodeURIComponent(n.hash))&&(o=a,i))return o;return o},closest:function(e){var i,n=this.activeIndex;return i=this.find(e,this.stack.slice(0,n)),i===t&&(i=this.find(e,this.stack.slice(n),!0),i=i===t?i:i+n),i},direct:function(i){var n=this.closest(i.url),a=this.activeIndex;n!==t&&(this.activeIndex=n,this.previousIndex=a),a>n?(i.present||i.back||e.noop)(this.getActive(),"back"):n>a?(i.present||i.forward||e.noop)(this.getActive(),"forward"):n===t&&i.missing&&i.missing(this.getActive())}})}(e),function(e){var a=e.mobile.path,o=location.href;e.mobile.Navigator=function(t){this.history=t,this.ignoreInitialHashChange=!0,e.mobile.window.bind({"popstate.history":e.proxy(this.popstate,this),"hashchange.history":e.proxy(this.hashchange,this)})},e.extend(e.mobile.Navigator.prototype,{squash:function(n,o){var s,r,l=a.isPath(n)?a.stripHash(n):n;return r=a.squash(n),s=e.extend({hash:l,url:r},o),t.history.replaceState(s,s.title||i.title,r),s},hash:function(e,t){var i,n,o;if(i=a.parseUrl(e),n=a.parseLocation(),n.pathname+n.search===i.pathname+i.search)o=i.hash?i.hash:i.pathname+i.search;else if(a.isPath(e)){var s=a.parseUrl(t);o=s.pathname+s.search+(a.isPreservableHash(s.hash)?s.hash.replace("#",""):"")}else o=e;return o},go:function(n,o,s){var r,l,d,c,h=e.event.special.navigate.isPushStateEnabled();l=a.squash(n),d=this.hash(n,l),s&&d!==a.stripHash(a.parseLocation().hash)&&(this.preventNextHashChange=s),this.preventHashAssignPopState=!0,t.location.hash=d,this.preventHashAssignPopState=!1,r=e.extend({url:l,hash:d,title:i.title},o),h&&(c=new e.Event("popstate"),c.originalEvent={type:"popstate",state:null},this.squash(n,r),s||(this.ignorePopState=!0,e.mobile.window.trigger(c))),this.history.add(r.url,r)},popstate:function(t){var i,s;if(e.event.special.navigate.isPushStateEnabled())return this.preventHashAssignPopState?(this.preventHashAssignPopState=!1,t.stopImmediatePropagation(),n):this.ignorePopState?(this.ignorePopState=!1,n):!t.originalEvent.state&&1===this.history.stack.length&&this.ignoreInitialHashChange&&(this.ignoreInitialHashChange=!1,location.href===o)?(t.preventDefault(),n):(i=a.parseLocation().hash,!t.originalEvent.state&&i?(s=this.squash(i),this.history.add(s.url,s),t.historyState=s,n):(this.history.direct({url:(t.originalEvent.state||{}).url||i,present:function(i,n){t.historyState=e.extend({},i),t.historyState.direction=n}}),n))},hashchange:function(t){var o,s;if(e.event.special.navigate.isHashChangeEnabled()&&!e.event.special.navigate.isPushStateEnabled()){if(this.preventNextHashChange)return this.preventNextHashChange=!1,t.stopImmediatePropagation(),n;o=this.history,s=a.parseLocation().hash,this.history.direct({url:s,present:function(i,n){t.hashchangeState=e.extend({},i),t.hashchangeState.direction=n},missing:function(){o.add(s,{hash:s,title:i.title})}})}}})}(e),function(e){e.mobile.navigate=function(t,i,n){e.mobile.navigate.navigator.go(t,i,n)},e.mobile.navigate.history=new e.mobile.History,e.mobile.navigate.navigator=new e.mobile.Navigator(e.mobile.navigate.history);var t=e.mobile.path.parseLocation();e.mobile.navigate.history.add(t.href,{hash:t.hash})}(e),function(e,t,i,n){function a(e){for(;e&&e.originalEvent!==n;)e=e.originalEvent;return e}function o(t,i){var o,s,r,l,d,c,h,u,p,m=t.type;if(t=e.Event(t),t.type=i,o=t.originalEvent,s=e.event.props,m.search(/^(mouse|click)/)>-1&&(s=q),o)for(h=s.length,l;h;)l=s[--h],t[l]=o[l];if(m.search(/mouse(down|up)|click/)>-1&&!t.which&&(t.which=1),-1!==m.search(/^touch/)&&(r=a(o),m=r.touches,d=r.changedTouches,c=m&&m.length?m[0]:d&&d.length?d[0]:n))for(u=0,p=k.length;p>u;u++)l=k[u],t[l]=c[l];return t}function s(t){for(var i,n,a={};t;){i=e.data(t,T);for(n in i)i[n]&&(a[n]=a.hasVirtualBinding=!0);t=t.parentNode}return a}function r(t,i){for(var n;t;){if(n=e.data(t,T),n&&(!i||n[i]))return t;t=t.parentNode}return null}function l(){M=!1}function d(){M=!0}function c(){U=0,O.length=0,H=!1,d()}function h(){l()}function u(){p(),S=setTimeout(function(){S=0,c()},e.vmouse.resetTimerDuration)}function p(){S&&(clearTimeout(S),S=0)}function m(t,i,n){var a;return(n&&n[t]||!n&&r(i.target,t))&&(a=o(i,t),e(i.target).trigger(a)),a}function f(t){var i=e.data(t.target,D);if(!(H||U&&U===i)){var n=m("v"+t.type,t);n&&(n.isDefaultPrevented()&&t.preventDefault(),n.isPropagationStopped()&&t.stopPropagation(),n.isImmediatePropagationStopped()&&t.stopImmediatePropagation())}}function g(t){var i,n,o=a(t).touches;if(o&&1===o.length&&(i=t.target,n=s(i),n.hasVirtualBinding)){U=L++,e.data(i,D,U),p(),h(),I=!1;var r=a(t).touches[0];A=r.pageX,N=r.pageY,m("vmouseover",t,n),m("vmousedown",t,n)}}function b(e){M||(I||m("vmousecancel",e,s(e.target)),I=!0,u())}function v(t){if(!M){var i=a(t).touches[0],n=I,o=e.vmouse.moveDistanceThreshold,r=s(t.target);I=I||Math.abs(i.pageX-A)>o||Math.abs(i.pageY-N)>o,I&&!n&&m("vmousecancel",t,r),m("vmousemove",t,r),u()}}function _(e){if(!M){d();var t,i=s(e.target);if(m("vmouseup",e,i),!I){var n=m("vclick",e,i);n&&n.isDefaultPrevented()&&(t=a(e).changedTouches[0],O.push({touchID:U,x:t.clientX,y:t.clientY}),H=!0)}m("vmouseout",e,i),I=!1,u()}}function C(t){var i,n=e.data(t,T);if(n)for(i in n)if(n[i])return!0;return!1}function x(){}function y(t){var i=t.substr(1);return{setup:function(){C(this)||e.data(this,T,{});var n=e.data(this,T);n[t]=!0,j[t]=(j[t]||0)+1,1===j[t]&&B.bind(i,f),e(this).bind(i,x),F&&(j.touchstart=(j.touchstart||0)+1,1===j.touchstart&&B.bind("touchstart",g).bind("touchend",_).bind("touchmove",v).bind("scroll",b))},teardown:function(){--j[t],j[t]||B.unbind(i,f),F&&(--j.touchstart,j.touchstart||B.unbind("touchstart",g).unbind("touchmove",v).unbind("touchend",_).unbind("scroll",b));var n=e(this),a=e.data(this,T);a&&(a[t]=!1),n.unbind(i,x),C(this)||n.removeData(T)}}}var w,T="virtualMouseBindings",D="virtualTouchID",P="vmouseover vmousedown vmousemove vmouseup vclick vmouseout vmousecancel".split(" "),k="clientX clientY pageX pageY screenX screenY".split(" "),E=e.event.mouseHooks?e.event.mouseHooks.props:[],q=e.event.props.concat(E),j={},S=0,A=0,N=0,I=!1,O=[],H=!1,M=!1,F="addEventListener"in i,B=e(i),L=1,U=0;e.vmouse={moveDistanceThreshold:10,clickDistanceThreshold:10,resetTimerDuration:1500};for(var z=0;P.length>z;z++)e.event.special[P[z]]=y(P[z]);F&&i.addEventListener("click",function(t){var i,a,o,s,r,l,d=O.length,c=t.target;if(d)for(i=t.clientX,a=t.clientY,w=e.vmouse.clickDistanceThreshold,o=c;o;){for(s=0;d>s;s++)if(r=O[s],l=0,o===c&&w>Math.abs(r.x-i)&&w>Math.abs(r.y-a)||e.data(o,D)===r.touchID)return t.preventDefault(),t.stopPropagation(),n;o=o.parentNode}},!0)}(e,t,i),function(e,t,n){function a(t,i,n){var a=n.type;n.type=i,e.event.dispatch.call(t,n),n.type=a}var o=e(i);e.each("touchstart touchmove touchend tap taphold swipe swipeleft swiperight scrollstart scrollstop".split(" "),function(t,i){e.fn[i]=function(e){return e?this.bind(i,e):this.trigger(i)},e.attrFn&&(e.attrFn[i]=!0)});var s=e.mobile.support.touch,r="touchmove scroll",l=s?"touchstart":"mousedown",d=s?"touchend":"mouseup",c=s?"touchmove":"mousemove";e.event.special.scrollstart={enabled:!0,setup:function(){function t(e,t){i=t,a(o,i?"scrollstart":"scrollstop",e)}var i,n,o=this,s=e(o);s.bind(r,function(a){e.event.special.scrollstart.enabled&&(i||t(a,!0),clearTimeout(n),n=setTimeout(function(){t(a,!1)},50))})}},e.event.special.tap={tapholdThreshold:750,setup:function(){var t=this,i=e(t);i.bind("vmousedown",function(n){function s(){clearTimeout(d)}function r(){s(),i.unbind("vclick",l).unbind("vmouseup",s),o.unbind("vmousecancel",r)}function l(e){r(),c===e.target&&a(t,"tap",e)}if(n.which&&1!==n.which)return!1;var d,c=n.target;n.originalEvent,i.bind("vmouseup",s).bind("vclick",l),o.bind("vmousecancel",r),d=setTimeout(function(){a(t,"taphold",e.Event("taphold",{target:c})) -},e.event.special.tap.tapholdThreshold)})}},e.event.special.swipe={scrollSupressionThreshold:30,durationThreshold:1e3,horizontalDistanceThreshold:30,verticalDistanceThreshold:75,start:function(t){var i=t.originalEvent.touches?t.originalEvent.touches[0]:t;return{time:(new Date).getTime(),coords:[i.pageX,i.pageY],origin:e(t.target)}},stop:function(e){var t=e.originalEvent.touches?e.originalEvent.touches[0]:e;return{time:(new Date).getTime(),coords:[t.pageX,t.pageY]}},handleSwipe:function(t,i){i.time-t.timee.event.special.swipe.horizontalDistanceThreshold&&Math.abs(t.coords[1]-i.coords[1])i.coords[0]?"swipeleft":"swiperight")},setup:function(){var t=this,i=e(t);i.bind(l,function(t){function a(t){s&&(o=e.event.special.swipe.stop(t),Math.abs(s.coords[0]-o.coords[0])>e.event.special.swipe.scrollSupressionThreshold&&t.preventDefault())}var o,s=e.event.special.swipe.start(t);i.bind(c,a).one(d,function(){i.unbind(c,a),s&&o&&e.event.special.swipe.handleSwipe(s,o),s=o=n})})}},e.each({scrollstop:"scrollstart",taphold:"tap",swipeleft:"swipe",swiperight:"swipe"},function(t,i){e.event.special[t]={setup:function(){e(this).bind(i,e.noop)}}})}(e,this),function(e){e.event.special.throttledresize={setup:function(){e(this).bind("resize",o)},teardown:function(){e(this).unbind("resize",o)}};var t,i,n,a=250,o=function(){i=(new Date).getTime(),n=i-s,n>=a?(s=i,e(this).trigger("throttledresize")):(t&&clearTimeout(t),t=setTimeout(o,a-n))},s=0}(e),function(e,t){function a(){var e=o();e!==s&&(s=e,d.trigger(c))}var o,s,r,l,d=e(t),c="orientationchange",h={0:!0,180:!0};if(e.support.orientation){var u=t.innerWidth||d.width(),p=t.innerHeight||d.height(),m=50;r=u>p&&u-p>m,l=h[t.orientation],(r&&l||!r&&!l)&&(h={"-90":!0,90:!0})}e.event.special.orientationchange=e.extend({},e.event.special.orientationchange,{setup:function(){return e.support.orientation&&!e.event.special.orientationchange.disabled?!1:(s=o(),d.bind("throttledresize",a),n)},teardown:function(){return e.support.orientation&&!e.event.special.orientationchange.disabled?!1:(d.unbind("throttledresize",a),n)},add:function(e){var t=e.handler;e.handler=function(e){return e.orientation=o(),t.apply(this,arguments)}}}),e.event.special.orientationchange.orientation=o=function(){var n=!0,a=i.documentElement;return n=e.support.orientation?h[t.orientation]:a&&1.1>a.clientWidth/a.clientHeight,n?"portrait":"landscape"},e.fn[c]=function(e){return e?this.bind(c,e):this.trigger(c)},e.attrFn&&(e.attrFn[c]=!0)}(e,this),function(e){e.widget("mobile.page",e.mobile.widget,{options:{theme:"c",domCache:!1,keepNativeDefault:":jqmData(role='none'), :jqmData(role='nojs')"},_create:function(){return this._trigger("beforecreate")===!1?!1:(this.element.attr("tabindex","0").addClass("ui-page ui-body-"+this.options.theme),this._on(this.element,{pagebeforehide:"removeContainerBackground",pagebeforeshow:"_handlePageBeforeShow"}),n)},_handlePageBeforeShow:function(){this.setContainerBackground()},removeContainerBackground:function(){e.mobile.pageContainer.removeClass("ui-overlay-"+e.mobile.getInheritedTheme(this.element.parent()))},setContainerBackground:function(t){this.options.theme&&e.mobile.pageContainer.addClass("ui-overlay-"+(t||this.options.theme))},keepNativeSelector:function(){var t=this.options,i=t.keepNative&&e.trim(t.keepNative);return i&&t.keepNative!==t.keepNativeDefault?[t.keepNative,t.keepNativeDefault].join(", "):t.keepNativeDefault}})}(e),function(e,t,i){var n=function(n){return n===i&&(n=!0),function(i,a,o,s){var r=new e.Deferred,l=a?" reverse":"",d=e.mobile.urlHistory.getActive(),c=d.lastScroll||e.mobile.defaultHomeScroll,h=e.mobile.getScreenHeight(),u=e.mobile.maxTransitionWidth!==!1&&e.mobile.window.width()>e.mobile.maxTransitionWidth,p=!e.support.cssTransitions||u||!i||"none"===i||Math.max(e.mobile.window.scrollTop(),c)>e.mobile.getMaxScrollForTransition(),m=" ui-page-pre-in",f=function(){e.mobile.pageContainer.toggleClass("ui-mobile-viewport-transitioning viewport-"+i)},g=function(){e.event.special.scrollstart.enabled=!1,t.scrollTo(0,c),setTimeout(function(){e.event.special.scrollstart.enabled=!0},150)},b=function(){s.removeClass(e.mobile.activePageClass+" out in reverse "+i).height("")},v=function(){n?s.animationComplete(_):_(),s.height(h+e.mobile.window.scrollTop()).addClass(i+" out"+l)},_=function(){s&&n&&b(),C()},C=function(){o.css("z-index",-10),o.addClass(e.mobile.activePageClass+m),e.mobile.focusPage(o),o.height(h+c),g(),o.css("z-index",""),p||o.animationComplete(x),o.removeClass(m).addClass(i+" in"+l),p&&x()},x=function(){n||s&&b(),o.removeClass("out in reverse "+i).height(""),f(),e.mobile.window.scrollTop()!==c&&g(),r.resolve(i,a,o,s,!0)};return f(),s&&!p?v():_(),r.promise()}},a=n(),o=n(!1),s=function(){return 3*e.mobile.getScreenHeight()};e.mobile.defaultTransitionHandler=a,e.mobile.transitionHandlers={"default":e.mobile.defaultTransitionHandler,sequential:a,simultaneous:o},e.mobile.transitionFallbacks={},e.mobile._maybeDegradeTransition=function(t){return t&&!e.support.cssTransform3d&&e.mobile.transitionFallbacks[t]&&(t=e.mobile.transitionFallbacks[t]),t},e.mobile.getMaxScrollForTransition=e.mobile.getMaxScrollForTransition||s}(e,this),function(e,n){function a(t){!f||f.closest("."+e.mobile.activePageClass).length&&!t||f.removeClass(e.mobile.activeBtnClass),f=null}function o(){_=!1,v.length>0&&e.mobile.changePage.apply(null,v.pop())}function s(t,i,n,a){i&&i.data("mobile-page")._trigger("beforehide",null,{nextPage:t}),t.data("mobile-page")._trigger("beforeshow",null,{prevPage:i||e("")}),e.mobile.hidePageLoadingMsg(),n=e.mobile._maybeDegradeTransition(n);var o=e.mobile.transitionHandlers[n||"default"]||e.mobile.defaultTransitionHandler,s=o(n,a,t,i);return s.done(function(){i&&i.data("mobile-page")._trigger("hide",null,{nextPage:t}),t.data("mobile-page")._trigger("show",null,{prevPage:i||e("")})}),s}function r(t,i){i&&t.attr("data-"+e.mobile.ns+"role",i),t.page()}function l(){var t=e.mobile.activePage&&c(e.mobile.activePage);return t||w.hrefNoHash}function d(e){for(;e&&("string"!=typeof e.nodeName||"a"!==e.nodeName.toLowerCase());)e=e.parentNode;return e}function c(t){var i=e(t).closest(".ui-page").jqmData("url"),n=w.hrefNoHash;return i&&p.isPath(i)||(i=n),p.makeUrlAbsolute(i,n)}var h=e.mobile.window,u=(e("html"),e("head")),p=e.extend(e.mobile.path,{getFilePath:function(t){var i="&"+e.mobile.subPageUrlKey;return t&&t.split(i)[0].split(C)[0]},isFirstPageUrl:function(t){var i=p.parseUrl(p.makeUrlAbsolute(t,this.documentBase)),a=i.hrefNoHash===this.documentUrl.hrefNoHash||this.documentBaseDiffers&&i.hrefNoHash===this.documentBase.hrefNoHash,o=e.mobile.firstPage,s=o&&o[0]?o[0].id:n;return a&&(!i.hash||"#"===i.hash||s&&i.hash.replace(/^#/,"")===s)},isPermittedCrossDomainRequest:function(t,i){return e.mobile.allowCrossDomainPages&&"file:"===t.protocol&&-1!==i.search(/^https?:/)}}),m=null,f=null,g=e.Deferred(),b=e.mobile.navigate.history,v=[],_=!1,C="&ui-state=dialog",x=u.children("base"),y=p.documentUrl,w=p.documentBase,T=(p.documentBaseDiffers,e.mobile.getScreenHeight),D=e.support.dynamicBaseTag?{element:x.length?x:e("",{href:w.hrefNoHash}).prependTo(u),set:function(e){e=p.parseUrl(e).hrefNoHash,D.element.attr("href",p.makeUrlAbsolute(e,w))},reset:function(){D.element.attr("href",w.hrefNoSearch)}}:n;e.mobile.getDocumentUrl=p.getDocumentUrl,e.mobile.getDocumentBase=p.getDocumentBase,e.mobile.back=function(){var e=t.navigator;this.phonegapNavigationEnabled&&e&&e.app&&e.app.backHistory?e.app.backHistory():t.history.back()},e.mobile.focusPage=function(e){var t=e.find("[autofocus]"),i=e.find(".ui-title:eq(0)");return t.length?(t.focus(),n):(i.length?i.focus():e.focus(),n)};var P,k,E=!0;P=function(){if(E){var t=e.mobile.urlHistory.getActive();if(t){var i=h.scrollTop();t.lastScroll=e.mobile.minScrollBack>i?e.mobile.defaultHomeScroll:i}}},k=function(){setTimeout(P,100)},h.bind(e.support.pushState?"popstate":"hashchange",function(){E=!1}),h.one(e.support.pushState?"popstate":"hashchange",function(){E=!0}),h.one("pagecontainercreate",function(){e.mobile.pageContainer.bind("pagechange",function(){E=!0,h.unbind("scrollstop",k),h.bind("scrollstop",k)})}),h.bind("scrollstop",k),e.mobile._maybeDegradeTransition=e.mobile._maybeDegradeTransition||function(e){return e},e.mobile.resetActivePageHeight=function(t){var i=e("."+e.mobile.activePageClass),n=parseFloat(i.css("padding-top")),a=parseFloat(i.css("padding-bottom")),o=parseFloat(i.css("border-top-width")),s=parseFloat(i.css("border-bottom-width"));t="number"==typeof t?t:T(),i.css("min-height",t-n-a-o-s)},e.fn.animationComplete=function(t){return e.support.cssTransitions?e(this).one("webkitAnimationEnd animationend",t):(setTimeout(t,0),e(this))},e.mobile.path=p,e.mobile.base=D,e.mobile.urlHistory=b,e.mobile.dialogHashKey=C,e.mobile.allowCrossDomainPages=!1,e.mobile._bindPageRemove=function(){var t=e(this);!t.data("mobile-page").options.domCache&&t.is(":jqmData(external-page='true')")&&t.bind("pagehide.remove",function(){var t=e(this),i=new e.Event("pageremove");t.trigger(i),i.isDefaultPrevented()||t.removeWithDependents()})},e.mobile.loadPage=function(t,i){var a=e.Deferred(),o=e.extend({},e.mobile.loadPage.defaults,i),s=null,d=null,c=p.makeUrlAbsolute(t,l());o.data&&"get"===o.type&&(c=p.addSearchParams(c,o.data),o.data=n),o.data&&"post"===o.type&&(o.reloadPage=!0);var h=p.getFilePath(c),u=p.convertUrlToDataUrl(c);if(o.pageContainer=o.pageContainer||e.mobile.pageContainer,s=o.pageContainer.children("[data-"+e.mobile.ns+"url='"+u+"']"),0===s.length&&u&&!p.isPath(u)&&(s=o.pageContainer.children("#"+u).attr("data-"+e.mobile.ns+"url",u).jqmData("url",u)),0===s.length)if(e.mobile.firstPage&&p.isFirstPageUrl(h))e.mobile.firstPage.parent().length&&(s=e(e.mobile.firstPage));else if(p.isEmbeddedPage(h))return a.reject(c,i),a.promise();if(s.length){if(!o.reloadPage)return r(s,o.role),a.resolve(c,i,s),D&&!i.prefetch&&D.set(t),a.promise();d=s}var m=o.pageContainer,f=new e.Event("pagebeforeload"),g={url:t,absUrl:c,dataUrl:u,deferred:a,options:o};if(m.trigger(f,g),f.isDefaultPrevented())return a.promise();if(o.showLoadMsg)var b=setTimeout(function(){e.mobile.showPageLoadingMsg()},o.loadMsgDelay),v=function(){clearTimeout(b),e.mobile.hidePageLoadingMsg()};return D&&i.prefetch===n&&D.reset(),e.mobile.allowCrossDomainPages||p.isSameDomain(y,c)?e.ajax({url:h,type:o.type,data:o.data,contentType:o.contentType,dataType:"html",success:function(l,m,f){var b=e(""),_=l.match(/]*>([^<]*)/)&&RegExp.$1,C=RegExp("(<[^>]+\\bdata-"+e.mobile.ns+"role=[\"']?page[\"']?[^>]*>)"),x=RegExp("\\bdata-"+e.mobile.ns+"url=[\"']?([^\"'>]*)[\"']?");if(C.test(l)&&RegExp.$1&&x.test(RegExp.$1)&&RegExp.$1&&(t=h=p.getFilePath(e(""+RegExp.$1+"").text())),D&&i.prefetch===n&&D.set(h),b.get(0).innerHTML=l,s=b.find(":jqmData(role='page'), :jqmData(role='dialog')").first(),s.length||(s=e(""+(l.split(/<\/?body[^>]*>/gim)[1]||"")+"")),_&&!s.jqmData("title")&&(~_.indexOf("&")&&(_=e(""+_+"").text()),s.jqmData("title",_)),!e.support.dynamicBaseTag){var y=p.get(h);s.find("[src], link[href], a[rel='external'], :jqmData(ajax='false'), a[target]").each(function(){var t=e(this).is("[href]")?"href":e(this).is("[src]")?"src":"action",i=e(this).attr(t);i=i.replace(location.protocol+"//"+location.host+location.pathname,""),/^(\w+:|#|\/)/.test(i)||e(this).attr(t,y+i)})}s.attr("data-"+e.mobile.ns+"url",p.convertUrlToDataUrl(h)).attr("data-"+e.mobile.ns+"external-page",!0).appendTo(o.pageContainer),s.one("pagecreate",e.mobile._bindPageRemove),r(s,o.role),c.indexOf("&"+e.mobile.subPageUrlKey)>-1&&(s=o.pageContainer.children("[data-"+e.mobile.ns+"url='"+u+"']")),o.showLoadMsg&&v(),g.xhr=f,g.textStatus=m,g.page=s,o.pageContainer.trigger("pageload",g),a.resolve(c,i,s,d)},error:function(t,n,s){D&&D.set(p.get()),g.xhr=t,g.textStatus=n,g.errorThrown=s;var r=new e.Event("pageloadfailed");o.pageContainer.trigger(r,g),r.isDefaultPrevented()||(o.showLoadMsg&&(v(),e.mobile.showPageLoadingMsg(e.mobile.pageLoadErrorMessageTheme,e.mobile.pageLoadErrorMessage,!0),setTimeout(e.mobile.hidePageLoadingMsg,1500)),a.reject(c,i))}}):a.reject(c,i),a.promise()},e.mobile.loadPage.defaults={type:"get",data:n,reloadPage:!1,role:n,showLoadMsg:!1,pageContainer:n,loadMsgDelay:50},e.mobile.changePage=function(t,d){if(_)return v.unshift(arguments),n;var c,h=e.extend({},e.mobile.changePage.defaults,d);h.pageContainer=h.pageContainer||e.mobile.pageContainer,h.fromPage=h.fromPage||e.mobile.activePage,c="string"==typeof t;var u=h.pageContainer,m=new e.Event("pagebeforechange"),f={toPage:t,options:h};if(f.absUrl=c?p.makeUrlAbsolute(t,l()):t.data("absUrl"),u.trigger(m,f),!m.isDefaultPrevented()){if(t=f.toPage,c="string"==typeof t,_=!0,c)return h.target=t,e.mobile.loadPage(t,h).done(function(t,i,n,a){_=!1,i.duplicateCachedPage=a,n.data("absUrl",f.absUrl),e.mobile.changePage(n,i)}).fail(function(){a(!0),o(),h.pageContainer.trigger("pagechangefailed",f)}),n;t[0]!==e.mobile.firstPage[0]||h.dataUrl||(h.dataUrl=y.hrefNoHash);var g=h.fromPage,x=h.dataUrl&&p.convertUrlToDataUrl(h.dataUrl)||t.jqmData("url"),w=x,T=(p.getFilePath(x),b.getActive()),D=0===b.activeIndex,P=0,k=i.title,E="dialog"===h.role||"dialog"===t.jqmData("role");if(g&&g[0]===t[0]&&!h.allowSamePageTransition)return _=!1,u.trigger("pagechange",f),h.fromHashChange&&b.direct({url:x}),n;r(t,h.role),h.fromHashChange&&(P="back"===d.direction?-1:1);try{i.activeElement&&"body"!==i.activeElement.nodeName.toLowerCase()?e(i.activeElement).blur():e("input:focus, textarea:focus, select:focus").blur()}catch(q){}var j=!1;E&&T&&(T.url&&T.url.indexOf(C)>-1&&e.mobile.activePage&&!e.mobile.activePage.is(".ui-dialog")&&b.activeIndex>0&&(h.changeHash=!1,j=!0),x=T.url||"",x+=!j&&x.indexOf("#")>-1?C:"#"+C,0===b.activeIndex&&x===b.initialDst&&(x+=C));var S=T?t.jqmData("title")||t.children(":jqmData(role='header')").find(".ui-title").text():k;if(S&&k===i.title&&(k=S),t.jqmData("title")||t.jqmData("title",k),h.transition=h.transition||(P&&!D?T.transition:n)||(E?e.mobile.defaultDialogTransition:e.mobile.defaultPageTransition),!P&&j&&(b.getActive().pageUrl=w),x&&!h.fromHashChange){var A;!p.isPath(x)&&0>x.indexOf("#")&&(x="#"+x),A={transition:h.transition,title:k,pageUrl:w,role:h.role},h.changeHash!==!1&&e.mobile.hashListeningEnabled?e.mobile.navigate(x,A,!0):t[0]!==e.mobile.firstPage[0]&&e.mobile.navigate.history.add(x,A)}i.title=k,e.mobile.activePage=t,h.reverse=h.reverse||0>P,s(t,g,h.transition,h.reverse).done(function(i,n,s,r,l){a(),h.duplicateCachedPage&&h.duplicateCachedPage.remove(),l||e.mobile.focusPage(t),o(),u.trigger("pagechange",f)})}},e.mobile.changePage.defaults={transition:n,reverse:!1,changeHash:!0,fromHashChange:!1,role:n,duplicateCachedPage:n,pageContainer:n,showLoadMsg:!0,dataUrl:n,fromPage:n,allowSamePageTransition:!1},e.mobile.navreadyDeferred=e.Deferred(),e.mobile._registerInternalEvents=function(){var i=function(t,i){var a,o,s,r,l=!0;return!e.mobile.ajaxEnabled||t.is(":jqmData(ajax='false')")||!t.jqmHijackable().length||t.attr("target")?!1:(a=t.attr("action"),r=(t.attr("method")||"get").toLowerCase(),a||(a=c(t),"get"===r&&(a=p.parseUrl(a).hrefNoSearch),a===w.hrefNoHash&&(a=y.hrefNoSearch)),a=p.makeUrlAbsolute(a,c(t)),p.isExternal(a)&&!p.isPermittedCrossDomainRequest(y,a)?!1:(i||(o=t.serializeArray(),m&&m[0].form===t[0]&&(s=m.attr("name"),s&&(e.each(o,function(e,t){return t.name===s?(s="",!1):n}),s&&o.push({name:s,value:m.attr("value")}))),l={url:a,options:{type:r,data:e.param(o),transition:t.jqmData("transition"),reverse:"reverse"===t.jqmData("direction"),reloadPage:!0}}),l))};e.mobile.document.delegate("form","submit",function(t){var n=i(e(this));n&&(e.mobile.changePage(n.url,n.options),t.preventDefault())}),e.mobile.document.bind("vclick",function(t){var n,o,s=t.target,r=!1;if(!(t.which>1)&&e.mobile.linkBindingEnabled){if(m=e(s),e.data(s,"mobile-button")){if(!i(e(s).closest("form"),!0))return;s.parentNode&&(s=s.parentNode)}else{if(s=d(s),!s||"#"===p.parseUrl(s.getAttribute("href")||"#").hash)return;if(!e(s).jqmHijackable().length)return}~s.className.indexOf("ui-link-inherit")?s.parentNode&&(o=e.data(s.parentNode,"buttonElements")):o=e.data(s,"buttonElements"),o?s=o.outer:r=!0,n=e(s),r&&(n=n.closest(".ui-btn")),n.length>0&&!n.hasClass("ui-disabled")&&(a(!0),f=n,f.addClass(e.mobile.activeBtnClass))}}),e.mobile.document.bind("click",function(i){if(e.mobile.linkBindingEnabled&&!i.isDefaultPrevented()){var o,s=d(i.target),r=e(s);if(s&&!(i.which>1)&&r.jqmHijackable().length){if(o=function(){t.setTimeout(function(){a(!0)},200)},r.is(":jqmData(rel='back')"))return e.mobile.back(),!1;var l=c(r),h=p.makeUrlAbsolute(r.attr("href")||"#",l);if(!e.mobile.ajaxEnabled&&!p.isEmbeddedPage(h))return o(),n;if(-1!==h.search("#")){if(h=h.replace(/[^#]*#/,""),!h)return i.preventDefault(),n;h=p.isPath(h)?p.makeUrlAbsolute(h,l):p.makeUrlAbsolute("#"+h,y.hrefNoHash)}var u=r.is("[rel='external']")||r.is(":jqmData(ajax='false')")||r.is("[target]"),m=u||p.isExternal(h)&&!p.isPermittedCrossDomainRequest(y,h);if(m)return o(),n;var f=r.jqmData("transition"),g="reverse"===r.jqmData("direction")||r.jqmData("back"),b=r.attr("data-"+e.mobile.ns+"rel")||n;e.mobile.changePage(h,{transition:f,reverse:g,role:b,link:r}),i.preventDefault()}}}),e.mobile.document.delegate(".ui-page","pageshow.prefetch",function(){var t=[];e(this).find("a:jqmData(prefetch)").each(function(){var i=e(this),n=i.attr("href");n&&-1===e.inArray(n,t)&&(t.push(n),e.mobile.loadPage(n,{role:i.attr("data-"+e.mobile.ns+"rel"),prefetch:!0}))})}),e.mobile._handleHashChange=function(i,a){var o=p.stripHash(i),s=0===e.mobile.urlHistory.stack.length?"none":n,r={changeHash:!1,fromHashChange:!0,reverse:"back"===a.direction};if(e.extend(r,a,{transition:(b.getLast()||{}).transition||s}),b.activeIndex>0&&o.indexOf(C)>-1&&b.initialDst!==o){if(e.mobile.activePage&&!e.mobile.activePage.is(".ui-dialog"))return"back"===a.direction?e.mobile.back():t.history.forward(),n;o=a.pageUrl;var l=e.mobile.urlHistory.getActive();e.extend(r,{role:l.role,transition:l.transition,reverse:"back"===a.direction})}o?(o=p.isPath(o)?o:p.makeUrlAbsolute("#"+o,w),o===p.makeUrlAbsolute("#"+b.initialDst,w)&&b.stack.length&&b.stack[0].url!==b.initialDst.replace(C,"")&&(o=e.mobile.firstPage),e.mobile.changePage(o,r)):e.mobile.changePage(e.mobile.firstPage,r)},h.bind("navigate",function(t,i){var n;t.originalEvent&&t.originalEvent.isDefaultPrevented()||(n=e.event.special.navigate.originalEventName.indexOf("hashchange")>-1?i.state.hash:i.state.url,n||(n=e.mobile.path.parseLocation().hash),n&&"#"!==n&&0!==n.indexOf("#"+e.mobile.path.uiStateKey)||(n=location.href),e.mobile._handleHashChange(n,i.state))}),e.mobile.document.bind("pageshow",e.mobile.resetActivePageHeight),e.mobile.window.bind("throttledresize",e.mobile.resetActivePageHeight)},e(function(){g.resolve()}),e.when(g,e.mobile.navreadyDeferred).done(function(){e.mobile._registerInternalEvents()})}(e),function(e){e.mobile.transitionFallbacks.flip="fade"}(e,this),function(e){e.mobile.transitionFallbacks.flow="fade"}(e,this),function(e){e.mobile.transitionFallbacks.pop="fade"}(e,this),function(e){e.mobile.transitionHandlers.slide=e.mobile.transitionHandlers.simultaneous,e.mobile.transitionFallbacks.slide="fade"}(e,this),function(e){e.mobile.transitionFallbacks.slidedown="fade"}(e,this),function(e){e.mobile.transitionFallbacks.slidefade="fade"}(e,this),function(e){e.mobile.transitionFallbacks.slideup="fade"}(e,this),function(e){e.mobile.transitionFallbacks.turn="fade"}(e,this),function(e){e.mobile.page.prototype.options.degradeInputs={color:!1,date:!1,datetime:!1,"datetime-local":!1,email:!1,month:!1,number:!1,range:"number",search:"text",tel:!1,time:!1,url:!1,week:!1},e.mobile.document.bind("pagecreate create",function(t){var i,n=e.mobile.closestPageData(e(t.target));n&&(i=n.options,e(t.target).find("input").not(n.keepNativeSelector()).each(function(){var t=e(this),n=this.getAttribute("type"),a=i.degradeInputs[n]||"text";if(i.degradeInputs[n]){var o=e("").html(t.clone()).html(),s=o.indexOf(" type=")>-1,r=s?/\s+type=["']?\w+['"]?/:/\/?>/,l=' type="'+a+'" data-'+e.mobile.ns+'type="'+n+'"'+(s?"":">");t.replaceWith(o.replace(r,l))}}))})}(e),function(e){e.widget("mobile.dialog",e.mobile.widget,{options:{closeBtn:"left",closeBtnText:"Close",overlayTheme:"a",corners:!0,initSelector:":jqmData(role='dialog')"},_handlePageBeforeShow:function(){this._isCloseable=!0,this.options.overlayTheme&&this.element.page("removeContainerBackground").page("setContainerBackground",this.options.overlayTheme)},_create:function(){var t=this.element,i=this.options.corners?" ui-corner-all":"",n=e("",{role:"dialog","class":"ui-dialog-contain ui-overlay-shadow"+i});t.addClass("ui-dialog ui-overlay-"+this.options.overlayTheme),t.wrapInner(n),t.bind("vclick submit",function(t){var i,n=e(t.target).closest("vclick"===t.type?"a":"form");n.length&&!n.jqmData("transition")&&(i=e.mobile.urlHistory.getActive()||{},n.attr("data-"+e.mobile.ns+"transition",i.transition||e.mobile.defaultDialogTransition).attr("data-"+e.mobile.ns+"direction","reverse"))}),this._on(t,{pagebeforeshow:"_handlePageBeforeShow"}),e.extend(this,{_createComplete:!1}),this._setCloseBtn(this.options.closeBtn)},_setCloseBtn:function(t){var i,n,a=this;this._headerCloseButton&&(this._headerCloseButton.remove(),this._headerCloseButton=null),"none"!==t&&(n="left"===t?"left":"right",i=e(""+this.options.closeBtnText+""),this.element.children().find(":jqmData(role='header')").first().prepend(i),this._createComplete&&e.fn.buttonMarkup&&i.buttonMarkup(),this._createComplete=!0,i.bind("click",function(){a.close()}),this._headerCloseButton=i)},_setOption:function(e,t){"closeBtn"===e&&this._setCloseBtn(t),this._super(e,t)},close:function(){var t,i,n=e.mobile.navigate.history;this._isCloseable&&(this._isCloseable=!1,e.mobile.hashListeningEnabled&&n.activeIndex>0?e.mobile.back():(t=Math.max(0,n.activeIndex-1),i=n.stack[t].pageUrl||n.stack[t].url,n.previousIndex=n.activeIndex,n.activeIndex=t,e.mobile.path.isPath(i)||(i=e.mobile.path.makeUrlAbsolute("#"+i)),e.mobile.changePage(i,{direction:"back",changeHash:!1,fromHashChange:!0})))}}),e.mobile.document.delegate(e.mobile.dialog.prototype.options.initSelector,"pagecreate",function(){e.mobile.dialog.prototype.enhance(this)})}(e,this),function(e){e.mobile.page.prototype.options.backBtnText="Back",e.mobile.page.prototype.options.addBackBtn=!1,e.mobile.page.prototype.options.backBtnTheme=null,e.mobile.page.prototype.options.headerTheme="a",e.mobile.page.prototype.options.footerTheme="a",e.mobile.page.prototype.options.contentTheme=null,e.mobile.document.bind("pagecreate",function(t){var i=e(t.target),n=i.data("mobile-page").options,a=i.jqmData("role"),o=n.theme;e(":jqmData(role='header'), :jqmData(role='footer'), :jqmData(role='content')",i).jqmEnhanceable().each(function(){var t,s,r,l,d=e(this),c=d.jqmData("role"),h=d.jqmData("theme"),u=h||n.contentTheme||"dialog"===a&&o;if(d.addClass("ui-"+c),"header"===c||"footer"===c){var p=h||("header"===c?n.headerTheme:n.footerTheme)||o;d.addClass("ui-bar-"+p).attr("role","header"===c?"banner":"contentinfo"),"header"===c&&(t=d.children("a, button"),s=t.hasClass("ui-btn-left"),r=t.hasClass("ui-btn-right"),s=s||t.eq(0).not(".ui-btn-right").addClass("ui-btn-left").length,r=r||t.eq(1).addClass("ui-btn-right").length),n.addBackBtn&&"header"===c&&e(".ui-page").length>1&&i.jqmData("url")!==e.mobile.path.stripHash(location.hash)&&!s&&(l=e(""+n.backBtnText+"").attr("data-"+e.mobile.ns+"theme",n.backBtnTheme||p).prependTo(d)),d.children("h1, h2, h3, h4, h5, h6").addClass("ui-title").attr({role:"heading","aria-level":"1"})}else"content"===c&&(u&&d.addClass("ui-body-"+u),d.attr("role","main"))})})}(e),function(e,t){function n(e){for(var t;e&&(t="string"==typeof e.className&&e.className+" ",!(t&&t.indexOf("ui-btn ")>-1&&0>t.indexOf("ui-disabled ")));)e=e.parentNode;return e}function a(n,a,o,s,r){var l=e.data(n[0],"buttonElements");n.removeClass(a).addClass(o),l&&(l.bcls=e(i.createElement("div")).addClass(l.bcls+" "+o).removeClass(a).attr("class"),s!==t&&(l.hover=s),l.state=r)}var o=function(e,i){var n=e.getAttribute(i);return"true"===n?!0:"false"===n?!1:null===n?t:n};e.fn.buttonMarkup=function(n){var a,r=this,l="data-"+e.mobile.ns;n=n&&"object"===e.type(n)?n:{};for(var d=0;r.length>d;d++){var c,h,u,p,m,f,g=r.eq(d),b=g[0],v=e.extend({},e.fn.buttonMarkup.defaults,{icon:n.icon!==t?n.icon:o(b,l+"icon"),iconpos:n.iconpos!==t?n.iconpos:o(b,l+"iconpos"),theme:n.theme!==t?n.theme:o(b,l+"theme")||e.mobile.getInheritedTheme(g,"c"),inline:n.inline!==t?n.inline:o(b,l+"inline"),shadow:n.shadow!==t?n.shadow:o(b,l+"shadow"),corners:n.corners!==t?n.corners:o(b,l+"corners"),iconshadow:n.iconshadow!==t?n.iconshadow:o(b,l+"iconshadow"),mini:n.mini!==t?n.mini:o(b,l+"mini")},n),_="ui-btn-inner",C="ui-btn-text",x=!1,y="up";for(a in v)v[a]===t||null===v[a]?g.removeAttr(l+a):b.setAttribute(l+a,v[a]);for("popup"===o(b,l+"rel")&&g.attr("href")&&(b.setAttribute("aria-haspopup",!0),b.setAttribute("aria-owns",g.attr("href"))),f=e.data("INPUT"===b.tagName||"BUTTON"===b.tagName?b.parentNode:b,"buttonElements"),f?(b=f.outer,g=e(b),u=f.inner,p=f.text,e(f.icon).remove(),f.icon=null,x=f.hover,y=f.state):(u=i.createElement(v.wrapperEls),p=i.createElement(v.wrapperEls)),m=v.icon?i.createElement("span"):null,s&&!f&&s(),v.theme||(v.theme=e.mobile.getInheritedTheme(g,"c")),c="ui-btn ",c+=x?"ui-btn-hover-"+v.theme:"",c+=y?" ui-btn-"+y+"-"+v.theme:"",c+=v.shadow?" ui-shadow":"",c+=v.corners?" ui-btn-corner-all":"",v.mini!==t&&(c+=v.mini===!0?" ui-mini":" ui-fullsize"),v.inline!==t&&(c+=v.inline===!0?" ui-btn-inline":" ui-btn-block"),v.icon&&(v.icon="ui-icon-"+v.icon,v.iconpos=v.iconpos||"left",h="ui-icon "+v.icon,v.iconshadow&&(h+=" ui-icon-shadow")),v.iconpos&&(c+=" ui-btn-icon-"+v.iconpos,"notext"!==v.iconpos||g.attr("title")||g.attr("title",g.getEncodedText())),f&&g.removeClass(f.bcls||""),g.removeClass("ui-link").addClass(c),u.className=_,p.className=C,f||u.appendChild(p),m&&(m.className=h,f&&f.icon||(m.innerHTML=" ",u.appendChild(m)));b.firstChild&&!f;)p.appendChild(b.firstChild);f||b.appendChild(u),f={hover:x,state:y,bcls:c,outer:b,inner:u,text:p,icon:m},e.data(b,"buttonElements",f),e.data(u,"buttonElements",f),e.data(p,"buttonElements",f),m&&e.data(m,"buttonElements",f)}return this},e.fn.buttonMarkup.defaults={corners:!0,shadow:!0,iconshadow:!0,wrapperEls:"span"};var s=function(){var i,o,r=e.mobile.buttonMarkup.hoverDelay;e.mobile.document.bind({"vmousedown vmousecancel vmouseup vmouseover vmouseout focus blur scrollstart":function(s){var l,d=e(n(s.target)),c=s.originalEvent&&/^touch/.test(s.originalEvent.type),h=s.type;d.length&&(l=d.attr("data-"+e.mobile.ns+"theme"),"vmousedown"===h?c?i=setTimeout(function(){a(d,"ui-btn-up-"+l,"ui-btn-down-"+l,t,"down")},r):a(d,"ui-btn-up-"+l,"ui-btn-down-"+l,t,"down"):"vmousecancel"===h||"vmouseup"===h?a(d,"ui-btn-down-"+l,"ui-btn-up-"+l,t,"up"):"vmouseover"===h||"focus"===h?c?o=setTimeout(function(){a(d,"ui-btn-up-"+l,"ui-btn-hover-"+l,!0,"")},r):a(d,"ui-btn-up-"+l,"ui-btn-hover-"+l,!0,""):("vmouseout"===h||"blur"===h||"scrollstart"===h)&&(a(d,"ui-btn-hover-"+l+" ui-btn-down-"+l,"ui-btn-up-"+l,!1,"up"),i&&clearTimeout(i),o&&clearTimeout(o)))},"focusin focus":function(t){e(n(t.target)).addClass(e.mobile.focusClass)},"focusout blur":function(t){e(n(t.target)).removeClass(e.mobile.focusClass)}}),s=null};e.mobile.document.bind("pagecreate create",function(t){e(":jqmData(role='button'), .ui-bar > a, .ui-header > a, .ui-footer > a, .ui-bar > :jqmData(role='controlgroup') > a",t.target).jqmEnhanceable().not("button, input, .ui-btn, :jqmData(role='none'), :jqmData(role='nojs')").buttonMarkup()})}(e),function(e,t){e.widget("mobile.collapsible",e.mobile.widget,{options:{expandCueText:" click to expand contents",collapseCueText:" click to collapse contents",collapsed:!0,heading:"h1,h2,h3,h4,h5,h6,legend",collapsedIcon:"plus",expandedIcon:"minus",iconpos:"left",theme:null,contentTheme:null,inset:!0,corners:!0,mini:!1,initSelector:":jqmData(role='collapsible')"},_create:function(){var i=this.element,n=this.options,a=i.addClass("ui-collapsible"),o=i.children(n.heading).first(),s=a.wrapInner("").children(".ui-collapsible-content"),r=i.closest(":jqmData(role='collapsible-set')").addClass("ui-collapsible-set"),l="";o.is("legend")&&(o=e(""+o.html()+"").insertBefore(o),o.next().remove()),r.length?(n.theme||(n.theme=r.jqmData("theme")||e.mobile.getInheritedTheme(r,"c")),n.contentTheme||(n.contentTheme=r.jqmData("content-theme")),n.collapsedIcon=i.jqmData("collapsed-icon")||r.jqmData("collapsed-icon")||n.collapsedIcon,n.expandedIcon=i.jqmData("expanded-icon")||r.jqmData("expanded-icon")||n.expandedIcon,n.iconpos=i.jqmData("iconpos")||r.jqmData("iconpos")||n.iconpos,n.inset=r.jqmData("inset")!==t?r.jqmData("inset"):!0,n.corners=!1,n.mini||(n.mini=r.jqmData("mini"))):n.theme||(n.theme=e.mobile.getInheritedTheme(i,"c")),n.inset&&(l+=" ui-collapsible-inset",n.corners&&(l+=" ui-corner-all")),n.contentTheme&&(l+=" ui-collapsible-themed-content",s.addClass("ui-body-"+n.contentTheme)),""!==l&&a.addClass(l),o.insertBefore(s).addClass("ui-collapsible-heading").append("").wrapInner("").find("a").first().buttonMarkup({shadow:!1,corners:!1,iconpos:n.iconpos,icon:n.collapsedIcon,mini:n.mini,theme:n.theme}),a.bind("expand collapse",function(t){if(!t.isDefaultPrevented()){var i=e(this),a="collapse"===t.type;t.preventDefault(),o.toggleClass("ui-collapsible-heading-collapsed",a).find(".ui-collapsible-heading-status").text(a?n.expandCueText:n.collapseCueText).end().find(".ui-icon").toggleClass("ui-icon-"+n.expandedIcon,!a).toggleClass("ui-icon-"+n.collapsedIcon,a||n.expandedIcon===n.collapsedIcon).end().find("a").first().removeClass(e.mobile.activeBtnClass),i.toggleClass("ui-collapsible-collapsed",a),s.toggleClass("ui-collapsible-content-collapsed",a).attr("aria-hidden",a),s.trigger("updatelayout")}}).trigger(n.collapsed?"collapse":"expand"),o.bind("tap",function(){o.find("a").first().addClass(e.mobile.activeBtnClass)}).bind("click",function(e){var t=o.is(".ui-collapsible-heading-collapsed")?"expand":"collapse";a.trigger(t),e.preventDefault(),e.stopPropagation()})}}),e.mobile.document.bind("pagecreate create",function(t){e.mobile.collapsible.prototype.enhanceWithin(t.target)})}(e),function(e){e.mobile.behaviors.addFirstLastClasses={_getVisibles:function(e,t){var i;return t?i=e.not(".ui-screen-hidden"):(i=e.filter(":visible"),0===i.length&&(i=e.not(".ui-screen-hidden"))),i},_addFirstLastClasses:function(e,t,i){e.removeClass("ui-first-child ui-last-child"),t.eq(0).addClass("ui-first-child").end().last().addClass("ui-last-child"),i||this.element.trigger("updatelayout")}}}(e),function(e,t){e.widget("mobile.collapsibleset",e.mobile.widget,e.extend({options:{initSelector:":jqmData(role='collapsible-set')"},_create:function(){var i=this.element.addClass("ui-collapsible-set"),n=this.options;n.theme||(n.theme=e.mobile.getInheritedTheme(i,"c")),n.contentTheme||(n.contentTheme=i.jqmData("content-theme")),n.corners||(n.corners=i.jqmData("corners")),i.jqmData("inset")!==t&&(n.inset=i.jqmData("inset")),n.inset=n.inset!==t?n.inset:!0,n.corners=n.corners!==t?n.corners:!0,n.corners&&n.inset&&i.addClass("ui-corner-all"),i.jqmData("collapsiblebound")||i.jqmData("collapsiblebound",!0).bind("expand",function(t){var i=e(t.target).closest(".ui-collapsible");i.parent().is(":jqmData(role='collapsible-set')")&&i.siblings(".ui-collapsible").trigger("collapse")})},_init:function(){var e=this.element,t=e.children(":jqmData(role='collapsible')"),i=t.filter(":jqmData(collapsed='false')"); -this._refresh("true"),i.trigger("expand")},_refresh:function(t){var i=this.element.children(":jqmData(role='collapsible')");e.mobile.collapsible.prototype.enhance(i.not(".ui-collapsible")),this._addFirstLastClasses(i,this._getVisibles(i,t),t)},refresh:function(){this._refresh(!1)}},e.mobile.behaviors.addFirstLastClasses)),e.mobile.document.bind("pagecreate create",function(t){e.mobile.collapsibleset.prototype.enhanceWithin(t.target)})}(e),function(e){e.fn.fieldcontain=function(){return this.addClass("ui-field-contain ui-body ui-br").contents().filter(function(){return 3===this.nodeType&&!/\S/.test(this.nodeValue)}).remove()},e(i).bind("pagecreate create",function(t){e(":jqmData(role='fieldcontain')",t.target).jqmEnhanceable().fieldcontain()})}(e),function(e){e.fn.grid=function(t){return this.each(function(){var i,n=e(this),a=e.extend({grid:null},t),o=n.children(),s={solo:1,a:2,b:3,c:4,d:5},r=a.grid;if(!r)if(5>=o.length)for(var l in s)s[l]===o.length&&(r=l);else r="a",n.addClass("ui-grid-duo");i=s[r],n.addClass("ui-grid-"+r),o.filter(":nth-child("+i+"n+1)").addClass("ui-block-a"),i>1&&o.filter(":nth-child("+i+"n+2)").addClass("ui-block-b"),i>2&&o.filter(":nth-child("+i+"n+3)").addClass("ui-block-c"),i>3&&o.filter(":nth-child("+i+"n+4)").addClass("ui-block-d"),i>4&&o.filter(":nth-child("+i+"n+5)").addClass("ui-block-e")})}}(e),function(e,t){e.widget("mobile.navbar",e.mobile.widget,{options:{iconpos:"top",grid:null,initSelector:":jqmData(role='navbar')"},_create:function(){var n=this.element,a=n.find("a"),o=a.filter(":jqmData(icon)").length?this.options.iconpos:t;n.addClass("ui-navbar ui-mini").attr("role","navigation").find("ul").jqmEnhanceable().grid({grid:this.options.grid}),a.buttonMarkup({corners:!1,shadow:!1,inline:!0,iconpos:o}),n.delegate("a","vclick",function(t){var n=e(t.target).is("a")?e(this):e(this).parent("a");if(!n.is(".ui-disabled, .ui-btn-active")){a.removeClass(e.mobile.activeBtnClass),e(this).addClass(e.mobile.activeBtnClass);var o=e(this);e(i).one("pagehide",function(){o.removeClass(e.mobile.activeBtnClass)})}}),n.closest(".ui-page").bind("pagebeforeshow",function(){a.filter(".ui-state-persist").addClass(e.mobile.activeBtnClass)})}}),e.mobile.document.bind("pagecreate create",function(t){e.mobile.navbar.prototype.enhanceWithin(t.target)})}(e),function(e){var t={};e.widget("mobile.listview",e.mobile.widget,e.extend({options:{theme:null,countTheme:"c",headerTheme:"b",dividerTheme:"b",icon:"arrow-r",splitIcon:"arrow-r",splitTheme:"b",corners:!0,shadow:!0,inset:!1,initSelector:":jqmData(role='listview')"},_create:function(){var e=this,t="";t+=e.options.inset?" ui-listview-inset":"",e.options.inset&&(t+=e.options.corners?" ui-corner-all":"",t+=e.options.shadow?" ui-shadow":""),e.element.addClass(function(e,i){return i+" ui-listview"+t}),e.refresh(!0)},_findFirstElementByTagName:function(e,t,i,n){var a={};for(a[i]=a[n]=!0;e;){if(a[e.nodeName])return e;e=e[t]}return null},_getChildrenByTagName:function(t,i,n){var a=[],o={};for(o[i]=o[n]=!0,t=t.firstChild;t;)o[t.nodeName]&&a.push(t),t=t.nextSibling;return e(a)},_addThumbClasses:function(t){var i,n,a=t.length;for(i=0;a>i;i++)n=e(this._findFirstElementByTagName(t[i].firstChild,"nextSibling","img","IMG")),n.length&&(n.addClass("ui-li-thumb"),e(this._findFirstElementByTagName(n[0].parentNode,"parentNode","li","LI")).addClass(n.is(".ui-li-icon")?"ui-li-has-icon":"ui-li-has-thumb"))},refresh:function(t){this.parentPage=this.element.closest(".ui-page"),this._createSubPages();var n,a,o,s,r,l,d,c,h,u,p,m,f=this.options,g=this.element,b=g.jqmData("dividertheme")||f.dividerTheme,v=g.jqmData("splittheme"),_=g.jqmData("spliticon"),C=g.jqmData("icon"),x=this._getChildrenByTagName(g[0],"li","LI"),y=!!e.nodeName(g[0],"ol"),w=!e.support.cssPseudoElement,T=g.attr("start"),D={};y&&w&&g.find(".ui-li-dec").remove(),y&&(T||0===T?w?d=parseInt(T,10):(c=parseInt(T,10)-1,g.css("counter-reset","listnumbering "+c)):w&&(d=1)),f.theme||(f.theme=e.mobile.getInheritedTheme(this.element,"c"));for(var P=0,k=x.length;k>P;P++){if(n=x.eq(P),a="ui-li",t||!n.hasClass("ui-li")){o=n.jqmData("theme")||f.theme,s=this._getChildrenByTagName(n[0],"a","A");var E="list-divider"===n.jqmData("role");s.length&&!E?(p=n.jqmData("icon"),n.buttonMarkup({wrapperEls:"div",shadow:!1,corners:!1,iconpos:"right",icon:s.length>1||p===!1?!1:p||C||f.icon,theme:o}),p!==!1&&1===s.length&&n.addClass("ui-li-has-arrow"),s.first().removeClass("ui-link").addClass("ui-link-inherit"),s.length>1&&(a+=" ui-li-has-alt",r=s.last(),l=v||r.jqmData("theme")||f.splitTheme,m=r.jqmData("icon"),r.appendTo(n).attr("title",e.trim(r.getEncodedText())).addClass("ui-li-link-alt").empty().buttonMarkup({shadow:!1,corners:!1,theme:o,icon:!1,iconpos:"notext"}).find(".ui-btn-inner").append(e(i.createElement("span")).buttonMarkup({shadow:!0,corners:!0,theme:l,iconpos:"notext",icon:m||p||_||f.splitIcon})))):E?(a+=" ui-li-divider ui-bar-"+(n.jqmData("theme")||b),n.attr("role","heading"),y&&(T||0===T?w?d=parseInt(T,10):(h=parseInt(T,10)-1,n.css("counter-reset","listnumbering "+h)):w&&(d=1))):a+=" ui-li-static ui-btn-up-"+o}y&&w&&0>a.indexOf("ui-li-divider")&&(u=a.indexOf("ui-li-static")>0?n:n.find(".ui-link-inherit"),u.addClass("ui-li-jsnumbering").prepend(""+d++ +". ")),D[a]||(D[a]=[]),D[a].push(n[0])}for(a in D)e(D[a]).addClass(a).children(".ui-btn-inner").addClass(a);g.find("h1, h2, h3, h4, h5, h6").addClass("ui-li-heading").end().find("p, dl").addClass("ui-li-desc").end().find(".ui-li-aside").each(function(){var t=e(this);t.prependTo(t.parent())}).end().find(".ui-li-count").each(function(){e(this).closest("li").addClass("ui-li-has-count")}).addClass("ui-btn-up-"+(g.jqmData("counttheme")||this.options.countTheme)+" ui-btn-corner-all"),this._addThumbClasses(x),this._addThumbClasses(g.find(".ui-link-inherit")),this._addFirstLastClasses(x,this._getVisibles(x,t),t),this._trigger("afterrefresh")},_idStringEscape:function(e){return e.replace(/[^a-zA-Z0-9]/g,"-")},_createSubPages:function(){var i,a=this.element,o=a.closest(".ui-page"),s=o.jqmData("url"),r=s||o[0][e.expando],l=a.attr("id"),d=this.options,c="data-"+e.mobile.ns,h=this,u=o.find(":jqmData(role='footer')").jqmData("id");if(t[r]===n&&(t[r]=-1),l=l||++t[r],e(a.find("li>ul, li>ol").toArray().reverse()).each(function(t){var n,o,r=e(this),h=r.attr("id")||l+"-"+t,p=r.parent(),m=e(r.prevAll().toArray().reverse()),f=m.length?m:e(""+e.trim(p.contents()[0].nodeValue)+""),g=f.first().getEncodedText(),b=(s||"")+"&"+e.mobile.subPageUrlKey+"="+h,v=r.jqmData("theme")||d.theme,_=r.jqmData("counttheme")||a.jqmData("counttheme")||d.countTheme;i=!0,n=r.detach().wrap("").parent().before(""+g+"").after(u?e(""):"").parent().appendTo(e.mobile.pageContainer),n.page(),o=p.find("a:first"),o.length||(o=e("").html(f||g).prependTo(p.empty())),o.attr("href","#"+b)}).listview(),i&&o.is(":jqmData(external-page='true')")&&o.data("mobile-page").options.domCache===!1){var p=function(t,i){var n,a=i.nextPage,r=new e.Event("pageremove");i.nextPage&&(n=a.jqmData("url"),0!==n.indexOf(s+"&"+e.mobile.subPageUrlKey)&&(h.childPages().remove(),o.trigger(r),r.isDefaultPrevented()||o.removeWithDependents()))};o.unbind("pagehide.remove").bind("pagehide.remove",p)}},childPages:function(){var t=this.parentPage.jqmData("url");return e(":jqmData(url^='"+t+"&"+e.mobile.subPageUrlKey+"')")}},e.mobile.behaviors.addFirstLastClasses)),e.mobile.document.bind("pagecreate create",function(t){e.mobile.listview.prototype.enhanceWithin(t.target)})}(e),function(e){var t=e("meta[name=viewport]"),i=t.attr("content"),n=i+",maximum-scale=1, user-scalable=no",a=i+",maximum-scale=10, user-scalable=yes",o=/(user-scalable[\s]*=[\s]*no)|(maximum-scale[\s]*=[\s]*1)[$,\s]/.test(i);e.mobile.zoom=e.extend({},{enabled:!o,locked:!1,disable:function(i){o||e.mobile.zoom.locked||(t.attr("content",n),e.mobile.zoom.enabled=!1,e.mobile.zoom.locked=i||!1)},enable:function(i){o||e.mobile.zoom.locked&&i!==!0||(t.attr("content",a),e.mobile.zoom.enabled=!0,e.mobile.zoom.locked=!1)},restore:function(){o||(t.attr("content",i),e.mobile.zoom.enabled=!0)}})}(e),function(e){e.widget("mobile.textinput",e.mobile.widget,{options:{theme:null,mini:!1,preventFocusZoom:/iPhone|iPad|iPod/.test(navigator.platform)&&navigator.userAgent.indexOf("AppleWebKit")>-1,initSelector:"input[type='text'], input[type='search'], :jqmData(type='search'), input[type='number'], :jqmData(type='number'), input[type='password'], input[type='email'], input[type='url'], input[type='tel'], textarea, input[type='time'], input[type='date'], input[type='month'], input[type='week'], input[type='datetime'], input[type='datetime-local'], input[type='color'], input:not([type]), input[type='file']",clearBtn:!1,clearSearchButtonText:null,clearBtnText:"clear text",disabled:!1},_create:function(){function t(){setTimeout(function(){a.toggleClass("ui-input-clear-hidden",!s.val())},0)}var i,a,o=this,s=this.element,r=this.options,l=r.theme||e.mobile.getInheritedTheme(this.element,"c"),d=" ui-body-"+l,c=r.mini?" ui-mini":"",h=s.is("[type='search'], :jqmData(type='search')"),u=r.clearSearchButtonText||r.clearBtnText,p=s.is("textarea, :jqmData(type='range')"),m=!!r.clearBtn&&!p,f=s.is("input")&&!s.is(":jqmData(type='range')");if(e("label[for='"+s.attr("id")+"']").addClass("ui-input-text"),i=s.addClass("ui-input-text ui-body-"+l),s[0].autocorrect===n||e.support.touchOverflow||(s[0].setAttribute("autocorrect","off"),s[0].setAttribute("autocomplete","off")),h?i=s.wrap("").parent():f&&(i=s.wrap("").parent()),m||h?(a=e(""+u+"").bind("click",function(e){s.val("").focus().trigger("change"),a.addClass("ui-input-clear-hidden"),e.preventDefault()}).appendTo(i).buttonMarkup({icon:"delete",iconpos:"notext",corners:!0,shadow:!0,mini:r.mini}),h||i.addClass("ui-input-has-clear"),t(),s.bind("paste cut keyup input focus change blur",t)):f||h||s.addClass("ui-corner-all ui-shadow-inset"+d+c),s.focus(function(){r.preventFocusZoom&&e.mobile.zoom.disable(!0),i.addClass(e.mobile.focusClass)}).blur(function(){i.removeClass(e.mobile.focusClass),r.preventFocusZoom&&e.mobile.zoom.enable(!0)}),s.is("textarea")){var g,b=15,v=100;this._keyup=function(){var e=s[0].scrollHeight,t=s[0].clientHeight;if(e>t){var i=parseFloat(s.css("padding-top")),n=parseFloat(s.css("padding-bottom")),a=i+n;s.height(e-a+b)}},s.on("keyup change input paste",function(){clearTimeout(g),g=setTimeout(o._keyup,v)}),this._on(!0,e.mobile.document,{pagechange:"_keyup"}),e.trim(s.val())&&this._on(!0,e.mobile.window,{load:"_keyup"})}s.attr("disabled")&&this.disable()},disable:function(){var e,t=this.element.is("[type='search'], :jqmData(type='search')"),i=this.element.is("input")&&!this.element.is(":jqmData(type='range')"),n=this.element.attr("disabled",!0)&&(i||t);return e=n?this.element.parent():this.element,e.addClass("ui-disabled"),this._setOption("disabled",!0)},enable:function(){var e,t=this.element.is("[type='search'], :jqmData(type='search')"),i=this.element.is("input")&&!this.element.is(":jqmData(type='range')"),n=this.element.attr("disabled",!1)&&(i||t);return e=n?this.element.parent():this.element,e.removeClass("ui-disabled"),this._setOption("disabled",!1)}}),e.mobile.document.bind("pagecreate create",function(t){e.mobile.textinput.prototype.enhanceWithin(t.target,!0)})}(e),function(e){e.mobile.listview.prototype.options.filter=!1,e.mobile.listview.prototype.options.filterPlaceholder="Filter items...",e.mobile.listview.prototype.options.filterTheme="c",e.mobile.listview.prototype.options.filterReveal=!1;var t=function(e,t){return-1===(""+e).toLowerCase().indexOf(t)};e.mobile.listview.prototype.options.filterCallback=t,e.mobile.document.delegate("ul, ol","listviewcreate",function(){var i=e(this),n=i.data("mobile-listview");if(n&&n.options.filter){n.options.filterReveal&&i.children().addClass("ui-screen-hidden");var a=e("",{"class":"ui-listview-filter ui-bar-"+n.options.filterTheme,role:"search"}).submit(function(e){e.preventDefault(),s.blur()}),o=function(){var a,o=e(this),s=this.value.toLowerCase(),r=null,l=i.children(),d=o.jqmData("lastval")+"",c=!1,h="",u=n.options.filterCallback!==t;if(!d||d!==s){if(n._trigger("beforefilter","beforefilter",{input:this}),o.jqmData("lastval",s),u||s.length=0;p--)a=e(r[p]),h=a.jqmData("filtertext")||a.text(),a.is("li:jqmData(role=list-divider)")?(a.toggleClass("ui-filter-hidequeue",!c),c=!1):n.options.filterCallback(h,s,a)?a.toggleClass("ui-filter-hidequeue",!0):c=!0;r.filter(":not(.ui-filter-hidequeue)").toggleClass("ui-screen-hidden",!1),r.filter(".ui-filter-hidequeue").toggleClass("ui-screen-hidden",!0).toggleClass("ui-filter-hidequeue",!1)}else r.toggleClass("ui-screen-hidden",!!n.options.filterReveal);n._addFirstLastClasses(l,n._getVisibles(l,!1),!1)}},s=e("",{placeholder:n.options.filterPlaceholder}).attr("data-"+e.mobile.ns+"type","search").jqmData("lastval","").bind("keyup change input",o).appendTo(a).textinput();n.options.inset&&a.addClass("ui-listview-filter-inset"),a.bind("submit",function(){return!1}).insertBefore(i)}})}(e),function(e){e.mobile.listview.prototype.options.autodividers=!1,e.mobile.listview.prototype.options.autodividersSelector=function(t){var i=e.trim(t.text())||null;return i?i=i.slice(0,1).toUpperCase():null},e.mobile.document.delegate("ul,ol","listviewcreate",function(){var t=e(this),n=t.data("mobile-listview");if(n&&n.options.autodividers){var a=function(){t.find("li:jqmData(role='list-divider')").remove();for(var a,o,s=t.find("li"),r=null,l=0;s.length>l;l++){if(a=s[l],o=n.options.autodividersSelector(e(a)),o&&r!==o){var d=i.createElement("li");d.appendChild(i.createTextNode(o)),d.setAttribute("data-"+e.mobile.ns+"role","list-divider"),a.parentNode.insertBefore(d,a)}r=o}},o=function(){t.unbind("listviewafterrefresh",o),a(),n.refresh(),t.bind("listviewafterrefresh",o)};o()}})}(e),function(e){e(i).bind("pagecreate create",function(t){e(":jqmData(role='nojs')",t.target).addClass("ui-nojs")})}(e),function(e){e.mobile.behaviors.formReset={_handleFormReset:function(){this._on(this.element.closest("form"),{reset:function(){this._delay("_reset")}})}}}(e),function(e){e.widget("mobile.checkboxradio",e.mobile.widget,e.extend({options:{theme:null,mini:!1,initSelector:"input[type='checkbox'],input[type='radio']"},_create:function(){var t=this,a=this.element,o=this.options,s=function(e,t){return e.jqmData(t)||e.closest("form, fieldset").jqmData(t)},r=e(a).closest("label"),l=r.length?r:e(a).closest("form, fieldset, :jqmData(role='page'), :jqmData(role='dialog')").find("label").filter("[for='"+a[0].id+"']").first(),d=a[0].type,c=s(a,"mini")||o.mini,h=d+"-on",u=d+"-off",p=s(a,"iconpos"),m="ui-"+h,f="ui-"+u;if("checkbox"===d||"radio"===d){e.extend(this,{label:l,inputtype:d,checkedClass:m,uncheckedClass:f,checkedicon:h,uncheckedicon:u}),o.theme||(o.theme=e.mobile.getInheritedTheme(this.element,"c")),l.buttonMarkup({theme:o.theme,icon:u,shadow:!1,mini:c,iconpos:p});var g=i.createElement("div");g.className="ui-"+d,a.add(l).wrapAll(g),l.bind({vmouseover:function(t){e(this).parent().is(".ui-disabled")&&t.stopPropagation()},vclick:function(e){return a.is(":disabled")?(e.preventDefault(),n):(t._cacheVals(),a.prop("checked","radio"===d&&!0||!a.prop("checked")),a.triggerHandler("click"),t._getInputSet().not(a).prop("checked",!1),t._updateAll(),!1)}}),a.bind({vmousedown:function(){t._cacheVals()},vclick:function(){var i=e(this);i.is(":checked")?(i.prop("checked",!0),t._getInputSet().not(i).prop("checked",!1)):i.prop("checked",!1),t._updateAll()},focus:function(){l.addClass(e.mobile.focusClass)},blur:function(){l.removeClass(e.mobile.focusClass)}}),this._handleFormReset(),this.refresh()}},_cacheVals:function(){this._getInputSet().each(function(){e(this).jqmData("cacheVal",this.checked)})},_getInputSet:function(){return"checkbox"===this.inputtype?this.element:this.element.closest("form, :jqmData(role='page'), :jqmData(role='dialog')").find("input[name='"+this.element[0].name+"'][type='"+this.inputtype+"']")},_updateAll:function(){var t=this;this._getInputSet().each(function(){var i=e(this);(this.checked||"checkbox"===t.inputtype)&&i.trigger("change")}).checkboxradio("refresh")},_reset:function(){this.refresh()},refresh:function(){var t=this.element[0],i=" "+e.mobile.activeBtnClass,n=this.checkedClass+(this.element.parents(".ui-controlgroup-horizontal").length?i:""),a=this.label;t.checked?a.removeClass(this.uncheckedClass+i).addClass(n).buttonMarkup({icon:this.checkedicon}):a.removeClass(n).addClass(this.uncheckedClass).buttonMarkup({icon:this.uncheckedicon}),t.disabled?this.disable():this.enable()},disable:function(){this.element.prop("disabled",!0).parent().addClass("ui-disabled")},enable:function(){this.element.prop("disabled",!1).parent().removeClass("ui-disabled")}},e.mobile.behaviors.formReset)),e.mobile.document.bind("pagecreate create",function(t){e.mobile.checkboxradio.prototype.enhanceWithin(t.target,!0)})}(e),function(e){e.widget("mobile.button",e.mobile.widget,{options:{theme:null,icon:null,iconpos:null,corners:!0,shadow:!0,iconshadow:!0,inline:null,mini:null,initSelector:"button, [type='button'], [type='submit'], [type='reset']"},_create:function(){var t,i=this.element,a=function(e){var t,i={};for(t in e)null!==e[t]&&"initSelector"!==t&&(i[t]=e[t]);return i}(this.options),o="";return"A"===i[0].tagName?(i.hasClass("ui-btn")||i.buttonMarkup(),n):(this.options.theme||(this.options.theme=e.mobile.getInheritedTheme(this.element,"c")),~i[0].className.indexOf("ui-btn-left")&&(o="ui-btn-left"),~i[0].className.indexOf("ui-btn-right")&&(o="ui-btn-right"),("submit"===i.attr("type")||"reset"===i.attr("type"))&&(o?o+=" ui-submit":o="ui-submit"),e("label[for='"+i.attr("id")+"']").addClass("ui-submit"),this.button=e("")[i.html()?"html":"text"](i.html()||i.val()).insertBefore(i).buttonMarkup(a).addClass(o).append(i.addClass("ui-btn-hidden")),t=this.button,i.bind({focus:function(){t.addClass(e.mobile.focusClass)},blur:function(){t.removeClass(e.mobile.focusClass)}}),this.refresh(),n)},_setOption:function(t,i){var n={};n[t]=i,"initSelector"!==t&&(this.button.buttonMarkup(n),this.element.attr("data-"+(e.mobile.ns||"")+t.replace(/([A-Z])/,"-$1").toLowerCase(),i)),this._super("_setOption",t,i)},enable:function(){return this.element.attr("disabled",!1),this.button.removeClass("ui-disabled").attr("aria-disabled",!1),this._setOption("disabled",!1)},disable:function(){return this.element.attr("disabled",!0),this.button.addClass("ui-disabled").attr("aria-disabled",!0),this._setOption("disabled",!0)},refresh:function(){var t=this.element;t.prop("disabled")?this.disable():this.enable(),e(this.button.data("buttonElements").text)[t.html()?"html":"text"](t.html()||t.val())}}),e.mobile.document.bind("pagecreate create",function(t){e.mobile.button.prototype.enhanceWithin(t.target,!0)})}(e),function(e,n){e.widget("mobile.slider",e.mobile.widget,e.extend({widgetEventPrefix:"slide",options:{theme:null,trackTheme:null,disabled:!1,initSelector:"input[type='range'], :jqmData(type='range'), :jqmData(role='slider')",mini:!1,highlight:!1},_create:function(){var a,o,s=this,r=this.element,l=e.mobile.getInheritedTheme(r,"c"),d=this.options.theme||l,c=this.options.trackTheme||l,h=r[0].nodeName.toLowerCase(),u=(this.isToggleSwitch="select"===h,r.parent().is(":jqmData(role='rangeslider')")),p=this.isToggleSwitch?"ui-slider-switch":"",m=r.attr("id"),f=e("[for='"+m+"']"),g=f.attr("id")||m+"-label",b=f.attr("id",g),v=this.isToggleSwitch?0:parseFloat(r.attr("min")),_=this.isToggleSwitch?r.find("option").length-1:parseFloat(r.attr("max")),C=t.parseFloat(r.attr("step")||1),x=this.options.mini||r.jqmData("mini")?" ui-mini":"",y=i.createElement("a"),w=e(y),T=i.createElement("div"),D=e(T),P=this.options.highlight&&!this.isToggleSwitch?function(){var t=i.createElement("div");return t.className="ui-slider-bg "+e.mobile.activeBtnClass+" ui-btn-corner-all",e(t).prependTo(D)}():!1;if(y.setAttribute("href","#"),T.setAttribute("role","application"),T.className=[this.isToggleSwitch?"ui-slider ":"ui-slider-track ",p," ui-btn-down-",c," ui-btn-corner-all",x].join(""),y.className="ui-slider-handle",T.appendChild(y),w.buttonMarkup({corners:!0,theme:d,shadow:!0}).attr({role:"slider","aria-valuemin":v,"aria-valuemax":_,"aria-valuenow":this._value(),"aria-valuetext":this._value(),title:this._value(),"aria-labelledby":g}),e.extend(this,{slider:D,handle:w,type:h,step:C,max:_,min:v,valuebg:P,isRangeslider:u,dragging:!1,beforeStart:null,userModified:!1,mouseMoved:!1}),this.isToggleSwitch){o=i.createElement("div"),o.className="ui-slider-inneroffset";for(var k=0,E=T.childNodes.length;E>k;k++)o.appendChild(T.childNodes[k]);T.appendChild(o),w.addClass("ui-slider-handle-snapping"),a=r.find("option");for(var q=0,j=a.length;j>q;q++){var S=q?"a":"b",A=q?" "+e.mobile.activeBtnClass:" ui-btn-down-"+c,N=(i.createElement("div"),i.createElement("span"));N.className=["ui-slider-label ui-slider-label-",S,A," ui-btn-corner-all"].join(""),N.setAttribute("role","img"),N.appendChild(i.createTextNode(a[q].innerHTML)),e(N).prependTo(D)}s._labels=e(".ui-slider-label",D)}b.addClass("ui-slider"),r.addClass(this.isToggleSwitch?"ui-slider-switch":"ui-slider-input"),this._on(r,{change:"_controlChange",keyup:"_controlKeyup",blur:"_controlBlur",vmouseup:"_controlVMouseUp"}),D.bind("vmousedown",e.proxy(this._sliderVMouseDown,this)).bind("vclick",!1),this._on(i,{vmousemove:"_preventDocumentDrag"}),this._on(D.add(i),{vmouseup:"_sliderVMouseUp"}),D.insertAfter(r),this.isToggleSwitch||u||(o=this.options.mini?"":"",r.add(D).wrapAll(o)),this.isToggleSwitch&&this.handle.bind({focus:function(){D.addClass(e.mobile.focusClass)},blur:function(){D.removeClass(e.mobile.focusClass)}}),this._on(this.handle,{vmousedown:"_handleVMouseDown",keydown:"_handleKeydown",keyup:"_handleKeyup"}),this.handle.bind("vclick",!1),this._handleFormReset(),this.refresh(n,n,!0)},_controlChange:function(e){return this._trigger("controlchange",e)===!1?!1:(this.mouseMoved||this.refresh(this._value(),!0),n)},_controlKeyup:function(){this.refresh(this._value(),!0,!0)},_controlBlur:function(){this.refresh(this._value(),!0)},_controlVMouseUp:function(){this._checkedRefresh()},_handleVMouseDown:function(){this.handle.focus()},_handleKeydown:function(t){var i=this._value();if(!this.options.disabled){switch(t.keyCode){case e.mobile.keyCode.HOME:case e.mobile.keyCode.END:case e.mobile.keyCode.PAGE_UP:case e.mobile.keyCode.PAGE_DOWN:case e.mobile.keyCode.UP:case e.mobile.keyCode.RIGHT:case e.mobile.keyCode.DOWN:case e.mobile.keyCode.LEFT:t.preventDefault(),this._keySliding||(this._keySliding=!0,this.handle.addClass("ui-state-active"))}switch(t.keyCode){case e.mobile.keyCode.HOME:this.refresh(this.min);break;case e.mobile.keyCode.END:this.refresh(this.max);break;case e.mobile.keyCode.PAGE_UP:case e.mobile.keyCode.UP:case e.mobile.keyCode.RIGHT:this.refresh(i+this.step);break;case e.mobile.keyCode.PAGE_DOWN:case e.mobile.keyCode.DOWN:case e.mobile.keyCode.LEFT:this.refresh(i-this.step)}}},_handleKeyup:function(){this._keySliding&&(this._keySliding=!1,this.handle.removeClass("ui-state-active"))},_sliderVMouseDown:function(e){return this.options.disabled||1!==e.which&&0!==e.which?!1:this._trigger("beforestart",e)===!1?!1:(this.dragging=!0,this.userModified=!1,this.mouseMoved=!1,this.isToggleSwitch&&(this.beforeStart=this.element[0].selectedIndex),this.refresh(e),this._trigger("start"),!1)},_sliderVMouseUp:function(){return this.dragging?(this.dragging=!1,this.isToggleSwitch&&(this.handle.addClass("ui-slider-handle-snapping"),this.mouseMoved?this.userModified?this.refresh(0===this.beforeStart?1:0):this.refresh(this.beforeStart):this.refresh(0===this.beforeStart?1:0)),this.mouseMoved=!1,this._trigger("stop"),!1):n},_preventDocumentDrag:function(e){return this._trigger("drag",e)===!1?!1:this.dragging&&!this.options.disabled?(this.mouseMoved=!0,this.isToggleSwitch&&this.handle.removeClass("ui-slider-handle-snapping"),this.refresh(e),this.userModified=this.beforeStart!==this.element[0].selectedIndex,!1):n},_checkedRefresh:function(){this.value!==this._value()&&this.refresh(this._value())},_value:function(){return this.isToggleSwitch?this.element[0].selectedIndex:parseFloat(this.element.val())},_reset:function(){this.refresh(n,!1,!0)},refresh:function(t,a,o){var s,r,l,d,c=this,h=e.mobile.getInheritedTheme(this.element,"c"),u=this.options.theme||h,p=this.options.trackTheme||h;c.slider[0].className=[this.isToggleSwitch?"ui-slider ui-slider-switch":"ui-slider-track"," ui-btn-down-"+p," ui-btn-corner-all",this.options.mini?" ui-mini":""].join(""),(this.options.disabled||this.element.attr("disabled"))&&this.disable(),this.value=this._value(),this.options.highlight&&!this.isToggleSwitch&&0===this.slider.find(".ui-slider-bg").length&&(this.valuebg=function(){var t=i.createElement("div");return t.className="ui-slider-bg "+e.mobile.activeBtnClass+" ui-btn-corner-all",e(t).prependTo(c.slider)}()),this.handle.buttonMarkup({corners:!0,theme:u,shadow:!0});var m,f,g=this.element,b=!this.isToggleSwitch,v=b?[]:g.find("option"),_=b?parseFloat(g.attr("min")):0,C=b?parseFloat(g.attr("max")):v.length-1,x=b&&parseFloat(g.attr("step"))>0?parseFloat(g.attr("step")):1;if("object"==typeof t){if(l=t,d=8,s=this.slider.offset().left,r=this.slider.width(),m=r/((C-_)/x),!this.dragging||s-d>l.pageX||l.pageX>s+r+d)return;f=m>1?100*((l.pageX-s)/r):Math.round(100*((l.pageX-s)/r))}else null==t&&(t=b?parseFloat(g.val()||0):g[0].selectedIndex),f=100*((parseFloat(t)-_)/(C-_));if(!isNaN(f)){var y=f/100*(C-_)+_,w=(y-_)%x,T=y-w;2*Math.abs(w)>=x&&(T+=w>0?x:-x);var D=100/((C-_)/x);if(y=parseFloat(T.toFixed(5)),m===n&&(m=r/((C-_)/x)),m>1&&b&&(f=(y-_)*D*(1/x)),0>f&&(f=0),f>100&&(f=100),_>y&&(y=_),y>C&&(y=C),this.handle.css("left",f+"%"),this.handle[0].setAttribute("aria-valuenow",b?y:v.eq(y).attr("value")),this.handle[0].setAttribute("aria-valuetext",b?y:v.eq(y).getEncodedText()),this.handle[0].setAttribute("title",b?y:v.eq(y).getEncodedText()),this.valuebg&&this.valuebg.css("width",f+"%"),this._labels){var P=100*(this.handle.width()/this.slider.width()),k=f&&P+(100-P)*f/100,E=100===f?0:Math.min(P+100-k,100);this._labels.each(function(){var t=e(this).is(".ui-slider-label-a");e(this).width((t?k:E)+"%")})}if(!o){var q=!1;if(b?(q=g.val()!==y,g.val(y)):(q=g[0].selectedIndex!==y,g[0].selectedIndex=y),this._trigger("beforechange",t)===!1)return!1;!a&&q&&g.trigger("change")}}},enable:function(){return this.element.attr("disabled",!1),this.slider.removeClass("ui-disabled").attr("aria-disabled",!1),this._setOption("disabled",!1)},disable:function(){return this.element.attr("disabled",!0),this.slider.addClass("ui-disabled").attr("aria-disabled",!0),this._setOption("disabled",!0)}},e.mobile.behaviors.formReset)),e.mobile.document.bind("pagecreate create",function(t){e.mobile.slider.prototype.enhanceWithin(t.target,!0)})}(e),function(e){e.widget("mobile.rangeslider",e.mobile.widget,{options:{theme:null,trackTheme:null,disabled:!1,initSelector:":jqmData(role='rangeslider')",mini:!1,highlight:!0},_create:function(){var t,i=this.element,n=this.options.mini?"ui-rangeslider ui-mini":"ui-rangeslider",a=i.find("input").first(),o=i.find("input").last(),s=i.find("label").first(),r=e.data(a.get(0),"mobileSlider").slider,l=e.data(o.get(0),"mobileSlider").slider,d=e.data(a.get(0),"mobileSlider").handle,c=e('').appendTo(i);i.find("label").length>1&&(t=i.find("label").last().hide()),a.addClass("ui-rangeslider-first"),o.addClass("ui-rangeslider-last"),i.addClass(n),r.appendTo(c),l.appendTo(c),s.prependTo(i),d.prependTo(l),e.extend(this,{_inputFirst:a,_inputLast:o,_sliderFirst:r,_sliderLast:l,_targetVal:null,_sliderTarget:!1,_sliders:c,_proxy:!1}),this.refresh(),this._on(this.element.find("input.ui-slider-input"),{slidebeforestart:"_slidebeforestart",slidestop:"_slidestop",slidedrag:"_slidedrag",slidebeforechange:"_change",blur:"_change",keyup:"_change"}),this._on({mousedown:"_change"}),this._on(this.element.closest("form"),{reset:"_handleReset"}),this._on(d,{vmousedown:"_dragFirstHandle"})},_handleReset:function(){var e=this;setTimeout(function(){e._updateHighlight()},0)},_dragFirstHandle:function(t){return e.data(this._inputFirst.get(0),"mobileSlider").dragging=!0,e.data(this._inputFirst.get(0),"mobileSlider").refresh(t),!1},_slidedrag:function(t){var i=e(t.target).is(this._inputFirst),a=i?this._inputLast:this._inputFirst;return this._sliderTarget=!1,"first"===this._proxy&&i||"last"===this._proxy&&!i?(e.data(a.get(0),"mobileSlider").dragging=!0,e.data(a.get(0),"mobileSlider").refresh(t),!1):n},_slidestop:function(t){var i=e(t.target).is(this._inputFirst);this._proxy=!1,this.element.find("input").trigger("vmouseup"),this._sliderFirst.css("z-index",i?1:"")},_slidebeforestart:function(t){this._sliderTarget=!1,e(t.originalEvent.target).hasClass("ui-slider-track")&&(this._sliderTarget=!0,this._targetVal=e(t.target).val())},_setOption:function(e){this._superApply(e),this.refresh()},refresh:function(){var e=this.element,t=this.options;e.find("input").slider({theme:t.theme,trackTheme:t.trackTheme,disabled:t.disabled,mini:t.mini,highlight:t.highlight}).slider("refresh"),this._updateHighlight()},_change:function(t){if("keyup"===t.type)return this._updateHighlight(),!1;var i=this,a=parseFloat(this._inputFirst.val(),10),o=parseFloat(this._inputLast.val(),10),s=e(t.target).hasClass("ui-rangeslider-first"),r=s?this._inputFirst:this._inputLast,l=s?this._inputLast:this._inputFirst;if(this._inputFirst.val()>this._inputLast.val()&&"mousedown"===t.type&&!e(t.target).hasClass("ui-slider-handle"))r.blur();else if("mousedown"===t.type)return;return a>o&&!this._sliderTarget?(r.val(s?o:a).slider("refresh"),this._trigger("normalize")):a>o&&(r.val(this._targetVal).slider("refresh"),setTimeout(function(){l.val(s?a:o).slider("refresh"),e.data(l.get(0),"mobileSlider").handle.focus(),i._sliderFirst.css("z-index",s?"":1),i._trigger("normalize")},0),this._proxy=s?"first":"last"),a===o?(e.data(r.get(0),"mobileSlider").handle.css("z-index",1),e.data(l.get(0),"mobileSlider").handle.css("z-index",0)):(e.data(l.get(0),"mobileSlider").handle.css("z-index",""),e.data(r.get(0),"mobileSlider").handle.css("z-index","")),this._updateHighlight(),a>=o?!1:n},_updateHighlight:function(){var t=parseInt(e.data(this._inputFirst.get(0),"mobileSlider").handle.get(0).style.left,10),i=parseInt(e.data(this._inputLast.get(0),"mobileSlider").handle.get(0).style.left,10),n=i-t;this.element.find(".ui-slider-bg").css({"margin-left":t+"%",width:n+"%"})},_destroy:function(){this.element.removeClass("ui-rangeslider ui-mini").find("label").show(),this._inputFirst.after(this._sliderFirst),this._inputLast.after(this._sliderLast),this._sliders.remove(),this.element.find("input").removeClass("ui-rangeslider-first ui-rangeslider-last").slider("destroy")}}),e.widget("mobile.rangeslider",e.mobile.rangeslider,e.mobile.behaviors.formReset),e(i).bind("pagecreate create",function(t){e.mobile.rangeslider.prototype.enhanceWithin(t.target,!0)})}(e),function(e){e.widget("mobile.selectmenu",e.mobile.widget,e.extend({options:{theme:null,disabled:!1,icon:"arrow-d",iconpos:"right",inline:!1,corners:!0,shadow:!0,iconshadow:!0,overlayTheme:"a",dividerTheme:"b",hidePlaceholderMenuItems:!0,closeText:"Close",nativeMenu:!0,preventFocusZoom:/iPhone|iPad|iPod/.test(navigator.platform)&&navigator.userAgent.indexOf("AppleWebKit")>-1,initSelector:"select:not( :jqmData(role='slider') )",mini:!1},_button:function(){return e("") -},_setDisabled:function(e){return this.element.attr("disabled",e),this.button.attr("aria-disabled",e),this._setOption("disabled",e)},_focusButton:function(){var e=this;setTimeout(function(){e.button.focus()},40)},_selectOptions:function(){return this.select.find("option")},_preExtension:function(){var t="";~this.element[0].className.indexOf("ui-btn-left")&&(t=" ui-btn-left"),~this.element[0].className.indexOf("ui-btn-right")&&(t=" ui-btn-right"),this.select=this.element.removeClass("ui-btn-left ui-btn-right").wrap(""),this.selectID=this.select.attr("id"),this.label=e("label[for='"+this.selectID+"']").addClass("ui-select"),this.isMultiple=this.select[0].multiple,this.options.theme||(this.options.theme=e.mobile.getInheritedTheme(this.select,"c"))},_destroy:function(){var e=this.element.parents(".ui-select");e.length>0&&(e.is(".ui-btn-left, .ui-btn-right")&&this.element.addClass(e.is(".ui-btn-left")?"ui-btn-left":"ui-btn-right"),this.element.insertAfter(e),e.remove())},_create:function(){this._preExtension(),this._trigger("beforeCreate"),this.button=this._button();var i=this,n=this.options,a=n.inline||this.select.jqmData("inline"),o=n.mini||this.select.jqmData("mini"),s=n.icon?n.iconpos||this.select.jqmData("iconpos"):!1,r=(-1===this.select[0].selectedIndex?0:this.select[0].selectedIndex,this.button.insertBefore(this.select).buttonMarkup({theme:n.theme,icon:n.icon,iconpos:s,inline:a,corners:n.corners,shadow:n.shadow,iconshadow:n.iconshadow,mini:o}));this.setButtonText(),n.nativeMenu&&t.opera&&t.opera.version&&r.addClass("ui-select-nativeonly"),this.isMultiple&&(this.buttonCount=e("").addClass("ui-li-count ui-btn-up-c ui-btn-corner-all").hide().appendTo(r.addClass("ui-li-has-count"))),(n.disabled||this.element.attr("disabled"))&&this.disable(),this.select.change(function(){i.refresh(),n.nativeMenu&&this.blur()}),this._handleFormReset(),this.build()},build:function(){var t=this;this.select.appendTo(t.button).bind("vmousedown",function(){t.button.addClass(e.mobile.activeBtnClass)}).bind("focus",function(){t.button.addClass(e.mobile.focusClass)}).bind("blur",function(){t.button.removeClass(e.mobile.focusClass)}).bind("focus vmouseover",function(){t.button.trigger("vmouseover")}).bind("vmousemove",function(){t.button.removeClass(e.mobile.activeBtnClass)}).bind("change blur vmouseout",function(){t.button.trigger("vmouseout").removeClass(e.mobile.activeBtnClass)}).bind("change blur",function(){t.button.removeClass("ui-btn-down-"+t.options.theme)}),t.button.bind("vmousedown",function(){t.options.preventFocusZoom&&e.mobile.zoom.disable(!0)}),t.label.bind("click focus",function(){t.options.preventFocusZoom&&e.mobile.zoom.disable(!0)}),t.select.bind("focus",function(){t.options.preventFocusZoom&&e.mobile.zoom.disable(!0)}),t.button.bind("mouseup",function(){t.options.preventFocusZoom&&setTimeout(function(){e.mobile.zoom.enable(!0)},0)}),t.select.bind("blur",function(){t.options.preventFocusZoom&&e.mobile.zoom.enable(!0)})},selected:function(){return this._selectOptions().filter(":selected")},selectedIndices:function(){var e=this;return this.selected().map(function(){return e._selectOptions().index(this)}).get()},setButtonText:function(){var t=this,n=this.selected(),a=this.placeholder,o=e(i.createElement("span"));this.button.find(".ui-btn-text").html(function(){return a=n.length?n.map(function(){return e(this).text()}).get().join(", "):t.placeholder,o.text(a).addClass(t.select.attr("class")).addClass(n.attr("class"))})},setButtonCount:function(){var e=this.selected();this.isMultiple&&this.buttonCount[e.length>1?"show":"hide"]().text(e.length)},_reset:function(){this.refresh()},refresh:function(){this.setButtonText(),this.setButtonCount()},open:e.noop,close:e.noop,disable:function(){this._setDisabled(!0),this.button.addClass("ui-disabled")},enable:function(){this._setDisabled(!1),this.button.removeClass("ui-disabled")}},e.mobile.behaviors.formReset)),e.mobile.document.bind("pagecreate create",function(t){e.mobile.selectmenu.prototype.enhanceWithin(t.target,!0)})}(e),function(e,n){function a(e,t,i,n){var a=n;return a=t>e?i+(e-t)/2:Math.min(Math.max(i,n-t/2),i+e-t)}function o(){var i=e.mobile.window;return{x:i.scrollLeft(),y:i.scrollTop(),cx:t.innerWidth||i.width(),cy:t.innerHeight||i.height()}}e.widget("mobile.popup",e.mobile.widget,{options:{theme:null,overlayTheme:null,shadow:!0,corners:!0,transition:"none",positionTo:"origin",tolerance:null,initSelector:":jqmData(role='popup')",closeLinkSelector:"a:jqmData(rel='back')",closeLinkEvents:"click.popup",navigateEvents:"navigate.popup",closeEvents:"navigate.popup pagebeforechange.popup",dismissible:!0,history:!e.mobile.browser.oldIE},_eatEventAndClose:function(e){return e.preventDefault(),e.stopImmediatePropagation(),this.options.dismissible&&this.close(),!1},_resizeScreen:function(){var e=this._ui.container.outerHeight(!0);this._ui.screen.removeAttr("style"),e>this._ui.screen.height()&&this._ui.screen.height(e)},_handleWindowKeyUp:function(t){return this._isOpen&&t.keyCode===e.mobile.keyCode.ESCAPE?this._eatEventAndClose(t):n},_expectResizeEvent:function(){var t=o();if(this._resizeData){if(t.x===this._resizeData.winCoords.x&&t.y===this._resizeData.winCoords.y&&t.cx===this._resizeData.winCoords.cx&&t.cy===this._resizeData.winCoords.cy)return!1;clearTimeout(this._resizeData.timeoutId)}return this._resizeData={timeoutId:setTimeout(e.proxy(this,"_resizeTimeout"),200),winCoords:t},!0},_resizeTimeout:function(){this._isOpen?this._expectResizeEvent()||(this._ui.container.hasClass("ui-popup-hidden")&&(this._ui.container.removeClass("ui-popup-hidden"),this.reposition({positionTo:"window"}),this._ignoreResizeEvents()),this._resizeScreen(),this._resizeData=null,this._orientationchangeInProgress=!1):(this._resizeData=null,this._orientationchangeInProgress=!1)},_ignoreResizeEvents:function(){var e=this;this._ignoreResizeTo&&clearTimeout(this._ignoreResizeTo),this._ignoreResizeTo=setTimeout(function(){e._ignoreResizeTo=0},1e3)},_handleWindowResize:function(){this._isOpen&&0===this._ignoreResizeTo&&(!this._expectResizeEvent()&&!this._orientationchangeInProgress||this._ui.container.hasClass("ui-popup-hidden")||this._ui.container.addClass("ui-popup-hidden").removeAttr("style"))},_handleWindowOrientationchange:function(){!this._orientationchangeInProgress&&this._isOpen&&0===this._ignoreResizeTo&&(this._expectResizeEvent(),this._orientationchangeInProgress=!0)},_handleDocumentFocusIn:function(t){var n,a=t.target,o=this._ui;if(this._isOpen){if(a!==o.container[0]){if(n=e(t.target),0===n.parents().filter(o.container[0]).length)return e(i.activeElement).one("focus",function(){n.blur()}),o.focusElement.focus(),t.preventDefault(),t.stopImmediatePropagation(),!1;o.focusElement[0]===o.container[0]&&(o.focusElement=n)}this._ignoreResizeEvents()}},_create:function(){var t={screen:e(""),placeholder:e(""),container:e("")},i=this.element.closest(".ui-page"),a=this.element.attr("id"),o=this;this.options.history=this.options.history&&e.mobile.ajaxEnabled&&e.mobile.hashListeningEnabled,0===i.length&&(i=e("body")),this.options.container=this.options.container||e.mobile.pageContainer,i.append(t.screen),t.container.insertAfter(t.screen),t.placeholder.insertAfter(this.element),a&&(t.screen.attr("id",a+"-screen"),t.container.attr("id",a+"-popup"),t.placeholder.html("")),t.container.append(this.element),t.focusElement=t.container,this.element.addClass("ui-popup"),e.extend(this,{_scrollTop:0,_page:i,_ui:t,_fallbackTransition:"",_currentTransition:!1,_prereqs:null,_isOpen:!1,_tolerance:null,_resizeData:null,_ignoreResizeTo:0,_orientationchangeInProgress:!1}),e.each(this.options,function(e,t){o.options[e]=n,o._setOption(e,t,!0)}),t.screen.bind("vclick",e.proxy(this,"_eatEventAndClose")),this._on(e.mobile.window,{orientationchange:e.proxy(this,"_handleWindowOrientationchange"),resize:e.proxy(this,"_handleWindowResize"),keyup:e.proxy(this,"_handleWindowKeyUp")}),this._on(e.mobile.document,{focusin:e.proxy(this,"_handleDocumentFocusIn")})},_applyTheme:function(e,t,i){for(var n,a=(e.attr("class")||"").split(" "),o=null,s=t+"";a.length>0;){if(o=a.pop(),n=RegExp("^ui-"+i+"-([a-z])$").exec(o),n&&n.length>1){o=n[1];break}o=null}t!==o&&(e.removeClass("ui-"+i+"-"+o),null!==t&&"none"!==t&&e.addClass("ui-"+i+"-"+s))},_setTheme:function(e){this._applyTheme(this.element,e,"body")},_setOverlayTheme:function(e){this._applyTheme(this._ui.screen,e,"overlay"),this._isOpen&&this._ui.screen.addClass("in")},_setShadow:function(e){this.element.toggleClass("ui-overlay-shadow",e)},_setCorners:function(e){this.element.toggleClass("ui-corner-all",e)},_applyTransition:function(t){this._ui.container.removeClass(this._fallbackTransition),t&&"none"!==t&&(this._fallbackTransition=e.mobile._maybeDegradeTransition(t),"none"===this._fallbackTransition&&(this._fallbackTransition=""),this._ui.container.addClass(this._fallbackTransition))},_setTransition:function(e){this._currentTransition||this._applyTransition(e)},_setTolerance:function(t){var i={t:30,r:15,b:30,l:15};if(t!==n){var a=(t+"").split(",");switch(e.each(a,function(e,t){a[e]=parseInt(t,10)}),a.length){case 1:isNaN(a[0])||(i.t=i.r=i.b=i.l=a[0]);break;case 2:isNaN(a[0])||(i.t=i.b=a[0]),isNaN(a[1])||(i.l=i.r=a[1]);break;case 4:isNaN(a[0])||(i.t=a[0]),isNaN(a[1])||(i.r=a[1]),isNaN(a[2])||(i.b=a[2]),isNaN(a[3])||(i.l=a[3]);break;default:}}this._tolerance=i},_setOption:function(t,i){var a,o="_set"+t.charAt(0).toUpperCase()+t.slice(1);this[o]!==n&&this[o](i),a=["initSelector","closeLinkSelector","closeLinkEvents","navigateEvents","closeEvents","history","container"],e.mobile.widget.prototype._setOption.apply(this,arguments),-1===e.inArray(t,a)&&this.element.attr("data-"+(e.mobile.ns||"")+t.replace(/([A-Z])/,"-$1").toLowerCase(),i)},_placementCoords:function(e){var t,n,s=o(),r={x:this._tolerance.l,y:s.y+this._tolerance.t,cx:s.cx-this._tolerance.l-this._tolerance.r,cy:s.cy-this._tolerance.t-this._tolerance.b};this._ui.container.css("max-width",r.cx),t={cx:this._ui.container.outerWidth(!0),cy:this._ui.container.outerHeight(!0)},n={x:a(r.cx,t.cx,r.x,e.x),y:a(r.cy,t.cy,r.y,e.y)},n.y=Math.max(0,n.y);var l=i.documentElement,d=i.body,c=Math.max(l.clientHeight,d.scrollHeight,d.offsetHeight,l.scrollHeight,l.offsetHeight);return n.y-=Math.min(n.y,Math.max(0,n.y+t.cy-c)),{left:n.x,top:n.y}},_createPrereqs:function(t,i,n){var a,o=this;a={screen:e.Deferred(),container:e.Deferred()},a.screen.then(function(){a===o._prereqs&&t()}),a.container.then(function(){a===o._prereqs&&i()}),e.when(a.screen,a.container).done(function(){a===o._prereqs&&(o._prereqs=null,n())}),o._prereqs=a},_animate:function(t){return this._ui.screen.removeClass(t.classToRemove).addClass(t.screenClassToAdd),t.prereqs.screen.resolve(),t.transition&&"none"!==t.transition&&(t.applyTransition&&this._applyTransition(t.transition),this._fallbackTransition)?(this._ui.container.animationComplete(e.proxy(t.prereqs.container,"resolve")).addClass(t.containerClassToAdd).removeClass(t.classToRemove),n):(this._ui.container.removeClass(t.classToRemove),t.prereqs.container.resolve(),n)},_desiredCoords:function(t){var i,n=null,a=o(),s=t.x,r=t.y,l=t.positionTo;if(l&&"origin"!==l)if("window"===l)s=a.cx/2+a.x,r=a.cy/2+a.y;else{try{n=e(l)}catch(d){n=null}n&&(n.filter(":visible"),0===n.length&&(n=null))}return n&&(i=n.offset(),s=i.left+n.outerWidth()/2,r=i.top+n.outerHeight()/2),("number"!==e.type(s)||isNaN(s))&&(s=a.cx/2+a.x),("number"!==e.type(r)||isNaN(r))&&(r=a.cy/2+a.y),{x:s,y:r}},_reposition:function(e){e={x:e.x,y:e.y,positionTo:e.positionTo},this._trigger("beforeposition",e),this._ui.container.offset(this._placementCoords(this._desiredCoords(e)))},reposition:function(e){this._isOpen&&this._reposition(e)},_openPrereqsComplete:function(){this._ui.container.addClass("ui-popup-active"),this._isOpen=!0,this._resizeScreen(),this._ui.container.attr("tabindex","0").focus(),this._ignoreResizeEvents(),this._trigger("afteropen")},_open:function(t){var i=e.extend({},this.options,t),n=function(){var e=navigator.userAgent,t=e.match(/AppleWebKit\/([0-9\.]+)/),i=!!t&&t[1],n=e.match(/Android (\d+(?:\.\d+))/),a=!!n&&n[1],o=e.indexOf("Chrome")>-1;return null!==n&&"4.0"===a&&i&&i>534.13&&!o?!0:!1}();this._createPrereqs(e.noop,e.noop,e.proxy(this,"_openPrereqsComplete")),this._currentTransition=i.transition,this._applyTransition(i.transition),this.options.theme||this._setTheme(this._page.jqmData("theme")||e.mobile.getInheritedTheme(this._page,"c")),this._ui.screen.removeClass("ui-screen-hidden"),this._ui.container.removeClass("ui-popup-hidden"),this._reposition(i),this.options.overlayTheme&&n&&this.element.closest(".ui-page").addClass("ui-popup-open"),this._animate({additionalCondition:!0,transition:i.transition,classToRemove:"",screenClassToAdd:"in",containerClassToAdd:"in",applyTransition:!1,prereqs:this._prereqs})},_closePrereqScreen:function(){this._ui.screen.removeClass("out").addClass("ui-screen-hidden")},_closePrereqContainer:function(){this._ui.container.removeClass("reverse out").addClass("ui-popup-hidden").removeAttr("style")},_closePrereqsDone:function(){this.options,this._ui.container.removeAttr("tabindex"),e.mobile.popup.active=n,this._trigger("afterclose")},_close:function(t){this._ui.container.removeClass("ui-popup-active"),this._page.removeClass("ui-popup-open"),this._isOpen=!1,this._createPrereqs(e.proxy(this,"_closePrereqScreen"),e.proxy(this,"_closePrereqContainer"),e.proxy(this,"_closePrereqsDone")),this._animate({additionalCondition:this._ui.screen.hasClass("in"),transition:t?"none":this._currentTransition,classToRemove:"in",screenClassToAdd:"out",containerClassToAdd:"reverse out",applyTransition:!0,prereqs:this._prereqs})},_unenhance:function(){this._setTheme("none"),this.element.detach().insertAfter(this._ui.placeholder).removeClass("ui-popup ui-overlay-shadow ui-corner-all"),this._ui.screen.remove(),this._ui.container.remove(),this._ui.placeholder.remove()},_destroy:function(){e.mobile.popup.active===this?(this.element.one("popupafterclose",e.proxy(this,"_unenhance")),this.close()):this._unenhance()},_closePopup:function(i,n){var a,o,s=this.options,r=!1;t.scrollTo(0,this._scrollTop),i&&"pagebeforechange"===i.type&&n&&(a="string"==typeof n.toPage?n.toPage:n.toPage.jqmData("url"),a=e.mobile.path.parseUrl(a),o=a.pathname+a.search+a.hash,this._myUrl!==e.mobile.path.makeUrlAbsolute(o)?r=!0:i.preventDefault()),s.container.unbind(s.closeEvents),this.element.undelegate(s.closeLinkSelector,s.closeLinkEvents),this._close(r)},_bindContainerClose:function(){this.options.container.one(this.options.closeEvents,e.proxy(this,"_closePopup"))},open:function(i){var a,o,s,r,l,d,c=this,h=this.options;if(!e.mobile.popup.active){if(e.mobile.popup.active=this,this._scrollTop=e.mobile.window.scrollTop(),!h.history)return c._open(i),c._bindContainerClose(),c.element.delegate(h.closeLinkSelector,h.closeLinkEvents,function(e){c.close(),e.preventDefault()}),n;if(d=e.mobile.urlHistory,o=e.mobile.dialogHashKey,s=e.mobile.activePage,r=s.is(".ui-dialog"),this._myUrl=a=d.getActive().url,l=a.indexOf(o)>-1&&!r&&d.activeIndex>0)return c._open(i),c._bindContainerClose(),n;-1!==a.indexOf(o)||r?a=e.mobile.path.parseLocation().hash+o:a+=a.indexOf("#")>-1?o:"#"+o,0===d.activeIndex&&a===d.initialDst&&(a+=o),e(t).one("beforenavigate",function(e){e.preventDefault(),c._open(i),c._bindContainerClose()}),this.urlAltered=!0,e.mobile.navigate(a,{role:"dialog"})}},close:function(){e.mobile.popup.active===this&&(this._scrollTop=e.mobile.window.scrollTop(),this.options.history&&this.urlAltered?(e.mobile.back(),this.urlAltered=!1):this._closePopup())}}),e.mobile.popup.handleLink=function(t){var i,n=t.closest(":jqmData(role='page')"),a=0===n.length?e("body"):n,o=e(e.mobile.path.parseUrl(t.attr("href")).hash,a[0]);o.data("mobile-popup")&&(i=t.offset(),o.popup("open",{x:i.left+t.outerWidth()/2,y:i.top+t.outerHeight()/2,transition:t.jqmData("transition"),positionTo:t.jqmData("position-to")})),setTimeout(function(){var i=t.parent().parent();i.hasClass("ui-li")&&(t=i.parent()),t.removeClass(e.mobile.activeBtnClass)},300)},e.mobile.document.bind("pagebeforechange",function(t,i){"popup"===i.options.role&&(e.mobile.popup.handleLink(i.options.link),t.preventDefault())}),e.mobile.document.bind("pagecreate create",function(t){e.mobile.popup.prototype.enhanceWithin(t.target,!0)})}(e),function(e,t){var n=function(n){var a,o,s,r=(n.select,n._destroy),l=n.selectID,d=l?l:(e.mobile.ns||"")+"uuid-"+n.uuid,c=d+"-listbox",h=d+"-dialog",u=n.label,p=n.select.closest(".ui-page"),m=n._selectOptions(),f=n.isMultiple=n.select[0].multiple,g=l+"-button",b=l+"-menu",v=e(""+""+""+u.getEncodedText()+""+""+""+""),_=e("").insertAfter(n.select).popup({theme:n.options.overlayTheme}),C=e("",{"class":"ui-selectmenu-list",id:b,role:"listbox","aria-labelledby":g}).attr("data-"+e.mobile.ns+"theme",n.options.theme).attr("data-"+e.mobile.ns+"divider-theme",n.options.dividerTheme).appendTo(_),x=e("",{"class":"ui-header ui-bar-"+n.options.theme}).prependTo(_),y=e("",{"class":"ui-title"}).appendTo(x);n.isMultiple&&(s=e("",{text:n.options.closeText,href:"#","class":"ui-btn-left"}).attr("data-"+e.mobile.ns+"iconpos","notext").attr("data-"+e.mobile.ns+"icon","delete").appendTo(x).buttonMarkup()),e.extend(n,{select:n.select,selectID:l,buttonId:g,menuId:b,popupID:c,dialogID:h,thisPage:p,menuPage:v,label:u,selectOptions:m,isMultiple:f,theme:n.options.theme,listbox:_,list:C,header:x,headerTitle:y,headerClose:s,menuPageContent:a,menuPageClose:o,placeholder:"",build:function(){var i=this;i.refresh(),i._origTabIndex===t&&(i._origTabIndex=null===i.select[0].getAttribute("tabindex")?!1:i.select.attr("tabindex")),i.select.attr("tabindex","-1").focus(function(){e(this).blur(),i.button.focus()}),i.button.bind("vclick keydown",function(t){i.options.disabled||i.isOpen||("vclick"===t.type||t.keyCode&&(t.keyCode===e.mobile.keyCode.ENTER||t.keyCode===e.mobile.keyCode.SPACE))&&(i._decideFormat(),"overlay"===i.menuType?i.button.attr("href","#"+i.popupID).attr("data-"+(e.mobile.ns||"")+"rel","popup"):i.button.attr("href","#"+i.dialogID).attr("data-"+(e.mobile.ns||"")+"rel","dialog"),i.isOpen=!0)}),i.list.attr("role","listbox").bind("focusin",function(t){e(t.target).attr("tabindex","0").trigger("vmouseover")}).bind("focusout",function(t){e(t.target).attr("tabindex","-1").trigger("vmouseout")}).delegate("li:not(.ui-disabled, .ui-li-divider)","click",function(t){var a=i.select[0].selectedIndex,o=i.list.find("li:not(.ui-li-divider)").index(this),s=i._selectOptions().eq(o)[0];s.selected=i.isMultiple?!s.selected:!0,i.isMultiple&&e(this).find(".ui-icon").toggleClass("ui-icon-checkbox-on",s.selected).toggleClass("ui-icon-checkbox-off",!s.selected),(i.isMultiple||a!==o)&&i.select.trigger("change"),i.isMultiple?i.list.find("li:not(.ui-li-divider)").eq(o).addClass("ui-btn-down-"+n.options.theme).find("a").first().focus():i.close(),t.preventDefault()}).keydown(function(t){var i,a,o=e(t.target),s=o.closest("li");switch(t.keyCode){case 38:return i=s.prev().not(".ui-selectmenu-placeholder"),i.is(".ui-li-divider")&&(i=i.prev()),i.length&&(o.blur().attr("tabindex","-1"),i.addClass("ui-btn-down-"+n.options.theme).find("a").first().focus()),!1;case 40:return a=s.next(),a.is(".ui-li-divider")&&(a=a.next()),a.length&&(o.blur().attr("tabindex","-1"),a.addClass("ui-btn-down-"+n.options.theme).find("a").first().focus()),!1;case 13:case 32:return o.trigger("click"),!1}}),i.menuPage.bind("pagehide",function(){e.mobile._bindPageRemove.call(i.thisPage)}),i.listbox.bind("popupafterclose",function(){i.close()}),i.isMultiple&&i.headerClose.click(function(){return"overlay"===i.menuType?(i.close(),!1):t}),i.thisPage.addDependents(this.menuPage)},_isRebuildRequired:function(){var e=this.list.find("li"),t=this._selectOptions();return t.text()!==e.text()},selected:function(){return this._selectOptions().filter(":selected:not( :jqmData(placeholder='true') )")},refresh:function(t){var i,n=this;this.element,this.isMultiple,(t||this._isRebuildRequired())&&n._buildList(),i=this.selectedIndices(),n.setButtonText(),n.setButtonCount(),n.list.find("li:not(.ui-li-divider)").removeClass(e.mobile.activeBtnClass).attr("aria-selected",!1).each(function(t){if(e.inArray(t,i)>-1){var a=e(this);a.attr("aria-selected",!0),n.isMultiple?a.find(".ui-icon").removeClass("ui-icon-checkbox-off").addClass("ui-icon-checkbox-on"):a.is(".ui-selectmenu-placeholder")?a.next().addClass(e.mobile.activeBtnClass):a.addClass(e.mobile.activeBtnClass)}})},close:function(){if(!this.options.disabled&&this.isOpen){var e=this;"page"===e.menuType?(e.menuPage.dialog("close"),e.list.appendTo(e.listbox)):e.listbox.popup("close"),e._focusButton(),e.isOpen=!1}},open:function(){this.button.click()},_decideFormat:function(){function t(){var t=i.list.find("."+e.mobile.activeBtnClass+" a");0===t.length&&(t=i.list.find("li.ui-btn:not( :jqmData(placeholder='true') ) a")),t.first().focus().closest("li").addClass("ui-btn-down-"+n.options.theme)}var i=this,a=e.mobile.window,o=i.list.parent(),s=o.outerHeight(),r=(o.outerWidth(),e("."+e.mobile.activePageClass),a.scrollTop()),l=i.button.offset().top,d=a.height();a.width(),s>d-80||!e.support.scrollTop?(i.menuPage.appendTo(e.mobile.pageContainer).page(),i.menuPageContent=v.find(".ui-content"),i.menuPageClose=v.find(".ui-header a"),i.thisPage.unbind("pagehide.remove"),0===r&&l>d&&i.thisPage.one("pagehide",function(){e(this).jqmData("lastScroll",l)}),i.menuPage.one("pageshow",function(){t()}).one("pagehide",function(){i.close()}),i.menuType="page",i.menuPageContent.append(i.list),i.menuPage.find("div .ui-title").text(i.label.text())):(i.menuType="overlay",i.listbox.one("popupafteropen",t))},_buildList:function(){var t=this,n=this.options,a=this.placeholder,o=!0,s=t.isMultiple?"checkbox-off":"false";t.list.empty().filter(".ui-listview").listview("destroy");for(var r,l=t.select.find("option"),d=l.length,c=this.select[0],h="data-"+e.mobile.ns,u=h+"option-index",p=h+"icon",m=h+"role",f=h+"placeholder",g=i.createDocumentFragment(),b=!1,v=0;d>v;v++,b=!1){var _=l[v],C=e(_),x=_.parentNode,y=C.text(),w=i.createElement("a"),T=[];if(w.setAttribute("href","#"),w.appendChild(i.createTextNode(y)),x!==c&&"optgroup"===x.nodeName.toLowerCase()){var D=x.getAttribute("label");if(D!==r){var P=i.createElement("li");P.setAttribute(m,"list-divider"),P.setAttribute("role","option"),P.setAttribute("tabindex","-1"),P.appendChild(i.createTextNode(D)),g.appendChild(P),r=D}}!o||_.getAttribute("value")&&0!==y.length&&!C.jqmData("placeholder")||(o=!1,b=!0,null===_.getAttribute(f)&&(this._removePlaceholderAttr=!0),_.setAttribute(f,!0),n.hidePlaceholderMenuItems&&T.push("ui-selectmenu-placeholder"),a!==y&&(a=t.placeholder=y));var k=i.createElement("li");_.disabled&&(T.push("ui-disabled"),k.setAttribute("aria-disabled",!0)),k.setAttribute(u,v),k.setAttribute(p,s),b&&k.setAttribute(f,!0),k.className=T.join(" "),k.setAttribute("role","option"),w.setAttribute("tabindex","-1"),k.appendChild(w),g.appendChild(k)}t.list[0].appendChild(g),this.isMultiple||a.length?this.headerTitle.text(this.placeholder):this.header.hide(),t.list.listview()},_button:function(){return e("",{href:"#",role:"button",id:this.buttonId,"aria-haspopup":"true","aria-owns":this.menuId})},_destroy:function(){this.close(),this._origTabIndex!==t&&(this._origTabIndex!==!1?this.select.attr("tabindex",this._origTabIndex):this.select.removeAttr("tabindex")),this._removePlaceholderAttr&&this._selectOptions().removeAttr("data-"+e.mobile.ns+"placeholder"),this.listbox.remove(),r.apply(this,arguments)}})};e.mobile.document.bind("selectmenubeforecreate",function(t){var i=e(t.target).data("mobile-selectmenu");i.options.nativeMenu||0!==i.element.parents(":jqmData(role='popup')").length||n(i)})}(e),function(e,t){e.widget("mobile.controlgroup",e.mobile.widget,e.extend({options:{shadow:!1,corners:!0,excludeInvisible:!0,type:"vertical",mini:!1,initSelector:":jqmData(role='controlgroup')"},_create:function(){var i=this.element,n={inner:e(""),legend:e("")},a=i.children("legend"),o=this;i.wrapInner(n.inner),a.length&&n.legend.append(a).insertBefore(i.children(0)),i.addClass("ui-corner-all ui-controlgroup"),e.extend(this,{_initialRefresh:!0}),e.each(this.options,function(e,i){o.options[e]=t,o._setOption(e,i,!0)})},_init:function(){this.refresh()},_setOption:function(i,n){var a="_set"+i.charAt(0).toUpperCase()+i.slice(1);this[a]!==t&&this[a](n),this._super(i,n),this.element.attr("data-"+(e.mobile.ns||"")+i.replace(/([A-Z])/,"-$1").toLowerCase(),n)},_setType:function(e){this.element.removeClass("ui-controlgroup-horizontal ui-controlgroup-vertical").addClass("ui-controlgroup-"+e),this.refresh()},_setCorners:function(e){this.element.toggleClass("ui-corner-all",e)},_setShadow:function(e){this.element.toggleClass("ui-shadow",e)},_setMini:function(e){this.element.toggleClass("ui-mini",e)},container:function(){return this.element.children(".ui-controlgroup-controls")},refresh:function(){var t=this.element.find(".ui-btn").not(".ui-slider-handle"),i=this._initialRefresh;e.mobile.checkboxradio&&this.element.find(":mobile-checkboxradio").checkboxradio("refresh"),this._addFirstLastClasses(t,this.options.excludeInvisible?this._getVisibles(t,i):t,i),this._initialRefresh=!1}},e.mobile.behaviors.addFirstLastClasses)),e(function(){e.mobile.document.bind("pagecreate create",function(t){e.mobile.controlgroup.prototype.enhanceWithin(t.target,!0)})})}(e),function(e){e(i).bind("pagecreate create",function(t){e(t.target).find("a").jqmEnhanceable().not(".ui-btn, .ui-link-inherit, :jqmData(role='none'), :jqmData(role='nojs')").addClass("ui-link")})}(e),function(e,t){e.widget("mobile.fixedtoolbar",e.mobile.widget,{options:{visibleOnPageShow:!0,disablePageZoom:!0,transition:"slide",fullscreen:!1,tapToggle:!0,tapToggleBlacklist:"a, button, input, select, textarea, .ui-header-fixed, .ui-footer-fixed, .ui-popup, .ui-panel, .ui-panel-dismiss-open",hideDuringFocus:"input, textarea, select",updatePagePadding:!0,trackPersistentToolbars:!0,supportBlacklist:function(){return!e.support.fixedPosition},initSelector:":jqmData(position='fixed')"},_create:function(){var i=this,n=i.options,a=i.element,o=a.is(":jqmData(role='header')")?"header":"footer",s=a.closest(".ui-page");return n.supportBlacklist()?(i.destroy(),t):(a.addClass("ui-"+o+"-fixed"),n.fullscreen?(a.addClass("ui-"+o+"-fullscreen"),s.addClass("ui-page-"+o+"-fullscreen")):s.addClass("ui-page-"+o+"-fixed"),e.extend(this,{_thisPage:null}),i._addTransitionClass(),i._bindPageEvents(),i._bindToggleHandlers(),t)},_addTransitionClass:function(){var e=this.options.transition;e&&"none"!==e&&("slide"===e&&(e=this.element.is(".ui-header")?"slidedown":"slideup"),this.element.addClass(e))},_bindPageEvents:function(){this._thisPage=this.element.closest(".ui-page"),this._on(this._thisPage,{pagebeforeshow:"_handlePageBeforeShow",webkitAnimationStart:"_handleAnimationStart",animationstart:"_handleAnimationStart",updatelayout:"_handleAnimationStart",pageshow:"_handlePageShow",pagebeforehide:"_handlePageBeforeHide"})},_handlePageBeforeShow:function(){var t=this.options;t.disablePageZoom&&e.mobile.zoom.disable(!0),t.visibleOnPageShow||this.hide(!0)},_handleAnimationStart:function(){this.options.updatePagePadding&&this.updatePagePadding(this._thisPage)},_handlePageShow:function(){this.updatePagePadding(this._thisPage),this.options.updatePagePadding&&this._on(e.mobile.window,{throttledresize:"updatePagePadding"})},_handlePageBeforeHide:function(t,i){var n=this.options;if(n.disablePageZoom&&e.mobile.zoom.enable(!0),n.updatePagePadding&&this._off(e.mobile.window,"throttledresize"),n.trackPersistentToolbars){var a=e(".ui-footer-fixed:jqmData(id)",this._thisPage),o=e(".ui-header-fixed:jqmData(id)",this._thisPage),s=a.length&&i.nextPage&&e(".ui-footer-fixed:jqmData(id='"+a.jqmData("id")+"')",i.nextPage)||e(),r=o.length&&i.nextPage&&e(".ui-header-fixed:jqmData(id='"+o.jqmData("id")+"')",i.nextPage)||e();(s.length||r.length)&&(s.add(r).appendTo(e.mobile.pageContainer),i.nextPage.one("pageshow",function(){r.prependTo(this),s.appendTo(this)}))}},_visible:!0,updatePagePadding:function(i){var n=this.element,a=n.is(".ui-header"),o=parseFloat(n.css(a?"top":"bottom"));this.options.fullscreen||(i=i&&i.type===t&&i||this._thisPage||n.closest(".ui-page"),e(i).css("padding-"+(a?"top":"bottom"),n.outerHeight()+o))},_useTransition:function(t){var i=e.mobile.window,n=this.element,a=i.scrollTop(),o=n.height(),s=n.closest(".ui-page").height(),r=e.mobile.getScreenHeight(),l=n.is(":jqmData(role='header')")?"header":"footer";return!t&&(this.options.transition&&"none"!==this.options.transition&&("header"===l&&!this.options.fullscreen&&a>o||"footer"===l&&!this.options.fullscreen&&s-o>a+r)||this.options.fullscreen)},show:function(e){var t="ui-fixed-hidden",i=this.element;this._useTransition(e)?i.removeClass("out "+t).addClass("in").animationComplete(function(){i.removeClass("in")}):i.removeClass(t),this._visible=!0},hide:function(e){var t="ui-fixed-hidden",i=this.element,n="out"+("slide"===this.options.transition?" reverse":"");this._useTransition(e)?i.addClass(n).removeClass("in").animationComplete(function(){i.addClass(t).removeClass(n)}):i.addClass(t).removeClass(n),this._visible=!1},toggle:function(){this[this._visible?"hide":"show"]()},_bindToggleHandlers:function(){var t,i,n=this,a=n.options,o=n.element,s=!0;o.closest(".ui-page").bind("vclick",function(t){a.tapToggle&&!e(t.target).closest(a.tapToggleBlacklist).length&&n.toggle()}).bind("focusin focusout",function(o){1025>screen.width&&e(o.target).is(a.hideDuringFocus)&&!e(o.target).closest(".ui-header-fixed, .ui-footer-fixed").length&&("focusout"!==o.type||s?"focusin"===o.type&&s&&(clearTimeout(t),s=!1,i=setTimeout(function(){n.hide()},0)):(s=!0,clearTimeout(i),t=setTimeout(function(){n.show()},0)))})},_destroy:function(){var e=this.element,t=e.is(".ui-header");e.closest(".ui-page").css("padding-"+(t?"top":"bottom"),""),e.removeClass("ui-header-fixed ui-footer-fixed ui-header-fullscreen ui-footer-fullscreen in out fade slidedown slideup ui-fixed-hidden"),e.closest(".ui-page").removeClass("ui-page-header-fixed ui-page-footer-fixed ui-page-header-fullscreen ui-page-footer-fullscreen")}}),e.mobile.document.bind("pagecreate create",function(t){e(t.target).jqmData("fullscreen")&&e(e.mobile.fixedtoolbar.prototype.options.initSelector,t.target).not(":jqmData(fullscreen)").jqmData("fullscreen",!0),e.mobile.fixedtoolbar.prototype.enhanceWithin(t.target)})}(e),function(e){e.widget("mobile.fixedtoolbar",e.mobile.fixedtoolbar,{_create:function(){this._super(),this._workarounds()},_workarounds:function(){var e=navigator.userAgent,t=navigator.platform,i=e.match(/AppleWebKit\/([0-9]+)/),n=!!i&&i[1],a=null,o=this;if(t.indexOf("iPhone")>-1||t.indexOf("iPad")>-1||t.indexOf("iPod")>-1)a="ios";else{if(!(e.indexOf("Android")>-1))return;a="android"}if("ios"===a)o._bindScrollWorkaround();else{if(!("android"===a&&n&&534>n))return;o._bindScrollWorkaround(),o._bindListThumbWorkaround()}},_viewportOffset:function(){var t=this.element,i=t.is(".ui-header"),n=Math.abs(t.offset().top-e.mobile.window.scrollTop());return i||(n=Math.round(n-e.mobile.window.height()+t.outerHeight())-60),n},_bindScrollWorkaround:function(){var t=this;this._on(e.mobile.window,{scrollstop:function(){var e=t._viewportOffset();e>2&&t._visible&&t._triggerRedraw()}})},_bindListThumbWorkaround:function(){this.element.closest(".ui-page").addClass("ui-android-2x-fixed")},_triggerRedraw:function(){var t=parseFloat(e(".ui-page-active").css("padding-bottom")); -e(".ui-page-active").css("padding-bottom",t+1+"px"),setTimeout(function(){e(".ui-page-active").css("padding-bottom",t+"px")},0)},destroy:function(){this._super(),this.element.closest(".ui-page-active").removeClass("ui-android-2x-fix")}})}(e),function(e,n){e.widget("mobile.panel",e.mobile.widget,{options:{classes:{panel:"ui-panel",panelOpen:"ui-panel-open",panelClosed:"ui-panel-closed",panelFixed:"ui-panel-fixed",panelInner:"ui-panel-inner",modal:"ui-panel-dismiss",modalOpen:"ui-panel-dismiss-open",pagePanel:"ui-page-panel",pagePanelOpen:"ui-page-panel-open",contentWrap:"ui-panel-content-wrap",contentWrapOpen:"ui-panel-content-wrap-open",contentWrapClosed:"ui-panel-content-wrap-closed",contentFixedToolbar:"ui-panel-content-fixed-toolbar",contentFixedToolbarOpen:"ui-panel-content-fixed-toolbar-open",contentFixedToolbarClosed:"ui-panel-content-fixed-toolbar-closed",animate:"ui-panel-animate"},animate:!0,theme:"c",position:"left",dismissible:!0,display:"reveal",initSelector:":jqmData(role='panel')",swipeClose:!0,positionFixed:!1},_panelID:null,_closeLink:null,_page:null,_modal:null,_panelInner:null,_wrapper:null,_fixedToolbar:null,_create:function(){var t=this,i=t.element,n=i.closest(":jqmData(role='page')"),a=function(){var t=e.data(n[0],"mobilePage").options.theme,i="ui-body-"+t;return i},o=function(){var e=i.find("."+t.options.classes.panelInner);return 0===e.length&&(e=i.children().wrapAll('').parent()),e},s=function(){var i=n.find("."+t.options.classes.contentWrap);return 0===i.length&&(i=n.children(".ui-header:not(:jqmData(position='fixed')), .ui-content:not(:jqmData(role='popup')), .ui-footer:not(:jqmData(position='fixed'))").wrapAll('').parent(),e.support.cssTransform3d&&t.options.animate&&i.addClass(t.options.classes.animate)),i},r=function(){var i=n.find("."+t.options.classes.contentFixedToolbar);return 0===i.length&&(i=n.find(".ui-header:jqmData(position='fixed'), .ui-footer:jqmData(position='fixed')").addClass(t.options.classes.contentFixedToolbar),e.support.cssTransform3d&&t.options.animate&&i.addClass(t.options.classes.animate)),i};e.extend(this,{_panelID:i.attr("id"),_closeLink:i.find(":jqmData(rel='close')"),_page:i.closest(":jqmData(role='page')"),_pageTheme:a(),_panelInner:o(),_wrapper:s(),_fixedToolbar:r()}),t._addPanelClasses(),t._wrapper.addClass(this.options.classes.contentWrapClosed),t._fixedToolbar.addClass(this.options.classes.contentFixedToolbarClosed),t._page.addClass(t.options.classes.pagePanel),e.support.cssTransform3d&&t.options.animate&&this.element.addClass(t.options.classes.animate),t._bindUpdateLayout(),t._bindCloseEvents(),t._bindLinkListeners(),t._bindPageEvents(),t.options.dismissible&&t._createModal(),t._bindSwipeEvents()},_createModal:function(){var t=this;t._modal=e("").on("mousedown",function(){t.close()}).appendTo(this._page)},_getPosDisplayClasses:function(e){return e+"-position-"+this.options.position+" "+e+"-display-"+this.options.display},_getPanelClasses:function(){var e=this.options.classes.panel+" "+this._getPosDisplayClasses(this.options.classes.panel)+" "+this.options.classes.panelClosed;return this.options.theme&&(e+=" ui-body-"+this.options.theme),this.options.positionFixed&&(e+=" "+this.options.classes.panelFixed),e},_addPanelClasses:function(){this.element.addClass(this._getPanelClasses())},_bindCloseEvents:function(){var e=this;e._closeLink.on("click.panel",function(t){return t.preventDefault(),e.close(),!1}),e.element.on("click.panel","a:jqmData(ajax='false')",function(){e.close()})},_positionPanel:function(){var t=this,i=t._panelInner.outerHeight(),n=i>e.mobile.getScreenHeight();n||!t.options.positionFixed?(n&&(t._unfixPanel(),e.mobile.resetActivePageHeight(i)),t._scrollIntoView(i)):t._fixPanel()},_scrollIntoView:function(i){e(t).scrollTop()>i&&t.scrollTo(0,0)},_bindFixListener:function(){this._on(e(t),{throttledresize:"_positionPanel"})},_unbindFixListener:function(){this._off(e(t),"throttledresize")},_unfixPanel:function(){this.options.positionFixed&&e.support.fixedPosition&&this.element.removeClass(this.options.classes.panelFixed)},_fixPanel:function(){this.options.positionFixed&&e.support.fixedPosition&&this.element.addClass(this.options.classes.panelFixed)},_bindUpdateLayout:function(){var e=this;e.element.on("updatelayout",function(){e._open&&e._positionPanel()})},_bindLinkListeners:function(){var t=this;t._page.on("click.panel","a",function(i){if(this.href.split("#")[1]===t._panelID&&t._panelID!==n){i.preventDefault();var a=e(this);return a.hasClass("ui-link")||(a.addClass(e.mobile.activeBtnClass),t.element.one("panelopen panelclose",function(){a.removeClass(e.mobile.activeBtnClass)})),t.toggle(),!1}})},_bindSwipeEvents:function(){var e=this,t=e._modal?e.element.add(e._modal):e.element;e.options.swipeClose&&("left"===e.options.position?t.on("swipeleft.panel",function(){e.close()}):t.on("swiperight.panel",function(){e.close()}))},_bindPageEvents:function(){var e=this;e._page.on("panelbeforeopen",function(t){e._open&&t.target!==e.element[0]&&e.close()}).on("pagehide",function(){e._open&&e.close(!0)}).on("keyup.panel",function(t){27===t.keyCode&&e._open&&e.close()})},_open:!1,_contentWrapOpenClasses:null,_fixedToolbarOpenClasses:null,_modalOpenClasses:null,open:function(t){if(!this._open){var i=this,n=i.options,a=function(){i._page.off("panelclose"),i._page.jqmData("panel","open"),!t&&e.support.cssTransform3d&&n.animate?i.element.add(i._wrapper).on(i._transitionEndEvents,o):setTimeout(o,0),i.options.theme&&"overlay"!==i.options.display&&i._page.removeClass(i._pageTheme).addClass("ui-body-"+i.options.theme),i.element.removeClass(n.classes.panelClosed).addClass(n.classes.panelOpen),i._positionPanel(),i.options.theme&&"overlay"!==i.options.display&&i._wrapper.css("min-height",i._page.css("min-height")),i._contentWrapOpenClasses=i._getPosDisplayClasses(n.classes.contentWrap),i._wrapper.removeClass(n.classes.contentWrapClosed).addClass(i._contentWrapOpenClasses+" "+n.classes.contentWrapOpen),i._fixedToolbarOpenClasses=i._getPosDisplayClasses(n.classes.contentFixedToolbar),i._fixedToolbar.removeClass(n.classes.contentFixedToolbarClosed).addClass(i._fixedToolbarOpenClasses+" "+n.classes.contentFixedToolbarOpen),i._modalOpenClasses=i._getPosDisplayClasses(n.classes.modal)+" "+n.classes.modalOpen,i._modal&&i._modal.addClass(i._modalOpenClasses)},o=function(){i.element.add(i._wrapper).off(i._transitionEndEvents,o),i._page.addClass(n.classes.pagePanelOpen),i._bindFixListener(),i._trigger("open")};0>this.element.closest(".ui-page-active").length&&(t=!0),i._trigger("beforeopen"),"open"===i._page.jqmData("panel")?i._page.on("panelclose",function(){a()}):a(),i._open=!0}},close:function(t){if(this._open){var i=this.options,n=this,a=function(){!t&&e.support.cssTransform3d&&i.animate?n.element.add(n._wrapper).on(n._transitionEndEvents,o):setTimeout(o,0),n._page.removeClass(i.classes.pagePanelOpen),n.element.removeClass(i.classes.panelOpen),n._wrapper.removeClass(i.classes.contentWrapOpen),n._fixedToolbar.removeClass(i.classes.contentFixedToolbarOpen),n._modal&&n._modal.removeClass(n._modalOpenClasses)},o=function(){n.options.theme&&"overlay"!==n.options.display&&(n._page.removeClass("ui-body-"+n.options.theme).addClass(n._pageTheme),n._wrapper.css("min-height","")),n.element.add(n._wrapper).off(n._transitionEndEvents,o),n.element.addClass(i.classes.panelClosed),n._wrapper.removeClass(n._contentWrapOpenClasses).addClass(i.classes.contentWrapClosed),n._fixedToolbar.removeClass(n._fixedToolbarOpenClasses).addClass(i.classes.contentFixedToolbarClosed),n._fixPanel(),n._unbindFixListener(),e.mobile.resetActivePageHeight(),n._page.jqmRemoveData("panel"),n._trigger("close")};0>this.element.closest(".ui-page-active").length&&(t=!0),n._trigger("beforeclose"),a(),n._open=!1}},toggle:function(){this[this._open?"close":"open"]()},_transitionEndEvents:"webkitTransitionEnd oTransitionEnd otransitionend transitionend msTransitionEnd",_destroy:function(){var t=this.options.classes,i=this.options.theme,n=this.element.siblings("."+t.panel).length;n?this._open&&(this._wrapper.removeClass(t.contentWrapOpen),this._fixedToolbar.removeClass(t.contentFixedToolbarOpen),this._page.jqmRemoveData("panel"),this._page.removeClass(t.pagePanelOpen),i&&this._page.removeClass("ui-body-"+i).addClass(this._pageTheme)):(this._wrapper.children().unwrap(),this._page.find("a").unbind("panelopen panelclose"),this._page.removeClass(t.pagePanel),this._open&&(this._page.jqmRemoveData("panel"),this._page.removeClass(t.pagePanelOpen),i&&this._page.removeClass("ui-body-"+i).addClass(this._pageTheme),e.mobile.resetActivePageHeight())),this._panelInner.children().unwrap(),this.element.removeClass([this._getPanelClasses(),t.panelAnimate].join(" ")).off("swipeleft.panel swiperight.panel").off("panelbeforeopen").off("panelhide").off("keyup.panel").off("updatelayout"),this._closeLink.off("click.panel"),this._modal&&this._modal.remove(),this.element.off(this._transitionEndEvents).removeClass([t.panelUnfixed,t.panelClosed,t.panelOpen].join(" "))}}),e(i).bind("pagecreate create",function(t){e.mobile.panel.prototype.enhanceWithin(t.target)})}(e),function(e,t){e.widget("mobile.table",e.mobile.widget,{options:{classes:{table:"ui-table"},initSelector:":jqmData(role='table')"},_create:function(){var e=this;e.refresh(!0)},refresh:function(i){var n=this,a=this.element.find("thead tr");i&&this.element.addClass(this.options.classes.table),n.headers=this.element.find("tr:eq(0)").children(),n.allHeaders=n.headers.add(a.children()),a.each(function(){var o=0;e(this).children().each(function(){var s=parseInt(e(this).attr("colspan"),10),r=":nth-child("+(o+1)+")";if(e(this).jqmData("colstart",o+1),s)for(var l=0;s-1>l;l++)o++,r+=", :nth-child("+(o+1)+")";i===t&&e(this).jqmData("cells",""),e(this).jqmData("cells",n.element.find("tr").not(a.eq(0)).not(this).children(r)),o++})}),i===t&&this.element.trigger("refresh")}}),e.mobile.document.bind("pagecreate create",function(t){e.mobile.table.prototype.enhanceWithin(t.target)})}(e),function(e,t){e.mobile.table.prototype.options.mode="columntoggle",e.mobile.table.prototype.options.columnBtnTheme=null,e.mobile.table.prototype.options.columnPopupTheme=null,e.mobile.table.prototype.options.columnBtnText="Columns...",e.mobile.table.prototype.options.classes=e.extend(e.mobile.table.prototype.options.classes,{popup:"ui-table-columntoggle-popup",columnBtn:"ui-table-columntoggle-btn",priorityPrefix:"ui-table-priority-",columnToggleTable:"ui-table-columntoggle"}),e.mobile.document.delegate(":jqmData(role='table')","tablecreate refresh",function(i){var n,a,o,s,r=e(this),l=r.data("mobile-table"),d=i.type,c=l.options,h=e.mobile.ns,u=(r.attr("id")||c.classes.popup)+"-popup";"columntoggle"===c.mode&&("refresh"!==d&&(l.element.addClass(c.classes.columnToggleTable),n=e(""+c.columnBtnText+""),a=e(""),o=e("")),l.headers.not("td").each(function(t){var i=e(this).jqmData("priority"),n=e(this).add(e(this).jqmData("cells"));i&&(n.addClass(c.classes.priorityPrefix+i),"refresh"!==d?e(""+e(this).text()+"").appendTo(o).children(0).jqmData("cells",n).checkboxradio({theme:c.columnPopupTheme}):e("#"+u+" fieldset div:eq("+t+")").find("input").jqmData("cells",n))}),"refresh"!==d&&o.appendTo(a),s=o===t?e("#"+u+" fieldset"):o,"refresh"!==d&&(s.on("change","input",function(){this.checked?e(this).jqmData("cells").removeClass("ui-table-cell-hidden").addClass("ui-table-cell-visible"):e(this).jqmData("cells").removeClass("ui-table-cell-visible").addClass("ui-table-cell-hidden")}),n.insertBefore(r).buttonMarkup({theme:c.columnBtnTheme}),a.insertBefore(r).popup()),l.update=function(){s.find("input").each(function(){this.checked?(this.checked="table-cell"===e(this).jqmData("cells").eq(0).css("display"),"refresh"===d&&e(this).jqmData("cells").addClass("ui-table-cell-visible")):e(this).jqmData("cells").addClass("ui-table-cell-hidden"),e(this).checkboxradio("refresh")})},e.mobile.window.on("throttledresize",l.update),l.update())})}(e),function(e){e.mobile.table.prototype.options.mode="reflow",e.mobile.table.prototype.options.classes=e.extend(e.mobile.table.prototype.options.classes,{reflowTable:"ui-table-reflow",cellLabels:"ui-table-cell-label"}),e.mobile.document.delegate(":jqmData(role='table')","tablecreate refresh",function(t){var i=e(this),n=t.type,a=i.data("mobile-table"),o=a.options;if("reflow"===o.mode){"refresh"!==n&&a.element.addClass(o.classes.reflowTable);var s=e(a.allHeaders.get().reverse());s.each(function(){var t=e(this).jqmData("cells"),i=e(this).jqmData("colstart"),n=t.not(this).filter("thead th").length&&" ui-table-cell-label-top",a=e(this).text();if(""!==a)if(n){var s=parseInt(e(this).attr("colspan"),10),r="";s&&(r="td:nth-child("+s+"n + "+i+")"),t.filter(r).prepend(""+a+"")}else t.prepend(""+a+"")})}})}(e),function(e,t){function i(e){o=e.originalEvent,d=o.accelerationIncludingGravity,s=Math.abs(d.x),r=Math.abs(d.y),l=Math.abs(d.z),!t.orientation&&(s>7||(l>6&&8>r||8>l&&r>6)&&s>5)?c.enabled&&c.disable():c.enabled||c.enable()}e.mobile.iosorientationfixEnabled=!0;var a=navigator.userAgent;if(!(/iPhone|iPad|iPod/.test(navigator.platform)&&/OS [1-5]_[0-9_]* like Mac OS X/i.test(a)&&a.indexOf("AppleWebKit")>-1))return e.mobile.iosorientationfixEnabled=!1,n;var o,s,r,l,d,c=e.mobile.zoom;e.mobile.document.on("mobileinit",function(){e.mobile.iosorientationfixEnabled&&e.mobile.window.bind("orientationchange.iosorientationfix",c.enable).bind("devicemotion.iosorientationfix",i)})}(e,this),function(e,t){function n(){a.removeClass("ui-mobile-rendering")}var a=e("html"),o=(e("head"),e.mobile.window);e(t.document).trigger("mobileinit"),e.mobile.gradeA()&&(e.mobile.ajaxBlacklist&&(e.mobile.ajaxEnabled=!1),a.addClass("ui-mobile ui-mobile-rendering"),setTimeout(n,5e3),e.extend(e.mobile,{initializePage:function(){var t=e.mobile.path,a=e(":jqmData(role='page'), :jqmData(role='dialog')"),s=t.stripHash(t.stripQueryParams(t.parseLocation().hash)),r=i.getElementById(s);a.length||(a=e("body").wrapInner("").children(0)),a.each(function(){var t=e(this);t.jqmData("url")||t.attr("data-"+e.mobile.ns+"url",t.attr("id")||location.pathname+location.search)}),e.mobile.firstPage=a.first(),e.mobile.pageContainer=e.mobile.firstPage.parent().addClass("ui-mobile-viewport"),o.trigger("pagecontainercreate"),e.mobile.showPageLoadingMsg(),n(),e.mobile.hashListeningEnabled&&e.mobile.path.isHashValid(location.hash)&&(e(r).is(':jqmData(role="page")')||e.mobile.path.isPath(s)||s===e.mobile.dialogHashKey)?e.event.special.navigate.isPushStateEnabled()?(e.mobile.navigate.history.stack=[],e.mobile.navigate(e.mobile.path.isPath(location.hash)?location.hash:location.href)):o.trigger("hashchange",[!0]):(e.mobile.path.isHashValid(location.hash)&&(e.mobile.urlHistory.initialDst=s.replace("#","")),e.event.special.navigate.isPushStateEnabled()&&e.mobile.navigate.navigator.squash(t.parseLocation().href),e.mobile.changePage(e.mobile.firstPage,{transition:"none",reverse:!0,changeHash:!1,fromHashChange:!0}))}}),e.mobile.navreadyDeferred.resolve(),e(function(){t.scrollTo(0,1),e.mobile.defaultHomeScroll=e.support.scrollTop&&1!==e.mobile.window.scrollTop()?1:0,e.mobile.autoInitializePage&&e.mobile.initializePage(),o.load(e.mobile.silentScroll),e.support.cssPointerEvents||e.mobile.document.delegate(".ui-disabled","vclick",function(e){e.preventDefault(),e.stopImmediatePropagation()})}))}(e,this)}); -//@ sourceMappingURL=jquery.mobile-1.3.1.min.map \ No newline at end of file diff --git a/themes/smartpocket/js/klass.min.js b/themes/smartpocket/js/klass.min.js deleted file mode 100644 index 771a1b764..000000000 --- a/themes/smartpocket/js/klass.min.js +++ /dev/null @@ -1,8 +0,0 @@ -/** - * Klass.js - copyright @dedfat - * version 1.0 - * https://github.com/ded/klass - * Follow our software http://twitter.com/dedfat :) - * MIT License - */ -!function(a,b){function j(a,b){function c(){}c[e]=this[e];var d=this,g=new c,h=f(a),j=h?a:this,k=h?{}:a,l=function(){this.initialize?this.initialize.apply(this,arguments):(b||h&&d.apply(this,arguments),j.apply(this,arguments))};l.methods=function(a){i(g,a,d),l[e]=g;return this},l.methods.call(l,k).prototype.constructor=l,l.extend=arguments.callee,l[e].implement=l.statics=function(a,b){a=typeof a=="string"?function(){var c={};c[a]=b;return c}():a,i(this,a,d);return this};return l}function i(a,b,d){for(var g in b)b.hasOwnProperty(g)&&(a[g]=f(b[g])&&f(d[e][g])&&c.test(b[g])?h(g,b[g],d):b[g])}function h(a,b,c){return function(){var d=this.supr;this.supr=c[e][a];var f=b.apply(this,arguments);this.supr=d;return f}}function g(a){return j.call(f(a)?a:d,a,1)}var c=/xyz/.test(function(){xyz})?/\bsupr\b/:/.*/,d=function(){},e="prototype",f=function(a){return typeof a===b};if(typeof module!="undefined"&&module.exports)module.exports=g;else{var k=a.klass;g.noConflict=function(){a.klass=k;return this},a.klass=g}}(this,"function") diff --git a/themes/smartpocket/js/smartpocket.js b/themes/smartpocket/js/smartpocket.js deleted file mode 100644 index ee87a44d7..000000000 --- a/themes/smartpocket/js/smartpocket.js +++ /dev/null @@ -1,49 +0,0 @@ -(function(window, $, PhotoSwipe){ - $(document).ready(function(){ - var more_link - var options = { - jQueryMobile: true, - loop: var_loop, - captionAndToolbarAutoHideDelay: var_autohide, - imageScaleMethod: "fitNoUpscale", - getToolbar: function(){ -return ''+var_trad+'';}, - getImageMetaData:function(el){ - return { - picture_url: $(el).attr('data-picture-url'), - image_id: $(el).attr('data-image-id'), - };} - }; - var myPhotoSwipe = $(".thumbnails a").photoSwipe(options); - // onShow - store a reference to our "more_link" button - myPhotoSwipe.addEventHandler(PhotoSwipe.EventTypes.onShow, function(e){ - more_link = window.document.querySelectorAll('#more_link')[0]; - }); - // onToolbarTap - listen out for when the toolbar is tapped - myPhotoSwipe.addEventHandler(PhotoSwipe.EventTypes.onToolbarTap, function(e){ - if (e.toolbarAction === PhotoSwipe.Toolbar.ToolbarAction.none){ - if (e.tapTarget === more_link || Util.DOM.isChildOf(e.tapTarget, more_link)){ - var currentImage = myPhotoSwipe.getCurrentImage(); - window.location=currentImage.metaData.picture_url; - } - } - }); - - myPhotoSwipe.addEventHandler(PhotoSwipe.EventTypes.onDisplayImage, function(e) { - var currentImage = myPhotoSwipe.getCurrentImage(); - - jQuery.ajax({ - type: "POST", - url: 'ws.php?format=json&method=smartpocket.images.logHistory', - data: { - image_id:currentImage.metaData.image_id, - cat_id:jQuery("ul.thumbnails").data("cat_id"), - section:jQuery("ul.thumbnails").data("section"), - tags_string:jQuery("ul.thumbnails").data("tags_string"), - } - }); - }); - - var spThumbs = new SPThumbs(SPThumbsOpts); - }); -}(window, window.jQuery, window.Code.PhotoSwipe)); diff --git a/themes/smartpocket/js/thumb.arrange.js b/themes/smartpocket/js/thumb.arrange.js deleted file mode 100644 index f43c5d824..000000000 --- a/themes/smartpocket/js/thumb.arrange.js +++ /dev/null @@ -1,170 +0,0 @@ - -function SPTLine(margin, rowHeight) { - this.elements = new Array; - this.margin = margin; - this.rowHeight = rowHeight; - this.maxHeight = 0; -} - -SPTLine.prototype = { - width: 0, - elementsWidth: 0, - firstThumbIndex: 0, - - add: function($elt, absIndex) { - if (this.elements.length === 0) - this.firstThumbIndex = absIndex; - if (!$elt.data("w")) - { - var w=$elt.width(), h=$elt.height(); - if (h > this.rowHeight) { - w = Math.round(w * this.rowHeight/h); - h = this.rowHeight; - } - $elt.data("w", w) - .data("h", h); - } - - var eltObj = { - $elt: $elt, - w: $elt.data("w"), - h: $elt.data("h") - }; - this.elements.push(eltObj); - - if (eltObj.h > this.maxHeight) - this.maxHeight = eltObj.h; - - this.width += this.margin + eltObj.w; - this.elementsWidth += eltObj.w; - }, - - clear: function() { - if (!this.elements.length) return; - this.width = this.elementsWidth = 0; - this.maxHeight = 0; - this.elements.length = 0; - } -} - - -function SPThumbs(options) { - this.opts = options; - - this.$thumbs = $('.thumbnails'); - if (this.$thumbs.length==0) return; - this.$thumbs.css('text-align', 'left'); - - this.opts.extraRowHeight = 0; - if (window.devicePixelRatio > 1) { - var dpr = window.devicePixelRatio; - this.opts.extraRowHeight = 6; /*loose sharpness but only for small screens when we could "almost" fit with full sharpness*/ - this.opts.rowHeight = Math.round(this.opts.rowHeight / dpr ) + this.opts.extraRowHeight; - } - this.process(); - - var that = this; - $(window).on('resize', function() { - if (Math.abs(that.$thumbs.width() - that.prevContainerWidth)>1) - that.process(); - }) - .on('RVTS_loaded', function(evt, down) { - that.process( down && that.$thumbs.width() == that.prevContainerWidth ? that.prevLastLineFirstThumbIndex : 0); - } ); -} - -SPThumbs.prototype = { - prevContainerWidth:0, - prevLastLineFirstThumbIndex: 0, - - process: function(startIndex) { - startIndex = startIndex ? startIndex : 0; - var containerWidth = this.$thumbs.width() - , maxExtraMarginPerThumb = 1; - this.prevContainerWidth = containerWidth; - - var $elts = $('li.liVisible>a>img', this.$thumbs) - , line = new SPTLine(this.opts.hMargin, this.opts.rowHeight); - - for (var i=startIndex; i<$elts.length; i++) { - var $elt = $( $elts[i] ); - - line.add($elt, i); - if (line.width >= containerWidth - maxExtraMarginPerThumb * line.elements.length) { - this.processLine(line, containerWidth); - line.clear(); - } - }; - - if(line.elements.length) - this.processLine(line, containerWidth, true); - this.prevLastLineFirstThumbIndex = line.firstThumbIndex; - }, - - processLine: function(line, containerWidth, lastLine) { - var toRecover, eltW, eltH - , rowHeight = line.maxHeight ? line.maxHeight : line.elements[0].h; - - if (line.width / containerWidth > 1.01) { - var ratio = line.elementsWidth / (line.elementsWidth + containerWidth - line.width); - var adjustedRowHeight = rowHeight / (1 + (ratio-1) * 0.95 ); - adjustedRowHeight = 6 * Math.round( adjustedRowHeight/6 ); - if (adjustedRowHeight < rowHeight / ratio ) { - adjustedRowHeight = Math.ceil( rowHeight / ratio ); - var missing = this.opts.rowHeight - this.opts.extraRowHeight - adjustedRowHeight; - if (missing>0 && missing<6) - adjustedRowHeight += missing; - } - if (adjustedRowHeight < rowHeight) - rowHeight = adjustedRowHeight; - } - else if (lastLine) - rowHeight = Math.min( rowHeight, this.opts.rowHeight - this.opts.extraRowHeight); - - toRecover = line.width - containerWidth; - if (lastLine) - toRecover = 0; - - for(var i=0; i rowHeight ) { - eltW = Math.round( eltW * rowHeight/eltObj.h ); - eltH = rowHeight; - eltToRecover -= eltObj.w - eltW; - if (lastLine) - eltToRecover = 0; - } - - this.reposition(eltObj.$elt, eltW, eltH, eltW-eltToRecover, rowHeight); - } - }, - - reposition: function($img, imgW, imgH, liW, liH) { - $img.attr("width", imgW) - .attr("height", imgH); - - $img.closest("li").css( { - width: liW+"px", - height: liH+"px" - }); - - $img.parent("a").css( { - left: Math.round((liW-imgW)/2)+"px", - top: Math.round((liH-imgH)/2)+"px" - }); - } - -} - diff --git a/themes/smartpocket/language/ar_SA/index.php b/themes/smartpocket/language/ar_SA/index.php deleted file mode 100644 index ec6605317..000000000 --- a/themes/smartpocket/language/ar_SA/index.php +++ /dev/null @@ -1,7 +0,0 @@ - diff --git a/themes/smartpocket/language/ar_SA/theme.lang.php b/themes/smartpocket/language/ar_SA/theme.lang.php deleted file mode 100644 index 372402ad7..000000000 --- a/themes/smartpocket/language/ar_SA/theme.lang.php +++ /dev/null @@ -1,12 +0,0 @@ - diff --git a/themes/smartpocket/language/bg_BG/theme.lang.php b/themes/smartpocket/language/bg_BG/theme.lang.php deleted file mode 100644 index 205a33d3a..000000000 --- a/themes/smartpocket/language/bg_BG/theme.lang.php +++ /dev/null @@ -1,13 +0,0 @@ - \ No newline at end of file diff --git a/themes/smartpocket/language/br_FR/index.php b/themes/smartpocket/language/br_FR/index.php deleted file mode 100644 index ec6605317..000000000 --- a/themes/smartpocket/language/br_FR/index.php +++ /dev/null @@ -1,7 +0,0 @@ - diff --git a/themes/smartpocket/language/br_FR/theme.lang.php b/themes/smartpocket/language/br_FR/theme.lang.php deleted file mode 100644 index 05eae241e..000000000 --- a/themes/smartpocket/language/br_FR/theme.lang.php +++ /dev/null @@ -1,13 +0,0 @@ - \ No newline at end of file diff --git a/themes/smartpocket/language/ca_ES/index.php b/themes/smartpocket/language/ca_ES/index.php deleted file mode 100644 index ec6605317..000000000 --- a/themes/smartpocket/language/ca_ES/index.php +++ /dev/null @@ -1,7 +0,0 @@ - diff --git a/themes/smartpocket/language/ca_ES/theme.lang.php b/themes/smartpocket/language/ca_ES/theme.lang.php deleted file mode 100644 index db36f9b9f..000000000 --- a/themes/smartpocket/language/ca_ES/theme.lang.php +++ /dev/null @@ -1,13 +0,0 @@ - \ No newline at end of file diff --git a/themes/smartpocket/language/cs_CZ/index.php b/themes/smartpocket/language/cs_CZ/index.php deleted file mode 100644 index c01bbd832..000000000 --- a/themes/smartpocket/language/cs_CZ/index.php +++ /dev/null @@ -1,15 +0,0 @@ - diff --git a/themes/smartpocket/language/cs_CZ/theme.lang.php b/themes/smartpocket/language/cs_CZ/theme.lang.php deleted file mode 100644 index 58f46876a..000000000 --- a/themes/smartpocket/language/cs_CZ/theme.lang.php +++ /dev/null @@ -1,7 +0,0 @@ - \ No newline at end of file diff --git a/themes/smartpocket/language/da_DK/index.php b/themes/smartpocket/language/da_DK/index.php deleted file mode 100644 index ec6605317..000000000 --- a/themes/smartpocket/language/da_DK/index.php +++ /dev/null @@ -1,7 +0,0 @@ - diff --git a/themes/smartpocket/language/da_DK/theme.lang.php b/themes/smartpocket/language/da_DK/theme.lang.php deleted file mode 100644 index 716e0b1c9..000000000 --- a/themes/smartpocket/language/da_DK/theme.lang.php +++ /dev/null @@ -1,13 +0,0 @@ - \ No newline at end of file diff --git a/themes/smartpocket/language/de_DE/index.php b/themes/smartpocket/language/de_DE/index.php deleted file mode 100644 index ec6605317..000000000 --- a/themes/smartpocket/language/de_DE/index.php +++ /dev/null @@ -1,7 +0,0 @@ - diff --git a/themes/smartpocket/language/de_DE/theme.lang.php b/themes/smartpocket/language/de_DE/theme.lang.php deleted file mode 100644 index 182df69a7..000000000 --- a/themes/smartpocket/language/de_DE/theme.lang.php +++ /dev/null @@ -1,12 +0,0 @@ - diff --git a/themes/smartpocket/language/el_GR/theme.lang.php b/themes/smartpocket/language/el_GR/theme.lang.php deleted file mode 100644 index 7d174dcbe..000000000 --- a/themes/smartpocket/language/el_GR/theme.lang.php +++ /dev/null @@ -1,13 +0,0 @@ - \ No newline at end of file diff --git a/themes/smartpocket/language/en_UK/index.php b/themes/smartpocket/language/en_UK/index.php deleted file mode 100644 index c01bbd832..000000000 --- a/themes/smartpocket/language/en_UK/index.php +++ /dev/null @@ -1,15 +0,0 @@ - diff --git a/themes/smartpocket/language/en_UK/theme.lang.php b/themes/smartpocket/language/en_UK/theme.lang.php deleted file mode 100644 index 51aabe3fd..000000000 --- a/themes/smartpocket/language/en_UK/theme.lang.php +++ /dev/null @@ -1,7 +0,0 @@ - \ No newline at end of file diff --git a/themes/smartpocket/language/eo_EO/index.php b/themes/smartpocket/language/eo_EO/index.php deleted file mode 100644 index ec6605317..000000000 --- a/themes/smartpocket/language/eo_EO/index.php +++ /dev/null @@ -1,7 +0,0 @@ - diff --git a/themes/smartpocket/language/eo_EO/theme.lang.php b/themes/smartpocket/language/eo_EO/theme.lang.php deleted file mode 100644 index fa20fc806..000000000 --- a/themes/smartpocket/language/eo_EO/theme.lang.php +++ /dev/null @@ -1,13 +0,0 @@ - \ No newline at end of file diff --git a/themes/smartpocket/language/es_ES/index.php b/themes/smartpocket/language/es_ES/index.php deleted file mode 100644 index ec6605317..000000000 --- a/themes/smartpocket/language/es_ES/index.php +++ /dev/null @@ -1,7 +0,0 @@ - diff --git a/themes/smartpocket/language/es_ES/theme.lang.php b/themes/smartpocket/language/es_ES/theme.lang.php deleted file mode 100644 index bf2ab9e3d..000000000 --- a/themes/smartpocket/language/es_ES/theme.lang.php +++ /dev/null @@ -1,13 +0,0 @@ - \ No newline at end of file diff --git a/themes/smartpocket/language/es_MX/index.php b/themes/smartpocket/language/es_MX/index.php deleted file mode 100644 index ec6605317..000000000 --- a/themes/smartpocket/language/es_MX/index.php +++ /dev/null @@ -1,7 +0,0 @@ - diff --git a/themes/smartpocket/language/es_MX/theme.lang.php b/themes/smartpocket/language/es_MX/theme.lang.php deleted file mode 100644 index ed3c47c50..000000000 --- a/themes/smartpocket/language/es_MX/theme.lang.php +++ /dev/null @@ -1,12 +0,0 @@ - diff --git a/themes/smartpocket/language/et_EE/theme.lang.php b/themes/smartpocket/language/et_EE/theme.lang.php deleted file mode 100644 index 39d9ad72b..000000000 --- a/themes/smartpocket/language/et_EE/theme.lang.php +++ /dev/null @@ -1,13 +0,0 @@ - \ No newline at end of file diff --git a/themes/smartpocket/language/eu_ES/theme.lang.php b/themes/smartpocket/language/eu_ES/theme.lang.php deleted file mode 100644 index ce2b8f727..000000000 --- a/themes/smartpocket/language/eu_ES/theme.lang.php +++ /dev/null @@ -1,12 +0,0 @@ - diff --git a/themes/smartpocket/language/fa_IR/theme.lang.php b/themes/smartpocket/language/fa_IR/theme.lang.php deleted file mode 100644 index 3dc2ce246..000000000 --- a/themes/smartpocket/language/fa_IR/theme.lang.php +++ /dev/null @@ -1,13 +0,0 @@ - \ No newline at end of file diff --git a/themes/smartpocket/language/fi_FI/index.php b/themes/smartpocket/language/fi_FI/index.php deleted file mode 100644 index ec6605317..000000000 --- a/themes/smartpocket/language/fi_FI/index.php +++ /dev/null @@ -1,7 +0,0 @@ - diff --git a/themes/smartpocket/language/fi_FI/theme.lang.php b/themes/smartpocket/language/fi_FI/theme.lang.php deleted file mode 100644 index e44ecce1d..000000000 --- a/themes/smartpocket/language/fi_FI/theme.lang.php +++ /dev/null @@ -1,13 +0,0 @@ - \ No newline at end of file diff --git a/themes/smartpocket/language/fr_CA/index.php b/themes/smartpocket/language/fr_CA/index.php deleted file mode 100644 index c01bbd832..000000000 --- a/themes/smartpocket/language/fr_CA/index.php +++ /dev/null @@ -1,15 +0,0 @@ - diff --git a/themes/smartpocket/language/fr_CA/theme.lang.php b/themes/smartpocket/language/fr_CA/theme.lang.php deleted file mode 100644 index 322ac7714..000000000 --- a/themes/smartpocket/language/fr_CA/theme.lang.php +++ /dev/null @@ -1,7 +0,0 @@ - \ No newline at end of file diff --git a/themes/smartpocket/language/fr_FR/index.php b/themes/smartpocket/language/fr_FR/index.php deleted file mode 100644 index c01bbd832..000000000 --- a/themes/smartpocket/language/fr_FR/index.php +++ /dev/null @@ -1,15 +0,0 @@ - diff --git a/themes/smartpocket/language/fr_FR/theme.lang.php b/themes/smartpocket/language/fr_FR/theme.lang.php deleted file mode 100644 index 322ac7714..000000000 --- a/themes/smartpocket/language/fr_FR/theme.lang.php +++ /dev/null @@ -1,7 +0,0 @@ - \ No newline at end of file diff --git a/themes/smartpocket/language/gl_ES/index.php b/themes/smartpocket/language/gl_ES/index.php deleted file mode 100644 index ec6605317..000000000 --- a/themes/smartpocket/language/gl_ES/index.php +++ /dev/null @@ -1,7 +0,0 @@ - diff --git a/themes/smartpocket/language/gl_ES/theme.lang.php b/themes/smartpocket/language/gl_ES/theme.lang.php deleted file mode 100644 index 927efe911..000000000 --- a/themes/smartpocket/language/gl_ES/theme.lang.php +++ /dev/null @@ -1,12 +0,0 @@ - diff --git a/themes/smartpocket/language/he_IL/theme.lang.php b/themes/smartpocket/language/he_IL/theme.lang.php deleted file mode 100644 index 8a12f899f..000000000 --- a/themes/smartpocket/language/he_IL/theme.lang.php +++ /dev/null @@ -1,13 +0,0 @@ - \ No newline at end of file diff --git a/themes/smartpocket/language/hu_HU/index.php b/themes/smartpocket/language/hu_HU/index.php deleted file mode 100644 index ec6605317..000000000 --- a/themes/smartpocket/language/hu_HU/index.php +++ /dev/null @@ -1,7 +0,0 @@ - diff --git a/themes/smartpocket/language/hu_HU/theme.lang.php b/themes/smartpocket/language/hu_HU/theme.lang.php deleted file mode 100644 index fd29852cd..000000000 --- a/themes/smartpocket/language/hu_HU/theme.lang.php +++ /dev/null @@ -1,12 +0,0 @@ - diff --git a/themes/smartpocket/language/it_IT/theme.lang.php b/themes/smartpocket/language/it_IT/theme.lang.php deleted file mode 100644 index fd6de237e..000000000 --- a/themes/smartpocket/language/it_IT/theme.lang.php +++ /dev/null @@ -1,13 +0,0 @@ - \ No newline at end of file diff --git a/themes/smartpocket/language/ja_JP/index.php b/themes/smartpocket/language/ja_JP/index.php deleted file mode 100644 index ec6605317..000000000 --- a/themes/smartpocket/language/ja_JP/index.php +++ /dev/null @@ -1,7 +0,0 @@ - diff --git a/themes/smartpocket/language/ja_JP/theme.lang.php b/themes/smartpocket/language/ja_JP/theme.lang.php deleted file mode 100644 index 07925a97c..000000000 --- a/themes/smartpocket/language/ja_JP/theme.lang.php +++ /dev/null @@ -1,12 +0,0 @@ - diff --git a/themes/smartpocket/language/km_KH/theme.lang.php b/themes/smartpocket/language/km_KH/theme.lang.php deleted file mode 100644 index 85c1bcc3a..000000000 --- a/themes/smartpocket/language/km_KH/theme.lang.php +++ /dev/null @@ -1,13 +0,0 @@ - \ No newline at end of file diff --git a/themes/smartpocket/language/lt_LT/index.php b/themes/smartpocket/language/lt_LT/index.php deleted file mode 100644 index ec6605317..000000000 --- a/themes/smartpocket/language/lt_LT/index.php +++ /dev/null @@ -1,7 +0,0 @@ - diff --git a/themes/smartpocket/language/lt_LT/theme.lang.php b/themes/smartpocket/language/lt_LT/theme.lang.php deleted file mode 100644 index 4cdf165ee..000000000 --- a/themes/smartpocket/language/lt_LT/theme.lang.php +++ /dev/null @@ -1,13 +0,0 @@ - \ No newline at end of file diff --git a/themes/smartpocket/language/lv_LV/index.php b/themes/smartpocket/language/lv_LV/index.php deleted file mode 100644 index ec6605317..000000000 --- a/themes/smartpocket/language/lv_LV/index.php +++ /dev/null @@ -1,7 +0,0 @@ - diff --git a/themes/smartpocket/language/lv_LV/theme.lang.php b/themes/smartpocket/language/lv_LV/theme.lang.php deleted file mode 100644 index b8a76a206..000000000 --- a/themes/smartpocket/language/lv_LV/theme.lang.php +++ /dev/null @@ -1,13 +0,0 @@ - \ No newline at end of file diff --git a/themes/smartpocket/language/mn_MN/index.php b/themes/smartpocket/language/mn_MN/index.php deleted file mode 100644 index ec6605317..000000000 --- a/themes/smartpocket/language/mn_MN/index.php +++ /dev/null @@ -1,7 +0,0 @@ - diff --git a/themes/smartpocket/language/mn_MN/theme.lang.php b/themes/smartpocket/language/mn_MN/theme.lang.php deleted file mode 100644 index fdfcba58a..000000000 --- a/themes/smartpocket/language/mn_MN/theme.lang.php +++ /dev/null @@ -1,13 +0,0 @@ - \ No newline at end of file diff --git a/themes/smartpocket/language/nb_NO/index.php b/themes/smartpocket/language/nb_NO/index.php deleted file mode 100644 index ec6605317..000000000 --- a/themes/smartpocket/language/nb_NO/index.php +++ /dev/null @@ -1,7 +0,0 @@ - diff --git a/themes/smartpocket/language/nb_NO/theme.lang.php b/themes/smartpocket/language/nb_NO/theme.lang.php deleted file mode 100644 index 118b984fb..000000000 --- a/themes/smartpocket/language/nb_NO/theme.lang.php +++ /dev/null @@ -1,13 +0,0 @@ - \ No newline at end of file diff --git a/themes/smartpocket/language/nl_NL/index.php b/themes/smartpocket/language/nl_NL/index.php deleted file mode 100644 index ec6605317..000000000 --- a/themes/smartpocket/language/nl_NL/index.php +++ /dev/null @@ -1,7 +0,0 @@ - diff --git a/themes/smartpocket/language/nl_NL/theme.lang.php b/themes/smartpocket/language/nl_NL/theme.lang.php deleted file mode 100644 index c14ff5708..000000000 --- a/themes/smartpocket/language/nl_NL/theme.lang.php +++ /dev/null @@ -1,12 +0,0 @@ - diff --git a/themes/smartpocket/language/nn_NO/theme.lang.php b/themes/smartpocket/language/nn_NO/theme.lang.php deleted file mode 100644 index 8e58c2912..000000000 --- a/themes/smartpocket/language/nn_NO/theme.lang.php +++ /dev/null @@ -1,13 +0,0 @@ - \ No newline at end of file diff --git a/themes/smartpocket/language/pl_PL/index.php b/themes/smartpocket/language/pl_PL/index.php deleted file mode 100644 index ec6605317..000000000 --- a/themes/smartpocket/language/pl_PL/index.php +++ /dev/null @@ -1,7 +0,0 @@ - diff --git a/themes/smartpocket/language/pl_PL/theme.lang.php b/themes/smartpocket/language/pl_PL/theme.lang.php deleted file mode 100644 index 932e96448..000000000 --- a/themes/smartpocket/language/pl_PL/theme.lang.php +++ /dev/null @@ -1,12 +0,0 @@ - diff --git a/themes/smartpocket/language/pt_BR/theme.lang.php b/themes/smartpocket/language/pt_BR/theme.lang.php deleted file mode 100644 index 0823ac64d..000000000 --- a/themes/smartpocket/language/pt_BR/theme.lang.php +++ /dev/null @@ -1,13 +0,0 @@ - \ No newline at end of file diff --git a/themes/smartpocket/language/pt_PT/index.php b/themes/smartpocket/language/pt_PT/index.php deleted file mode 100644 index ec6605317..000000000 --- a/themes/smartpocket/language/pt_PT/index.php +++ /dev/null @@ -1,7 +0,0 @@ - diff --git a/themes/smartpocket/language/pt_PT/theme.lang.php b/themes/smartpocket/language/pt_PT/theme.lang.php deleted file mode 100644 index c768a4f37..000000000 --- a/themes/smartpocket/language/pt_PT/theme.lang.php +++ /dev/null @@ -1,13 +0,0 @@ - \ No newline at end of file diff --git a/themes/smartpocket/language/ro_RO/index.php b/themes/smartpocket/language/ro_RO/index.php deleted file mode 100644 index ec6605317..000000000 --- a/themes/smartpocket/language/ro_RO/index.php +++ /dev/null @@ -1,7 +0,0 @@ - diff --git a/themes/smartpocket/language/ro_RO/theme.lang.php b/themes/smartpocket/language/ro_RO/theme.lang.php deleted file mode 100644 index 6526b85ce..000000000 --- a/themes/smartpocket/language/ro_RO/theme.lang.php +++ /dev/null @@ -1,13 +0,0 @@ - \ No newline at end of file diff --git a/themes/smartpocket/language/ru_RU/index.php b/themes/smartpocket/language/ru_RU/index.php deleted file mode 100644 index ec6605317..000000000 --- a/themes/smartpocket/language/ru_RU/index.php +++ /dev/null @@ -1,7 +0,0 @@ - diff --git a/themes/smartpocket/language/ru_RU/theme.lang.php b/themes/smartpocket/language/ru_RU/theme.lang.php deleted file mode 100644 index 61317b0b2..000000000 --- a/themes/smartpocket/language/ru_RU/theme.lang.php +++ /dev/null @@ -1,13 +0,0 @@ - \ No newline at end of file diff --git a/themes/smartpocket/language/sh_RS/index.php b/themes/smartpocket/language/sh_RS/index.php deleted file mode 100644 index ec6605317..000000000 --- a/themes/smartpocket/language/sh_RS/index.php +++ /dev/null @@ -1,7 +0,0 @@ - diff --git a/themes/smartpocket/language/sh_RS/theme.lang.php b/themes/smartpocket/language/sh_RS/theme.lang.php deleted file mode 100644 index e68ba94e9..000000000 --- a/themes/smartpocket/language/sh_RS/theme.lang.php +++ /dev/null @@ -1,12 +0,0 @@ - diff --git a/themes/smartpocket/language/sk_SK/theme.lang.php b/themes/smartpocket/language/sk_SK/theme.lang.php deleted file mode 100644 index 8657d2def..000000000 --- a/themes/smartpocket/language/sk_SK/theme.lang.php +++ /dev/null @@ -1,13 +0,0 @@ - \ No newline at end of file diff --git a/themes/smartpocket/language/sl_SI/index.php b/themes/smartpocket/language/sl_SI/index.php deleted file mode 100644 index ec6605317..000000000 --- a/themes/smartpocket/language/sl_SI/index.php +++ /dev/null @@ -1,7 +0,0 @@ - diff --git a/themes/smartpocket/language/sl_SI/theme.lang.php b/themes/smartpocket/language/sl_SI/theme.lang.php deleted file mode 100644 index 20bec98a7..000000000 --- a/themes/smartpocket/language/sl_SI/theme.lang.php +++ /dev/null @@ -1,13 +0,0 @@ - \ No newline at end of file diff --git a/themes/smartpocket/language/sr_RS/index.php b/themes/smartpocket/language/sr_RS/index.php deleted file mode 100644 index ec6605317..000000000 --- a/themes/smartpocket/language/sr_RS/index.php +++ /dev/null @@ -1,7 +0,0 @@ - diff --git a/themes/smartpocket/language/sr_RS/theme.lang.php b/themes/smartpocket/language/sr_RS/theme.lang.php deleted file mode 100644 index 7727afb3e..000000000 --- a/themes/smartpocket/language/sr_RS/theme.lang.php +++ /dev/null @@ -1,12 +0,0 @@ - diff --git a/themes/smartpocket/language/sv_SE/theme.lang.php b/themes/smartpocket/language/sv_SE/theme.lang.php deleted file mode 100644 index 556aecfcf..000000000 --- a/themes/smartpocket/language/sv_SE/theme.lang.php +++ /dev/null @@ -1,13 +0,0 @@ - \ No newline at end of file diff --git a/themes/smartpocket/language/ta_IN/index.php b/themes/smartpocket/language/ta_IN/index.php deleted file mode 100644 index ec6605317..000000000 --- a/themes/smartpocket/language/ta_IN/index.php +++ /dev/null @@ -1,7 +0,0 @@ - diff --git a/themes/smartpocket/language/ta_IN/theme.lang.php b/themes/smartpocket/language/ta_IN/theme.lang.php deleted file mode 100644 index 441ffc7d2..000000000 --- a/themes/smartpocket/language/ta_IN/theme.lang.php +++ /dev/null @@ -1,13 +0,0 @@ - \ No newline at end of file diff --git a/themes/smartpocket/language/th_TH/index.php b/themes/smartpocket/language/th_TH/index.php deleted file mode 100644 index ec6605317..000000000 --- a/themes/smartpocket/language/th_TH/index.php +++ /dev/null @@ -1,7 +0,0 @@ - diff --git a/themes/smartpocket/language/th_TH/theme.lang.php b/themes/smartpocket/language/th_TH/theme.lang.php deleted file mode 100644 index 19151f285..000000000 --- a/themes/smartpocket/language/th_TH/theme.lang.php +++ /dev/null @@ -1,12 +0,0 @@ - diff --git a/themes/smartpocket/language/tr_TR/theme.lang.php b/themes/smartpocket/language/tr_TR/theme.lang.php deleted file mode 100644 index b746f4589..000000000 --- a/themes/smartpocket/language/tr_TR/theme.lang.php +++ /dev/null @@ -1,13 +0,0 @@ - \ No newline at end of file diff --git a/themes/smartpocket/language/uk_UA/index.php b/themes/smartpocket/language/uk_UA/index.php deleted file mode 100644 index ec6605317..000000000 --- a/themes/smartpocket/language/uk_UA/index.php +++ /dev/null @@ -1,7 +0,0 @@ - diff --git a/themes/smartpocket/language/uk_UA/theme.lang.php b/themes/smartpocket/language/uk_UA/theme.lang.php deleted file mode 100644 index 59fe4b8c6..000000000 --- a/themes/smartpocket/language/uk_UA/theme.lang.php +++ /dev/null @@ -1,13 +0,0 @@ - \ No newline at end of file diff --git a/themes/smartpocket/language/vi_VN/index.php b/themes/smartpocket/language/vi_VN/index.php deleted file mode 100644 index ec6605317..000000000 --- a/themes/smartpocket/language/vi_VN/index.php +++ /dev/null @@ -1,7 +0,0 @@ - diff --git a/themes/smartpocket/language/vi_VN/theme.lang.php b/themes/smartpocket/language/vi_VN/theme.lang.php deleted file mode 100644 index 3328beb28..000000000 --- a/themes/smartpocket/language/vi_VN/theme.lang.php +++ /dev/null @@ -1,13 +0,0 @@ - \ No newline at end of file diff --git a/themes/smartpocket/language/zh_CN/index.php b/themes/smartpocket/language/zh_CN/index.php deleted file mode 100644 index ec6605317..000000000 --- a/themes/smartpocket/language/zh_CN/index.php +++ /dev/null @@ -1,7 +0,0 @@ - diff --git a/themes/smartpocket/language/zh_CN/theme.lang.php b/themes/smartpocket/language/zh_CN/theme.lang.php deleted file mode 100644 index 91ce601ec..000000000 --- a/themes/smartpocket/language/zh_CN/theme.lang.php +++ /dev/null @@ -1,13 +0,0 @@ - \ No newline at end of file diff --git a/themes/smartpocket/language/zh_HK/index.php b/themes/smartpocket/language/zh_HK/index.php deleted file mode 100644 index ec6605317..000000000 --- a/themes/smartpocket/language/zh_HK/index.php +++ /dev/null @@ -1,7 +0,0 @@ - diff --git a/themes/smartpocket/language/zh_HK/theme.lang.php b/themes/smartpocket/language/zh_HK/theme.lang.php deleted file mode 100644 index 7e0b290f7..000000000 --- a/themes/smartpocket/language/zh_HK/theme.lang.php +++ /dev/null @@ -1,13 +0,0 @@ - \ No newline at end of file diff --git a/themes/smartpocket/language/zh_TW/index.php b/themes/smartpocket/language/zh_TW/index.php deleted file mode 100644 index ec6605317..000000000 --- a/themes/smartpocket/language/zh_TW/index.php +++ /dev/null @@ -1,7 +0,0 @@ - diff --git a/themes/smartpocket/language/zh_TW/theme.lang.php b/themes/smartpocket/language/zh_TW/theme.lang.php deleted file mode 100644 index c3c5d5199..000000000 --- a/themes/smartpocket/language/zh_TW/theme.lang.php +++ /dev/null @@ -1,12 +0,0 @@ - - - {'About'|@translate} - {$ABOUT_MESSAGE} - {if isset($THEME_ABOUT) } - {$THEME_ABOUT} - {/if} - {if not empty($about_msgs)} - {foreach from=$about_msgs item=elt} - {$elt} - {/foreach} - {/if} - - diff --git a/themes/smartpocket/template/add_menu_on_public_pages.tpl b/themes/smartpocket/template/add_menu_on_public_pages.tpl deleted file mode 100644 index 7a44575d2..000000000 --- a/themes/smartpocket/template/add_menu_on_public_pages.tpl +++ /dev/null @@ -1,3 +0,0 @@ - - {$MENUBAR} -{assign var='MENUBAR' value=''} \ No newline at end of file diff --git a/themes/smartpocket/template/comment_list.tpl b/themes/smartpocket/template/comment_list.tpl deleted file mode 100644 index 1434939bf..000000000 --- a/themes/smartpocket/template/comment_list.tpl +++ /dev/null @@ -1,12 +0,0 @@ - - {'User comments'|@translate} -{foreach from=$comments item=comment name=comment_loop} - - {if !isset($from) or $from!="picture"} - {/if} - {$comment.AUTHOR} - {$comment.CONTENT} - {if !isset($from) or $from!="comment"}{/if} - -{/foreach} - diff --git a/themes/smartpocket/template/comments.tpl b/themes/smartpocket/template/comments.tpl deleted file mode 100644 index 87328d5ac..000000000 --- a/themes/smartpocket/template/comments.tpl +++ /dev/null @@ -1,9 +0,0 @@ -{include file='infos_errors.tpl'} - - -{if isset($comments)} - {include file='comment_list.tpl' comment_derivative_params=$derivative_params} -{/if} - - - diff --git a/themes/smartpocket/template/footer.tpl b/themes/smartpocket/template/footer.tpl deleted file mode 100644 index 972e8d68b..000000000 --- a/themes/smartpocket/template/footer.tpl +++ /dev/null @@ -1,31 +0,0 @@ -{if !empty($thumb_navbar)} -{include file='navigation_bar.tpl'|@get_extent:'navbar' navbar=$thumb_navbar} -{elseif !empty($navbar) and !isset($ELEMENT_CONTENT)} -{include file='navigation_bar.tpl'|@get_extent:'navbar'} -{else} - -{/if} -{footer_script require='jquery'} -document.cookie = 'screen_size='+jQuery(document).width()+'x'+jQuery(document).height()+';path={$COOKIE_PATH}'; -{/footer_script} -{get_combined_scripts load='footer'} -{if isset($footer_elements)} -{foreach $footer_elements as $v} -{$v} -{/foreach} -{/if} - - - - \ No newline at end of file diff --git a/themes/smartpocket/template/header.tpl b/themes/smartpocket/template/header.tpl deleted file mode 100644 index 8df97c3b3..000000000 --- a/themes/smartpocket/template/header.tpl +++ /dev/null @@ -1,58 +0,0 @@ - - - - - -{if isset($meta_ref) } -{if isset($INFO_AUTHOR)} - -{/if} -{if isset($related_tags)} - -{/if} -{if isset($COMMENT_IMG)} - -{else} - -{/if} -{/if} - - - -{if (isset($REVERSE) and $REVERSE and $PAGE_TITLE == l10n('Home'))} -{$GALLERY_TITLE} | {$PAGE_TITLE}{else} -{$PAGE_TITLE} | {$GALLERY_TITLE}{/if} - - -{get_combined_css} -{foreach from=$themes item=theme} -{if $theme.load_css} -{combine_css path="themes/`$theme.id`/theme.css" order=-10} -{/if} -{if !empty($theme.local_head)}{include file=$theme.local_head load_css=$theme.load_css}{/if} -{/foreach} - -{if isset($U_CANONICAL)}{/if} - -{if not empty($page_refresh) }{/if} - -{get_combined_scripts load='header'} - -{combine_script id='config' path='themes/smartpocket/js/config.js' require='jquery'} -{combine_script id='jquery.mobile' path='themes/smartpocket/js/jquery.mobile.min.js' require='jquery,config'} - - - - - -{if isset($MENUBAR)} - {$MENUBAR} -{/if} - - - - {$GALLERY_TITLE} - Menu - - - diff --git a/themes/smartpocket/template/identification.tpl b/themes/smartpocket/template/identification.tpl deleted file mode 100644 index cf29190da..000000000 --- a/themes/smartpocket/template/identification.tpl +++ /dev/null @@ -1,41 +0,0 @@ -{include file='infos_errors.tpl'} - -{'Identification'|@translate} - - - - {'Username'|@translate} - - - - - - {'Password'|@translate} - - - - {if $authorize_remembering } - - {'Auto login'|@translate} - - - {/if} - - - - - - - - - -{if isset($U_LOST_PASSWORD)} - {'Forgot your password?'|@translate} -{/if} - -{if isset($U_REGISTER)} - {'Register'|@translate} -{/if} - - - diff --git a/themes/smartpocket/template/index.tpl b/themes/smartpocket/template/index.tpl deleted file mode 100644 index 4e3159396..000000000 --- a/themes/smartpocket/template/index.tpl +++ /dev/null @@ -1,11 +0,0 @@ - -{if !empty($CATEGORIES)}{$CATEGORIES}{/if} -{if !empty($THUMBNAILS)}{$THUMBNAILS}{/if} -{if !empty($CONTENT_DESCRIPTION)} - - {$CONTENT_DESCRIPTION} - -{/if} -{if !empty($CONTENT)}{$CONTENT}{/if} - - diff --git a/themes/smartpocket/template/infos_errors.tpl b/themes/smartpocket/template/infos_errors.tpl deleted file mode 100644 index 72ae50f18..000000000 --- a/themes/smartpocket/template/infos_errors.tpl +++ /dev/null @@ -1,23 +0,0 @@ -{if isset($errors)} - - {'Error'|@translate} - Button - {''|@implode:$errors} - -{/if} - -{if not empty($infos)} - - {'Info'|@translate} - Button - {''|@implode:$infos} - -{/if} - -{footer_script}{literal} -$(document).ready(function () { - $('.close-button').click(function() { - $(this).parents('.ui-bar').remove(); - }); -}); -{/literal}{/footer_script} \ No newline at end of file diff --git a/themes/smartpocket/template/mainpage_categories.tpl b/themes/smartpocket/template/mainpage_categories.tpl deleted file mode 100644 index d1cf3cf8b..000000000 --- a/themes/smartpocket/template/mainpage_categories.tpl +++ /dev/null @@ -1,12 +0,0 @@ - -{foreach from=$category_thumbnails item=cat} - - - - {$cat.NAME} - {$cat.CAPTION_NB_IMAGES} - - -{/foreach} - - diff --git a/themes/smartpocket/template/menubar.tpl b/themes/smartpocket/template/menubar.tpl deleted file mode 100644 index dded4611f..000000000 --- a/themes/smartpocket/template/menubar.tpl +++ /dev/null @@ -1,22 +0,0 @@ - - {'Close'|@translate} - -{if !empty($blocks) } - - {foreach from=$blocks key=id item=block} - - {if not empty($block->template)} - {include file=$block->template assign=the_block|@get_extent:$id} - {$the_block|replace:'dt':'h3'|replace:'':''|replace:'':''} - {else} - {$block->raw_content|replace:'dt':'h3'|replace:'':''|replace:'':''} - {/if} - - {/foreach} - -{/if} - - - {'View in'|@translate} - {'Desktop'|@translate} - diff --git a/themes/smartpocket/template/menubar_categories.tpl b/themes/smartpocket/template/menubar_categories.tpl deleted file mode 100644 index 1fc4332f6..000000000 --- a/themes/smartpocket/template/menubar_categories.tpl +++ /dev/null @@ -1,8 +0,0 @@ -{'Albums'|@translate} - -{foreach from=$block->data.MENU_CATEGORIES item=cat} - {$cat.NAME} - {if $cat.count_images > 0}{$cat.count_images}{/if} - -{/foreach} - diff --git a/themes/smartpocket/template/menubar_identification.tpl b/themes/smartpocket/template/menubar_identification.tpl deleted file mode 100644 index 256aa77fc..000000000 --- a/themes/smartpocket/template/menubar_identification.tpl +++ /dev/null @@ -1,8 +0,0 @@ -{'Identification'|@translate} - - {if isset($U_REGISTER)}{'Register'|@translate}{/if} - {if isset($U_LOGIN)}{'Login'|@translate}{/if} - {if isset($U_LOGOUT)}{'Logout'|@translate}{/if} - {if isset($U_PROFILE)}{'Customize'|@translate}{/if} - {if isset($U_ADMIN)}{'Administration'|@translate}{/if} - diff --git a/themes/smartpocket/template/menubar_links.tpl b/themes/smartpocket/template/menubar_links.tpl deleted file mode 100644 index 6bd110032..000000000 --- a/themes/smartpocket/template/menubar_links.tpl +++ /dev/null @@ -1,11 +0,0 @@ -{'Links'|@translate} -{strip} - {foreach from=$block->data item=link} - - - {$link.LABEL} - - - {/foreach} - {/strip} - diff --git a/themes/smartpocket/template/menubar_menu.tpl b/themes/smartpocket/template/menubar_menu.tpl deleted file mode 100644 index a45c5e0c0..000000000 --- a/themes/smartpocket/template/menubar_menu.tpl +++ /dev/null @@ -1,8 +0,0 @@ -{'Menu'|@translate} - - {foreach from=$block->data item=link} - {if is_array($link)} - {$link.NAME}{if isset($link.COUNTER)}{$link.COUNTER}{/if} - {/if} - {/foreach} - \ No newline at end of file diff --git a/themes/smartpocket/template/menubar_specials.tpl b/themes/smartpocket/template/menubar_specials.tpl deleted file mode 100644 index 21bf18a7b..000000000 --- a/themes/smartpocket/template/menubar_specials.tpl +++ /dev/null @@ -1,8 +0,0 @@ -{'Specials'|@translate} - - {foreach $block->data as $key=>$link} - {if in_array($key, array("favorites","most_visited","best_rated","recent_pics","recent_cats","random")) } - {$link.NAME} - {/if} - {/foreach} - diff --git a/themes/smartpocket/template/menubar_tags.tpl b/themes/smartpocket/template/menubar_tags.tpl deleted file mode 100644 index 3f9680054..000000000 --- a/themes/smartpocket/template/menubar_tags.tpl +++ /dev/null @@ -1,12 +0,0 @@ -{'Related tags'|@translate} - - {foreach from=$block->data item=tag} - + - {else} - "{$tag.URL}" title="{'display photos linked to this tag'|@translate}"> - {/if} - {$tag.name} - {/foreach} - diff --git a/themes/smartpocket/template/navigation_bar.tpl b/themes/smartpocket/template/navigation_bar.tpl deleted file mode 100644 index 5347f6847..000000000 --- a/themes/smartpocket/template/navigation_bar.tpl +++ /dev/null @@ -1,14 +0,0 @@ -{capture}{$navbar.pages|@end}{/capture} - - -{strip} - {if isset($navbar.URL_PREV)} - {'Previous'|@translate} - {/if} - {$navbar.CURRENT_PAGE} / {$navbar.pages|@key} - {if isset($navbar.URL_NEXT)} - {'Next'|@translate} - {/if} -{/strip} - - diff --git a/themes/smartpocket/template/notification.tpl b/themes/smartpocket/template/notification.tpl deleted file mode 100644 index b38aac8e6..000000000 --- a/themes/smartpocket/template/notification.tpl +++ /dev/null @@ -1,13 +0,0 @@ -{html_head} - - -{/html_head} -{include file='infos_errors.tpl'} - - - {'Notification'|@translate} - {'The RSS notification feed provides notification on news from this website : new photos, updated albums, new comments. Use a RSS feed reader.'|@translate} - {'Photos only RSS feed'|@translate} - {'Complete RSS feed (photos, comments)'|@translate} - - diff --git a/themes/smartpocket/template/password.tpl b/themes/smartpocket/template/password.tpl deleted file mode 100755 index a45ef819c..000000000 --- a/themes/smartpocket/template/password.tpl +++ /dev/null @@ -1,27 +0,0 @@ -{include file='infos_errors.tpl'} - -{'Forgot your password?'|translate} -{if $action ne 'none'} - - - - {if $action eq 'lost'} - - {'Username or email'|@translate} - - - - - {elseif $action eq 'reset'} - - {'New password'|@translate} - - {'Confirm Password'|@translate} - - - - {/if} - - -{/if} {* $action ne 'none' *} - diff --git a/themes/smartpocket/template/picture.tpl b/themes/smartpocket/template/picture.tpl deleted file mode 100644 index 164aae15e..000000000 --- a/themes/smartpocket/template/picture.tpl +++ /dev/null @@ -1,175 +0,0 @@ -{if isset($errors) or not empty($infos)} -{include file='infos_errors.tpl'} -{/if} - - - {$SECTION_TITLE}{$LEVEL_SEPARATOR}{$current.TITLE} - -{$ELEMENT_CONTENT} - -{include file='picture_nav_buttons.tpl'|@get_extent:'picture_nav_buttons'} - -{if isset($COMMENT_IMG)} -{$COMMENT_IMG} -{/if} - - -{strip} - {if $display_info.author and isset($INFO_AUTHOR)} - - {'Author'|@translate} - {$INFO_AUTHOR} - - {/if} - {if $display_info.created_on and isset($INFO_CREATION_DATE)} - - {'Created on'|@translate} - {$INFO_CREATION_DATE} - - {/if} - {if $display_info.posted_on} - - {'Posted on'|@translate} - {$INFO_POSTED_DATE} - - {/if} - {if $display_info.dimensions and isset($INFO_DIMENSIONS)} - - {'Dimensions'|@translate} - {$INFO_DIMENSIONS} - - {/if} - {if $display_info.file} - - {'File'|@translate} - {$INFO_FILE} - - {/if} - {if $display_info.filesize and isset($INFO_FILESIZE)} - - {'Filesize'|@translate} - {$INFO_FILESIZE} - - {/if} - {if $display_info.tags and isset($related_tags)} - - {'Tags'|@translate} - - {foreach from=$related_tags item=tag name=tag_loop}{if !$smarty.foreach.tag_loop.first}, {/if}{$tag.name}{/foreach} - - - {/if} - {if $display_info.categories and isset($related_categories)} - - {'Albums'|@translate} - - - {foreach from=$related_categories item=cat} - {$cat} - {/foreach} - - - - {/if} - {if $display_info.visits} - - {'Visits'|@translate} - {$INFO_VISITS} - - {/if} - -{if $display_info.rating_score and isset($rate_summary)} - - {'Rating score'|@translate} - - {if $rate_summary.count} - {$rate_summary.score} ({$rate_summary.count|@translate_dec:'%d rate':'%d rates'}) - {else} - {'no rate'|@translate} - {/if} - - -{/if} - -{if isset($rating)} - - - {if isset($rating.USER_RATE)}{'Update your rating'|@translate}{else}{'Rate this photo'|@translate}{/if} - - - - {foreach from=$rating.marks item=mark name=rate_loop} - {if isset($rating.USER_RATE) && $mark==$rating.USER_RATE} - - {else} - - {/if} - {/foreach} - - - -{/if} - - -{if isset($metadata)} - -{foreach from=$metadata item=meta} - {$meta.TITLE} - {foreach from=$meta.lines item=value key=label} - - {$label} - {$value} - - {/foreach} -{/foreach} - -{/if} - - -{if isset($COMMENT_COUNT)} - - {$COMMENT_COUNT|@translate_dec:'%d comment':'%d comments'} - - - {if isset($comment_add)} - - {'Add a comment'|@translate} - - {if $comment_add.SHOW_AUTHOR} - {'Author'|@translate}{if $comment_add.AUTHOR_MANDATORY} ({'mandatory'|@translate}){/if} : - - {/if} - {if $comment_add.SHOW_EMAIL} - {'Email address'|@translate}{if $comment_add.EMAIL_MANDATORY} ({'mandatory'|@translate}){/if} : - - {/if} - {'Website'|@translate} : - - {'Comment'|@translate} ({'mandatory'|@translate}) : - {$comment_add.CONTENT} - - - - - {/if} - {if isset($comments)} - - {if (($COMMENT_COUNT > 2) || !empty($navbar))} - - {if $COMMENT_COUNT > 2} - {$COMMENTS_ORDER_TITLE} - {/if} - {if !empty($navbar) }{include file='navigation_bar.tpl'|@get_extent:'navbar'}{/if} - - {/if} - {include file='comment_list.tpl' from="picture"} - - {/if} - - - -{/if}{*comments*} - -{include file='picture_nav_buttons.tpl'|@get_extent:'picture_nav_buttons'} - - diff --git a/themes/smartpocket/template/picture_content.tpl b/themes/smartpocket/template/picture_content.tpl deleted file mode 100644 index b8dc2277d..000000000 --- a/themes/smartpocket/template/picture_content.tpl +++ /dev/null @@ -1,2 +0,0 @@ - - diff --git a/themes/smartpocket/template/picture_nav_buttons.tpl b/themes/smartpocket/template/picture_nav_buttons.tpl deleted file mode 100644 index c18427f26..000000000 --- a/themes/smartpocket/template/picture_nav_buttons.tpl +++ /dev/null @@ -1,13 +0,0 @@ - -{strip} -{if isset($previous)} - {'Previous'|@translate} -{/if} -{if isset($U_UP) and !isset($slideshow)} - data-iconpos="notext" -{/if} -{if isset($next)} - {'Next'|@translate} -{/if} -{/strip} - diff --git a/themes/smartpocket/template/profile.tpl b/themes/smartpocket/template/profile.tpl deleted file mode 100644 index f4c1b8f25..000000000 --- a/themes/smartpocket/template/profile.tpl +++ /dev/null @@ -1,4 +0,0 @@ -{include file='infos_errors.tpl'} - -{$PROFILE_CONTENT} - diff --git a/themes/smartpocket/template/profile_content.tpl b/themes/smartpocket/template/profile_content.tpl deleted file mode 100644 index 2b6604fa1..000000000 --- a/themes/smartpocket/template/profile_content.tpl +++ /dev/null @@ -1,61 +0,0 @@ - - - - {'Username'|@translate} - - - - {if not $SPECIAL_USER} {* can modify password + email*} - - {'Email address'|@translate} - - - - - {'Password'|@translate} - - - - - {'New password'|@translate} - - - - - {'Confirm Password'|@translate} - - - {/if} - -{if $ALLOW_USER_CUSTOMIZATION} - - {'Number of photos per page'|@translate} - - - - - {'Language'|@translate} - {html_options name=language options=$language_options selected=$language_selection} - -{/if} - - - - {if $ALLOW_USER_CUSTOMIZATION} - - - - - - {/if} - - - - - {if $ALLOW_USER_CUSTOMIZATION} - - {/if} - - - - diff --git a/themes/smartpocket/template/redirect.tpl b/themes/smartpocket/template/redirect.tpl deleted file mode 100644 index 61f88885e..000000000 --- a/themes/smartpocket/template/redirect.tpl +++ /dev/null @@ -1,9 +0,0 @@ - - {$REDIRECT_MSG} - - - - - {'Click here if your browser does not automatically forward you'|@translate} - - diff --git a/themes/smartpocket/template/register.tpl b/themes/smartpocket/template/register.tpl deleted file mode 100644 index ee395f2d4..000000000 --- a/themes/smartpocket/template/register.tpl +++ /dev/null @@ -1,38 +0,0 @@ -{include file='infos_errors.tpl'} - -{'Register'|@translate} - - - - * {'Username'|@translate} - - - - - * {'Password'|@translate} - - - - - * {'Confirm Password'|@translate} - - - - - {if $obligatory_user_mail_address}* {/if}{'Email address'|@translate} - - - - - {'Send my connection settings by email'|@translate} - - - - - - - - - - - diff --git a/themes/smartpocket/template/search.tpl b/themes/smartpocket/template/search.tpl deleted file mode 100644 index 33c3eabb0..000000000 --- a/themes/smartpocket/template/search.tpl +++ /dev/null @@ -1,112 +0,0 @@ -{combine_script id='jquery.selectize' load='footer' path='themes/default/js/plugins/selectize.min.js'} -{combine_css id='jquery.selectize' path="themes/default/js/plugins/selectize.{$themeconf.colorscheme}.css"} - -{footer_script} -jQuery(document).ready(function() { - jQuery("#authors, #tags, #categories").each(function() { - jQuery(this).selectize({ - plugins: ['remove_button'], - maxOptions:jQuery(this).find("option").length - }); - }) -}); -{/footer_script} - -{html_style} -.ui-checkbox, .ui-radio, .ui-btn-text { - z-index:0; -} - -.form-actions { - margin-top:3em; - margin-bottom:3em; -} -{/html_style} - -{include file='infos_errors.tpl'} - - - {'Search'|@translate} - - - - - - {'Search for words'|@translate} - - - - - {'Search for all terms'|@translate} - - - {'Search for any term'|@translate} - - - - {'Apply on properties'|translate} - - - {'Photo title'|translate} - - - {'Photo description'|translate} - - - {'File name'|translate} - -{if isset($TAGS)} - - {'Tags'|translate} -{/if} - - -{if count($AUTHORS)>=1} - - {'Search for Author'|@translate} - -{foreach from=$AUTHORS item=author} - {$author.author|strip_tags:false} ({$author.counter|translate_dec:'%d photo':'%d photos'}) -{/foreach} - - -{/if} - -{if isset($TAGS)} - - {'Search tags'|@translate} - -{foreach from=$TAGS item=tag} - {$tag.name} ({$tag.counter|translate_dec:'%d photo':'%d photos'}) -{/foreach} - - - {'All tags'|@translate} - - - {'Any tag'|@translate} - -{/if} - - - {'Search in albums'|@translate} - - {html_options options=$category_options selected=$category_options_selected} - - - - {'Search in sub-albums'|@translate} - - - - - - - - - - - - diff --git a/themes/smartpocket/template/tags.tpl b/themes/smartpocket/template/tags.tpl deleted file mode 100644 index c0c9f6e5a..000000000 --- a/themes/smartpocket/template/tags.tpl +++ /dev/null @@ -1,15 +0,0 @@ -{include file='infos_errors.tpl'} -{if isset($tags)} - - {'Tags'|@translate} - {foreach from=$tags item=tag} - {$tag.name}{$tag.counter|@translate_dec:'%d photo':'%d photos'} - {/foreach} - -{elseif isset($letters)} - - {foreach from=$letters item=letter}{foreach from=$letter.tags item=tag} - {$tag.name}{$tag.counter|@translate_dec:'%d photo':'%d photos'} - {/foreach}{/foreach} -{/if} - diff --git a/themes/smartpocket/template/thumbnails.tpl b/themes/smartpocket/template/thumbnails.tpl deleted file mode 100644 index d19fc7d4c..000000000 --- a/themes/smartpocket/template/thumbnails.tpl +++ /dev/null @@ -1,45 +0,0 @@ -{if !empty($thumbnails)} -{$row_height=216} -{$hmargin=4} -{$vmargin=5} -{$container_margin=-10} - -{combine_script id='klass' path='themes/smartpocket/js/klass.min.js'} -{combine_script id='photoswipe' path='themes/smartpocket/js/code.photoswipe.jquery.min.js' require='klass,jquery.mobile'} -{combine_script id='smartpocket' path='themes/smartpocket/js/smartpocket.js' require='photoswipe'} -{combine_script id='sp.thumb.arrange' path='themes/smartpocket/js/thumb.arrange.js' require='jquery' load='footer'} -{footer_script} -var var_loop = {if $smartpocket.loop}true{else}false{/if}, var_autohide = {$smartpocket.autohide}, var_trad = "{'More Information'|@translate}"; -var SPThumbsOpts ={ hMargin:{$hmargin},rowHeight:{$row_height}}; -{/footer_script} -{$thumb_picker->init($row_height)} -{html_style} -.thumbnails .liEmpty{ display:none} -.thumbnails LI{ margin-left:{$hmargin}px; margin-bottom:{$vmargin}px} -.thumbnails { margin:0 {$container_margin}px 0 {$container_margin-$hmargin}px} -{/html_style} -{strip} - -{/strip} -{foreach from=$thumbnails item=thumbnail}{strip} -{$derivative=$thumb_picker->pick($thumbnail.src_image)} -{if isset($page_selection[$thumbnail.id])} - -{if !isset($thumbnail.representative_ext)} - -{else} - -{/if} - get_size_htm()} alt="{$thumbnail.TN_ALT}"> -{else} - - -{/if} - -{/strip}{/foreach} - -{/if} diff --git a/themes/smartpocket/theme.css b/themes/smartpocket/theme.css deleted file mode 100644 index 09e6ef899..000000000 --- a/themes/smartpocket/theme.css +++ /dev/null @@ -1,71 +0,0 @@ -@import "jquery.mobile.css"; -@import "photoswipe.css"; - -.title { margin: 10px; text-align: center; } -.title .ui-btn { margin-top: -5px; } -. { float: right; } -.home_button { float: left; } -.pwg_footer h6 { margin: 8px; text-align:right;} - -.errors h3, .infos h3{ float:left; margin-top:8px; } -.errors div, .infos div { float:right; margin-top:4px; } -.errors p, .infos p { clear:both; font-size:85%; margin-bottom:8px; } - -.ui-icon-profil { background-image: url("images/profil.png"); background-color: transparent; } - -.ui-content { overflow: hidden; } -.ui-field-contain, .ui-br { padding: 5px; border: 0 !important; } - -.thumbnails { list-style: none; padding: 0} -.thumbnails:after { clear: both; content: "."; display: block; height: 0; visibility: hidden; } -.thumbnails li { - float: left; - position: relative; - overflow: hidden; - display: inline; -} -.thumbnails li a { - position: absolute; -} - -#more_link { - color: #FFFFFF; - display: table-cell; - font-size: 1.1em; - text-decoration: none; - vertical-align: middle; - cursor: pointer; -} -.ui-panel-inner > .ui-listview { - margin: -15px -15px 0; -} -#menubar .ui-collapsible-heading-toggle.ui-btn-up-a { - background:linear-gradient(#6FACD5, #497BAE) repeat scroll 0 0 #5E87B0; -} - -.ui-li-desc { - text-overflow: clip; - white-space: normal; -} -#PictureInfo { - font-size: 0.8em; -} -#PictureInfo * { - font-size: 1em; -} -#addComment textarea.ui-input-text { - min-height: 100px; -} -#picture_page { - text-align: center; -} - -#colorbox, #cboxOverlay, #cboxWrapper { - display:none; - left: 0; - overflow: hidden; - position: absolute; - top: 0; - z-index:-1; - opacity:0 !important -} diff --git a/themes/smartpocket/themeconf.inc.php b/themes/smartpocket/themeconf.inc.php deleted file mode 100644 index fa43ff03f..000000000 --- a/themes/smartpocket/themeconf.inc.php +++ /dev/null @@ -1,198 +0,0 @@ - true, -); - -// Need upgrade? -global $conf; -include(PHPWG_THEMES_PATH.'smartpocket/admin/upgrade.inc.php'); - -load_language('theme.lang', PHPWG_THEMES_PATH.'smartpocket/'); - - -// Redirect if page is not compatible with mobile theme -/*if (!in_array(script_basename(), array('index', 'register', 'profile', 'identification', 'ws', 'admin'))) - redirect(duplicate_index_url()); -*/ - - -class SPThumbPicker -{ - var $candidates; - var $default; - var $height; - - function init($height) - { - $this->candidates = array(); - foreach( ImageStdParams::get_defined_type_map() as $params) - { - if ($params->max_height() < $height || $params->sizing->max_crop) - continue; - if ($params->max_height() > 3*$height) - break; - $this->candidates[] = $params; - } - $this->default = ImageStdParams::get_custom($height*3, $height, 1, 0, $height ); - $this->height = $height; - } - - function pick($src_image) - { - $ok = false; - foreach($this->candidates as $candidate) - { - $deriv = new DerivativeImage($candidate, $src_image); - $size = $deriv->get_size(); - if ($size[1]>=$row_height-2) - { - $ok = true; - break; - } - } - if (!$ok) - { - $deriv = new DerivativeImage($this->default, $src_image); - } - return $deriv; - } -} - -//Retrive all pictures on thumbnails page -add_event_handler('loc_index_thumbnails_selection', 'sp_select_all_thumbnails'); - -function sp_select_all_thumbnails($selection) -{ - global $page, $template; - - $template->assign('page_selection', array_flip($selection)); - $template->assign('thumb_picker', new SPThumbPicker() ); - return $page['items']; -} - -// Retrive all categories on thumbnails page -add_event_handler('loc_end_index_category_thumbnails', 'sp_select_all_categories'); - -function sp_select_all_categories($selection) -{ - global $tpl_thumbnails_var; - return $tpl_thumbnails_var; -} - -// Get better derive parameters for screen size -$type = IMG_LARGE; -if (!empty($_COOKIE['screen_size'])) -{ - $screen_size = explode('x', $_COOKIE['screen_size']); - foreach (ImageStdParams::get_all_type_map() as $type => $map) - { - if (max($map->sizing->ideal_size) >= max($screen_size) and min($map->sizing->ideal_size) >= min($screen_size)) - break; - } -} - -$this->assign('picture_derivative_params', ImageStdParams::get_by_type($type)); -$this->assign('thumbnail_derivative_params', ImageStdParams::get_by_type(IMG_SQUARE)); - -add_event_handler('loc_end_section_init', 'sp_end_section_init'); -function sp_end_section_init() -{ - global $page, $template; - - // variables to log history - $template->assign( - 'smartpocket_log_history', - array( - 'cat_id' => @$page['category']['id'], - 'section' => @$page['section'], - 'tags_string' => @implode(',', @$page['tag_ids']), - ) - ); -} - -add_event_handler('ws_add_methods', 'sp_add_methods'); -function sp_add_methods($arr) -{ - $service = &$arr[0]; - $service->addMethod( - 'smartpocket.images.logHistory', - 'ws_sp_log_history', - array( - 'image_id' => array('type'=>WS_TYPE_ID), - 'cat_id' => array('type'=>WS_TYPE_ID, 'default'=>null), - 'section' => array('default'=>null), - 'tags_string' => array('default'=>null), - ), - 'Log visit in history' - ); -} - -function ws_sp_log_history($params, &$service) -{ - global $logger, $page; - - if (!empty($params['section']) and in_array($params['section'], get_enums(HISTORY_TABLE, 'section'))) - { - $page['section'] = $params['section']; - } - - if (!empty($params['cat_id'])) - { - $page['category'] = array('id' => $params['cat_id']); - } - - if (!empty($params['tags_string']) and preg_match('/^\d+(,\d+)*$/', $params['tags_string'])) - { - $page['tag_ids'] = explode(',', $params['tags_string']); - } - - pwg_log($params['image_id'], 'picture'); -} -//------------------------------------------------------------- mobile version & theme config -add_event_handler('init', 'mobile_link'); - -function mobile_link() -{ - global $template, $conf; - $config = safe_unserialize( $conf['smartpocket'] ); - $template->assign( 'smartpocket', $config ); - if ( !empty($conf['mobile_theme']) && (get_device() != 'desktop' || mobile_theme())) - { - $template->assign(array( - 'TOGGLE_MOBILE_THEME_URL' => add_url_params(htmlspecialchars($_SERVER['REQUEST_URI']),array('mobile' => mobile_theme() ? 'false' : 'true')), - )); - } -} - - -if ( !function_exists( 'add_menu_on_public_pages' ) ) { - if ( defined('IN_ADMIN') and IN_ADMIN ) return false; - add_event_handler('loc_after_page_header', 'add_menu_on_public_pages', 20); - - function add_menu_on_public_pages() { - if ( function_exists( 'initialize_menu') ) return false; # The current page has already the menu - global $template, $page, $conf; - if ( isset($page['body_id']) and $page['body_id']=="thePicturePage" ) - { - $template->set_filenames(array( - 'add_menu_on_public_pages' => dirname(__FILE__) . '/template/add_menu_on_public_pages.tpl', - )); - include_once(PHPWG_ROOT_PATH.'include/menubar.inc.php'); - $template->parse('add_menu_on_public_pages'); - } - - - } -} - - -?> diff --git a/tools/piwigo_addSimple.pl b/tools/piwigo_addSimple.pl new file mode 100644 index 000000000..2b3aebd48 --- /dev/null +++ b/tools/piwigo_addSimple.pl @@ -0,0 +1,36 @@ +#!/usr/bin/perl + +use LWP::UserAgent; + +my %conf = ( + base_url => 'http://localhost/pwggit', +); + +my $ua = LWP::UserAgent->new; +$ua->cookie_jar({}); + +$ua->post( + $conf{base_url}.'/ws.php', + { + method => 'pwg.session.login', + username => 'plg', + password => 'plg', + } +); + +my $response = $ua->post( + $conf{base_url}.'/ws.php', + { + method => 'pwg.images.addSimple', + image => ['/Users/plg/Documents/IMG_7779.jpg'], + category => 6, + tags => 'tag1, tag2, another tag', + name => 'A nice title', + comment => 'A longer description', + author => 'Paul Nikanon', + level => 0, + }, + 'Content_Type' => 'form-data', +); + +use Data::Dumper; print Dumper($response->message); \ No newline at end of file diff --git a/tools/pwg_rel_create.sh b/tools/pwg_rel_create.sh index 0220534ae..860314107 100755 --- a/tools/pwg_rel_create.sh +++ b/tools/pwg_rel_create.sh @@ -79,11 +79,27 @@ done # | themes | # +--------------------------------------------------------------------------+ -cd /tmp/$version/piwigo/themes -for themefile in $(ls */themeconf.inc.php) +for theme in modus elegant smartpocket do + cd /tmp/$version/piwigo/themes + + git_url=https://github.com/Piwigo/piwigo-${theme}.git + + # clone repo + git clone $git_url $theme + + # enter theme directory for next actions + cd $theme + # change version - perl $scriptdir/replace_version.pl --file=$themefile --version=$version + perl $scriptdir/replace_version.pl --file=themeconf.inc.php --version=$version + + # register metadata in dedicated file + echo $git_url > pem_metadata.txt + git log -n 1 --pretty=format:"%H %ad" --date=iso8601 >> pem_metadata.txt + + # remove Git metadata + rm -rf .git done # +--------------------------------------------------------------------------+ diff --git a/tools/triggers_list.php b/tools/triggers_list.php index 8ac7e20ee..2b3b05035 100644 --- a/tools/triggers_list.php +++ b/tools/triggers_list.php @@ -461,6 +461,13 @@ array( 'files' => array('notification.php'), 'infos' => 'New in 2.5', ), +array( + 'name' => 'loc_end_add_uploaded_file', + 'type' => 'trigger_notify', + 'vars' => array('array', 'image_infos'), + 'files' => array('admin\include\functions_upload.inc.php (add_uploaded_file)'), + 'infos' => 'New in 2.11', +), array( 'name' => 'loc_end_password', 'type' => 'trigger_notify', diff --git a/tools/ws.htm b/tools/ws.htm index a97d16904..a401ffef1 100644 --- a/tools/ws.htm +++ b/tools/ws.htm @@ -242,7 +242,7 @@ diff --git a/upgrade.php b/upgrade.php index 659956b0c..5da742ca8 100644 --- a/upgrade.php +++ b/upgrade.php @@ -165,9 +165,6 @@ else if ('pl_PL' == $language) { else if ('zh_CN' == $language) { define('PHPWG_DOMAIN', 'cn.piwigo.org'); } -else if ('hu_HU' == $language) { - define('PHPWG_DOMAIN', 'hu.piwigo.org'); -} else if ('ru_RU' == $language) { define('PHPWG_DOMAIN', 'ru.piwigo.org'); } @@ -186,7 +183,7 @@ else if ('pt_BR' == $language) { else { define('PHPWG_DOMAIN', 'piwigo.org'); } -define('PHPWG_URL', 'http://'.PHPWG_DOMAIN); +define('PHPWG_URL', 'https://'.PHPWG_DOMAIN); load_language( 'common.lang', '', array('language'=>$language, 'target_charset'=>'utf-8', 'no_fallback' => true) ); load_language( 'admin.lang', '', array('language'=>$language, 'target_charset'=>'utf-8', 'no_fallback' => true) ); @@ -335,6 +332,14 @@ else if (!in_array('auth_key_id', $columns_of[PREFIX_TABLE.'history'])) { $current_release = '2.7.0'; } +else if (!in_array('history_id_to', $columns_of[PREFIX_TABLE.'history_summary'])) +{ + $current_release = '2.8.0'; +} +else if (!in_array(PREFIX_TABLE.'activity', $tables)) +{ + $current_release = '2.9.0'; +} else { // retrieve already applied upgrades @@ -344,9 +349,9 @@ SELECT id ;'; $applied_upgrades = array_from_query($query, 'id'); - if (!in_array(152, $applied_upgrades)) + if (!in_array(159, $applied_upgrades)) { - $current_release = '2.8.0'; + $current_release = '2.10.0'; } else { diff --git a/ws.php b/ws.php index 8e78c1bdf..bceda3a04 100644 --- a/ws.php +++ b/ws.php @@ -320,7 +320,10 @@ function ws_addDefaultMethods( $arr ) $service->addMethod( 'pwg.session.login', 'ws_session_login', - array('username', 'password'), + array( + 'username' => array(), + 'password' => array('default'=>null), + ), 'Tries to login the user.', $ws_functions_root . 'pwg.php', array('post_only'=>true) @@ -482,6 +485,36 @@ function ws_addDefaultMethods( $arr ) $ws_functions_root . 'pwg.images.php', array('admin_only'=>true, 'post_only'=>true) ); + + $service->addMethod( + 'pwg.images.uploadAsync', + 'ws_images_uploadAsync', + array( + 'username' => array(), + 'password' => array('default'=>null), + 'chunk' => array('type'=>WS_TYPE_INT|WS_TYPE_POSITIVE), + 'chunk_sum' => array(), + 'chunks' => array('type'=>WS_TYPE_INT|WS_TYPE_POSITIVE), + 'original_sum' => array(), + 'category' => array('default'=>null, 'flags'=>WS_PARAM_FORCE_ARRAY, 'type'=>WS_TYPE_ID), + 'filename' => array(), + 'name' => array('default'=>null), + 'author' => array('default'=>null), + 'comment' => array('default'=>null), + 'date_creation' => array('default'=>null), + 'level' => array('default'=>0, 'maxValue'=>max($conf['available_permission_levels']), 'type'=>WS_TYPE_INT|WS_TYPE_POSITIVE), + 'tag_ids' => array('default'=>null, 'info'=>'Comma separated ids'), + 'image_id' => array('default'=>null, 'type'=>WS_TYPE_ID), + ), + 'Upload photo by chunks in a random order. +Use the $_FILES[file] field for uploading file. +Start with chunk 0 (zero). +Set the form encoding to "form-data". +You can update an existing photo if you define an existing image_id. +Requires admin credentials.', + $ws_functions_root . 'pwg.images.php', + array('post_only'=>true) + ); $service->addMethod( 'pwg.images.delete', @@ -499,7 +532,7 @@ function ws_addDefaultMethods( $arr ) 'pwg.images.setMd5sum', 'ws_images_setMd5sum', array( - 'block_size' => array('default'=>1000, 'type'=>WS_TYPE_INT|WS_TYPE_POSITIVE), + 'block_size' => array('default'=>$conf['checksum_compute_blocksize'], 'type'=>WS_TYPE_INT|WS_TYPE_POSITIVE), 'pwg_token' => array(), ), 'Set md5sum column, by blocks. Returns how many md5sums were added and how many are remaining.', @@ -637,12 +670,68 @@ function ws_addDefaultMethods( $arr ) $service->addMethod( // TODO: create multiple tags 'pwg.tags.add', 'ws_tags_add', - array('name'), + array( + 'name' => array() + ), 'Adds a new tag.', $ws_functions_root . 'pwg.tags.php', array('admin_only'=>true) ); + $service->addMethod( + 'pwg.tags.delete', + 'ws_tags_delete', + array( + 'tag_id' => array('type'=>WS_TYPE_ID, + 'flags'=>WS_PARAM_FORCE_ARRAY), + 'pwg_token' => array(), + ), + 'Delete tag(s) by ID.', + $ws_functions_root . 'pwg.tags.php', + array('admin_only'=>true) + ); + + $service->addMethod( + 'pwg.tags.rename', + 'ws_tags_rename', + array( + 'tag_id' => array('type'=>WS_TYPE_ID), + 'new_name' => array(), + 'pwg_token' => array(), + ), + 'Rename tag', + $ws_functions_root . 'pwg.tags.php', + array('admin_only'=>true) + ); + + $service->addMethod( + 'pwg.tags.duplicate', + 'ws_tags_duplicate', + array( + 'tag_id' => array('type'=>WS_TYPE_ID), + 'copy_name' => array(), + 'pwg_token' => array(), + ), + 'Create a copy of a tag', + $ws_functions_root . 'pwg.tags.php', + array('admin_only'=>true, 'post_only'=>true) + ); + + $service->addMethod( + 'pwg.tags.merge', + 'ws_tags_merge', + array( + 'destination_tag_id' => array('type'=>WS_TYPE_ID, + 'info'=>'Is not necessarily part of groups to merge'), + 'merge_tag_id' => array('flags'=>WS_PARAM_FORCE_ARRAY, + 'type'=>WS_TYPE_ID), + 'pwg_token' => array(), + ), + 'Merge tags in one other group', + $ws_functions_root . 'pwg.tags.php', + array('admin_only'=>true, 'post_only'=>true) + ); + $service->addMethod( 'pwg.images.exist', 'ws_images_exist', @@ -907,6 +996,34 @@ function ws_addDefaultMethods( $arr ) array('admin_only'=>true, 'post_only'=>true) ); + $service->addMethod( + 'pwg.groups.merge', + 'ws_groups_merge', + array( + 'destination_group_id' => array('type'=>WS_TYPE_ID, + 'info'=>'Is not necessarily part of groups to merge'), + 'merge_group_id' => array('flags'=>WS_PARAM_FORCE_ARRAY, + 'type'=>WS_TYPE_ID), + 'pwg_token' => array(), + ), + 'Merge groups in one other group', + $ws_functions_root . 'pwg.groups.php', + array('admin_only'=>true, 'post_only'=>true) + ); + + $service->addMethod( + 'pwg.groups.duplicate', + 'ws_groups_duplicate', + array( + 'group_id' => array('type'=>WS_TYPE_ID), + 'copy_name' => array(), + 'pwg_token' => array(), + ), + 'Create a copy of a group', + $ws_functions_root . 'pwg.groups.php', + array('admin_only'=>true, 'post_only'=>true) + ); + $service->addMethod( 'pwg.users.getList', 'ws_users_getList', @@ -1076,6 +1193,48 @@ enabled_high, registration_date, registration_date_string, registration_date_sin $ws_functions_root . 'pwg.permissions.php', array('admin_only'=>true, 'post_only'=>true) ); + + $service->addMethod( + 'pwg.users.favorites.add', + 'ws_users_favorites_add', + array( + 'image_id' => array('type'=>WS_TYPE_ID) + ), + 'Adds the indicated image to the current user\'s favorite images.', + $ws_functions_root . 'pwg.users.php' + ); + + $service->addMethod( + 'pwg.users.favorites.remove', + 'ws_users_favorites_remove', + array( + 'image_id' => array('type'=>WS_TYPE_ID) + ), + 'Removes the indicated image from the current user\'s favorite images.', + $ws_functions_root . 'pwg.users.php' + ); + + $service->addMethod( + 'pwg.users.favorites.getList', + 'ws_users_favorites_getList', + array( + 'per_page' => array( + 'default'=>100, + 'maxValue'=>$conf['ws_max_images_per_page'], + 'type'=>WS_TYPE_INT|WS_TYPE_POSITIVE + ), + 'page' => array( + 'default'=>0, + 'type'=>WS_TYPE_INT|WS_TYPE_POSITIVE + ), + 'order' => array( + 'default'=>null, + 'info'=>'id, file, name, hit, rating_score, date_creation, date_available, random' + ) + ), + 'Returns the favorite images of the current user.', + $ws_functions_root . 'pwg.users.php' + ); } ?>
%name%
"+str_show_sub+"
"+str_hide_sub+"
" + + groupBox.find("#group_name").html() + + "
'+username+'
Dissociate user from this group
'+name+'
{'Recipients'|@translate} diff --git a/admin/themes/default/template/batch_manager_global.tpl b/admin/themes/default/template/batch_manager_global.tpl index bbc9c7e28..f790eb610 100644 --- a/admin/themes/default/template/batch_manager_global.tpl +++ b/admin/themes/default/template/batch_manager_global.tpl @@ -23,7 +23,8 @@ var lang = { Cancel: '{'Cancel'|translate|escape:'javascript'}', deleteProgressMessage: "{'Deletion in progress'|translate|escape:'javascript'}", syncProgressMessage: "{'Synchronization in progress'|translate|escape:'javascript'}", - AreYouSure: "{'Are you sure?'|translate|escape:'javascript'}" + AreYouSure: "{'Are you sure?'|translate|escape:'javascript'}", + generateMsg: "{'Generate multiple size images'|@translate}" }; jQuery(document).ready(function() { @@ -132,6 +133,8 @@ $(document).ready(function() { } } + + $("[id^=action_]").hide(); $("select[name=selectAction]").change(function () { @@ -150,6 +153,11 @@ $(document).ready(function() { else { $("#applyActionBlock").hide(); } + if ($(this).val() == "delete" || $(this).val() == "delete_derivatives") { + $("#confirmDel").css("visibility", "visible"); + } else { + $("#confirmDel").css("visibility", "hidden"); + } }); $(".wrap1 label").click(function (event) { @@ -228,14 +236,23 @@ $(document).ready(function() { return false; }); + + jQuery("input[name=confirm_deletion]").change(function() { + jQuery("#confirmDel span.errors").css("visibility", "hidden"); + }); + jQuery('#applyAction').click(function() { var action = jQuery('[name="selectAction"]').val(); if (action == 'delete_derivatives') { - var d_count = $('#action_delete_derivatives input[type=checkbox]').filter(':checked').length - , e_count = $('input[name="setSelected"]').is(':checked') ? nb_thumbs_set : $('.thumbnails input[type=checkbox]').filter(':checked').length; - if (d_count*e_count > 500) - return confirm(lang.AreYouSure); - } + let d_count = $('#confirmDel input[type=checkbox]').filter(':checked').length + let e_count = $('input[name="setSelected"]').is(':checked') ? nb_thumbs_set : $('.thumbnails input[type=checkbox]').filter(':checked').length; + if (!jQuery("#confirmDel input[name=confirm_deletion]").is(':checked')) { + jQuery("#confirmDel span.errors").css("visibility", "visible"); + return false; + } else { + return true; + } + } if (action != 'generate_derivatives' || derivatives.finished() ) @@ -263,9 +280,11 @@ $(document).ready(function() { jQuery('#applyActionBlock').hide(); jQuery('select[name="selectAction"]').hide(); + jQuery('.permitActionListButton div').addClass('hidden'); jQuery('#regenerationMsg').show(); - progress(); + progress_start(); + progress(); getDerivativeUrls(); return false; }); @@ -321,6 +340,10 @@ var sliders = { {/footer_script} +{combine_script id='jquery.confirm' load='footer' require='jquery' path='themes/default/js/plugins/jquery-confirm.min.js'} +{combine_css path="themes/default/js/plugins/jquery-confirm.min.css"} +{combine_css path="admin/themes/default/fontello/css/animation.css"} +
{'Predefined filter'|@translate}
{'Album'|@translate}
{'Tags'|@translate}
{'Privacy level'|@translate}
{'Dimensions'|translate}
+ + + + {'Width'|translate} {'between %d and %d pixels'|translate:$dimensions.selected.min_width:$dimensions.selected.max_width} + + {'Reset'|translate} + + - - - {'Width'|translate} {'between %d and %d pixels'|translate:$dimensions.selected.min_width:$dimensions.selected.max_width} - | {'Reset'|translate} - + + + - - + + + + {'Height'|translate} {'between %d and %d pixels'|translate:$dimensions.selected.min_height:$dimensions.selected.max_height} + + {'Reset'|translate} + + + + + + + + + + {'Ratio'|translate} ({'Width'|@translate}/{'Height'|@translate}) + {'between %.2f and %.2f'|translate:$dimensions.selected.min_ratio:$dimensions.selected.max_ratio} + + + + {if isset($dimensions.ratio_portrait)} {'Portrait'|translate}{/if} + {if isset($dimensions.ratio_square)} {'square'|translate}{/if} + {if isset($dimensions.ratio_landscape)} {'Landscape'|translate}{/if} + {if isset($dimensions.ratio_panorama)} {'Panorama'|translate}{/if} + + + {'Reset'|translate} + + + + + + + + + + + + + {'Search'|@translate} + [x] + + {'Search tips'|translate} + {combine_script id='core.scripts' load='async' path='themes/default/js/scripts.js'} + {if (isset($no_search_results))} + {'No results for'|@translate} : + + {foreach $no_search_results as $res} + {if !$res@first} — {/if} + {$res} + {/foreach} + + + {/if} + + + + + {'Filesize'|translate} + [x] + + + {'between %s and %s MB'|translate:$filesize.selected.min:$filesize.selected.max} + {'Reset'|translate} + + + + + + + + + + {'No filter, add one'|@translate} + + + + {'Add a filter'|@translate} + + {'Predefined filter'|@translate} + {'Album'|@translate} + {'Tags'|@translate} + {'Privacy level'|@translate} + {'Dimensions'|@translate} + {'Filesize'|@translate} + {'Search'|@translate} + {'Remove all filters'|@translate} + - - {'Height'|translate} {'between %d and %d pixels'|translate:$dimensions.selected.min_height:$dimensions.selected.max_height} - | {'Reset'|translate} - - - - - - - - {'Ratio'|translate} ({'Width'|@translate}/{'Height'|@translate}) {'between %.2f and %.2f'|translate:$dimensions.selected.min_ratio:$dimensions.selected.max_ratio} - {if isset($dimensions.ratio_portrait)}| {'Portrait'|translate}{/if} - {if isset($dimensions.ratio_square)}| {'square'|translate}{/if} - {if isset($dimensions.ratio_landscape)}| {'Landscape'|translate}{/if} - {if isset($dimensions.ratio_panorama)}| {'Panorama'|translate}{/if} - | {'Reset'|translate} - - - - - - - - - - [x] - - {'Search'|@translate} - - {combine_script id='core.scripts' load='async' path='themes/default/js/scripts.js'} - -{if (isset($no_search_results))} -{'No results for'|@translate} : - - {foreach $no_search_results as $res} - {if !$res@first} — {/if} - {$res} - {/foreach} - - -{/if} - - - - [x] - - {'Filesize'|translate} - - - - {'between %s and %s MB'|translate:$filesize.selected.min:$filesize.selected.max} - | {'Reset'|translate} - - - - - - - - - - - - {'Add a filter'|@translate} - ------------------ - {'Predefined filter'|@translate} - {'Album'|@translate} - {'Tags'|@translate} - {'Privacy level'|@translate} - {'Dimensions'|@translate} - {'Filesize'|@translate} - {'Search'|@translate} - - {'Remove all filters'|@translate} - - - - - {'Refresh photo set'|@translate} - - + + {'Refresh photo set'|@translate} + + + - {'Selection'|@translate} + {'Selection'|@translate} {if !empty($thumbnails)} - {'Select:'|@translate} {if $nb_thumbs_set > $nb_thumbs_page} - {'The whole page'|@translate}, - {'The whole set'|@translate}, + {'The whole page'|@translate} + {'The whole set'|@translate} {else} - {'All'|@translate}, + {'All'|@translate} {/if} - {'None'|@translate}, + {'None'|@translate} {'Invert'|@translate} @@ -547,9 +588,11 @@ UL.thumbnails SPAN.wrap2 {ldelim} - {'Zoom'|@translate} · {'Edit'|@translate} + + + + {if $thumbnail.level > 0} - {'Level %d'|@sprintf:$thumbnail.level|@translate} {'Level %d'|@sprintf:$thumbnail.level|@translate} {/if} get_size_htm()}> @@ -561,183 +604,198 @@ UL.thumbnails SPAN.wrap2 {ldelim}
- - {'Width'|translate} {'between %d and %d pixels'|translate:$dimensions.selected.min_width:$dimensions.selected.max_width} - | {'Reset'|translate} - + + + - - + + + + {'Height'|translate} {'between %d and %d pixels'|translate:$dimensions.selected.min_height:$dimensions.selected.max_height} + + {'Reset'|translate} + + + + + + + + + + {'Ratio'|translate} ({'Width'|@translate}/{'Height'|@translate}) + {'between %.2f and %.2f'|translate:$dimensions.selected.min_ratio:$dimensions.selected.max_ratio} + + + + {if isset($dimensions.ratio_portrait)} {'Portrait'|translate}{/if} + {if isset($dimensions.ratio_square)} {'square'|translate}{/if} + {if isset($dimensions.ratio_landscape)} {'Landscape'|translate}{/if} + {if isset($dimensions.ratio_panorama)} {'Panorama'|translate}{/if} + + + {'Reset'|translate} + + + + + + + +
{'Search'|@translate}
{'Filesize'|translate}
+ + {'between %s and %s MB'|translate:$filesize.selected.min:$filesize.selected.max} + {'Reset'|translate} + + + + + +
- - {'between %s and %s MB'|translate:$filesize.selected.min:$filesize.selected.max} - | {'Reset'|translate} - - - - - -
- - {'Add a filter'|@translate} - ------------------ - {'Predefined filter'|@translate} - {'Album'|@translate} - {'Tags'|@translate} - {'Privacy level'|@translate} - {'Dimensions'|@translate} - {'Filesize'|@translate} - {'Search'|@translate} - - {'Remove all filters'|@translate} -
- - {'Refresh photo set'|@translate} - -
- {'Select:'|@translate} {if $nb_thumbs_set > $nb_thumbs_page} - {'The whole page'|@translate}, - {'The whole set'|@translate}, + {'The whole page'|@translate} + {'The whole set'|@translate} {else} - {'All'|@translate}, + {'All'|@translate} {/if} - {'None'|@translate}, + {'None'|@translate} {'Invert'|@translate} @@ -547,9 +588,11 @@ UL.thumbnails SPAN.wrap2 {ldelim} - {'Zoom'|@translate} · {'Edit'|@translate} + + + + {if $thumbnail.level > 0} - {'Level %d'|@sprintf:$thumbnail.level|@translate} {'Level %d'|@sprintf:$thumbnail.level|@translate} {/if} get_size_htm()}> @@ -561,183 +604,198 @@ UL.thumbnails SPAN.wrap2 {ldelim}
+ + + {'Are you sure?'|@translate} + + {"You need to confirm deletion"|translate} +
+ + {'Apply action'|translate} + - - {'Choose an action'|@translate} - ------------------ - {'Delete selected photos'|@translate} - {'Associate to album'|@translate} - {'Move to album'|@translate} - {if !empty($associated_categories)} - {'Dissociate from album'|@translate} - {/if} - {'Add tags'|@translate} + +
{'Are you sure?'|@translate}{"You need to confirm deletion"|translate}
{'Generate multiple size images'|@translate}
- - {'Apply action'|translate} - - - -
{'photos per page'|@translate} : +
- {'create a new album'|@translate} - {if count($categories)}·{'apply automatic sort order'|@translate}{/if} - {if ($PARENT_EDIT)}·{'edit'|@translate}{/if} -
{"Add Album"|@translate} +
- {'Album name'|@translate} - -
- - {'Create'|translate} + {"Album Name"|@translate} + + + {"Create"|@translate} - - {'Cancel'|@translate} -
{'Sort order'|@translate} - {foreach from=$sort_orders key=sort_code item=sort_label} - - - - {$sort_label} - - {/foreach} -
- - - {'Apply to sub-albums'|@translate} - -
- - {'Save order'|translate} - - {'Cancel'|@translate} -
{$category.NB_PHOTOS|translate_dec:'%d photo':'%d photos'}
{$category.NB_SUB_PHOTOS|translate_dec:'%d photo':'%d photos'} {$category.NB_SUB_ALBUMS|translate_dec:'in %d sub-album':'in %d sub-albums'}
- - {'... or '|@translate} {'cancel manual order'|@translate} -
- - {$category.NAME} -
- {'Edit'|@translate} - {'sub-albums'|@translate} - {if isset($category.U_SYNC) } - {'Synchronize'|@translate} - {/if} - {if cat_admin_access($category.ID)} - {'Visit Gallery'|@translate} - {/if} - {'Add Photos'|@translate} -
- {assign var="action_separator" value=""} - {if $representant.ALLOW_SET_RANDOM } - {'Refresh'|@translate} - {assign var="action_separator" value="|"} - {/if} + +
{$INTRO}
{'Name'|@translate} @@ -245,33 +327,12 @@ jQuery(document).ready(function() { {'Parent album'|@translate} + name="parent" style="width:100%">
- {'Lock'|@translate} - - {'No'|translate} - {'No and unlock sub-albums'|translate} - {'Yes'|translate} -
- {'Comments'|@translate} - - {'No'|translate} - {'Yes'|translate} - - - {'Apply to sub-albums'|@translate} - -
- + {'Save Settings'|@translate}
- -
diff --git a/admin/themes/default/template/cat_search.tpl b/admin/themes/default/template/cat_search.tpl new file mode 100644 index 000000000..72e249b9a --- /dev/null +++ b/admin/themes/default/template/cat_search.tpl @@ -0,0 +1,171 @@ +{combine_script id='common' load='footer' path='admin/themes/default/js/common.js'} + +{footer_script} +var data = {json_encode($data_cat)}; +/* + Here data is an associative array id => category under this form + [0] : name + [1] : array of id, path to find this album (root to album) + [2] : 1 = private or 0 = public +*/ + +// Numeric array of all categories +var categories = Object.values(data); + +var str_albums_found = '{"%d albums found"}'; +var str_album_found = '{"1 album found"}'; +{literal} +var editLink = "admin.php?page=album-"; +var colors = ["icon-red", "icon-blue", "icon-yellow", "icon-purple", "icon-green"]; + +$('.search-input').on('input', () => { + updateSearch(); +}) + +// Update the page according to the search field +function updateSearch () { + string = $('.search-input').val(); + $('.search-album-result').html(""); + $('.search-album-noresult').hide(); + if (string == '') { + // help button unnecessary so do not show + // $('.search-album-help').show(); + $('.search-album-ghost').show(); + $('.search-album-num-result').hide(); + } else { + $('.search-album-ghost').hide(); + $('.search-album-help').hide(); + $('.search-album-num-result').show(); + + nbResult = 0; + categories.forEach((c) => { + if (c[0].toString().toLowerCase().search(string.toLowerCase()) != -1) { + addAlbumResult(c); + nbResult++; + } + }) + + if (nbResult != 1) { + $('.search-album-num-result').html(str_albums_found.replace('%d', nbResult)); + } else { + $('.search-album-num-result').html(str_album_found); + } + + if (nbResult != 0) { + resultAppear($('.search-album-result .search-album-elem').first()); + } else { + $('.search-album-noresult').show(); + } + } +} + +// Add an album as a result in the page +function addAlbumResult (cat) { + id = cat[1][cat[1].length - 1]; + template = $('.search-album-elem-template').html(); + newCatNode = $(template); + + hasChildren = false; + categories.forEach((c) => { + for (let i = 0; i < c[1].length - 1; i++) { + if (c[1][i] == id) { + hasChildren = true; + } + } + }) + + if (hasChildren) { + newCatNode.find('.search-album-icon').addClass('icon-sitemap'); + } else { + newCatNode.find('.search-album-icon').addClass('icon-folder-open'); + } + + colorId = id%5; + newCatNode.find('.search-album-icon').addClass(colors[colorId]); + + newCatNode.find('.search-album-name').html(getHtmlPath(cat)); + + href = "admin.php?page=album-" + id; + newCatNode.find('.search-album-edit').attr('href', href); + + $('.search-album-result').append(newCatNode); +} + +// Get the path "PARENT / parent / album" with link to the edition of all albums +function getHtmlPath (cat) { + html = ''; + for (let i = 0; i < cat[1].length - 1; i++) { + id = cat[1][i]; + c = data[id]; + html += '' + c[0] + ' / ' + } + html += '' + cat[0] + ''; + + return html +} + +// Make the results appear one after one +function resultAppear(result) { + result.fadeIn(); + if (result.next().length != 0) { + setTimeout(() => {resultAppear(result.next().first())}, 50); + } +} + +function prepare_skeleton() { + while (!($(document).height() > $(window).height())) { + $(".search-album-ghost").append(""); + } + $(".search-album-ghost div:last").remove(); +}; + +prepare_skeleton(); + +updateSearch(); +$('.search-input').focus(); +{/literal} +{/footer_script} + + + {'Album search tool'|@translate} + + + + + {'Search albums'|@translate} + + + + + + + + + + + + + + + + + + + + + + + Edit album + + + + + + + + + + + {"No album found"|@translate} + + diff --git a/admin/themes/default/template/configuration_display.tpl b/admin/themes/default/template/configuration_display.tpl index 0bca05704..629a9f400 100644 --- a/admin/themes/default/template/configuration_display.tpl +++ b/admin/themes/default/template/configuration_display.tpl @@ -24,7 +24,7 @@ - {'Main Page'|translate} + {'Main Page'|translate} @@ -124,7 +124,7 @@ - {'Photo Page'|translate} + {'Photo Page'|translate} @@ -217,7 +217,7 @@ - {'Photo Properties'|translate} + {'Photo Properties'|translate} diff --git a/admin/themes/default/template/configuration_main.tpl b/admin/themes/default/template/configuration_main.tpl index 3a3fdf7bc..3d9dfcaa8 100644 --- a/admin/themes/default/template/configuration_main.tpl +++ b/admin/themes/default/template/configuration_main.tpl @@ -19,6 +19,13 @@ }); })(target); }; + + jQuery('.tiptip-with-img').tipTip({ + maxWidth: "300px", + delay: 0, + fadeIn: 200, + fadeOut: 200 + }); }()); {if !isset($ORDER_BY_IS_CUSTOM)} @@ -57,8 +64,8 @@ jQuery(".themeBoxes a").colorbox(); jQuery("input[name='mail_theme']").change(function() { - jQuery("input[name='mail_theme']").parents(".themeBox").removeClass("themeDefault"); - jQuery(this).parents(".themeBox").addClass("themeDefault"); + jQuery("input[name='mail_theme']").parents(".themeSelect").removeClass("themeDefault"); + jQuery(this).parents(".themeSelect").addClass("themeDefault"); }); {/footer_script} @@ -69,7 +76,7 @@ jQuery("input[name='mail_theme']").change(function() { - {'Basic settings'|translate} + {'Basic settings'|translate} {'Gallery title'|translate} @@ -105,7 +112,7 @@ jQuery("input[name='mail_theme']").change(function() { - {'Permissions'|translate} + {'Permissions'|translate} @@ -154,7 +161,7 @@ jQuery("input[name='mail_theme']").change(function() { - {'Miscellaneous'|translate} + {'Miscellaneous'|translate} {'Week starts on'|translate} @@ -183,12 +190,30 @@ jQuery("input[name='mail_theme']").change(function() { + + {'Promote mobile app on mobile devices'|translate} + + + + + {'in gallery'|translate} + + + + + + {'in administration'|translate} + + + + + {'Mail theme'|translate} {foreach from=$main.mail_theme_options item=name key=theme} - + @@ -204,6 +229,7 @@ jQuery("input[name='mail_theme']").change(function() { {/foreach} + diff --git a/admin/themes/default/template/configuration_sizes.tpl b/admin/themes/default/template/configuration_sizes.tpl index 93ff48c17..da67476fa 100644 --- a/admin/themes/default/template/configuration_sizes.tpl +++ b/admin/themes/default/template/configuration_sizes.tpl @@ -1,6 +1,21 @@ {combine_script id='common' load='footer' path='admin/themes/default/js/common.js'} - +{combine_script id='jquery.confirm' load='footer' require='jquery' path='themes/default/js/plugins/jquery-confirm.min.js'} +{combine_css path="themes/default/js/plugins/jquery-confirm.min.css"} {footer_script} + + +const title_msg = '{'Are you sure you want to restore to default settings?'|@translate|@escape}'; +const confirm_msg = '{'Yes, I am sure'|@translate|@escape}'; +const cancel_msg = '{'No, I have changed my mind'|@translate|@escape}'; + +$(".restore-settings-button").each(function() { + $(this).pwg_jconfirm_follow_href({ + alert_title: title_msg, + alert_confirm: confirm_msg, + alert_cancel: cancel_msg + }); +}); + (function(){ var labelMaxWidth = "{'Maximum width'|translate}", labelWidth = "{'Width'|translate}", @@ -50,7 +65,7 @@ jQuery(this).css("visibility", "hidden"); return false; }); -}()); +})(); {/footer_script} {html_style} @@ -71,7 +86,7 @@ - {'Original Size'|translate} + {'Original Size'|translate} {if $is_gd} {'Resize after upload disabled due to the use of GD as graphic library'|translate} @@ -116,7 +131,7 @@ - {'Multiple Size'|translate} + {'Multiple Size'|translate} {'show details'|translate} @@ -201,7 +216,7 @@ {if isset($ferrors.resize_quality)}!{/if} - {'Reset to default values'|translate} + {'Reset to default values'|translate} {if !empty($custom_derivatives)} diff --git a/admin/themes/default/template/element_set_ranks.tpl b/admin/themes/default/template/element_set_ranks.tpl index 3321a69fa..67e40a5b1 100644 --- a/admin/themes/default/template/element_set_ranks.tpl +++ b/admin/themes/default/template/element_set_ranks.tpl @@ -47,7 +47,7 @@ jQuery('.thumbnail').tipTip({ {if !empty($thumbnails)} - {'Manual order'|@translate} + {'Manual order'|@translate} {if !empty($thumbnails)} {'Drag to re-order'|@translate} @@ -63,7 +63,7 @@ jQuery('.thumbnail').tipTip({ {/if} - {'Sort order'|@translate} + {'Sort order'|@translate} diff --git a/admin/themes/default/template/group_list.tpl b/admin/themes/default/template/group_list.tpl index b14ff1725..e95a53597 100644 --- a/admin/themes/default/template/group_list.tpl +++ b/admin/themes/default/template/group_list.tpl @@ -1,189 +1,254 @@ +{include file='include/colorbox.inc.tpl'} {footer_script} -{literal} -$(document).ready(function() { - /** - * Add group - */ - jQuery("#addGroup").click(function() { - jQuery("#addGroupForm").toggle(); - jQuery("input[name=groupname]").focus(); - return false; - }); +var pwg_token = "{$PWG_TOKEN}"; +var str_member_default = "{'member'|@translate}" +var str_members_default = "{'members'|@translate}" +var str_group_created = "{'Group added'|@translate}" +var str_renaming_done = "{'Group renamed'|@translate}" +var str_name_taken = "{'Name is already taken'|@translate}" +var str_group_deleted = '{'Group "%s" succesfully deleted'|@translate}' +var str_groups_deleted = '{'Groups \{%s\} succesfully deleted'|@translate}' +var str_set_default = "{'Set as group for new users'|@translate}" +var str_unset_default = "{'Unset as group for new users'|@translate}" +var str_delete = '{'Delete group "%s"?'|@translate}' +var str_yes_delete_confirmation = "{'Yes, delete'|@translate}" +var str_no_delete_confirmation = "{"No, I have changed my mind"|@translate}" +var str_user_associated = "{"User associated"|@translate}" +var str_user_dissociated = '{'User "%s" dissociated from this group'|@translate}' +var str_user_list = "{"User List"|@translate}" +var str_merged_into = '{'Group(s) \{%s1\} succesfully merged into "%s2"'|@translate}' +var str_copy = '{' (copy)'|@translate}' +var str_other_copy = '{' (copy %s)'|@translate}' - jQuery("#addGroupClose").click(function() { - jQuery("#addGroupForm").hide(); - return false; - }); +var serverKey = '{$CACHE_KEYS.users}' +var serverId = '{$CACHE_KEYS._hash}' +var rootUrl = '{$ROOT_URL}' - $('.groups input').change(function () { $(this).parent('p').toggleClass('group_select'); }); - $(".grp_action").hide(); - $("input.group_selection").click(function() { - - var nbSelected = 0; - nbSelected = $("input.group_selection").filter(':checked').length; - - if (nbSelected == 0) { - $("#permitAction").hide(); - $("#forbidAction").show(); - } - else { - $("#permitAction").show(); - $("#forbidAction").hide(); - } - $("p[group_id="+$(this).prop("value")+"]").each(function () { - $(this).toggle(); - }); - - if (nbSelected<2) { - $("#two_to_select").show(); - $("#two_atleast").hide(); - } - else { - $("#two_to_select").hide(); - $("#two_atleast").show(); - } - }); - $("[id^=action_]").hide(); - $("select[name=selectAction]").change(function () { - $("[id^=action_]").hide(); - $("#action_"+$(this).prop("value")).show(); - if ($(this).val() != -1 ) { - $("#applyActionBlock").show(); - } - else { - $("#applyActionBlock").hide(); - } - }); +$(document).on('keydown', function (e) { + if ( e.keyCode === 27) { // ESC button + $("#UserList").fadeOut(); + } +}) +$(document).on('click', function (e) { + if ($(e.target).closest(".UserListPopInContainer").length === 0) { + $("#UserList").fadeOut(); + } }); - -{/literal} {/footer_script} +{combine_script id='common' load='footer' path='admin/themes/default/js/common.js'} +{combine_script id='group_list' load='footer' path='admin/themes/default/js/group_list.js'} + +{combine_script id='jquery.selectize' load='footer' path='themes/default/js/plugins/selectize.min.js'} +{combine_css path="themes/default/js/plugins/selectize.{$themeconf.colorscheme}.css"} + +{combine_script id='LocalStorageCache' load='footer' path='admin/themes/default/js/LocalStorageCache.js'} + +{combine_script id='jquery.confirm' load='footer' require='jquery' path='themes/default/js/plugins/jquery-confirm.min.js'} +{combine_css path="themes/default/js/plugins/jquery-confirm.min.css"} +{combine_css path="admin/themes/default/fontello/css/animation.css"} + +{* Define template function for the content of Groups*} +{function name=groupContent} +{function groupContent} + + + + + + + + + + + + + + + + + + {'Duplicate'|@translate} + {'Delete'|@translate} + + + + + + + {$grp_name} + + + + + + + + + + + + + + + Change group name + {'Cancel'|@translate} + + + {$grp_members} + + + Manage users + Manage permissions + +{/function} +{/function} - {'Group management'|@translate} + {'Group management'|@translate} {(empty($groups)) ? 0 :count($groups)} - - {'Add group'|translate} - + + + + + + {'Selection mode'|@translate} + - - - {'Add group'|@translate} + + + {'No groups selected, no actions possible.'|@translate} + + {'Your selection'|@translate} + - - {'Group name'|translate} - - + + + - - - {'Cancel'|@translate} - + + {'Merge'|@translate} + {'Delete'|@translate} + - + + {'Choose which group to merge these groups into'|@translate} + {'The other groups will be removed'|@translate} + + + + + + Confirm merge + Cancel + + - - + + You are about to delete 0 groups, are you sure? + {'Yes, delete'|@translate} + {"No, I have changed my mind"|@translate} + + + + - - + + + + + + + + + {'Add group'|translate} + + + + + {'Group name'|translate} + + + + + {'Add'|translate} + + + {'Cancel'|@translate} + + + + + + + {* Template Group (for js application) *} + {groupContent grp_id="template" grp_name="Template" grp_members=0 grp_is_default=false} + + {assign var='color_tab' value=["icon-red", "icon-blue", "icon-yellow", "icon-purple", "icon-green"]} - {if not empty($groups)} {foreach from=$groups item=group name=group_loop} - - {$group.NAME}{$group.IS_DEFAULT} - {if $group.MEMBERS>0}{$group.MEMBERS}{$group.L_MEMBERS}{else}{$group.MEMBERS}{/if} - {'Permissions'|translate} - + {assign var='color_id' value=$group.ID%5} + {groupContent + grp_id=$group.ID + grp_name=$group.NAME + grp_members=$group.MEMBERS + grp_color=$color_tab[$color_id] + grp_is_default=$group.IS_DEFAULT + } + {/foreach} {/if} - + - - {'Action'|@translate} - {'No group selected, no action possible.'|@translate} - + - - {'Choose an action'|@translate} - ------------------ - {'Rename'|@translate} - {'Delete'|@translate} - {'Merge selected groups'|@translate} - {'Duplicate'|@translate} - {'Toggle \'default group\' property'|@translate} - {if !empty($element_set_groupe_plugins_actions)} - {foreach from=$element_set_groupe_plugins_actions item=action} - {$action.NAME} - {/foreach} - {/if} - + - - - {if not empty($groups)} - {foreach from=$groups item=group} - - - - {/foreach} - {/if} + + + + + + 25 + + + + + Associate User + + + + + + Showing 39 users out of 251 - - - - {'Please select at least two groups'|@translate} - {assign var='mergeDefaultValue' value='Type here the name of the new group'|@translate} - - - + + + + + + - - - {'Are you sure?'|@translate} - + + + + + + + - - - {assign var='duplicateDefaultValue' value='Type here the name of the new group'|@translate} - {if not empty($groups)} - {foreach from=$groups item=group} - - {$group.NAME} > - - {/foreach} - {/if} - + + + + + Manage users with user manager + + + - - - {if not empty($groups)} - {foreach from=$groups item=group} - - {$group.NAME} > {if empty($group.IS_DEFAULT)}{'This group will be set to default'|@translate}{else}{'This group will be unset to default'|@translate}{/if} - - {/foreach} - {/if} - - - - - {if !empty($element_set_groupe_plugins_actions)} - {foreach from=$element_set_groupe_plugins_actions item=action} - - {if !empty($action.CONTENT)}{$action.CONTENT}{/if} - - {/foreach} - {/if} - - - - - - - \ No newline at end of file + + diff --git a/admin/themes/default/template/group_perm.tpl b/admin/themes/default/template/group_perm.tpl index 401012d1e..1c9fe7716 100644 --- a/admin/themes/default/template/group_perm.tpl +++ b/admin/themes/default/template/group_perm.tpl @@ -3,6 +3,7 @@ {$DOUBLE_SELECT} + {'Only private albums are listed'|@translate} diff --git a/admin/themes/default/template/header.tpl b/admin/themes/default/template/header.tpl index 3619ed4d7..dd365bdfd 100644 --- a/admin/themes/default/template/header.tpl +++ b/admin/themes/default/template/header.tpl @@ -5,6 +5,9 @@ +{if $SHOW_MOBILE_APP_BANNER} + +{/if} {$GALLERY_TITLE} :: {$PAGE_TITLE} @@ -57,7 +60,7 @@ {$GALLERY_TITLE} - {$USERNAME} + {$USERNAME} {* {'Visit Gallery'|translate} *} diff --git a/admin/themes/default/template/history.tpl b/admin/themes/default/template/history.tpl index 96701d8bf..a9a9fc6ea 100644 --- a/admin/themes/default/template/history.tpl +++ b/admin/themes/default/template/history.tpl @@ -11,7 +11,7 @@ jQuery(function(){ {* *} - {'Filter'|@translate} + {'Filter'|@translate} {'Date'|@translate} diff --git a/admin/themes/default/template/include/add_album.inc.tpl b/admin/themes/default/template/include/add_album.inc.tpl index 173090db1..55715ddd5 100644 --- a/admin/themes/default/template/include/add_album.inc.tpl +++ b/admin/themes/default/template/include/add_album.inc.tpl @@ -3,7 +3,7 @@ {combine_script id='jquery.selectize' load='footer' path='themes/default/js/plugins/selectize.min.js'} {combine_css id='jquery.selectize' path="themes/default/js/plugins/selectize.{$themeconf.colorscheme}.css"} -{combine_css path="admin/themes/default/fontello/css/animation.css"} +{combine_css path="admin/themes/default/fontello/css/animation.css" order=10} {combine_script id='addAlbum' load=$load_mode path='admin/themes/default/js/addAlbum.js'} diff --git a/admin/themes/default/template/include/dbselect.inc.tpl b/admin/themes/default/template/include/dbselect.inc.tpl deleted file mode 100644 index 4bee81185..000000000 --- a/admin/themes/default/template/include/dbselect.inc.tpl +++ /dev/null @@ -1,16 +0,0 @@ -{* was used in double_select.tpl until Piwigo 2.8, no longer used in Piwigo core *} -{footer_script require='jquery.ui.resizable'}{literal} -jQuery(document).ready(function(){ - // Resize possible for double select list - jQuery(".doubleSelect select.categoryList").resizable({ - handles: "w,e", - animate: true, - animateDuration: "slow", - animateEasing: "swing", - preventDefault: true, - preserveCursor: true, - autoHide: true, - ghost: true - }); -}); -{/literal}{/footer_script} \ No newline at end of file diff --git a/admin/themes/default/template/include/resize.inc.tpl b/admin/themes/default/template/include/resize.inc.tpl deleted file mode 100644 index 152ee61a2..000000000 --- a/admin/themes/default/template/include/resize.inc.tpl +++ /dev/null @@ -1,16 +0,0 @@ -{* Resize possible *} -{footer_script require='jquery.ui.resizable'}{literal} - jQuery().ready(function(){ - // Resize possible for list - jQuery(".categoryList").resizable({ - handles: "all", - animate: true, - animateDuration: "slow", - animateEasing: "swing", - preventDefault: true, - preserveCursor: true, - autoHide: true, - ghost: true - }); - }); -{/literal}{/footer_script} diff --git a/admin/themes/default/template/include/tag_selection.inc.tpl b/admin/themes/default/template/include/tag_selection.inc.tpl deleted file mode 100644 index e84ec2431..000000000 --- a/admin/themes/default/template/include/tag_selection.inc.tpl +++ /dev/null @@ -1,15 +0,0 @@ -{footer_script require='jquery'}{literal} -jQuery(document).ready(function(){ - jQuery(".tagSelection").on("click", "label", function () { - var parent = jQuery(this).parent('li'); - var checkbox = jQuery(this).children("input[type=checkbox]"); - - if (jQuery(checkbox).is(':checked')) { - parent.addClass("tagSelected"); - } - else { - parent.removeClass('tagSelected'); - } - }); -}); -{/literal}{/footer_script} diff --git a/admin/themes/default/template/install.tpl b/admin/themes/default/template/install.tpl index ef9a7720a..3426c1c1a 100644 --- a/admin/themes/default/template/install.tpl +++ b/admin/themes/default/template/install.tpl @@ -282,7 +282,7 @@ jQuery().ready(function(){ldelim} - + {'Send my connection settings by email'|@translate} diff --git a/admin/themes/default/template/intro.tpl b/admin/themes/default/template/intro.tpl index abae8a33a..b6f45e34a 100644 --- a/admin/themes/default/template/intro.tpl +++ b/admin/themes/default/template/intro.tpl @@ -5,7 +5,9 @@ {footer_script require='jquery.cluetip'} var piwigo_need_update_msg = '{'A new version of Piwigo is available.'|@translate|@escape:"javascript"} '; var ext_need_update_msg = '{'Some upgrades are available for extensions.'|@translate|@escape:"javascript"} '; - +const str_gb_used = "{'%s GB used'|translate}"; +const str_mb_used = "{'%s MB used'|translate}"; +const storage_total = {$STORAGE_TOTAL}; {literal} jQuery().ready(function(){ jQuery('.cluetip').cluetip({ @@ -45,8 +47,41 @@ jQuery().ready(function(){ return false; } }); + let size_info = storage_total > 1000000 ? str_gb_used : str_mb_used; + let size_nb = storage_total > 1000000 ? (storage_total / 1000000).toFixed(2) : (storage_total / 1000).toFixed(0); + $(".chart-title-infos").html(size_info.replace("%s", size_nb)); }); + +//Tooltip for the storage chart +$('.storage-chart span').each(function () { + let tooltip = $('.storage-tooltips #'+$(this).data('type')); + let left = $(this).position().left + $(this).width()/2 - tooltip.innerWidth()/2; + tooltip.css('left', left+"px") + $(this).hover(function() { + tooltip.toggle(); + }); +}); + +$(window).on('resize', function(){ + $('.storage-chart span').each(function () { + let tooltip = $('.storage-tooltips #'+$(this).data('type')); + let left = $(this).position().left + $(this).width()/2 - tooltip.innerWidth()/2; + tooltip.css('left', left+"px") + }); +}); +let size = 0; +let str_size_type = "MB"; +let size_nb = 0; +let str_size = ""; {/literal} +{foreach from=$STORAGE_CHART_DATA key=type item=value} + size = {$value}; + str_size_type = size > 1000000 ? "GB" : "MB"; + size_nb = size > 1000000 ? (size / 1000000).toFixed(2) : (size / 1000).toFixed(0); + str_size = " : " + size_nb.toString() + " " + str_size_type; + $("#storage-{$type}").html("" + str_size); + $("#storage-{$type} b").html("{$type}"); +{/foreach} {/footer_script} {html_style} @@ -61,85 +96,164 @@ jQuery().ready(function(){ {'Piwigo Administration'|@translate} + {if $NB_PHOTOS > 1} - - + + {$NB_PHOTOS|number_format}{'Photos'|translate} {/if} {if $NB_ALBUMS > 1} - - + + {$NB_ALBUMS}{'Albums'|translate} {/if} {if $NB_TAGS > 1} - - + + {$NB_TAGS}{'Tags'|translate} {/if} {if $NB_USERS > 2} - - + + {$NB_USERS}{'Users'|translate} {/if} {if $NB_GROUPS > 0} - - + + {$NB_GROUPS}{'Groups'|translate} {/if} {if $NB_COMMENTS > 1} - - + + {$NB_COMMENTS}{'Comments'|translate} {/if} {if $NB_RATES > 0} - - + + {$NB_RATES}{'Rating'|translate} {/if} {if $NB_VIEWS > 0} - - + + {$NB_VIEWS}{'Pages seen'|translate} {/if} {if $NB_PLUGINS > 0} - - + + {$NB_PLUGINS}{'Plugins'|translate} {/if} - - + + {$STORAGE_USED}{'Storage used'|translate} {if $NB_PHOTOS > 1} - - + + {$first_added_age}{'First photo added'|translate} {/if} {* .stat-boxes *} + + + {"Activity peak in the last weeks"|@translate} + + {foreach from=$ACTIVITY_CHART_DATA item=WEEK_ACTIVITY key=WEEK_NUMBER} + {"Week %s"|@translate:$ACTIVITY_WEEK_NUMBER[$WEEK_NUMBER]} + {foreach from=$WEEK_ACTIVITY item=SIZE key=DAY_NUMBER} + + {if $SIZE != 0} + {assign var='SIZE_IN_UNIT' value=$SIZE/$ACTIVITY_CHART_NUMBER_SIZES * 5 + 1} + {assign var='OPACITY_IN_UNIT' value=$SIZE/$ACTIVITY_CHART_NUMBER_SIZES * 0.6 + 0.2} + + {if $ACTIVITY_LAST_WEEKS[$WEEK_NUMBER][$DAY_NUMBER]["number"] != 0} + + + {if $ACTIVITY_LAST_WEEKS[$WEEK_NUMBER][$DAY_NUMBER]["number"] > 1}{"%s Activities"|@translate:$ACTIVITY_LAST_WEEKS[$WEEK_NUMBER][$DAY_NUMBER]["number"]}{else}{"%s Activity"|@translate:$ACTIVITY_LAST_WEEKS[$WEEK_NUMBER][$DAY_NUMBER]["number"]}{/if} + {$ACTIVITY_LAST_WEEKS[$WEEK_NUMBER][$DAY_NUMBER]["date"]} + + + {foreach from=$ACTIVITY_LAST_WEEKS[$WEEK_NUMBER][$DAY_NUMBER]["details"] item=actions key=cat} + + {if $cat == "Group"} {$cat|@translate} + {elseif $cat == "User"} {$cat|@translate} + {elseif $cat == "Album"} {$cat|@translate} + {elseif $cat == "Photo"} {$cat|@translate} + {elseif $cat == "Tag"} {$cat|@translate} + {else} {$cat|@translate} {/if} + + {foreach from=$actions item=number key=action} + {if $action == "Edit"} {$number} + {elseif $action == "Add"} {$number} + {elseif $action == "Delete"} {$number} + {elseif $action == "Login"} {$number} + {elseif $action == "Logout"} {$number} + {elseif $action == "Move"} {$number} + {else} ({$action|@translate}) {$number} + {/if} + {/foreach} + + {/foreach} + + {/if} + {/if} + + {/foreach} + {/foreach} + + {foreach from=array('Mon'|translate, 'Tue'|translate, 'Wed'|translate, 'Thu'|translate, 'Fri'|translate, 'Sat'|translate, 'Sun'|translate) item=day} + {$day} + {/foreach} + + + {"Storage"|@translate} {'%s MB used'|translate:(round($STORAGE_TOTAL/1000, 0))} + + + {foreach from=$STORAGE_CHART_DATA key=type item=value} + + {round($value/$STORAGE_TOTAL*100)}% + + {/foreach} + + + + {foreach from=$STORAGE_CHART_DATA key=type item=value} + {$type} + {/foreach} + + + + {foreach from=$STORAGE_CHART_DATA item=i key=type} + {$type|translate} + {/foreach} + + + {* .intro-chart *} + + {* .intro-page-container *} + {if $ENABLE_SYNCHRONIZATION} {'Quick Local Synchronization'|translate} @@ -149,4 +263,4 @@ jQuery().ready(function(){ {if isset($SUBSCRIBE_BASE_URL)} {'Subscribe %s to Piwigo Announcements Newsletter'|@translate:$EMAIL} {'... or hide this link'|translate} {/if} - + \ No newline at end of file diff --git a/admin/themes/default/template/languages_installed.tpl b/admin/themes/default/template/languages_installed.tpl index 192cfcc61..c7068d441 100644 --- a/admin/themes/default/template/languages_installed.tpl +++ b/admin/themes/default/template/languages_installed.tpl @@ -1,3 +1,20 @@ +{combine_script id='common' load='footer' path='admin/themes/default/js/common.js'} +{combine_script id='jquery.confirm' load='footer' require='jquery' path='themes/default/js/plugins/jquery-confirm.min.js'} +{combine_css path="themes/default/js/plugins/jquery-confirm.min.css"} +{footer_script} +$(".delete-lang-button").each(function() { + let title_msg = '{'Are you sure you want to delete the language "%s"?'|@translate|@escape:'javascript'}'; + const confirm_msg = '{"Yes, I am sure"|@translate}'; + const cancel_msg = '{"No, I have changed my mind"|@translate|@escape:'javascript'}'; + let lang_name = $(this).closest(".languageBox").find('.languageName').html(); + $(this).pwg_jconfirm_follow_href({ + alert_title: title_msg.replace("%s", lang_name), + alert_confirm: confirm_msg, + alert_cancel: cancel_msg + }); +}); +{/footer_script} + {'Installed Languages'|@translate} @@ -34,7 +51,7 @@ {if $language_state == 'inactive'} {'Activate'|@translate} - | {'Delete'|@translate} + | {'Delete'|@translate} {/if} diff --git a/admin/themes/default/template/maintenance.tpl b/admin/themes/default/template/maintenance.tpl index 040653261..1331bb1c9 100644 --- a/admin/themes/default/template/maintenance.tpl +++ b/admin/themes/default/template/maintenance.tpl @@ -1,10 +1,61 @@ +{combine_script id='common' load='footer' path='admin/themes/default/js/common.js'} +{combine_script id='jquery.confirm' load='footer' require='jquery' path='themes/default/js/plugins/jquery-confirm.min.js'} +{combine_css path="themes/default/js/plugins/jquery-confirm.min.css"} +{footer_script} +const confirm_msg = '{"Yes, I am sure"|@translate}'; +const cancel_msg = "{"No, I have changed my mind"|@translate}"; +$(".lock-gallery-button").each(function() { + const gallery_tip = '{"A locked gallery is only visible to administrators"|@translate|@escape:'javascript'}'; + let title = '{"Are you sure you want to lock the gallery?"|@translate}'; + let confirm_msg_gallery = '{"Yes, I want to lock the gallery"|@translate}'; + let cancel_msg_gallery = '{"Keep it unlocked"|@translate}'; + $(this).pwg_jconfirm_follow_href({ + alert_title: title, + alert_confirm: confirm_msg, + alert_cancel: cancel_msg, + alert_content: gallery_tip + }); +}); +$(".purge-history-detail-button").each(function() { + const title = '{"Purge history detail"|@translate|@escape:'javascript'}'; + $(this).pwg_jconfirm_follow_href({ + alert_title: title, + alert_confirm: confirm_msg, + alert_cancel: cancel_msg + }); +}); +$(".purge-history-summary-button").each(function() { + const title = '{"Purge history summary"|@translate|@escape:'javascript'}'; + $(this).pwg_jconfirm_follow_href({ + alert_title: title, + alert_confirm: confirm_msg, + alert_cancel: cancel_msg + }); +}); +$(".purge-search-history-button").each(function() { + const title = '{"Purge search history"|@translate|@escape:'javascript'}'; + $(this).pwg_jconfirm_follow_href({ + alert_title: title, + alert_confirm: confirm_msg, + alert_cancel: cancel_msg + }); +}); +$(".delete-all-sizes-button").each(function() { + const title = '{"Are you sure you want to delete all sizes?"|@translate|@escape:'javascript'}'; + $(this).pwg_jconfirm_follow_href({ + alert_title: title, + alert_confirm: confirm_msg, + alert_cancel: cancel_msg + }); +}); +{/footer_script} {'Maintenance'|@translate} {if (isset($U_MAINT_LOCK_GALLERY))} - {'Lock gallery'|@translate} + {'Lock gallery'|@translate} {else} {'Unlock gallery'|@translate} {/if} @@ -29,14 +80,15 @@ {'Purge user cache'|@translate} {'Delete orphan tags'|@translate} - {'Purge history detail'|@translate} - {'Purge history summary'|@translate} + {'Purge history detail'|@translate} + {'Purge history summary'|@translate} {'Purge sessions'|@translate} {'Purge never used notification feeds'|@translate} - {'Purge search history'|@translate} + {'Purge search history'|@translate} {'Purge compiled templates'|@translate} {'Delete multiple size images'|@translate}: - {foreach from=$purge_derivatives key=name item=url name=loop}{if !$smarty.foreach.loop.first}, {/if}{$name}{/foreach} + {foreach from=$purge_derivatives key=name item=url name=loop} + {$name}{if !$smarty.foreach.loop.last}, {/if}{/foreach} diff --git a/admin/themes/default/template/navigation_bar.tpl b/admin/themes/default/template/navigation_bar.tpl index 82c66bd15..b605da4b2 100644 --- a/admin/themes/default/template/navigation_bar.tpl +++ b/admin/themes/default/template/navigation_bar.tpl @@ -1,28 +1,34 @@ - + {if isset($navbar.URL_FIRST)} - {'First'|@translate} | - {'Previous'|@translate} | + + + {else} - {'First'|@translate} | - {'Previous'|@translate} | + + + {/if} {assign var='prev_page' value=0} + {foreach from=$navbar.pages key=page item=url} - {if $page > $prev_page+1}...{/if} + {if $page > $prev_page+1}...{/if} {if $page == $navbar.CURRENT_PAGE} - {$page} + {$page} {else} {$page} {/if} {assign var='prev_page' value=$page} {/foreach} + {if isset($navbar.URL_NEXT)} - | {'Next'|@translate} - | {'Last'|@translate} + + + {else} - | {'Next'|@translate} - | {'Last'|@translate} + + + {/if} diff --git a/admin/themes/default/template/notification_by_mail.tpl b/admin/themes/default/template/notification_by_mail.tpl index 95506616c..c9c905fc8 100644 --- a/admin/themes/default/template/notification_by_mail.tpl +++ b/admin/themes/default/template/notification_by_mail.tpl @@ -21,6 +21,8 @@ jQuery(document).ready(function(){ + + {if isset($REPOST_SUBMIT_NAME)} @@ -37,7 +39,7 @@ jQuery(document).ready(function(){ {'Send mail on HTML format'|@translate} {'Yes'|@translate} - {'No'|@translate} + {'No'|@translate} @@ -51,7 +53,7 @@ jQuery(document).ready(function(){ {'Add detailed content'|@translate} {'Yes'|@translate} - {'No'|@translate} + {'No'|@translate} @@ -65,7 +67,7 @@ jQuery(document).ready(function(){ {'Yes'|@translate} - {'No'|@translate} + {'No'|@translate} @@ -129,7 +131,7 @@ jQuery(document).ready(function(){ {if isset($auth_key_duration)} - {'Informations'|@translate} + {'Informations'|@translate} {'Each email sent will contain its own automatic authentication key on links, valid for %s.'|translate:$auth_key_duration} {'For security reason, authentication keys do not work for administrators.'|translate} diff --git a/admin/themes/default/template/permalinks.tpl b/admin/themes/default/template/permalinks.tpl index 648048949..a7e9f6a31 100644 --- a/admin/themes/default/template/permalinks.tpl +++ b/admin/themes/default/template/permalinks.tpl @@ -63,7 +63,7 @@ form fieldset p.actionButtons {margin-bottom:0} - {'Permalinks'|@translate} + {'Permalinks'|@translate} Id {$SORT_ID} @@ -81,7 +81,7 @@ form fieldset p.actionButtons {margin-bottom:0} - {'Permalink history'|@translate} + {'Permalink history'|@translate} Id {$SORT_OLD_CAT_ID} diff --git a/admin/themes/default/template/photos_add_applications.tpl b/admin/themes/default/template/photos_add_applications.tpl index cc282fa33..2191e186f 100644 --- a/admin/themes/default/template/photos_add_applications.tpl +++ b/admin/themes/default/template/photos_add_applications.tpl @@ -37,6 +37,16 @@ fieldset p {text-align:left;margin-top:0} + + {'Piwigo for Android'|@translate} + +{'Piwigo for Android application empowers you to connect your Android phone or table to your Piwigo gallery, create some albums and upload several photos at once.'|@translate} + + +{'Available on'|@translate} Google Play + + + Lightroom @@ -128,4 +138,4 @@ fieldset p {text-align:left;margin-top:0} {'Available on'|@translate} Google Play -*} \ No newline at end of file +*} diff --git a/admin/themes/default/template/photos_add_direct.tpl b/admin/themes/default/template/photos_add_direct.tpl index db0782869..52cb21626 100644 --- a/admin/themes/default/template/photos_add_direct.tpl +++ b/admin/themes/default/template/photos_add_direct.tpl @@ -1,11 +1,7 @@ {combine_script id='common' load='footer' path='admin/themes/default/js/common.js'} - -{combine_script id='jquery.jgrowl' load='footer' require='jquery' path='themes/default/js/plugins/jquery.jgrowl_minimized.js'} - {combine_script id='jquery.plupload' load='footer' require='jquery' path='themes/default/js/plugins/plupload/plupload.full.min.js'} {combine_script id='jquery.plupload.queue' load='footer' require='jquery' path='themes/default/js/plugins/plupload/jquery.plupload.queue/jquery.plupload.queue.min.js'} -{combine_css path="themes/default/js/plugins/jquery.jgrowl.css"} {combine_css path="themes/default/js/plugins/plupload/jquery.plupload.queue/css/jquery.plupload.queue.css"} {assign var="plupload_i18n" value="themes/default/js/plugins/plupload/i18n/`$lang_info.plupload_code`.js"} @@ -138,6 +134,7 @@ jQuery(document).ready(function(){ QueueChanged : function(up) { jQuery('#addFiles').addClass("addFilesButtonChanged"); jQuery('#startUpload').prop('disabled', up.files.length == 0); + jQuery("#addFiles").removeClass('buttonGradient').addClass('buttonLike'); if (up.files.length > 0) { jQuery('.plupload_filelist_footer').show(); @@ -146,6 +143,7 @@ jQuery(document).ready(function(){ if (up.files.length == 0) { jQuery('#addFiles').removeClass("addFilesButtonChanged"); + jQuery("#addFiles").removeClass('buttonLike').addClass('buttonGradient'); jQuery('.plupload_filelist_footer').hide(); jQuery('.plupload_filelist').css("overflow-y", "hidden"); } @@ -262,7 +260,7 @@ jQuery(document).ready(function(){ 0} style="display:none;"{/if}> {'Welcome!'|translate} {'Piwigo requires an album to add photos.'|translate} - {'Create a first album'|translate} + {'Create a first album'|translate} @@ -294,8 +292,8 @@ jQuery(document).ready(function(){ - {'Drop into album'|@translate} - {$ADD_TO_ALBUM} + {'Drop into album'|@translate} + {$ADD_TO_ALBUM} @@ -316,9 +314,9 @@ jQuery(document).ready(function(){ *} - {'Select files'|@translate} + {'Select files'|@translate} - {'Add Photos'|translate} + {'Add Photos'|translate} {if isset($original_resize_maxheight)} {'The picture dimensions will be reduced to %dx%d pixels.'|@translate:$original_resize_maxwidth:$original_resize_maxheight} @@ -338,14 +336,13 @@ jQuery(document).ready(function(){ - {'Cancel'|translate} - - + + {'Cancel'|translate} - {'Start Upload'|translate} + {'Start Upload'|translate} diff --git a/admin/themes/default/template/picture_modify.tpl b/admin/themes/default/template/picture_modify.tpl index 7aab2831a..500550a67 100644 --- a/admin/themes/default/template/picture_modify.tpl +++ b/admin/themes/default/template/picture_modify.tpl @@ -7,6 +7,9 @@ {combine_script id='jquery.selectize' load='footer' path='themes/default/js/plugins/selectize.min.js'} {combine_css id='jquery.selectize' path="themes/default/js/plugins/selectize.{$themeconf.colorscheme}.css"} +{combine_script id='jquery.confirm' load='footer' require='jquery' path='themes/default/js/plugins/jquery-confirm.min.js'} +{combine_css path="themes/default/js/plugins/jquery-confirm.min.css"} + {footer_script} (function(){ {* *} @@ -41,53 +44,91 @@ jQuery(function(){ {* *} jQuery("a.preview-box").colorbox({ photo: true }); + +str_are_you_sure = '{'Are you sure?'|translate}'; +str_yes = '{'Yes, delete'|translate}'; +str_no = '{'No, I have changed my mind'|translate|@escape:'javascript'}'; +url_delete = '{$U_DELETE}'; + +{literal} +$('#action-delete-picture').on('click', function() { + $.confirm({ + title: str_are_you_sure, + draggable: false, + titleClass: "groupDeleteConfirm", + theme: "modern", + content: "", + animation: "zoom", + boxWidth: '30%', + useBootstrap: false, + type: 'red', + animateFromElement: false, + backgroundDismiss: true, + typeAnimated: false, + buttons: { + confirm: { + text: str_yes, + btnClass: 'btn-red', + action: function () { + window.location.href = url_delete.replaceAll('amp;', ''); + } + }, + cancel: { + text: str_no + } + } + }); +}) +{/literal} + }()); {/footer_script} -{$TITLE} › {'Edit photo'|@translate} {$TABSHEET_TITLE} +{'Edit photo #%s'|@translate:$INTRO.id} - + + + + {if isset($U_JUMPTO)} + + {else} + + {/if} + + + + + + + + + + + + + + + + {$INTRO.file} + {$INTRO.size} + {$INTRO.formats} + {$INTRO.ext} + + - - {'Informations'|@translate} + + + + + + {$INTRO.date} + {$INTRO.age} + {$INTRO.added_by} + {$INTRO.stats} + + + - - - - - - - - - {$INTRO.file} - {$INTRO.add_date} - {$INTRO.added_by} - {$INTRO.size} - {$INTRO.formats} - {$INTRO.stats} - {$INTRO.id} - - - - - {if isset($U_JUMPTO) } - {'jump to photo'|@translate} → - {/if} - {'Download'|translate} - {if !url_is_remote($PATH)} - {'Synchronize metadata'|@translate} - - {'delete photo'|@translate} - {/if} - - - - - - - - - {'Properties'|@translate} {'Title'|@translate} @@ -105,7 +146,7 @@ jQuery("a.preview-box").colorbox({ {'Creation date'|@translate} - + @@ -117,7 +158,7 @@ jQuery("a.preview-box").colorbox({ + data-default="{$STORAGE_ALBUM}" name="associate[]" multiple style="width:calc(100% + 2px);"> @@ -125,7 +166,7 @@ jQuery("a.preview-box").colorbox({ + name="represent[]" multiple style="width:calc(100% + 2px);"> @@ -133,7 +174,7 @@ jQuery("a.preview-box").colorbox({ + data-create="true" name="tags[]" multiple style="width:calc(100% + 2px);"> @@ -145,15 +186,16 @@ jQuery("a.preview-box").colorbox({ {'Who can see this photo?'|@translate} + {html_options options=$level_options selected=$level_options_selected} - - - - - + + + + + diff --git a/admin/themes/default/template/plugins_installed.tpl b/admin/themes/default/template/plugins_installed.tpl index 9864abd9d..9531f16ac 100644 --- a/admin/themes/default/template/plugins_installed.tpl +++ b/admin/themes/default/template/plugins_installed.tpl @@ -1,13 +1,26 @@ {combine_script id='jquery.ajaxmanager' load='footer' require='jquery' path='themes/default/js/plugins/jquery.ajaxmanager.js' } +{combine_script id='common' load='footer' path='admin/themes/default/js/common.js'} {footer_script require='jquery.ajaxmanager'} /* incompatible message */ var incompatible_msg = '{'WARNING! This plugin does not seem to be compatible with this version of Piwigo.'|@translate|@escape:'javascript'}'; var activate_msg = '\n{'Do you want to activate anyway?'|@translate|@escape:'javascript'}'; +var deactivate_all_msg = '{'Deactivate all'|@translate}'; + +var showInactivePlugins = function() { + jQuery(".showInactivePlugins").fadeOut(complete=function(){ + jQuery(".plugin-inactive").fadeIn(); + }) + } /* group action */ -var pwg_token = '{$PWG_TOKEN}'; -var confirmMsg = '{'Are you sure?'|@translate|@escape:'javascript'}'; +const pwg_token = '{$PWG_TOKEN}'; +const are_you_sure_msg = '{'Are you sure?'|@translate|@escape:'javascript'}'; +const confirm_msg = '{"Yes, I am sure"|@translate}'; +const cancel_msg = "{"No, I have changed my mind"|@translate}"; +let delete_plugin_msg = '{'Are you sure you want to delete the plugin "%s"?'|@translate|@escape:'javascript'}'; +let restore_plugin_msg = '{'Are you sure you want to restore the plugin "%s"?'|@translate|@escape:'javascript'}'; +const restore_tip_msg = "{'Restore default configuration. You will lose your plugin settings!'|@translate}"; {literal} var queuedManager = jQuery.manageAjax.create('queued', { queue: true, @@ -15,18 +28,56 @@ var queuedManager = jQuery.manageAjax.create('queued', { }); var nb_plugins = jQuery('div.active').size(); var done = 0; +/* group action */ jQuery(document).ready(function() { - /* group action */ - jQuery('div.deactivate_all a').click(function() { - if (confirm(confirmMsg)) { - jQuery('div.active').each(function() { - performPluginDeactivate(jQuery(this).attr('id')); - }); - } + $(".delete-plugin-button").each(function() { + let plugin_name = $(this).closest(".pluginContent").find(".pluginMiniBoxNameCell").html().trim(); + $(this).pwg_jconfirm_follow_href({ + alert_title: delete_plugin_msg.replace('%s', plugin_name), + alert_confirm: confirm_msg, + alert_cancel: cancel_msg + }); }); + $(".plugin-restore").each(function() { + let plugin_name = $(this).closest(".pluginContent").find(".pluginMiniBoxNameCell").html().trim(); + $(this).pwg_jconfirm_follow_href({ + alert_title: restore_plugin_msg.replace('%s', plugin_name), + alert_confirm: confirm_msg, + alert_cancel: cancel_msg, + alert_content: restore_tip_msg, + }); + }); + $(".uninstall-plugin-button").each(function() { + $(this).pwg_jconfirm_follow_href({ + alert_title: are_you_sure_msg, + alert_confirm: confirm_msg, + alert_cancel: cancel_msg + }); + }); + jQuery('div.deactivate_all a').click(function() { + $.confirm({ + title: deactivate_all_msg, + buttons: { + confirm: { + text: confirm_msg, + btnClass: 'btn-red', + action: function () { + jQuery('div.active').each(function() { + performPluginDeactivate(jQuery(this).attr('id')); + }) + } + }, + cancel: { + text: cancel_msg + } + }, + ...jConfirm_confirm_options + }); + }); + function performPluginDeactivate(id) { - queuedManager.add({ + queuedManager.add({ type: 'GET', dataType: 'json', url: 'ws.php', @@ -56,7 +107,13 @@ jQuery(document).ready(function() { {/if} {literal} jQuery('#'+data[i]).addClass('incompatible'); - jQuery('#'+data[i]+' .activate').attr('onClick', 'return confirm(incompatible_msg + activate_msg);'); + jQuery('#'+data[i]+' .activate').each(function () { + $(this).pwg_jconfirm_follow_href({ + alert_title: incompatible_msg + activate_msg, + alert_confirm: confirm_msg, + alert_cancel: cancel_msg + }); + }); } jQuery('.warning').tipTip({ 'delay' : 0, @@ -67,61 +124,150 @@ jQuery(document).ready(function() { } }); }); - - /* TipTips */ - jQuery('.plugin-restore').tipTip({ - 'delay' : 0, - 'fadeIn' : 200, - 'fadeOut' : 200 - }); - jQuery('.showInfo').tipTip({ - 'delay' : 0, + jQuery('.fullInfo').tipTip({ + 'delay' : 500, 'fadeIn' : 200, 'fadeOut' : 200, 'maxWidth':'300px', - 'keepAlive':true, - 'activation':'click' + 'keepAlive':false, + }); + + /* Add the '...' for the overflow of the description line*/ + jQuery( document ).ready(function () { + jQuery('.pluginDesc').each(function () { + var el = jQuery(this).context; + var wordArray = el.innerHTML.split(' '); + if (el.scrollHeight > el.offsetHeight) { + jQuery(this).attr('title', jQuery(this).html()) + } + while(el.scrollHeight > el.offsetHeight) { + wordArray.pop(); + el.innerHTML = wordArray.join(' ') + '...'; + } + }) + }); + + /*Add the filter research*/ + jQuery( document ).ready(function () { + jQuery(".pluginFilter input").on("input", function() { + let text = jQuery(this).val().toLowerCase(); + var searchNumber = 0; + jQuery('.pluginBoxes').each(function () { + let searchNumberInBox = 0; + let pluginBoxes = jQuery(this); + pluginBoxes.find(".pluginMiniBox").each(function() { + if (text == "") { + jQuery(this).fadeIn() + searchNumberInBox++; + } else { + let name = jQuery(this).find(".pluginMiniBoxNameCell").text().toLowerCase(); + let description = jQuery(this).find(".pluginDesc").text().toLowerCase(); + if (name.search(text) != -1 || description.search(text) != -1){ + jQuery(this).fadeIn() + searchNumberInBox++; + } else { + jQuery(this).fadeOut() + } + } + }) + if (searchNumberInBox == 0) { + pluginBoxes.fadeOut(); + } else { + if (pluginBoxes.hasClass("plugin-inactive")) { + showInactivePlugins() + } else { + pluginBoxes.fadeIn(); + } + } + searchNumber += searchNumberInBox; + }); + if (searchNumber == 0) { + jQuery(".emptyResearch").fadeIn(); + } else { + jQuery(".emptyResearch").fadeOut(); + } + }); + }); + + /* Show Inactive plugins or button to show them*/ + jQuery( document ).ready(function () { + jQuery(".showInactivePlugins button").on('click', showInactivePlugins) }); }); + +$(document).mouseup(function (e) { + e.stopPropagation(); + $(".pluginMiniBox").each(function() { + if ($(this).find(".showOptions").has(e.target).length === 0) { + $(this).find(".PluginOptionsBlock").hide(); + } + }) +}); + +jQuery(".pluginMiniBox").each(function(index){ + let myplugin = jQuery(this); + myplugin.find(".showOptions").click(function(){ + myplugin.find(".PluginOptionsBlock").toggle(); + }); +}) + {/literal} {/footer_script} +{combine_script id='jquery.confirm' load='footer' require='jquery' path='themes/default/js/plugins/jquery-confirm.min.js'} +{combine_css path="themes/default/js/plugins/jquery-confirm.min.css"} +{combine_script id='tiptip' load='header' path='themes/default/js/plugins/jquery.tipTip.minified.js'} + {'Plugins'|@translate} - - {if $show_details} - {'hide details'|@translate} - {else} - {'show details'|@translate} - {/if} - - {if isset($plugins)} {assign var='field_name' value='null'} {* *} {counter start=0 assign=i} {* *} + + + + + + + + {'No plugins found'|@translate} + {foreach from=$plugins item=plugin name=plugins_loop} {if $field_name != $plugin.STATE} {if $field_name != 'null'} - - {/if} - - - - {if $plugin.STATE == 'active'} - {'Active Plugins'|@translate} - {elseif $plugin.STATE == 'inactive'} - {'Inactive Plugins'|@translate} - {elseif $plugin.STATE == 'missing'} - {'Missing Plugins'|@translate} - {elseif $plugin.STATE == 'merged'} - {'Obsolete Plugins'|@translate} - {/if} - + {* PluginBoxes Container*} + {* PluginBoxes*} + {/if} + + 8}style="display:none"{/if}{/if}> {assign var='field_name' value=$plugin.STATE} + + + + + {if $plugin.STATE == 'active'} + {'Active Plugins'|@translate} + {elseif $plugin.STATE == 'inactive'} + {'Inactive Plugins'|@translate} + {elseif $plugin.STATE == 'missing'} + {'Missing Plugins'|@translate} + {elseif $plugin.STATE == 'merged'} + {'Obsolete Plugins'|@translate} + {/if} + + {$count_types_plugins[$plugin.STATE]} + + + {if $plugin.STATE == 'active'} + {'Deactivate all'|@translate} + {/if} + + + {/if} {if not empty($plugin.AUTHOR)} @@ -131,91 +277,67 @@ jQuery(document).ready(function() { {assign var='author' value=''|cat:$plugin.AUTHOR|cat:''} {/if} {/if} - - {if $show_details} - - - - - {$plugin.NAME} - - {$plugin.DESC} - - - - {if $plugin.STATE == 'active'} - {'Deactivate'|@translate} - | {'Restore'|@translate} - {elseif $plugin.STATE == 'inactive'} - {'Activate'|@translate} - | {'Delete'|@translate} - - {elseif $plugin.STATE == 'missing'} - {'Uninstall'|@translate} - - {elseif $plugin.STATE == 'merged'} - {'Delete'|@translate} - {/if} - - - {'Version'|@translate} {$plugin.VERSION} - - {if not empty($author)} - | {'By %s'|@translate:$author} - {/if} - - {if not empty($plugin.VISIT_URL)} - | {'Visit plugin site'|@translate} - {/if} - - - - {**} - + {if not empty($plugin.VISIT_URL)} + {assign var='version' value=""|cat:$plugin.VERSION|cat:""} {else} - {if not empty($plugin.VISIT_URL)} - {assign var='version' value=""|cat:$plugin.VERSION|cat:""} - {else} - {assign var='version' value=$plugin.VERSION} - {/if} - - + {assign var='version' value=$plugin.VERSION} + {/if} + + + + + {if $plugin.STATE == 'active' || $plugin.STATE == 'inactive'} + + {/if} + + + + {if !empty($author)}{'By %s'|@translate:$author}{/if}{'Version'|@translate} {$version} + {if $plugin.STATE == 'active'} + {'Deactivate'|@translate} + {'Restore'|@translate} + {elseif $plugin.STATE == 'inactive'} + {'Delete'|@translate} + {/if} + {$plugin.NAME} - + + + {$plugin.DESC} - {if $plugin.STATE == 'active'} - {'Deactivate'|@translate} - | {'Restore'|@translate} - + {if $plugin.SETTINGS_URL != ''} + {'Settings'|@translate} + {else} + {'Settings'|@translate} + {/if} {elseif $plugin.STATE == 'inactive'} - {'Activate'|@translate} - | {'Delete'|@translate} - + {'Activate'|@translate} {elseif $plugin.STATE == 'missing'} - {'Uninstall'|@translate} - + {'Uninstall'|@translate} {elseif $plugin.STATE == 'merged'} - {'Delete'|@translate} - {/if} - + {'Delete'|@translate} + {/if} - {**} + - {/if} - -{if $plugin.STATE == 'active'} - {counter} - {if $active_plugins == $i} - {'Deactivate all'|@translate} - {counter} - {/if} -{/if} - -{/foreach} - + {**} + + + + {/foreach} + {* PluginBoxes Container*} + {* PluginBoxes*} + + + + {assign var='badge_inactive' value='%s'|@sprintf:$count_types_plugins["inactive"]} + {'You have %s inactive plugins'|translate:$badge_inactive} + + {'Show inactive plugins'|@translate} + {/if} diff --git a/admin/themes/default/template/plugins_new.tpl b/admin/themes/default/template/plugins_new.tpl index 4d55f9735..1b7be30d7 100644 --- a/admin/themes/default/template/plugins_new.tpl +++ b/admin/themes/default/template/plugins_new.tpl @@ -1,6 +1,15 @@ {combine_script id='jquery.sort' load='footer' path='themes/default/js/plugins/jquery.sort.js'} -{footer_script require='jquery.ui.effect-blind,jquery.sort'}{literal} +{combine_script id='common' load='footer' path='admin/themes/default/js/common.js'} +{combine_script id='jquery.confirm' load='footer' require='jquery' path='themes/default/js/plugins/jquery-confirm.min.js'} +{combine_css path="themes/default/js/plugins/jquery-confirm.min.css"} + +{footer_script require='jquery.ui.effect-blind,jquery.sort'} +const install_title = '{'Are you sure you want to install this plugin?'|@translate|@escape:'javascript'}'; +const confirm_msg = '{"Yes, I am sure"|@translate}'; +const cancel_msg = "{"No, I have changed my mind"|@translate}"; +let title = '{'Are you sure you want to install the plugin "%s"?'|@translate|@escape:'javascript'}'; +{literal} var sortOrder = 'date'; var sortPlugins = (function(a, b) { if (sortOrder == 'downloads' || sortOrder == 'revision' || sortOrder == 'date') @@ -33,32 +42,34 @@ jQuery(document).ready(function(){ }); jQuery('#filter').keyup(function(){ - var filter = $(this).val(); - if (filter.length>2) { - $('.pluginBox').hide(); - $('#availablePlugins .pluginBox input[name="name"]').each(function(){ - if ($(this).val().toUpperCase().indexOf(filter.toUpperCase()) != -1) { - $(this).parents('div').show(); - } + var filter = $(this).val(); + if (filter.length>2) { + $('.pluginBox').hide(); + $('#availablePlugins .pluginBox input[name="name"]').each(function(){ + if ($(this).val().toUpperCase().indexOf(filter.toUpperCase()) != -1) { + $(this).parents('div').show(); + } + }); + } else { + $('.pluginBox').show(); + } + jQuery("#filter").focus(); + }); + $(".install-plugin-button").each(function() { + let plugin_name = $(this).closest(".pluginBox").find("input[name=\"name\"]").val(); + $(this).pwg_jconfirm_follow_href({ + alert_title: title.replace("%s", plugin_name), + alert_confirm: confirm_msg, + alert_cancel: cancel_msg }); - } - else { - $('.pluginBox').show(); - } - }); - jQuery("#filter").focus(); - jQuery(".titrePage input[name='Clear']").click(function(){ - $("#filter").val(''); - $(".pluginBox").show(); - }); + }); }); {/literal}{/footer_script} -{'Filter'|@translate} : - | -{'Sort order'|@translate} : + {'Filter'|@translate} + {'Sort order'|@translate} {html_options name="selectOrder" options=$order_options selected=$order_selected} {'Plugins'|@translate} @@ -93,7 +104,7 @@ jQuery(document).ready(function(){ - {'Install'|@translate} + {'Install'|@translate} | {'Download'|@translate} diff --git a/admin/themes/default/template/rating.tpl b/admin/themes/default/template/rating.tpl index 7be061e16..f78e06319 100644 --- a/admin/themes/default/template/rating.tpl +++ b/admin/themes/default/template/rating.tpl @@ -38,7 +38,7 @@ jQuery("select[name=cat]").change(function(){ - {'Filter'|@translate} + {'Filter'|@translate} {'Sort by'|@translate} diff --git a/admin/themes/default/template/rating_user.tpl b/admin/themes/default/template/rating_user.tpl index 6d93f9610..873882a68 100644 --- a/admin/themes/default/template/rating_user.tpl +++ b/admin/themes/default/template/rating_user.tpl @@ -67,7 +67,9 @@ body .ui-tooltip { - +{combine_script id='common' load='footer' path='admin/themes/default/js/common.js'} +{combine_script id='jquery.confirm' load='footer' require='jquery' path='themes/default/js/plugins/jquery-confirm.min.js'} +{combine_css path="themes/default/js/plugins/jquery-confirm.min.css"} {combine_script id='core.scripts' load='async' path='themes/default/js/scripts.js'} {combine_script id='jquery.geoip' load='async' path='admin/themes/default/js/jquery.geoip.js'} {footer_script} @@ -126,29 +128,43 @@ function uidFromCell(cell){ $(document).ready( function(){ $("#rateTable").on( "click", ".del", function(e) { e.preventDefault(); - if (!confirm('{'Are you sure?'|@translate|@escape:'javascript'}')) - return; - var cell = e.target.parentNode, - tr = cell; - while ( tr.nodeName != "TR") tr = tr.parentNode; - tr = jQuery(tr).fadeTo(1000, 0.4); - - var data=uidFromCell(cell); - - (new PwgWS('{$ROOT_URL|@escape:javascript}')).callService( - 'pwg.rates.delete', { user_id:data.uid, anonymous_id:data.aid}, - { - method: 'POST', - onFailure: function(num, text) { tr.stop(); tr.fadeTo(0,1); alert(num + " " + text); }, - onSuccess: function(result){ - if (result) - oTable.row(tr[0]).remove().draw(); - else - alert(result); + const title_msg = '{'Are you sure you want to delete the ratings of the user "%s"?'|@translate|@escape:'javascript'}'; + const confirm_msg = '{"Yes, I am sure"|@translate}'; + const cancel_msg = "{"No, I have changed my mind"|@translate}"; + let usr_name = $(this).closest("tr").find(".usr").html(); + $.confirm({ + title: title_msg.replace("%s", usr_name), + buttons: { + confirm: { + text: confirm_msg, + btnClass: 'btn-red', + action: function () { + var cell = e.target.parentNode, + tr = cell; + while ( tr.nodeName != "TR") tr = tr.parentNode; + tr = jQuery(tr).fadeTo(1000, 0.4); + var data=uidFromCell(cell); + (new PwgWS('{$ROOT_URL|@escape:javascript}')).callService( + 'pwg.rates.delete', { user_id:data.uid, anonymous_id:data.aid}, + { + method: 'POST', + onFailure: function(num, text) { tr.stop(); tr.fadeTo(0,1); alert(num + " " + text); }, + onSuccess: function(result){ + if (result) + oTable.row(tr[0]).remove().draw(); + else + alert(result); + } + } + ); + } + }, + cancel: { + text: cancel_msg } - } - ); - + }, + ...jConfirm_confirm_options + }); }); }); diff --git a/admin/themes/default/template/site_manager.tpl b/admin/themes/default/template/site_manager.tpl index 242906027..674e25e33 100644 --- a/admin/themes/default/template/site_manager.tpl +++ b/admin/themes/default/template/site_manager.tpl @@ -6,8 +6,21 @@ jQuery(document).ready(function(){ }); }); {/literal}{/footer_script} - - +{combine_script id='common' load='footer' path='admin/themes/default/js/common.js'} +{combine_script id='jquery.confirm' load='footer' require='jquery' path='themes/default/js/plugins/jquery-confirm.min.js'} +{combine_css path="themes/default/js/plugins/jquery-confirm.min.css"} +{footer_script} +const title_msg = '{'Are you sure you want to delete this site?'|@translate|@escape:'javascript'}'; +const confirm_msg = '{"Yes, I am sure"|@translate}'; +const cancel_msg = "{"No, I have changed my mind"|@translate}"; +$(".delete-site-button").each(function() { + $(this).pwg_jconfirm_follow_href({ + alert_title: title_msg, + alert_confirm: confirm_msg, + alert_cancel: cancel_msg + }); +}); +{/footer_script} {'Site manager'|@translate} @@ -34,8 +47,7 @@ jQuery(document).ready(function(){ [{'Synchronize'|@translate}] {if isset($site.U_DELETE)} - [{'delete'|@translate}] + [{'delete'|@translate}] {/if} {if not empty($site.plugin_links)} diff --git a/admin/themes/default/template/site_update.tpl b/admin/themes/default/template/site_update.tpl index 2b2ec3f96..7d4482939 100644 --- a/admin/themes/default/template/site_update.tpl +++ b/admin/themes/default/template/site_update.tpl @@ -1,8 +1,16 @@ +{footer_script} +$('#syncFiles label').click(function () { + if ($("input[value='files']:checked").val()) { + $("input[value='files']").closest("li").find("ul").show(); + } else { + $("input[value='files']").closest("li").find("ul").hide(); + } +}) -{include file='include/resize.inc.tpl'} +{/footer_script} - {'Database synchronization with files'|@translate}: {$SITE_URL} + {'Synchronize'|@translate}{$SITE_URL} {if isset($update_result)} @@ -60,13 +68,13 @@ - {'synchronize files structure with database'|@translate} + {'synchronize files structure with database'|@translate} {'nothing'|@translate} {'only directories'|@translate} {'directories + files'|@translate} - + {'display maximum informations (added albums and photos, deleted albums and photos)'|@translate} {'add new photos to caddie'|@translate} {'Who can see these photos?'|@translate} {html_options options=$introduction.privacy_level_options selected=$introduction.privacy_level_selected} @@ -76,7 +84,7 @@ - {'synchronize files metadata with database photos informations'|@translate} + {'synchronize files metadata with database photos informations'|@translate} {'Synchronize metadata'|@translate} ({$METADATA_LIST}) @@ -89,12 +97,12 @@ - {'Simulation'|@translate} + {'Simulation'|@translate} {'only perform a simulation (no change in database will be made)'|@translate} - {'reduce to single existing albums'|@translate} + {'reduce to single existing albums'|@translate} diff --git a/admin/themes/default/template/stats.tpl b/admin/themes/default/template/stats.tpl index 692a3a6c5..d97e5fe5a 100644 --- a/admin/themes/default/template/stats.tpl +++ b/admin/themes/default/template/stats.tpl @@ -1,25 +1,61 @@ +{footer_script} +var str_number_page_visited = "{'Page Visited'|@translate}"; +var str_number_page_visited_with_year = "{'Page Visited in %s'|@translate}"; +var str_tooltip_format = { + "years":"YYYY", + "months":"MMMM YYYY", + "days":"DD MMM", + "hours":"LT" +}; +var str_unit_format = { + "day":"dddd", + "month":"MMM YYYY" +} +var str_avg = "{'Average last 12 months'|@translate}" +var str_months = ["{'January'|@translate}", "{'February'|@translate}", "{'March'|@translate}", "{'April'|@translate}", "{'May'|@translate}", "{'June'|@translate}", "{'July'|@translate}", "{'August'|@translate}", "{'September'|@translate}", "{'Octobember'|@translate}", "{'November'|@translate}", "{'December'|@translate}"]; +moment.locale("{$langCode}"); +{/footer_script} + +{combine_script id='chart.js' load='footer' path='themes/default/js/plugins/Chart.min.js'} +{combine_css path="themes/default/js/plugins/Chart.min.css"} + +{combine_script id='moment-with-locales.js' path='themes/default/js/plugins/moment-with-locales.min.js'} + +{combine_script id='stats' load='footer' path='admin/themes/default/js/stats.js'} - {'History'|@translate} {$TABSHEET_TITLE} + {'History'|@translate} -{$L_STAT_TITLE} + + + + + + {'Compare mode'|@translate} + - - - {$PERIOD_LABEL} - {'Pages seen'|@translate} - - + + + + + {"Hour"|@translate} + + {"Day"|@translate} + + {"Month"|@translate} + + {"Year"|@translate} + + -{if not empty($statrows)} -{foreach from=$statrows item=row} - - {$row.VALUE} - {$row.PAGES} - - -{/foreach} -{/if} - - + + Your browser does not support the canvas element. + diff --git a/admin/themes/default/template/tags.tpl b/admin/themes/default/template/tags.tpl index 8d22e72f0..c82b6e000 100644 --- a/admin/themes/default/template/tags.tpl +++ b/admin/themes/default/template/tags.tpl @@ -1,336 +1,195 @@ -{combine_script id='common' load='footer' path='admin/themes/default/js/common.js'} -{include file='include/tag_selection.inc.tpl'} - -{html_style} -.showInfo { text-indent:5px; } -form fieldset p { margin-left:0; } -{/html_style} - -{footer_script require='jquery'} -/** - * Add tag - */ -jQuery("#addTag").click(function() { - jQuery("#addTagForm").toggle(); - jQuery("input[name=add_tag]").focus(); - return false; -}); - -jQuery("#addTagClose").click(function() { - jQuery("#addTagForm").hide(); - return false; -}); - -jQuery("#selectionMode").click(function() { - if (jQuery(this).hasClass("icon-check-empty")) { - jQuery("#selectionMode").removeClass("icon-check-empty").addClass("icon-check"); - jQuery('label.font-checkbox span').show(); - jQuery('ul.tagSelection a.showInfo').hide(); - jQuery('fieldset#action').show(); - jQuery('fieldset#selectTags legend').html("{'Tag selection'|translate|escape:javascript}"); - } - else { - jQuery("#selectionMode").removeClass("icon-check").addClass("icon-check-empty"); - jQuery('label.font-checkbox span').hide(); - jQuery('ul.tagSelection a.showInfo').show(); - jQuery('fieldset#action').hide(); - jQuery('fieldset#selectTags legend').html("{'Tags'|translate|escape:javascript}"); - } - return false; -}); - - -jQuery('.showInfo').tipTip({ - 'delay' : 0, - 'fadeIn' : 200, - 'fadeOut' : 200, - 'maxWidth':'300px', - 'keepAlive':true, - 'activation':'click' -}); - -function displayDeletionWarnings() { - jQuery(".warningDeletion").show(); - jQuery("input[name=destination_tag]:checked").parent("label").children(".warningDeletion").hide(); -} - -displayDeletionWarnings(); - -jQuery("#mergeTags label").click(function() { - displayDeletionWarnings(); -}); - -$("#searchInput").on("keydown", function(e) { - var $this = $(this), - timer = $this.data("timer"); - - if (timer) { - clearTimeout(timer); - } - - $this.data("timer", setTimeout(function() { - var val = $this.val(); - if (!val) { - $(".tagSelection>li").show(); - $("#filterIcon").css("visibility","hidden"); - } - else { - $("#filterIcon").css("visibility","visible"); - var regex = new RegExp( val.replace(/[\-\[\]{}()*+?.,\\\^$|#\s]/g, "\\$&"), "i" ); - $(".tagSelection>li").each(function() { - var $li = $(this), - text = $.trim( $("label", $li).text() ); - $li.toggle(regex.test(text)); - }); - } - - }, 300) ); - - if (e.keyCode == 13) { // Enter - e.preventDefault(); - } -}); - -jQuery('input[name="tags[]"]').click(function() { - var nbSelected = 0; - nbSelected = jQuery('input[name="tags[]"]').filter(':checked').length; - - if (nbSelected == 0) { - jQuery("#permitAction").hide(); - jQuery("#forbidAction").show(); - } - else { - jQuery("#permitAction").show(); - jQuery("#forbidAction").hide(); - } -}); - -jQuery("[id^=action_]").hide(); - -jQuery("select[name=selectAction]").change(function () { - jQuery("[id^=action_]").hide(); - - jQuery("#action_"+jQuery(this).prop("value")).show(); - - jQuery("#displayFormBlock").hide(); - jQuery("#applyActionBlock").hide(); - - if (jQuery(this).val() != -1 ) { - if (jQuery(this).val() == 'delete') { - jQuery("#applyActionBlock").show(); - jQuery("#applyAction").attr("name", jQuery(this).val()); - } - else { - jQuery("#displayForm").attr("name", jQuery(this).val()); - jQuery("#displayFormBlock").show(); - } - } - else { - } -}); - -jQuery("form").submit(function() { - if (jQuery("select[name=selectAction]").val() == "delete") { - if (!jQuery("input[name=confirm_deletion]").is(":checked")) { - jQuery("#action_delete .errors").show(); - return false; - } - } - - if (jQuery("select[name=selectAction]").val() == "merge") { - if (jQuery("ul.tagSelection input[type=checkbox]:checked").length < 2) { - alert("{'Select at least two tags for merging'|@translate}"); - return false; - } - } -}); - -jQuery("input[name=confirm_deletion]").change(function() { - jQuery("#action_delete .errors").hide(); -}); +{footer_script} +var pwg_token = "{$PWG_TOKEN}"; +var str_delete = '{'Delete tag "%s"?'|@translate}'; +var str_delete_tags = '{'Delete tags \{%s\}?'|@translate}'; +var str_yes_delete_confirmation = "{'Yes, delete'|@translate}"; +var str_no_delete_confirmation = "{"No, I have changed my mind"|@translate}"; +var str_tag_deleted = '{'Tag "%s" succesfully deleted'|@translate}'; +var str_tags_deleted = '{'Tags \{%s\} succesfully deleted'|@translate}'; +var str_already_exist = '{'Tag "%s" already exists'|@translate}'; +var str_tag_created = '{'Tag "%s" created'|@translate}'; +var str_tag_renamed = '{'Tag "%s1" renamed in "%s2"'|@translate}'; +var str_delete_orphan_tags = '{'Delete orphan tags ?'|@translate}'; +var str_orphan_tags = '{'You have %s1 orphan : %s2'|@translate}'; +var str_delete_them = '{'Delete them'|@translate}'; +var str_keep_them = '{'Keep them'|@translate}'; +var str_copy = '{' (copy)'|@translate}'; +var str_other_copy = '{' (copy %s)'|@translate}'; +var str_merged_into = '{'Tag(s) \{%s1\} succesfully merged into "%s2"'|@translate}'; +var str_and_others_tags = '{'and %s others'|@translate}'; +var str_others_tags_available = '{'%s other tags available...'|@translate}' +var str_number_photos = '{'%d photos'}' +var str_no_photos = '{'no photo'}' +var str_select_all_tag = '{'Select all %d tags'|@translate}'; +var str_clear_selection = '{'Clear Selection'|@translate}'; +var str_selection_done = '{'The %d tags on this page are selected'|@translate}'; +var str_tag_selected = '{'%d tag selected'|@translate}'; +var str_tags_found = '{'%d tags found'|@translate}'; +var str_tag_found = '{'%d tag found'|@translate}'; {/footer_script} +{combine_script id='common' load='footer' path='admin/themes/default/js/common.js'} +{combine_script id='jquery.confirm' load='footer' require='jquery' path='themes/default/js/plugins/jquery-confirm.min.js'} +{combine_css path="themes/default/js/plugins/jquery-confirm.min.css"} +{combine_css path="admin/themes/default/fontello/css/animation.css"} +{combine_script id='tiptip' load='header' path='themes/default/js/plugins/jquery.tipTip.minified.js'} +{combine_script id='tags' load='footer' path='admin/themes/default/js/tags.js'} + + + + + +{function name=tagContent} +{function tagContent} + {$tag_name} + + + + + {$tag_name} + {if !$has_image}{'no photo'|@translate}{else}{'%d photos'|@translate:$tag_count}{/if} + + {'View in gallery'|@translate} + {'Manage photos'|@translate} + {'Edit'|@translate} + {'Duplicate'|@translate} + {'Delete'|@translate} + + + + + + + + + + + + + +{/function} +{/function} - {'Manage tags'|@translate} + {'Tag Manager'|@translate} {$total} -{if !isset($EDIT_TAGS_LIST) and !isset($DUPLIC_TAGS_LIST) and !isset($MERGE_TAGS_LIST)} - - {'Add a tag'|translate} - {'Select tags'|translate} - + + + + + + {'Selection mode'|@translate} + - - + + - - {'Add a tag'|@translate} + {'No tags selected, no actions possible.'|@translate} - - {'New tag'|@translate} - - + + {'Your selection'|@translate} + + + + + {'Merge'|@translate} + {'Delete'|@translate} + - - - {'Cancel'|@translate} - - - -{/if} - - - - - {if isset($EDIT_TAGS_LIST)} - - {'Edit tags'|@translate} - - - - {'Current name'|@translate} - {'New name'|@translate} - - {foreach from=$tags item=tag} - - {$tag.NAME} - - - {/foreach} - - - - - - - - {/if} - - {if isset($DUPLIC_TAGS_LIST)} - - {'Edit tags'|@translate} - - - - {'Source tag'|@translate} - {'Name of the duplicate'|@translate} - - {foreach from=$tags item=tag} - - {$tag.NAME} - - - {/foreach} - - - - - - - - {/if} - - {if isset($MERGE_TAGS_LIST)} - - {'Merge tags'|@translate} - {'Select the destination tag'|@translate} - - - {foreach from=$tags item=tag name=tagloop} - {$tag.NAME} {'(this tag will be deleted)'|@translate} - {/foreach} - - - - - - - - - {/if} - -{if !isset($EDIT_TAGS_LIST) and !isset($DUPLIC_TAGS_LIST) and !isset($MERGE_TAGS_LIST)} - - - {'Tags'|@translate} - - {if count($all_tags)} - {'Search'|@translate} - {/if} - - - {foreach from=$all_tags item=tag} - - {capture name='showInfo'}{strip} - {$tag.name} ({$tag.counter|@translate_dec:'%d photo':'%d photos'}) - {'View in gallery'|@translate} | - {'Manage photos'|@translate} - {if !empty($tag.alt_names)}{$tag.alt_names}{/if} - {/strip}{/capture} - - - - - {$tag.name} - - - {/foreach} - - - - - - {'Action'|@translate} - {'No tag selected, no action possible.'|@translate} - - - - {'Choose an action'|@translate} - ------------------ - {'Edit selected tags'|@translate} - {'Duplicate selected tags'|@translate} - {'Merge selected tags'|@translate} - {'Delete selected tags'|@translate} -{if !empty($tag_manager_plugin_actions)} - {foreach from=$tag_manager_plugin_actions item=action} - {$action.NAME} - {/foreach} -{/if} + + {'Choose which tag to merge these tags into'|@translate} + {'The other tags will be removed'|@translate} + + + + Confirm merge + Cancel + - - - - - - - {'Are you sure?'|@translate} - - we really need you to confirm - - + + -{* plugins *} -{if !empty($tag_manage_plugin_actions)} - {foreach from=$element_set_groupe_plugins_actions item=action} - - {if !empty($action.CONTENT)}{$action.CONTENT}{/if} - + + + + + + + + + + + {'Add a tag'|@translate} + + + + + + + + + {'Select'|@translate} + {'All'|@translate} + {'None'|@translate} + {'Invert'|@translate} + + {if $warning_tags != ""} + {$warning_tags} + {/if} + {$message_tags} + + + + + + + + + + + + {foreach from=$first_tags item=tag} + + {tagContent + tag_name = $tag.name + tag_U_VIEW = 'index.php?/tags/%s-%s'|@sprintf:$tag['id']:$tag['url_name'] + tag_U_EDIT = 'admin.php?page=batch_manager&filter=tag-%s'|@sprintf:$tag['id'] + has_image = ($tag.counter > 0) + tag_count = $tag.counter + } + {/foreach} -{/if} - - {'Display form'|translate} - + + {'No tag found'|@translate} + + + {'Display'|@translate} + 100 + 200 + 500 + 1000 + - - - {'Apply action'|translate} {* icon-trash because the only action is deletion *} - - - - {* #permitAction *} - -{/if} + + + + + + + + + + + - + + {tagContent + tag_name='%name%' + tag_U_VIEW='%U_VIEW%' + tag_U_EDIT='%U_EDIT%' + has_image=false + tag_count='%count%' + } + \ No newline at end of file diff --git a/admin/themes/default/template/themes_installed.tpl b/admin/themes/default/template/themes_installed.tpl index 1c44f63ed..86319ec79 100644 --- a/admin/themes/default/template/themes_installed.tpl +++ b/admin/themes/default/template/themes_installed.tpl @@ -1,18 +1,65 @@ {include file='include/colorbox.inc.tpl'} +{combine_script id='common' load='footer' path='admin/themes/default/js/common.js'} +{combine_script id='jquery.confirm' load='footer' require='jquery' path='themes/default/js/plugins/jquery-confirm.min.js'} +{combine_css path="themes/default/js/plugins/jquery-confirm.min.css"} +{footer_script} +const title_msg = '{'Are you sure you want to delete this theme?'|@translate|@escape:'javascript'}'; +const confirm_msg = '{"Yes, I am sure"|@translate}'; +const cancel_msg = "{"No, I have changed my mind"|@translate}"; +$(".delete-theme-button").each(function() { + let theme_name = $(this).closest(".themeBox").find(".themeName").attr("title"); + let title = '{'Are you sure you want to delete the theme "%s"?'|@translate|@escape:'javascript'}'; + $(this).pwg_jconfirm_follow_href({ + alert_title: title.replace("%s", theme_name), + alert_confirm: confirm_msg, + alert_cancel: cancel_msg + }); +}); +{/footer_script} + {footer_script}{literal} jQuery(document).ready(function() { $("a.preview-box").colorbox(); - jQuery('.showInfo').tipTip({ - 'delay' : 0, - 'fadeIn' : 200, - 'fadeOut' : 200, - 'maxWidth':'300px', - 'keepAlive':true, - 'activation':'click' + $(document).mouseup(function (e) { + e.stopPropagation(); + if (!$(event.target).hasClass('showInfo')) { + $('.showInfo-dropdown').fadeOut(); + } }); + }); + +$(window).bind("load", function() { + $('.themeBox').each(function() { + + let box = $(this); + box.find('.showInfo').on('click', function() { + let dropdown = box.find('.showInfo-dropdown'); + $('.showInfo-dropdown').each(function() { + if ($(this) !== dropdown) { + $(this).fadeOut(); + } + }) + box.find('.showInfo-dropdown').fadeToggle(); + }); + + let screenImage = $(this).find(".preview-box img"); + let imageW = screenImage.innerWidth(); + let imageH = screenImage.innerHeight(); + let size = $(this).find(".preview-box").innerWidth(); + + if (imageW > imageH) { + screenImage.css('height', size+'px'); + screenImage.css('width', (imageW * size / imageH)+'px'); + } else { + screenImage.css('width', size+'px'); + screenImage.css('heigth', (imageH * size / imageW)+'px'); + } + }) +}) + {/literal}{/footer_script} @@ -33,9 +80,9 @@ jQuery(document).ready(function() { {if $theme.STATE == 'active'} - {'Active Themes'|@translate} + {'Active Themes'|@translate} {else} - {'Inactive Themes'|@translate} + {'Inactive Themes'|@translate} {/if} @@ -56,40 +103,49 @@ jQuery(document).ready(function() { {/if} - - {$theme.NAME} {if $theme.IS_DEFAULT}({'default'|@translate}){/if} {if $theme.IS_MOBILE}({'Mobile'|@translate}){/if} - - + + {$theme.NAME} {if $theme.IS_DEFAULT}({'default'|@translate}){/if} {if $theme.IS_MOBILE}({'Mobile'|@translate}){/if} + + + + + {if !empty($author)} + {'By %s'|@translate:$author} | + {/if} + {'Version'|@translate} {$version} + + + {$theme.DESC|@escape:'html'} + + {if $theme.STATE != "active"} + {if $theme.DELETABLE} + {'Delete'|@translate} + {else} + {'Delete'|@translate} + {/if} + {/if} + {if $theme.DEACTIVABLE} + {'Deactivate'|@translate} + {/if} + - {if $theme.STATE == 'active'} - {if $theme.DEACTIVABLE} - {'Deactivate'|@translate} - {else} - {'Deactivate'|@translate} - {/if} - - {if not $theme.IS_DEFAULT} - | {'Default'|@translate} - {/if} {if $theme.ADMIN_URI} - {'Configuration'|@translate} + {'Configuration'|@translate} + {/if} + {if not $theme.IS_DEFAULT} + {'Set as default'|@translate} + {else} + {'Set as default'|@translate} {/if} {else} {if $theme.ACTIVABLE} - {'Activate'|@translate} + {'Activate'|@translate} {else} - {'Activate'|@translate} - {/if} - | - {if $theme.DELETABLE} - {'Delete'|@translate} - {else} - {'Delete'|@translate} + {'Activate'|@translate} {/if} {/if} - diff --git a/admin/themes/default/template/themes_new.tpl b/admin/themes/default/template/themes_new.tpl index d897deabb..b15df45ab 100644 --- a/admin/themes/default/template/themes_new.tpl +++ b/admin/themes/default/template/themes_new.tpl @@ -1,8 +1,23 @@ {include file='include/colorbox.inc.tpl'} {footer_script}{literal} -jQuery(document).ready(function() { - $("a.preview-box").colorbox(); -}); + +$(window).bind("load", function() { + $('.themeBox').each(function() { + + let screenImage = $(this).find(".preview-box img"); + let imageW = screenImage.innerWidth(); + let imageH = screenImage.innerHeight(); + let size = $(this).find(".preview-box").innerWidth(); + + if (imageW > imageH) { + screenImage.css('height', size+'px'); + screenImage.css('width', (imageW * size / imageH)+'px'); + } else { + screenImage.css('width', size+'px'); + screenImage.css('heigth', (imageH * size / imageW)+'px'); + } + }) +}) {/literal}{/footer_script} {'Add New Theme'|@translate} @@ -11,11 +26,11 @@ jQuery(document).ready(function() { {if not empty($new_themes)} {foreach from=$new_themes item=theme name=themes_loop} - - {$theme.name} - - {'Install'|@translate} - + + + {$theme.name} + {'Install'|@translate} + {/foreach} {else} diff --git a/admin/themes/default/template/updates_ext.tpl b/admin/themes/default/template/updates_ext.tpl index 7d65c254a..a4b1cb52a 100644 --- a/admin/themes/default/template/updates_ext.tpl +++ b/admin/themes/default/template/updates_ext.tpl @@ -21,12 +21,10 @@ var queuedManager = $.manageAjax.create('queued', { }); function updateAll() { - if (confirm(confirmMsg)) { - jQuery('.updateExtension').each( function() { - if (jQuery(this).parents('div').css('display') == 'block') - jQuery(this).click(); - }); - } + jQuery('.updateExtension').each( function() { + if (jQuery(this).parents('div').css('display') == 'block') + jQuery(this).click(); + }); }; function ignoreAll() { @@ -129,8 +127,9 @@ function autoupdate_bar_toggle(i) { jQuery(document).ready(function() { jQuery("td[id^='desc_'], p[id^='revdesc_']").click(function() { id = this.id.split('_'); - jQuery("#revdesc_"+id[1]).toggle('blind'); + jQuery("#revdesc_"+id[1]).toggle(); jQuery(".button_"+id[1]).toggle(); + jQuery("#revdesc_"+id[1]).closest('tr').toggle(); return false; }); }); @@ -138,13 +137,41 @@ jQuery(document).ready(function() { checkFieldsets(); {/literal} {/footer_script} +{combine_script id='common' load='footer' path='admin/themes/default/js/common.js'} +{combine_script id='jquery.confirm' load='footer' require='jquery' path='themes/default/js/plugins/jquery-confirm.min.js'} +{combine_css path="themes/default/js/plugins/jquery-confirm.min.css"} +{footer_script} + +const are_you_sure_msg = '{'Are you sure?'|@translate|@escape:'javascript'}'; +const confirm_msg = '{"Yes, I am sure"|@translate}'; +const cancel_msg = "{"No, I have changed my mind"|@translate}"; +$("#update_all").click(function() { + const title_msg = "{'Are you sure you want to update all extensions?'|@translate}"; + $.confirm({ + title: title_msg, + buttons: { + confirm: { + text: confirm_msg, + btnClass: 'btn-red', + action: function () { + updateAll(); + } + }, + cancel: { + text: cancel_msg + } + }, + ...jConfirm_confirm_options + }); +}) +{/footer_script} {'Updates'|@translate} - + @@ -183,7 +210,7 @@ checkFieldsets(); | {'By %s'|@translate:$plugin.AUTHOR} - + {$plugin.REV_DESC|@htmlspecialchars|@nl2br} @@ -213,7 +240,7 @@ checkFieldsets(); | {'Ignore this update'|@translate} - + {'Version'|@translate} {$theme.CURRENT_VERSION} @@ -267,7 +294,7 @@ checkFieldsets(); | {'By %s'|@translate:$language.AUTHOR} - + {$language.REV_DESC|@htmlspecialchars|@nl2br} diff --git a/admin/themes/default/template/updates_pwg.tpl b/admin/themes/default/template/updates_pwg.tpl index 8205d9f25..b62f9b271 100644 --- a/admin/themes/default/template/updates_pwg.tpl +++ b/admin/themes/default/template/updates_pwg.tpl @@ -19,10 +19,44 @@ form { width: 750px; } fieldset { padding-bottom: 30px; } p, form p { text-align: left; margin-left:20px; } li { margin: 5px; } + +.badge-release { + padding:5px 10px; + border-radius: 5px; +} + +a.badge-release:hover { + text-decoration:none; + color: currentColor; +} + +.goto-update-page { + padding:5px 10px; + font-weight:bold; +} + +.goto-update-page:hover { + text-decoration:none; +} + +.update-recommendation { + margin-top:30px; +} + +p.release .errors {margin:0} {/literal} {/html_head} +{if isset($MINOR_RELEASE_PHP_REQUIRED) and isset($MAJOR_RELEASE_PHP_REQUIRED)} + + + + {'Please upgrade your PHP version before any update.'|translate} + + +{/if} + {'Updates'|@translate} @@ -38,29 +72,59 @@ li { margin: 5px; } {/if} {if $STEP == 1} -{'Two updates are available'|@translate}: - - - {'Update to Piwigo %s'|@translate:$MINOR_VERSION}: {'This is a minor update, with only bug corrections.'|@translate} - {'Update to Piwigo %s'|@translate:$MAJOR_VERSION}: {'This is a major update, with new exciting features.'|@translate:$RELEASE_URL} {'Some themes and plugins may be not available yet.'|@translate} - + + {'Two updates are available'|@translate} + + {$MINOR_VERSION} + {'This is a minor update, with only bug corrections.'|@translate} +{if isset($MINOR_RELEASE_PHP_REQUIRED)} + {'Requires PHP %s'|translate:$MINOR_RELEASE_PHP_REQUIRED} +{else} + {'Update to Piwigo %s'|@translate:$MINOR_VERSION} +{/if} -{'You can update to Piwigo %s directly, without upgrading to Piwigo %s (recommended).'|@translate:$MAJOR_VERSION:$MINOR_VERSION} + + + {$MAJOR_VERSION} + {'This is a major update, with new exciting features.'|translate:$MAJOR_RELEASE_URL} + {'Some themes and plugins may be not available yet.'|translate} +{if isset($MAJOR_RELEASE_PHP_REQUIRED)} + {'Requires PHP %s'|translate:$MAJOR_RELEASE_PHP_REQUIRED} +{else} + {'Update to Piwigo %s'|@translate:$MAJOR_VERSION} +{/if} + + + + {'You can update to Piwigo %s directly, without upgrading to Piwigo %s (recommended).'|@translate:$MAJOR_VERSION:$MINOR_VERSION} + + {/if} {if $STEP == 2} + + {$MINOR_VERSION} + {'A new version of Piwigo is available.'|@translate} {'This is a minor update, with only bug corrections.'|@translate} - + + +{if isset($MINOR_RELEASE_PHP_REQUIRED)} + {'Requires PHP %s'|translate:$MINOR_RELEASE_PHP_REQUIRED} +{/if} + {'Update in progress...'|@translate} {/if} {if $STEP == 3} + + {$MAJOR_VERSION} + {'A new version of Piwigo is available.'|@translate} {'This is a major update, with new exciting features.'|@translate:$RELEASE_URL} {'Some themes and plugins may be not available yet.'|@translate} @@ -69,14 +133,17 @@ li { margin: 5px; } {counter assign=i} - {'Dump Database'|@translate} - {'Include history data (Warning: server memory limit may be exceeded)'|@translate} - + {'Backup'|@translate} + + {'Always have a backup of your database and files.'|translate} + {'The best is to have them made automatically on a regular basis.'|translate} + {'If anything bad happens during the update, you would be able to restore a backup.'|translate} + {counter assign=i} - {'Update to Piwigo %s'|@translate:$UPGRADE_TO} + {'Update to Piwigo %s'|@translate:$UPGRADE_TO} {if !empty($missing.plugins)} {'Following plugins may not be compatible with the new version of Piwigo:'|@translate} {foreach from=$missing.plugins item=plugin}{$plugin.name}{/foreach} @@ -89,7 +156,10 @@ li { margin: 5px; } {if !empty($missing.plugins) or !empty($missing.themes)} {'I decide to update anyway'|@translate} {/if} - + +{if isset($MAJOR_RELEASE_PHP_REQUIRED)} + {'Requires PHP %s'|translate:$MAJOR_RELEASE_PHP_REQUIRED} +{/if} {'Update in progress...'|@translate} diff --git a/admin/themes/default/template/user_list.tpl b/admin/themes/default/template/user_list.tpl index 79abbe985..0d5569b5c 100644 --- a/admin/themes/default/template/user_list.tpl +++ b/admin/themes/default/template/user_list.tpl @@ -12,6 +12,9 @@ {combine_script id='jquery.ui.slider' require='jquery.ui' load='footer' path='themes/default/js/ui/minified/jquery.ui.slider.min.js'} {combine_css path="themes/default/js/ui/theme/jquery.ui.slider.css"} +{combine_script id='jquery.confirm' load='footer' require='jquery' path='themes/default/js/plugins/jquery-confirm.min.js'} +{combine_css path="themes/default/js/plugins/jquery-confirm.min.css"} + {footer_script} var selectedMessage_pattern = "{'%d of %d users selected'|translate|escape:javascript}"; var selectedMessage_none = "{'No user selected of %d users'|translate|escape:javascript}"; @@ -22,8 +25,10 @@ var registeredOn_pattern = "{'Registered on %s, %s.'|translate|escape:javascript var lastVisit_pattern = "{'Last visit on %s, %s.'|translate|escape:javascript}"; var missingConfirm = "{'You need to confirm deletion'|translate|escape:javascript}"; var missingUsername = "{'Please, enter a login'|translate|escape:javascript}"; +let title_msg = '{'Are you sure you want to delete the user "%s"?'|@translate|escape:'javascript'}'; -var allUsers = [{$all_users}]; +var filteredUsers = []; +var nb_all_users = 0; var selection = []; var pwg_token = "{$PWG_TOKEN}"; @@ -31,6 +36,11 @@ var protectedUsers = [{$protected_users}]; var passwordProtectedUsers = [{$password_protected_users}]; var guestUser = {$guest_user}; + +const are_you_sure_msg = '{'Are you sure?'|@translate|@escape:'javascript'}'; +const confirm_msg = '{'Yes, I am sure'|@translate|@escape}'; +const cancel_msg = '{'No, I have changed my mind'|@translate|@escape}'; + var truefalse = { 'true':"{'Yes'|translate}", 'false':"{'No'|translate}", @@ -101,7 +111,7 @@ jQuery(document).ready(function() { jQuery("#addUserForm input[type=text], #addUserForm input[type=password]").val(""); var new_user = data.result.users[0]; - allUsers.push(parseInt(new_user.id)); + nb_all_users += 1; jQuery("#showAddUser .infos").html(sprintf(newUser_pattern, new_user.username)).show(); checkSelection(); @@ -190,7 +200,6 @@ jQuery(document).ready(function() { /* Formating function for row details */ function fnFormatDetails(oTable, nTr) { var userId = oTable.api().row(nTr).data()[0]; - console.log("userId = "+userId); var sOut = null; jQuery.ajax({ @@ -287,7 +296,7 @@ jQuery(document).ready(function() { var template = _.template( jQuery("script.userDetails").html() - ); + ); jQuery("#user"+userId).html(template(user)); @@ -479,36 +488,44 @@ jQuery(document).on('click', '.close-user-details', function(e) { }); /* delete user */ - jQuery(document).on('click', '.userDelete a', function() { - if (!confirm("{/literal}{'Are you sure?'|translate|escape:javascript}{literal}")) { - return false; - } - + + $(document).on('click', '.userDelete a', function () { var userId = jQuery(this).data('user_id'); var username = jQuery('#user'+userId+' .username').html(); - - jQuery.ajax({ - url: "ws.php?format=json&method=pwg.users.delete", - type:"POST", - data: { - user_id:userId, - pwg_token:pwg_token + $.confirm({ + title: title_msg.replace('%s', username), + buttons: { + confirm: { + text: confirm_msg, + btnClass: 'btn-red', + action: function () { + jQuery.ajax({ + url: "ws.php?format=json&method=pwg.users.delete", + type:"POST", + data: { + user_id:userId, + pwg_token:pwg_token + }, + beforeSend: function() { + jQuery('#user'+userId+' .userDelete .loading').show(); + }, + success:function(data) { + jQuery('.user_form_popin').colorbox.close(); + jQuery('#showAddUser .infos').html('✔ User '+username+' deleted').show(); + }, + error:function(XMLHttpRequest, textStatus, errorThrows) { + jQuery('#user'+userId+' .userDelete .loading').hide(); + } + }) + } + }, + cancel: { + text: cancel_msg + } }, - beforeSend: function() { - jQuery('#user'+userId+' .userDelete .loading').show(); - }, - success:function(data) { - jQuery('.user_form_popin').colorbox.close(); - jQuery('#showAddUser .infos').html('✔ User '+username+' deleted').show(); - }, - error:function(XMLHttpRequest, textStatus, errorThrows) { - jQuery('#user'+userId+' .userDelete .loading').hide(); - } + ...jConfirm_confirm_options }); - - return false; }); - jQuery(document).on('click', '.userProperties input[type=submit]', function() { var userId = jQuery(this).data('user_id'); @@ -615,8 +632,17 @@ jQuery(document).on('click', '.close-user-details', function(e) { processing: true, serverSide: true, serverMethod: "POST", - ajaxSource: "admin/user_list_backend.php", + ajax: { + url: "admin/user_list_backend.php", + type: "POST", + data: { + pwg_token: pwg_token + } + }, pagingType: "simple", +{/literal}{if (isset($filter_group))}{literal} + "oSearch": {"sSearch": "group:{/literal}{$filter_group}{literal}"}, +{/literal}{/if}{literal} language: { processing: "{/literal}{'Loading...'|translate|escape:'javascript'}{literal}", lengthMenu: sprintf("{/literal}{'Show %s users'|translate|escape:'javascript'}{literal}", '_MENU_'), @@ -634,10 +660,12 @@ jQuery(document).on('click', '.close-user-details', function(e) { } }, "drawCallback": function( oSettings ) { + nb_all_users = parseInt(oTable.api().ajax.json().iTotalRecords); jQuery("#userList input[type=checkbox]").each(function() { var user_id = jQuery(this).data("user_id"); jQuery(this).prop('checked', (selection.indexOf(user_id) != -1)); }); + checkSelection(); }, columns: aoColumns }); @@ -648,7 +676,7 @@ jQuery(document).on('click', '.close-user-details', function(e) { function checkSelection() { if (selection.length > 0) { jQuery("#forbidAction").hide(); - jQuery("#permitAction").show(); + jQuery("#permitActionUserList").show(); jQuery("#applyOnDetails").text( sprintf( @@ -657,11 +685,11 @@ jQuery(document).on('click', '.close-user-details', function(e) { ) ); - if (selection.length == allUsers.length) { + if (selection.length == nb_all_users) { jQuery("#selectedMessage").text( sprintf( selectedMessage_all, - allUsers.length + nb_all_users ) ); } @@ -670,19 +698,19 @@ jQuery(document).on('click', '.close-user-details', function(e) { sprintf( selectedMessage_pattern, selection.length, - allUsers.length + nb_all_users ) ); } } else { jQuery("#forbidAction").show(); - jQuery("#permitAction").hide(); + jQuery("#permitActionUserList").hide(); jQuery("#selectedMessage").text( sprintf( selectedMessage_none, - allUsers.length + nb_all_users ) ); } @@ -701,9 +729,50 @@ jQuery(document).on('click', '.close-user-details', function(e) { checkSelection(); }); + + jQuery("#selectSet").click(function () { + let api = oTable.api(); + let info = api.page.info(); + let search_term = api.search(); + jQuery.ajax({ + url: "admin/user_list_backend.php", + type:"POST", + data: { + search: { + value: search_term, + regex: false + }, + start: info.start, + length: info.length, + get_set_uids: true + }, + beforeSend: function() { + $("#checkActions .loading").show(); + }, + success:function(data) { + data = jQuery.parseJSON(data); + filtered_users = data.filtered_uids.map(x=>+x); + selection = filtered_users; + checkSelection(); + $("#checkActions .loading").hide(); + }, + error:function(XMLHttpRequest, textStatus, errorThrows) { + $("#checkActions .loading").hide(); + } + }); + jQuery("#userList input[type=checkbox]").prop('checked', true); + checkSelection(); + return false; + }); + - jQuery("#selectAll").click(function () { - selection = allUsers; + jQuery("#selectAllPage").click(function () { + let tab = [] + let sel = $("tr td").find("label").each(function() { + let val = $(this).find("input").attr('data-user_id'); + tab.push(parseInt(val)); + }); + selection = tab; jQuery("#userList input[type=checkbox]").prop('checked', true); checkSelection(); return false; @@ -717,20 +786,16 @@ jQuery(document).on('click', '.close-user-details', function(e) { }); jQuery("#selectInvert").click(function () { - var newSelection = []; - for(var i in allUsers) - { - if (selection.indexOf(allUsers[i]) == -1) { - newSelection.push(allUsers[i]); + let tab = [] + let sel = $("tr td").find("label").each(function() { + let val = parseInt($(this).find("input").attr('data-user_id')); + $(this).find("input[type=checkbox]").prop('checked', false); + if (selection.includes(val) == false) { + tab.push(val); + $(this).find("input[type=checkbox]").prop('checked', true); } - } - selection = newSelection; - - jQuery("#userList input[type=checkbox]").each(function() { - var user_id = jQuery(this).data("user_id"); - jQuery(this).prop('checked', (selection.indexOf(user_id) != -1)); }); - + selection = tab; checkSelection(); return false; }); @@ -755,7 +820,7 @@ jQuery(document).on('click', '.close-user-details', function(e) { } }); - jQuery("#permitAction input, #permitAction select").click(function() { + jQuery("#permitActionUserList input, #permitActionUserList select").click(function() { jQuery("#applyActionBlock .infos").hide(); }); @@ -831,15 +896,7 @@ jQuery(document).on('click', '.close-user-details', function(e) { jQuery("#applyActionBlock .infos").show(); if (action == 'delete') { - var allUsers_new = []; - for(var i in allUsers) - { - if (selection.indexOf(allUsers[i]) == -1) { - allUsers_new.push(allUsers[i]); - } - } - allUsers = allUsers_new; - console.log('allUsers_new.length = '+allUsers_new.length); + nb_all_users -= 1; selection = []; checkSelection(); } @@ -851,7 +908,6 @@ jQuery(document).on('click', '.close-user-details', function(e) { return false; }); - }); {/literal}{/footer_script} @@ -883,7 +939,7 @@ span.infos, span.errors {background-image:none; padding:2px 5px; margin:0;border .recent_period_infos {margin-left:10px;} .nb_image_page, .recent_period {width:340px;margin-top:5px;} #action_recent_period .recent_period {display:inline-block;} -.checkActions {padding:0 1em;} +#checkActions {padding:0 1em;} {/literal}{/html_style} @@ -953,20 +1009,23 @@ span.infos, span.errors {background-image:none; padding:2px 5px; margin:0;border - - {'Select:'|@translate} - {'All'|@translate}, - {'None'|@translate}, - {'Invert'|@translate} + + {'Selection'|@translate} + + {'The whole page'|@translate} + {'The whole set'|@translate} + {'None'|@translate} + {'Invert'|@translate} - - + + + {'Action'|@translate} - {'No user selected, no action possible.'|@translate} - + {'No users selected, no actions possible.'|@translate} + {'Choose an action'|@translate} @@ -1075,7 +1134,7 @@ span.infos, span.errors {background-image:none; padding:2px 5px; margin:0;border ✔ {'Users modified'|translate} - {* #permitAction *} + {* #permitActionUserList *} diff --git a/admin/themes/default/template/user_perm.tpl b/admin/themes/default/template/user_perm.tpl index 031ab7000..c7bdc03dd 100644 --- a/admin/themes/default/template/user_perm.tpl +++ b/admin/themes/default/template/user_perm.tpl @@ -18,5 +18,6 @@ {$DOUBLE_SELECT} + diff --git a/admin/themes/default/theme.css b/admin/themes/default/theme.css index 33b270c43..09b68f377 100644 --- a/admin/themes/default/theme.css +++ b/admin/themes/default/theme.css @@ -1,11 +1,10 @@ /* content.css */ [class*="icon-"]:before { text-decoration:none !important; } -.showInfo { font-size:15px;cursor:pointer;line-height:15px; } - +.showInfo { font-size:15px;cursor:pointer;line-height:15px; display: flex; align-items: center;} +.showInfo:hover { text-decoration: none;} /* .Content is on every pages so it is common and it will no longer be a specific css */ .content h2 {margin: 0; padding: 5px 0.5em 5px 0.5em; text-align: right; font-size: 120%;} -.content .navigationBar { margin: 10px 0; text-align: center; } .content form { text-align: left; margin-left: 7px; margin-right: 9px;} .content dt { margin-bottom: 5px; font-style: italic; font-size: 110%; } @@ -90,11 +89,15 @@ UL.thumbnails INPUT { position: absolute; left: 2px; top: 2px; } -UL.thumbnails .levelIndicatorB { -display:block; position:absolute; z-index:100; padding:7px 0 0 2px; color:black; font-weight:bold; font-size:120%; -} UL.thumbnails .levelIndicatorF { -display:block; position:absolute; z-index:101; padding:8px 0 0 3px; color:white; font-weight:bold; font-size:120%; + display:block; + position:absolute; + bottom: 0; + text-shadow: 0px 0px 1px #000; + padding:0 0 2px 5px; + color:white; + font-weight:bold; + z-index: 10; } /* default-layout.css */ @@ -116,8 +119,11 @@ TABLE.table2 TR { TABLE.table2 THEAD TD { padding:7px 10px 3px 10px; } TABLE.table2 TR.throw { text-align: center; } -.sort { display:block; padding:8px 5px 5px 15px; text-align: left;} +.sort { display:block; padding:1em 2em 0 2em; text-align: left;} +.sort .icon-sort-number-up { + margin-left: 25px; +} .hour { white-space: pre; @@ -145,36 +151,176 @@ TABLE.plugins TR TD { padding: 4px 10px; } TABLE.languages TR TD { padding: 7px 20px; } -/* categoryOrdering */ -FORM#categoryOrdering .orderParams { - line-height:30px; - margin-bottom:10px; +/* Category List */ +.categoryContainer { + display: flex; + flex-wrap: wrap; + justify-content: center; } -SELECT.categoryList { - width: 100%; +.categoryBox, .addAlbum { + position: relative; + text-align: left; + height: 300px; + width: 220px; + margin: 15px; + border-radius: 10px; } -FORM#categoryOrdering p { - text-align: left; - /* margin-top: 1em; */ - /* margin-bottom: 1em; */ -} -UL.categoryUl { - list-style: none; - padding: 0; - margin: 1em; +.albumIcon { + height: 80px; + display: flex; + align-items: center; + justify-content: center; } -LI.categoryLi { -/* - width: 100%; -*/ - margin-bottom: 20px; - border-radius:5px; +.albumIcon span{ + font-size: 19px; + width: 27px; + padding: 10px; + border-radius: 30px; } +.albumTitle { + font-size: 16px; + padding: 0px 15px; + font-weight: bold; + overflow: hidden; + white-space: nowrap; + text-overflow: ellipsis; + text-align: center; +} +.albumInfos { + text-align: center; + font-weight: 600; + font-size: 14px; + margin-top: 10px; + display: block; +} + +.albumInfos p { + margin: 0; +} + +.albumActions { + position: absolute; + bottom: 5px; + flex-direction: column; + width: 90%; + overflow: hidden; + margin-left: 20px; + margin-bottom: 10px; + display: none; +} + +.categoryBox:hover .albumActions { + display: flex; +} + +.albumActions a, .albumActions span { + margin: 5px; + font-size: 14px; + text-transform: capitalize; + font-weight: bold; + transition: 0.2s ease; + white-space: nowrap; + text-overflow: ellipsis; + overflow: hidden; +} + +.albumActions a span, .albumActions span span{ + margin: 10px; +} + +.addAlbum { + display: flex; + flex-direction: column; + justify-content: space-around; + cursor: pointer; +} + +.addAlbum.input-mode { + cursor: auto; +} + +.addAlbum label { + margin: 0; + border-radius: 5px 5px 0 0; + padding: 2px; + position: absolute; + left: 16px; + font-size: 14px; + color: #3C3C3C; +} + +.addAlbumHead { + font-size: 16px; + display: flex; + flex-direction: column; + align-items: center; + margin-top: -10px; + transform: translateY(75px); + transition: 0.4s ease; + transition-delay: 0.4s; + padding: 110px 0px; +} + +.addAlbum.input-mode .addAlbumHead { + transition-delay: 0s; + padding: 0px; +} + +.addAlbumHead span { + font-size: 19px; + width: 27px; + height: 27px; + padding: 10px; + border-radius: 30px; + margin: 10px auto; +} + +.addAlbumHead p { + font-weight: 700; + margin: 0; +} + +.addAlbum form { + opacity: 0; + pointer-events: none; + transition: 0.4s ease; + transition-delay: 0s; +} + +.addAlbum form input { + margin: 10px; + padding: 10px; + display: inline-block; + width: 159px; + margin-top: 20px; + font-size: 15px; +} + +.addAlbum form input::placeholder { + color: rgb(206, 206, 206); +} + +.addAlbum button, .addAlbum a { + display: table; + margin: 10px auto; + font-weight: bold; +} + +.addAlbum.input-mode .addAlbumHead{ + transform: translateY(0px); +} + +.addAlbum.input-mode form { + opacity: 1; + pointer-events: all; + transition-delay: 0.4s; +} + /* menuOrdering */ FORM#menuOrdering { padding-left: 1em; @@ -209,46 +355,485 @@ LI.menuLi { padding: 12px 0; margin-bottom: 5px; } -/* */ -#catModify TABLE { width: auto; } +/* Cat modify */ + +#catHeader { + display: grid; + grid-template-columns: 25% 25% 25% 25%; + min-height: 200px; +} + +#catHeader .catThumbnail { + position: relative; + overflow: hidden; +} + +#catHeader .catThumbnail .thumbnailContainer { + width: 100%; + padding-top: 100%; +} + +#catHeader .albumThumbailImage, #catHeader .albumThumbnailRandom, #catHeader .albumThumbnailActions, #catHeader .albumThumbnailActionContainer, #catHeader .albumThumbnailNoPhoto{ + position: absolute; + top: 50%; + left: 50%; + transform: translate(-50%, -50%); +} + +#catHeader .albumThumbnailRandom, #catHeader .albumThumbnailNoPhoto { + height: 100%; + width: 100%; + background-color: #fafafa; + display: flex; + justify-content: center; + align-items: center; +} + +#catHeader .albumThumbnailRandom span, #catHeader .albumThumbnailNoPhoto span { + font-size: 100px; + opacity: 0.4; +} + +#catHeader .albumThumbnailActions { + width: 101%; + height: 100%; + background-color: #00000070; + opacity: 0; +} + +#catHeader .catThumbnail:hover .albumThumbnailActions { + opacity: 1; +} + +#catHeader .albumThumbnailActionContainer { + display: flex; + flex-direction: column; +} + +#catHeader .albumThumbnailActions a { + background-color: #ffffffbd; + margin: 10px; + padding: 10px 20px; + white-space: nowrap; + font-weight: bold; + color: #3C3C3C; + text-align: center; +} + +#catHeader .albumThumbnailActions a:hover { + color: #3C3C3C; + text-decoration: none; + background-color: #ff7700; +} + +#catHeader .catInfo, #catHeader .catAction { + border-right: 1px solid #00000017; +} + +#catHeader .catInfo { + display: flex; + justify-content: center; + padding: 10px +} + +#catHeader .catInfo .container{ + display: flex; + flex-direction: column; + align-items: baseline; + justify-content: space-between; + height: 100%; +} + +#catHeader .catInfo span { + padding: 10px; + border-radius: 20px; + font-weight: bold; +} + +#catHeader .catAction { + display: flex; + position: relative; + justify-content: center; + align-items: center; + overflow: hidden; +} + +#catHeader .catAction .container { + display: flex; + flex-direction: column; + justify-content: space-evenly; + align-items: baseline; + height: 100%; + padding-top: 30px; +} + +#catHeader .catAction strong{ + position: absolute; + top: 0; + color: #3C3C3C; + font-size: 16px; +} + +#catHeader .catAction a { + color: #888; + font-size: 14px; + white-space: nowrap; +} + +#catHeader .catAction a:hover { + color: #ff7700; + text-decoration: none; +} + +#catHeader .catAction a::before { + font-size: 20px; + margin-right: 10px; +} + +#catHeader .catLock { + position: relative; + display: flex; + justify-content: center; + align-items: center; +} + +#catHeader .catLock .container{ + position: relative; + height: 100%; +} + +#catHeader .catLock strong { + color: #3C3C3C; + font-size: 16px; + margin-bottom: 15px; + display: block; +} + +#catHeader .catLock .container > div { + margin-bottom: 40px; +} + +#catHeader .catLock > div .label { + font-size: 14px; +} + +#catHeader label[id=applytoSubAction] { + margin-top: 10px; + display: block; +} + +#catHeader .catLock .switch { + margin: 0 5px; +} + +#catModify input[type="text"], #catModify textarea{ + width: 98%; + background-color: #f8f8f8; + padding: 8px; + border-radius: 4px; + border-color: #DDD; + transition: ease 0.2s; + font-family: "Open Sans", "Lucida Grande",Verdana,Arial,"Bitstream Vera Sans",sans-serif; +} + +#catModify input[type="text"]:focus, #catModify textarea:focus{ + border-color: #888; +} + +#catModify button[type="submit"] { + margin: 13px; + font-size: 12px; + padding: 12px; + margin-left: 0; +} #catModify p { - line-height: 20px; - margin: 0 0 1.5em; - text-align: left; + margin-left: 0; } -#catModify p.albumThumbnailActions { - text-align:center; - white-space:nowrap; +/* Search bar */ + +.search-input{ + padding: 10px; + box-shadow: 0px 2px #00000024; + border: none; + background-color: #fafafa !important; + padding-left: 30px; + width: 200px; + margin: 4px; } -FIELDSET.elementEdit .thumb { - display: block; - float: right; - text-align: center; +.search-input:hover { + background-color: #f0f0f0 !important; } -TABLE.doubleSelect { - text-align: center; - margin: 0 auto; - width: 100%; +.search-info { + position: absolute; + left: -10px; + top: 50%; + transform: translate(-100%,-50%); + font-style: italic; } -TABLE.doubleSelect TD { - padding: 0 3px; - width: 50%; +.search-cancel { + display: none; + right: 5px; + top: 50%; + transform: translateY(-50%); + opacity: 0.4; + cursor: pointer; + position: absolute; + font-size: 18px; } -TABLE.doubleSelect SELECT.categoryList { - width: 100%; max-width: 100%; overflow-x: auto; +.search-cancel:hover { + opacity: 1; } -.statBar { - height: 10px; - background-color: #ff7700; - border: 1px solid #666; +.search-icon { + position: absolute; + top: 50%; + transform: translate(4px, -50%); + font-size: 18px; +} + +/* Dropdown */ + +.dropdown { + z-index: 100; + padding: 5px 0px; + border-radius: 10px; + background: linear-gradient(130deg, #ff7700 0%, #ffa744 100%); + color: white; + -moz-osx-font-smoothing: grayscale; +} + +.dropdown::after { + content: " "; + position: absolute; + bottom: 100%; + left: 51%; + margin-left: -5px; + border-width: 5px; + border-style: solid; + border-color: transparent transparent #ff7700 transparent; +} + +.dropdown-content { + position: relative; +} + +.dropdown-option { + white-space: nowrap; + display: block; + text-align: initial; + padding: 5px 10px; + padding-right: 10px; + font-size: 13px; + padding-right: 15px; + color: white; + font-weight: 600; + cursor: pointer; +} + +.dropdown-option-content { + white-space: nowrap; + display: block; + text-align: initial; + padding: 5px 10px; + padding-right: 10px; + font-size: 13px; + padding-right: 15px; + color: white; + font-weight: 600; + cursor: pointer; +} + +.dropdown-option:hover { + text-decoration: none; + color: white; + background-color: #00000012; +} + +.badge-number { + border-radius: 20px; + background-color: #777; + font-size: 16px; + margin-left: 10px; + font-weight: 700; + position: absolute; + transform: translateY(3px); + text-align: center; + color: #ccc; + padding: 0px 7px; +} + +/* Pagination */ + +.pagination-container { + height: 40px; + display: flex; + align-items: center; + justify-content: center; +} + +.pagination-arrow { + font-size: 14px; + cursor: pointer; + display: flex; + align-items: center; + margin: 5px; +} + +.pagination-arrow.rigth { + -moz-transform: scale(-1, 1); + -webkit-transform: scale(-1, 1); + -o-transform: scale(-1, 1); + -ms-transform: scale(-1, 1); + transform: scale(-1, 1); +} + +.pagination-arrow.unavailable { + opacity: 0.6; + pointer-events: none; + cursor: none; +} + +.pagination-item-container { + display: flex; + align-items: baseline; +} + +.pagination-item-container > *{ + margin: 5px; +} + +.pagination-item-container span { + font-size: 20px; + font-weight: bold; + opacity: 0.8; +} + +.pagination-item-container a { + font-size: 16px; + font-weight: bold; +} + +.pagination-item-container a.actual { + background-color: #FFA646; + border-radius: 15px; + pointer-events: none; + padding: 0px 7px; + color: #333 +} + +.pagination-per-page { + background-color: #f9f9f9; + border-radius: 10px; + display: flex; + font-size: 12px; + overflow: hidden; + font-weight: 700; + font-family: "Open Sans", "Lucida Grande",Verdana,Arial,"Bitstream Vera Sans",sans-serif; + height: min-content; +} + +.pagination-per-page * { + padding: 8px 9px; +} + +.pagination-per-page span { + padding-left: 17px; + color: #BBB; + font-weight: bold; +} + +.pagination-per-page a { + border: none; + color: #3A3A3A; +} + +.pagination-per-page a:hover { + background-color: #ffd2a1; + color: #666; + text-decoration: none; +} + +/* Waiting Message */ + +.waiting-message { + position: fixed; + right: 0px; + top: 0px; + margin: 10px; + z-index: 1000; + background-color: #FFBD4D; + color: white; + padding: 20px; + font-weight: bold; + border-radius: 34px; + transform: translateY(calc(-100% - 10px)); + transition: 0.5s ease; +} + +.waiting-message.visible { + transform: translateY(80%); +} + +/* Statistic Page */ + +.stat-legend-container { + display: inline-block; +} + +.stat-data-selector { + border-radius: 10px; + display: flex; + overflow: hidden; + font-weight: bold; +} + +.stat-data-selector label { + color: black; + padding: 10px; + background-color: #eee; + transition: 0.2s ease; +} + +.stat-data-selector label.unavailable { + color: gray; + background-color: #aaa; + cursor: default; + pointer-events: none; +} + +.stat-data-selector label:hover { + background-color: #ccc +} + +.stat-data-selector input:checked + label { + background-color: #FFA646; + color: white; + pointer-events: none; +} + +.stat-data-selector input{ + display: none; +} + +.stat-graph-container { + margin: auto; + position: relative; + width: calc(100% - 20px); + margin-top: 20px; + margin-bottom: 20px; +} + +.stat-compare-mode { + position: absolute; + right: 10px; + transform: translate(0, 10px); } .over{ @@ -317,7 +902,7 @@ BODY { text-align: left; font-size: 18px; float:left; - width: 50%; + width: calc(100% - 330px); white-space: nowrap; overflow: hidden; text-overflow: ellipsis; @@ -325,6 +910,10 @@ BODY { margin: 0 0 0 220px; } +.admin-head-username { + display: none; +} + #pwgHead A {color:#ccc;} #pwgHead A:hover {color:#fff} @@ -387,7 +976,7 @@ TEXTAREA.description { SELECT.categoryList { height: 20em; - width: auto; + width: 100%; } DIV.comment BLOCKQUOTE { @@ -491,14 +1080,18 @@ FORM.properties SPAN.property { } /* Dashboard */ +.intro-page-container { + display: grid; + grid-template-columns: 48% 48%; +} + .stat-boxes { - text-align:left; - margin:40px 10px; + text-align:center; } .stat-box { display:inline-block; - width:200px; + width:150px; margin:10px 10px 40px 10px; color:#3b3b3b; text-align: center; @@ -510,35 +1103,12 @@ div.stat-box { .stat-box i { display: inline-block; - background-color: #ffcfcf; - color: #ff5252; border-radius: 50%; - font-size: 37px; + font-size: 30px; padding: 20px; margin-bottom: 15px; } -.stat-box-yellow i { - color:#ffa744; - background-color: #ffe9cf; -} -.stat-box-red i { - background-color: #ffcfcf; - color: #ff5252; -} -.stat-box-purple i { - background-color: #e0daf4; - color: #896af3; -} -.stat-box-green i { - background-color: #d6ffcf; - color: #6ece5e; -} -.stat-box-blue i { - background-color: #cfebff; - color: #2883c3; -} - .stat-box .number, .stat-box .caption { display:block; font-size: 16px; @@ -555,13 +1125,281 @@ a.stat-box:hover { color:#777; } +.chart-title { + font-size: 18px; + text-align: left; + font-weight: bold; + margin-bottom: 20px; + color: #3b3b3b; + position: relative; +} + +.chart-title-infos { + font-size: 14px; + position: absolute; + right: 0; + bottom: 0; +} + +.activity-chart { + font-weight: bold; + font-size: 14px; + display: grid; + grid-template-columns: repeat(8, 5vw) ; + grid-template-rows: repeat(4, 5vw); +} + +.activity-chart .row-legend,.activity-chart .col-legend { + position: relative; +} + +.activity-chart .row-legend { + display: flex; +} + +.activity-chart .row-legend div{ + margin: auto; +} + +.activity-chart .col-legend { + line-height: 5vw; +} + +.activity-chart .row-legend:after { + content: ""; + border-top: 2px solid black; + opacity: 0.05; + position: absolute; + width: 700%; + transform: translate(6vw,2.5vw); +} + +.activity-chart .col-legend .line-vertical { + border-left: 2px solid black; + opacity: 0.05; + position: absolute; + height: 250%; + left: 50%; + bottom: 100%; +} + +.activity-chart span { + display: flex; + overflow: visible; + position: relative; +} + +.activity-chart span div{ + height: 0px; + width: 0px; + background-color: #ff5252; + opacity: 0.8; + display: block; + border-radius: 100%; + z-index: 100; + position: absolute; + top: 50%; + left: 50%; + transform: translate(-50%, -50%); + transition: ease 0.2s; +} + +.intro-charts .tooltip { + position: absolute; + display: none; + z-index: 102; + font-size: 12px; + font-weight: normal; + background-color: white; + padding: 10px; + box-shadow: 0px 0px 5px #acacac; + border-radius: 10px; + margin: 0px; + transition: ease 0.2s; +} + +.intro-charts .tooltip .tooltip-header { + margin-bottom: 10px; + display: flex; + justify-content: space-between; + font-size: 14px; +} + +.intro-charts .tooltip .tooltip-header span { + margin: 0px 5px +} + +.intro-charts .tooltip .tooltip-title { + font-weight: bold; + color: #3b3b3b; +} + +.intro-charts .tooltip .tooltip-date { + font-style: italic; +} + +.intro-charts .tooltip span:before { + width: 1.2em; + font-size: 15px; +} + +.intro-charts .tooltip .tooltip-details { + display: flex; + align-items: flex-start; +} + +.intro-charts .tooltip .tooltip-details-cont { + display: flex; + flex-direction: column; + align-items: flex-start; + margin: 0px 3px; +} + +.intro-charts .tooltip .tooltip-details-title { + font-weight: bold; + padding: 0px 5px; + margin-bottom: 8px; + border-radius: 15px; + background: none !important; +} + +.intro-charts .tooltip .tooltip-detail { + margin: 1px; + padding-left: calc(50% - 20px); +} + +.activity-chart .tooltip { + left: 50%; + top:45% +} + +.intro-charts .tooltip span{ + display: inline; + white-space: nowrap; +} + +.intro-charts .tooltip::after { + content: " "; + position: absolute; + bottom: 100%; + left: 51%; + margin-left: -5px; + border-width: 5px; + border-style: solid; + border-color: transparent transparent white transparent; +} + +.activity-chart span div:hover{ + padding: 0.5vw; +} + +.activity-chart span div:hover + .tooltip, .intro-charts .tooltip:hover{ + display: inline-grid; + opacity: 1; +} + +.activity-chart #week-1-legend ~ span div { + background-color: #2883c3; +} + +.activity-chart #week-2-legend ~ span div { + background-color: #896af3 ; +} + +.activity-chart #week-3-legend ~ span div { + background-color: #6ece5e ; +} + +.activity-chart #week-4-legend ~ span div { + background-color: #ffa744 ; +} + +.storage-chart { + border-radius: 5px; + width: 100%; + overflow: hidden; + position: relative; + height: 30px; + display: flex; + background-color: #e8e8e8; +} + +.storage-tooltips { + position: relative; +} + +.storage-chart span{ + opacity: 0.7; + transition: ease 0.2s; +} + +.storage-chart span p{ + font-weight: bold; + font-size: 16px; + color: black; + opacity: 0; + line-height: 0; + transition: ease 0.2s; + white-space: nowrap; +} + +.storage-chart span:hover{ + opacity: 1; +} + +.storage-chart span:hover .tooltip { + opacity: 1; + display: block; +} + +.storage-chart span:hover p{ + opacity: 0.4; +} + +.storage-chart-legend { + display: flex +} + +.storage-chart-legend div{ + padding: 10px; + display: flex; + align-items: center; + font-size: 14px; +} + +.storage-chart-legend div span{ + width: 15px; + height: 15px; + display: block; + margin: 5px; + opacity: 0.7; +} + +.storage-chart span:nth-child(1), .storage-chart-legend div:nth-child(1) span{ + background-color:#ffa744; +} + +.storage-chart span:nth-child(2), .storage-chart-legend div:nth-child(2) span{ + background-color:#6ece5e; +} + +.storage-chart span:nth-child(3), .storage-chart-legend div:nth-child(3) span{ + background-color:#896af3; +} + +.storage-chart span:nth-child(4), .storage-chart-legend div:nth-child(4) span{ + background-color:#2883c3; +} + +.storage-chart span:nth-child(5), .storage-chart-legend div:nth-child(5) span{ + background-color:#ff5252; +} + #configContent fieldset { border:none; padding-left:20px; } -#configContent fieldset:not(.no-border) { - border-top:1px solid #bbb; -} + #configContent legend { padding-left:0; margin-left:-20px; @@ -709,8 +1547,8 @@ html, body {height:100; min-height: 100%; margin:0; padding:0;} margin-left:6px; } -#adminHome A {color:#aaa; display:block; font-size:1.1em; font-weight:bold; text-decoration:none;} -#adminHome A:hover {color:#fff;} +a.admin-main {color:#aaa; display:block; font-size: 13px; font-weight:bold; text-decoration:none;} +a.admin-main:hover {color:#fff;} #piwigoInfos {float:left; margin-left:140px;} #pageInfos {display: none;} @@ -857,7 +1695,7 @@ html, body {height:100; min-height: 100%; margin:0; padding:0;} margin-left:0; } -#menubar ul.scroll { overflow-y:auto; max-height:500px; } +#menubar ul.scroll { overflow-y:auto; max-height:500px; scrollbar-color: #666 #3c3c3c;} #menubar dl { width: 205px; min-height:35px; border:0; margin: 0; padding: 0; display: block; border:0; border-left:none; } #menubar dd { margin: 0; padding: 10px 0; } #menubar dt { @@ -883,6 +1721,27 @@ html, body {height:100; min-height: 100%; margin:0; padding:0;} margin-top: 2px; } +@media all and (max-height: 920px) { + #menubar ul.scroll { + max-height: 400px; + } +} + +@media all and (max-height: 830px) { + #menubar ul.scroll { + max-height: 300px; + } +} + +@media all and (max-height: 700px) { + #menubar ul.scroll { + max-height: 200px; + } + #theAdminPage #footer { + display: none; + } +} + /* tabsheets are often used in admin pages => No specific css files */ #tabsheet { width:auto; @@ -952,15 +1811,31 @@ margin-top:4px; padding-bottom:3px; padding-top:3px; top:1px; #thePopuphelpPage #pwgHead {display:none} #thePopuphelpPage #footer {display:none} -.themeBox {display:inline-table; text-align:center; height:192px; background-color:#eee; margin:5px; border-radius:5px; overflow:hidden; } +.themeBox {display: inline-table;text-align: center;height: 192px;margin: 0px 0px 15px 15px; position: relative;} +.themeShot a {height: 200px; width: 200px; position: relative; overflow: hidden; display: block;} -.themeBox IMG {border:1px solid white; margin:0 15px;} -.themeName {font-size:1em; margin:5px 0; position:relative; } -.themeActions {display: table-row; font-size:12px; height: 43px; } -.themeActions DIV {display: table-cell; vertical-align: middle; line-height:18px; } -.themeActions A {} +.themeBox IMG {margin:0px; position: absolute;top: 50%;left: 50%;transform: translate(-50%, -50%);} +.themeName {font-size:14px; margin:10px; position:relative; text-transform: capitalize; font-weight: bold; text-align: left; white-space: nowrap; max-width: 180px; overflow: hidden; text-overflow: ellipsis;} +.themeName em {font-weight: normal;} +.themeName .showInfo {position: absolute; right: 0; top: 50%; transform: translateY(-50%);} +.themeBox .showInfo-dropdown {position: absolute; right: 0px; transform: translateX(40%); display: none; text-align: left; padding-bottom: 0;} +.themeSelect {box-shadow: 0px 2px 1px #00000024; display: inline-block; text-align: center; padding: 0px 10px 8px 10px; margin-right: 10px; transition: 0.4s ease;} +.showInfo-dropdown-header {padding: 5px 10px; white-space: nowrap; font-weight: bold; font-size: 12px;} +.showInfo-dropdown-header a:hover {color: white;} +.showInfo-dropdown-content {padding: 5px 10px; -moz-osx-font-smoothing: initial;} +.showInfo-dropdown-action {padding: 8px 10px; border-top: 1px solid #ffffff45; color: white; text-decoration: none !important; display: block; margin-top: 5px; border-radius: 0px 0px 10px 10px; font-weight: bold;} +.showInfo-dropdown-action:hover {background-color: rgba(0, 0, 0, 0.192); color: white;} +.themeActions {display: flex;flex-direction: column;} +.themeActions DIV {display: table-cell; vertical-align: middle; line-height:18px;} +.themeActions span, .themeActions a {padding: 10px; margin: 0px 10px 10px 10px; font-weight: bold; font-size: 12px;} +.themeActions span {font-size: 11px; background-color: #ddd; opacity: 0.5; color: ;} + +.themeActions a:nth-child(1) {background-color: #ffc17e; color: #222;} +.themeActions a:nth-child(1):hover {background-color: #ff7700; color: white; text-decoration: none;} + +.themeActions a:nth-child(2) {background-color: #ececec; color: #222;} +.themeActions a:nth-child(2):hover {background-color: #ff9b32; color: #111; text-decoration: none;} -#themesContent .themeBox IMG {width:150px; height:120px;} #themesContent H3 {font-size:16px; text-align:left; border-bottom:1px solid #444; letter-spacing:1px; margin:5px;} .themeBoxes {min-height:0;text-align:left;} @@ -1046,10 +1921,40 @@ h2:lang(en) { text-transform:capitalize; } .infos .submit {margin-left:30px;} .checkActions {text-align:left;padding:0;margin:0;} +#checkActions {text-align:left; margin:0 0 20px 0;} +.ActionUserList #checkActions {margin: 20px 0 20px 0;} .pluginBoxes { + border: none; + padding: 20px; + padding-top: 0; + min-height: 271px; text-align:left; +} + +.pluginBoxesContainer { position:relative; + display: flex; + flex-wrap: wrap; + justify-content: left; + +} + +.pluginBoxesTitle {font-size: 16px;} +.pluginBoxesTitle p {margin-right: 10px;} +.pluginBoxesTitle span {border-radius: 50%; margin-right: 5px; padding: 4px} + +.pluginBoxesTitle {display: flex;align-items: center} +.pluginFilter {justify-content: end;position: absolute;right: 20px; z-index: 2; transform: translateY(6px);} + +.pluginBoxesCount { + background-color: rgb(150, 150, 150); + color: white; + border-radius: 25px; + text-align: center; + padding: 2px 10px; + font-weight: bold; + font-size: 12px; } .pluginBox { @@ -1063,29 +1968,116 @@ h2:lang(en) { text-transform:capitalize; } .pluginBox td {text-align:left;} .pluginBox td.pluginDesc img {vertical-align:middle;} .pluginBoxNameCell {width:180px; vertical-align:top;} -.pluginBoxes .inactive, .pluginBoxes .uninstalled {opacity:0.8;filter:alpha(opacity=80);} +.pluginBoxes .inactive, .pluginBoxes .uninstalled {} +.emptyResearch {opacity: 0.3;text-align: center;left: 45%;font-weight: bold;font-size: 30px; position: absolute; display: none;} .pluginMiniBox { - display:inline-table; - text-align:center; - width:250px; - height:40px; - margin:5px; - border-width:1px; - border-style:solid; + display:flex; + width:260px; + margin:15px 30px; + border-top-right-radius:5px; + border-bottom-right-radius:5px; + margin-left: 0; + box-shadow: 0px 0px 5px #acacac; +} +.PluginOptionsBlock a:hover { color: white ;} +.pluginContent { + width: 100%; + text-align: left; + background-color: #fafafa; + padding: 15px; + position: relative; + border-left: solid 5px #ffc17e; + border-right:solid 5px #fafafa; + border-radius: 5px; +} + +.pluginMiniBoxNameCell { + font-size: 14px; + font-weight: bold; +} + +.pluginDesc { + margin-top: 5px; + font-size: 12px; + color: grey; + line-height: 1.5em; + height: 3em; + position: relative; + overflow: hidden; +} + +.pluginActions a { + margin-top:15px; + font-size:12px; +} + +.pluginActions > * { + padding: 10px 4px; + text-align: center; + display:block; +} +.pluginEmptyInput {width: 90px;} +.pluginUnavailableAction { + opacity: 0.5; + font-size: 12px; + padding: 10px 4px; + margin-top: 15px; + background-color:#ddd; + font-weight:700; +} +.pluginActionLevel1 {background-color: #ffc17e; font-weight: bold;} +.pluginActionLevel1:hover {background-color: #ff7700; color: white; text-decoration: none;} +.pluginActionLevel2 {padding:5px 0;} +.pluginActionLevel3 {/*padding-left: 10px; opacity: 0.9;*/padding:5px 0} +.plugin-inactive .pluginContent{ + border:none; + /*border-radius:10px;*/ +} + +.showOptions { + font-size: 16px; +} + +.plugin-inactive .pluginMiniBox{ border-radius:5px; - -moz-border-radius:5px; - overflow:hidden; - } -.pluginMiniBoxNameCell {font-size:1.05em; margin:5px 0;position:relative;} -.pluginActions {display: table-row; font-size:0.95em; color:#777;} -.pluginActions DIV {display: table-cell; vertical-align: middle; line-height:18px; } -.pluginMiniBox .showInfo, .themeBox .showInfo { display:block;position:absolute;top:0;right:5px;width:15px; } +} + +.plugin-inactive .pluginContent .pluginActionLevel1{ + background-color: #999999; +} +.plugin-inactive .pluginContent .pluginActionLevel1:hover{ + background-color:#ff9b32; +} + +.pluginMiniBox .PluginOptionsIcons, +.themeBox .PluginOptionsIcons{ + display:flex; + position:absolute; + top:0; + right:-6px; + padding: 13px; +} + + + .PluginOptionsBlock{ + display:none; + position:absolute; + right: 0; + top: 40px; + z-index: 2; + transform: translateX(calc(50% - 19px)); + } .warning:before {content:url(icon/warning.png);vertical-align:top;} -.deactivate_all {text-align:right;font-size:0.95em;} +.deactivate_all {font-size: 11px;font-weight: normal; margin-top: -5px; margin-bottom: 5px; font-weight: bold;opacity: 0.6;} .showDetails {text-align:right; margin-bottom:-15px; margin-top:-10px; padding-right:1em;} +.showInactivePlugins {margin-bottom: 40px;} +.showInactivePluginsInfo {display: flex;justify-content: center;align-items: center; font-size: 18px;} +.showInactivePluginsInfo > * {margin: 5px;} +.showInactivePlugins button {font-size: 16px;} + .languageBoxes {min-height:0;text-align:left;} .languageBox {display:inline-table; text-align:center; width:200px; height:40px; margin:5px; -moz-border-radius:5px;border-radius:5px; overflow:hidden; } .languageName {font-size:1.1em; margin:5px 0;} @@ -1101,24 +2093,21 @@ h2:lang(en) { text-transform:capitalize; } float:right; margin:0; padding:0; - padding-top:2px; - padding-left:3px; + margin-right:15px; + margin-top:-10px; } .HelpActions a { border:0; margin:0; } .HelpActions li {list-style-image:none; list-style-position:outside; list-style-type:none; text-align:center; text-indent:0pt; } +.HelpActions .icon-help-circled::before { + font-size: 22px; +} legend {text-align:left;} /* local-layout */ /* You can modify this file */ -/* default-colors */ -/* So that non-links are slightly greyed out */ -.content .navigationBar { - color: #999; -} - /* Tables & forms */ SELECT, TEXTAREA { @@ -1176,44 +2165,158 @@ INPUT[type="radio"], INPUT[type="checkbox"] { LEGEND { font-weight: bold; - padding: 0 10px; + font-size: 14px; + margin: 10px 0; + padding: 0; +} + +LEGEND SPAN { + padding: 4px; + border-radius: 100%; + margin-right: 6px; + font-size: 16px; } /* Batch Manager, global mode */ #batchManagerGlobal #action p {text-align:left;} -#batchManagerGlobal .bulkAction {text-align:left;margin:15px 0;padding:0;} +#batchManagerGlobal .bulkAction {text-align:left; padding:0;} #batchManagerGlobal #action_del_tags ul.tagSelection {margin:0 !important; width:620px;} #batchManagerGlobal #checkActions {text-align:left; margin:0 0 20px 0;} -#batchManagerGlobal ul.thumbnails div.actions {display:none;position:absolute;top:0;right:5px;color:#fff} +#batchManagerGlobal ul.thumbnails div.actions { + display: none; + position: absolute; + top: 0; + color: #fff; + width: 98%; + justify-content: space-between; + background-color: #313234; + padding: 3px 0px; + margin-left: 1px; + z-index: 1; +} + +#batchManagerGlobal fieldset { + margin: 0; + margin-top: 30px; + border: none; +} + +#batchManagerGlobal legend { + font-size: 14px; + color: #444; + margin: 10px 0; + padding: 0; +} + +#batchManagerGlobal legend span { + padding: 3px; + border-radius: 100%; + margin-right: 6px; + font-size: 16px; +} + #batchManagerGlobal ul.thumbnails div.actions a {color:#fff;} -#batchManagerGlobal ul.thumbnails span.wrap1:hover div.actions {display:block;} -#batchManagerGlobal #selectedMessage {padding:5px; border-radius:5px;} -#batchManagerGlobal #applyOnDetails {font-style:italic;} -#batchManagerGlobal .actionButtons {text-align:left;} -#batchManagerGlobal #filterList {padding-left:5px;} -#batchManagerGlobal #filterList li {margin-bottom:5px; list-style-type:none;} -#batchManagerGlobal a.removeFilter {color:#666;} -#batchManagerGlobal a.removeFilter::before {margin-right:0;} +#batchManagerGlobal ul.thumbnails span.wrap1:hover div.actions {display:flex;} +#batchManagerGlobal #selectedMessage {padding:5px; border-radius:5px; float: right;} +#batchManagerGlobal #applyOnDetails {text-align: center; margin-top: 8px; color: #FFA646; font-weight: bold;} +#batchManagerGlobal .actionButtons {text-align:left; display: flex; flex-direction: column;} +#batchManagerGlobal #filterList {padding-left:0px; display: flex; flex-wrap: wrap; align-items: start; margin-top: 0px;} +#batchManagerGlobal #filterList li { + list-style-type:none; + background-color: #fafafa; + padding: 10px; + margin: 0px 10px 10px 0px; + box-shadow: 0px 2px 1px #00000024; + border-radius: 5px; + position: relative; +} +#batchManagerGlobal #filterList li p {font-weight: bold;display: block;margin: 0;margin-bottom: 5px;} +#batchManagerGlobal a.removeFilter {color: #AAA; + position: absolute; + right: 5px; + top: 5px; +} +#batchManagerGlobal a.removeFilter::before {margin-right:0; content: '\e822'; font-size: 11pt; color: #3C3C3C; margin-left: 6px; font-size: 12pt;color: #777;} +#batchManagerGlobal a.removeFilter:hover::before {color: #ffa646;} #batchManagerGlobal a.removeFilter:hover {color:red;} #batchManagerGlobal .removeFilter span {display:none} -#batchManagerGlobal #applyFilterBlock {margin-top:20px;} +#batchManagerGlobal #applyFilterBlock {width: 200px;} #batchManagerGlobal .useFilterCheckbox {display:none;} -#batchManagerGlobal blockquote {margin:5px 0 20px 15px;} -#batchManagerGlobal .ui-slider-horizontal {width:650px;margin:5px 0 10px 0;} +#batchManagerGlobal blockquote {margin:10px 0 0px 0;} +#batchManagerGlobal .ui-slider-horizontal {width:280px; margin:10px 0 10px 9px;} +#batchManagerGlobal #filter_dimension .ui-slider-horizontal {width:580px;} #batchManagerGlobal #duplicates_options label {margin-left:10px;} -#batchManagerGlobal .thumbnails span.icon-check, -#batchManagerGlobal .thumbnails span.icon-check-empty { - position:absolute; - left:5px; - top:3px; - font-size:14px; +#batchManagerGlobal .thumbnails span.icon-check, #batchManagerGlobal .thumbnails span.icon-check-empty { + position: absolute; + left: 84px; + top: 84px; + font-size: 14px; + display: none; } +.batchManager-pagination { + display: flex; + align-items: center; + clear: both; + margin: 0px 20px; + justify-content: space-between; +} + +.noFilter { + text-align: center; + font-weight: 600; + padding: 27px 0; + margin-bottom: 30px; + display: none; +} + +.filterActions { + display: flex; +} + +.filterActions #addFilter { + position: relative; + margin-right: 10px; +} + +.addFilter-dropdown { + z-index: 100; + padding: 5px 0px; + border-radius: 10px 10px 0px 0px; + background: linear-gradient(130deg, #ff7700 0%, #ffa744 100%); + color: white; + position: absolute; + bottom:100%; + overflow: hidden; + width: 100%; + display: none; +} + +.addFilter-dropdown a { + display: block; + text-align: initial; + padding: 5px 10px; + font-size: 12px; + padding-right: 15px; + color: white; + font-weight: 600; + cursor: pointer; +} + +.addFilter-dropdown a:hover { + text-decoration: none; + color: white; + background-color: rgba(0, 0, 0, 0.123) +} + +.addFilter-dropdown a.disabled { + pointer-events: none; + opacity: 0.5; +} -#order_filters a.addFilter {font-weight:normal;margin-left:20px;} #order_filters a.removeFilter {font-weight:normal;} #order_filters span.property span.filter:first-child a.removeFilter {display:none;} /* can't delete the first field */ #order_filters span.filter {display:block;margin-left:20px;} @@ -1284,37 +2387,621 @@ a#showPermissions:hover {text-decoration: none;} #debug { margin-left: 227px; font-size:12px; } -/* Album Properties */ -#albumThumbnail { - width:1%; - padding-right:10px; - text-align:center; +.tag-header { + display: flex; + flex-wrap: nowrap; + align-items: center; + margin-left: 20px; + max-width: calc(100% - 530px); + overflow: hidden; + padding: 10px; } -#albumThumbnail img { - border:2px solid #ddd; +.tag-header #search-tag{ + position: absolute; + right: 240px; } -#albumLinks { - vertical-align:top; - border-left:2px solid #ddd; - padding-left:10px; +.tag-header #add-tag { + position: relative; + margin: 0; } -#albumLinks ul, .photoLinks ul { - padding-left:0; +.tag-header #add-tag.hide { + display: none; } -#albumLinks li, .photoLinks li { - list-style:none; +.tag-header #add-tag .add-tag-label { + position: relative; + padding: 10px; + background-color: #fafafa; + box-shadow: 0px 2px #00000024; + border-radius: 5px; + font-weight: bold; + display: flex; + align-items: baseline; + cursor: pointer; } -.photoLinks { - vertical-align:top; +.tag-header #add-tag.input-mode .add-tag-label { + background: none; + box-shadow: none; + cursor: auto; + padding: 0px } -.photoLinks ul { - margin:0; +.tag-header #add-tag .add-tag-label::before { + margin: auto; + font-size: 16px; + margin-right: 5px; +} + +.tag-header #add-tag.input-mode .add-tag-label::before { + display: none; +} + +.tag-header #add-tag .add-tag-label p{ + margin: 0; + white-space: nowrap; +} + +.tag-header #add-tag .add-tag-container { + display: none; +} + +.tag-header #add-tag.input-mode .add-tag-container { + display: flex; + margin-right: 35px; +} + +.tag-header #add-tag.input-mode .add-tag-container input { + padding: 9px; + margin-left: 10px; + border: solid 2px #ffa744; + background: none; + width: 100px; +} + +.tag-header #add-tag.input-mode .add-tag-container input:hover { + background-color: #f0f0f0 !important; +} + +.tag-header #add-tag span.icon-cancel-circled{ + display: none; + position: absolute; + right: 15px; + top: 50%; + transform: translate(15px, -53%); + z-index: 2; + font-size: 22px !important; + cursor: pointer; +} + +.tag-header #add-tag.input-mode .icon-cancel-circled { + display: block; +} + +.tag-header #add-tag span.icon-cancel-circled:hover { + color: #ff7700; +} + +.tag-header #add-tag.input-mode .icon-validate{ + display: block; + margin: auto 5px; + cursor: pointer; + background-color: #ffa744; + color: #3c3c3c; + font-size: 17px; + font-weight: 700; + padding: 7px 5.5px; +} + +.tag-header #add-tag span.icon-validate:hover { + background-color: #f70; + color: #000; + cursor: pointer; +} + +.tag-header .selection-controller { + display: none; + align-items: baseline; + height: 38px; + color: #777; + font-weight: bold; +} + +.tag-header .selection-controller.show { + display: flex; +} + +.tag-header .selection-controller p { + margin-right: 10px; + color: #555; +} + +.tag-header .selection-controller a { + margin: 0; + background-color: #f0f0f0; + padding: 10px; + color: #777; + font-weight: bold; + margin: 4px; + border-radius: 5px; +} + +.tag-header .selection-controller a:hover { + background-color: #ddd; + color: #3A3A3A; + text-decoration: none; +} + + +.tag-info { + height: 35px; + overflow: hidden; + border-radius: 20px; + display: flex; + padding: 0px 10px 0px 0px; + font-weight: bold; + margin-left: 10px; +} + +.tag-info.hide { + display: none; +} + +.tag-info p { + margin: auto; + white-space: nowrap; + text-overflow: ellipsis; + overflow: hidden; + text-align: initial; +} + +.tag-info::before { + line-height: 35px; + margin: 0px 10px; + font-size: 16px; +} + +.tag-info.tag-warning { + color: #ee8800; + background-color:#ffdd99; +} + +.tag-info.tag-message { + color: #0a0; + background-color:#c2f5c2; + display: none; +} + +.tag-info.tag-error { + color: #f22; + background-color: #ffd5dc; + display: none; + animation-name: tag-error-appear ; + animation-duration: 0.4s; + animation-timing-function: ease; +} + +.tag-info a:hover { + color: white; +} + +@keyframes tag-error-appear { + 25% { transform: translateX(-10px)} + 50% { transform: translateX(10px)} + 75% { transform: translateX(-10px)} + 100% { transform: translateX(0px)} +} + +.tag-container { + display: flex; + padding: 10px 25px; + flex-flow: wrap; + padding-right: 223px; +} + +.tag-container .tag-box{ + display: inline-flex; + align-items: center; + padding: 5px 10px 5px 15px; + background-color: #fafafa; + margin: 7px 5px; + box-shadow: 0px 2px 1px #00000024; + border-radius: 18px; + position: relative; +} + +.tag-container.selection .tag-box { + opacity: 0.8; + cursor: pointer; +} + +.tag-container.selection .tag-box[data-selected='1'] { + opacity: 1; + background-color: #ffd7ad; +} + +.tag-container .tag-box p { + white-space: nowrap; + margin: 0; +} + +.tag-container .tag-box[data-selected='1'] p { + color: #333; +} + +.tag-container .tag-box.edit-name p { + display: none; +} + +.tag-container .tag-box .showOptions { + color: #aaa; +} + +.tag-container .tag-box.edit-name .showOptions { + display: none; +} + + +.tag-container.selection .showOptions { + display: none; +} + +.tag-container .tag-box .tag-dropdown-block { + display:none; + position: absolute; + top: 32px; + right: 0px; + transform: translateX(calc(50% - 23px)); +} + +.tag-container .tag-box .tag-dropdown-block .tag-dropdown-header { + white-space: nowrap; + display: flex; + margin: auto; + justify-content: space-between; + color: white; + border-bottom: solid 1px #ffffff3d; + padding: 5px 10px; + min-width: 150px; +} + +.tag-container .tag-box .tag-dropdown-header b { + font-weight: bold; + margin-right: 2px; + white-space: nowrap; + text-overflow: ellipsis; + overflow: hidden; +} + +.tag-container .tag-box .select-checkbox { + display: none; + width: 15px; + height: 15px; + border-radius: 100%; + margin: 2px 0px; + margin-left: 3.4px; + border: solid #ffa646 2px; +} + +.tag-container.selection .tag-box .select-checkbox { + display: block; +} + +.tag-container .tag-box:hover .select-checkbox, +.tag-container .tag-box[data-selected='1'] .select-checkbox { + background-color: #ffa646; +} + +.tag-container .tag-box .select-checkbox.show { + display: block; +} + +.tag-container .tag-box .select-checkbox i { + display: none; + font-size: 14px; + transform: translate(-10px , -3px); + position: absolute; + color: #fafafa; + animation-name: icon-check-tag-animation; + animation-duration: 0.4s; + animation-timing-function: ease-out; +} + +.tag-container .tag-box[data-selected='1'] .select-checkbox i { + display: inline; +} + +@keyframes icon-check-tag-animation { + 0% { + transform: translate(-10px , -3px) scale(0); + } + 75% { + transform: translate(-10px , -3px) scale(1.3); + } + 100% { + transform: translate(-10px , -3px); + } +} + +.tag-container .tag-box .tag-rename { + display: none; +} + +.tag-container .tag-box.edit-name .tag-rename { + display: flex; +} + +.tag-container .tag-box .tag-rename .tag-name-editable { + text-align: left; + width: 100px; + color: #3c3c3c; + font-family: "Open Sans", "Lucida Grande",Verdana,Arial,"Bitstream Vera Sans",sans-serif; + margin: 0px; + background-color: white; + border: 1px solid #d5d5d5; + padding-left: 6px; +} + +.tag-container .tag-box .tag-rename span:hover { + color: #ffa744; +} + + +.tag-container .tag-box .tag-rename span { + padding: 2px 3px; + margin: auto; + cursor: pointer; + color: #3A3A3A; +} + +.tag-selection .tag-selection-content { + margin-top: 90px; + padding: 5px; +} + +.tag-selection .tag-selection-content .selection-mode-tag{ + display: none; +} + + +.selection-mode-tag .tag-list { + margin: 10px; + text-align: start; + font-weight: 700; + font-size: 15px; + overflow: hidden; + max-height: 160px; +} + +.selection-mode-tag .tag-list p { + width: 85%; + text-overflow: ellipsis; + overflow: hidden; + white-space: nowrap; + color: #a0a0a0; + margin: 0; +} + +.selection-mode-tag .tag-list div { + display: flex; + margin: 10px; + text-align: start; +} + +.selection-mode-tag .selection-other-tags { + color: #ffa646; + font-weight: bold; + font-size: 15px; +} + +.tag-select-message { + background: #bce5f7; + height: 46px; + display: flex; + justify-content: center; + align-items: center; + font-size: 14px; + display: none; + margin: 10px 243px 10px 32px; + color: #0051a5; + font-weight: 600; +} + +.tag-select-message a{ + font-weight: bold; + margin-left: 6px; + background-color: #0051a5; + color: white; + padding: 0px 4px; +} + +.tag-select-message a:hover { + color: white; + text-decoration: none; + background-color: #002e5f; +} + +.tag-pagination { + margin: 0 20px;; + display: flex; + margin-bottom: 20px; + margin-right: 223px; + padding: 0px 15px; + justify-content: space-between; + align-items: center; +} + +.pageLoad { + display: none; + text-align: center; + margin-right: 223px; + position: absolute; + left: 50%; + z-index: 100; + transform: translateY(50px); +} + +.pageLoad i { + font-size: 40px; + color: rgba(29, 29, 29, 0.226); +} + +/* Picture Edit */ +#pictureModify { + display: flex; + margin: 0; + justify-content: space-evenly; + margin-top: 30px +} + +#picture-preview { + width: 35vw; + position: relative; + background-color: #3c3c3c; + height: 35vw; + flex-shrink: 0; + overflow: hidden; + margin-left: 10px; +} + +#picture-preview .preview-box{ + margin: 0; + position: absolute; + top: 50%; + -ms-transform: translate(-50%,-50%); + transform: translate(-50%,-50%); + left: 50%; +} + + +.picture-preview-actions { + position: absolute; + padding: 10px; + right: 0; + top: 0; + font-size: 18px; + z-index: 100; + background-color: #101010A0; +} + +.picture-preview-actions a { + color: #ffffff; + padding: 5px; +} + +.picture-preview-actions a.unavailable { + color: #ffffff48; + cursor: context-menu; +} + +#picture-content { + width: 50%; +} + +#picture-content p { + text-align: left; +} + +#picture-content input[type=text], #picture-content textarea, #picture-content .selectize-input { + width: calc(100% - 15px); + background-color: #f8f8f8; + padding: 8px; + border-radius: 4px; + border-color: #DDD; + transition: ease 0.2s; + font-family: "Open Sans", "Lucida Grande",Verdana,Arial,"Bitstream Vera Sans",sans-serif; +} + +#picture-content .selectize-input { + width: 100%; +} + +#picture-content input[type=text], #picture-content textarea, #picture-content .selectize-control { + margin-top: 5px; +} + +#picture-content .date-input { + position: relative; +} + +#picture-content .date-input input{ + padding-left: 35px; + width: calc(100% - 43px); +} + +#picture-content .date-input i{ + position: absolute; + font-size: 20px; + top: 50%; + transform: translate(6px, -50%); + opacity: 0.6; +} + +#picture-content input:focus { + border-color: #888; +} + +#picture-content select { + background-color: #FFF; + color: #4E4E4E; + border: 2px solid #7070704f !important; + padding: 10px 18px; + -webkit-appearance: none; + font-weight: 700; + width: calc(100% - 15px); + margin: 0 10px; +} + +#picture-content .select-icon { + font-size: 17px; + position: absolute; + color: #6E6E6E; + pointer-events: none; + right: 3%; + transform: translateY(5px); +} + +#picture-infos { + display: grid; + grid-template-columns: 50% 50%; +} + +.picture-infos-category { + display: flex; + border: #EEE solid 2px; + padding: 20px; + border-radius: 5px; + margin: 0px 10px; + align-items: center; +} + +.picture-infos-icon { + font-size: 34px; + margin-right: 20px; + display: flex; + color: #3c3c3c; +} + +.picture-infos-icon span { + margin: auto; +} + +.picture-infos-container { + margin: 0; + display: inline-table; +} + +.picture-infos-container div { + margin: 0; + word-wrap: anywhere; +} + +.picture-infos-title { + color: #3c3c3c; + font-weight: bold; } /* Album Manager */ @@ -1347,7 +3034,6 @@ a#showPermissions:hover {text-decoration: none;} } .commentFilter {text-align:left;margin:5px 1em;} -.commentFilter .navigationBar {float:right; margin:0;} FORM#categoryOrdering p.albumTitle {margin:0; margin-left: 5px; text-overflow: ellipsis; white-space: nowrap; overflow: hidden; margin-bottom: 4px;} FORM#categoryOrdering p.albumTitle a {font-size: 14px; font-weight: 600;} @@ -1363,12 +3049,256 @@ FORM#categoryOrdering p.albumActions a { padding-top: 22px; } -.albumInfos { font-size: 12px; } .actionTitle span {text-transform: capitalize;} FORM#categoryOrdering p.albumActions a:hover {text-decoration: none;} FORM#categoryOrdering p.albumActions .userSeparator {margin:0 5px;} +/* Move Album */ +.cat-move-header { + display: flex; + margin: 0px 30px; + align-items: center; + font-size: 14px; + justify-content: space-between; + margin-top: 20px; +} + +.cat-move-header .order-root::before { + font-size: 16px; +} + +.cat-move-header .cat-move-info { + position: relative; +} + +.cat-move-header .cat-move-info::before { + color: grey; + font-size: 20px; +} + +.cat-move-header .cat-move-info .spinner { + position: absolute; + left: calc(100% + 6px); + font-size: 20px; + display: none; +} + +.tree { + margin: 20px; + padding-top: 1px; +} + +.move-cat-container { + display: flex; + align-items: center; + box-shadow: 0px 2px 3px #00000024; + background-color: #fafafa; + border-radius: 5px; + color: #777; + padding: 5px 10px; + padding-left: 28px; +} + +.move-cat-container .icon-grip-vertical-solid { + font-size: 16px; + opacity: 0.5; + position: absolute; + left: 6px; +} + +.move-cat-container .icon-folder-open, .move-cat-container .icon-sitemap { + display: inline-block; + border-radius: 50%; + font-size: 20px; + padding: 8px; + margin: 5px; +} + +.move-cat-container .icon-lock { + font-size: 16px; + margin-left: 0px; +} + +.move-cat-container .move-cat-title { + font-size: 16px; + margin: 10px; + max-width: 200px; + overflow: hidden; + white-space: nowrap; + text-overflow: ellipsis; + font-weight: 600; +} + +.move-cat-container .move-cat-toogler { + display: flex; + color: #FFBD4D; + margin-left: 15px; + align-items: center; + cursor: pointer; + z-index: 2; + font-weight: 600; +} + +.move-cat-container .move-cat-toogler .icon-left-open{ + transform: rotate(90deg); +} + +.move-cat-action-cont { + display: none; + position: absolute; + right: 50%; + top : 50%; + width: 100%; + height: 100%; + border-radius: 5px; + transform: translate(50%, -50%); + align-items: center; + flex-direction: row-reverse; + overflow: hidden; +} + +.move-cat-container:hover .move-cat-action-cont { + display: flex; +} + +.move-cat-action { + display: flex; + align-items: center; + max-width: 60%; +} + +.move-cat-action a { + padding: 30px 15px; + font-weight: bold; + cursor: pointer; + height: 100%; + border-left: 1px solid #00000012; + background-color: #00000003; + text-align: center; +} + +.move-cat-action a:hover { + color: #444; + text-decoration: none; + background-color: #FFA646; +} + +.cat-move-order-popin { + position: fixed; + z-index: 100; + left: 0; + top: 0; + width: 100%; + height: 100%; + overflow: auto; + background-color: rgba(0,0,0,0.7); + display: none; +} + +.cat-move-order-popin .order-popin-container { + background-color: #f3f3f3; + border-radius: 10px; + display: block; + width: 25%; + position: absolute; + left: 50%; + top: 50%; + transform: translate(-50%, -48%); + text-align: left; + padding: 30px; +} + +.cat-move-order-popin .album-name { + font-size: 14px; + color: #3C3C3C; + font-weight: 600; + text-align: center; +} + +.cat-move-order-popin .choice-container { + display: flex; + flex-direction: column; + padding: 10px 5px; +} + +.cat-move-order-popin label { + position: relative; + padding: 5px; +} + +.cat-move-order-popin input[type=radio] { + opacity: 0; +} + +.cat-move-order-popin input[type=submit] { + width: 100%; + margin: 10px 0px; +} + +.cat-move-order-popin input[name=recursiveAutoOrder] { + background-color: #d9d9d9; +} + +.cat-move-order-popin input[name=recursiveAutoOrder]:hover { + background-color: #ffc17e; +} + +.cat-move-order-popin .close-popin { + position: absolute; + right: -40px; + top: -40px; + font-size: 30px; + color: white; +} + +.cat-move-order-popin .close-popin:hover { color: #ffa646;} + +.popin-title {font-weight: bold; font-size: 15px; margin-bottom: 15px; color: #3C3C3C;} + +.popin-title span { + padding: 7px; + border-radius: 25px; + font-size: 15px; + margin-right: 10px; +} + +/*Overwrite JQtree CSS*/ + +.jqtree_common { + margin: 20px 2px !important; +} + +li.jqtree-ghost { + display: flex !important; + margin: 0 !important; +} + +ul.jqtree-tree ul.jqtree_common { + margin-left: 50px !important; +} + +ul.jqtree-tree span.jqtree-border { + border: solid 2px #FFBD4D !important; + width: 98%; +} + +ul.jqtree-tree li.jqtree-ghost span.jqtree-circle { + border: solid 2px #FFBD4D !important; + margin: 0 !important; +} + +ul.jqtree-tree li.jqtree-ghost span.jqtree-line { + background-color: #FFBD4D !important; + position: relative !important; + height: 2px !important; + margin: 0 !important; +} + +ul.jqtree-tree .jqtree-element { + cursor: move !important; +} + .albumBlock {display: flex; justify-content: space-between; padding: 10px 10px 0 10px;} .albumBlock .albumLineBlock {display: block; padding-left: 7px; max-width: 45%; height: 50px;} .showCreateAlbum {text-align:left; margin:0 1em 25px 20px; line-height:22px;} @@ -1376,7 +3306,6 @@ FORM#categoryOrdering p.albumActions .userSeparator {margin:0 5px;} #addAlbumOpen, #autoOrderOpen {padding: 7px 15px; font-weight: bold; font-size: 11px;} .afterUploadActions {text-align: center; margin-bottom: 30px !important;} .afterUploadActions a {justify-content: center; margin: 35px; font-weight: bold; font-size: 14px; padding: 10px 12px;} -#addAlbumOpen::before ,#autoOrderOpen::before {margin-right: 10px; font-weight: bold; font-size: 15px;} #autoOrder p, #createAlbum p {text-align:left; margin:0 0 1em 0;} #autoOrder p.actionButtons, #createAlbum p.actionButtons {margin-bottom:0;} @@ -1428,41 +3357,993 @@ input[type="text"].dError {border-color:#ff7070; background-color:#FFe5e5;} margin-left:5px; } -.groups { - text-align:center; + .content .groups form{ + margin:0; + margin-top: 115px; } -.groups li { + +.groups { + display: flex; + flex-wrap: wrap; + justify-content: center; +} + +.group-manager{ + margin-right:224px; +} + +.remove-item { + flex: 1; + -webkit-animation: flexShrink 500ms ease forwards; + -o-animation: flexShrink 500ms ease forwards; + animation: flexShrink 500ms ease forwards; +} + +.groups .list_user #text{ + width:100%; +} + +.groups .GroupContainer { vertical-align: middle; position: relative; - display: inline-block; + display: flex; + flex-direction: column; text-align: left; - height: 300px; - width: 250px; - margin: 5px; - border-radius: 5px; + height: 286px; + width: 220px; + margin: 15px; + border-radius: 10px; + align-items: center; + justify-content: space-between; } -.groups p { - text-align:left; + +.groupHeader { + width: 100%; } -.groups label>p { + +.groups .Group-name .Group-name-container p{ + margin: auto; + padding: 2px; + text-align: center; + font-weight:700; + max-width: 170px; + overflow: hidden; + text-overflow: ellipsis; + white-space: nowrap; +} + +.Group-name-container { + position: relative; + display: inline-flex; + transform: translate(10px, 0); +} + +.group-rename { + margin: 0; + position: absolute; + top: 0px; + transform: translate(0,-8px); + display: none; + opacity: 1; +} + +.group-rename span { + padding: 5px; + margin: auto; +} + +.group-rename .validate { + background-color: #ffa744; +} + +.group-rename .icon-ok:hover { + background-color: #ff7700; + color: #3c3c3c; +} + +.group-rename form { + margin: 0 !important; +} + +.Group-name span:hover{ + color: #ffa744; + cursor: pointer; +} + +.group-rename input{ + text-align: left; + width: 130px; + margin: 4px; + font-weight: bold; + color: #3c3c3c; + font-family: "Open Sans", "Lucida Grande",Verdana,Arial,"Bitstream Vera Sans",sans-serif; + margin-left: 9px; +} + +.addGroupLabel { margin: 0; border-radius: 5px 5px 0 0; padding: 2px; + position: absolute; + left: 11px; + top: -11px; + font-size: 14px; +} + +.groups .icon-users-1{ + text-align:center; +} + +.groups .group_number_users{ + text-align: center; + font-weight: 700; + font-size: 1em; + margin:12px; +} + +.groups .addGroupFormTitle{ + font-size:1.2em; + font-weight:700; +} + +.groups input[type="text"]{ + padding:5px; +} + +.groupIcon { + margin:15px auto; +} + +.groups .icon-users-1:first-child{ + font-size: 19px; + width: 27px; + padding: 10px; + border-radius: 30px; + margin: auto; + transition: 0.4s ease; +} + +.groupMessage { + display: none; + position: absolute; + min-height: 20px; + padding: 10px; + border-radius: 30px; + top: -17px; + font-size: 12px; + right: 52px; + width: 110px; + color: #0a0; + background-color:#c2f5c2; text-align: center; } -.groups input { - float: right; +.groupError { + z-index: 2; + display: none; + position: absolute; + color: #f22; + background-color: #ffd5dc; + min-height: 17px; + padding: 10px; + border-radius: 30px; + top: -17px; + font-size: 12px; + right: 29px; + width: 143px; + text-align: center; } -p.list_user { + +.groups .addGroupFormTitle{ + margin:0; +} + + FORM.properties .groups .GroupContainer, + .groups FORM#update .groups UL { + margin-bottom: 15px; +} + +#group-template { + display: none; +} + +/* Selection mode */ +.selection-mode-group-manager{ + position:absolute; + right:15px; + z-index:11; +} + +.switch { + position: relative; + display: inline-block; + width: 60px; + height: 24px; + vertical-align:middle; +} + +.selection-mode-group-manager p{ + display:inline-block; + padding:0 5px; +} + +.switch input { + opacity: 0; + width: 0; + height: 0; +} + +.slider { + position: absolute; + cursor: pointer; + top: 0; + left: 0; + right: 0; + bottom: 0; + -webkit-transition: s; + transition: 1s; +} + +.slider:before { + position: absolute; + content: ""; + height: 16px; + width: 16px; + left: 6px; + bottom: 4px; + -webkit-transition: .4s; + transition: .4s; +} + +input:checked + .slider:before { + -webkit-transform: translateX(33px); + -ms-transform: translateX(33px); + transform: translateX(33px); +} + +.slider.round { + border-radius: 34px; +} + +.slider.round:before { + border-radius: 50%; +} + +#selection-mode-block{ + display:none; + position: absolute; + right: 0; + width: 223px; + min-height:calc(100% - 171px); + top: 169.5px; + z-index: 10; +} + +#selection-mode-block.show{ + display: block; +} + +.Selection-mode-content{ + margin-top:110px; +} + +/*Selection mode content*/ + +#nothing-selected{ + display:block; + margin: 10px; +} + +.SelectionModeGroup{ + display:none; + text-align:center; +} + +.SelectionModeGroupList{ + font-weight:700; + font-size:15px; +} + +.SelectionModeGroupList div{ + margin:10px; + text-align: start; +} + +.SelectionModeGroupList div div{ + display: flex; +} + +.SelectionModeGroupList a, +.SelectionModeGroupList p { + display:inline-block; + margin:0 +} + +.SelectionModeGroupList p { + width: 85%; + text-overflow: ellipsis; + overflow: hidden; + white-space: nowrap; +} + +#selection-mode-block button{ + display:block; + margin:20px auto; + font-size: 12px; + font-weight: 700; + padding: 13px 30px; + background-color:transparent; + width: 180px; +} + +#selection-mode-block button:hover{ + cursor: pointer; +} + +#selection-mode-block button.unavailable{ + opacity: 0.3; + background: none !important; + border: none !important; + cursor: auto; +} + +#ConfirmGroupAction{ + font-size:12px; + font-weight:700; + padding:20px; + display:none; +} + +#ConfirmGroupAction p{ + margin: 20px; + font-weight: 700; + font-size: 13px; +} + +.ConfirmDeleteButton{ + display: block; + margin: 20px auto; + font-size: 12px; + font-weight: 700; + padding: 13px 40px; + background-color: #ffa744; + border:none; + margin-top:40px; + cursor: pointer; +} + +/*Merge Options*/ + +#MergeOptionsBlock{ + display:none; + position:relative; + margin-top:40px; +} + +#MergeOptionsBlock p{ + margin: 20px; + font-weight: 700; + font-size: 13px; +} + +#MergeOptionsBlock .ItalicTextInfo{ + font-weight:400; + font-style:italic; + margin-top:0px; + margin-bottom:40px; +} + +#MergeOptionsBlock a{ + font-size:12px; + font-weight:700; +} + +.MergeOptionsChoice{ + display:block; + font-size:15px; +} + +.MergeOptionsChoice input{ + margin:0 5px; +} + +/*Merge options Radio buttons*/ + +.MergeOptionsContainer { + display: block; + position: relative; +} + +.MergeOptionsContainer input { + position: absolute; + opacity: 0; + cursor: pointer; +} + +.ConfirmMergeButton{ + display: block; + margin: 20px auto; + font-size: 12px; + font-weight: 700; + padding: 13px 40px; + border:none; + margin-top:40px; +} + +.MergeOptionsContainer{ + font-size:15px; +} +.MergeOptionsContainer label, +.MergeOptionsContainer select{ + display:block; + margin:10px auto; +} + +.MergeOptionsContainer select, +.MergeOptionsContainer option{ + width:182px; +} + +.MergeOptionsContainer select{ + padding: 10px 5px; + border: none; + background-color: white; + box-shadow: 0 0 2px #c5c5c5; + border-radius: 5px; +} + +/*Edit group name*/ + +.groups .Group-name{ + position:relative; + text-align: center; +} + +#EditGroupName{ + text-align:center; + display:none; +} + +.groups .Group-name .icon-pencil{ + opacity: 0; +} + +.Group-name:hover .icon-pencil{ + opacity: 1; +} + +/* Options menu*/ + +.group-dropdown-options:before{ + font-size:20px; + position:absolute; + top:10px; + right:0px; + padding:5px; + cursor: pointer; +} + +#GroupOptions{ + display:none; + z-index:1; + position:absolute; + right: -86px; + top: 41px; +} + +.is-default-token { + display: block; + z-index: 1; + position: absolute; + cursor: pointer; + right: 33px; + top: 4px; + padding: 5px 0; + font-size: 20px; + color: #777; + transition: 0.2s ease; +} + +.is-default-token:hover { + transform: scale(1.2,1.2); +} + +.is-default-token.deactivate { + display: none; +} + +.jconfirmDeleteConfirm, .jconfirmAlert { + padding-bottom: 0 !important; + color: #3c3c3c !important; + line-height: 28px !important; +} + +.jconfirmAlert { + margin-bottom: -2px !important; +} + +.jconfirmDeleteConfirm ~ .jconfirm-content-pane, .jconfirmAlert ~ .jconfirm-content-pane { + height: 0px !important; + margin: 0px !important; +} + +.jconfirmDeleteConfirm ~ .jconfirm-buttons button { + text-transform: none !important; +} + +.jconfirmAlert .jconfirm-icon-c i { + color: #0a0 !important; + background-color:#c2f5c2 !important; + border-radius: 20px; + padding: 5px 3px; + border-radius: 60px; + padding: 2px; + font-size: 45px; +} + +.jconfirmAlert .jconfirm-icon-c { + margin-bottom: 25px !important; +} + +.jconfirmAlert .jconfirm-title { + font-size: 20px !important; +} + +.jconfirm-title { + line-height: 1.5em; +} + +.jconfirm-buttons .btn { + text-transform: none !important; +} +/*Group checkbox*/ + +.Group-checkbox{ + display:none; + position: absolute; + top: 0px; + width: 100%; + height: 100%; + z-index: 2; +} + +.Group-checkbox-label { + width: 100%; + height: 100%; + display: block; +} + +.groups .Group-checkbox input { + position: absolute; + opacity: 0; + cursor: pointer; + height: 0; + width: 0; +} + +.groups .group-checkmark { + position: absolute; + top: 0; + right: 0; + margin: 12px; + height: 25px; + width: 25px; + border-radius:15px; + z-index: -1; +} + +.groups .group-checkmark:after { + content: ""; + position: absolute; + display: none; + animation: checkmark-appear 0.3s ease; +} + +@keyframes checkmark-appear { + 0% { + transform: rotate(45deg) scale(0); + } + 75% { + transform: rotate(45deg) scale(1.5); + } + 100% { + transform: rotate(45deg); + } +} + +.groups .Group-checkbox input:checked ~ .group-checkmark:after { + display: block; +} + +.groups .Group-checkbox .group-checkmark:after { + left: 9px; + top: 5px; + width: 5px; + height: 10px; + border: solid white; + border-width: 0 3px 3px 0; + -webkit-transform: rotate(45deg); + -ms-transform: rotate(45deg); + transform: rotate(45deg); +} + +/* Add group */ + +.addGroupBlock{ + position:absolute; + top:50%; + transform:translateY(-50%); + margin: auto; + width: 100%; + padding: 100px 0; +} + +.groups .icon-plus-circled{ + font-size: 19px; + width: 27px; + height: 27px; + padding: 10px; + border-radius: 30px; + margin: 10px auto; +} + +.groups #addGroup{ + font-weight:700; + width: 145px; + margin: auto; + text-align: center; +} + +.groups #addGroupForm{ + cursor: pointer; + position: relative; + order: -10000000000; +} + +.groups #addGroupForm form { + display: none; +} + +.groups fieldset{ + border:none; + margin:0; + padding:0; + text-align:center; +} + +.groups fieldset p{ + text-align:center; +} + +.addGroupFormLabelAndInput{ + margin:10px; + text-align:center; + margin-top:18px; + position: relative; +} + +.groups fieldset INPUT[type="text"]{ + margin:10px; + padding:10px; + display:inline-block; + width:159px; +} + +.groups button.submit{ + font-size:12px; + font-weight:700; + padding:13px 20px; + border:none; + display:inline-block; +} + +.groups #addGroupForm .actionButtons{ + text-align:center; +} + +.groups #addGroupForm .actionButtons a{ + font-size: 12px; + border: none; + padding: 13px 9px; + font-weight: bold; + transition: all 125ms ease-out; +} + +/*Group manager buttons*/ + +.groups .GroupManagerButtons{ + text-align:center; + width: 190px; + height: 50px; + line-height: 50px; +} + +.manage-permissions { + margin-bottom: 15px; +} + +.groups .manage-users, +.groups .manage-permissions{ + font-size: 13px; + display: inline-block; +} + +.groups .manage-users, +.groups .manage-users:hover, +.groups .manage-permissions, +.groups .manage-permissions:hover{ + text-decoration:none; +} + + +@media (hover: hover){ + .GroupContainer .GroupManagerButtons{ + display:none; + } + + .GroupContainer:hover .GroupManagerButtons{ + display:block; + } +} + +/*UserList Pop in*/ + +.CloseUserList{ + position:absolute; + right:-40px; + top:-40px; + font-size:30px; +} + +#UserList{ + display: none; +} + +.UserSearch { + width: 220px; + margin-top: 4px; +} + +.UserListPopIn{ + position: fixed; + z-index: 100; + left: 0; + top: 0; + width: 100%; + height: 100%; + overflow: auto; + background-color: rgba(0,0,0,0.7); +} + +.UserListPopInContainer{ + display:block; + width:1100px; + position:absolute; + left:50%; + top: 50%; + transform:translate(-50%, -48%); + text-align:left; + padding:30px; +} + +.group-name-block{ + margin-bottom:20px; +} + +#UserList .group-name-block span, +#UserList .group-name-block p, +#UserList .group-name-block .UserNumberBadge{ + display:inline-block; +} + +#UserList .group-name-block p{ + color:#3c3c3c; + font-weight:700; + font-size:15px; + margin-left:10px; +} + +#UserList .group-name-block span{ + padding:7px; + color: rgb(44,132,195); + background-color: #CDE9FD; + border-radius:25px; + font-size:15px; +} + +#UserList .group-name-block .UserNumberBadge{ + padding:3px 9px; + border-radius:15px; + background-color: rgb(44,132,195); + color: #CDE9FD; + font-size:10px; + margin-left:10px; + font-weight:700; +} + +#UserList .UserListAddFilterUsers{ + Position:relative; +} + +#UserList .AddUserBlock{ + padding:10px 0; + margin-bottom:30px; + display: flex; + align-items: center; +} + +#UserList .FilterUserBlock{ + position: absolute; + right: 0; + top: 15px; + display: flex; +} + +.FilterUserBlock .search-user{ + position: relative; +} + +#UserList .AddUserBlock p, +#UserList .AddUserBlock select, +#UserList .AddUserBlock button{ + display:inline-block; + margin:0 5px; +} + +#UserList .AddUserBlock select { + padding:11px 10px; +} + +#UserList .AddUserBlock button{ + font-size: 12px; + font-weight: 700; + padding: 16px 10px; + border: none; + margin-top: 1px; +} + +#UserList .AddUserBlock p{ + font-size:15px; + margin-left:0; +} + +#UserList .FilterUserBlock span, +#UserList .FilterUserBlock p, +#UserList .FilterUserBlock input{ + display:inline-block; +} + +#UserList .FilterUserBlock p{ + font-size:15px; + margin-right:5px; +} + +.UsersInGroupList{ + text-align:center; +} + +.UsernameBlock{ + margin:5px 10px; + display:inline-block; + margin-left:0px; + position:relative; + padding:0 10px; + border-radius:25px; +} + + +.UsersInGroupListContainer{ + max-height:315px; +} + +.UsersInGroupList p, +.UsersInGroupList span{ + display:inline-block; +} + + +.UsersInGroupList span{ + border-radius:25px; + padding:3px; + font-size:12px; +} + +.UsersInGroupList .icon-cancel:hover{ + cursor:pointer; +} + +.Tooltip{ + position:relative; + display:inline-block; + +} + +.Tooltip p.TooltipText{ + visibility: hidden; + width: 157px; + background-color:#f3f3f3; + color: #3c3c3c; text-align: left; - max-height: 200px; - overflow: auto; + padding: 5px 10px; + border-radius: 10px; + border:1px solid #3c3c3c; + font-weight:700; + font-size:10px; + position: absolute; + z-index: 4; + top:10px; + left:20px; + transition: opacity 0.3s; + z-index:101; } + +.Tooltip:hover p.TooltipText{ + visibility: visible; +} + +.ValidationUserAssociated{ + display:inline-block; + font-size:12px; + text-align:left; + padding: 4px 6px; + border-top-right-radius:10px; + border-bottom-right-radius:10px; + margin-left:-5px; + margin-right:10px; +} + +.ValidationUserAssociated p{ + margin:0; +} + +.ValidationUserDissociated{ + display:inline-block; + text-align:left; + padding: 6px; + border-radius: 30px; + margin-left: 8px; +} + +.ValidationUserDissociated p{ + margin:0 !important; + font-size:12px !important; + font-weight: 500 !important; +} + + +#UserList .FilterUserBlock .AmountOfUsersShown { + display:inline-block; + font-style:italic; +} + +#UserList .FilterUserBlock .AmountOfUsersShown p{ + font-size:12px; +} + +.LinkUserManager{ + text-align:center; + font-weight:700; + padding-top:20px; +} + +/********/ + +p.list_user { + text-align: center; + max-height: 200px; + overflow: auto; + margin: 0; +} + a.group_perm { position: absolute; - bottom: 5px; - right: 5px; + bottom: 10px; + right: 15px; +} +a.group_users { + position: absolute; + bottom: 10px; + left: 15px; } #userList .openUserDetails {visibility:hidden;} @@ -1489,7 +4370,7 @@ a.group_perm { .user_form_popin { width:750px; - height:430px; + height:450px; padding:20px; } @@ -1506,6 +4387,7 @@ a.group_perm { display:block; position:relative; } + .preview-box.icon-zoom-in:before { opacity:0; position:absolute; @@ -1532,6 +4414,27 @@ a.group_perm { opacity:0.5; } +/* Edit user popin*/ + + +.user_form_popin .ui-slider-horizontal .ui-slider-handle{ + background-color:#FFA646; + border:none; + border-radius:25px; + border: 1px solid #818181; +} + +.user_form_popin .ui-slider-horizontal .ui-slider-range-min{ + background-color:#818181; + border-radius:25px; +} + +.user_form_popin .ui-slider-horizontal{ + background-color:#e3e3e3; + border:none; + border-radius:25px; +} + /* table in help/quick_search.html */ table.qsearch_help_table { border-collapse:collapse; @@ -1583,17 +4486,30 @@ fieldset#environment legend i[class*="icon-"] { #headActions a span { display:inline; } + + #pwgHead .pwgHead-gallery-title { + width: calc(100% - 650px); + } + + .admin-head-username { + display: inline; + } } -.buttonLike, input[type="submit"], input[type="button"], input[type="reset"] { - font-size:12px; - border:none; - padding:13px 20px; - margin-left:0; - font-weight: bold; - transition: all 125ms ease-out; +.buttonLike, .buttonGradient, input[type="submit"], input[type="button"], input[type="reset"] { + font-size:12px; border:none; padding:13px 20px; margin-left:0; font-weight: bold; transition: all 125ms ease-out; } +.buttonGradient { + padding: 8px 10px; margin-left: 5px; + background: linear-gradient(135deg, rgb(255, 119, 0) 0%, rgb(249, 76, 93) 25%, rgb(201, 74, 140) 50%, rgb(249, 76, 93) 100%); transition: 0.3s ease; + cursor: pointer; + color: white !important; + background-size: 200% 100%; +} + +.buttonGradient:hover {background-position-x: 100%;} + #cboxLoadedContent input[type="submit"] {margin-bottom: 20px; float: none;} .selectAlbum, #permissions, .selectFiles {border: 0;} @@ -1601,16 +4517,14 @@ fieldset#environment legend i[class*="icon-"] { #permissions, .selectFiles {margin-top: 35px; margin-bottom: 20px;} .selectAlbumBlock {display: flex; margin-left: 10px; margin-top: 10px;} .icon-plus.cboxElement { - padding: 8px; - box-shadow: 0 1px 2px rgba(0, 0, 0, 0.16); - font-size: 15px; - margin-bottom: 8px; - transition: all 125ms ease-out; + padding: 8px; box-shadow: 0 1px 2px rgba(0, 0, 0, 0.16); font-size: 15px; margin-bottom: 8px; transition: all 125ms ease-out; } .icon-plus.cboxElement:hover {box-shadow: 0 2px 4px rgba(0, 0, 0, 0.16);} #albumSelection {margin-left: 25px;} .selectize-control.single .selectize-input {border-radius: 0; font-weight: bold;font-size: 12px;} .buttonLike {padding: 8px 10px; margin-left: 5px;} +.changeUsername .buttonLike {padding: 1px 10px;} +.changePassword .buttonLike {padding: 1px 10px;} .selectFilesButtonBlock {display: flex; margin-top: 10px;} .selectFilesinfo {margin-left: 15px; font-size: 90%; color: #999; display: flex; flex-direction: column; justify-content: center;} #uploader {margin-top: 25px; font-weight: bold !important;} @@ -1625,7 +4539,6 @@ li.plupload_delete a:hover {background: url("images/cancelhover.svg")!important; .plupload_total_file_size {margin-right: -8px;} .plupload_total_status {color: #707070!important; margin-right: -8px; font-weight: bold;} #photosAddContent .Addedphotos {border: none; margin-top: 35px;} -.plupload_upload_status {} .addAlbumEmpty {text-align: center; position: absolute; top: 45%; left: 50%; transform: translate(-50%, -50%);} .addAlbumEmptyCenter {position: relative; margin: auto; height: calc(100vh - 200px);} @@ -1639,12 +4552,7 @@ li.plupload_delete a:hover {background: url("images/cancelhover.svg")!important; .popinButtons {text-align: right; margin-top: 24px;} .popinButtons input[type="submit"] {margin-right: 0;} #albumCreationLoading { - background-color: #ffa744; - color: #3c3c3c; font-size: 12px; - border: none; - padding: 12.2px 28.4px; - font-weight: bold; - display: none; + background-color: #ffa744; color: #3c3c3c; font-size: 12px; border: none; padding: 12.2px 28.4px; font-weight: bold; display: none; } .popinField {margin-top: 30px; } .popinField.addAlbumFormParent {margin-top: 0;} @@ -1653,7 +4561,6 @@ li.plupload_delete a:hover {background: url("images/cancelhover.svg")!important; .selectedAlbum span { padding: 10px 12px; font-weight: bold; - background-color: #f5f5f5; text-align: center; margin-top: 20px; border-radius: 7px; @@ -1664,10 +4571,301 @@ li.plupload_delete a:hover {background: url("images/cancelhover.svg")!important; #addFiles i::before {margin-left: 13px; font-size: 15px;} .plupload_filelist_footer {display: none;} +.permitActionListButton .actionButtons {display: flex; flex-direction: column;} +.filterBlock {display: flex; flex-direction: column;} +.filterBlock li {width: 300px; height: auto;} +#filter_dimension {width: 600px;} +#filter_dimension .slider-choice, #filter_filesize .slider-choice {border-radius: 4px; padding: 2px 8px; margin: 0 3px;} +#checkActions a {background-color: #f0f0f0;padding: 6px 10px;color: #777;font-weight: bold;margin: 4px;border-radius: 5px;} +#filterList select {display: block; padding: 10px 18px; margin-bottom: 5px; width: 290px;} +#filterList li {margin-left: 25px; margin-bottom: 15px;} +#filter_tags .selectize-input.items.not-full.has-options, #filter_tags .selectize-input.items.not-full {padding: 10px 18px;} +#filter_tags .selectize-input {width: 300px; box-shadow: none; border-radius: inherit;} +#filter_tags .selectize-control.multi.plugin-remove_button {width: 300px !important;} +#filter_category .selectize-input.items.full.has-options.has-items {padding: 10px 18px; width: 610px; margin-bottom: 5px;} +#filterList .selectize-input.items.not-full.has-options {margin-bottom: 5px;} +#applyFilter, .addFilter-button {margin-left: 0;float: left;height: 45.6px;font-size: 1em;border: none;cursor: pointer;transition: ease 0.2s;display: flex;align-items: center;justify-content: center; padding: 0px 10px;} +#applyFilter.activated {background-color: #FFA646; color: #3C3C3C;} +#removeFilters {margin-top: 20px; margin-left: 13px;} +.filter_search_input {padding: 10px 0px; width: 300px;} +#permitAction {display: flex;} +#permitAction select {padding: 12px 10px; width: 280px; -webkit-appearance: none;} +.permitActionItem select { margin-bottom: 25px;} +#applyAction {padding: 10px 18px; margin-left: 0;} +.permitActionItem {margin-left: 30px; width: 225px;} +.permitActionItem .selectize-control.single.plugin-remove_button {width: auto !important;} +.permitActionItem .selectize-input.items.full.has-options.has-items {width: 500px !important; line-height: 23px;} +#action_associate {display: flex;} +#action_associate a:last-child {margin-left: 15px; padding: 10px;} +#applyAction i {margin-right: 15px;} +#action_delete_derivatives, #action_generate_derivatives {display: flex; flex-wrap: wrap; margin-top: 0px;} +.deleteDerivButtons a {border-radius: 4px; padding: 4px 10px; margin: 5px;} +.deleteDerivButtons {margin-bottom: 15px; margin-right: 51px; width: 100%; text-align: center;} +#action_delete_derivatives label, #action_generate_derivatives label {display: flex; margin-top: 4px; width: 50%;} +#action_delete_derivatives input[name="del_derivatives_type[]"], #action_generate_derivatives input[name="generate_derivatives_type[]"] {margin-right: 3px;} +.actionButtons:first-child::after,#filter_prefilter::before,#filter_category::before,#filter_level::before, +.permitActionListButton div::before, #action_level::after, .pictureLevels::before { + content: '\e835'; font-size: 17px; position: absolute; font-family: "fontello"; color: #6E6E6E; pointer-events: none; +} +.permitActionListButton div::before {margin-left: 250px; margin-top: 11px;} +.pictureLevels::before {margin-left: 216px; margin-top: 10px;} +.permitActionListButton div.hidden::after {display: none;} +#filter_prefilter::before {margin-left: 257px; margin-top: 35px;} +#filter_category .selectize-control.single .selectize-input::after {content: none;} +#filter_category {width: 600px;} +#filter_category::before {margin-left: 565px;margin-top: 33px; z-index: 2;} +#filter_level::before {margin-top: 34px; margin-left: 260px;} +#action_level::after {margin-top: -56px; margin-left: 254px;} +#filter_search input {width: 300px; box-sizing: border-box; padding: 11px 18px;} +#applyFilter, #addFilter,#filterList select, #filter_tags .selectize-input.items.not-full.has-options, .pictureLevels select, #permitAction select{ + font-family: "Open Sans", "Lucida Grande",Verdana,Arial,"Bitstream Vera Sans",sans-serif; + -webkit-appearance: none; + font-weight: 700; +} +#action_date_creation input, #action_title input, #action_author input {margin-right: 4px;} +#set_date_creation label {position: relative;} +#set_date_creation i {position: absolute;font-size: 20px;top: 50%;transform: translate(6px, -50%);opacity: 0.6;} +#set_date_creation input {background-color: #f8f8f8;padding: 8px;padding-left: 8px;padding-left: 35px;border-radius: 4px;border-color: #DDD;} +#set_date_creation {margin-top: 5px; margin-left: -2px;} +#action_title .large, #action_author .large {padding: 12px 10px; border: 1px solid #787777a6;margin-bottom: 8px;} +#action_add_tags .selectize-input.items.not-full.has-options, +#action_add_tags .selectize-input.items.not-full.has-options.focus.input-active.dropdown-active, .selectize-input.items.not-full, .selectize-input.items.full { + padding: 12px 10px; box-shadow: none; border-radius: 0px; border: 1px solid #787777a6; +} + +.pageNumberSelected {background-color: #ffaf58 !important; border: none !important; border-radius: 0 !important;} + + +#batchManagerGlobal UL.thumbnails {display: flex; flex-wrap: wrap; justify-content: flex-start; margin-left: 30px;} +#batchManagerGlobal ul.thumbnails .actions .icon-plus.cboxElement { + background-color: transparent; padding: 0; box-shadow: none; font-size: initial; margin-bottom: 0; +} +#batchManagerGlobal UL.thumbnails .wrap2 {width: 110px !important; height: 110px !important;} +#batchManagerGlobal UL.thumbnails IMG {margin-top: 0; width: 110px; height: 110px; border: 1px solid transparent;} +#batchManagerGlobal UL.thumbnails .wrap2 .icon-pencil {font-size: 15px; margin-left: 4px;} +#batchManagerGlobal UL.thumbnails .wrap2 .icon-plus {margin-right: 2px;} +#batchManagerGlobal li .font-checkbox [class*="icon-check"] {height: 20px; width: 20px; border-radius: 100%} +#batchManagerGlobal li.thumbSelected .font-checkbox [class*="icon-check"]::before { + content: '\E819'; + display: none; + animation: icon-check-animation 0.4s ease-out; +} + +@keyframes icon-check-animation { + 0% {transform: translate(-50% , -50%) scale(0);} + 75% {transform: translate(-50% , -50%) scale(1.3);} + 100% {transform: translate(-50% , -50%);} +} + +#batchManagerGlobal li.thumbSelected .font-checkbox [class*="icon-check"] {background-color: #fea744; border: solid 2px #fea744;} +#batchManagerGlobal .thumbSelected span.icon-check {display: block; z-index: 1;} +#batchManagerGlobal .thumbnails .wrap1 .icon-check-empty:before {content: '\E823';} +#batchManagerGlobal .thumbnails .font-checkbox [class*="icon-check"]::before {font-size: 17px; position: absolute; left: 50%; top: 50%; transform: translate(-50%, -50%);} +#batchManagerGlobal UL.thumbnails .wrap2 .icon-pencil:hover, #batchManagerGlobal UL.thumbnails .wrap2 .icon-zoom-square:hover {color: #fea744;} +#batchManagerGlobal .deleteDerivButtons a:hover, #batchManagerGlobal #checkActions a:hover {background-color: #ddd;color: #3A3A3A;text-decoration: none;} + +#batchManagerGlobal .thumbSelected img { filter: brightness(60%);-webkit-filter: brightness(60%);-moz-filter: brightness(60%); + -o-filter: brightness(60%); + -ms-filter: brightness(60%);} +#batchManagerGlobal li.thumbSelected:hover .font-checkbox [class*="icon-check"]::before {display: block;} +#filter_category .selectize-input.items.full.has-options.has-items .item, +#filter_category .selectize-input.items.not-full.has-options .item, +#filter_category .selectize-input.items.not-full .item {width: 561px; text-overflow: ellipsis;} +#filter_category .selectize-input.items.full.has-options.has-items, +#filter_category .selectize-input.items.not-full.has-options, +#filter_category .selectize-input.items.not-full {width: 100%;} +#forbidAction {text-align: center; font-weight: 600; padding: 25px 0; background-color: #f3f3f3;} +.selectionEmptyBlock {text-align: center; font-weight: 600; padding: 90px 0;} +#duplicates_options {display: flex; flex-direction: column;} +#batchManagerGlobal .thumbnails .wrap2 .icon-zoom-square::before {font-size: 15px; margin-top: 2.9px; margin-right: 7px;} +#progressBar_pbImage { + width: 300px !important; border-radius: 15px; height: 8px !important; margin-top: 5px !important; background-size: cover; + background-repeat: no-repeat; background-color: #f5f5f5; + } +#regenerationMsg {width: 360px;} +#progressBar {display: flex;} +#progressBar_pbText {margin-left: 15px;} +#filter_search .icon-help-circled::before {margin-right: 5px; color: #777;} +.dimensionSlidersBlocks {display: flex; flex-direction: column; margin-bottom: 8px;} +.dimensionSlidersTitleButtons, .dimensionSlidersRatioButtons {display: flex; justify-content: space-between;} +.dimensionSlidersTitleButtons {margin-bottom: 5px;} +.dimensionSlidersRatioButtons {margin-bottom: 15px;} +#filter_dimension blockquote div:last-child .ui-slider-horizontal {margin-top: 5px;} +#batchManagerGlobal .ui-slider-horizontal .ui-slider-handle {top: -.7em !important; width: 1.4em; height: 1.4em;} +#batchManagerGlobal .ui-slider-handle.ui-state-default.ui-corner-all {border-radius: 10px;} +#action_delete .errors {display: block; min-height: initial; margin: 10px 0px 0px 0px;} + +#batchManagerGlobal .ui-slider-horizontal .ui-slider-range {height: 2px;} +#batchManagerGlobal .ui-slider-horizontal {height: 2px;} +#batchManagerGlobal .ui-slider-range.ui-widget-header.ui-corner-all {margin-top: -1px;} +#batchManagerGlobal .font-checkbox.selected span:first-child::before {content: '\f192';} +#action_delete_derivatives .font-checkbox span, #action_delete_derivatives .font-checkbox span {margin-right: 5px;} +#action_generate_derivatives, #action_delete_derivatives {width: 320px;} + /* album manager */ .selectedAlbum.cat-list-album-path { - margin: 40px 0 30px 0; + margin: 30px 0 30px 0; } -.selectedAlbum.cat-list-album-path span { - background-color: transparent; -} \ No newline at end of file + +.icon-toggle-off:before{ + font-weight:600; +} + +/* album search */ + +.search-album { + display: flex; + justify-content: center; + align-items: center; + margin: 10px; + margin-bottom: 25px +} + +.search-album-cont { + position: relative; + display: flex; + align-items: center; +} + +.search-album-label { + font-weight: bold; + font-size: 16px; + padding: 10px; +} + +.search-album-num-result { + margin-left: 10px; +} + +.search-album-input-container { + position: relative; + display: inline; +} + +.search-album-input-container .search-icon{ + font-size: 20px; +} + +.search-album-help { + display: none; + cursor: help; + font-size: 20px; +} + +.search-album-help, .search-album-num-result { + position: absolute; + right: 0; + transform: translateX(calc(100% + 10px)); +} + +.search-album-ghost, .search-album-result { + display: flex; + flex-direction: column; +} + +.search-album-elem, .search-album-ghost div { + height: 64px; + border-radius: 5px; + margin: 10px 20px; + overflow: hidden; +} + +.search-album-ghost div { + background: #f3f3f3; + background-image: linear-gradient(0.25turn, #eee, rgb(250, 250, 250)); + background-attachment: fixed; +} + +.search-album-elem { + box-shadow: 0px 2px 3px #00000024; + background-color: #fafafa; + border-radius: 5px; + color: #777; + padding-left: 20px; + display: flex; + align-items: center; + position: relative; +} + +.search-album-elem span{ + font-size: 20px; + padding: 8px; + display: inline-block; + border-radius: 50%; +} + +.search-album-elem p{ + font-size: 16px; + margin: 10px; + white-space: nowrap; + font-weight: 600; +} + +.search-album-action-cont { + display: none; + position: absolute; + right: 0%; + top : 50%; + height: 100%; + transform: translate(0, -50%); + align-items: center; + flex-direction: row-reverse; + overflow: hidden; +} + +.search-album-elem:hover .search-album-action-cont { + display: flex; +} + +.search-album-action { + display: flex; + align-items: center; +} + +.search-album-action a { + padding: 30px 15px; + font-weight: bold; + cursor: pointer; + height: 100%; + border-left: 1px solid #00000012; + background-color: #00000003; + text-align: center; +} + +.search-album-action a:hover { + color: #444; + text-decoration: none; + background-color: #FFA646; +} + +.search-album-noresult { + opacity: 0.3; + text-align: center; + width: calc(100% - 205px); + font-weight: bold; + font-size: 30px; + position: absolute; + top: calc(50% + 200px / 2); + display: none; +} + +.doubleSelect { + width: 100%; +} + +.doubleSelect td { + width: 50%; +} + +#cancelUpload { + margin-left:10px; + background-color: #999999; +} + +#cancelUpload:hover { + background-color: #ff9b32; + color: white; + text-decoration: none; +} + +.doubleSelect p {display:flex; justify-content: center;} \ No newline at end of file diff --git a/admin/themes/roma/images/resizable-e.gif b/admin/themes/roma/images/resizable-e.gif deleted file mode 100644 index 36451a670..000000000 Binary files a/admin/themes/roma/images/resizable-e.gif and /dev/null differ diff --git a/admin/themes/roma/images/resizable-n.gif b/admin/themes/roma/images/resizable-n.gif deleted file mode 100644 index fe11bf420..000000000 Binary files a/admin/themes/roma/images/resizable-n.gif and /dev/null differ diff --git a/admin/themes/roma/images/resizable-ne.gif b/admin/themes/roma/images/resizable-ne.gif deleted file mode 100644 index 4819fdf1c..000000000 Binary files a/admin/themes/roma/images/resizable-ne.gif and /dev/null differ diff --git a/admin/themes/roma/images/resizable-nw.gif b/admin/themes/roma/images/resizable-nw.gif deleted file mode 100644 index 7f128dac2..000000000 Binary files a/admin/themes/roma/images/resizable-nw.gif and /dev/null differ diff --git a/admin/themes/roma/images/resizable-s.gif b/admin/themes/roma/images/resizable-s.gif deleted file mode 100644 index 908576c9b..000000000 Binary files a/admin/themes/roma/images/resizable-s.gif and /dev/null differ diff --git a/admin/themes/roma/images/resizable-se.gif b/admin/themes/roma/images/resizable-se.gif deleted file mode 100644 index 0db439888..000000000 Binary files a/admin/themes/roma/images/resizable-se.gif and /dev/null differ diff --git a/admin/themes/roma/images/resizable-sw.gif b/admin/themes/roma/images/resizable-sw.gif deleted file mode 100644 index e983320f6..000000000 Binary files a/admin/themes/roma/images/resizable-sw.gif and /dev/null differ diff --git a/admin/themes/roma/images/resizable-w.gif b/admin/themes/roma/images/resizable-w.gif deleted file mode 100644 index fe2a79034..000000000 Binary files a/admin/themes/roma/images/resizable-w.gif and /dev/null differ diff --git a/admin/themes/roma/theme.css b/admin/themes/roma/theme.css index fda07a44c..05f1a149d 100644 --- a/admin/themes/roma/theme.css +++ b/admin/themes/roma/theme.css @@ -71,8 +71,6 @@ h1 { .content dl, dd { margin:5px; } - -UL.thumbnails span.wrap2:hover { background-color#7CBA0F; color:#666; } UL.thumbnails span.wrap2 { background-color:#333; } @@ -80,9 +78,9 @@ UL.thumbnails span.wrap2 { /* .throw, */ td h3 { background-image: url(images/fillet.png); background-repeat: repeat-x; } /* borders */ -fieldset { border: 2px solid #333; } +fieldset { border: none; } -.buttonLike, INPUT, SELECT, TEXTAREA { +INPUT, SELECT, TEXTAREA { border: 1px solid #666; } input:focus, select:focus, textarea:focus { @@ -99,7 +97,7 @@ INPUT[type="submit"]:hover , INPUT[type="reset"]:hover { cursor: pointer; } INPUT.bigbutton:hover { background-color: #222; color:#f33; border: 0; } .throw { font-size: 120%; line-height: 26px; padding-top: 10px; font-weight: bold; color: #ff3363; } label { cursor:pointer } -.categoryLi, .menuLi { background: #333 } +.menuLi { background: #333 } .menuLi_hidden { background: #333 !important; } a.Piwigo { font-family: verdana, arial, helvetica, sans-serif !important; @@ -109,23 +107,42 @@ a.Piwigo:hover span.Piwigo { border-bottom: 1px solid #FF3363; } -.categoryUl>li:not(.virtual_cat) { - background:url(images/stripe-cat.png); -} - /* RADU - I comment this because it makes FF form controls activation very slow) *, *:focus, *:active, input:active, a:active, input:focus, a:focus { outline: none; -moz-outline-width: 0px; } */ a { color:#bbb; } a:hover, a:active { color: #f70; cursor: pointer; } -.content .navigationBar {color:#666;} ul.actions, .content form#waiting {text-align:center;} #adminHome A, #menubar li A, #menubar dt { color: #8d8d8d; } +/* Filter */ + +.search-input { + background-color: #333 !important; +} + +.search-input:hover { + background-color: #222 !important; +} + +/* Pagination */ + +.pagination-per-page { + background-color: #555; +} + +.pagination-per-page span { + color: #777; +} + +.pagination-per-page a:hover { + background-color: #888; color: #444; +} + /* jQuery tooltips */ .ui-tooltip { color: #eee; @@ -143,14 +160,6 @@ ul.actions, .content form#waiting {text-align:center;} .ui-resizable .ui-resizable-handle { display: block; } body .ui-resizable-disabled .ui-resizable-handle { display: none; } /* use 'body' to make it more specific (css order) */ body .ui-resizable-autohide .ui-resizable-handle { display: none; } /* use 'body' to make it more specific (css order) */ -.ui-resizable-n { cursor: n-resize; height: 6px; width: 100%; top: 0px; left: 0px; background: transparent url(images/resizable-n.gif) no-repeat scroll center top; } -.ui-resizable-s { cursor: s-resize; height: 6px; width: 100%; bottom: 0px; left: 0px; background: transparent url(images/resizable-s.gif) no-repeat scroll center top; } -.ui-resizable-e { cursor: e-resize; width: 6px; right: 0px; top: 0px; height: 100%; background: transparent url(images/resizable-e.gif) no-repeat scroll right center; } -.ui-resizable-w { cursor: w-resize; width: 6px; left: 0px; top: 0px; height: 100%; background: transparent url(images/resizable-w.gif) no-repeat scroll right center; } -.ui-resizable-se { cursor: se-resize; width: 9px; height: 9px; right: 0px; bottom: 0px; background: transparent url(images/resizable-se.gif); } -.ui-resizable-sw { cursor: sw-resize; width: 9px; height: 9px; left: 0px; bottom: 0px; background: transparent url(images/resizable-sw.gif); } -.ui-resizable-nw { cursor: nw-resize; width: 9px; height: 9px; left: 0px; top: 0px; background: transparent url(images/resizable-nw.gif); } -.ui-resizable-ne { cursor: ne-resize; width: 9px; height: 9px; right: 0px; top: 0px; background: transparent url(images/resizable-ne.gif); } #ui-datepicker-div {background-color: #555; border:2px solid #333;} #ui-datepicker-div .ui-datepicker-title {color:white;} @@ -196,7 +205,7 @@ INPUT[type="text"].large { width: 317px; } } .buttonLike:disabled, input[type="button"]:disabled, input[type="submit"]:disabled, input[type="reset"]:disabled { - color:#555; + color:#555; border-color:#666; cursor:not-allowed; background-color: #666; @@ -221,25 +230,32 @@ a.stat-box:hover { color:#aeaeae; } -.stat-box-yellow i { - color:#9b5200; - background-color: #ffa744; +.stat-data-selector label { + color: #777; + padding: 10px; + background-color: #333; + transition: 0.2s ease; } -.stat-box-red i { - background-color: #c64444; - color: #650101; + +.stat-data-selector label:hover { + background-color: #555 } -.stat-box-purple i { - background-color: #ce4baa; - color: #52003b; + +.chart-title { + color: #777; } -.stat-box-green i { - background-color: #4ac641; - color: #014400; + +.intro-charts .tooltip { + background-color: #333333; + box-shadow: none; } -.stat-box-blue i { - background-color: #379bbc; - color: #003751; + +.intro-charts .tooltip::after { + border-color: transparent transparent #333333 transparent; +} + +.intro-charts .tooltip .tooltip-details-title, .intro-charts .tooltip-title { + color:#aeaeae !important; } /* hacks */ @@ -250,38 +266,46 @@ a.stat-box:hover { * html .bigtext { margin-right: 300px; } .themeBox {background-color:#333;} -.themeBox IMG {border:1px solid #666;} .themeName {color:#ccc;} +.themeSelect {background-color: #333; box-shadow: none;} +.themeSelect.themeDefault {background-color: #f9852c;} +.themeSelect.themeDefault a, .themeSelect.themeDefault span, .themeSelect.themeDefault .themeName{ color:#333;} .themeActions A {border-bottom:none;} -.themeDefault {background-color:#555;} - +.themeActions span {background-color: #888888;color: #666666;} +.showInfo-dropdown-header a {color:#3A3A3A} #pluginsMenuSeparator {border:1px solid #333;} #helpContent, #pLoaderPage, #ftpPage, #ftpPage LEGEND {color:#aaa;} -.pluginBox, .pluginMiniBox, .groups li {background-color:#333;color:#999;border-color:#333;} -.pluginBoxNameCell, .pluginMiniBoxNameCell {color:#ddd;} +.pluginBox, .pluginContent, .pluginMiniBox, .groups li, .groups .GroupContainer {background-color:#333;color:#999;border-color:#333; box-shadow: none;} +.pluginBoxNameCell, .pluginMiniBoxNameCell {color:#aaa;} .pluginBox.incompatible, .pluginMiniBox.incompatible {border-color:#800 !important;} .pluginBoxes .merged, .pluginBoxes .missing {background-color:#422;border:1px solid #800;} +.pluginActionLevel1, .pluginActionLevel2 {color: #333;} +.pluginActionLevel2 {background-color: #bbbbbb;} +.pluginFilter {color: #c1c1c1;} +.pluginFilter input {border-color: #c1c1c1;} .languageBox {background-color:#333;} .languageName {color:#ccc;} .languageDefault {background-color:#555; color:#aaa;} +.groupMessage {color: #c2f5c2 ;background-color: #0a0;} +.groupError {color: #ffd5dc;background-color: #f22;} +.group-rename input {color: #999;} +.GroupBackgroudSelected .Group-name {color: #333 !important;} +.GroupContainer .group_name-editable {background-color: #323232 !important; border: 1px solid #666 !important;} +.GroupContainer .group-rename .icon-ok {color: #222;} + /* Batch Manager */ #batchManagerGlobal .thumbnails .font-checkbox [class*="icon-check"]::before { color:#777; } -#batchManagerGlobal .thumbnails li:hover .font-checkbox [class*="icon-check"]::before { - color:white; -} - #batchManagerGlobal li.thumbSelected .font-checkbox [class*="icon-check"]::before { - color:white; + color: #3C3C3C; display: block; } #batchManagerGlobal UL.thumbnails li:hover .wrap2 { - background-color: #ff3363; color: white; } @@ -292,8 +316,26 @@ a.stat-box:hover { } #batchManagerGlobal #selectedMessage { - background-color: #555; - color:white; + color: #FFA646; + font-weight: bold; +} + +#batchManagerGlobal #applyFilter { + color: #3C3C3C; + background-color: #ececec; +} + +#batchManagerGlobal #applyFilter:hover { + color: white; + background-color: #ffc17e; +} + +#batchManagerGlobal #filterList li { + background-color: #3C3C3C; +} + +#batchManagerGlobal legend { + color: #BFBFBF; } /* TokenInput (with Facebook style for ROMA) */ @@ -308,30 +350,386 @@ div.token-input-dropdown ul li.token-input-selected-dropdown-item {background-co background: #3c3939; } -/* Album Properties */ -#albumThumbnail img, #albumLinks { - border-color:#333; +/* Picture edit */ +#picture-content input[type=text], #picture-content textarea, #picture-content .selectize-input, #picture-content select { + background-color: #444444; + border: 1px solid #666; + color: #c1c1c1; +} + +.picture-infos-title, .picture-infos-icon { + color: #c1c1c1; +} + +.picture-infos-category { + border-color: #333; +} + +/* Album edit */ + +#catModify input[type="text"], #catModify textarea{ + background-color: #444444; + border: 1px solid #666; + color: #c1c1c1; +} + +#catHeader .catAction strong, #catHeader .catLock strong { + color: #c1c1c1; +} + +#catHeader .catAction a:hover { + color: white; } .selectedComment {background-color:#555; color:#fff;} -.groups label>p { +.groups .Group-name>p { color: #ccc; font-size: 1.2em; background-color:#111; } + label>p.group_select { - color: #fff; + color: #d5d5d5; background-color:#555; } +.groups .GroupContainer, +.groups .showCreateGroup, +.groups .addGroupFormBlock{ + font-size: 1.2em; + background-color:#333; +} + +.groups .Group-name>p, +.addGroupForm .addGroupFormTitle{ + color:#3c3c3c; + font-size: 1.2em; +} + +.groups .GroupContainer, +.groups .showCreateGroup, +.groups .addGroupFormBlock{ + box-shadow: -1px 1px 2px #1a1a1a; +} + +.groups .showCreateGroup:hover #addGroup, +.groups .addGroupFormTitle{ + color:#c0c0c0; + text-decoration:none; +} + +.groups #addGroup{ + color:#777; +} + +.groups .group_number_users{ + color:#777; +} + +.addUserButton:hover{ + text-decoration:none; + color:#3c3c3c; + background-color:#f3f3f3; +} + +.groups p.list_user{ + color:#3c3c3c; +} + +label>p.group_select { + color: #000; + background-color:#C2F5C2; +} + +.groups input[type="text"]{ + background-color:#444444; + border:1px solid #d5d5d5; +} + +.groups .AddUser .icon-user-add::before{ + background-color:#f3f3f3; + color:#e0e0e0; +} + +/*Edit group name*/ + +.groups .Group-name{ + color:#777; +} + +.groups .Group-name .Group-name-container p:focus{ + border:1px solid #303030!important; + background-color:#1a1a1a; +} + +/*Add Group */ + +.groups fieldset INPUT[type="text"]::placeholder{ + color:#d5d5d5; +} + +.groups button.submit{ + background-color:#ffa744; + color:#3c3c3c; +} + +.groups button.submit:hover{ + background-color:#ff7700; +} + +/* Group Options*/ + +#GroupOptions{ + background-color:#5c5c5c; + box-shadow: -1px 1px 2px #393939; + color:#c0c0c0; +} + +/*Group manager buttons*/ + +.groups .manage-users, +.groups .manage-permissions{ + border:1px solid #777; + background-color:transparent; +} + + +.groups .manage-users:hover, +.groups .manage-permissions:hover{ + background-color:#ffa744; + border:1px solid #ffa744; + cursor:pointer; +} + +/*UserList Pop in*/ + + +.UserListPopInContainer{ + background-color:#444; + border-radius:10px; + +} + +#UserList .AddUserBlock button{ + background-color:#ffa744; + color:#3c3c3c; +} + +#UserList .AddUserBlock button:hover{ + background-color:#ff7700; +} + +#UserList .AddUserBlock input, +#UserList .FilterUserBlock input{ + background-color:#2c2c2c; +} + +#UserList .AddUserBlock p, +#UserList .FilterUserBlock{ + color:#c0c0c0; +} + +.UsersInGroupList span{ + color:#d5d5d5; +} + +.UsersInGroupList .icon-cancel:hover{ + color:#ff7700; +} + +.LinkUserManager{ + color:#3c3c3c; +} + +/* Selection mode */ + +.slider { + background-color: #333; +} + +.slider:before { + background-color: #151515; +} + +input:checked + .slider { + background-color: #ff8c27; +} + +input:focus + .slider { + box-shadow: 0 0 1px #FFC27F; +} + +#selection-mode-block{ + background-color: #232323; + border-left:1px solid #1a1a1a; +} + +.GroupBackgroudSelected{ + background-color:#f9852c!important; + box-shadow: none !important; +} + +.OrangeIcon{ + background-color:#ae5d1e !important; + color:#faa96b!important; +} + +.OrangeFont{ + color:#fddaba!important; +} + +.BlackFont{ + color:black!important; +} + +/*Selection mode content*/ + +.SelectionModeGroupList{ + color:#c0c0c0; +} + +#selection-mode-block button{ + border: 1px solid #e7e7e7; + color:#c0c0c0; +} + + +#selection-mode-block button:hover{ + background-color: #ffa744; + border: 1px solid #ffa744; + color:#3c3c3c; +} + +#ConfirmGroupAction{ + color:#3c3c3c; +} + +#ConfirmGroupAction p{ + color: #777; +} + +.ConfirmDeleteButton{ + background-color: #ffa744; +} + +/*Merge Options*/ + + +#MergeOptionsBlock p{ + color: #777; +} + +#MergeOptionsBlock a{ + color:#c0c0c0; +} + +/*Merge options Radio buttons*/ + +.ConfirmMergeButton{ + background-color: #ffa744; +} + +.MergeOptionsContainer select{ + background-color: #1a1a1a; + box-shadow: 0 0 2px #c5c5c5; +} + +/*Group checkbox*/ + +.groups .group-checkmark { + border:2px solid #c76a23; +} + +.groups .Group-checkbox:hover input ~ .group-checkmark { + background-color: #c76a23; +} + +.groups .Group-checkbox input:checked ~ .group-checkmark { + background-color: #c76a23; +} + +.groups .Group-checkbox .group-checkmark:after { + border: solid #ebebeb; + border-width: 0 3px 3px 0; +} + +/*Group manager buttons*/ + +.groups .manage-users, +.groups .manage-users:hover, +.groups .manage-permissions, +.groups .manage-permissions:hover{ + color:#c0c0c0; +} + +.groups .manage-users:hover, +.groups .manage-permissions:hover{ + color:#3c3c3c; +} + +/*UserList Pop in*/ + +.CloseUserList{ + color:white; +} + +#UserList .group-name-block p{ + color:#9e9e9e; +} + +.UsernameBlock{ + background-color:#393939; + color:#9e9e9e; +} + +.Tooltip p.TooltipText{ + + color:#f3f3f3; + background-color: #3c3c3c; + border:1px solid #f3f3f3; +} + +.ValidationUserAssociated, .ValidationUserDissociated{ + background-color:#00aa00; +} + +.ValidationUserAssociated p, .ValidationUserDissociated p{ + color:#c2f5c2 !important; +} + +.groups .showCreateGroup .icon-plus-circled, +#UserList .group-name-block span, +.groups .showCreateGroup .icon-plus-circled{ + color:#003751; + background-color: #379bbc; +} + +#UserList .group-name-block .UserNumberBadge{ + background-color:#003751; + color: #379bbc; +} + +/*------*/ + .userSeparator { color:#666; visibility: hidden; } -#configContent fieldset:not(.no-border) { - border-top-color:#444; +/*Edit user popin*/ + +.user_form_popin .ui-slider-horizontal .ui-slider-handle{ + background-color:#FFA646; + border:1px solid #5a5a5a; +} + +.user_form_popin .ui-slider-horizontal .ui-slider-range-min{ + background-color:#5a5a5a; +} +.user_form_popin .ui-slider-horizontal{ + background-color:#151515; + } table.dataTable tr.even { @@ -379,21 +777,12 @@ table.qsearch_help_table td { #wImg {border-color:#555;} -FORM#categoryOrdering p.albumTitle a { color: #c0c0c0; } -FORM#categoryOrdering p.albumActions a { border-left:1px solid #555; } -.albumInfos {color: #808080;} -FORM#categoryOrdering p.albumActions a:hover {background-color: #ffa646; color: #3A3A3A;} -FORM#categoryOrdering p.albumActions .userSeparator {border: 1px solid #d5d5d5;} -#addAlbumOpen, #autoOrderOpen {border: 1px solid #777; color: #c0c0c0;} -#addAlbumOpen:hover, #autoOrderOpen:hover {border: 1px solid #aaa; text-decoration: none;} .afterUploadActions a {color: #3C3C3C; font-weight: bold; background-color: #FFA646;} .afterUploadActions a:hover {text-decoration: none; background-color: #ff7700;} .font-checkbox {color: #898888;} .font-checkbox:hover {color: #ffa646;} .with-border legend, .with-border strong {color: #c0c0c0;} .font-checkbox.selected {color: #ffa646;} -#formCreateAlbum input[name="virtual_name"] {border: 1px solid #7e7e7e; color: #F8F8F8; transition: all 125ms ease-out;} -#formCreateAlbum input[name="virtual_name"]:hover {border-color: #A5A5A5;} LEGEND {color: #c1c1c1;} a#showPermissions {color: #D6D6D6; border: 1px solid #D6D6D6; background-color: #414141;} @@ -409,12 +798,309 @@ li.plupload_delete a {background: url("images/cancel.svg")!important; background li.plupload_delete a:hover {background: url("images/cancelhover.svg")!important; background-size: cover!important;} .addAlbumEmpty {color: #c1c1c1;} -.addAlbumEmpty a {background-color: #FFA646; color: #3C3C3C;} -.addAlbumEmpty a:hover{background-color: #ff7700; color: #3C3C3C;} .buttonSeparator {color: #c1c1c1;} #cboxTitle {color: #7f7f7f !important;} #addAlbumForm {color: #999;} .selectedAlbum span {background-color: #555; color: #999;} #uploadForm li.plupload_droptext {background-color: #343434!important; color: #777 !important;} .addFilesButtonChanged {background-color: #888;} -.addFilesButtonChanged:hover {background-color: #777;} \ No newline at end of file +.addFilesButtonChanged:hover {background-color: #777;} +.categoryBox, .addAlbum {background-color: #333 !important; box-shadow: -1px 1px 2px #1a1a1a;} + +#checkActions a, .deleteDerivButtons a {background-color: #393939;} +#addFilter, #filterList select, .pictureLevels select, #permitAction select {background-color: #444444; color: #BFBFBF} +#filter_category .selectize-input.items.full.has-options.has-items, #filter_tags .selectize-input.items.not-full.has-options, +#filter_tags .selectize-input.items.not-full, #filter_search input, #action_associate .selectize-input.items.full.has-options.has-items, +#action_dissociate .selectize-input.items.full.has-options.has-items { + background-color: #444444; + color: #BFBFBF; + border: 1px solid #666; + box-shadow: none; +} +#permitAction select {background: #3C3C3C; color: #C0C0C0;} +#set_date_creation input { + background: #3C3C3C; + color: #C0C0C0; +} +#action_associate a:last-child {color: #C0C0C0; background-color: #464646;} +#filter_dimension .slider-choice, #filter_filesize .slider-choice {background-color: #393939;} +#filter_dimension .slider-choice:hover, #filter_filesize .slider-choice:hover, .dimension-cancel:hover { + text-decoration: none; background-color: #ffa646 !important; color: initial; +} +#forbidAction, .selectionEmptyBlock, .noFilter {background-color: #5a5757; color: #c1c1c1;} + +.pageNumberSelected {background-color: #b4b4b4;} +#action_title .large, #action_author .large {background-color: #333; color: #fefefe;} +#addFilter optgroup, #batchManagerGlobal option[disabled] {background-color: #555;} +.dimension-cancel {background-color: #555 !important;} +.pageNumberSelected {color: #777 !important; font-weight: bold;} + +#batchManagerGlobal .ui-state-default, #batchManagerGlobal .ui-widget-content .ui-state-default,#batchManagerGlobal .ui-widget-header .ui-state-default { + border: 1px solid #ffaf58; background: #ffaf58; +} +#batchManagerGlobal .ui-state-hover,#batchManagerGlobal .ui-widget-content .ui-state-hover, #batchManagerGlobal .ui-widget-header .ui-state-hover { + background: #ffaf58; +} +#batchManagerGlobal .ui-state-focus, #batchManagerGlobal .ui-widget-content .ui-state-focus,#batchManagerGlobal .ui-widget-header .ui-state-focus { + border: 1px solid #ffaf58; background: #ffaf58; +} +#batchManagerGlobal .ui-state-active, #batchManagerGlobal .ui-widget-content .ui-state-active,#batchManagerGlobal .ui-widget-header .ui-state-active { + background: #ffaf58; +} +#batchManagerGlobal .ui-widget-content {background: #666; border: 1px solid #666;} +#batchManagerGlobal .ui-slider .ui-slider-range {background-color: #aaaaaa;} +#batchManagerGlobal .ui-slider-range.ui-widget-header.ui-corner-all {border: 1px solid #ffaf58; background-color: #ffaf58;} + +#batchManagerGlobal #applyFilter { + color: #BFBFBF; + background-color: #3c3c3c; +} + +#batchManagerGlobal #applyFilter:hover { + background-color: #202020; +} +/*Error message*/ + +.errors { + color: #ffc4bf; + background-color: #d31100; + border-left: 4px solid #ffc4bf; +} + +.errors li{ + color: #ff0303; +} + +.errors a{ + background-color: #ff4838; + padding: 2px 7px; + color: #ffe8e6; +} + +/*Success message*/ + +.infos { + color: #9bff92; + background-color: #10bb00; + border-left: 4px solid #9bff92; +} + +.infos li{ + color: #9bff92; +} + +.infos a{ + background-color: #12e100; + padding: 2px 7px; + color: #e3ffe1; +} + +/*Warning message*/ + +.warnings { + color: #ffc58c; + background-color: #ee6300; + border-left: 4px solid #ffc58c; +} + +.warnings a{ + background-color: #ff8e3d; + padding: 2px 7px; + color: #ffedda; +} + +/*announcement message*/ + +.messages { + color: #45a8ff; + background-color: #003360; + border-left: 4px solid #45a8ff; +} + +.eiw .messages a { + background-color: #00529b; + color: #a7d6ff; + padding: 2px 7px; +} + +/* Popin Jconfirm*/ + +.jconfirm .jconfirm-box { + background-color: #333 !important; +} + +.jconfirm-title { + color: #777 !important; +} + +.jconfirmAlert .jconfirm-icon-c i { + color:#c2f5c2 !important; + background-color:#0a0 !important; +} + +.jconfirm .jconfirm-box .jconfirm-buttons button.btn-default { + color: #777 !important; + background-color: #222 !important; +} + +.jconfirm .jconfirm-box .jconfirm-buttons button.btn-default:hover { + color: #222!important; + background-color: #777 !important; +} + +.jconfirm .jconfirm-box.loading::before { + background: #333 !important; +} + +/* Tag Manager */ + +.tag-box, +.tag-header #add-tag:not(.input-mode) .add-tag-label, +.tag-header .selection-controller a{ + background-color: #333 !important; +} + +.tag-container .tag-box p { + color: #aaa; +} + +.tag-header #add-tag.input-mode .add-tag-container input:hover { + background-color: #222 !important; +} + +.tag-header .selection-controller p { + color: #c1c1c1; +} + +.tag-container.selection .tag-box[data-selected="1"] { + background-color: #f9852c !important; + box-shadow: none; +} + +.tag-container .tag-box[data-selected="1"] .select-checkbox { + background-color: #c76a23; + border-color: #c76a23; +} + +.tag-container .tag-box .tag-rename .tag-name-editable { + background-color: #666; + color: white; + border-color: #333; +} + +.tag-container .tag-box .tag-rename span { + color: #D9D9D9; +} + +.tag-select-message { + background: #0051a57d; + color: #bce5f7; +} + +.tag-select-message a { + background-color: #bce5f7; + color: #0051a5; +} + +.tag-info.tag-warning { + color: #ffdd99; + background-color: #ee8800; +} + +.tag-info.tag-warning a { + color: white; +} + +.tag-info.tag-message { + color: #c2f5c2 ; + background-color:#0a0; +} + +.tag-info.tag-error { + color: #ffd5dc; + background-color:#f22; +} + +/* Album Move (and album search) */ +.move-cat-container, .search-album-elem { + background-color: #333; + box-shadow: none; +} + +.cat-move-order-popin .order-popin-container { + background-color: #444; + color: white; +} + +.cat-move-order-popin .album-name { + color: white; +} + +/* Album search */ +.search-album-ghost div { + background-image: linear-gradient(#333, #444); +} + +/* Icon colors*/ + +.icon-red { + background-color: #c64444; + color: #650101; +} + +.icon-yellow { + color: #9b5200; + background-color: #ffa744; +} + +.icon-purple { + background-color: #ce4baa; + color: #52003b; +} + +.icon-blue { + background-color: #379bbc; + color: #003751; +} + +.icon-green { + background-color: #4ac641; + color: #014400; +} + +.themeBox{ + box-shadow: 0 0 5px #333; +} + +.pluginActionLevel1, +.themeActions a:nth-child(1) { + background-color: #ffa744; +} + +.themeActions a:nth-child(2), +.plugin-inactive .pluginContent .pluginActionLevel1{ + background-color:#999999; +} + +.pluginUnavailableAction{ + background-color:#888; + color:#666; +} + +.addAlbum label{ + color:#aaa; + margin:-5px 0; +} + +.popin-title, +.cat-move-order-popin .album-name{ + color:#999; +} + +.cat-move-order-popin .close-popin{ + color:#ccc; +} + +.move-cat-container .move-cat-toogler{ + color:#ffa744; +} \ No newline at end of file diff --git a/admin/updates_pwg.php b/admin/updates_pwg.php index 46a7635f3..247d6020b 100644 --- a/admin/updates_pwg.php +++ b/admin/updates_pwg.php @@ -1,10 +1,10 @@ -get_piwigo_new_versions(); // +-----------------------------------------------------------------------+ // | Step 0 | // +-----------------------------------------------------------------------+ if ($step == 0) { - $new_versions = $updates->get_piwigo_new_versions(); - if (isset($new_versions['minor']) and isset($new_versions['major'])) { $step = 1; $upgrade_to = $new_versions['major']; - - $template->assign( - array( - 'MINOR_VERSION' => $new_versions['minor'], - 'MAJOR_VERSION' => $new_versions['major'], - ) - ); } elseif (isset($new_versions['minor'])) { @@ -86,11 +78,6 @@ if ($step == 2 and is_webmaster()) // +-----------------------------------------------------------------------+ if ($step == 3 and is_webmaster()) { - if (isset($_POST['dumpDatabase'])) - { - updates::dump_database(isset($_POST['includeHistory'])); - } - if (isset($_POST['submit']) and isset($_POST['upgrade_to'])) { updates::upgrade_to($_POST['upgrade_to'], $step); @@ -101,6 +88,20 @@ if ($step == 3 and is_webmaster()) $template->assign('missing', $updates->missing); } +// +-----------------------------------------------------------------------+ +// | Check for requirements | +// +-----------------------------------------------------------------------+ + +if (isset($new_versions['minor_php']) and version_compare(phpversion(), $new_versions['minor_php'], '<')) +{ + $template->assign('MINOR_RELEASE_PHP_REQUIRED', $new_versions['minor_php']); +} + +if (isset($new_versions['major_php']) and version_compare(phpversion(), $new_versions['major_php'], '<')) +{ + $template->assign('MAJOR_RELEASE_PHP_REQUIRED', $new_versions['major_php']); +} + // +-----------------------------------------------------------------------+ // | Process template | // +-----------------------------------------------------------------------+ @@ -114,10 +115,29 @@ $template->assign(array( 'STEP' => $step, 'PHPWG_VERSION' => PHPWG_VERSION, 'UPGRADE_TO' => $upgrade_to, - 'RELEASE_URL' => PHPWG_URL.'/releases/'.$upgrade_to, ) ); +if (isset($new_versions['minor'])) +{ + $template->assign( + array( + 'MINOR_VERSION' => $new_versions['minor'], + 'MINOR_RELEASE_URL' => PHPWG_URL.'/releases/'.$new_versions['minor'], + ) + ); +} + +if (isset($new_versions['major'])) +{ + $template->assign( + array( + 'MAJOR_VERSION' => $new_versions['major'], + 'MAJOR_RELEASE_URL' => PHPWG_URL.'/releases/'.$new_versions['major'], + ) + ); +} + $template->set_filename('plugin_admin_content', 'updates_pwg.tpl'); $template->assign_var_from_handle('ADMIN_CONTENT', 'plugin_admin_content'); diff --git a/admin/user_list.php b/admin/user_list.php index 1de17cabe..c57d17eba 100644 --- a/admin/user_list.php +++ b/admin/user_list.php @@ -10,6 +10,8 @@ * Add users and manage users list */ +check_input_parameter('group', $_GET, false, PATTERN_ID); + // +-----------------------------------------------------------------------+ // | tabs | // +-----------------------------------------------------------------------+ @@ -44,37 +46,14 @@ while ($row = pwg_db_fetch_assoc($result)) // +-----------------------------------------------------------------------+ // | template | // +-----------------------------------------------------------------------+ - -$template->set_filenames(array('user_list'=>'user_list.tpl')); - -$query = ' -SELECT - DISTINCT u.'.$conf['user_fields']['id'].' AS id, - u.'.$conf['user_fields']['username'].' AS username, - u.'.$conf['user_fields']['email'].' AS email, - ui.status, - ui.enabled_high, - ui.level - FROM '.USERS_TABLE.' AS u - INNER JOIN '.USER_INFOS_TABLE.' AS ui ON u.'.$conf['user_fields']['id'].' = ui.user_id - WHERE u.'.$conf['user_fields']['id'].' > 0 -;'; - -$result = pwg_query($query); -while ($row = pwg_db_fetch_assoc($result)) -{ - $users[] = $row; - $user_ids[] = $row['id']; -} - $template->assign( array( - 'users' => $users, - 'all_users' => join(',', $user_ids), 'ACTIVATE_COMMENTS' => $conf['activate_comments'], 'Double_Password' => $conf['double_password_type_in_admin'] - ) - ); + ) +); + +$template->set_filenames(array('user_list'=>'user_list.tpl')); $default_user = get_default_user_info(true); @@ -117,6 +96,7 @@ $template->assign( 'protected_users' => implode(',', array_unique($protected_users)), 'password_protected_users' => implode(',', array_unique($password_protected_users)), 'guest_user' => $conf['guest_id'], + 'filter_group' => (isset($_GET['group']) ? $_GET['group'] : null), ) ); diff --git a/admin/user_list_backend.php b/admin/user_list_backend.php index a1a0c01c7..c7f76782c 100644 --- a/admin/user_list_backend.php +++ b/admin/user_list_backend.php @@ -13,8 +13,8 @@ include_once(PHPWG_ROOT_PATH.'include/common.inc.php'); check_status(ACCESS_ADMINISTRATOR); -check_input_parameter('iDisplayStart', $_REQUEST, false, PATTERN_ID); -check_input_parameter('iDisplayLength', $_REQUEST, false, PATTERN_ID); +check_input_parameter('start', $_REQUEST, false, PATTERN_ID); +check_input_parameter('length', $_REQUEST, false, PATTERN_ID); /* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * Easy set variables @@ -50,38 +50,32 @@ $sTable = USERS_TABLE.' INNER JOIN '.USER_INFOS_TABLE.' AS ui ON '.$conf['user_f * Paging */ $sLimit = ""; -if ( isset( $_REQUEST['iDisplayStart'] ) && $_REQUEST['iDisplayLength'] != '-1' ) +if ( isset( $_REQUEST['start'] ) && $_REQUEST['length'] != '-1' ) { - $sLimit = "LIMIT ".$_REQUEST['iDisplayStart'].", ".$_REQUEST['iDisplayLength']; + $sLimit = "LIMIT ".$_REQUEST['start'].", ".$_REQUEST['length']; } - + +$sOrder = ""; /* * Ordering */ -if ( isset( $_REQUEST['iSortCol_0'] ) ) +if ( isset( $_REQUEST["order"][0]["column"] ) ) { $sOrder = "ORDER BY "; - for ( $i=0 ; $i intval($_REQUEST['sEcho']), + "sEcho" => $sEcho, "iTotalRecords" => $iTotal, "iTotalDisplayRecords" => $iFilteredTotal, - "aaData" => array() + "aaData" => array(), + "filtered_uids" => array() ); $user_ids = array(); +$filtered_uids = array(); -while ( $aRow = pwg_db_fetch_array( $rResult ) ) -{ - $user_ids[] = $aRow[ $conf['user_fields']['id'] ]; - - $row = array(); - for ( $i=0 ; $i $alias) - { - if ($aColumns[$i] == $real_name) - { - $colname = $alias; - } - } - - $row[] = $aRow[$colname]; - } - + $filtered_uids[] = $aRow[ $conf['user_fields']['id'] ]; + } +} else { + while ( $aRow = pwg_db_fetch_array( $rResult ) ) + { + $user_ids[] = $aRow[ $conf['user_fields']['id'] ]; + + $row = array(); + for ( $i=0 ; $i $alias) + { + if ($aColumns[$i] == $real_name) + { + $colname = $alias; + } + } + $row[] = $aRow[$colname]; + } + } + $output['aaData'][] = $row; } - $output['aaData'][] = $row; } +$output["filtered_uids"] = $filtered_uids; + // replace "recent_period" by the list of groups if (count($user_ids) > 0) { @@ -201,7 +244,7 @@ if (count($user_ids) > 0) $query = ' SELECT user_id, - GROUP_CONCAT(name ORDER BY name SEPARATOR ", ") AS groups + GROUP_CONCAT(name ORDER BY name SEPARATOR ", ") AS `groups` FROM '.USER_GROUP_TABLE.' JOIN `'.GROUPS_TABLE.'` ON id = group_id WHERE user_id IN ('.implode(',', $user_ids).') @@ -224,6 +267,6 @@ SELECT } $output = trigger_change('after_render_user_list', $output); - + echo json_encode( $output ); ?> \ No newline at end of file diff --git a/admin/user_perm.php b/admin/user_perm.php index 98b1aed38..b0384dd0c 100644 --- a/admin/user_perm.php +++ b/admin/user_perm.php @@ -18,6 +18,13 @@ include_once(PHPWG_ROOT_PATH.'admin/include/functions.php'); // +-----------------------------------------------------------------------+ check_status(ACCESS_ADMINISTRATOR); +if (!empty($_POST)) +{ + check_pwg_token(); + check_input_parameter('cat_true', $_POST, true, PATTERN_ID); + check_input_parameter('cat_false', $_POST, true, PATTERN_ID); +} + // +-----------------------------------------------------------------------+ // | variables init | // +-----------------------------------------------------------------------+ @@ -158,6 +165,8 @@ $query_false.= ' ;'; display_select_cat_wrapper($query_false,array(),'category_option_false'); +$template->assign('PWG_TOKEN', get_pwg_token()); + // +-----------------------------------------------------------------------+ // | sending html code | // +-----------------------------------------------------------------------+ diff --git a/docs/CONTRIBUTING.md b/docs/CONTRIBUTING.md index fc910aa39..5b967da8b 100644 --- a/docs/CONTRIBUTING.md +++ b/docs/CONTRIBUTING.md @@ -49,7 +49,7 @@ On GitHub you should see your branch (with commits) that you pushed before like Once you clicked the button "Compare & pull request", you have to give a name to the pull request. - + Example name of a pull request: `Issue 965 manage group deletion` diff --git a/include/calendar_base.class.php b/include/calendar_base.class.php index 0eecdeadb..1b59919a2 100644 --- a/include/calendar_base.class.php +++ b/include/calendar_base.class.php @@ -10,6 +10,14 @@ * @package functions\calendar */ +/** level of year view */ +define('CYEAR', 0); +/** level of week view in weekly view */ +define('CWEEK', 1); +/** level of month view in monthly view */ +define('CMONTH', 1); +/** level of day view */ +define('CDAY', 2); /** * Base class for monthly and weekly calendar styles diff --git a/include/calendar_monthly.class.php b/include/calendar_monthly.class.php index c577fc0ad..3172a56f8 100644 --- a/include/calendar_monthly.class.php +++ b/include/calendar_monthly.class.php @@ -12,14 +12,6 @@ include_once(PHPWG_ROOT_PATH.'include/calendar_base.class.php'); -/** level of year view */ -define('CYEAR', 0); -/** level of month view */ -define('CMONTH', 1); -/** level of day view */ -define('CDAY', 2); - - /** * Monthly calendar style (composed of years/months and days) */ diff --git a/include/calendar_weekly.class.php b/include/calendar_weekly.class.php index cca2f7f91..b9bb9beca 100644 --- a/include/calendar_weekly.class.php +++ b/include/calendar_weekly.class.php @@ -12,14 +12,6 @@ include_once(PHPWG_ROOT_PATH.'include/calendar_base.class.php'); -/** level of year view */ -define('CYEAR', 0); -/** level of week view */ -define('CWEEK', 1); -/** level of day view */ -define('CDAY', 2); - - /** * Weekly calendar style (composed of years/week in years and days in week) */ diff --git a/include/common.inc.php b/include/common.inc.php index b8c137ad6..c3e6cfe12 100644 --- a/include/common.inc.php +++ b/include/common.inc.php @@ -153,7 +153,7 @@ if (isset($conf['order_by_inside_category_custom'])) include(PHPWG_ROOT_PATH.'include/user.inc.php'); -if (in_array( substr($user['language'],0,2), array('fr','it','de','es','pl','hu','ru','nl','tr','da') ) ) +if (in_array( substr($user['language'],0,2), array('fr','it','de','es','pl','ru','nl','tr','da') ) ) { define('PHPWG_DOMAIN', substr($user['language'],0,2).'.piwigo.org'); } @@ -166,7 +166,7 @@ elseif ('pt_BR' == $user['language']) { else { define('PHPWG_DOMAIN', 'piwigo.org'); } -define('PHPWG_URL', 'http://'.PHPWG_DOMAIN); +define('PHPWG_URL', 'https://'.PHPWG_DOMAIN); if(isset($conf['alternative_pem_url']) and $conf['alternative_pem_url']!='') { @@ -174,7 +174,7 @@ if(isset($conf['alternative_pem_url']) and $conf['alternative_pem_url']!='') } else { - define('PEM_URL', 'http://'.PHPWG_DOMAIN.'/ext'); + define('PEM_URL', 'https://'.PHPWG_DOMAIN.'/ext'); } // language files diff --git a/include/config_default.inc.php b/include/config_default.inc.php index 7e8fe0506..cdc2c823a 100644 --- a/include/config_default.inc.php +++ b/include/config_default.inc.php @@ -271,6 +271,9 @@ $conf['update_notify_reminder_period'] = 7*24*60*60; // only the first page (value=false) $conf['album_description_on_all_pages'] = false; +// Number of years displayed in the history compare mode (for the years chart) +$conf['stat_compare_year_displayed'] = 5; + // +-----------------------------------------------------------------------+ // | email | // +-----------------------------------------------------------------------+ @@ -693,6 +696,9 @@ $conf['ws_max_users_per_page'] = 1000; // Display a link to subscribe to Piwigo Announcements Newsletter $conf['show_newsletter_subscription'] = true; +// Number Weeks displayed on activity chart on the dashboard +$conf['dashboard_activity_nb_weeks'] = 4; + // +-----------------------------------------------------------------------+ // | Filter | // +-----------------------------------------------------------------------+ @@ -841,6 +847,15 @@ $conf['batch_manager_images_per_page_global'] = 20; // unit mode. Must be among values {5, 10, 50} $conf['batch_manager_images_per_page_unit'] = 5; +// how many missing md5sum should Piwigo compute at once. +$conf['checksum_compute_blocksize'] = 50; + +// quicksearch engine: include all photos from sub-albums of any matching +// album. For example, if search is "bear", then we display photos from +// "bear/grizzly". When value changed, delete database cache files in +// _data/cache directory +$conf['quick_search_include_sub_albums'] = false; + // +-----------------------------------------------------------------------+ // | log | // +-----------------------------------------------------------------------+ diff --git a/include/constants.php b/include/constants.php index a842f6a6c..211f32c7c 100644 --- a/include/constants.php +++ b/include/constants.php @@ -7,11 +7,12 @@ // +-----------------------------------------------------------------------+ // Default settings -define('PHPWG_VERSION', '2.10.0beta2'); +define('PHPWG_VERSION', '11.0.0beta5'); define('PHPWG_DEFAULT_LANGUAGE', 'en_UK'); -// this constant is actually never used, the true default theme is the theme or user "guest", -// which is initialized with column user_infos.theme default value -// (see file install/piwigo_structure-mysql.sql) + +// this constant is only used in the upgrade process, the true default theme +// is the theme of user "guest", which is initialized with column user_infos.theme +// default value (see file install/piwigo_structure-mysql.sql) define('PHPWG_DEFAULT_TEMPLATE', 'modus'); define('PHPWG_THEMES_PATH', $conf['themes_dir'].'/'); diff --git a/include/dblayer/functions_mysql.inc.php b/include/dblayer/functions_mysql.inc.php index c5cf0df81..1ea188f42 100644 --- a/include/dblayer/functions_mysql.inc.php +++ b/include/dblayer/functions_mysql.inc.php @@ -563,13 +563,13 @@ function do_maintenance_all_tables() function pwg_db_concat($array) { - $string = implode($array, ','); + $string = implode(',', $array); return 'CONCAT('. $string.')'; } function pwg_db_concat_ws($array, $separator) { - $string = implode($array, ','); + $string = implode(',', $array); return 'CONCAT_WS(\''.$separator.'\','. $string.')'; } diff --git a/include/dblayer/functions_mysqli.inc.php b/include/dblayer/functions_mysqli.inc.php index 030a01a3d..ff5b8f229 100644 --- a/include/dblayer/functions_mysqli.inc.php +++ b/include/dblayer/functions_mysqli.inc.php @@ -128,6 +128,23 @@ function pwg_query($query) { global $mysqli, $conf, $page, $debug, $t2; + // starting with MySQL 8, rank becomes a reserved keyword, we need to escape it + if (preg_match('/\brank\b/', $query)) + { + // first we unescape what's already escaped (to avoid double escaping) + $query = preg_replace('/`rank`/', 'rank', $query); + // then we escape the keyword + $query = preg_replace('/\brank\b/', '`rank`', $query); + } + + if (preg_match('/\bgroups\b/', $query)) + { + // first we unescape what's already escaped (to avoid double escaping) + $query = preg_replace('/`groups`/', 'groups', $query); + // then we escape the keyword + $query = preg_replace('/\bgroups\b/', '`groups`', $query); + } + $start = microtime(true); ($result = $mysqli->query($query)) or my_error($query, $conf['die_on_sql_error']); @@ -286,14 +303,8 @@ function mass_updates($tablename, $dbfields, $datas, $flags=0) { $is_first = true; - // escape a reserved word - if ('groups' == $tablename) - { - $tablename = '`'.$tablename.'`'; - } - $query = ' -UPDATE '.$tablename.' +UPDATE '.protect_column_name($tablename).' SET '; foreach ($dbfields['update'] as $key) @@ -302,7 +313,7 @@ UPDATE '.$tablename.' if (isset($data[$key]) and $data[$key] != '') { - $query.= $separator.$key.' = \''.$data[$key].'\''; + $query.= $separator.protect_column_name($key).' = \''.$data[$key].'\''; } else { @@ -310,7 +321,7 @@ UPDATE '.$tablename.' { continue; // next field } - $query.= "$separator$key = NULL"; + $query.= $separator.protect_column_name($key).' = NULL'; } $is_first = false; } @@ -329,11 +340,11 @@ UPDATE '.$tablename.' } if (isset($data[$key])) { - $query.= $key.' = \''.$data[$key].'\''; + $query.= protect_column_name($key).' = \''.$data[$key].'\''; } else { - $query.= $key.' IS NULL'; + $query.= protect_column_name($key).' IS NULL'; } $is_first = false; } @@ -345,7 +356,7 @@ UPDATE '.$tablename.' else { // creation of the temporary table - $result = pwg_query('SHOW FULL COLUMNS FROM '.$tablename); + $result = pwg_query('SHOW FULL COLUMNS FROM '.protect_column_name($tablename)); $columns = array(); $all_fields = array_merge($dbfields['primary'], $dbfields['update']); @@ -353,7 +364,7 @@ UPDATE '.$tablename.' { if (in_array($row['Field'], $all_fields)) { - $column = $row['Field']; + $column = '`'.$row['Field'].'`'; $column.= ' '.$row['Type']; $nullable = true; @@ -397,7 +408,7 @@ CREATE TABLE '.$temporary_tablename.' // update of table by joining with temporary table $query = ' -UPDATE '.$tablename.' AS t1, '.$temporary_tablename.' AS t2 +UPDATE '.protect_column_name($tablename).' AS t1, '.$temporary_tablename.' AS t2 SET '. implode( "\n , ", @@ -434,14 +445,8 @@ function single_update($tablename, $datas, $where, $flags=0) $is_first = true; - // escape a reserved word - if ('groups' == $tablename) - { - $tablename = '`'.$tablename.'`'; - } - $query = ' -UPDATE '.$tablename.' +UPDATE '.protect_column_name($tablename).' SET '; foreach ($datas as $key => $value) @@ -450,7 +455,7 @@ UPDATE '.$tablename.' if (isset($value) and $value !== '') { - $query.= $separator.$key.' = \''.$value.'\''; + $query.= $separator.protect_column_name($key).' = \''.$value.'\''; } else { @@ -458,7 +463,7 @@ UPDATE '.$tablename.' { continue; // next field } - $query.= "$separator$key = NULL"; + $query.= $separator.protect_column_name($key).' = NULL'; } $is_first = false; } @@ -478,11 +483,11 @@ UPDATE '.$tablename.' } if (isset($value)) { - $query.= $key.' = \''.$value.'\''; + $query.= protect_column_name($key).' = \''.$value.'\''; } else { - $query.= $key.' IS NULL'; + $query.= protect_column_name($key).' IS NULL'; } $is_first = false; } @@ -527,15 +532,9 @@ function mass_inserts($table_name, $dbfields, $datas, $options=array()) if ($first) { - // escape a reserved word - if ('groups' == $table_name) - { - $table_name = '`'.$table_name.'`'; - } - $query = ' -INSERT '.$ignore.' INTO '.$table_name.' - ('.implode(',', $dbfields).') +INSERT '.$ignore.' INTO '.protect_column_name($table_name).' + ('.implode(',', array_map('protect_column_name', $dbfields)).') VALUES'; $first = false; } @@ -574,20 +573,22 @@ INSERT '.$ignore.' INTO '.$table_name.' * * @param string $table_name * @param array $data + * @param array $options + * - boolean ignore - use "INSERT IGNORE" */ -function single_insert($table_name, $data) +function single_insert($table_name, $data, $options=array()) { + $ignore = ''; + if (isset($options['ignore']) and $options['ignore']) + { + $ignore = 'IGNORE'; + } + if (count($data) != 0) { - // escape a reserved word - if ('groups' == $table_name) - { - $table_name = '`'.$table_name.'`'; - } - $query = ' -INSERT INTO '.$table_name.' - ('.implode(',', array_keys($data)).') +INSERT '.$ignore.' INTO '.protect_column_name($table_name).' + ('.implode(',', array_map('protect_column_name', array_keys($data))).') VALUES'; $query .= '('; @@ -618,6 +619,15 @@ INSERT INTO '.$table_name.' } } +function protect_column_name($column_name) +{ + if ('`' != $column_name[0]) + { + $column_name = '`'.$column_name.'`'; + } + + return $column_name; +} /** * Do maintenance on all Piwigo tables @@ -677,13 +687,13 @@ function do_maintenance_all_tables() function pwg_db_concat($array) { - $string = implode($array, ','); + $string = implode(',', $array); return 'CONCAT('. $string.')'; } function pwg_db_concat_ws($array, $separator) { - $string = implode($array, ','); + $string = implode(',', $array); return 'CONCAT_WS(\''.$separator.'\','. $string.')'; } diff --git a/include/functions.inc.php b/include/functions.inc.php index 1a2fc2f5e..c9124e70e 100644 --- a/include/functions.inc.php +++ b/include/functions.inc.php @@ -2085,14 +2085,17 @@ function get_privacy_level_options() /** - * return the branch from the version. For example version 2.2.4 is for branch 2.2 + * return the branch from the version. For example version 11.1.2 is on branch 11 * * @param string $version * @return string */ function get_branch_from_version($version) { - return implode('.', array_slice(explode('.', $version), 0, 2)); + // the algorithm is a bit complicated to just retrieve the first digits before + // the first ".". It's because before version 11.0.0, we used to take the 2 first + // digits, ie version 2.2.4 was on branch 2.2 + return implode('.', array_slice(explode('.', $version), 0, 1)); } /** diff --git a/include/functions_category.inc.php b/include/functions_category.inc.php index 22997ee2f..d0124aac9 100644 --- a/include/functions_category.inc.php +++ b/include/functions_category.inc.php @@ -122,8 +122,8 @@ WHERE '.$where.' ), 'URL' => make_index_url(array('category' => $row)), 'LEVEL' => substr_count($row['global_rank'], '.') + 1, - 'SELECTED' => $selected_category['id'] == $row['id'] ? true : false, - 'IS_UPPERCAT' => $selected_category['id_uppercat'] == $row['id'] ? true : false, + 'SELECTED' => ($selected_category!==null && $selected_category['id'] == $row['id']) ? true : false, + 'IS_UPPERCAT' => ($selected_category!==null && $selected_category['id_uppercat'] == $row['id']) ? true : false, ) ); if ($conf['index_new_icon']) @@ -602,4 +602,192 @@ function remove_computed_category(&$cats, $cat) unset($cats[$cat['cat_id']]); } -?> \ No newline at end of file +/** + * Return the list of image ids corresponding to given categories. + * AND & OR mode supported. + * + * @param int[] $cat_ids + * @param string mode + * @param string $extra_images_where_sql - optionally apply a sql where filter to retrieved images + * @param string $order_by - optionally overwrite default photo order + * @param bool $user_permissions + * @return array + */ +function get_image_ids_for_categories($cat_ids, $mode='AND', $extra_images_where_sql='', $order_by='', $use_permissions=true) +{ + global $conf; + + if (empty($cat_ids)) + { + return array(); + } + + $query = ' +SELECT id + FROM '.IMAGES_TABLE.' i + INNER JOIN '.IMAGE_CATEGORY_TABLE.' ic ON id=ic.image_id + WHERE category_id IN ('.implode(',', $cat_ids).')'; + + if ($use_permissions) + { + $query.= get_sql_condition_FandF( + array( + 'forbidden_categories' => 'category_id', + 'visible_categories' => 'category_id', + 'visible_images' => 'id' + ), + "\n AND" + ); + } + + $query.= (empty($extra_images_where_sql) ? '' : " \nAND (".$extra_images_where_sql.')').' + GROUP BY id'; + + if ($mode=='AND' and count($cat_ids)>1) + { + $query .= ' + HAVING COUNT(DISTINCT category_id)='.count($cat_ids); + } + $query .= "\n".(empty($order_by) ? $conf['order_by'] : $order_by); + + return query2array($query, null, 'id'); +} + +/** + * Return a list of categories corresponding to given items. + * + * @param int[] $items + * @param int $max + * @param int[] $excluded_cat_ids + * @return array [id, name, counter, url_name] + */ +function get_common_categories($items, $max=null, $excluded_cat_ids=array()) +{ + if (empty($items)) + { + return array(); + } + + $query = ' +SELECT + c.id, + c.uppercats, + count(*) AS counter + FROM '.IMAGE_CATEGORY_TABLE.' + INNER JOIN '.CATEGORIES_TABLE.' c ON category_id = id + WHERE image_id IN ('.implode(',', $items).')'; + + if (!empty($excluded_cat_ids)) + { + $query.=' + AND category_id NOT IN ('.implode(',', $excluded_cat_ids).')'; + } + + $query .=' + GROUP BY c.id + ORDER BY '; + if (isset($max)) + { + $query .= 'counter DESC + LIMIT '.$max; + } + else + { + $query .= 'NULL'; + } + + $result = pwg_query($query); + $cats = array(); + while ($row = pwg_db_fetch_assoc($result)) + { + $cats[ $row['id'] ] = $row; + } + + return $cats; +} + +function get_related_categories_menu($items, $excluded_cat_ids=array()) +{ + global $page; + + $common_cats = get_common_categories($items, null, $excluded_cat_ids); + // echo ''; print_r($common_cats); echo ''; + + if (count($common_cats) == 0) + { + return array(); + } + + $cat_ids = array(); + // now we add the upper categories and useful values such as depth level and url + foreach ($common_cats as $cat) + { + foreach (explode(',', $cat['uppercats']) as $uppercat) + { + @$cat_ids[$uppercat]++; + } + } + + $query = ' +SELECT + id, + name, + permalink, + id_uppercat, + uppercats, + global_rank + FROM '.CATEGORIES_TABLE.' + WHERE id IN ('.implode(',', array_keys($cat_ids)).') +;'; + $cats = query2array($query); + usort($cats, 'global_rank_compare'); + + $index_of_cat = array(); + + foreach ($cats as $idx => $cat) + { + $index_of_cat[ $cat['id'] ] = $idx; + $cats[$idx]['LEVEL'] = substr_count($cat['global_rank'], '.') + 1; + + // if the category is directly linked to the items, we add an URL + counter + if (isset($common_cats[ $cat['id'] ])) + { + $cats[$idx]['count_images'] = $common_cats[ $cat['id'] ]['counter']; + + $url_params = array(); + if (isset($page['category'])) + { + $url_params['category'] = $page['category']; + + $url_params['combined_categories'] = array($cat); + if (isset($page['combined_categories'])) + { + $url_params['combined_categories'] = array_merge($page['combined_categories'], array($cat)); + } + } + else + { + $url_params['category'] = $cat; + } + + $cats[$idx]['url'] = make_index_url($url_params); + } + + // let's find how many sub-categories we have for each category. 3 options: + // 1. direct sub-albums + // 2. total indirect sub-albums + // 3. number of sub-albums containing photos + // + // Option 3 seems more appropriate here. + if (!empty($cat['id_uppercat']) and @$cats[$idx]['count_images'] > 0) + { + foreach (array_slice(explode(',', $cat['uppercats']), 0, -1) as $uppercat_id) + { + @$cats[ $index_of_cat[ $uppercat_id ] ]['count_categories']++; + } + } + } + + return $cats; +} +?> diff --git a/include/functions_cookie.inc.php b/include/functions_cookie.inc.php index be9853d27..0eb159eb7 100644 --- a/include/functions_cookie.inc.php +++ b/include/functions_cookie.inc.php @@ -54,7 +54,7 @@ function cookie_path() $scr = substr($scr,0,strrpos( $scr,'/')); // add a trailing '/' if needed - if ((strlen($scr) == 0) or ($scr{strlen($scr)-1} !== '/')) + if ((strlen($scr) == 0) or ($scr[strlen($scr)-1] !== '/')) { $scr .= '/'; } diff --git a/include/functions_html.inc.php b/include/functions_html.inc.php index 19fdad512..01c54e79d 100644 --- a/include/functions_html.inc.php +++ b/include/functions_html.inc.php @@ -418,7 +418,7 @@ function get_tags_content_title() .trigger_change('render_tag_name', $page['tags'][$i]['name'], $page['tags'][$i]) .''; - if (count($page['tags']) > 2) + if (count($page['tags']) > 1) { $other_tags = $page['tags']; unset($other_tags[$i]); @@ -429,17 +429,67 @@ function get_tags_content_title() ); $title.= - '' + .'" alt="x" style="vertical-align:bottom;" >' + .'' .''; } } return $title; } +/** + * Returns the breadcrumb to be displayed above thumbnails on combined categories page. + * + * @return string + */ +function get_combined_categories_content_title() +{ + global $page; + + $title = l10n('Albums').' '; + + $is_first = true; + $all_categories = array_merge(array($page['category']), $page['combined_categories']); + foreach ($all_categories as $idx => $category) + { + $title.= $is_first ? '' : ' + '; + $is_first = false; + + $title.= get_cat_display_name(array($category)); + + if (count($all_categories) > 1) // should be always the case + { + $other_cats = $all_categories; + unset($other_cats[$idx]); + + $params = array( + 'category' => array_shift($other_cats), + ); + + if (count($other_cats) > 0) + { + $params['combined_categories'] = $other_cats; + } + $remove_url = make_index_url($params); + + $title.= + '' + .'' + .''; + } + } + + return $title; +} + /** * Sets the http status header (200,401,...) * @param int $code @@ -500,6 +550,7 @@ function register_default_menubar_blocks($menu_ref_arr) $menu->register_block( new RegisteredBlock( 'mbTags', 'Related tags', 'piwigo')); $menu->register_block( new RegisteredBlock( 'mbSpecials', 'Specials', 'piwigo')); $menu->register_block( new RegisteredBlock( 'mbMenu', 'Menu', 'piwigo')); + $menu->register_block( new RegisteredBlock( 'mbRelatedCategories', 'Related albums', 'piwigo') ); // We hide the quick identification menu on the identification page. It // would be confusing. diff --git a/include/functions_search.inc.php b/include/functions_search.inc.php index 379bb93e2..53700b4bc 100644 --- a/include/functions_search.inc.php +++ b/include/functions_search.inc.php @@ -1119,7 +1119,7 @@ SELECT image_id FROM '.IMAGE_TAG_TABLE.' function qsearch_get_categories(QExpression $expr, QResults $qsr) { - global $user; + global $user, $conf; $token_cat_ids = $qsr->cat_iids = array_fill(0, count($expr->stokens), array() ); $all_cats = array(); @@ -1171,6 +1171,18 @@ SELECT if (!empty($cat_ids)) { + if ($conf['quick_search_include_sub_albums']) + { + $query = ' +SELECT + id + FROM '.CATEGORIES_TABLE.' + INNER JOIN '.USER_CACHE_CATEGORIES_TABLE.' ON id = cat_id and user_id = '.$user['id'].' + WHERE id IN ('.implode(',', get_subcat_ids($cat_ids)) .') +;'; + $cat_ids = query2array($query, null, 'id'); + } + $query = ' SELECT image_id FROM '.IMAGE_CATEGORY_TABLE.' WHERE category_id IN ('.implode(',',$cat_ids).') diff --git a/include/functions_tag.inc.php b/include/functions_tag.inc.php index 90734c321..00579f578 100644 --- a/include/functions_tag.inc.php +++ b/include/functions_tag.inc.php @@ -308,4 +308,18 @@ SELECT * return query2array($query); } +function tags_id_compare($a, $b) +{ + return ($a['id'] < $b['id']) ? -1 : 1; +} + +function tags_counter_compare($a, $b) +{ + if ($a['counter'] == $b['counter']) + { + return tags_id_compare($a, $b); + } + + return ($a['counter'] < $b['counter']) ? +1 : -1; +} ?> \ No newline at end of file diff --git a/include/functions_url.inc.php b/include/functions_url.inc.php index a0637f8c3..676651b51 100644 --- a/include/functions_url.inc.php +++ b/include/functions_url.inc.php @@ -348,6 +348,27 @@ function make_section_in_url($params) { $section_string.= $params['category']['permalink']; } + + if (isset($params['combined_categories'])) + { + foreach ($params['combined_categories'] as $category) + { + $section_string.= '/'; + + if ( empty($category['permalink']) ) + { + $section_string.= $category['id']; + if ( $conf['category_url_style']=='id-name' ) + { + $section_string.= '-'.str2url($category['name']); + } + } + else + { + $section_string.= $category['permalink']; + } + } + } } break; @@ -421,13 +442,35 @@ function parse_section_url( $tokens, &$next_token) $page['section'] = 'categories'; $next_token++; - if (isset($tokens[$next_token]) ) + $i = $next_token; + $loop_counter = 0; + + while (isset($tokens[$next_token])) { + if ($loop_counter++ > count($tokens)+10){die('infinite loop?');} + + if ( + strpos($tokens[$next_token], 'created-')===0 + or strpos($tokens[$next_token], 'posted-')===0 + or strpos($tokens[$next_token], 'start-')===0 + ) + { + break; + } + if (preg_match('/^(\d+)(?:-(.+))?$/', $tokens[$next_token], $matches)) { if ( isset($matches[2]) ) $page['hit_by']['cat_url_name'] = $matches[2]; - $page['category'] = $matches[1]; + + if (!isset($page['category'])) + { + $page['category'] = $matches[1]; + } + else + { + $page['combined_categories'][] = $matches[1]; + } $next_token++; } else @@ -460,8 +503,16 @@ function parse_section_url( $tokens, &$next_token) if ( isset($cat_id) ) { $next_token += $perma_index+1; - $page['category'] = $cat_id; - $page['hit_by']['cat_permalink'] = $maybe_permalinks[$perma_index]; + + if (!isset($page['category'])) + { + $page['category'] = $cat_id; + $page['hit_by']['cat_permalink'] = $maybe_permalinks[$perma_index]; + } + else + { + $page['combined_categories'][] = $cat_id; + } } else { @@ -480,6 +531,24 @@ function parse_section_url( $tokens, &$next_token) } $page['category']=$result; } + + if (isset($page['combined_categories'])) + { + $combined_categories = array(); + + foreach ($page['combined_categories'] as $cat_id) + { + $result = get_cat_info($cat_id); + if (empty($result)) + { + page_not_found(l10n('Requested album does not exist')); + } + + $combined_categories[] = $result; + } + + $page['combined_categories'] = $combined_categories; + } } elseif ( 'tags' == @$tokens[$next_token] ) { diff --git a/include/functions_user.inc.php b/include/functions_user.inc.php index 593d17aef..a7b4ac910 100644 --- a/include/functions_user.inc.php +++ b/include/functions_user.inc.php @@ -170,7 +170,7 @@ function register_user($login, $password, $mail_address, $notify_admin=true, &$e ); // if no error until here, registration of the user - if (count($errors) == 0) + if (empty($errors)) { $insert = array( $conf['user_fields']['username'] => pwg_db_real_escape_string($login), @@ -298,10 +298,13 @@ function build_user($user_id, $use_cache=true) $user['internal_status']['guest_must_be_guest'] = true; } - // Check user theme - if (!isset($user['theme_name'])) + // Check user theme. 2 possible problems: + // 1. the user_infos.theme was not found in the themes table, thus themes.name is null + // 2. the theme is not really installed on the filesystem + if (!isset($user['theme_name']) or !check_theme_installed($user['theme'])) { $user['theme'] = get_default_theme(); + $user['theme_name'] = $user['theme']; } return $user; @@ -777,7 +780,7 @@ function get_default_theme() // let's find the first available theme $active_themes = array_keys(get_pwg_themes()); - return $active_themes[0]; + return isset($active_themes[0]) ? $active_themes[0] : 'default'; } /** @@ -935,10 +938,7 @@ function log_user($user_id, $remember_me) if ( session_id()!="" ) { // we regenerate the session for security reasons // see http://www.acros.si/papers/session_fixation.pdf - if (version_compare(PHP_VERSION, '7') <= 0) - { - session_regenerate_id(true); - } + session_regenerate_id(true); } else { @@ -1099,6 +1099,8 @@ function pwg_login($success, $username, $password, $remember_me) pwg_session_gc(); global $conf; + + $user_found = false; // retrieving the encrypted password of the login submitted $query = ' SELECT '.$conf['user_fields']['id'].' AS id, @@ -1106,8 +1108,31 @@ SELECT '.$conf['user_fields']['id'].' AS id, FROM '.USERS_TABLE.' WHERE '.$conf['user_fields']['username'].' = \''.pwg_db_real_escape_string($username).'\' ;'; + $row = pwg_db_fetch_assoc(pwg_query($query)); if (isset($row['id']) and $conf['password_verify']($password, $row['password'], $row['id'])) + { + $user_found = true; + } + + // If we didn't find a matching user name, we search for email address + if (!$user_found) + { + $query = ' + SELECT '.$conf['user_fields']['id'].' AS id, + '.$conf['user_fields']['password'].' AS password + FROM '.USERS_TABLE.' + WHERE '.$conf['user_fields']['email'].' = \''.pwg_db_real_escape_string($username).'\' + ;'; + + $row = pwg_db_fetch_assoc(pwg_query($query)); + if (isset($row['id']) and $conf['password_verify']($password, $row['password'], $row['id'])) + { + $user_found = true; + } + } + + if ($user_found) { log_user($row['id'], $remember_me); trigger_notify('login_success', stripslashes($username)); @@ -1604,6 +1629,25 @@ UPDATE '.USER_AUTH_KEYS_TABLE.' pwg_query($query); } +/** + * Deactivates password reset key + * + * @since 11 + * @param int $user_id + * @return null + */ +function deactivate_password_reset_key($user_id) +{ + single_update( + USER_INFOS_TABLE, + array( + 'activation_key' => null, + 'activation_key_expire' => null, + ), + array('user_id' => $user_id) + ); +} + /** * Gets the last visit (datetime) of a user, based on history table * diff --git a/include/jshrink.class.php b/include/jshrink.class.php index b32807c4a..0229bd8a9 100644 --- a/include/jshrink.class.php +++ b/include/jshrink.class.php @@ -192,7 +192,7 @@ class JShrink_Minifier case "\n": // if the next line is something that can't stand alone // preserve the newline - if(strpos('(-+{[@', $this->b) !== false) + if($this->b !== false && strpos('(-+{[@', $this->b) !== false) { echo $this->a; $this->saveString(); @@ -239,7 +239,7 @@ class JShrink_Minifier if($this->a == '/' && ($this->b == '\'' || $this->b == '"')) { $this->saveRegex(); - continue; + continue 3; } echo $this->a; diff --git a/include/menubar.inc.php b/include/menubar.inc.php index fdb106b45..46fd265bc 100644 --- a/include/menubar.inc.php +++ b/include/menubar.inc.php @@ -101,6 +101,34 @@ function initialize_menu() $block->template = 'menubar_categories.tpl'; } +//------------------------------------------------------------ related categories + $block = $menu->get_block('mbRelatedCategories'); + + if ($block != null and !empty($page['items'])) + { + $exclude_cat_ids = array(); + if (isset($page['category'])) + { + $exclude_cat_ids = array($page['category']['id']); + if (isset($page['combined_categories'])) + { + foreach ($page['combined_categories'] as $cat) + { + $exclude_cat_ids[] = $cat['id']; + } + } + } + + $block->data = array( + 'MENU_CATEGORIES' => get_related_categories_menu($page['items'], $exclude_cat_ids), + ); + + if (!empty($block->data['MENU_CATEGORIES']) ) + { + $block->template = 'menubar_related_categories.tpl'; + } + } + //------------------------------------------------------------------------ tags $block = $menu->get_block('mbTags'); if ( $block!=null and 'picture' != script_basename() ) @@ -138,6 +166,8 @@ function initialize_menu() else if ($conf['menubar_tag_cloud_content'] == 'always_all' or ($conf['menubar_tag_cloud_content'] == 'all_or_current' and empty($page['items'])) ) { $tags = get_available_tags(); + usort($tags, 'tags_counter_compare'); + $tags = array_slice($tags, 0, $conf['menubar_tag_cloud_items_number']); foreach ($tags as $tag) { $block->data[] = array_merge( diff --git a/include/no_photo_yet.inc.php b/include/no_photo_yet.inc.php index 35f302b88..560afc34b 100644 --- a/include/no_photo_yet.inc.php +++ b/include/no_photo_yet.inc.php @@ -13,6 +13,7 @@ if ( !(defined('IN_ADMIN') and IN_ADMIN) // no message inside administration and script_basename() != 'identification' // keep the ability to login + and script_basename() != 'password' // keep the ability to reset password and script_basename() != 'ws' // keep the ability to discuss with web API and script_basename() != 'popuphelp' // keep the ability to display help popups and !isset($_SESSION['no_photo_yet']) // temporary hide diff --git a/include/page_header.php b/include/page_header.php index d007a5961..f39ee9b20 100644 --- a/include/page_header.php +++ b/include/page_header.php @@ -13,6 +13,12 @@ $template->set_filenames(array('header'=>'header.tpl')); trigger_notify('loc_begin_page_header'); +$show_mobile_app_banner = conf_get_param('show_mobile_app_banner_in_gallery', false); +if (defined('IN_ADMIN') and IN_ADMIN) +{ + $show_mobile_app_banner = conf_get_param('show_mobile_app_banner_in_admin', true); +} + $template->assign( array( 'GALLERY_TITLE' => @@ -39,6 +45,8 @@ $template->assign( 'U_HOME' => get_gallery_home_url(), 'LEVEL_SEPARATOR' => $conf['level_separator'], + + 'SHOW_MOBILE_APP_BANNER' => $show_mobile_app_banner, )); diff --git a/include/section_init.inc.php b/include/section_init.inc.php index 586aec7fc..60f439268 100644 --- a/include/section_init.inc.php +++ b/include/section_init.inc.php @@ -211,7 +211,11 @@ $forbidden = get_sql_condition_FandF( // +-----------------------------------------------------------------------+ if ('categories' == $page['section']) { - if (isset($page['category'])) + if (isset($page['combined_categories'])) + { + $page['title'] = get_combined_categories_content_title(); + } + elseif (isset($page['category'])) { $page = array_merge( $page, @@ -231,7 +235,17 @@ if ('categories' == $page['section']) } // GET IMAGES LIST - if + if (isset($page['combined_categories'])) + { + $cat_ids = array($page['category']['id']); + foreach ($page['combined_categories'] as $category) + { + $cat_ids[] = $category['id']; + } + + $page['items'] = get_image_ids_for_categories($cat_ids); + } + elseif ( $page['startcat'] == 0 and (!isset($page['chronology_field'])) and // otherwise the calendar will requery all subitems @@ -600,7 +614,7 @@ if ( $filter['enabled'] ) } // see if we need a redirect because of a permalink -if ( 'categories'==$page['section'] and isset($page['category']) ) +if ( 'categories'==$page['section'] and isset($page['category']) and !isset($page['combined_categories'])) { $need_redirect=false; if ( empty($page['category']['permalink']) ) diff --git a/include/smarty/libs/sysplugins/smarty_internal_runtime_updatescope.php b/include/smarty/libs/sysplugins/smarty_internal_runtime_updatescope.php index 5a125a4a7..6897fb33e 100644 --- a/include/smarty/libs/sysplugins/smarty_internal_runtime_updatescope.php +++ b/include/smarty/libs/sysplugins/smarty_internal_runtime_updatescope.php @@ -47,7 +47,9 @@ class Smarty_Internal_Runtime_UpdateScope while (isset($ptr->parent)) { $ptr = $ptr->parent; } - $ptr->tpl_vars[$varName] = $tpl->tpl_vars[$varName]; + if ($ptr) { + $ptr->tpl_vars[$varName] = $tpl->tpl_vars[$varName]; + } } } } diff --git a/include/ws_functions/pwg.categories.php b/include/ws_functions/pwg.categories.php index 0c96972a9..89c9b3224 100644 --- a/include/ws_functions/pwg.categories.php +++ b/include/ws_functions/pwg.categories.php @@ -870,7 +870,7 @@ SELECT * ;'; $category = pwg_db_fetch_assoc(pwg_query($query)); - return get_category_representant_properties($category['representative_picture_id']); + return get_category_representant_properties($category['representative_picture_id'], IMG_SMALL); } /** diff --git a/include/ws_functions/pwg.groups.php b/include/ws_functions/pwg.groups.php index a64c8df31..c0c664ba1 100644 --- a/include/ws_functions/pwg.groups.php +++ b/include/ws_functions/pwg.groups.php @@ -61,7 +61,7 @@ SELECT */ function ws_groups_add($params, &$service) { - $params['name'] = pwg_db_real_escape_string($params['name']); + $params['name'] = pwg_db_real_escape_string(strip_tags(stripslashes($params['name']))); // is the name not already used ? $query = ' @@ -104,46 +104,9 @@ function ws_groups_delete($params, &$service) return new PwgError(403, 'Invalid security token'); } - $group_id_string = implode(',', $params['group_id']); - - // destruction of the access linked to the group - $query = ' -DELETE - FROM '. GROUP_ACCESS_TABLE .' - WHERE group_id IN('. $group_id_string .') -;'; - pwg_query($query); - - // destruction of the users links for this group - $query = ' -DELETE - FROM '. USER_GROUP_TABLE .' - WHERE group_id IN('. $group_id_string .') -;'; - pwg_query($query); - - $query = ' -SELECT id, name - FROM `'. GROUPS_TABLE .'` - WHERE id IN('. $group_id_string .') -;'; - - $group_list = query2array($query, 'id', 'name'); - $groupnames = array_values($group_list); - $groupids = array_keys($group_list); - - // destruction of the group - $query = ' -DELETE - FROM `'. GROUPS_TABLE .'` - WHERE id IN('. $group_id_string .') -;'; - pwg_query($query); - - trigger_notify('delete_group', $groupids); - pwg_activity('group', $groupids, 'delete'); - include_once(PHPWG_ROOT_PATH.'admin/include/functions.php'); + $groupnames = array_values(delete_groups($params['group_id'])); + invalidate_user_cache(); return new PwgNamedArray($groupnames, 'group_deleted'); @@ -180,13 +143,14 @@ SELECT COUNT(*) if (!empty($params['name'])) { - $params['name'] = pwg_db_real_escape_string($params['name']); + $params['name'] = pwg_db_real_escape_string(strip_tags(stripslashes($params['name']))); // is the name not already used ? $query = ' SELECT COUNT(*) FROM `'. GROUPS_TABLE .'` WHERE name = \''. $params['name'] .'\' + AND id != '.$params['group_id'].' ;'; list($count) = pwg_db_fetch_row(pwg_query($query)); if ($count != 0) @@ -251,8 +215,7 @@ SELECT COUNT(*) mass_inserts( USER_GROUP_TABLE, array('group_id', 'user_id'), - $inserts, - array('ignore'=>true) + $inserts ); include_once(PHPWG_ROOT_PATH.'admin/include/functions.php'); @@ -264,6 +227,187 @@ SELECT COUNT(*) return $service->invoke('pwg.groups.getList', array('group_id' => $params['group_id'])); } +/** + * API method + * Merge groups in one other group + * @param mixed[] $params + * @option int destination_group_id + * @option int[] merge_group_id + */ +function ws_groups_merge($params, &$service) { + + if (get_pwg_token() != $params['pwg_token']) + { + return new PwgError(403, 'Invalid security token'); + } + + $all_groups = $params['merge_group_id']; + array_push($all_groups, $params['destination_group_id']); + + $all_groups = array_unique($all_groups); + $merge_group = array_diff($params['merge_group_id'], array($params['destination_group_id'])); + $merge_group_object = $service->invoke('pwg.groups.getList', array('group_id' => $params['merge_group_id'])); + + $query = ' +SELECT COUNT(*) + FROM `'. GROUPS_TABLE .'` + WHERE id in ('.implode(',', $all_groups) .') +;'; + list($count) = pwg_db_fetch_row(pwg_query($query)); + if ($count != count($all_groups)) + { + return new PwgError(WS_ERR_INVALID_PARAM, 'All groups does not exist.'); + } + + $user_in_merge_groups = array(); + $user_in_dest = array(); + $user_to_add = array(); + + $query = ' +SELECT DISTINCT(user_id) + FROM `'. USER_GROUP_TABLE .'` + WHERE + group_id IN ('.implode(',', $merge_group) .') +;'; + $user_in_merge_groups = query2array($query, null, 'user_id'); + + $query = ' +SELECT user_id + FROM `'. USER_GROUP_TABLE .'` + WHERE group_id = '.$params['destination_group_id'].' +;'; + + $user_in_dest = query2array($query, null, 'user_id');; + + + $user_to_add = array_diff($user_in_merge_groups, $user_in_dest); + + $inserts = array(); + foreach ($user_to_add as $user) + { + $inserts[] = array( + 'group_id' => $params['destination_group_id'], + 'user_id' => $user, + ); + } + + mass_inserts( + USER_GROUP_TABLE, + array('group_id', 'user_id'), + $inserts, + array('ignore'=>true) + ); + + include_once(PHPWG_ROOT_PATH.'admin/include/functions.php'); + invalidate_user_cache(); + + pwg_activity('group', $params['destination_group_id'], 'edit'); + foreach ($user_to_add as $user_id) + { + pwg_activity('user', $user_id, 'edit', array("associated" => $params['destination_group_id'])); + } + + include_once(PHPWG_ROOT_PATH.'admin/include/functions.php'); + + delete_groups($merge_group); + + return array( + "destination_group" => $service->invoke('pwg.groups.getList', array('group_id' => $params['destination_group_id'])), + "deleted_group" => $merge_group_object + ); +} + +/** + * API method + * Create a copy of a group + * @param mixed[] $params + * @option int group_id + * @option string copy_name + */ +function ws_groups_duplicate($params, &$service) { + + if (get_pwg_token() != $params['pwg_token']) + { + return new PwgError(403, 'Invalid security token'); + } + + $query = ' +SELECT COUNT(*) + FROM `'.GROUPS_TABLE.'` + WHERE name = \''.$params['copy_name'].'\' +;'; + list($count) = pwg_db_fetch_row(pwg_query($query)); + if ($count != 0) + { + return new PwgError(WS_ERR_INVALID_PARAM, 'This name is already used by another group.'); + } + + $query = ' +SELECT COUNT(*) + FROM `'. GROUPS_TABLE .'` + WHERE id = '.$params["group_id"].' +;'; + list($count) = pwg_db_fetch_row(pwg_query($query)); + if ($count == 0) + { + return new PwgError(WS_ERR_INVALID_PARAM, 'This group does not exist.'); + } + + $query = ' +SELECT is_default + FROM `'. GROUPS_TABLE .'` + WHERE id = '.$params['group_id'].' +;'; + + $is_default = pwg_db_fetch_row(pwg_query($query))[0]; + + // creating the group + single_insert( + GROUPS_TABLE, + array( + 'name' => $params['copy_name'], + 'is_default' => boolean_to_string($is_default), + ) + ); + $inserted_id = pwg_db_insert_id(); + + pwg_activity('group', $inserted_id, 'add'); + + $query = ' + SELECT user_id + FROM `'. USER_GROUP_TABLE .'` + WHERE group_id = '.$params['group_id'].' + ;'; + + $users = query2array($query, null, 'user_id'); + + $inserts = array(); + foreach ($users as $user) + { + $inserts[] = array( + 'group_id' => $inserted_id, + 'user_id' => $user, + ); + } + + mass_inserts( + USER_GROUP_TABLE, + array('group_id', 'user_id'), + $inserts, + array('ignore'=>true) + ); + + include_once(PHPWG_ROOT_PATH.'admin/include/functions.php'); + invalidate_user_cache(); + + foreach ($users as $user_id) + { + pwg_activity('user', $user_id, 'edit', array("associated" => $params['group_id'])); + } + + return $service->invoke('pwg.groups.getList', array('group_id' => $inserted_id)); +} + /** * API method * Removes user(s) from a group diff --git a/include/ws_functions/pwg.images.php b/include/ws_functions/pwg.images.php index 62a4a9bd6..ef7286b9f 100644 --- a/include/ws_functions/pwg.images.php +++ b/include/ws_functions/pwg.images.php @@ -1348,6 +1348,10 @@ function ws_images_upload($params, $service) $fileName = uniqid("file_"); } + // change the name of the file in the buffer to avoid any unexpected + // extension. Function add_uploaded_file will eventually clean the mess. + $fileName = md5($fileName); + $filePath = $upload_dir.DIRECTORY_SEPARATOR.$fileName; // Chunking might be enabled @@ -1442,6 +1446,294 @@ SELECT } } +/** + * API method + * Adds a chunk of an image. Chunks don't have to be uploaded in the right sort order. When the last chunk is added, they get merged. + * @since 11 + * @param mixed[] $params + * @option string username + * @option string password + * @option chunk int number of the chunk + * @option string chunk_sum MD5 sum of the chunk + * @option chunks int total number of chunks for this image + * @option string original_sum MD5 sum of the final image + * @option int[] category + * @option string filename + * @option string name (optional) + * @option string author (optional) + * @option string comment (optional) + * @option string date_creation (optional) + * @option int level + * @option string tag_ids (optional) - "tag_id,tag_id" + * @option int image_id (optional) + */ +function ws_images_uploadAsync($params, &$service) +{ + global $conf, $user, $logger; + + // additional check for some parameters + if (!preg_match('/^[a-fA-F0-9]{32}$/', $params['original_sum'])) + { + return new PwgError(WS_ERR_INVALID_PARAM, 'Invalid original_sum'); + } + + if (!try_log_user($params['username'], $params['password'], false)) + { + return new PwgError(999, 'Invalid username/password'); + } + + // build $user + // include(PHPWG_ROOT_PATH.'include/user.inc.php'); + $user = build_user($user['id'], false); + + if (!is_admin()) + { + return new PwgError(401, 'Admin status is required.'); + } + + if ($params['image_id'] > 0) + { + $query=' +SELECT COUNT(*) + FROM '. IMAGES_TABLE .' + WHERE id = '. $params['image_id'] .' +;'; + list($count) = pwg_db_fetch_row(pwg_query($query)); + if ($count == 0) + { + return new PwgError(404, __FUNCTION__.' : image_id not found'); + } + } + + // handle upload error as in ws_images_addSimple + // if (isset($_FILES['image']['error']) && $_FILES['image']['error'] != 0) + + $output_filepath_prefix = $conf['upload_dir'].'/buffer/'.$params['original_sum'].'-u'.$user['id']; + $chunkfile_path_pattern = $output_filepath_prefix.'-%03uof%03u.chunk'; + + $chunkfile_path = sprintf($chunkfile_path_pattern, $params['chunk']+1, $params['chunks']); + + // create the upload directory tree if not exists + if (!mkgetdir(dirname($chunkfile_path), MKGETDIR_DEFAULT&~MKGETDIR_DIE_ON_ERROR)) + { + return new PwgError(500, 'error during buffer directory creation'); + } + secure_directory(dirname($chunkfile_path)); + + // move uploaded file + move_uploaded_file($_FILES['file']['tmp_name'], $chunkfile_path); + $logger->debug(__FUNCTION__.' uploaded '.$chunkfile_path); + + // MD5 checksum + $chunk_md5 = md5_file($chunkfile_path); + if ($chunk_md5 != $params['chunk_sum']) + { + unlink($chunkfile_path); + $logger->error(__FUNCTION__.' '.$chunkfile_path.' MD5 checksum mismatched'); + return new PwgError(500, "MD5 checksum chunk file mismatched"); + } + + // are all chunks uploaded? + $chunk_ids_uploaded = array(); + for ($i = 1; $i <= $params['chunks']; $i++) + { + $chunkfile = sprintf($chunkfile_path_pattern, $i, $params['chunks']); + if ( file_exists($chunkfile) && ($fp = fopen($chunkfile, "rb"))!==false ) + { + $chunk_ids_uploaded[] = $i; + fclose($fp); + } + } + + if ($params['chunks'] != count($chunk_ids_uploaded)) + { + // all chunks are not yet available + $logger->debug(__FUNCTION__.' all chunks are not uploaded yet, maybe on next chunk, exit for now'); + return array('message' => 'chunks uploaded = '.implode(',', $chunk_ids_uploaded)); + } + + // all chunks available + $logger->debug(__FUNCTION__.' '.$params['original_sum'].' '.$params['chunks'].' chunks available, try now to get lock for merging'); + $output_filepath = $output_filepath_prefix.'.merged'; + + // chunks already being merged? + if ( file_exists($output_filepath) && ($fp = fopen($output_filepath, "rb"))!==false ) + { + // merge file already exists + fclose($fp); + $logger->error(__FUNCTION__.' '.$output_filepath.' already exists, another merge is under process'); + return array('message' => 'chunks uploaded = '.implode(',', $chunk_ids_uploaded)); + } + + // create merged and open it for writing only + $fp = fopen($output_filepath, "wb"); + if ( !$fp ) + { + // unable to create file and open it for writing only + $logger->error(__FUNCTION__.' '.$chunkfile_path.' unable to create merge file'); + return new PwgError(500, 'error while creating merged '.$chunkfile_path); + } + + // acquire an exclusive lock and keep it until merge completes + // this postpones another uploadAsync task running in another thread + if (!flock($fp, LOCK_EX)) + { + // unable to obtain lock + fclose($fp); + $logger->error(__FUNCTION__.' '.$chunkfile_path.' unable to obtain lock'); + return new PwgError(500, 'error while locking merged '.$chunkfile_path); + } + + $logger->debug(__FUNCTION__.' lock obtained to merge chunks'); + + // loop over all chunks + foreach ($chunk_ids_uploaded as $chunk_id) + { + $chunkfile_path = sprintf($chunkfile_path_pattern, $chunk_id, $params['chunks']); + + // chunk deleted by preceding merge? + if (!file_exists($chunkfile_path)) + { + // cancel merge + $logger->error(__FUNCTION__.' '.$chunkfile_path.' already merged'); + flock($fp, LOCK_UN); + fclose($fp); + return array('message' => 'chunks uploaded = '.implode(',', $chunk_ids_uploaded)); + } + + if (!fwrite($fp, file_get_contents($chunkfile_path))) + { + // could not append chunk + $logger->error(__FUNCTION__.' error merging chunk '.$chunkfile_path); + flock($fp, LOCK_UN); + fclose($fp); + + // delete merge file without returning an error + @unlink($output_filepath); + return new PwgError(500, 'error while merging chunk '.$chunk_id); + } + + $logger->debug(__FUNCTION__.' original_sum='.$params['original_sum'].', chunk '.$chunk_id.'/'.$params['chunks'].' merged'); + + // delete chunk and clear cache + unlink($chunkfile_path); + } + + // flush output before releasing lock + fflush($fp); + flock($fp, LOCK_UN); + fclose($fp); + + $logger->debug(__FUNCTION__.' merged file '.$output_filepath.' saved'); + + // MD5 checksum + $merged_md5 = md5_file($output_filepath); + + if ($merged_md5 != $params['original_sum']) + { + unlink($output_filepath); + $logger->error(__FUNCTION__.' '.$output_filepath.' MD5 checksum mismatched!'); + return new PwgError(500, "MD5 checksum merged file mismatched"); + } + + $logger->debug(__FUNCTION__.' '.$output_filepath.' MD5 checksum OK'); + + include_once(PHPWG_ROOT_PATH.'admin/include/functions_upload.inc.php'); + + $image_id = add_uploaded_file( + $output_filepath, + $params['filename'], + $params['category'], + $params['level'], + $params['image_id'], + $params['original_sum'] + ); + + $logger->debug(__FUNCTION__.' image_id after add_uploaded_file = '.$image_id); + + // and now, let's create tag associations + if (isset($params['tag_ids']) and !empty($params['tag_ids'])) + { + set_tags( + explode(',', $params['tag_ids']), + $image_id + ); + } + + // time to set other infos + $info_columns = array( + 'name', + 'author', + 'comment', + 'date_creation', + ); + + $update = array(); + foreach ($info_columns as $key) + { + if (isset($params[$key])) + { + $update[$key] = $params[$key]; + } + } + + if (count(array_keys($update)) > 0) + { + single_update( + IMAGES_TABLE, + $update, + array('id' => $image_id) + ); + } + + // final step, reset user cache + invalidate_user_cache(); + + // trick to bypass get_sql_condition_FandF + if (!empty($params['level']) and $params['level'] > $user['level']) + { + // this will not persist + $user['level'] = $params['level']; + } + + // delete chunks older than a week + $now = time(); + foreach (glob($conf['upload_dir'].'/buffer/'."*.chunk") as $file) + { + if (is_file($file)) + { + if ($now - filemtime($file) >= 60 * 60 * 24 * 7) // 7 days + { + $logger->info(__FUNCTION__.' delete '.$file); + unlink($file); + } + else + { + $logger->debug(__FUNCTION__.' keep '.$file); + } + } + } + + // delete merged older than a week + foreach (glob($conf['upload_dir'].'/buffer/'."*.merged") as $file) + { + if (is_file($file)) + { + if ($now - filemtime($file) >= 60 * 60 * 24 * 7) // 7 days + { + $logger->info(__FUNCTION__.' delete '.$file); + unlink($file); + } + else + { + $logger->debug(__FUNCTION__.' keep '.$file); + } + } + } + + return $service->invoke('pwg.images.getInfo', array('image_id' => $image_id)); +} + /** * API method * Check if an image exists by it's name or md5 sum @@ -1670,7 +1962,12 @@ SELECT * ); } - $update['file'] = $params['file']; + // prevent XSS, remove HTML tags + $update['file'] = strip_tags($params['file']); + if (empty($update['file'])) + { + unset($update['file']); + } } if (count(array_keys($update)) > 0) diff --git a/include/ws_functions/pwg.tags.php b/include/ws_functions/pwg.tags.php index 1f0b620bf..a3244ea19 100644 --- a/include/ws_functions/pwg.tags.php +++ b/include/ws_functions/pwg.tags.php @@ -224,10 +224,284 @@ function ws_tags_add($params, &$service) if (isset($creation_output['error'])) { - return new PwgError(500, $creation_output['error']); + return new PwgError(WS_ERR_INVALID_PARAM, $creation_output['error']); } - return $creation_output; + pwg_activity('tag', $creation_output['id'], 'add'); + + $query = ' +SELECT name, url_name +FROM `'.TAGS_TABLE.'` +WHERE id = '.$creation_output['id'].';'; + +$new_tag = query2array($query); + + return array( + 'info' => $creation_output['info'], + 'id' => $creation_output['id'], + 'name' => $new_tag[0]['name'], + 'url_name' => $new_tag[0]['url_name'] + ); +} + +function ws_tags_delete($params, &$service) +{ + include_once(PHPWG_ROOT_PATH.'admin/include/functions.php'); + + if (get_pwg_token() != $params['pwg_token']) + { + return new PwgError(403, 'Invalid security token'); + } + +$query = ' +SELECT COUNT(*) + FROM `'. TAGS_TABLE .'` + WHERE id in ('.implode(',', $params['tag_id']) .') +;'; + list($count) = pwg_db_fetch_row(pwg_query($query)); + if ($count != count($params['tag_id'])) + { + return new PwgError(WS_ERR_INVALID_PARAM, 'All tags does not exist.'); + } + + + $tag_ids = $params['tag_id']; + + if (count($tag_ids) > 0) + { + delete_tags($params['tag_id']); + return array('id' => $tag_ids); + } else { + return array('id' => array()); + } +} + +function ws_tags_rename($params, &$service) +{ + include_once(PHPWG_ROOT_PATH.'admin/include/functions.php'); + + if (get_pwg_token() != $params['pwg_token']) + { + return new PwgError(403, 'Invalid security token'); + } + + $tag_id = $params['tag_id']; + $tag_name = $params['new_name']; + + // does the tag exist ? + $query = ' +SELECT COUNT(*) + FROM `'. TAGS_TABLE .'` + WHERE id = '. $tag_id .' +;'; + list($count) = pwg_db_fetch_row(pwg_query($query)); + if ($count == 0) + { + return new PwgError(WS_ERR_INVALID_PARAM, 'This tag does not exist.'); + } + + $query = ' +SELECT name + FROM '.TAGS_TABLE.' + WHERE id != '.$tag_id.' +;'; + $existing_names = array_from_query($query, 'name'); + + $update = array(); + + if (in_array($tag_name, $existing_names)) + { + return new PwgError(WS_ERR_INVALID_PARAM, 'This name is already token'); + } + else if (!empty($tag_name)) + { + $update = array( + 'name' => addslashes($tag_name), + 'url_name' => trigger_change('render_tag_url', $tag_name), + ); + + } + + pwg_activity('tag', $tag_id, 'edit'); + + single_update( + TAGS_TABLE, + $update, + array('id' => $tag_id) + ); + + return array( + 'id' => $tag_id, + 'name' => addslashes($tag_name), + 'url_name' => trigger_change('render_tag_url', $tag_name) + ); +} + + +function ws_tags_duplicate($params, &$service) +{ + + include_once(PHPWG_ROOT_PATH.'admin/include/functions.php'); + + if (get_pwg_token() != $params['pwg_token']) + { + return new PwgError(403, 'Invalid security token'); + } + + $tag_id = $params['tag_id']; + $copy_name = $params['copy_name']; + + // does the tag exist ? + $query = ' +SELECT COUNT(*) + FROM `'. TAGS_TABLE .'` + WHERE id = '. $tag_id .' +;'; + list($count) = pwg_db_fetch_row(pwg_query($query)); + if ($count == 0) + { + return new PwgError(WS_ERR_INVALID_PARAM, 'This tag does not exist.'); + } + + $query = ' +SELECT COUNT(*) + FROM `'. TAGS_TABLE .'` + WHERE name = "'. $copy_name .'" +;'; + list($count) = pwg_db_fetch_row(pwg_query($query)); + if ($count != 0) + { + return new PwgError(WS_ERR_INVALID_PARAM, 'This name is already taken.'); + } + + + single_insert( + TAGS_TABLE, + array( + 'name' => $copy_name, + 'url_name' => trigger_change('render_tag_url', $copy_name), + ) + ); + $destination_tag_id = pwg_db_insert_id(TAGS_TABLE); + + pwg_activity('tag', $destination_tag_id, 'add', array('action'=>'duplicate', 'source_tag'=>$tag_id)); + + $query = ' +SELECT image_id + FROM '.IMAGE_TAG_TABLE.' + WHERE tag_id = '.$tag_id.' +;'; + $destination_tag_image_ids = array_from_query($query, 'image_id'); + + $inserts = array(); + + foreach ($destination_tag_image_ids as $image_id) + { + $inserts[] = array( + 'tag_id' => $destination_tag_id, + 'image_id' => $image_id + ); + pwg_activity('photo', $image_id, 'edit', array("add-tag" => $destination_tag_id)); + } + + if (count($inserts) > 0) + { + mass_inserts( + IMAGE_TAG_TABLE, + array_keys($inserts[0]), + $inserts + ); + } + + return array( + 'id' => $destination_tag_id, + 'name' => $copy_name, + 'url_name' => trigger_change('render_tag_url', $copy_name), + 'count' => count($inserts) + ); +} + +function ws_tags_merge($params, &$service) +{ + + if (get_pwg_token() != $params['pwg_token']) + { + return new PwgError(403, 'Invalid security token'); + } + + $all_tags = $params['merge_tag_id']; + array_push($all_tags, $params['destination_tag_id']); + + $all_tags = array_unique($all_tags); + $merge_tag = array_diff($params['merge_tag_id'], array($params['destination_tag_id'])); + + $query = ' +SELECT COUNT(*) + FROM `'. TAGS_TABLE .'` + WHERE id in ('.implode(',', $all_tags) .') +;'; + list($count) = pwg_db_fetch_row(pwg_query($query)); + if ($count != count($all_tags)) + { + return new PwgError(WS_ERR_INVALID_PARAM, 'All tags does not exist.'); + } + + $image_in_merge_tags = array(); + $image_in_dest = array(); + $image_to_add = array(); + + $query = ' +SELECT DISTINCT(image_id) + FROM `'. IMAGE_TAG_TABLE .'` + WHERE + tag_id IN ('.implode(',', $merge_tag) .') +;'; + $image_in_merge_tags = query2array($query, null, 'image_id'); + + $query = ' +SELECT image_id + FROM `'. IMAGE_TAG_TABLE .'` + WHERE tag_id = '.$params['destination_tag_id'].' +;'; + + $image_in_dest = query2array($query, null, 'image_id');; + + + $image_to_add = array_diff($image_in_merge_tags, $image_in_dest); + + $inserts = array(); + foreach ($image_to_add as $image) + { + $inserts[] = array( + 'tag_id' => $params['destination_tag_id'], + 'image_id' => $image, + ); + } + + mass_inserts( + IMAGE_TAG_TABLE, + array('tag_id', 'image_id'), + $inserts, + array('ignore'=>true) + ); + + pwg_activity('tag', $params['destination_tag_id'], 'edit'); + foreach ($image_to_add as $image_id) + { + pwg_activity('photo', $image_id, 'edit', array("tag-add" => $params['destination_tag_id'])); + } + + include_once(PHPWG_ROOT_PATH.'admin/include/functions.php'); + + delete_tags($merge_tag); + + $image_in_merged = array_merge($image_in_dest, $image_to_add); + + return array( + "destination_tag" => $params['destination_tag_id'], + "deleted_tag" => $params['merge_tag_id'], + "images_in_merged_tag" => $image_in_merged + ); } ?> diff --git a/include/ws_functions/pwg.users.php b/include/ws_functions/pwg.users.php index 3881f3b65..f9f607017 100644 --- a/include/ws_functions/pwg.users.php +++ b/include/ws_functions/pwg.users.php @@ -555,6 +555,11 @@ SELECT deactivate_user_auth_keys($params['user_id'][0]); } + if (isset($updates[ $conf['user_fields']['email'] ])) + { + deactivate_password_reset_key($params['user_id'][0]); + } + if (isset($update_status) and count($params['user_id_for_status']) > 0) { $query = ' @@ -632,4 +637,158 @@ SELECT )); } +/** + * API method + * Adds a favorite image for the current user + * @param mixed[] $params + * @option int image_id + */ +function ws_users_favorites_add($params, &$service) +{ + global $user; + + if (is_a_guest()) + { + return new PwgError(403, 'User must be logged in.'); + } + + // does the image really exist? + $query = ' +SELECT COUNT(*) + FROM '. IMAGES_TABLE .' + WHERE id = '. $params['image_id'] .' +;'; + list($count) = pwg_db_fetch_row(pwg_query($query)); + if ($count == 0) + { + return new PwgError(404, 'image_id not found'); + } + + single_insert( + FAVORITES_TABLE, + array( + 'image_id' => $params['image_id'], + 'user_id' => $user['id'], + ), + array('ignore' => true) + ); + + return true; +} + +/** + * API method + * Removes a favorite image for the current user + * @param mixed[] $params + * @option int image_id + */ +function ws_users_favorites_remove($params, &$service) +{ + global $user; + + if (is_a_guest()) + { + return new PwgError(403, 'User must be logged in.'); + } + + // does the image really exist? + $query = ' +SELECT COUNT(*) + FROM '. IMAGES_TABLE .' + WHERE id = '. $params['image_id'] .' +;'; + list($count) = pwg_db_fetch_row(pwg_query($query)); + if ($count == 0) + { + return new PwgError(404, 'image_id not found'); + } + + $query = ' +DELETE + FROM '.FAVORITES_TABLE.' + WHERE user_id = '.$user['id'].' + AND image_id = '.$params['image_id'].' +;'; + + pwg_query($query); + + return true; +} + +/** + * API method + * Returns the favorite images of the current user + * @param mixed[] $params + * @option int per_page + * @option int page + * @option string order + */ +function ws_users_favorites_getList($params, &$service) +{ + global $conf, $user; + + if (is_a_guest()) + { + return false; + } + + check_user_favorites(); + + $order_by = ws_std_image_sql_order($params, 'i.'); + $order_by = empty($order_by) ? $conf['order_by'] : 'ORDER BY '.$order_by; + + $query = ' +SELECT + i.* + FROM '.FAVORITES_TABLE.' + INNER JOIN '.IMAGES_TABLE.' i ON image_id = i.id + WHERE user_id = '.$user['id'].' +'.get_sql_condition_FandF( + array( + 'visible_images' => 'id' + ), + 'AND' + ).' + '.$order_by.' +;'; + $images = array(); + $result = pwg_query($query); + while ($row = pwg_db_fetch_assoc($result)) + { + $image = array(); + + foreach (array('id', 'width', 'height', 'hit') as $k) + { + if (isset($row[$k])) + { + $image[$k] = (int)$row[$k]; + } + } + + foreach (array('file', 'name', 'comment', 'date_creation', 'date_available') as $k) + { + $image[$k] = $row[$k]; + } + + $images[] = array_merge($image, ws_std_get_urls($row)); + } + + $count = count($images); + $images = array_slice($images, $params['per_page']*$params['page'], $params['per_page']); + + return array( + 'paging' => new PwgNamedStruct( + array( + 'page' => $params['page'], + 'per_page' => $params['per_page'], + 'count' => $count + ) + ), + 'images' => new PwgNamedArray( + $images, 'image', + ws_std_get_image_xml_attributes() + ) + ); +} + ?> diff --git a/install.php b/install.php index bea9d726f..ab825cb7e 100644 --- a/install.php +++ b/install.php @@ -211,9 +211,6 @@ else if ('pl_PL' == $language) { else if ('zh_CN' == $language) { define('PHPWG_DOMAIN', 'cn.piwigo.org'); } -else if ('hu_HU' == $language) { - define('PHPWG_DOMAIN', 'hu.piwigo.org'); -} else if ('ru_RU' == $language) { define('PHPWG_DOMAIN', 'ru.piwigo.org'); } @@ -232,7 +229,7 @@ else if ('pt_BR' == $language) { else { define('PHPWG_DOMAIN', 'piwigo.org'); } -define('PHPWG_URL', 'http://'.PHPWG_DOMAIN); +define('PHPWG_URL', 'https://'.PHPWG_DOMAIN); load_language('common.lang', '', array('language' => $language, 'target_charset'=>'utf-8')); load_language('admin.lang', '', array('language' => $language, 'target_charset'=>'utf-8')); @@ -359,11 +356,8 @@ INSERT INTO '.$prefixeTable.'config (param,value,comment) '%gallery_title%'."\n\n".pwg_db_real_escape_string(l10n('Welcome to my photo gallery')).'' ); - // fill languages table - foreach ($languages->fs_languages as $language_code => $fs_language) - { - $languages->perform_action('activate', $language_code); - } + // fill languages table, only activate the current language + $languages->perform_action('activate', $language); // fill $conf global array load_conf_from_db(); @@ -498,7 +492,7 @@ else log_user($user['id'], false); // email notification - if (isset($_POST['send_password_by_mail'])) + if (isset($_POST['send_credentials_by_mail'])) { include_once(PHPWG_ROOT_PATH.'include/functions_mail.inc.php'); @@ -510,7 +504,7 @@ else get_l10n_args('', ''), get_l10n_args('Link: %s', get_absolute_root_url()), get_l10n_args('Username: %s', $admin_name), - get_l10n_args('Password: %s', $admin_pass1), + get_l10n_args('Password: ********** (no copy by email)', ''), get_l10n_args('Email: %s', $admin_mail), get_l10n_args('', ''), get_l10n_args('Don\'t hesitate to consult our forums for any help: %s', PHPWG_URL), diff --git a/install/config.sql b/install/config.sql index 4bdd9d664..14a68ef33 100644 --- a/install/config.sql +++ b/install/config.sql @@ -73,3 +73,5 @@ INSERT INTO piwigo_config (param,value) VALUES ('display_fromto','false'); INSERT INTO piwigo_config (param,value) VALUES ('picture_edit_icon','true'); INSERT INTO piwigo_config (param,value) VALUES ('picture_caddie_icon','true'); INSERT INTO piwigo_config (param,value) VALUES ('picture_representative_icon','true'); +INSERT INTO piwigo_config (param,value) VALUES ('show_mobile_app_banner_in_admin','true'); +INSERT INTO piwigo_config (param,value) VALUES ('show_mobile_app_banner_in_gallery','false'); diff --git a/themes/Sylvia/icon/mimetypes/index.php b/install/db/157-database.php similarity index 60% rename from themes/Sylvia/icon/mimetypes/index.php rename to install/db/157-database.php index 58ea04e8f..7773c85cd 100644 --- a/themes/Sylvia/icon/mimetypes/index.php +++ b/install/db/157-database.php @@ -6,10 +6,16 @@ // | file that was distributed with this source code. | // +-----------------------------------------------------------------------+ -// Recursive call -$url = '../'; -header( 'Request-URI: '.$url ); -header( 'Content-Location: '.$url ); -header( 'Location: '.$url ); -exit(); +if (!defined('PHPWG_ROOT_PATH')) +{ + die('Hacking attempt!'); +} + +$upgrade_description = 'add config parameters to display smart app banner'; + +conf_update_param('show_mobile_app_banner_in_admin', true); +conf_update_param('show_mobile_app_banner_in_gallery', false); + +echo "\n".$upgrade_description."\n"; + ?> diff --git a/install/db/158-database.php b/install/db/158-database.php new file mode 100644 index 000000000..c63667077 --- /dev/null +++ b/install/db/158-database.php @@ -0,0 +1,33 @@ + diff --git a/themes/Sylvia/index.php b/install/db/159-database.php similarity index 64% rename from themes/Sylvia/index.php rename to install/db/159-database.php index 58ea04e8f..affe973de 100644 --- a/themes/Sylvia/index.php +++ b/install/db/159-database.php @@ -6,10 +6,19 @@ // | file that was distributed with this source code. | // +-----------------------------------------------------------------------+ -// Recursive call -$url = '../'; -header( 'Request-URI: '.$url ); -header( 'Content-Location: '.$url ); -header( 'Location: '.$url ); -exit(); +if (!defined('PHPWG_ROOT_PATH')) +{ + die('Hacking attempt!'); +} + +$upgrade_description = 'add index on images.path'; + +$query = ' +ALTER TABLE '. IMAGES_TABLE .' + ADD INDEX `images_i7` (`path`) +;'; +pwg_query($query); + +echo "\n".$upgrade_description."\n"; + ?> diff --git a/install/upgrade_2.10.0.php b/install/upgrade_2.10.0.php new file mode 100644 index 000000000..1fe1d0b84 --- /dev/null +++ b/install/upgrade_2.10.0.php @@ -0,0 +1,111 @@ += 157) // TODO change on each release (first task to run) + { + break; + } + + array_push( + $inserts, + array( + 'id' => $upgrade_id, + 'applied' => CURRENT_DATE, + 'description' => '[migration from 2.10.0 to '.PHPWG_VERSION.'] not applied', // TODO change on each release + ) + ); +} + +if (!empty($inserts)) +{ + mass_inserts( + '`'.UPGRADE_TABLE.'`', + array_keys($inserts[0]), + $inserts + ); +} + +// +-----------------------------------------------------------------------+ +// | Perform upgrades | +// +-----------------------------------------------------------------------+ + +ob_start(); +echo ''; + +for ($upgrade_id = 157; $upgrade_id <= 159; $upgrade_id++) // TODO change on each release +{ + if (!file_exists(UPGRADES_PATH.'/'.$upgrade_id.'-database.php')) + { + continue; + } + + // maybe the upgrade task has already been applied in a previous and + // incomplete upgrade + if (in_array($upgrade_id, $applied)) + { + continue; + } + + unset($upgrade_description); + + echo "\n\n"; + echo '=== upgrade '.$upgrade_id."\n"; + + // include & execute upgrade script. Each upgrade script must contain + // $upgrade_description variable which describe briefly what the upgrade + // script does. + $up_start = get_moment(); + include(UPGRADES_PATH.'/'.$upgrade_id.'-database.php'); + + // notify upgrade (TODO change on each release) + $query = ' +INSERT INTO `'.PREFIX_TABLE.'upgrade` + (id, applied, description) + VALUES + (\''.$upgrade_id.'\', NOW(), \'[migration from 2.10.0 to '.PHPWG_VERSION.', '.get_elapsed_time($up_start, get_moment()).'] '.$upgrade_description.'\') +;'; + pwg_query($query); +} + +echo ''; +ob_end_clean(); + +// now we upgrade from 11.0.0 +// include_once(PHPWG_ROOT_PATH.'install/upgrade_11.0.0.php'); +?> diff --git a/install/upgrade_2.8.0.php b/install/upgrade_2.8.0.php index 54630ee45..16027aa53 100644 --- a/install/upgrade_2.8.0.php +++ b/install/upgrade_2.8.0.php @@ -107,5 +107,5 @@ echo ''; ob_end_clean(); // now we upgrade from 2.9.0 -// include_once(PHPWG_ROOT_PATH.'install/upgrade_2.9.0.php'); +include_once(PHPWG_ROOT_PATH.'install/upgrade_2.9.0.php'); ?> diff --git a/install/upgrade_2.9.0.php b/install/upgrade_2.9.0.php new file mode 100644 index 000000000..dadab91df --- /dev/null +++ b/install/upgrade_2.9.0.php @@ -0,0 +1,111 @@ += 153) // TODO change on each release (first task to run) + { + break; + } + + array_push( + $inserts, + array( + 'id' => $upgrade_id, + 'applied' => CURRENT_DATE, + 'description' => '[migration from 2.9.0 to '.PHPWG_VERSION.'] not applied', // TODO change on each release + ) + ); +} + +if (!empty($inserts)) +{ + mass_inserts( + '`'.UPGRADE_TABLE.'`', + array_keys($inserts[0]), + $inserts + ); +} + +// +-----------------------------------------------------------------------+ +// | Perform upgrades | +// +-----------------------------------------------------------------------+ + +ob_start(); +echo ''; + +for ($upgrade_id = 153; $upgrade_id <= 156; $upgrade_id++) // TODO change on each release +{ + if (!file_exists(UPGRADES_PATH.'/'.$upgrade_id.'-database.php')) + { + continue; + } + + // maybe the upgrade task has already been applied in a previous and + // incomplete upgrade + if (in_array($upgrade_id, $applied)) + { + continue; + } + + unset($upgrade_description); + + echo "\n\n"; + echo '=== upgrade '.$upgrade_id."\n"; + + // include & execute upgrade script. Each upgrade script must contain + // $upgrade_description variable which describe briefly what the upgrade + // script does. + $up_start = get_moment(); + include(UPGRADES_PATH.'/'.$upgrade_id.'-database.php'); + + // notify upgrade (TODO change on each release) + $query = ' +INSERT INTO `'.PREFIX_TABLE.'upgrade` + (id, applied, description) + VALUES + (\''.$upgrade_id.'\', NOW(), \'[migration from 2.9.0 to '.PHPWG_VERSION.', '.get_elapsed_time($up_start, get_moment()).'] '.$upgrade_description.'\') +;'; + pwg_query($query); +} + +echo ''; +ob_end_clean(); + +// now we upgrade from 2.10.0 +include_once(PHPWG_ROOT_PATH.'install/upgrade_2.10.0.php'); +?> diff --git a/language/af_ZA/admin.lang.php b/language/af_ZA/admin.lang.php index bb5390ef6..41e4ca9aa 100644 --- a/language/af_ZA/admin.lang.php +++ b/language/af_ZA/admin.lang.php @@ -244,6 +244,7 @@ $lang['Notify administrators when a comment is'] = 'Stel administrateurs in kenn $lang['Opacity'] = 'Deursigtigheid'; $lang['Original Size'] = 'Oorspronklike grootte'; $lang['Original file : %s'] = 'Oorspronklike lêer: %s'; +$lang['Piwigo for Android'] = 'Piwigo vir Android'; $lang['Piwigo for iOS (iPhone, iPad, iPod Touch)'] = 'Piwigo vir iOS (iPhone, iPad, iPod Touch)10217569'; $lang['Posted %s on %s'] = 'Gepos %s op %s'; $lang['Select a file'] = 'Kies \'n lêer'; @@ -536,7 +537,7 @@ $lang['none'] = 'geen'; $lang['nothing'] = 'niks'; $lang['Modify information'] = 'Verander inligting'; $lang['No photo selected, %d photos in current set'] = 'Geen foto gekies, %d fotos in huidige stel'; -$lang['No photo selected, no action possible.'] = 'Geen foto gekies, geen aksie moontlik.'; +$lang[' '] = 'Geen foto gekies, geen aksie moontlik.'; $lang['No results'] = 'Geen resultate'; $lang['Notification'] = 'Kennisgewing'; $lang['Obsolete Plugins'] = 'Verouderde invoegsels'; @@ -805,6 +806,7 @@ $lang['Give write access (chmod 777) to "%s" directory at the root of your Piwig $lang['Information data registered in database'] = 'Inligting aangeteken in databasis'; $lang['Invert'] = 'Keer om'; $lang['Language has been successfully installed'] = 'Taal is suksesvol geïnstalleer'; +$lang['Piwigo for Android application empowers you to connect your Android phone or table to your Piwigo gallery, create some albums and upload several photos at once.'] = 'Piwigo vir Android toepassing stel jou in staat om met jou Android foon of tablet aan jou Piwigo gallery te verbind, albums te skep en fotos op te laai.'; $lang['Piwigo for iOS application empowers you to connect to your Piwigo gallery from your iPhone, iPad or iPod Touch, create some albums and upload several photos at once.'] = 'Piwigo vir iOS toepassing stel jou in staat om met jou iPhone, iPad of iPad touch aan jou Piwigo gallery te verbind, albums te skep en fotos op te laai.'; $lang['Adobe Photoshop Lightroom is a photography software designed to manage large quantities of digital images and doing post production work.'] = 'Adobe Photoshop Lightroom is fotografie sagteware wat ontwerp is om groot hoeveelhede digitale beelde te administreer en postproduksie werk te doen.'; $lang['Aperture is a powerful tool to refine images and manage massive libraries on Mac.'] = 'Aperture is \'n kragtige pakket om beelde te verwerk en groot biblioteke op Mac te hanteer.'; @@ -905,7 +907,7 @@ $lang['Manage the members'] = 'Administreer lede'; $lang['Merge selected groups'] = 'Versmelt gekose groepe'; $lang['Minimum height'] = 'Minimum hoogte'; $lang['Minimum width'] = 'Minimum wydte'; -$lang['No group selected, no action possible.'] = 'Geen groep gekies, geen aksies moontlik'; +$lang['No groups selected, no actions possible.'] = 'Geen groep gekies, geen aksies moontlik'; $lang['No members to manage'] = 'Geen lede'; $lang['Number of albums per page'] = 'Aantal albums per blad'; $lang['Panorama'] = 'Panorama'; @@ -944,7 +946,7 @@ $lang['No matching user found'] = 'Geen passende gebruiker gevind'; $lang['No recipient selected'] = 'Geen ontvanger gekies'; $lang['No user is permitted to see this private album'] = 'Geen gebruiker word toegelaat om \'n privaat album te sien nie'; $lang['No user selected of %d users'] = 'Geen gebruiker uit %d gebruikers gekies'; -$lang['No user selected, no action possible.'] = 'Geen gebuiker gekies, geen aksie moontlik.'; +$lang['No users selected, no actions possible.'] = 'Geen gebuiker gekies, geen aksie moontlik.'; $lang['Open user details'] = 'Vertoon gebruikersinligting'; $lang['Orphans'] = 'Wese'; $lang['Password updated'] = 'Wagwoord opgedateer'; @@ -968,4 +970,4 @@ $lang['General'] = 'Algemeen'; $lang['Last visit on %s, %s.'] = 'Laaste besoek op %s, %s.'; $lang['Mail address is mandatory for registration'] = 'Posadres is verpligtend vir registrasie'; $lang['Mail theme'] = 'Postema'; -$lang['%d of %d users selected'] = '%d van %d gebruikers gekies'; \ No newline at end of file +$lang['%d of %d users selected'] = '%d van %d gebruikers gekies'; diff --git a/language/ar_SA/admin.lang.php b/language/ar_SA/admin.lang.php index e4041f17b..7624bee1e 100644 --- a/language/ar_SA/admin.lang.php +++ b/language/ar_SA/admin.lang.php @@ -664,7 +664,7 @@ $lang['Refresh photo set'] = 'ØØ¯Ø« مجموعة الصور'; $lang['The whole page'] = 'ØµÙØØ© كاملة'; $lang['The whole set'] = 'مجموعة كلمة'; $lang['No photo in the current set.'] = 'لا صور ÙÙŠ المجموعة Ø§Ù„ØØ§Ù„ية'; -$lang['No photo selected, no action possible.'] = 'لا توجد صور Ù…ØØ¯Ø¯Ø© ØŒ أي إجراء ممكن'; +$lang['No photos selected, no actions possible.'] = 'لا توجد صور Ù…ØØ¯Ø¯Ø© ØŒ أي إجراء ممكن'; $lang['Choose an action'] = 'اختر اجراء'; $lang['remove author'] = 'Ø§ØØ°Ù الكاتب'; $lang['Type here the author name'] = 'أكتب هنا أسم الكاتب '; @@ -781,6 +781,7 @@ $lang['Not cropped correctly?'] = 'الإقتطاع غير صØÙŠØØŸ'; $lang['Notify administrators when a comment is'] = 'أبلغ المدير عندالتعليق'; $lang['Original Size'] = 'Ø§Ù„ØØ¬Ù… الأصلي'; $lang['pending validation'] = 'ÙÙŠ إنتظار التصريØ'; +$lang['Piwigo for Android'] = 'Piwigo for Android'; $lang['Piwigo for iOS (iPhone, iPad, iPod Touch)'] = 'Piwigo for iOS (iPhone, iPad, iPod Touch)'; $lang['Piwigo Publish plugin for Lightroom'] = 'Piwigo Ø£Ø¶Ø§ÙØ© للنشر بوا سطة برنامج Lightroom'; $lang['Predefined filter'] = 'Ù…ÙØ±Ø´Ø Ù…ÙØØ¯Ø¯ Ù…ÙØ³Ø¨Ù‚اً'; @@ -829,6 +830,7 @@ $lang['Select groups...'] = 'ØªØØ¯ÙŠØ¯ مجموعات ..'; $lang['Select users...'] = 'ØªØØ¯ÙŠØ¯ المستخدمين'; $lang['There is no group in this gallery.'] = 'لا توجد مجموعه لهذا الألبوم'; $lang['visitors need to login and have the appropriate permissions to see this album'] = 'الزوار ÙÙŠ ØØ§Ø¬Ù‡ لتسجيل الدخول او Ø§Ù„ØªØµØ±ÙŠØ ØØªÙ‰ يمكنهم مشاهده هذا الألبوم'; +$lang['Piwigo for Android application empowers you to connect your Android phone or table to your Piwigo gallery, create some albums and upload several photos at once.'] = 'Piwigo for Android تطبيقات للاجهزه اللمسيه التي تعمل علي نظام آندرويذ ØŒ ÙŠØªÙŠØ Ù„Ù‡Ø°Ù‡ الاجهزه Ø±ÙØ¹ الصور Ùˆ انشاء الآلبومات'; $lang['Piwigo for iOS application empowers you to connect to your Piwigo gallery from your iPhone, iPad or iPod Touch, create some albums and upload several photos at once.'] = 'Piwigo for iOS تطبيقات للاجهزه اللمسيه الخاصة بشركه أبل ،آيÙون ØŒ آيباد Ùˆ آيبود ØŒ تطبيق ÙŠØªÙŠØ Ù„Ù‡Ø°Ù‡ الاجهزه الاتصال بمعرضك الخاص Ùˆ Ø±ÙØ¹ الصور Ùˆ انشاء Ùˆ الألبومات '; $lang['Adobe Photoshop Lightroom is a photography software designed to manage large quantities of digital images and doing post production work.'] = 'أدوبي Ùوتوشوب لايتروم هو برنامج التصوير المصممة لإدارة كميات كبيرة من الصور الرقمية والقيام بأعمال ما بعد الإنتاج.'; $lang['Piwigo publish plugin for Shotwell'] = 'Ø§Ø¶Ø§ÙØ© النشر ÙÙŠ Piwigo الخاصه ببرنامج Shotwell'; @@ -915,7 +917,7 @@ $lang['This group will be unset to default'] = 'لم يتم استخدام هذ $lang['Ratio'] = 'نبسة'; $lang['Please select at least two groups'] = 'ÙØ¶Ù„ا Ù‹ لا أمرا ٠أختر Ùيما لا يقل عن مجموعتين '; $lang['No members to manage'] = 'لا يوجد أعضاد لإدارتهم'; -$lang['No group selected, no action possible.'] = 'لم يتم ØªØØ¯ÙŠØ¯ أي مجموعة ØŒ لا تتوقع Ø§Ù„ØªÙØ§Ø¹Ù„'; +$lang['No groups selected, no actions possible.'] = 'لم يتم ØªØØ¯ÙŠØ¯ أي مجموعة ØŒ لا تتوقع Ø§Ù„ØªÙØ§Ø¹Ù„'; $lang['Merge selected groups'] = 'إدارة المجموعة المختارة'; $lang['between %d and %d pixels'] = 'ما بين %d Ùˆ %d بكسل'; $lang['between %.2f and %.2f'] = 'ما بين %.2f Ùˆ %.2f '; @@ -934,7 +936,7 @@ $lang['Registered on %s, %s.'] = 'Ø³ÙØ¬Ù‘ÙÙ„ ÙÙŠ%s, %s'; $lang['Change username'] = 'تغيير اسم المستخدم'; $lang['Loading...'] = 'تØÙ…يل ...'; $lang['No matching user found'] = 'لم يتم العثور على مستخدم مطابق'; -$lang['No user selected, no action possible.'] = 'لم يتم إختيار المستخدم، أي إجراء غير ممكن'; +$lang['No users selected, no actions possible.'] = 'لم يتم إختيار المستخدم، أي إجراء غير ممكن'; $lang['Password updated'] = 'كلمة السر تم ØªØØ¯ÙŠØ«Ù‡Ø§'; $lang['Update user'] = 'ØªØØ¯ÙŠØ« المستعمل'; $lang['Users modified'] = 'المستخدمين تم تعديلهم'; diff --git a/language/bg_BG/admin.lang.php b/language/bg_BG/admin.lang.php index 13b3823bd..bcc1151a9 100644 --- a/language/bg_BG/admin.lang.php +++ b/language/bg_BG/admin.lang.php @@ -402,6 +402,7 @@ $lang['Private'] = 'Личен'; $lang['Position'] = 'ПозициÑ'; $lang['Plugins which need upgrade'] = 'Ð Ð°Ð·ÑˆÐ¸Ñ€ÐµÐ½Ð¸Ñ Ð·Ð° обновÑване'; $lang['Piwigo version'] = 'Piwigo верÑиÑ'; +$lang['Piwigo for Android'] = 'Piwigo за Android'; $lang['Piwigo configuration'] = 'Piwigo конфигурациÑ'; $lang['Piwigo Administration'] = 'Piwigo ÐдминиÑтриране'; $lang['Piwigo Update'] = 'Piwigo ъпдейт'; @@ -571,6 +572,7 @@ $lang['Type here the title'] = 'Въведете заглавието тук'; $lang['Type here the author name'] = 'Въведете името на автора тук'; $lang['This site already exists'] = 'Този Ñайт вече ÑъщеÑтвува'; $lang['leave'] = 'оÑтавÑне'; +$lang['Piwigo for Android application empowers you to connect your Android phone or table to your Piwigo gallery, create some albums and upload several photos at once.'] = 'Piwigo за Android приложение ви позволÑва да Ñвържете Ð²Ð°ÑˆÐ¸Ñ Android телефон или таблет Ñ Ð³Ð°Ð»ÐµÑ€Ð¸Ñта, да Ñъздавате албуми и да качване нÑколко Ñнимки наведнъж.'; $lang['Piwigo for iOS application empowers you to connect to your Piwigo gallery from your iPhone, iPad or iPod Touch, create some albums and upload several photos at once.'] = 'Piwigo за iOS EM> приложение ви дава възможноÑÑ‚ да Ñе Ñвържете към Ð³Ð°Ð»ÐµÑ€Ð¸Ñ Ð¾Ñ‚ Ð²Ð°ÑˆÐ¸Ñ iPhone, iPad или iPod Touch, да Ñъздаване албуми и да качване нÑколко Ñнимки наведнъж.'; $lang['Adobe Photoshop Lightroom is a photography software designed to manage large quantities of digital images and doing post production work.'] = 'Adobe Photoshop Lightroom е фотографÑки Ñофтуер, предназначен за управление на големи количеÑтва цифрови Ð¸Ð·Ð¾Ð±Ñ€Ð°Ð¶ÐµÐ½Ð¸Ñ Ð¸ публикуването им Ñлед редактирането.'; $lang['An error has occured during extract. Please check files permissions of your piwigo installation.Click here to show log error.'] = 'Възникнала е грешка по време на извличането. ÐœÐ¾Ð»Ñ Ð¿Ñ€Ð¾Ð²ÐµÑ€ÐµÑ‚Ðµ правата за файловете в инÑталациÑта.Кликнете тук за да видите грешката.'; @@ -727,9 +729,9 @@ $lang['Metadata synchronized from file'] = 'Метаданните Ñинхро $lang['Hoverbox display'] = 'Показване на каре при поÑочване Ñ Ð¼Ð¸ÑˆÐºÐ°'; $lang['Impossible to activate this theme, the parent theme is missing: %s'] = 'Тази тема не може да бъде активирана, тъй като родителÑката тема липÑва: %s'; $lang['No user to send notifications by mail.'] = 'ÐÑма потребител, който да бъде уведомен Ñ Ð¸Ð¼ÐµÐ¹Ð».'; -$lang['No photo selected, no action possible.'] = 'Ðе е избрана Ñнимка, не може да бъде предприето дейÑтвие'; +$lang['No photos selected, no actions possible.'] = 'Ðе е избрана Ñнимка, не може да бъде предприето дейÑтвие'; $lang['No photo selected, %d photos in current set'] = 'Ðе е избрана Ñнимка, %d Ñнимки в Ñ‚ÐµÐºÑƒÑ‰Ð¸Ñ Ð½Ð°Ð±Ð¾Ñ€'; -$lang['No group selected, no action possible.'] = 'Ðе е избрана група, не може да бъде предприето дейÑтвие.'; +$lang['No groups selected, no actions possible.'] = 'Ðе е избрана група, не може да бъде предприето дейÑтвие.'; $lang['Images manual order was saved'] = 'Ръчно избраниÑÑ‚ ред е запазен'; $lang['New parent album'] = 'Ðов родителÑки албум'; $lang['No destination tag selected'] = 'Ðе е избран етикет'; @@ -937,7 +939,7 @@ $lang['Showing %s to %s of %s users'] = 'Показва %s до %s от %s по $lang['Show %s users'] = 'Показани %s потребители'; $lang['Registered on %s, %s.'] = 'РегиÑтриран на %s, %s.'; $lang['Password updated'] = 'Паролата е обновена'; -$lang['No user selected, no action possible.'] = 'ÐÑма избран потребител, не е възможна операциÑ.'; +$lang['No users selected, no actions possible.'] = 'ÐÑма избран потребител, не е възможна операциÑ.'; $lang['No user selected of %d users'] = 'ÐÑма избран потребител от %d потребители'; $lang['No matching user found'] = 'ÐÑма намерено Ñъвпадение по потребител'; $lang['Loading...'] = 'Зареждане...'; @@ -982,7 +984,7 @@ $lang['Time has come to update your Piwigo with version %s, go to %s'] = 'Вре $lang['Share / Send your photos directly from your Mac Os X (10.10 and following) to Piwigo'] = 'Споделете/Изпратете Ñнимки директно от Ð²Ð°ÑˆÐ¸Ñ macOS (10.10 или по-нова) до Piwigo'; $lang['Running on an up-to-date Piwigo is important for security.'] = 'Ъпдейтване до поÑледната верÑÐ¸Ñ Ð½Ð° Piwigo е нужно Ñ Ñ†ÐµÐ» ÑигурноÑÑ‚.'; $lang['Piwigo %s is available, please update'] = 'Piwigo %s е наличен, Ð¼Ð¾Ð»Ñ ÑŠÐ¿Ð´ÐµÐ¹Ñ‚Ð²Ð°Ð¹Ñ‚Ðµ.'; -$lang['No tag selected, no action possible.'] = 'ÐÑма избран етикет, невъзможно дейÑтвие.'; +$lang['No tags selected, no actions possible.'] = 'ÐÑма избран етикет, невъзможно дейÑтвие.'; $lang['No filter on album. Select one or type to search'] = 'Ðе филтрай по албум. Избери Ñамо вид търÑене'; $lang['It only takes a few clicks.'] = 'Ще отнеме нÑколко клика.'; $lang['delete album and the %d orphan photos'] = 'изтриване на албум и %d Ñнимки без албум'; @@ -994,4 +996,4 @@ $lang['Delete album "%s".'] = 'Изтриване на албум "%s".'; $lang['Confirm deletion'] = 'Потвърдете изтриването'; $lang['Dashboard'] = 'Табло'; $lang['Select tags'] = 'Избор на етикети'; -$lang['checksum'] = 'контролно чиÑло'; \ No newline at end of file +$lang['checksum'] = 'контролно чиÑло'; diff --git a/language/br_FR/admin.lang.php b/language/br_FR/admin.lang.php index baed77c93..2f51ad66e 100644 --- a/language/br_FR/admin.lang.php +++ b/language/br_FR/admin.lang.php @@ -147,6 +147,7 @@ $lang['Add tags'] = 'Lakaat merkerioù ouzhpenn'; $lang['Add to caddie'] = 'Lakaat er baner'; $lang['%s value is not correct file because exif are not supported'] = 'N\'eo ket reizh talvoud %s peogwir n\'eo ket skoret exif'; $lang['Piwigo for iOS application empowers you to connect to your Piwigo gallery from your iPhone, iPad or iPod Touch, create some albums and upload several photos at once.'] = 'Gant arload Piwigo evit iOS e vo posubl deoc\'h kevreañ hoc\'h iPhone, iPad pe iPod Touch ouzh ho palier Piwigo, krouiñ rummadoù hag ezkargañ ur bern luc\'hskeudennoù en ur wech.'; +$lang['Piwigo for Android application empowers you to connect your Android phone or table to your Piwigo gallery, create some albums and upload several photos at once.'] = 'Gant arload Piwigo evit Android e vo posubl deoc\'h kevreañ ho pellgomzer pe tablezenn ouzh ho palier Piwigo, krouiñ rummadoù hag ezkargañ ur bern luc\'hskeudennoù en ur wech.'; $lang['+ Add an upload box'] = '+ Lakaat ur voest-ezkargañ'; $lang[', click on'] = ', klikit war'; $lang['(this tag will be deleted)'] = '(ar merker-mañ a vo dilemet)'; @@ -456,6 +457,7 @@ $lang['Instructions to use Piwigo'] = 'Kemennoù evit implij Piwigo'; $lang['Piwigo Uploader'] = 'Ezkarger Piwigo'; $lang['Piwigo export plugin for Aperture'] = 'Lugant ezporzhiañ Piwigo evit Aperture'; $lang['Piwigo export plugin for iPhoto'] = 'Lugant ezporzhiañ Piwigo evit iPhoto'; +$lang['Piwigo for Android'] = 'Piwigo evit Android'; $lang['Piwigo for iOS (iPhone, iPad, iPod Touch)'] = 'Piwigo evit iOS (iPhone, iPad, iPod Touch)'; $lang['Piwigo publish plugin for Shotwell'] = 'Lugant embann Piwigo evit Shotwell'; $lang['Piwigo publish plugin for digiKam'] = 'Lugant embann Piwigo evit digiKam'; @@ -709,9 +711,9 @@ $lang['No group is permitted to see this private album'] = 'Ne c\'hell strollad $lang['No user is permitted to see this private album'] = 'Ne c\'hell implijer ebet gwelet ar rummad prevez-se.'; $lang['No file was uploaded'] = 'Restr ebet pellkarget'; $lang['Upload in progress'] = 'Oc\'h ezkargañ'; -$lang['No group selected, no action possible.'] = 'Strollad ebet diuzet, obererezh ebet d\'ober.'; -$lang['No photo selected, no action possible.'] = 'Luc\'hskeudenn ebet diuzet, obererezh ebet d\'ober.'; -$lang['No user selected, no action possible.'] = 'Implijer ebet diuzet, obererezh ebet d\'ober.'; +$lang['No groups selected, no actions possible.'] = 'Strollad ebet diuzet, obererezh ebet d\'ober.'; +$lang['No photos selected, no actions possible.'] = 'Luc\'hskeudenn ebet diuzet, obererezh ebet d\'ober.'; +$lang['No users selected, no actions possible.'] = 'Implijer ebet diuzet, obererezh ebet d\'ober.'; $lang['No destination tag selected'] = 'Merker pal ebet diuzet'; $lang['No and unlock sub-albums'] = 'Ket ha dibrennañ iz-rummadoù'; $lang['Unlocked'] = 'Dibrennet'; @@ -980,7 +982,7 @@ $lang['Running on an up-to-date Piwigo is important for security.'] = 'Pouezus e $lang['(determined from photos)'] = '(resisaet eus luc\'hskeudennoù)'; $lang['Time has come to update your Piwigo with version %s, go to %s'] = 'Poent eo hizivaat ho Piwigo gant stumm %s, kit da %s'; $lang['Piwigo %s is available, please update'] = 'Piwigo %s a zo hegerzh, hizivait mar plij'; -$lang['No tag selected, no action possible.'] = 'Merker ebet diuzet, obererezh ebet d\'ober.'; +$lang['No tags selected, no actions possible.'] = 'Merker ebet diuzet, obererezh ebet d\'ober.'; $lang['Select tags'] = 'Diuzit ar merkerioù'; $lang['No filter on album. Select one or type to search'] = 'Sil ebet war ar rummad, diuzit unan pe skrivit evit klask'; $lang['checksum'] = 'sammad kontroll'; @@ -1003,4 +1005,4 @@ $lang['Welcome!'] = 'Degemer mat!'; $lang['or'] = 'pe'; $lang['Display album date period'] = 'Diskouez paderezh an deiziadoù e pep rummad, dre skouer « eus an 12 betek ar 15 a viz Gouere 2018 »'; $lang['Piwigo requires an album to add photos.'] = 'Ur rummad en deus ezhom Piwigo da lakaat luc\'hskeudennoù ouzhpenn.'; -$lang['Display category date'] = 'Diskouez deiziat ar rummad'; \ No newline at end of file +$lang['Display category date'] = 'Diskouez deiziat ar rummad'; diff --git a/language/ca_ES/admin.lang.php b/language/ca_ES/admin.lang.php index 85df50b28..441d3f6b0 100644 --- a/language/ca_ES/admin.lang.php +++ b/language/ca_ES/admin.lang.php @@ -653,7 +653,7 @@ $lang['Refresh photo set'] = 'Actualitza les fotos del conjunt'; $lang['The whole page'] = 'La pà gina sencera'; $lang['The whole set'] = 'Tot el conjunt'; $lang['No photo in the current set.'] = 'No hi ha fotos en aquest conjunt.'; -$lang['No photo selected, no action possible.'] = 'No es pot realitzar cap acció ja que no hi ha cap foto seleccionada.'; +$lang['No photos selected, no actions possible.'] = 'No es pot realitzar cap acció ja que no hi ha cap foto seleccionada.'; $lang['Choose an action'] = 'Seleccioneu una acció'; $lang['remove author'] = 'elimina l\'autor'; $lang['Type here the author name'] = 'Escriviu aquà el nom de l\'autor'; @@ -783,6 +783,7 @@ $lang['Original Size'] = 'Mida original'; $lang['Permission granted for groups'] = 'Permisos atorgats a grups'; $lang['Permission granted for users'] = 'PermÃs atorgat a usuaris'; $lang['Photo name'] = 'Nom de la foto'; +$lang['Piwigo for Android'] = 'Piwigo per Android'; $lang['Piwigo for iOS (iPhone, iPad, iPod Touch)'] = 'Piwigo per iOS (iPhone, iPad, iPod Touch)'; $lang['Predefined filter'] = 'Filtre predeterminat'; $lang['Resize after upload'] = 'Redimensionar després de penjar la foto al servidor'; @@ -815,6 +816,7 @@ $lang['registered users'] = 'usuaris registrats'; $lang['%d group'] = '%d grup'; $lang['%d groups'] = '%d grups'; $lang['%u users have automatic permission because they belong to a granted group.'] = '%u usuaris han obtingut permisos automà ticament perquè pertanyen a un grup que li han atorgat el permÃs.'; +$lang['Piwigo for Android application empowers you to connect your Android phone or table to your Piwigo gallery, create some albums and upload several photos at once.'] = 'Piwigo per Android Aquesta aplicació us permet connectar a la vostra galeria Piwigo des d\'un dispositiu Android, crear nous à lbums i penjar và ries fotos a la vegada.'; $lang['Piwigo for iOS application empowers you to connect to your Piwigo gallery from your iPhone, iPad or iPod Touch, create some albums and upload several photos at once.'] = 'Piwigo per iOS Aquesta aplicació us permet connectar a la vostra galeria Piwigo des d\'un iPhone, iPad o iPod Touch, crear à lbums i penjar và ries fotos a la vegada.'; $lang['Add group'] = 'Afegeix grup'; $lang['Adobe Photoshop Lightroom is a photography software designed to manage large quantities of digital images and doing post production work.'] = 'Adobe Photoshop Lightroom és un programari de fotografia dissenyat per a gestionar grans quantitats d\'imatges digitals i realitzar tasques de postproducció.'; @@ -923,7 +925,7 @@ $lang['between %.2f and %.2f'] = 'entre %.2f i %.2f'; $lang['between %d and %d pixels'] = 'entre %d i %d pÃxels'; $lang['Duplicate'] = 'Duplica'; $lang['Merge selected groups'] = 'Fusiona els grups seleccionats'; -$lang['No group selected, no action possible.'] = 'No hi ha cap grup seleccionat, l\'acció no s\'ha pogut dur a terme.'; +$lang['No groups selected, no actions possible.'] = 'No hi ha cap grup seleccionat, l\'acció no s\'ha pogut dur a terme.'; $lang['No members to manage'] = 'No existeixen membres per a gestionar'; $lang['Please select at least two groups'] = 'Heu de selecciona almenys dos grups'; $lang['Rename'] = 'Canvia de nom'; @@ -936,7 +938,7 @@ $lang['The picture dimensions will be reduced to %dx%d pixels.'] = 'Es reduiran $lang['Resize after upload disabled due to the use of GD as graphic library'] = 'Redimensionar després de penjar la foto al servidor deshabilitat degut a l\'ús de la llibreria grà fica GD'; $lang['Select at least one tag'] = 'Seleccioneu almenys una etiqueta'; $lang['Last visit on %s, %s.'] = 'L\'última visita el %s, %s.'; -$lang['No user selected, no action possible.'] = 'No hi ha usuaris seleccionats, l\'acció no ha estat possible'; +$lang['No users selected, no actions possible.'] = 'No hi ha usuaris seleccionats, l\'acció no ha estat possible'; $lang['Registered on %s, %s.'] = 'Registrat el %s, %s'; $lang['Show %s users'] = 'Mostra %s usuaris'; $lang['Users modified'] = 'Usuaris que s\'han modificat'; @@ -1001,7 +1003,7 @@ $lang['delete album and all %d photos, even the %d associated to other albums'] $lang['Dashboard'] = 'Consola'; $lang['Delete album "%s" and its %d sub-albums.'] = 'Elimina l\'à lbum "%s" i els seus %d sub-à lbums'; $lang['No filter on album. Select one or type to search'] = 'No hi ha cap filtre a l\'à lbum, Seleccioneu-ne un o escriviu per cercar-ne'; -$lang['No tag selected, no action possible.'] = 'No s\'ha seleccionat cap etiqueta i no es pot realitzar cap acció'; +$lang['No tags selected, no actions possible.'] = 'No s\'ha seleccionat cap etiqueta i no es pot realitzar cap acció'; $lang['Storage used'] = 'Emmagatzemament utilitzat'; $lang['checksum'] = 'suma de verificació'; $lang['%d checksums were added'] = 's\'han afegit %d checksums'; @@ -1018,4 +1020,4 @@ $lang['Visit'] = 'Visiteu'; $lang['Welcome!'] = 'Benvinguts!'; $lang['With no checksum'] = 'Sense checksum'; $lang['checksums to add'] = 'Checksums per afegir'; -$lang['or'] = 'o'; \ No newline at end of file +$lang['or'] = 'o'; diff --git a/language/cs_CZ/admin.lang.php b/language/cs_CZ/admin.lang.php index dd95cd2c1..3aa2a1a9e 100644 --- a/language/cs_CZ/admin.lang.php +++ b/language/cs_CZ/admin.lang.php @@ -669,7 +669,7 @@ $lang['Refresh photo set'] = 'Obnovit množinu fotografiÃ'; $lang['The whole page'] = 'Celou stránku'; $lang['The whole set'] = 'Celou množinu'; $lang['No photo in the current set.'] = 'Žádná fotografie v aktuálnà množinÄ›.'; -$lang['No photo selected, no action possible.'] = 'Žádná fotografie nenà vybrána, žádná akce nenà možná.'; +$lang['No photos selected, no actions possible.'] = 'Žádná fotografie nenà vybrána, žádná akce nenà možná.'; $lang['Choose an action'] = 'Vyberte akci'; $lang['remove author'] = 'smazat autora'; $lang['Type here the author name'] = 'NapiÅ¡te zde jmého autora'; @@ -819,6 +819,8 @@ $lang['Applications'] = 'Aplikace'; $lang['Available on'] = 'K dispozici na'; $lang['Piwigo for iOS (iPhone, iPad, iPod Touch)'] = 'Piwigo pro iOS (iPhone, iPad, iPod Touch)'; $lang['Piwigo for iOS application empowers you to connect to your Piwigo gallery from your iPhone, iPad or iPod Touch, create some albums and upload several photos at once.'] = 'Piwigo pro iOS aplikace vám dává možnost se pÅ™ipojit do galerie Piwigo z vaÅ¡eho iPhone, iPad nebo iPod Touch, vytvoÅ™it nÄ›jaké alba a nahrávat vÃce fotografià najednou.'; +$lang['Piwigo for Android'] = 'Piwigo pro Android'; +$lang['Piwigo for Android application empowers you to connect your Android phone or table to your Piwigo gallery, create some albums and upload several photos at once.'] = 'Piwigo pro Android aplikace vám dává možnost se pÅ™ipojit do galerie Piwigo z vaÅ¡eho Android telefonu nebo tabletu, vytvoÅ™it nÄ›jaké alba a nahrávat vÃce fotografià najednou.'; $lang['Piwigo Publish plugin for Lightroom'] = 'Piwigo PublikaÄnà plugin pro Lightroom'; $lang['Adobe Photoshop Lightroom is a photography software designed to manage large quantities of digital images and doing post production work.'] = 'Adobe Photoshop Lightroom je fotografický software urÄený ke správÄ› velkého množstvà digitálnÃch fotografià a postprodukÄnÃch pracÃ.'; $lang['The Piwigo publish Plug-in allows you to export and synchronize photos from Lightroom directly to your Piwigo photo gallery.'] = 'Piwigo publikaÄnà Plug-in umožňuje export a synchronizaci fotek z Lightroom pÅ™Ãmo do vašà Piwigo fotogalerie.'; @@ -916,7 +918,7 @@ $lang['between %d and %d pixels'] = 'mezi %d a %d pixely'; $lang['Duplicate'] = 'Duplikovat'; $lang['Manage the members'] = 'Organizovat Äleny'; $lang['Merge selected groups'] = 'Spojit vybrané skupiny'; -$lang['No group selected, no action possible.'] = 'Nenà vybrána žádná skupina, nenà možná řádná akce'; +$lang['No groups selected, no actions possible.'] = 'Nenà vybrána žádná skupina, nenà možná řádná akce'; $lang['No members to manage'] = 'Žádnà Älenové k organizovánÃ'; $lang['Please select at least two groups'] = 'ProsÃm vyberte nejménÄ› dvÄ› skupiny'; $lang['Rename'] = 'PÅ™ejmenovat'; @@ -940,7 +942,7 @@ $lang['General'] = 'VÅ¡eobecné'; $lang['Last visit on %s, %s.'] = 'Poslednà návÅ¡tÄ›va v %s, %s.'; $lang['Loading...'] = 'Nahrává se...'; $lang['No matching user found'] = 'Uživatel odpovÃdajÃcà dotazu hledánà nenalezen'; -$lang['No user selected, no action possible.'] = 'Nebyl zvolen uživatel, akce nenà možná.'; +$lang['No users selected, no actions possible.'] = 'Nebyl zvolen uživatel, akce nenà možná.'; $lang['Password updated'] = 'Heslo aktualizováno'; $lang['Registered on %s, %s.'] = 'Zaregistrován v %s, %s.'; $lang['Show %s users'] = 'Zobraz %s uživatele'; @@ -989,7 +991,7 @@ $lang['checksum'] = 'kontrolnà souÄet'; $lang['Storage used'] = 'Využità úložiÅ¡tÄ›'; $lang['Select tags'] = 'Vyberte Å¡tÃtky'; $lang['Piwigo %s is available, please update'] = 'Piwigo %s je k dispozici, prosÃm aktualizujte'; -$lang['No tag selected, no action possible.'] = 'Nenà vybrán žádný Å¡tÃtek, nenà možná žádná akce.'; +$lang['No tags selected, no actions possible.'] = 'Nenà vybrán žádný Å¡tÃtek, nenà možná žádná akce.'; $lang['It only takes a few clicks.'] = 'Trvá to jen nÄ›kolik kliknutÃ.'; $lang['First photo added'] = 'Prvnà fotka pÅ™idána'; $lang['Delete album "%s".'] = 'Smazat album "%s".'; @@ -1010,4 +1012,4 @@ $lang['With no checksum'] = 'Bez kontroly'; $lang['or'] = 'nebo '; $lang['Deletion in progress'] = 'Odstraňuji...'; $lang['Create a first album'] = 'VytvoÅ™it prvnà album'; -$lang['... or hide this link'] = '... nebo skrýt tento odkaz'; \ No newline at end of file +$lang['... or hide this link'] = '... nebo skrýt tento odkaz'; diff --git a/language/da_DK/admin.lang.php b/language/da_DK/admin.lang.php index 7745c33b7..34bd3bc27 100644 --- a/language/da_DK/admin.lang.php +++ b/language/da_DK/admin.lang.php @@ -636,7 +636,7 @@ $lang['new'] = 'ny'; $lang['No file was uploaded'] = 'Ingen filer blev uploadet'; $lang['No photo in the current set.'] = 'Ingen fotografier i det aktuelle sæt.'; $lang['No photo selected, %d photos in current set'] = 'Ingen fotografier valgt, %d fotografier i nuværende sæt'; -$lang['No photo selected, no action possible.'] = 'Ingen fotografier valgt, ingen mulige handlinger.'; +$lang['No photos selected, no actions possible.'] = 'Ingen fotografier valgt, ingen mulige handlinger.'; $lang['No results'] = 'Ingen resultater'; $lang['on the %d selected photos'] = 'pÃ¥ de %d valgte fotografier'; $lang['Predefined filter'] = 'Foruddefineret filter'; @@ -828,6 +828,7 @@ $lang['Automatic sort order'] = 'Automatisk sorteringsrækkefølge'; $lang['List'] = 'Liste'; $lang['Piwigo export plugin for Aperture'] = 'Piwigo-eksportplugin til Aperture'; $lang['Piwigo export plugin for iPhoto'] = 'Piwigo-eksportplugin til iPhoto'; +$lang['Piwigo for Android'] = 'Piwigo for Android'; $lang['You can activate only one mobile theme.'] = 'Du kan kun aktivere et mobiltema'; $lang['apply automatic sort order'] = 'Aktiver automatisk sorteringsrækkefølge'; $lang['cancel manual order'] = 'afbryd manuel rækkefølge'; @@ -843,6 +844,7 @@ $lang['visitors need to login and have the appropriate permissions to see this a $lang['The uploaded file exceeds the MAX_FILE_SIZE directive that was specified in the HTML form'] = 'Filstørrelsen pÃ¥ den uploadede fil overstiger MAX_FILE_SIZE-definitionen, som er angivet i HTML-formularen'; $lang['Multiple Size'] = 'Flere størrelser'; $lang['%u users have automatic permission because they belong to a granted group.'] = '%u brugere har automatisk tilladelse, fordi de tilhører en gruppe med tilladelser.'; +$lang['Piwigo for Android application empowers you to connect your Android phone or table to your Piwigo gallery, create some albums and upload several photos at once.'] = 'App\'en Piwigo for Android giver dig mulighed for at forbinde en Android-mobiltelelfon eller -tablet med dit Piwigo-galleri, oprette albummer og uploade flere fotografier pÃ¥ én gang.'; $lang['Adobe Photoshop Lightroom is a photography software designed to manage large quantities of digital images and doing post production work.'] = 'Adobe Photoshop Lightroom er et fotografiprogram beregnet til at hÃ¥ndtere store mængder digitale billeder og foretage efterbehandling.'; $lang['Aperture is a powerful tool to refine images and manage massive libraries on Mac.'] = 'Aperture er et ydedygtigt værktøj til at forfine billeder og administrere store biblioteker pÃ¥ en Mac.'; $lang['Aperture is designed for professional photographers with iPhoto simplicity.'] = 'Aperture er udviklet til professionelle fotografer med iPhoto-enkelhed.'; @@ -917,7 +919,7 @@ $lang['between %d and %d pixels'] = 'mellem %d og %d pixels'; $lang['Duplicate'] = 'Kopier'; $lang['Manage the members'] = 'MedlemshÃ¥ndtering'; $lang['Merge selected groups'] = 'Læg valgte grupper sammen'; -$lang['No group selected, no action possible.'] = 'Ingen grupper valgt, handling ikke mulig.'; +$lang['No groups selected, no actions possible.'] = 'Ingen grupper valgt, handling ikke mulig.'; $lang['No members to manage'] = 'Der er ingen medlemmer at hÃ¥ndtere'; $lang['Please select at least two groups'] = 'Vælg mindst to grupper'; $lang['Rename'] = 'Omdøb'; @@ -940,7 +942,7 @@ $lang['Last visit on %s, %s.'] = 'Seneste besøg kl. %s den %s.'; $lang['Loading...'] = 'Indlæser ...'; $lang['No matching user found'] = 'Ingen brugere fundet som opfylder kriteriet'; $lang['No user selected of %d users'] = 'Ingen bruger valgt ud af %d brugere'; -$lang['No user selected, no action possible.'] = 'Ingen bruger valgt, ingen handling er mulig.'; +$lang['No users selected, no actions possible.'] = 'Ingen bruger valgt, ingen handling er mulig.'; $lang['Password updated'] = 'Adgangskoden er opdateret'; $lang['Registered on %s, %s.'] = 'Registreret kl. %s den %s.'; $lang['Show %s users'] = 'Vis %s brugere'; @@ -980,7 +982,7 @@ $lang['Running on an up-to-date Piwigo is important for security.'] = 'Det er af $lang['Select tags'] = 'Vælg tags'; $lang['Share / Send your photos directly from your Mac Os X (10.10 and following) to Piwigo'] = 'Del/send dine fotografier direkte fra macOS (10.10 og nyere) til Piwigo'; $lang['delete album and all %d photos, even the %d associated to other albums'] = 'slet album og alle %d fotografier, selv de %d tilknyttet andre albummer'; -$lang['No tag selected, no action possible.'] = 'Intet tag valgt, ingen handling mulig.'; +$lang['No tags selected, no actions possible.'] = 'Intet tag valgt, ingen handling mulig.'; $lang['Dashboard'] = 'Instrumentbræt'; $lang['delete only album, not photos'] = 'slet kun album, ikke fotografier'; $lang['orphans to delete'] = 'forældreløse der skal slettes'; @@ -1011,4 +1013,4 @@ $lang['Welcome!'] = 'Velkommen!'; $lang['With no checksum'] = 'Uden kontrolsum'; $lang['checksums to add'] = 'kontrolsummer at tilføje'; $lang['or'] = 'eller'; -$lang['%d checksums were added'] = '%d kontrolsummer blev tilføjet'; \ No newline at end of file +$lang['%d checksums were added'] = '%d kontrolsummer blev tilføjet'; diff --git a/language/de_DE/admin.lang.php b/language/de_DE/admin.lang.php index 9cd5cb449..3cb887b33 100644 --- a/language/de_DE/admin.lang.php +++ b/language/de_DE/admin.lang.php @@ -670,7 +670,7 @@ $lang['Refresh photo set'] = 'Fotoset aktualisieren'; $lang['The whole page'] = 'Die ganze Seite'; $lang['The whole set'] = 'Das ganze Set'; $lang['No photo in the current set.'] = 'Keine Fotos im gegenwärtigen Set.'; -$lang['No photo selected, no action possible.'] = 'Kein Foto ausgewählt, keine Aktion möglich.'; +$lang['No photos selected, no actions possible.'] = 'Kein Foto ausgewählt, keine Aktion möglich.'; $lang['Choose an action'] = 'Eine Aktion auswählen'; $lang['remove author'] = 'Autor entfernen'; $lang['Type here the author name'] = 'Geben Sie hier den Name des Autors ein'; @@ -816,9 +816,11 @@ $lang['Web Form'] = 'Webformular'; $lang['With no album'] = 'Ohne Album'; $lang['With no tag'] = 'Ohne Schlagwort'; $lang['With no virtual album'] = 'Ohne virtuelles Album'; +$lang['Piwigo for Android application empowers you to connect your Android phone or table to your Piwigo gallery, create some albums and upload several photos at once.'] = 'Das App Piwigo für Android ermöglicht es Ihnen, sich mit Ihrer Piwigo-Galerie zu verbinden, Alben zu erstellen und mehrere Fotos gleichzeitig hochzuladen.'; $lang['Piwigo for iOS application empowers you to connect to your Piwigo gallery from your iPhone, iPad or iPod Touch, create some albums and upload several photos at once.'] = 'Das App Piwigo für iOS ermöglicht es Ihnen, sich mit Ihrer Piwigo-Galerie zu verbinden, Alben zu erstellen und mehrere Fotos gleichzeitig hochzuladen.'; $lang['Adobe Photoshop Lightroom is a photography software designed to manage large quantities of digital images and doing post production work.'] = 'Adobe Photoshop Lightroom ist eine Bildbearbeitungssoftware, die entwickelt wurde, um eine grosse Anzahl von Bildern zu verwalten und zu bearbeiten.'; $lang['Available on'] = 'Erhältlich bei '; +$lang['Piwigo for Android'] = 'Piwigo für Android'; $lang['Piwigo for iOS (iPhone, iPad, iPod Touch)'] = 'Piwigo für iOS (iPhone, iPad, iPod Touch)'; $lang['Piwigo Publish plugin for Lightroom'] = 'Piwigo-Publish-Plugin für Lightroom'; $lang['The Piwigo publish Plug-in allows you to export and synchronize photos from Lightroom directly to your Piwigo photo gallery.'] = 'Das Piwigo-Publish-Plugin erlaubt es Ihnen, Bilder aus Lightroom zu exportieren und mit Ihrer Piwigo-Fotogalerie zu synchronisieren.'; @@ -917,7 +919,7 @@ $lang['between %d and %d pixels'] = 'zwischen %d und %d Pixel'; $lang['Duplicate'] = 'Duplikat'; $lang['Manage the members'] = 'Benutzer verwalten'; $lang['Merge selected groups'] = 'Gewählte Gruppen zusammenführen'; -$lang['No group selected, no action possible.'] = 'Keine Gruppen ausgewählt, Aktion kann nicht durgeführt werden'; +$lang['No groups selected, no actions possible.'] = 'Keine Gruppen ausgewählt, Aktion kann nicht durgeführt werden'; $lang['No members to manage'] = 'Keine Benutzer zu verwalten'; $lang['Please select at least two groups'] = 'Bitte mindestens zwei Gruppen auswählen'; $lang['Rename'] = 'Umbenennen'; @@ -940,7 +942,7 @@ $lang['Last visit on %s, %s.'] = 'Letzter Besuch am %s, %s.'; $lang['Loading...'] = 'Laden...'; $lang['No matching user found'] = 'Kein übereinstimmender Benutzer gefunden'; $lang['No user selected of %d users'] = 'Kein Benutzer von %d Benutzern ausgewählt'; -$lang['No user selected, no action possible.'] = 'Kein Benutzer ausgewählt, keine Aktion möglich.'; +$lang['No users selected, no actions possible.'] = 'Kein Benutzer ausgewählt, keine Aktion möglich.'; $lang['Password updated'] = 'Passwort geändert'; $lang['Registered on %s, %s.'] = 'Registriert am %s, %s.'; $lang['Show %s users'] = '%s Benutzer anzeigen'; @@ -984,7 +986,7 @@ $lang['Display form'] = 'Zeige Formblatt'; $lang['First photo added'] = 'Erstes hinzugefügtes Foto'; $lang['It only takes a few clicks.'] = 'Es braucht nur ein paar Klicks'; $lang['No filter on album. Select one or type to search'] = 'Kein Filter auf dem Album. Wähle einen oder benutze die Suche'; -$lang['No tag selected, no action possible.'] = 'Kein TAG gewählt, keine Aktion möglich.'; +$lang['No tags selected, no actions possible.'] = 'Kein TAG gewählt, keine Aktion möglich.'; $lang['Piwigo %s is available, please update'] = 'Piwigo %s ist verfügbar, bitte updaten.'; $lang['Piwigo Remote Sync is able to upload a whole folder hierarchy. If you run it again, only new photos will be uploaded.'] = 'Piwigo Remote Sync kann eine ganze Ordnerhierarchie hochladen. Wenn Sie es wieder ausführen, werden nur neue Fotos hochgeladen.'; $lang['Running on an up-to-date Piwigo is important for security.'] = 'Das Ausführen eines up-to-date Piwigo ist wichtig für die Sicherheit.'; @@ -1011,4 +1013,4 @@ $lang['Visit'] = 'Galerie'; $lang['Welcome!'] = 'Willkommen!'; $lang['With no checksum'] = 'Ohne Checksumme'; $lang['or'] = 'oder'; -$lang['Display category date'] = 'Kategorie-Datum anzeigen'; \ No newline at end of file +$lang['Display category date'] = 'Kategorie-Datum anzeigen'; diff --git a/language/el_GR/admin.lang.php b/language/el_GR/admin.lang.php index f8865343b..147a5278f 100644 --- a/language/el_GR/admin.lang.php +++ b/language/el_GR/admin.lang.php @@ -476,7 +476,7 @@ $lang['No photo in the current set.'] = 'Καμιά φωτογÏαφία στο $lang['No photo in this album'] = 'Καμιά φωτογÏαφία σ\' αυτό το λεÏκωμα'; $lang['new'] = 'νÎο'; $lang['No photo selected, %d photos in current set'] = 'Δεν Îχει επιλεγεί φωτογÏαφία , %d φωτογÏαφίες στο Ï„ÏÎχον σÏνολο'; -$lang['No photo selected, no action possible.'] = 'Δεν Îχει επιλεγεί φωτογÏαφία , δεν είναι δυνατή ενÎÏγεια'; +$lang['No photos selected, no actions possible.'] = 'Δεν Îχει επιλεγεί φωτογÏαφία , δεν είναι δυνατή ενÎÏγεια'; $lang['No results'] = 'Δεν υπάÏχουν αποτελÎσματα'; $lang['No user to send notifications by mail.'] = 'ΚανÎνας χÏήστης δεν θα ειδοποιηθεί μÎσω ταχυδÏομείου.'; $lang['None'] = 'ΚανÎνα'; @@ -673,6 +673,7 @@ $lang['%d years'] = '%d χÏόνια'; $lang['%s ago'] = '%s Ï€Ïιν'; $lang['%s in the future'] = '%s στο μÎλλον'; $lang['%u users have automatic permission because they belong to a granted group.'] = '%u χÏήστες Îχουν αυτόματη άδεια επειδή ανήκουν σε μια ομάδα που της Îχει χοÏηγηθεί.'; +$lang['Piwigo for Android application empowers you to connect your Android phone or table to your Piwigo gallery, create some albums and upload several photos at once.'] = 'Η εφαÏμογή Piwigo για το Android που παÏÎχει τη δυνατότητα να συνδεθείτε με τη γκαλεÏί Piwigo σας από το κινητό σας Android ή τη ταμπλÎτα σας και δημιουÏγοÏν μεÏικά άλμπουμ και ανεβάζουν πολλÎÏ‚ φωτογÏαφίες ταυτόχÏονα.'; $lang['Piwigo for iOS application empowers you to connect to your Piwigo gallery from your iPhone, iPad or iPod Touch, create some albums and upload several photos at once.'] = 'Η εφαÏμογή Piwigo για το iOS που παÏÎχει τη δυνατότητα να συνδεθείτε με τη γκαλεÏί Piwigo σας από το iPhone, iPad ή το iPod Touch, δημιουÏγοÏν μεÏικά άλμπουμ και ανεβάζουν πολλÎÏ‚ φωτογÏαφίες ταυτόχÏονα.'; $lang['A locked gallery is only visible to administrators'] = 'Μια κλειδωμÎνη γκαλεÏί είναι οÏατή μόνο στους διαχειÏιστÎÏ‚'; $lang['Added by %s'] = 'Î ÏοστÎθηκε από %s'; @@ -711,6 +712,7 @@ $lang['Photo sizes with crop'] = 'ΜÎγεθος φωτογÏαφίας με Ï„ $lang['Piwigo Publish plugin for Lightroom'] = 'Ï€Ïόσθετο Piwigo για Δημοσίευση από το Lightroom'; $lang['Piwigo export plugin for Aperture'] = 'Piwigo export plugin για το Aperture'; $lang['Piwigo export plugin for iPhoto'] = 'Piwigo export plugin για το iPhoto'; +$lang['Piwigo for Android'] = 'Piwigo για Android'; $lang['Piwigo for iOS (iPhone, iPad, iPod Touch)'] = 'Piwigo για το iOS (iPhone, iPad, iPod Touch)'; $lang['Piwigo publish plugin for Shotwell'] = 'Piwigo publish plugin για το Shotwell'; $lang['Piwigo publish plugin for digiKam'] = 'Piwigo publish plugin για το digiKam'; @@ -916,7 +918,7 @@ $lang['This group will be set to default'] = 'Η ομάδα αυτή θα οÏι $lang['Rename'] = 'Μετονομασία'; $lang['Please select at least two groups'] = 'ΠαÏακαλώ επιλÎξτε τουλάχιστον δÏο ομάδες'; $lang['No members to manage'] = 'ΚανÎνα μÎλος για διαχείÏιση'; -$lang['No group selected, no action possible.'] = 'Καμία ομάδα δεν επιλÎχτηκε, δεν είναι δυνατή η συνÎχεια.'; +$lang['No groups selected, no actions possible.'] = 'Καμία ομάδα δεν επιλÎχτηκε, δεν είναι δυνατή η συνÎχεια.'; $lang['Merge selected groups'] = 'Συγχώνευση επιλεγμÎνων ομάδων'; $lang['Duplicate'] = 'Διπλότυπο'; $lang['Manage the members'] = 'ΔιαχειÏιστείτε τα μÎλη'; @@ -936,7 +938,7 @@ $lang['Showing %s to %s of %s users'] = 'Εμφάνιση από %s ως %s τω $lang['Show %s users'] = 'Εμφάνιση %s χÏηστών'; $lang['Registered on %s, %s.'] = 'ΕγγεγÏαμμÎνοι στις %s, %s.'; $lang['Password updated'] = 'Ο κωδικό Ï€Ïόσβασης ενημεÏώθηκε'; -$lang['No user selected, no action possible.'] = 'ΚανÎνας χÏήστης δεν επιλÎχτηκε, καμία ενÎÏγεια δεν είναι δυνατή.'; +$lang['No users selected, no actions possible.'] = 'ΚανÎνας χÏήστης δεν επιλÎχτηκε, καμία ενÎÏγεια δεν είναι δυνατή.'; $lang['No user selected of %d users'] = 'ΚανÎνας χÏήστης δεν επιλÎχτηκε από %d χÏήστες'; $lang['No matching user found'] = 'Δεν βÏÎθηκε χÏήστης'; $lang['Loading...'] = 'ΦόÏτωση ...'; @@ -981,7 +983,7 @@ $lang['Storage used'] = 'χώÏος αποθήκευσης που χÏησιμο $lang['Share / Send your photos directly from your Mac Os X (10.10 and following) to Piwigo'] = 'ΜοιÏαστείτε / Στείλτε τις φωτογÏαφίες σας απευθείας από το MacOS σας (10.10 και μετά) στο Piwigo'; $lang['Select tags'] = 'ΕπιλÎξτε ετικÎτες'; $lang['Running on an up-to-date Piwigo is important for security.'] = 'ΤÏÎχοντας σε Îνα ενημεÏωμÎνο Piwigo είναι σημαντικό για την ασφάλεια.'; -$lang['No tag selected, no action possible.'] = 'Δεν Îχει επιλεγεί ετικÎτα, καμία ενÎÏγεια δεν είναι δυνατή.'; +$lang['No tags selected, no actions possible.'] = 'Δεν Îχει επιλεγεί ετικÎτα, καμία ενÎÏγεια δεν είναι δυνατή.'; $lang['Piwigo Remote Sync is able to upload a whole folder hierarchy. If you run it again, only new photos will be uploaded.'] = 'Το Piwigo Remote Sync είναι σε θÎση να μεταφοÏτόσει μια ολόκληÏη ιεÏαÏχία φακÎλων. Αν το εκτελÎσετε ξανά, μόνο νÎες φωτογÏαφίες θα μεταφοÏτοθοÏν.'; $lang['Piwigo %s is available, please update'] = 'Το Piwigo %s είναι διαθÎσιμο, παÏακαλώ ενημεÏώστε'; $lang['No filter on album. Select one or type to search'] = 'ΧωÏίς φίλτÏο για λευκώματα. ΕπιλÎξτε Îνα ή πληκτÏολογήστε για αναζήτηση'; @@ -1007,4 +1009,4 @@ $lang['Deletion in progress'] = 'Η διαγÏαφή βÏίσκεται σε ε $lang['Create a first album'] = 'ΔημιουÏγήστε Îνα Ï€Ïώτο λεÏκωμα.'; $lang['Compute %d missing checksums'] = 'Υπολογισμός %d αθÏοίσματα ελÎγχου που λείπουν'; $lang['... or hide this link'] = '...ή να αποκÏÏψει αυτόν τον σÏνδεσμο'; -$lang['%d checksums were added'] = 'Έχουν Ï€Ïοστεθεί %d αθÏοίσματα ελÎγχου'; \ No newline at end of file +$lang['%d checksums were added'] = 'Έχουν Ï€Ïοστεθεί %d αθÏοίσματα ελÎγχου'; diff --git a/language/en_UK/admin.lang.php b/language/en_UK/admin.lang.php index 35f0a6910..6eff4b05a 100644 --- a/language/en_UK/admin.lang.php +++ b/language/en_UK/admin.lang.php @@ -86,6 +86,7 @@ $lang['+ Add an upload box'] = '+ Add an upload box'; $lang[', click on'] = ", click on"; $lang['... or '] = '... or '; $lang['... or hide this link'] = '... or hide this link'; +$lang['Piwigo for Android application empowers you to connect your Android phone or table to your Piwigo gallery, create some albums and upload several photos at once.'] = 'Piwigo for Android application empowers you to connect your Android phone or tablet to your Piwigo gallery, create some albums and upload several photos at once.'; $lang['Piwigo for iOS application empowers you to connect to your Piwigo gallery from your iPhone, iPad or iPod Touch, create some albums and upload several photos at once.'] = 'Piwigo for iOS application empowers you to connect to your Piwigo gallery from your iPhone, iPad or iPod Touch, create some albums and upload several photos at once.'; $lang['A locked gallery is only visible to administrators'] = 'A locked gallery is only visible to administrators'; $lang['A new version of Piwigo is available.'] = "A new version of Piwigo is available."; @@ -294,7 +295,6 @@ $lang['Download,'] = 'Download,'; $lang['Downloads'] = "Downloads"; $lang['Drag to re-order'] = "Click-and-drag to re-order"; $lang['Drop into album'] = 'Select an album'; -$lang['Dump Database'] = 'Dump Database'; $lang['Duplicate selected tags'] = 'Duplicate selected tags'; $lang['Duplicate'] = 'Duplicate'; $lang['Duplicates'] = 'Duplicates'; @@ -408,7 +408,6 @@ $lang['Inactive Plugins'] = 'Inactive Plugins'; $lang['Inactive Themes'] = 'Inactive themes'; $lang['include child albums'] = 'include child albums'; $lang['Include display of recent photos grouped by dates'] = "Include display of recent photos grouped by dates"; -$lang['Include history data (Warning: server memory limit may be exceeded)'] = 'Include history data (Warning: server memory limit may be exceeded)'; $lang['include photos with lower privacy level'] = 'include photos with lower privacy level'; $lang['Information data registered in database'] = "Information data registered in database"; $lang['Informations'] = "Information"; @@ -511,15 +510,15 @@ $lang['No destination tag selected'] = 'No destination tag selected'; $lang['No display'] = "No display"; $lang['No file was uploaded'] = 'No file was uploaded'; $lang['No group is permitted to see this private album'] = 'No group is permitted to see this private album'; -$lang['No group selected, no action possible.'] = 'No group selected, no action possible.'; +$lang['No groups selected, no actions possible.'] = 'No groups selected, no actions possible.'; $lang['No mail to send.'] = "No mail to be sent."; $lang['No members to manage'] = "No members to manage"; $lang['No order field selected'] = 'No order field selected'; $lang['No photo can be deleted'] = "No photo can be deleted"; -$lang['No photo in the current set.'] = 'No photo in the current set.'; +$lang['No photo in the current set.'] = 'No photos in the current set.'; $lang['No photo in this album'] = "No photo in this album"; -$lang['No photo selected, %d photos in current set'] = 'No photo selected, %d photos in current set'; -$lang['No photo selected, no action possible.'] = 'No photo selected, no action possible.'; +$lang['No photo selected, %d photos in current set'] = 'No photos selected, %d photos in current set'; +$lang['No photos selected, no actions possible.'] = 'No photos selected, no actions possible.'; $lang['No results'] = "No results"; $lang['No user to send notifications by mail.'] = "No user to be notified by mail."; $lang['no write access'] = "no write access"; @@ -603,6 +602,7 @@ $lang['Piwigo cannot retrieve upgrade file from server'] = 'Piwigo cannot retrie $lang['Piwigo configuration'] = "Piwigo configuration"; $lang['Piwigo export plugin for Aperture'] = 'Piwigo export plugin for Aperture'; $lang['Piwigo export plugin for iPhoto'] = 'Piwigo export plugin for iPhoto'; +$lang['Piwigo for Android'] = 'Piwigo for Android'; $lang['Piwigo for iOS (iPhone, iPad, iPod Touch)'] = 'Piwigo for iOS (iPhone, iPad, iPod Touch)'; $lang['Piwigo publish plugin for digiKam'] = 'Piwigo publish plugin for digiKam'; $lang['Piwigo Publish plugin for Lightroom'] = 'Piwigo Publish plugin for Lightroom'; @@ -834,7 +834,6 @@ $lang['Type here the title'] = 'Type the title here'; $lang['Type here the name of the new group'] = 'Type the name of the new group here'; $lang['Type in a search term'] = "Type in a search term"; $lang['Unable to check for upgrade.'] = "Unable to check for upgrade."; -$lang['Unable to dump database.'] = 'Unable to dump database.'; $lang['Uncheck all'] = "Uncheck all"; $lang['Uninstall'] = "Uninstall"; $lang['Uninstalled Plugins'] = 'Uninstalled Plugins'; @@ -941,7 +940,7 @@ $lang['Show %s users'] = 'Show %s users'; $lang['No matching user found'] = 'No matching user found'; $lang['Showing %s to %s of %s users'] = 'Showing %s to %s of %s users'; $lang['(filtered from %s total users)'] = '(filtered from %s total users)'; -$lang['No user selected, no action possible.'] = 'No user selected, no action possible.'; +$lang['No users selected, no actions possible.'] = 'No users selected, no actions possible.'; $lang['%d of %d users selected'] = '%d of %d users selected'; $lang['No user selected of %d users'] = 'No user selected of %d users'; $lang['All %d users are selected'] = 'All %d users are selected'; @@ -974,7 +973,7 @@ $lang['No user is permitted to see this private album'] = 'No user is permitted $lang['Each email sent will contain its own automatic authentication key on links, valid for %s.'] = 'Each email sent will contain its own automatic authentication key on links, valid for %s.'; $lang['For security reason, authentication keys do not work for administrators.'] = 'For security reason, authentication keys do not work for administrators.'; $lang['Select tags'] = 'Select tags'; -$lang['No tag selected, no action possible.'] = 'No tag selected, no action possible.'; +$lang['No tags selected, no actions possible.'] = 'No tags selected, no actions possible.'; $lang['Display form'] = 'Display form'; $lang['Delete album "%s".'] = 'Delete album "%s".'; $lang['Delete album "%s" and its %d sub-albums.'] = 'Delete album "%s" and its %d sub-albums.'; @@ -1007,4 +1006,73 @@ $lang['Display album date period'] = 'Show the date period associated with each $lang['Welcome!'] = 'Welcome!'; $lang['Piwigo requires an album to add photos.'] = 'Piwigo requires an album to add photos.'; $lang['Create a first album'] = 'Create a first album'; +$lang['Search tips'] = 'Search tips'; +$lang['Posted %s'] = 'Posted %s'; +$lang['File type: %s'] = 'File type: %s'; $lang['or'] = 'or'; +$lang['Open in gallery'] = "Open in gallery"; +$lang['Promote mobile app on mobile devices'] = 'Promote mobile app on mobile devices'; +$lang['in gallery'] = 'in gallery'; +$lang['in administration'] = 'in administration'; +$lang['Displays a banner to install or open the official Piwigo app'] = 'Displays a banner to install or open the official Piwigo app'; +$lang['Search albums'] = 'Search albums'; +$lang['Portraits'] = 'Portraits'; +$lang['You have %d orphan tags %s'] = 'You have %d orphan tags %s'; +$lang['Review'] = 'Review'; +$lang['You have %s1 orphan : %s2'] = 'You have %s1 orphan : %s2'; +$lang['Delete tag "%s"?'] = 'Delete tag "%s"?'; +$lang['Delete tags \{%s\}?'] = 'Delete tags \{%s\}?'; +$lang['Yes, delete'] = 'Yes, delete'; +$lang['No, I have changed my mind'] = 'No, I have changed my mind'; +$lang['Tag "%s" succesfully deleted'] = 'Tag \"%s\" succesfully deleted'; +$lang['Tags \{%s\} succesfully deleted'] = 'Tags \{%s\} succesfully deleted'; +$lang['Tag "%s" created'] = 'Tag "%s" created'; +$lang['Tag "%s1" renamed in "%s2"'] = 'Tag \"%s1\" renamed in \"%s2\"'; +$lang['Delete orphan tags ?'] = 'Delete orphan tags ?'; +$lang['Delete them'] = 'Delete them'; +$lang['Keep them'] = 'Keep them'; +$lang[' (copy)'] = ' (copy)'; +$lang[' (copy %s)'] = ' (copy %s)'; +$lang['Tag(s) \{%s1\} succesfully merged into "%s2"'] = 'Tag(s) \{%s1\} succesfully merged into "%s2"'; +$lang['and %s others'] = 'and %s others'; +$lang['%s other tags available..'] = '%s other tags available..'; +$lang['%d photos'] = '%d photos'; +$lang['no photo'] = 'no photo'; +$lang['Select all %d tags'] = 'Select all %d tags'; +$lang['Clear Selection'] = 'Clear Selection'; +$lang['The %d tags on this page are selected'] = 'The %d tags on this page are selected'; +$lang['%d tag selected'] = '%d tag selected'; +$lang['%d tags found'] = '%d tags found'; +$lang['%d tag found'] = '%d tag found'; +$lang['Selection mode'] = 'Selection mode'; +$lang['At least 2 selected tags are needed to merge'] = 'At least 2 selected tags are needed to merge'; +$lang['Merge'] = 'Merge'; +$lang['Choose which tag to merge these tags into'] = 'Choose which tag to merge these tags into'; +$lang['The other tags will be removed'] = 'The other tags will be removed'; +$lang['Display'] = 'Display'; +$lang['Select'] = 'Select'; +$lang['Tag Manager'] = 'Tag Manager'; +$lang['No tag found'] = 'No tag found'; +$lang['Manage album photos'] = 'Manage album photos'; +$lang['Manage sub-albums'] = 'Manage sub-albums'; +$lang['Delete album'] = 'Delete album'; +$lang['Are you sure you want to delete this site?'] = 'Are you sure you want to delete this site?'; +$lang['Yes, I am sure'] = 'Yes, I am sure'; +$lang['Are you sure you want to delete this theme?'] = 'Are you sure you want to delete this theme?'; +$lang['Are you sure you want to restore this plugin?'] = 'Are you sure you want to restore this plugin?'; +$lang['Are you sure you want to delete this?'] = 'Are you sure you want to delete this?'; +$lang['Are you sure you want to restore to default settings?'] = 'Are you sure you want to restore to default settings?'; +$lang['Are you sure you want to delete the ratings of the user "%s"?'] = 'Are you sure you want to delete the ratings of the user "%s"?'; +$lang['Are you sure you want to install the plugin "%s"?'] = 'Are you sure you want to install the plugin "%s"?'; +$lang['Are you sure you want to delete the plugin "%s"?'] = 'Are you sure you want to delete the plugin "%s"?'; +$lang['Are you sure you want to restore the plugin "%s"?'] = 'Are you sure you want to restore the plugin "%s"?'; +$lang['Are you sure you want to delete all sizes?'] = 'Are you sure you want to delete all sizes?'; +$lang['Are you sure you want to lock the gallery?'] = 'Are you sure you want to lock the gallery?'; +$lang['Are you sure you want to delete the language "%s"?'] = 'Are you sure you want to delete the language "%s"?'; +$lang['Are you sure you want to delete the theme "%s"?'] = 'Are you sure you want to delete the theme "%s"?'; +$lang['Are you sure you want to update all extensions?'] = 'Are you sure you want to update all extensions?'; +$lang['Are you sure you want to delete the user "%s"?'] = 'Are you sure you want to delete the user "%s"?'; +$lang['Please upgrade your PHP version before any update.'] = 'Please upgrade your PHP version before any update.'; +$lang['Requires PHP %s'] = 'Requires PHP %s'; +$lang['%s MB used'] = '%s MB used'; +$lang['%s GB used'] = '%s GB used'; diff --git a/language/en_UK/common.lang.php b/language/en_UK/common.lang.php index c07b04d6f..649387757 100644 --- a/language/en_UK/common.lang.php +++ b/language/en_UK/common.lang.php @@ -252,6 +252,7 @@ $lang['Password Reset'] = 'Password Reset'; $lang['password updated'] = "password updated"; $lang['Password'] = "Password"; $lang['Password: %s'] = 'Password: %s'; +$lang['Password: ********** (no copy by email)'] = 'Password: ********** (no copy by email)'; $lang['Pause of slideshow'] = "Pause slideshow"; $lang['Permalink for album not found'] = 'Permalink for album not found'; $lang['Photo sizes'] = 'Photo sizes'; @@ -413,4 +414,5 @@ $lang['Link: %s'] = 'Link: %s'; $lang['Your authentication key is no longer valid.'] = 'Your authentication key is no longer valid.'; $lang['Invalid username or password!'] = 'Invalid username or password!'; $lang['generate random password'] = 'generate random password'; +$lang['Related albums'] = 'Related albums'; ?> diff --git a/language/eo_EO/admin.lang.php b/language/eo_EO/admin.lang.php index 3d5a6406a..5e95211ed 100644 --- a/language/eo_EO/admin.lang.php +++ b/language/eo_EO/admin.lang.php @@ -362,6 +362,7 @@ $lang['Album "%s" has been added'] = 'Fotaro "%s" aldoniÄis'; $lang['Adobe Photoshop Lightroom is a photography software designed to manage large quantities of digital images and doing post production work.'] = 'Adobe Photoshop Lightroom estas fota programaro desegnita por administri grandajn kvantojn de ciferecaj bildoj kaj post-trakti ilin.'; $lang['Add write access to the "%s" directory'] = 'Aldonu skribaliron al la dosierujo "%s"'; $lang['Piwigo for iOS application empowers you to connect to your Piwigo gallery from your iPhone, iPad or iPod Touch, create some albums and upload several photos at once.'] = 'La aplikaĵo Piwigo por iOS ebligas vin konektiÄi al via galerio Piwigo, por krei fotarojn kaj elÅuti plurajn fotojn unufoje el via iPhone, iPas aÅ iPod Touch.'; +$lang['Piwigo for Android application empowers you to connect your Android phone or table to your Piwigo gallery, create some albums and upload several photos at once.'] = 'La aplikaĵo Piwigo por Android ebligas vin konektiÄi al via galerio Piwigo, por krei fotarojn kaj elÅuti plurajn fotojn unufoje el via telefono aÅ tabuleto Android.'; $lang['Advanced features'] = 'Specialaj funkcioj'; $lang['Access type'] = 'Tipo de atingo'; $lang['Allow user customization'] = 'Permesi al uzantoj tajloradon'; @@ -462,7 +463,7 @@ $lang['New photos added'] = 'Novaj fotoj aldonitaj'; $lang['New photos were added'] = 'Novaj fotoj aldoniÄis'; $lang['New tag'] = 'Nova etikedo'; $lang['No file was uploaded'] = 'Neniu dosiero alÅutiÄis'; -$lang['No group selected, no action possible.'] = 'Neniu grupo estis selektita, neniu ago eblas.'; +$lang['No groups selected, no actions possible.'] = 'Neniu grupo estis selektita, neniu ago eblas.'; $lang['No mail to send.'] = 'Neniu mesaÄo sendenda.'; $lang['No members to manage'] = 'Neniu membro administrenda '; $lang['Maximum width'] = 'Maksimuma larÄo'; @@ -473,7 +474,7 @@ $lang['Merge selected tags'] = 'Kunfandi la selektitajn etikedojn'; $lang['Merge tags'] = 'Kunfandi etikedojn'; $lang['No photo can be deleted'] = 'Eblas forigi neniun foton '; $lang['No photo in this album'] = 'Neniu foto en tiu fotaro'; -$lang['No photo selected, no action possible.'] = 'Sen foto selektita, neniu ago eblas.'; +$lang['No photos selected, no actions possible.'] = 'Sen foto selektita, neniu ago eblas.'; $lang['No results'] = 'Neniu rezulto'; $lang['No user to send notifications by mail.'] = 'Neniun uzanton oni sciigos retmesaÄe.'; $lang['None'] = 'Nenio'; @@ -797,6 +798,7 @@ $lang['Piwigo Publish plugin for Lightroom'] = 'publikigokromaĵo de Piwigo por $lang['Piwigo configuration'] = 'Agordo de Piwigo'; $lang['Piwigo export plugin for Aperture'] = 'eksportokromaĵo por Aperture'; $lang['Piwigo export plugin for iPhoto'] = 'eksportokromaĵo por iPhoto'; +$lang['Piwigo for Android'] = 'Piwigo por Android'; $lang['Piwigo for iOS (iPhone, iPad, iPod Touch)'] = 'Piwigo por iOS (iPhone, iPad, iPod Touch)'; $lang['Piwigo publish plugin for Shotwell'] = 'publikigokromaĵo de Piwigo por Shotwell'; $lang['Piwigo publish plugin for digiKam'] = 'publikigokromaĵo de Piwigo por digiKam'; @@ -913,7 +915,7 @@ $lang['Change username'] = 'ÅœanÄi salutnomon'; $lang['Loading...'] = 'Åœutante...'; $lang['No matching user found'] = 'Neniu kongruanta uzanto troviÄis'; $lang['No user selected of %d users'] = 'Neniu uzanto selektita el %d uzantoj'; -$lang['No user selected, no action possible.'] = 'Sen uzanto selektita, neniu ago eblas.'; +$lang['No users selected, no actions possible.'] = 'Sen uzanto selektita, neniu ago eblas.'; $lang['Password updated'] = 'Pasvorto ÄisdatiÄis'; $lang['Show %s users'] = 'Montri %s uzantojn'; $lang['Showing %s to %s of %s users'] = 'Montrante %s Äis %s el %s uzantoj'; @@ -962,7 +964,7 @@ $lang['date & time'] = 'dato & horo'; $lang['file name'] = 'dosieronomo'; $lang['width & height'] = 'larÄeco & alteco'; $lang['Upload in progress'] = 'AlÅutanta'; -$lang['No tag selected, no action possible.'] = 'Neniu marko elektita, neniu ago eblas'; +$lang['No tags selected, no actions possible.'] = 'Neniu marko elektita, neniu ago eblas'; $lang['(determined from photos)'] = '(determinita el la fotoj)'; $lang['Display form'] = 'Montri formularon'; $lang['delete only album, not photos'] = 'Forigi nur fortarojn, NE fotojn'; @@ -983,8 +985,8 @@ $lang['Select tags'] = 'Elekti markojn'; $lang['Storage used'] = 'Konservado uzata'; $lang['checksum'] = 'kontrolsumo'; $lang['For security reason, authentication keys do not work for administrators.'] = 'Pro sekurecaj kialoj, aÅtentiga Ålosilo ne funkcias por administrantoj'; -$lang['No user is permitted to see this private album'] = 'Neniu uzanto rajtas vidi tiun privatan fotaron'; -$lang['delete album and the %d orphan photos'] = 'Forigu fotaron kaj la %d orfajn fotojn'; +$lang['No user is permitted to see this private album'] = 'Neniu uzanto rajtas vidi tiun privatan albumon'; +$lang['delete album and the %d orphan photos'] = 'Forigu albumon kaj la %d orfajn fotojn'; $lang['Y Repeat'] = 'Y ripetiÄas'; $lang['Time has come to update your Piwigo with version %s, go to %s'] = 'Tempo venis por Äisdatigi vian Piwigo per verio %s, iru al %s'; $lang['Share / Send your photos directly from your Mac Os X (10.10 and following) to Piwigo'] = 'Kunhavigi/Sendi fotojn rekte el via macOS (10.10 kaj poste) al Piwigo'; @@ -1007,4 +1009,4 @@ $lang['Create a first album'] = 'Krei unuan fotaron'; $lang['Deletion in progress'] = 'Foriganta'; $lang['Piwigo requires an album to add photos.'] = 'Piwigo bezonas fotaron por aldoni fotojn.'; $lang['Welcome!'] = 'Bonvenon!'; -$lang['or'] = 'aÅ'; \ No newline at end of file +$lang['or'] = 'aÅ'; diff --git a/language/es_ES/admin.lang.php b/language/es_ES/admin.lang.php index 2e35a7ffe..27c541f59 100644 --- a/language/es_ES/admin.lang.php +++ b/language/es_ES/admin.lang.php @@ -660,7 +660,7 @@ $lang['Refresh photo set'] = 'Actualizar el lote de fotos'; $lang['The whole page'] = 'Página entera'; $lang['The whole set'] = 'La totalidad del lote'; $lang['No photo in the current set.'] = 'No hay fotos en este lote.'; -$lang['No photo selected, no action possible.'] = 'Selecciona al menos una foto para ejecutar cualquier acción.'; +$lang['No photos selected, no actions possible.'] = 'Selecciona al menos una foto para ejecutar cualquier acción.'; $lang['Choose an action'] = 'Seleccionar una acción'; $lang['remove author'] = 'eliminar el autor'; $lang['Type here the author name'] = 'Escriba el nombre del autor'; @@ -811,6 +811,7 @@ $lang['Not cropped correctly?'] = '¿No se ha recortado correctamente?'; $lang['Save manual order'] = 'Guardar orden manual'; $lang['Web Form'] = 'Formulario web'; $lang['You can activate only one mobile theme.'] = 'Sólo se puede activar un tema para dispositivos móviles.'; +$lang['Piwigo for Android application empowers you to connect your Android phone or table to your Piwigo gallery, create some albums and upload several photos at once.'] = 'La aplicación Piwigo para Android te permite conectarte a tu galerÃa Piwigo desde tu teléfono o tablet Android, crear álbumes y subir varias fotos a la vez.'; $lang['Piwigo for iOS application empowers you to connect to your Piwigo gallery from your iPhone, iPad or iPod Touch, create some albums and upload several photos at once.'] = 'Las aplicación Piwigo para iOS te permite conectarte a tu galerÃa Piwigo desde tu iPhone, iPad o iPod Touch, crear álbumes y subir varias fotos a la vez.'; $lang['Adobe Photoshop Lightroom is a photography software designed to manage large quantities of digital images and doing post production work.'] = 'Adobe Lightroom es un software fotográfico diseñado para administrar grandes cantidades de imágenes y realizar el procesado de las mismas.'; $lang['Aperture is a powerful tool to refine images and manage massive libraries on Mac.'] = 'Aperture es una potente herramienta para editar imágenes y administrar grandes colecciones en Mac.'; @@ -826,6 +827,7 @@ $lang['iPhoto is the default photo manager on MacOSX. The Piwigo export plugin l $lang['On your Linux, simply install Shotwell with your package manager and the activate Piwigo publishing option.'] = 'Para Linux, simplemente instala Shotwell con el gestor de paquetes y activa la opción de publicación en Piwigo.'; $lang['Piwigo export plugin for Aperture'] = 'Plugin de Piwigo para Aperture'; $lang['Piwigo export plugin for iPhoto'] = 'Plugin de Piwigo para iPhoto'; +$lang['Piwigo for Android'] = 'Piwigo para Android'; $lang['Piwigo for iOS (iPhone, iPad, iPod Touch)'] = 'Piwigo para iOS (iPhone, iPad, iPod Touch)'; $lang['Piwigo publish plugin for digiKam'] = 'Plugin de Piwigo para digiKam'; $lang['Piwigo Publish plugin for Lightroom'] = 'Plugin de publicación de Piwigo para Lightroom'; @@ -912,7 +914,7 @@ $lang['between %d and %d pixels'] = 'entre %d y %d pixels'; $lang['Duplicate'] = 'Duplicar'; $lang['Manage the members'] = 'Gestionar los miembros'; $lang['Merge selected groups'] = 'Combinar grupos seleccionados'; -$lang['No group selected, no action possible.'] = 'Ningún grupo seleccionado, no hay acción posible.'; +$lang['No groups selected, no actions possible.'] = 'Ningún grupo seleccionado, no hay acción posible.'; $lang['No members to manage'] = 'Ningún miembro para gestionar'; $lang['Please select at least two groups'] = 'Por favor, seleccione por lo menos dos grupos'; $lang['Rename'] = 'Renombrar'; @@ -936,7 +938,7 @@ $lang['Last visit on %s, %s.'] = 'Ultima visita el %s, %s'; $lang['Loading...'] = 'Cargando...'; $lang['No matching user found'] = 'Ningún miembro coincidentes encontrados'; $lang['No user selected of %d users'] = 'Ninguno de los %d usuarios seleccionados'; -$lang['No user selected, no action possible.'] = 'Ningún usuario seleccionado, ninguna acción posible. '; +$lang['No users selected, no actions possible.'] = 'Ningún usuario seleccionado, ninguna acción posible. '; $lang['Password updated'] = 'Contraseña actualizado'; $lang['Registered on %s, %s.'] = 'Registrado el %s, %s'; $lang['Show %s users'] = 'Mostrar %s usuarios'; @@ -982,7 +984,7 @@ $lang['Display form'] = 'Mostrar desde'; $lang['First photo added'] = 'Primera foto añadida'; $lang['It only takes a few clicks.'] = 'Solo hacen falta unos pocos clicks.'; $lang['No filter on album. Select one or type to search'] = 'Sin filtro en el álbum. Selecciona uno o teclea para buscar.'; -$lang['No tag selected, no action possible.'] = 'No se han seleccionado etiquetas, no hay ninguna acción posible.'; +$lang['No tags selected, no actions possible.'] = 'No se han seleccionado etiquetas, no hay ninguna acción posible.'; $lang['Piwigo %s is available, please update'] = 'Piwigo %s está disponible, por favor actualiza.'; $lang['Piwigo Remote Sync is able to upload a whole folder hierarchy. If you run it again, only new photos will be uploaded.'] = 'Piwigo Remote Sync puede subir toda la jerarquÃa de una carpeta. Si lo ejecutas de nuevo, solo las fotos nuevas se subirán.'; $lang['Running on an up-to-date Piwigo is important for security.'] = 'Ejecutar una versión actualizada de Piwigo es importante por seguridad.'; @@ -1007,4 +1009,4 @@ $lang['Visit'] = 'Visitar'; $lang['Welcome!'] = '¡Bienvenidos!'; $lang['With no checksum'] = 'Sin checksum'; $lang['checksums to add'] = 'Checksums que añadir'; -$lang['or'] = 'o'; \ No newline at end of file +$lang['or'] = 'o'; diff --git a/language/et_EE/admin.lang.php b/language/et_EE/admin.lang.php index f89a806c0..7115d26e8 100644 --- a/language/et_EE/admin.lang.php +++ b/language/et_EE/admin.lang.php @@ -106,6 +106,7 @@ $lang['%s must be to set to false in your local/config/config.inc.php file'] = ' $lang['%s value is not correct file because exif are not supported'] = '%s väärtus on vale, kuna Exif metaandmeid ei toetata'; $lang['%u users have automatic permission because they belong to a granted group.'] = '%u kasutajatel on automaatselt luba, kuna nad kuuluvad loaga gruppi.'; $lang['(this tag will be deleted)'] = '(see märksõna kustutakse)'; +$lang['Piwigo for Android application empowers you to connect your Android phone or table to your Piwigo gallery, create some albums and upload several photos at once.'] = 'Piwigo for Android on programm mis võimaldab sul ühenduda Android telefoni või tahvelarvutiga su Piwigo galleriisse, toimetada albumeid ja laadida üles fotosid.'; $lang['Piwigo for iOS application empowers you to connect to your Piwigo gallery from your iPhone, iPad or iPod Touch, create some albums and upload several photos at once.'] = 'Piwigo for iOS on programm mis võimaldab sul ühenduda iPhone, iPad või iPod Touch-iga su Piwigo galleriisse, toimetada albumeid ja laadida üles fotosid.'; $lang['A locked gallery is only visible to administrators'] = 'Lukustatud galleriid on ainult nähtavad administraatoritele'; $lang['A new version of Piwigo is available.'] = 'Piwigo uus versioon on saadaval.'; @@ -446,7 +447,7 @@ $lang['No photo can be deleted'] = 'Ühtki fotot ei saa kustutada'; $lang['No photo in the current set.'] = 'Fotod puuduvad valitud kogumikus.'; $lang['No photo in this album'] = 'Selles albumis pole ühtki fotot'; $lang['No photo selected, %d photos in current set'] = 'Ühtki fotot pole valitud, selles kogumikus on %d fotot.'; -$lang['No photo selected, no action possible.'] = 'Ühtki fotot pole valitud, ükski tegevus pole võimalik'; +$lang['No photos selected, no actions possible.'] = 'Ühtki fotot pole valitud, ükski tegevus pole võimalik'; $lang['No results'] = 'Ei leidnud vasteid'; $lang['No user to send notifications by mail.'] = 'Ühtki kasutajat pole, keda teavitada epostiga.'; $lang['None'] = 'Mitte ükski'; @@ -509,6 +510,7 @@ $lang['Piwigo cannot retrieve upgrade file from server'] = 'Piwigo ei suutnud sa $lang['Piwigo configuration'] = 'Piwigo seadistused'; $lang['Piwigo export plugin for Aperture'] = 'Piwigo eksportimisplugin Aperturele'; $lang['Piwigo export plugin for iPhoto'] = 'Piwigo eksportimisplugin iPhotole'; +$lang['Piwigo for Android'] = 'Piwigo Androidile'; $lang['Piwigo for iOS (iPhone, iPad, iPod Touch)'] = 'Piwigo iOS-ile (iPhone, iPad, iPod Touch)'; $lang['Piwigo publish plugin for Shotwell'] = 'Piwigo avaldamisplugin rakendusele Shotwell'; $lang['Piwigo publish plugin for digiKam'] = 'Piwigo avaldamisplugin rakendusele digiKam'; @@ -915,7 +917,7 @@ $lang['between %d and %d pixels'] = '%d ja %d pikslite vahel'; $lang['This group will be unset to default'] = 'Seda rühma ei kasutata edaspidi vaikerühmana'; $lang['Type here the name of the new group'] = 'Nimeta uus rühm'; $lang['Merge selected groups'] = 'Liida valitud rühmad'; -$lang['No group selected, no action possible.'] = 'Ühtegi rühma pole valitud, seega ei saa midagi teha.'; +$lang['No groups selected, no actions possible.'] = 'Ühtegi rühma pole valitud, seega ei saa midagi teha.'; $lang['No members to manage'] = 'Puudub liikmeid keda hallata'; $lang['Please select at least two groups'] = 'Vali vähemalt kaks rühma'; $lang['Rename'] = 'Nimeta ümber'; @@ -944,7 +946,7 @@ $lang['Last visit on %s, %s.'] = 'Viimane külastus %s, %s.'; $lang['Loading...'] = 'Laadimine...'; $lang['No matching user found'] = 'Vastet ei leitud'; $lang['No user selected of %d users'] = 'Kasutajat ei valitud etteantud %d kasutajatest'; -$lang['No user selected, no action possible.'] = 'Kasutajaid pole valitud, ei saa midagi teha'; +$lang['No users selected, no actions possible.'] = 'Kasutajaid pole valitud, ei saa midagi teha'; $lang['Password updated'] = 'Parool uuendatud'; $lang['Registered on %s, %s.'] = 'Registreeritud %s, %s.'; $lang['Show %s users'] = 'Näita %s kasutajaid'; @@ -990,7 +992,7 @@ $lang['Piwigo %s is available, please update'] = 'Piwigo %s on saadaval, palun u $lang['Piwigo Remote Sync is able to upload a whole folder hierarchy. If you run it again, only new photos will be uploaded.'] = 'Piwigo Remote Sync saab üles laadida kogu kausta hierarhia. Kui käivitad selle uuesti, siis laetakse ainult uued fotod'; $lang['Recipients'] = 'Saajad'; $lang['Running on an up-to-date Piwigo is important for security.'] = 'Värske Piwigo versiooni kasutamine on turvalisuse huvides oluline'; -$lang['No tag selected, no action possible.'] = 'Silti ei ole valitud, toiming ei ole võimalik'; +$lang['No tags selected, no actions possible.'] = 'Silti ei ole valitud, toiming ei ole võimalik'; $lang['Select tags'] = 'Vali sildid'; $lang['For security reason, authentication keys do not work for administrators.'] = 'Turvalisuse huvides autenteerimise võti administraatorite puhul ei toimi.'; $lang['(determined from photos)'] = '(määratud fotode järgi)'; @@ -1001,4 +1003,4 @@ $lang['Piwigo requires an album to add photos.'] = 'Fotode lisamiseks on vaja lu $lang['Display category date'] = 'Näita kategooria kuupäeva'; $lang['Deletion in progress'] = 'Toimub kustutamine'; $lang['Create a first album'] = 'Loo esimene album'; -$lang['... or hide this link'] = '... või peida see link'; \ No newline at end of file +$lang['... or hide this link'] = '... või peida see link'; diff --git a/language/eu_ES/admin.lang.php b/language/eu_ES/admin.lang.php index 158a07893..87528c86f 100755 --- a/language/eu_ES/admin.lang.php +++ b/language/eu_ES/admin.lang.php @@ -389,12 +389,12 @@ $lang['No user is permitted to see this private album'] = 'Ez da erabiltzailerik $lang['No results'] = 'Ez dago emaitzarik'; $lang['No recipient selected'] = 'Ez da hartzailerik hautatu'; $lang['No matching user found'] = 'Ez da aurkitu ba datorren erabiltzailerik'; -$lang['No photo selected, no action possible.'] = 'Ez da argazkirik hautatu, ez dago burutu daiteken ekintzarik.'; +$lang['No photos selected, no actions possible.'] = 'Ez da argazkirik hautatu, ez dago burutu daiteken ekintzarik.'; $lang['No photo selected, %d photos in current set'] = 'Ez da argazkirik hautatu, %d argazki uneko multzoan'; $lang['No photo in this album'] = 'Ez dago argazkirik albumean'; $lang['No photo in the current set.'] = 'Ez dago argazkirik uneko multzoan.'; $lang['No photo can be deleted'] = 'Ezin daiteke argazkirik ezabatu'; -$lang['No group selected, no action possible.'] = 'Ez da talderik hautatu, ez dago burutu daiteken ekintzarik.'; +$lang['No groups selected, no actions possible.'] = 'Ez da talderik hautatu, ez dago burutu daiteken ekintzarik.'; $lang['No order field selected'] = 'Ez da hautatu ordena-eremurik '; $lang['No members to manage'] = 'Ez dago kudeatu beharreko kiderik'; $lang['No mail to send.'] = 'Ez dago bidali beharreko posta elektronikorik.'; @@ -624,7 +624,7 @@ $lang['Notification'] = 'Jakinarazpena'; $lang['Not cropped correctly?'] = 'Ez al da behar bezala moztu?'; $lang['None'] = 'Bat ere ez'; $lang['No user to send notifications by mail.'] = 'Ez dago erabiltzailerik posta elektroniko bidez jakinarazteko.'; -$lang['No user selected, no action possible.'] = 'Ez da erabiltzailerik hautatu, ez dago burutu daiteken ekintzarik.'; +$lang['No users selected, no actions possible.'] = 'Ez da erabiltzailerik hautatu, ez dago burutu daiteken ekintzarik.'; $lang['Support'] = 'Laguntza'; $lang['Summary'] = 'Laburpena'; $lang['Sum of rates'] = 'Balorazioen batuketa'; @@ -980,7 +980,7 @@ $lang['Select tags'] = 'Hautatu etiketak'; $lang['Running on an up-to-date Piwigo is important for security.'] = 'Eguneratutako Piwigo bertsioa exekutatzea garrantzitsua da segurtasun kontuekaitik.'; $lang['Piwigo Remote Sync is able to upload a whole folder hierarchy. If you run it again, only new photos will be uploaded.'] = 'Piwigo Remote Sync karpeta-hierarki osoa kargatzeko ahalmena du. Berriro exekutatzen baduzu, argazki berriak baino ez dira kargatuko.'; $lang['Piwigo %s is available, please update'] = 'Piwigo %s eskuragarri, eguneratu mesedez'; -$lang['No tag selected, no action possible.'] = 'Ez da etiketarik hautatu, ezin da ekintzarik aurrera eraman.'; +$lang['No tags selected, no actions possible.'] = 'Ez da etiketarik hautatu, ezin da ekintzarik aurrera eraman.'; $lang['No filter on album. Select one or type to search'] = 'Ez dago iragazkirik albumerako. Hautatu edo bilatu bat'; $lang['It only takes a few clicks.'] = 'Klik gutxi batzu baino ez da.'; $lang['First photo added'] = 'Lehenengo argazkia gehitu egin da'; @@ -1004,4 +1004,4 @@ $lang['Deletion in progress'] = 'Ezabatzen'; $lang['Create a first album'] = 'Sortu Lehenengo Album bat'; $lang['Compute %d missing checksums'] = 'Kalkulatu galdutako %d kontroleko batura(k)'; $lang['... or hide this link'] = '... edo ezkutatu esteka'; -$lang['%d checksums were added'] = '%d kontroleko batura gehitu d(ir)a'; \ No newline at end of file +$lang['%d checksums were added'] = '%d kontroleko batura gehitu d(ir)a'; diff --git a/language/fa_IR/admin.lang.php b/language/fa_IR/admin.lang.php index 9eb8713da..e9886d647 100644 --- a/language/fa_IR/admin.lang.php +++ b/language/fa_IR/admin.lang.php @@ -665,7 +665,7 @@ $lang['Refresh photo set'] = 'تازه کردن (Refresh) Ø³ÙØª عکس ها'; $lang['The whole page'] = 'تمام ØµÙØÙ‡'; $lang['The whole set'] = 'تمامی عکس ها (Ú©Ù„ Ø³ÙØª)'; $lang['No photo in the current set.'] = 'هیچ عکسی در این Ø³ÙØª نیست.'; -$lang['No photo selected, no action possible.'] = 'هیچ عکسی انتخاب نشده است، هیچ کاری ممکن نیست.'; +$lang['No photos selected, no actions possible.'] = 'هیچ عکسی انتخاب نشده است، هیچ کاری ممکن نیست.'; $lang['Choose an action'] = 'یک کار را انتخاب کنید'; $lang['remove author'] = 'پاک کردن نویسنده'; $lang['Type here the author name'] = 'نام نویسنده را اینجا تایپ نمایید'; @@ -842,6 +842,7 @@ $lang['Multiple Size'] = 'چند سایزه'; $lang['Not cropped correctly?'] = 'درست بریده نشد؟'; $lang['Numeric identifier : %d'] = 'شناسه‌ی عددی: %d'; $lang['Permission management'] = 'مدیریت دسترسی‌ها'; +$lang['Piwigo for Android'] = 'Ø¯Ø±ÛŒØ§ÙØª Piwigo برای Android'; $lang['Rated %d times, score : %.2f'] = 'به تعداد %d بار رأی داده شده، امتیاز : %.2f'; $lang['Save manual order'] = 'ذخیره ÛŒ ترتیب دستی'; $lang['Sharpen'] = 'ØØ§Ù„ت تیز (Sharpen)'; @@ -859,6 +860,7 @@ $lang['cancel manual order'] = 'لغو تغییرات ترتیب دستی'; $lang['middle'] = 'وسط'; $lang['top left corner'] = 'گوشه ÛŒ بالا سمت Ú†Ù¾'; $lang['top right corner'] = 'گوشه ÛŒ بالا سمت راست'; +$lang['Piwigo for Android application empowers you to connect your Android phone or table to your Piwigo gallery, create some albums and upload several photos at once.'] = 'Ù†Ø±Ù…â€ŒØ§ÙØ²Ø§Ø± Piwigo برای Android به شما قدرت وصل شدن به گالری، ساخت آلبوم Ùˆ آپلود عکس به Ú©Ù…Ú© موبایل یا تبلت آندرویدتان را می‌دهد.'; $lang['Piwigo for iOS application empowers you to connect to your Piwigo gallery from your iPhone, iPad or iPod Touch, create some albums and upload several photos at once.'] = 'Ù†Ø±Ù…â€ŒØ§ÙØ²Ø§Ø± Piwigo برای iOS به شما قدرت وصل شدن به گالری، ساخت آلبوم Ùˆ آپلود عکس به Ú©Ù…Ú© iPhoneØŒ iPad یا iPod Touch ـتان را می‌دهد.'; $lang['Adobe Photoshop Lightroom is a photography software designed to manage large quantities of digital images and doing post production work.'] = 'Adobe Photoshop Lightroom یک Ù†Ø±Ù…â€ŒØ§ÙØ²Ø§Ø± عکاسی می‌باشد Ú©Ù‡ برای مدیریت عکس‌های دیجیتالی بزرگ طراØÛŒ شده است.'; $lang['Center of interest'] = 'نقطه‌ی طلایی (Center of Interest)'; @@ -913,7 +915,7 @@ $lang['View in gallery'] = 'نمایش در گالری'; $lang['Duplicate'] = 'دوتایی کردن'; $lang['Manage the members'] = 'مدیریت کاربران'; $lang['Merge selected groups'] = 'ترکیب گروه‌های انتخاب شده'; -$lang['No group selected, no action possible.'] = 'گروهی انتخاب نشده است، هیچ کاری انجام نخواهد شد.'; +$lang['No groups selected, no actions possible.'] = 'گروهی انتخاب نشده است، هیچ کاری انجام نخواهد شد.'; $lang['No members to manage'] = 'کاربری برای ترکیب وجود ندارد'; $lang['Please select at least two groups'] = 'دست Ú©Ù… باید دو گروه را انتخاب کنید'; $lang['Ratio'] = 'نسبت'; @@ -943,7 +945,7 @@ $lang['Showing %s to %s of %s users'] = 'نمايش از %s تا %s از بين $lang['Show %s users'] = 'نمايش %s كاربر'; $lang['Registered on %s, %s.'] = 'ثبت شده در %s, %s.'; $lang['Open user details'] = 'باز كردن مشخصات كاربر'; -$lang['No user selected, no action possible.'] = 'هيچ كاربري انتخاب نشده است، هيچ كاري ممكن نيست.'; +$lang['No users selected, no actions possible.'] = 'هيچ كاربري انتخاب نشده است، هيچ كاري ممكن نيست.'; $lang['No user selected of %d users'] = 'هيچ كاربري از بين %d كاربر انتخاب نشده است.'; $lang['Last visit on %s, %s.'] = 'آخرين بازديد در %s, %s.'; $lang['Close user details'] = 'بستن مشخصات كاربر'; @@ -993,7 +995,7 @@ $lang['(determined from photos)'] = '(تعیین شده از روی عکس‌ه $lang['Confirm deletion'] = 'تایید پاک کردن'; $lang['Delete album "%s" and its %d sub-albums.'] = 'آلبوم "%s" Ùˆ همه‌ی %d زیرآلبوم آن پاک شوند.'; $lang['No filter on album. Select one or type to search'] = 'Ùیلتری روی آلبوم اعمال نشده است. یک Ùیلتر انتخاب کرده Ùˆ یا واژه‌ی مورد نظر خود را تایپ کنید'; -$lang['No tag selected, no action possible.'] = 'هیچ برچسبی انتخاب نشده، کاری قابل انجام نیست'; +$lang['No tags selected, no actions possible.'] = 'هیچ برچسبی انتخاب نشده، کاری قابل انجام نیست'; $lang['Piwigo %s is available, please update'] = 'ورژن %s از Piwigo آماده‌ی آپدیت کردن است '; $lang['Piwigo Remote Sync is able to upload a whole folder hierarchy. If you run it again, only new photos will be uploaded.'] = 'Piwigo Remote Sync قابلیت این را دارد Ú©Ù‡ یک پوشه(Ùولدر) را با تمام زیر مجموعه هایش آپلود کند. اگر مجدد این عملیات را انجام دهید Ùقط موارد جدید آپلود میشود.'; diff --git a/language/fi_FI/admin.lang.php b/language/fi_FI/admin.lang.php index bd267d869..153ed79be 100644 --- a/language/fi_FI/admin.lang.php +++ b/language/fi_FI/admin.lang.php @@ -482,6 +482,7 @@ $lang['Automatic sort order'] = 'Automaattinen järjestys'; $lang['Available on'] = 'Saatavilla'; $lang['Average rate'] = 'Pisteiden keskiarvo'; $lang['Batch Manager'] = 'Massahallintatyökalu'; +$lang['Piwigo for Android application empowers you to connect your Android phone or table to your Piwigo gallery, create some albums and upload several photos at once.'] = 'Piwigo Androidille applikaatio mahdollistaa yhdistämisen Android laitteestasi Piwigo galleriaan albumeiden luontia ja kuvien lisäämistä varten.'; $lang['Options'] = 'Valinnat'; $lang['Original Size'] = 'Alkuperäinen koko'; $lang['No photo in the current set.'] = 'Ei kuvaa tässä setissä'; @@ -557,7 +558,7 @@ $lang['Search for new images in the directories'] = 'Etsi uusia kuvia hakemistoi $lang['Searching...'] = 'Etsii...'; $lang['Type in a search term'] = 'Kirjoita hakusana'; $lang['Permissions'] = 'Oikeudet'; -$lang['No photo selected, no action possible.'] = 'Ei valittua valokuvaa, ei mahdollisia toimintoja.'; +$lang['No photos selected, no actions possible.'] = 'Ei valittua valokuvaa, ei mahdollisia toimintoja.'; $lang['Select:'] = 'Valitse:'; $lang['Selection'] = 'Valinta'; $lang['Delete %d orphan photos'] = 'Poista %d orpoa valokuvaa'; @@ -597,4 +598,4 @@ $lang['Properties'] = 'Ominaisuudet'; $lang['Manage this set of %d photos'] = 'Hallitse tätä %d:n kuvan sarjaa.'; $lang['Empty caddie'] = 'Tyhjennä caddie'; $lang['Remove from caddie'] = 'Poista caddiesta'; -$lang['add new photos to caddie'] = 'Lisää uusia kuvia caddiesta'; \ No newline at end of file +$lang['add new photos to caddie'] = 'Lisää uusia kuvia caddiesta'; diff --git a/language/fr_CA/admin.lang.php b/language/fr_CA/admin.lang.php index 768e3c875..890af82e1 100644 --- a/language/fr_CA/admin.lang.php +++ b/language/fr_CA/admin.lang.php @@ -665,7 +665,7 @@ $lang['Missing a temporary folder'] = 'Impossible de trouver le répertoire temp $lang['No file was uploaded'] = 'Aucun fichier n\'a été transféré'; $lang['No photo in the current set.'] = 'Aucune photo dans le lot.'; $lang['No photo selected, %d photos in current set'] = 'Aucune photo sélectionnée parmi les %d photos du lot'; -$lang['No photo selected, no action possible.'] = 'Aucune photo sélectionnée, aucune action possible.'; +$lang['No photos selected, no actions possible.'] = 'Aucune photo sélectionnée, aucune action possible.'; $lang['on the %d selected photos'] = 'sur les %d photos sélectionnées'; $lang['Orphan tags deleted'] = 'Mots clés orphelins supprimés'; $lang['Refresh photo set'] = 'Rafraîchir le lot de photos'; @@ -826,6 +826,8 @@ $lang['Applications'] = 'Applications'; $lang['Available on'] = 'Disponible sur'; $lang['Piwigo for iOS (iPhone, iPad, iPod Touch)'] = 'Piwigo pour iOS (iPhone, iPad, iPod Touch)'; $lang['Piwigo for iOS application empowers you to connect to your Piwigo gallery from your iPhone, iPad or iPod Touch, create some albums and upload several photos at once.'] = 'L\'application Piwigo pour iOS vous permet de connecter votre iPhone, iPad ou iPod Touch à votre galerie Piwigo pour y créer des albums et envoyer plusieurs photos à la fois.'; +$lang['Piwigo for Android'] = 'Piwigo pour Android'; +$lang['Piwigo for Android application empowers you to connect your Android phone or table to your Piwigo gallery, create some albums and upload several photos at once.'] = 'L\'application Piwigo pour Android vous permet de connecter votre smartphone ou votre tablette Android à votre galerie Piwigo pour y créer des albums et envoyer plusieurs photos à la fois.'; $lang['Piwigo Publish plugin for Lightroom'] = 'Plugin de publication Piwigo pour Lightroom'; $lang['Adobe Photoshop Lightroom is a photography software designed to manage large quantities of digital images and doing post production work.'] = 'Adobe Photoshop Lightroom est un logiciel de photographie conçu pour gérer d\'importantes collections de photos numériques et les post-traiter.'; $lang['The Piwigo publish Plug-in allows you to export and synchronize photos from Lightroom directly to your Piwigo photo gallery.'] = 'Le plugin de publication Piwigo pour Lightroom vous permet d\'exporter et synchroniser vos photos de Lightroom vers votre galerie Piwigo.'; @@ -911,7 +913,7 @@ $lang['Source tag'] = 'Source du mot clé'; $lang['Tag "%s" is now a duplicate of "%s"'] = 'Le mot clé "%s" est désormais une copie de "%s"'; $lang['Manage the members'] = 'Gérer les membres'; $lang['Type here the name of the new group'] = 'Inscrivez ici le nom du nouveau groupe'; -$lang['No group selected, no action possible.'] = 'Pas de groupes sélectionnés, pas d\'actions possibles.'; +$lang['No groups selected, no actions possible.'] = 'Pas de groupes sélectionnés, pas d\'actions possibles.'; $lang['Please select at least two groups'] = 'Merci de sélectionner au moins deux groupes'; $lang['Duplicate'] = 'Dupliquer'; $lang['Merge selected groups'] = 'Fusionner les groupes sélectionnés'; @@ -946,7 +948,7 @@ $lang['Last visit on %s, %s.'] = 'Dernière visite le %s, %s.'; $lang['Loading...'] = 'Chargement...'; $lang['No matching user found'] = 'Aucun utilisateur à afficher'; $lang['No user selected of %d users'] = 'Aucun utilisateur sélectionné sur les %d'; -$lang['No user selected, no action possible.'] = 'Aucun utilisateur sélectionné, aucune action possible.'; +$lang['No users selected, no actions possible.'] = 'Aucun utilisateur sélectionné, aucune action possible.'; $lang['Password updated'] = 'Mot de passe mis à jour'; $lang['Registered on %s, %s.'] = 'Enregistré depuis le %s, %s.'; $lang['Show %s users'] = 'Afficher %s utilisateurs'; @@ -974,9 +976,9 @@ $lang['file name'] = 'nom de fichier'; $lang['width & height'] = 'largeur et hauteur'; $lang['Select tags'] = 'Sélectionner des mots clés'; $lang['Each email sent will contain its own automatic authentication key on links, valid for %s.'] = 'Chaque courriel envoyé contiendra sa propre clef d\'identification automatique sur les liens, valide %s.'; -$lang['No tag selected, no action possible.'] = 'Aucun mot clé sélectionné, aucune action possible.'; +$lang['No tags selected, no actions possible.'] = 'Aucun mot clé sélectionné, aucune action possible.'; $lang['checksums to add'] = 'Checksums à ajouter'; $lang['With no checksum'] = 'Sans checksums'; $lang['Some checksums are missing.'] = 'Des checksums sont manquants'; $lang['Compute %d missing checksums'] = 'Calcule %d des checksums manquants'; -$lang['%d checksums were added'] = '%d des checksums ont été ajoutés'; \ No newline at end of file +$lang['%d checksums were added'] = '%d des checksums ont été ajoutés'; diff --git a/language/fr_CA/common.lang.php b/language/fr_CA/common.lang.php index 50d10915e..2a4a9c6b2 100644 --- a/language/fr_CA/common.lang.php +++ b/language/fr_CA/common.lang.php @@ -417,4 +417,4 @@ $lang['Photo description'] = 'Description de la photo'; $lang['Photo title'] = 'Titre de la photo'; $lang['generate random password'] = 'générer un mot de passe aléatoire'; $lang['Your authentication key is no longer valid.'] = 'Voter clef d\'identification n\'est plus valide'; -$lang['Invalid username or password!'] = 'Nom d\'utilisateur ou mot de passe invalide !'; \ No newline at end of file +$lang['Invalid username or password!'] = 'Nom d\'utilisateur ou mot de passe invalide !'; diff --git a/language/fr_FR/admin.lang.php b/language/fr_FR/admin.lang.php index 87fce89ec..0f51a8e8c 100644 --- a/language/fr_FR/admin.lang.php +++ b/language/fr_FR/admin.lang.php @@ -204,8 +204,8 @@ $lang['jump to photo'] = 'Voir la photo'; $lang['leave'] = "laisser"; $lang['Lock'] = "Verrouiller"; $lang['Locked'] = "Verrouillées"; -$lang['manage album photos'] = 'Gérer les photos de l\'album'; -$lang['manage sub-albums'] = 'Gérer les sous-albums'; +$lang['manage album photos'] = 'gérer les photos de l\'album'; +$lang['manage sub-albums'] = 'gérer les sous-albums'; $lang['Manage'] = "Gérer"; $lang['Execution time is out, treatment must be continue [Estimated time: %d second].'] = "Le temps d'exécution étant dépassé, le traitement doit continuer [Temps estimé: %d second]."; $lang['Execution time is out, treatment must be continue [Estimated time: %d seconds].'] = "Le temps d'exécution étant dépassé, le traitement doit continuer [Temps estimé: %d secondes]."; @@ -458,9 +458,9 @@ $lang['Plugin list'] = "Liste des plugins"; $lang['Check for updates'] = "Rechercher les mises à jour"; $lang['Other plugins'] = "Autres plugins disponibles"; $lang['Last revisions'] = "Dernières révisions"; -$lang['Are you sure you want to delete this plugin?'] = "Etes-vous sûr de vouloir supprimer ce plugin?"; -$lang['Are you sure you want to install this plugin?'] = "Etes-vous sûr de vouloir installer ce plugin?"; -$lang['Are you sure to install this upgrade? You must verify if this version does not need uninstallation.'] = "Etes-vous sur de vouloir installer cette mise à jour? Vous devez vérifiez que cette mise à jour ne nécessite pas de désinstallation préalable."; +$lang['Are you sure you want to delete this plugin?'] = "Êtes-vous sûr de vouloir supprimer ce plugin?"; +$lang['Are you sure you want to install this plugin?'] = "Êtes-vous sûr de vouloir installer ce plugin?"; +$lang['Are you sure to install this upgrade? You must verify if this version does not need uninstallation.'] = "Êtes-vous sur de vouloir installer cette mise à jour? Vous devez vérifiez que cette mise à jour ne nécessite pas de désinstallation préalable."; $lang['Plugin has been successfully copied'] = "Le plugin a été copié avec succès."; $lang['Can\'t create temporary file.'] = "Impossible de créer un fichier temporaire."; $lang['Can\'t download archive.'] = "Impossible de télécharger l'archive."; @@ -674,7 +674,7 @@ $lang['Refresh photo set'] = 'Rafraîchir le lot de photos'; $lang['The whole page'] = 'Toute la page'; $lang['The whole set'] = 'Tout le lot'; $lang['No photo in the current set.'] = 'Aucune photo dans le lot.'; -$lang['No photo selected, no action possible.'] = 'Aucune photo sélectionnée, aucune action possible.'; +$lang['No photos selected, no actions possible.'] = 'Aucune photo sélectionnée, aucune action possible.'; $lang['Choose an action'] = 'Choisir une action'; $lang['remove author'] = 'supprimer l\'auteur'; $lang['Type here the author name'] = 'Entrez ici le nom de l\'auteur'; @@ -701,7 +701,7 @@ $lang['THIS PLUGIN IS NOW PART OF PIWIGO CORE! DELETE IT NOW.'] = 'CE PLUGIN FAI $lang['ERROR: THIS PLUGIN IS MISSING BUT IT IS INSTALLED! UNINSTALL IT NOW.'] = 'ERREUR: CE PLUGIN EST MANQUANT MAIS TOUJOURS INSTALLÉ! DÉSINSTALLEZ-LE.'; $lang['display'] = 'Afficher'; $lang['Restore'] = "Restaurer"; -$lang['Restore default configuration. You will lose your plugin settings!'] = "Restaurer la configuration par défaut? Vous perdrez vos réglages personnels !"; +$lang['Restore default configuration. You will lose your plugin settings!'] = "Restaurer la configuration par défaut ? Vous perdrez vos réglages personnels !"; $lang['Thumbnails generation in progress...'] = 'Génération des miniatures en cours...'; $lang['Photos generation in progress...'] = 'Génération des photos en cours...'; $lang['%s photos have been regenerated'] = '%s photos ont été régénérées'; @@ -823,6 +823,8 @@ $lang['Applications'] = 'Applications'; $lang['Available on'] = 'Disponible sur'; $lang['Piwigo for iOS (iPhone, iPad, iPod Touch)'] = 'Piwigo pour iOS (iPhone, iPad, iPod Touch)'; $lang['Piwigo for iOS application empowers you to connect to your Piwigo gallery from your iPhone, iPad or iPod Touch, create some albums and upload several photos at once.'] = 'L\'application Piwigo pour iOS vous permet de connecter votre iPhone, iPad ou iPod Touch à votre galerie Piwigo pour y créer des albums et envoyer plusieurs photos à la fois.'; +$lang['Piwigo for Android'] = 'Piwigo pour Android'; +$lang['Piwigo for Android application empowers you to connect your Android phone or table to your Piwigo gallery, create some albums and upload several photos at once.'] = 'L\'application Piwigo pour Android vous permet de connecter votre smartphone ou votre tablette Android à votre galerie Piwigo pour y créer des albums et envoyer plusieurs photos à la fois.'; $lang['Piwigo Publish plugin for Lightroom'] = 'Plugin de publication Piwigo pour Lightroom'; $lang['Adobe Photoshop Lightroom is a photography software designed to manage large quantities of digital images and doing post production work.'] = 'Adobe Photoshop Lightroom est un logiciel de photographie conçu pour gérer d\'importantes collections de photos numériques et les post-traiter.'; $lang['The Piwigo publish Plug-in allows you to export and synchronize photos from Lightroom directly to your Piwigo photo gallery.'] = 'Le plugin de publication Piwigo pour Lightroom vous permet d\'exporter et synchroniser vos photos de Lightroom vers votre galerie Piwigo.'; @@ -877,7 +879,7 @@ $lang['Y Position'] = 'Position Y'; $lang['Multiple Size'] = 'Tailles multiples'; $lang['Watermark'] = 'Filigrane'; $lang['Original file : %s'] = 'Fichier original : %s'; -$lang['Posted %s on %s'] = 'Postée %s le %s'; +$lang['Posted the %s'] = 'Postée le %s'; $lang['Added by %s'] = 'Ajouté par %s'; $lang['Visited %d times'] = 'Visitée %d fois'; $lang['Numeric identifier : %d'] = 'Identifiant numérique : %d'; @@ -899,7 +901,7 @@ $lang['%d minutes'] = '%d minutes'; $lang['%d second'] = '%d seconde'; $lang['%d seconds'] = '%d secondes'; $lang['Sharpen'] = 'Renforcer la netteté'; -$lang['Edit photo'] = 'Éditer la photo'; +$lang['Edit photo #%s'] = 'Éditer la photo #%s'; $lang['create a new site'] = 'créer un nouveau site'; $lang['No order field selected'] = 'Aucun critère de tri sélectionné'; $lang['Name of the duplicate'] = "Nom du duplicata"; @@ -919,7 +921,7 @@ $lang['between %d and %d pixels'] = 'entre %d et %d pixels'; $lang['between %.2f and %.2f'] = 'entre %.2f et %.2f'; $lang['Manage the members'] = 'Gérer les membres'; $lang['Type here the name of the new group'] = 'Inscrivez ici le nom du nouveau groupe'; -$lang['No group selected, no action possible.'] = 'Pas de groupes sélectionnés, pas d\'actions possibles.'; +$lang['No groups selected, no actions possible.'] = 'Pas de groupes sélectionnés, pas d\'actions possibles.'; $lang['Please select at least two groups'] = 'Merci de sélectionner au moins deux groupes'; $lang['Duplicate'] = 'Dupliquer'; $lang['Merge selected groups'] = 'Fusionner les groupes sélectionnés'; @@ -937,7 +939,7 @@ $lang['Show %s users'] = 'Afficher %s utilisateurs'; $lang['No matching user found'] = 'Aucun utilisateur à afficher'; $lang['Showing %s to %s of %s users'] = 'Affichage des utilisateurs %s à %s sur %s'; $lang['(filtered from %s total users)'] = '(filtré de %s utilisateurs au total)'; -$lang['No user selected, no action possible.'] = 'Aucun utilisateur sélectionné, aucune action possible.'; +$lang['No users selected, no actions possible.'] = 'Aucun utilisateur sélectionné, aucune action possible.'; $lang['%d of %d users selected'] = '%d des %d utilisateurs sélectionnés.'; $lang['No user selected of %d users'] = 'Aucun utilisateur sélectionné sur les %d'; $lang['All %d users are selected'] = 'Tous les %d utilisateurs sont sélectionnés'; @@ -976,7 +978,7 @@ $lang['Each email sent will contain its own automatic authentication key on link $lang['For security reason, authentication keys do not work for administrators.'] = 'Par mesure de sécurité les clefs d\'identification ne fonctionnent pas pour les administrateurs.'; $lang['Y Repeat'] = 'Répétition Y'; $lang['Select tags'] = 'Sélectionner des tags'; -$lang['No tag selected, no action possible.'] = 'Aucun tag sélectionné, aucune action possible.'; +$lang['No tags selected, no actions possible.'] = 'Aucun tag sélectionné, aucune action possible.'; $lang['Display form'] = 'Afficher le formulaire'; $lang['Delete album "%s".'] = 'Supprimer l\'album "%s".'; $lang['Delete album "%s" and its %d sub-albums.'] = 'Supprimer l\'album "%s" et ses %d sous-albums.'; @@ -1000,6 +1002,9 @@ $lang['Time has come to update your Piwigo with version %s, go to %s'] = 'Il est $lang['Welcome!'] = 'Bienvenue !'; $lang['Piwigo requires an album to add photos.'] = 'Piwigo a besoin d\'un album pour y ajouter des photos.'; $lang['Create a first album'] = 'Créer un premier album'; +$lang['Search tips'] = 'Conseils de recherche'; +$lang['Posted %s'] = 'Postée %s'; +$lang['File type: %s'] = 'Type du fichier : %s'; $lang['or'] = 'ou'; $lang['%d checksums were added'] = '%d sommes de contrôle ont été ajoutées'; $lang['Compute %d missing checksums'] = 'Calcule %d sommes de contrôle manquantes'; @@ -1009,4 +1014,68 @@ $lang['checksums to add'] = 'sommes de contrôle à ajouter'; $lang['Synchronization in progress'] = 'Synchronisation en cours'; $lang['Some checksums are missing.'] = 'Il manque des sommes de contrôle'; $lang['Display category date'] = 'Afficher la date de la catégorie'; -$lang['Deletion in progress'] = 'Suppression en cours'; \ No newline at end of file +$lang['Deletion in progress'] = 'Suppression en cours'; +$lang['Open in gallery'] = "Ouvrir dans la galerie"; +$lang['Promote mobile app on mobile devices'] = 'Promouvoir l\'application mobile sur les smartphones et tablettes'; +$lang['in gallery'] = 'dans la galerie'; +$lang['in administration'] = 'dans l\'administration'; +$lang['Displays a banner to install or open the official Piwigo app'] = 'Affiche une bannière pour installer et/ou ouvrir l\'application mobile officielle Piwigo'; +$lang['Search albums'] = 'Rechercher des albums'; +$lang['You have %d orphan tags %s'] = 'Vous avez %d tag(s) orphelin(s) %s'; +$lang['Review'] = 'Examiner'; +$lang['You have %s1 orphan : %s2'] = 'Vous avez %s1 orphelin(s) : %s2'; +$lang['Delete tags \{%s\}?'] = 'Supprimer les tags \{%s\}?'; +$lang['Yes, delete'] = 'Oui, je veux supprimer'; +$lang['No, I have changed my mind'] = 'Non, j\'ai changé d\'avis'; +$lang['Tag "%s" succesfully deleted'] = 'Le tag \"%s\" a été supprimé'; +$lang['Tags \{%s\} succesfully deleted'] = 'Les tags \{%s\} ont été supprimés'; +$lang['Tag "%s" created'] = 'Le tag \"%s\" a été créé'; +$lang['Tag "%s1" renamed in "%s2"'] = 'Le tag \"%s1\" a été renommé en \"%s2\"'; +$lang['Delete orphan tags ?'] = 'Supprimer les tags orphelins?'; +$lang['Delete them'] = 'Les supprimer'; +$lang['Keep them'] = 'Les garder'; +$lang[' (copy)'] = ' (copie)'; +$lang[' (copy %s)'] = ' (copie %s)'; +$lang['Tag(s) \{%s1\} succesfully merged into "%s2"'] = 'Les tags \{%s1\} ont été fusionnés dans "%s2"'; +$lang['and %s others'] = 'et %s autres'; +$lang['%s other tags available..'] = '%s autres tags disponibles..'; +$lang['%d photos'] = '%d photos'; +$lang['no photo'] = 'pas de photos'; +$lang['Select all %d tags'] = 'Selectionner tout des %d tags'; +$lang['Clear Selection'] = 'Vider la sélection'; +$lang['The %d tags on this page are selected'] = 'Les %d tags sur cette page sont sélectionnés'; +$lang['%d tag selected'] = '%d tag sélectionné'; +$lang['%d tags found'] = '%d tags trouvés'; +$lang['%d tag found'] = '%d tag trouvé'; +$lang['Selection mode'] = 'Mode sélection'; +$lang['At least 2 selected tags are needed to merge'] = 'Au moins 2 tags doivent être sélectionnés pour fusionner'; +$lang['Merge'] = 'Fusionner'; +$lang['Choose which tag to merge these tags into'] = 'Choisissez dans quel tag vont être fusionné les tags'; +$lang['The other tags will be removed'] = 'Les autres tags seront supprimés'; +$lang['Select'] = 'Sélectionner'; +$lang['Tag Manager'] = 'Gestionnaire de tags'; +$lang['No tag found'] = 'Pas de tag trouvé'; +$lang['Manage album photos'] = 'Gérer les photos de l\'album'; +$lang['Manage sub-albums'] = 'Gérer les sous-albums'; +$lang['Delete album'] = 'Supprimer l\'album'; +$lang['Are you sure you want to delete this site?'] = 'Êtes-vous sûr de supprimer ce site ?'; +$lang['Yes, I am sure'] = 'Oui, je suis sûr'; +$lang['Are you sure you want to delete this theme?'] = 'Êtes-vous sûr de supprimer ce thème ?'; +$lang['Are you sure you want to restore this plugin?'] = 'Êtes-vous sûr de restaurer ce plugin ?'; +$lang['Are you sure you want to delete this?'] = 'Êtes-vous sûr de supprimer cela ?'; +$lang['Are you sure you want to restore to default settings?'] = 'Êtes-vous sûr de vouloir rétablir les valeurs par défaut ?'; +$lang['Are you sure you want to delete the ratings of the user "%s"?'] = 'Êtes-vous sûr de vouloir supprimer les notations de l\'utilisateur "%s" ?'; +$lang['Are you sure you want to install the plugin "%s"?'] = 'Êtes-vous sûr de vouloir installer le plugin "%s" ?'; +$lang['Are you sure you want to delete the plugin "%s"?'] = 'Êtes-vous sûr de vouloir supprimer le plugin "%s" ?'; +$lang['Are you sure you want to restore the plugin "%s"?'] = 'Êtes-vous sûr de vouloir restaurer le plugin "%s" ?'; +$lang['Are you sure you want to delete all sizes?'] = 'Êtes-vous sûr de vouloir supprimer toutes les tailles ?'; +$lang['Are you sure you want to lock the gallery?'] = 'Êtes-vous sûr de vouloir verrouiller la galerie ?'; +$lang['Are you sure you want to delete the language "%s"?'] = 'Êtes-vous sûr de vouloir supprimer la langue "%s" ?'; +$lang['Are you sure you want to delete the theme "%s"?'] = 'Êtes-vous sûr de vouloir supprimer le thème "%s" ?'; +$lang['Are you sure you want to update all extensions?'] = 'Êtes-vous sûr de vouloir mettre à jour toutes les extensions ?'; +$lang['Are you sure you want to delete the user "%s"?'] = 'Êtes-vous sûr de vouloir supprimer l\'utilisateur "%s" ?'; +$lang['Please upgrade your PHP version before any update.'] = 'Il faudra mettre à jour votre PHP avant de pouvoir mettre à jour Piwigo.'; +$lang['Requires PHP %s'] = 'Requiert PHP %s'; +$lang['%s MB used'] = '%s MB utilisés'; +$lang['%s GB used'] = '%s GB utilisés'; + diff --git a/language/fr_FR/common.lang.php b/language/fr_FR/common.lang.php index 082d80b2e..96e4861cf 100644 --- a/language/fr_FR/common.lang.php +++ b/language/fr_FR/common.lang.php @@ -412,4 +412,5 @@ $lang['Album name, Z → A'] = 'Nom de l\'album, Z → A'; $lang['Link: %s'] = 'Lien: %s'; $lang['Your authentication key is no longer valid.'] = 'Votre clef d\'identification n\'est plus valide.'; $lang['Invalid username or password!'] = 'Nom d\'utilisateur ou mot de passe invalide !'; -$lang['generate random password'] = 'générer un mot de passe aléatoire'; \ No newline at end of file +$lang['generate random password'] = 'générer un mot de passe aléatoire'; +$lang['Related albums'] = 'Albums liés'; \ No newline at end of file diff --git a/language/gl_ES/admin.lang.php b/language/gl_ES/admin.lang.php index 2dc20ef68..e38cdf5a7 100644 --- a/language/gl_ES/admin.lang.php +++ b/language/gl_ES/admin.lang.php @@ -113,6 +113,7 @@ $lang['ACCESS_5'] = 'Sen acceso'; $lang['Access type'] = 'Tipo de acceso'; $lang['Action'] = 'Acción'; $lang['Actions'] = 'Accións'; +$lang['Piwigo for Android application empowers you to connect your Android phone or table to your Piwigo gallery, create some albums and upload several photos at once.'] = 'O aplicativo Piwigo para Android permÃteche conectar o teu móbil ou tableta Android á túa galerÃa Piwigo, creando álbums e enviando fotos ó mesmo tempo.'; $lang['Piwigo for iOS application empowers you to connect to your Piwigo gallery from your iPhone, iPad or iPod Touch, create some albums and upload several photos at once.'] = 'O aplicativo Piwigo para iOS permÃteche conectar o teu iPhone, iPad ou iPod Touch á túa galerÃa Piwigo, creando álbums e enviando fotos ó mesmo tempo.'; $lang['A locked gallery is only visible to administrators'] = 'Unha galerÃa bloqueada só pode ser vista polos administradores'; $lang['... or '] = '... ou'; @@ -291,6 +292,7 @@ $lang['Piwigo cannot retrieve upgrade file from server'] = 'Piwigo non pode recu $lang['Piwigo configuration'] = 'Configuración de Piwigo'; $lang['Piwigo export plugin for Aperture'] = 'Engadido de exportación Piwigo para Aperture'; $lang['Piwigo export plugin for iPhoto'] = 'Engadido de exportación Piwigo para iPhoto'; +$lang['Piwigo for Android'] = 'Piwigo para Android'; $lang['Piwigo for iOS (iPhone, iPad, iPod Touch)'] = 'Piwigo para iOS (iPhone, iPad, iPod Touch)'; $lang['Piwigo publish plugin for Shotwell'] = 'Engadido de publicación Piwigo para Shotwell'; $lang['Piwigo publish plugin for digiKam'] = 'Engadido de publicación Piwigo para digiKam'; @@ -360,7 +362,7 @@ $lang['No results'] = 'Non hai resultados'; $lang['No user to send notifications by mail.'] = 'Non hai usuario para ser notificado por correo.'; $lang['No photo in this album'] = 'Non hai fotos neste álbum'; $lang['No photo selected, %d photos in current set'] = 'Non hai fotos seleccionadas, hai %d fotos no actual conxunto'; -$lang['No photo selected, no action possible.'] = 'Non hai fotos seleccionadas, non hai acción posible.'; +$lang['No photos selected, no actions possible.'] = 'Non hai fotos seleccionadas, non hai acción posible.'; $lang['No mail to send.'] = 'Non hai ningún correo para ser enviado.'; $lang['No members to manage'] = 'Non hai ningún membro para ser xestionado'; $lang['No order field selected'] = 'Non hai seleccionado ningún campo a ordenar'; @@ -368,7 +370,7 @@ $lang['No photo can be deleted'] = 'Non pode ser borrada ningunha foto'; $lang['No photo in the current set.'] = 'Non hai ningunha foto no actual conxunto.'; $lang['New photos were added'] = 'Foron engadidas novas fotos'; $lang['No file was uploaded'] = 'Non se enviou ningún ficheiro'; -$lang['No group selected, no action possible.'] = 'Non hai ningún grupo seleccionado. Non hai acción posible.'; +$lang['No groups selected, no actions possible.'] = 'Non hai ningún grupo seleccionado. Non hai acción posible.'; $lang['No group is permitted to see this private album'] = 'Ningún grupo ten permiso para ver este álbum privado'; $lang['New photos added'] = 'Novas fotos engadidas'; $lang['Move to album'] = 'Mover ó álbum'; @@ -923,7 +925,7 @@ $lang['All %d users are selected'] = 'Seleccionados %d usuarios (todos)'; $lang['No matching user found'] = 'Non se atopou ningún usuario que coincida'; $lang['No user selected of %d users'] = 'Non está seleccinado nugún dos %d usuarios'; $lang['Showing %s to %s of %s users'] = 'Amosando de %s a %s de %s usuarios'; -$lang['No user selected, no action possible.'] = 'Sen usuario seleccionado non hai acción posible.'; +$lang['No users selected, no actions possible.'] = 'Sen usuario seleccionado non hai acción posible.'; $lang['Resize after upload disabled due to the use of GD as graphic library'] = 'Mudar tamaño despois de enviar está desactivado debido ó uso da biblioteca gráfica GD.'; $lang['Show %s users'] = 'Amosar %s usuarios'; $lang['Last visit on %s, %s.'] = 'Última visita o %s, %s.'; @@ -966,4 +968,4 @@ $lang['No recipient selected'] = 'Non hai ningún destinatario seleccionado'; $lang['No user is permitted to see this private album'] = 'O usuario non ten permitido ver este álbum privado'; $lang['Orphans'] = 'Orfos'; $lang['Recipients'] = 'Destinatarios'; -$lang['Y Repeat'] = 'Repetir Y'; \ No newline at end of file +$lang['Y Repeat'] = 'Repetir Y'; diff --git a/language/he_IL/admin.lang.php b/language/he_IL/admin.lang.php index 177121e32..0452e70cd 100644 --- a/language/he_IL/admin.lang.php +++ b/language/he_IL/admin.lang.php @@ -663,7 +663,7 @@ $lang['Refresh photo set'] = '×¨×¢× ×Ÿ ×ת סט ×”×ª×ž×•× ×•×ª'; $lang['The whole page'] = 'העמוד המל×'; $lang['The whole set'] = 'הסט המל×'; $lang['No photo in the current set.'] = '×ין ×ª×ž×•× ×•×ª בסט ×”× ×•×›×—×™.'; -$lang['No photo selected, no action possible.'] = '××£ ×ª×ž×•× ×” ×œ× × ×‘×—×¨×”, ×ין פעולות ×פשריות.'; +$lang['No photos selected, no actions possible.'] = '××£ ×ª×ž×•× ×” ×œ× × ×‘×—×¨×”, ×ין פעולות ×פשריות.'; $lang['Choose an action'] = 'בחר פעולה'; $lang['remove author'] = 'הסר יוצר'; $lang['Type here the author name'] = 'כתוב ×›×ן ×ת ×©× ×”×™×•×¦×¨'; @@ -795,6 +795,7 @@ $lang['Apply watermark if width is bigger than'] = 'הוסף חותמת מי×(w $lang['Automatic sort order'] = 'מיון ×וטומטי'; $lang['Available on'] = 'זמין על'; $lang['%d physicals'] = '%d פיזי'; +$lang['Piwigo for Android'] = 'piwigo ל×× ×“×¨×•×יד'; $lang['Piwigo for iOS (iPhone, iPad, iPod Touch)'] = 'piwigo לios (×יפון, ×יפד, ×יפוד ו×יפוד ט×צ)'; $lang['Posted %s on %s'] = '×¤×•×¨×¡× %s ב %s'; $lang['Resize after upload'] = '×©× ×” גודל ×חרי ×˜×¢×™× ×”'; @@ -894,7 +895,7 @@ $lang['Rename'] = '×©× ×” ש×'; $lang['Duplicate'] = 'שכפל'; $lang['Manage the members'] = '× ×”×œ ×ת החברי×'; $lang['Merge selected groups'] = 'מזג ×ת הקבוצות ×©× ×‘×—×¨×•'; -$lang['No group selected, no action possible.'] = '××£ קבוצה ×œ× × ×‘×—×¨×”, ×ין פעולות ×פשריות.'; +$lang['No groups selected, no actions possible.'] = '××£ קבוצה ×œ× × ×‘×—×¨×”, ×ין פעולות ×פשריות.'; $lang['No members to manage'] = '×ין ×—×‘×¨×™× ×œ× ×”×œ'; $lang['Notify administrators when a comment is'] = 'עדכן ××“×ž×™× ×™× ×›×שר תגובה ×”×™×'; $lang['Piwigo cannot retrieve upgrade file from server'] = 'Piwigo ×œ× ×™×›×•×œ×” לטעון ×ת קבצי השדרוג מהשרת'; @@ -930,7 +931,8 @@ $lang['Open user details'] = 'פתח פרטי משתמש'; $lang['Numeric identifier : %d'] = 'מזהה מספרי: %d'; $lang['On your Linux, simply install Shotwell with your package manager and the activate Piwigo publishing option.'] = 'במערכת ×”×œ×™× ×•×§×¡ שלך, פשוט התקן Shotwell ×¢× ×ž× ×”×œ החבילות ו××– ×ת הפעל ×ת ×פשרות ×”×¤×¨×¡×•× ×©×œ Piwigo.'; $lang['No user selected of %d users'] = '×œ× × ×‘×—×¨ משתמש מתוך %d משתמשי×'; -$lang['No user selected, no action possible.'] = '×œ× × ×‘×—×¨ משתמש, ×ין ×פשרות לבצע ××£ פעולה.'; +$lang['No users selected, no actions possible.'] = '×œ× × ×‘×—×¨ משתמש, ×ין ×פשרות לבצע ××£ פעולה.'; +$lang['Piwigo for Android application empowers you to connect your Android phone or table to your Piwigo gallery, create some albums and upload several photos at once.'] = ' ×פליקציית Piwigo עבור ×× ×“×¨×•×יד מ×פשרת לך להתחבר מטלפון ×”×× ×“×¨×•×יד ×ו הט×בלט שלך לגלריית Piwigo, ליצור ××œ×‘×•×ž×™× ×•×œ×”×¢×œ×•×ª מספר ×ª×ž×•× ×•×ª בו ×–×ž× ×™×ª '; $lang['Last visit on %s, %s.'] = 'ביקור ×חרון ב- %s, %s.'; $lang['Mail theme'] = 'ערכת × ×•×©× ×“×•×ר'; $lang['No matching user found'] = '×œ× × ×ž×¦× ×ž×©×ª×ž×© מת××™×'; @@ -994,7 +996,7 @@ $lang['First photo added'] = '×ª×ž×•× ×” ר××©×•× ×” × ×•×¡×¤×”'; $lang['For security reason, authentication keys do not work for administrators.'] = 'מפתחות ×ימות ×œ× ×¢×•×‘×“×™× ×¢×‘×•×¨ ××“×ž×™× ×™× ×ž×¡×™×‘×•×ª ×בטחה.'; $lang['It only takes a few clicks.'] = '×–×” רק מצריך מספר לחיצות.'; $lang['No filter on album. Select one or type to search'] = '×ין ×¡×™× ×•×Ÿ על ×”×לבו×. בחר ×חד ×ו הקלד לחיפוש'; -$lang['No tag selected, no action possible.'] = '×œ× × ×‘×—×¨×” תגית, ×œ× × ×™×ª×Ÿ לבצע ×©×•× ×¤×¢×•×œ×”.'; +$lang['No tags selected, no actions possible.'] = '×œ× × ×‘×—×¨×” תגית, ×œ× × ×™×ª×Ÿ לבצע ×©×•× ×¤×¢×•×œ×”.'; $lang['No user is permitted to see this private album'] = 'ל××£ משתמש ×ין הרש××” לצפות ב××œ×‘×•× ×¤×¨×˜×™ ×–×”'; $lang['Orphans'] = 'יתומי×'; $lang['Piwigo %s is available, please update'] = 'פיוויגו %s זמין, ×× × ×¢×“×›×Ÿ'; @@ -1012,4 +1014,4 @@ $lang['Visit'] = 'ביקור'; $lang['Welcome!'] = '×‘×¨×•×›×™× ×”×‘××™×!'; $lang['With no checksum'] = '×œ×œ× ×¦\'קס××'; $lang['checksums to add'] = 'צ\'קס××ž×™× ×œ×”×•×¡×¤×”'; -$lang['or'] = '×ו'; \ No newline at end of file +$lang['or'] = '×ו'; diff --git a/language/hr_HR/admin.lang.php b/language/hr_HR/admin.lang.php index 9947135c3..0f9410906 100644 --- a/language/hr_HR/admin.lang.php +++ b/language/hr_HR/admin.lang.php @@ -653,7 +653,7 @@ $lang['new'] = 'novo'; $lang['No file was uploaded'] = 'Datoteka nije poslana'; $lang['No photo in the current set.'] = 'U trenutnoj grupi nema fotografija.'; $lang['No photo selected, %d photos in current set'] = 'Fotografije nisu oznaÄene, %d fotografija u trenutnoj grupi'; -$lang['No photo selected, no action possible.'] = 'Nijedna fotografija nije oznaÄena.'; +$lang['No photos selected, no actions possible.'] = 'Nijedna fotografija nije oznaÄena.'; $lang['No results'] = 'Nema rezultata'; $lang['on the %d selected photos'] = 'na %d oznaÄenih fotografija'; $lang['Orphan tags deleted'] = 'NekoriÅ¡tene oznake su izbrisane'; @@ -739,6 +739,7 @@ $lang['%d years'] = '%d godina'; $lang['%s ago'] = '%s prije'; $lang['%s in the future'] = '%s u budućnosti'; $lang['%u users have automatic permission because they belong to a granted group.'] = '%u korisnici su u grupi koja ima pristup'; +$lang['Piwigo for Android application empowers you to connect your Android phone or table to your Piwigo gallery, create some albums and upload several photos at once.'] = 'Piwigo za Android je aplikacija koja vam omogućava spajanje vaÅ¡eg tableta ili mobilnog telefona na vaÅ¡u Piwigo galeriju. Kreirajte albume i postavite fotografije.'; $lang['Piwigo for iOS application empowers you to connect to your Piwigo gallery from your iPhone, iPad or iPod Touch, create some albums and upload several photos at once.'] = 'Piwigo za iOS je aplikacija koja vam omogućava spajanje vaÅ¡eg iPhone-a, iPada-a ili iPod Touch-a na vaÅ¡u Piwigo galeriju. Kreirajte albume i postavite fotografije.'; $lang['show details'] = 'prikaži pojedinosti'; $lang['top left corner'] = 'gornji lijevi ugao'; @@ -752,6 +753,7 @@ $lang['Watermark'] = 'Vodeni žig'; $lang['Week starts on'] = 'Tjedan poÄinje od'; $lang['Width'] = 'Å irina'; $lang['Select an album'] = 'Odaberi album'; +$lang['Piwigo for Android'] = 'Piwigo za Android'; $lang['Piwigo for iOS (iPhone, iPad, iPod Touch)'] = 'Piwigo za iOS (iPhone, iPad, iPod Touch)'; $lang['Portrait'] = 'Portret'; $lang['Ratio'] = 'Omjer'; diff --git a/language/hu_HU/admin.lang.php b/language/hu_HU/admin.lang.php index 3fca0e0cc..269fae010 100644 --- a/language/hu_HU/admin.lang.php +++ b/language/hu_HU/admin.lang.php @@ -664,7 +664,7 @@ $lang['Refresh photo set'] = 'Képek frissÃtése'; $lang['The whole page'] = 'Összes kép az oldalon'; $lang['The whole set'] = 'A teljes képkészlet'; $lang['No photo in the current set.'] = 'Nem található a feltételnek megfelelÅ‘ kép.'; -$lang['No photo selected, no action possible.'] = 'Nincs kép kiválasztva, nem lehet műveletet végezni.'; +$lang['No photos selected, no actions possible.'] = 'Nincs kép kiválasztva, nem lehet műveletet végezni.'; $lang['Choose an action'] = 'Művelet kiválasztása'; $lang['remove author'] = 'szerzÅ‘ törlése'; $lang['Type here the author name'] = 'Ãrja be a szerzÅ‘ nevét'; @@ -836,6 +836,7 @@ $lang['X Repeat'] = 'X ismétlÅ‘dés'; $lang['Y Position'] = 'Y pozÃció'; $lang['Available on'] = 'ElérhetÅ‘'; $lang['add a new watermark'] = 'új vÃzjel hozzáadása'; +$lang['Piwigo for Android application empowers you to connect your Android phone or table to your Piwigo gallery, create some albums and upload several photos at once.'] = 'A Piwigo for Android alkalmazás segÃtségével csatlakozhat Piwigo galériájához telefonjával vagy táblagépével, létrehozhat új albumokat, feltölthet képeket (egyszerre akár többet is) képgalériájába.'; $lang['Piwigo for iOS application empowers you to connect to your Piwigo gallery from your iPhone, iPad or iPod Touch, create some albums and upload several photos at once.'] = 'A Piwigo for iOS alkalmazás segÃtségével csatlakozhat Piwigo galériájához iPhone, iPad vagy iPod Touch eszközével, létrehozhat új albumokat, feltölthet képeket (egyszerre akár többet is) képgalériájába.'; $lang['Adobe Photoshop Lightroom is a photography software designed to manage large quantities of digital images and doing post production work.'] = 'Az Adobe Photoshop Lightroom egy képkezelÅ‘ program, melyet nagy mennyiségű digitális kép utómunkálataihoz és kezeléséhez terveztek.'; $lang['Features include gallery browsing, album creation and photo upload.'] = 'JellemzÅ‘i: galéria böngészés, album létrehozás, képek feltöltése.'; @@ -844,6 +845,7 @@ $lang['No group is permitted to see this private album'] = 'Nincs engedélyezett $lang['On your Linux, simply install Shotwell with your package manager and the activate Piwigo publishing option.'] = 'Egyszerűen telepÃtheti a Linux csomagkezelÅ‘je segÃtségével, majd könnyedén beállÃthatja Piwigo galériájának eléréséhez.'; $lang['Piwigo Publish plugin for Lightroom'] = 'Piwigo Lightroom feltöltÅ‘'; $lang['Piwigo export plugin for iPhoto'] = 'Piwigo iPhoto feltöltÅ‘'; +$lang['Piwigo for Android'] = 'Piwigo Androidon'; $lang['Piwigo for iOS (iPhone, iPad, iPod Touch)'] = 'Piwigo iOS-en (iPhone, iPad, iPod Touch)'; $lang['Piwigo publish plugin for Shotwell'] = 'Piwigo Shotwell feltöltÅ‘'; $lang['Piwigo publish plugin for digiKam'] = 'Piwigo digiKam feltöltÅ‘'; @@ -916,7 +918,7 @@ $lang['between %d and %d pixels'] = '%d és %d pixel között'; $lang['Duplicate'] = 'Másolat'; $lang['Manage the members'] = 'Tagok kezelése'; $lang['Merge selected groups'] = 'Kiválasztott csoportok egyesÃtése'; -$lang['No group selected, no action possible.'] = 'Nincs kiválasztott csoport, művelet nem lehetséges.'; +$lang['No groups selected, no actions possible.'] = 'Nincs kiválasztott csoport, művelet nem lehetséges.'; $lang['No members to manage'] = 'Nem tagok kezelése'; $lang['Please select at least two groups'] = 'Jelöljön ki legalább két csoport'; $lang['Rename'] = 'Ãtnevezés'; @@ -938,7 +940,7 @@ $lang['Change password'] = 'Jelszó módosÃtása'; $lang['Change username'] = 'Felhasználónév módosÃtása'; $lang['Loading...'] = 'Töltés...'; $lang['No matching user found'] = 'Felhasználó nem található'; -$lang['No user selected, no action possible.'] = 'Választott felhasználó nem található, művelet nem lehetséges'; +$lang['No users selected, no actions possible.'] = 'Választott felhasználó nem található, művelet nem lehetséges'; $lang['Password updated'] = 'Jelszó frissÃtve'; $lang['Update user'] = 'Felhasználó frissÃtése'; $lang['User %s added'] = '%s felhasználó hozzáadva'; @@ -994,7 +996,7 @@ $lang['Display form'] = 'kérdÅ‘Ãv megjelenÃtése'; $lang['First photo added'] = 'Az elsÅ‘ fotó hozzáadva'; $lang['It only takes a few clicks.'] = 'Csak néhány kattintás.'; $lang['No filter on album. Select one or type to search'] = 'Nincs az albumon szűrÅ‘. Válassz egyet, vagy Ãrj be valamit, a kereséshez'; -$lang['No tag selected, no action possible.'] = 'Nincs cimke választva, nincs mit tenni.'; +$lang['No tags selected, no actions possible.'] = 'Nincs cimke választva, nincs mit tenni.'; $lang['Piwigo %s is available, please update'] = 'Piwigo %s már elérhetÅ‘, kérlek, frissÃts'; $lang['Running on an up-to-date Piwigo is important for security.'] = 'A legfrisebb Piwigo-t futtatni biztonsági okok miatt fontos.'; $lang['Select tags'] = 'Válassz cimkéket'; @@ -1012,4 +1014,4 @@ $lang['Deletion in progress'] = 'A törlés folyamatban van'; $lang['Display album date period'] = 'Mutasd minden albumnál a hozzá tartozó dátumokat, pl. "2018 július 12-tÅ‘l 15-ig"'; $lang['Display category date'] = 'Mutasd a kategória dátumát'; $lang['Piwigo requires an album to add photos.'] = 'Piwigo-nak szükséges van egy albumra, hogy képeket lehessen hozzáadni.'; -$lang['Some checksums are missing.'] = 'Néhány ellenÅ‘rzÅ‘szám hiányzik.'; \ No newline at end of file +$lang['Some checksums are missing.'] = 'Néhány ellenÅ‘rzÅ‘szám hiányzik.'; diff --git a/language/it_IT/admin.lang.php b/language/it_IT/admin.lang.php index f1641270c..56c0cf11f 100644 --- a/language/it_IT/admin.lang.php +++ b/language/it_IT/admin.lang.php @@ -673,7 +673,7 @@ $lang['Refresh photo set'] = 'Aggiornare il set di foto'; $lang['The whole page'] = 'Tutta la pagina'; $lang['The whole set'] = 'L\'intero set'; $lang['No photo in the current set.'] = 'Nessuna foto nel set corrente.'; -$lang['No photo selected, no action possible.'] = 'Nessuna foto selezionata, nessuna azione possibile.'; +$lang['No photos selected, no actions possible.'] = 'Nessuna foto selezionata, nessuna azione possibile.'; $lang['Choose an action'] = 'Scegliere un\'azione'; $lang['remove author'] = 'cancellare l\'autore'; $lang['Type here the author name'] = 'Inserire qui il nome dell\'autore'; @@ -821,6 +821,8 @@ $lang['Applications'] = 'Applicazioni'; $lang['Available on'] = 'Disponibile su'; $lang['Piwigo for iOS (iPhone, iPad, iPod Touch)'] = 'Piwigo per iOS (iPhone, iPad, iPod Touch)'; $lang['Piwigo for iOS application empowers you to connect to your Piwigo gallery from your iPhone, iPad or iPod Touch, create some albums and upload several photos at once.'] = 'L\'applicazione Piwigo per iOS permette di collegarti alla tua galleria Piwigo dal tuo iPhone, iPad o iPod Touch, creando degli album e caricando le immagini.'; +$lang['Piwigo for Android'] = 'Piwigo per Android'; +$lang['Piwigo for Android application empowers you to connect your Android phone or table to your Piwigo gallery, create some albums and upload several photos at once.'] = 'L\'applicazione Piwigo per Android permette di collegarti alla tua galleria di Piwigo dal tuo cellulare o tablet Android, creando degli album e caricando le immagini.'; $lang['Piwigo Publish plugin for Lightroom'] = 'Plugin Piwigo per Lightroom'; $lang['Adobe Photoshop Lightroom is a photography software designed to manage large quantities of digital images and doing post production work.'] = 'Adobe Photoshop Lightroom è un software fotografico specializzato per gestire grandi quantità di immagini ed eseguirne la post-produzione.'; $lang['The Piwigo publish Plug-in allows you to export and synchronize photos from Lightroom directly to your Piwigo photo gallery.'] = 'Il plugin di Piwigo permette di esportare e sincronizzare le immagini da Lightroom direttamente alla tua galleria di Piwigo.'; @@ -917,7 +919,7 @@ $lang['between %d and %d pixels'] = 'tra %d e %d pixels'; $lang['between %.2f and %.2f'] = 'tra %.2f e %.2f'; $lang['Manage the members'] = 'Gestire membri'; $lang['Type here the name of the new group'] = 'Digita quì il nome del nuovo gruppo'; -$lang['No group selected, no action possible.'] = 'Nessun gruppo selezionato, nessuna azione possibile.'; +$lang['No groups selected, no actions possible.'] = 'Nessun gruppo selezionato, nessuna azione possibile.'; $lang['Please select at least two groups'] = 'Seleziona almeno due gruppi'; $lang['Duplicate'] = 'Duplicare'; $lang['Merge selected groups'] = 'Unire i gruppi selezionati'; @@ -935,7 +937,7 @@ $lang['Show %s users'] = 'Mostra %s utenti'; $lang['No matching user found'] = 'Nessun utente corrispondente trovato'; $lang['Showing %s to %s of %s users'] = 'Mostra %s a %s di %s utenti'; $lang['(filtered from %s total users)'] = '(filtrato da %s utenti totali)'; -$lang['No user selected, no action possible.'] = 'Nessun utente selezionato, nessuna azione è possibile.'; +$lang['No users selected, no actions possible.'] = 'Nessun utente selezionato, nessuna azione è possibile.'; $lang['%d of %d users selected'] = '%d di %d utenti selezionati'; $lang['No user selected of %d users'] = 'Nessun utente selezionato di %d utenti'; $lang['All %d users are selected'] = 'Tutti %d utenti sono selezionati'; @@ -993,7 +995,7 @@ $lang['Delete album "%s".'] = 'Cancellare l\'album "%s"'; $lang['Display form'] = 'Visualizzare il modulo'; $lang['First photo added'] = 'Prima foto'; $lang['No filter on album. Select one or type to search'] = 'Nessun filtro. Toccare qui per cercare un album.'; -$lang['No tag selected, no action possible.'] = 'Nessun tag selezionato, nessuna azione possibile.'; +$lang['No tags selected, no actions possible.'] = 'Nessun tag selezionato, nessuna azione possibile.'; $lang['Confirm deletion'] = 'Confermare l\'eliminazione'; $lang['(determined from photos)'] = '(Determinata dalle foto)'; $lang['Some checksums are missing.'] = 'Checkums mancanti'; @@ -1010,4 +1012,4 @@ $lang['Create a first album'] = 'Crea un primo album'; $lang['Deletion in progress'] = 'Cancellazione in corso'; $lang['Display album date period'] = 'Visualizza la data del periodo associato a ciascun album, ad es. "dal 12 al 15 luglio 2018"'; $lang['Display category date'] = 'Visualizza la data della categoria'; -$lang['Piwigo requires an album to add photos.'] = 'Piwigo ha bisogno di un album per aggiungere delle foto.'; \ No newline at end of file +$lang['Piwigo requires an album to add photos.'] = 'Piwigo ha bisogno di un album per aggiungere delle foto.'; diff --git a/language/ja_JP/admin.lang.php b/language/ja_JP/admin.lang.php index 0d9568e0c..a3f7b3ee7 100644 --- a/language/ja_JP/admin.lang.php +++ b/language/ja_JP/admin.lang.php @@ -791,6 +791,7 @@ $lang['Multiple Size'] = '複数ã®ã‚µã‚¤ã‚º'; $lang['Piwigo Publish plugin for Lightroom'] = 'Lightroom 用 Piwigo エクスãƒãƒ¼ãƒˆãƒ—ラグイン'; $lang['Piwigo export plugin for Aperture'] = 'Aperture 用 Piwigo エクスãƒãƒ¼ãƒˆãƒ—ラグイン'; $lang['Piwigo export plugin for iPhoto'] = 'iPhoto 用 Piwigo エクスãƒãƒ¼ãƒˆãƒ—ラグイン'; +$lang['Piwigo for Android'] = 'Android用Piwigo'; $lang['Piwigo for iOS (iPhone, iPad, iPod Touch)'] = 'iOS用Piwigo(iPhone, iPad, iPod Touch)'; $lang['Piwigo publish plugin for Shotwell'] = 'Shotwell 用 Piwigo 公開プラグイン'; $lang['Piwigo publish plugin for digiKam'] = 'digiKam 用 Piwigo 公開プラグイン'; @@ -843,11 +844,11 @@ $lang['simple visitors'] = 'å˜ãƒ¦ãƒ¼ã‚¶ãƒ¼'; $lang['Obsolete Plugins'] = 'サãƒãƒ¼ãƒˆã•れãªã„プラグイン'; $lang['Opacity'] = 'ä¸é€æ˜Žåº¦'; $lang['No results'] = 'çµæžœãªã—'; -$lang['No photo selected, no action possible.'] = '写真ãŒé¸æŠžã•れã¦ã„ãªã„ã®ã§ã€ä½•も実行ã§ãã¾ã›ã‚“。'; +$lang['No photos selected, no actions possible.'] = '写真ãŒé¸æŠžã•れã¦ã„ãªã„ã®ã§ã€ãªã«ã‚‚ã§ãã¾ã›ã‚“。'; $lang['Not cropped correctly?'] = 'æ£ã—ãトリミングã§ãã¾ã›ã‚“ã§ã—ãŸã‹?'; $lang['Notify administrators when a comment is'] = 'コメントã•れãŸéš›ã«ç®¡ç†è€…ã¸çŸ¥ã‚‰ã›ã‚‹'; $lang['Name of the duplicate'] = 'é‡è¤‡ã®åå‰'; -$lang['No group selected, no action possible.'] = 'グループãŒé¸æŠžã•れã¦ã„ãªã„ã®ã§ã€ä½•も実行ã§ãã¾ã›ã‚“。'; +$lang['No groups selected, no actions possible.'] = 'グループãŒé¸æŠžã•れã¦ã„ãªã„ã®ã§ã€ä½•ã‚‚ã§ãã¾ã›ã‚“。'; $lang['No members to manage'] = '管ç†ã™ã¹ãメンãƒãƒ¼ãŒã„ã¾ã›ã‚“'; $lang['No order field selected'] = 'é †åºãƒ•ィールドãŒé¸æŠžã•れã¦ã„ã¾ã›ã‚“'; $lang['Merge selected groups'] = 'é¸æŠžã•れãŸã‚°ãƒ«ãƒ¼ãƒ—ã‚’çµ±åˆã™ã‚‹'; @@ -886,6 +887,7 @@ $lang['All %d users are selected'] = 'å…¨ã¦ã® %d ユーザãŒé¸æŠžã•れ㾠$lang['Piwigo for iOS application empowers you to connect to your Piwigo gallery from your iPhone, iPad or iPod Touch, create some albums and upload several photos at once.'] = 'Piwigo for iOSアプリã¯ã€iPhoneã€iPadã€iPod Touchã‹ã‚‰ã€Piwigoã‚®ãƒ£ãƒ©ãƒªãƒ¼ã«æŽ¥ç¶šã—ã€ã‚¢ãƒ«ãƒãƒ を作æˆã—ãŸã‚Šã€è¤‡æ•°ã®å†™çœŸã‚’一括ã§ã‚¢ãƒƒãƒ—ãƒãƒ¼ãƒ‰ã—ãŸã‚Šã§ãã¾ã™ã€‚'; $lang['Activate it now'] = '今ã™ã有効ã«ã™ã‚‹'; $lang['(filtered from %s total users)'] = '(%s ユーザã‹ã‚‰ã€ãƒ•ィルタリングã•れã¾ã—ãŸ)'; +$lang['Piwigo for Android application empowers you to connect your Android phone or table to your Piwigo gallery, create some albums and upload several photos at once.'] = 'Piwigo for Androidアプリã¯ã€Androidスマートフォンやタブレットã‹ã‚‰ã€Piwigoã‚®ãƒ£ãƒ©ãƒªãƒ¼ã«æŽ¥ç¶šã—ã€ã‚¢ãƒ«ãƒãƒ を作æˆã—ãŸã‚Šã€è¤‡æ•°ã®å†™çœŸã‚’一括ã§ã‚¢ãƒƒãƒ—ãƒãƒ¼ãƒ‰ã—ãŸã‚Šã§ãã¾ã™ã€‚'; $lang['%d of %d users selected'] = '%d 人(%d人ä¸)ã®ãƒ¦ãƒ¼ã‚¶ãŒé¸æŠžã•れã¾ã—ãŸã€‚'; $lang['You are using the Browser uploader. Try the Flash uploader instead.'] = 'ç¾åœ¨ã€Browser アップãƒãƒ¼ãƒ€ã‚’使ã£ã¦ã„ã¾ã™ã€‚代ã‚りã«ã€ Flash アップãƒãƒ¼ãƒ€ã‚’ãŠè©¦ã—下ã•ã„。'; $lang['You are using the Flash uploader. Problems? Try the Browser uploader instead.'] = 'Flash アップãƒãƒ¼ãƒ€ã§å•題ãŒãŠãã¾ã—ãŸã‹? 代ã‚り㫠Browser アップãƒãƒ¼ãƒ€ã‚’ãŠè©¦ã—下ã•ã„。'; @@ -959,7 +961,7 @@ $lang['Recipients'] = 'å—信者'; $lang['No recipient selected'] = 'å—信者ãŒé¸ã°ã‚Œã¦ã„ã¾ã›ã‚“'; $lang['No user is permitted to see this private album'] = 'ã“ã®ãƒ—ライベートアルãƒãƒ を見るã“ã¨ã®ã§ãるユーザーã¯ã„ã¾ã›ã‚“'; $lang['No user selected of %d users'] = '%dã®ãƒ¦ãƒ¼ã‚¶ãƒ¼ã‹ã‚‰ãƒ¦ãƒ¼ã‚¶ãƒ¼ãŒé¸ã°ã‚Œã¦ã„ã¾ã›ã‚“'; -$lang['No user selected, no action possible.'] = 'ユーザーãŒé¸æŠžã•れã¦ã„ãªã„ã®ã§ã€æ“作ã§ãã¾ã›ã‚“'; +$lang['No users selected, no actions possible.'] = 'ユーザーãŒé¸æŠžã•れã¦ã„ãªã„ã®ã§ã€æ“作ã§ãã¾ã›ã‚“'; $lang['On your Linux, simply install Shotwell with your package manager and the activate Piwigo publishing option.'] = 'Linuxã§ã¯ã€Shotwellをパッケージ管ç†ã‚½ãƒ•トウェアã‹ã‚‰ã‚¤ãƒ³ã‚¹ãƒˆãƒ¼ãƒ«ã™ã‚‹ã“ã¨ã§ã€Piwigoã«å…¬é–‹ã™ã‚‹ã‚ªãƒ—ションを使ã†ã“ã¨ãŒã§ãã¾ã™'; $lang['No and unlock sub-albums'] = 'ã„ã„ãˆã€‚サブアルãƒãƒ ã®ãƒãƒƒã‚¯ã‚’解除ã—ã¾ã™'; $lang['Last visit on %s, %s.'] = '最新ã®è¨ªå•æ—¥: %s, %s'; @@ -1009,4 +1011,4 @@ $lang['Visit'] = '訪å•ã™ã‚‹'; $lang['Welcome!'] = 'よã†ã“ãï¼'; $lang['With no checksum'] = 'ãƒã‚§ãƒƒã‚¯ã‚µãƒ ãªã—'; $lang['checksums to add'] = 'è¿½åŠ ã™ã¹ããƒã‚§ãƒƒã‚¯ã‚µãƒ '; -$lang['or'] = 'ã¾ãŸã¯'; \ No newline at end of file +$lang['or'] = 'ã¾ãŸã¯'; diff --git a/language/ja_JP/common.lang.php b/language/ja_JP/common.lang.php index 9b76456d6..9da63926a 100644 --- a/language/ja_JP/common.lang.php +++ b/language/ja_JP/common.lang.php @@ -412,4 +412,4 @@ $lang['Photo description'] = '写真ã®èª¬æ˜Ž'; $lang['Photo title'] = '写真ã®ã‚¿ã‚¤ãƒˆãƒ«'; $lang['Your authentication key is no longer valid.'] = 'ã‚ãªãŸã®èªè¨¼ã‚ãƒ¼ã¯æ—¢ã«ç„¡åйã«ãªã£ã¦ã„ã¾ã™ã€‚'; $lang['generate random password'] = 'ランダムãªãƒ‘スワードを生æˆã—ã¾ã™'; -$lang['Invalid username or password!'] = 'ユーザåã‹ãƒ‘スワードãŒé•ã„ã¾ã™!'; \ No newline at end of file +$lang['Invalid username or password!'] = 'ユーザåã‹ãƒ‘スワードãŒé•ã„ã¾ã™!'; diff --git a/language/ka_GE/admin.lang.php b/language/ka_GE/admin.lang.php index 5dc96aae2..50b31237a 100644 --- a/language/ka_GE/admin.lang.php +++ b/language/ka_GE/admin.lang.php @@ -684,7 +684,7 @@ $lang['Refresh photo set'] = 'გáƒáƒœáƒ•áƒáƒáƒ®áƒšáƒáƒ— ფáƒáƒ¢áƒáƒ”ბ $lang['The whole page'] = 'მთელი გვერდი'; $lang['The whole set'] = 'მთელი რიგი'; $lang['No photo in the current set.'] = 'áƒáƒ áƒáƒ ის სურáƒáƒ—ი მიმდინáƒáƒ ე ნáƒáƒ™áƒ ებში.'; -$lang['No photo selected, no action possible.'] = 'áƒáƒ áƒáƒ ის áƒáƒ ჩეული áƒáƒ ც ერთი ფáƒáƒ¢áƒ, მáƒáƒ¥áƒ›áƒ”დებრშეუძლებელიáƒ.'; +$lang['No photos selected, no actions possible.'] = 'áƒáƒ áƒáƒ ის áƒáƒ ჩეული áƒáƒ ც ერთი ფáƒáƒ¢áƒ, მáƒáƒ¥áƒ›áƒ”დებრშეუძლებელიáƒ.'; $lang['Choose an action'] = 'áƒáƒ˜áƒ ჩიეთ მáƒáƒ¥áƒ›áƒ”დებáƒ'; $lang['remove author'] = 'წáƒáƒ•შáƒáƒšáƒáƒ— áƒáƒ•ტáƒáƒ ი'; $lang['Type here the author name'] = 'ჩáƒáƒ¬áƒ”რეთ áƒáƒ¥ áƒáƒ•ტáƒáƒ ის სáƒáƒ®áƒ”ლი'; diff --git a/language/km_KH/admin.lang.php b/language/km_KH/admin.lang.php index 8fefedeee..94c8fe0a4 100644 --- a/language/km_KH/admin.lang.php +++ b/language/km_KH/admin.lang.php @@ -175,6 +175,7 @@ $lang['Apply action'] = 'ដំណើរ​ការ​សកម្មភាព $lang['Apply selected corrections'] = 'ដំណើរ​ការ​កំណែរ​ប្រែ​ដែល​បាន​ជ្រើស​រើស​'; $lang['Apply to sub-albums'] = 'ដំណើរ​​ការ​ទៅ​កាន់​សៀវ​ភៅ​រូប​ážážâ€‹ážšáž„​'; +$lang['Piwigo for Android application empowers you to connect your Android phone or table to your Piwigo gallery, create some albums and upload several photos at once.'] = 'Piwigo សំរាប់​ Android ធ្វើ​ឲ្យលោក​អ្នក​អាច​ភ្ជាប់​ទូរសáŸáž–្វ​ Android របស់​អ្នក ឬ​ក០Table ទៅកាន់​ Piwigo gallery របស់​អ្នក​​ ដែលលោក​​អ្នក​អាច​បង្កើážâ€‹ážŸáŸ€ážœáž—ៅ​រូប​ážáž ហើយ​ ដាក់បញ្ចូល​នូវ​រូប​ážážâ€‹áž‡áž¶â€‹áž…្រើន​ក្នុង​ពáŸáž›â€‹ážáŸ‚​មួយ។'; $lang['Piwigo for iOS application empowers you to connect to your Piwigo gallery from your iPhone, iPad or iPod Touch, create some albums and upload several photos at once.'] = 'Piwigo សំរាប់​ iOS ធ្វើ​ឲ្យលោក​​អ្នក​អាច​ភ្ជាប់ទៅកាន់​ Piwigo gallery របស់​អ្នក​ពី​ទូរសáŸáž–្វ iPhone, iPad ឬ iPod Touch របស់​អ្នក ដែលលោក​អ្នក​អាច​បង្កើážâ€‹ážŸáŸ€ážœáž—ៅ​រូប​ážáž ហើយ​ ដាក់បញ្ចូល​នូវ​រូប​ážážâ€‹áž‡áž¶â€‹áž…្រើន​ក្នុង​ពáŸáž›â€‹ážáŸ‚​មួយ។'; $lang['%d day'] = '%d ážáŸ’ងៃ'; $lang['%d days'] = '%d ážáŸ’ងៃ'; diff --git a/language/ko_KR/admin.lang.php b/language/ko_KR/admin.lang.php index dc78ce781..19f409c77 100644 --- a/language/ko_KR/admin.lang.php +++ b/language/ko_KR/admin.lang.php @@ -75,7 +75,7 @@ $lang['Password is missing. Please enter the password.'] = 'ë¹„ë°€ë²ˆí˜¸ëž€ì´ $lang['Password updated'] = '비밀번호가 변경ë¨'; $lang['User "%s" created with "%s" like password'] = '"%s" 비밀번호를 사용하는 "%s" 사용ìžê°€ ìƒì„±ë¨'; $lang['No user selected of %d users'] = '%d ì‚¬ìš©ìž ì¤‘ ì„ íƒëœ 사용ìžê°€ ì—†ìŒ'; -$lang['No user selected, no action possible.'] = 'ì„ íƒëœ 사용ìžê°€ 없어서 사용 가능한 ë™ìž‘ì´ ì—†ìŠµë‹ˆë‹¤.'; +$lang['No users selected, no actions possible.'] = 'ì„ íƒëœ 사용ìžê°€ 없어서 사용 가능한 ë™ìž‘ì´ ì—†ìŠµë‹ˆë‹¤.'; $lang['%d members'] = '%d 구성ì›'; $lang['Members'] = '구성ì›'; $lang['No members to manage'] = 'ê´€ë¦¬í• êµ¬ì„±ì›ì´ 없습니다'; @@ -213,6 +213,8 @@ $lang['Piwigo export plugin for Aperture'] = 'Apertureìš© Piwigo ìµìФí¬íЏ $lang['Piwigo publish plugin for digiKam'] = 'dikiKamìš© Piwigo ë°°í¬ í”ŒëŸ¬ê·¸ì¸'; $lang['To export your photos from digiKam to Piwigo, simply install digiKam and the Kipi-plugins.'] = 'digiKamì—서 Piwigo로 ì‚¬ì§„ì„ ë‚´ë³´ë‚´ë ¤ë©´, digiKam ë° Kipi 플러그ì¸ì„ 설치하면 ë©ë‹ˆë‹¤.'; $lang['Piwigo for iOS application empowers you to connect to your Piwigo gallery from your iPhone, iPad or iPod Touch, create some albums and upload several photos at once.'] = 'iOSìš© Piwigo ì•±ì€ iPhone, iPad ë˜ëŠ” iPod Touchì—서 Piwigo ê°¤ëŸ¬ë¦¬ì— ì—°ê²°í•˜ê³ ì•¨ë²”ì„ ìƒì„±í•˜ê³ í•œë²ˆì— ì—¬ëŸ¬ ì‚¬ì§„ì„ ì—…ë¡œë“œ í• ìˆ˜ 있ë„ë¡ í•©ë‹ˆë‹¤.'; +$lang['Piwigo for Android application empowers you to connect your Android phone or table to your Piwigo gallery, create some albums and upload several photos at once.'] = '안드로ì´ë“œìš© Piwigo ì•±ì€ ì•ˆë“œë¡œì´ë“œ í°ê³¼ 태블릿ì—서 Piwigo ê°¤ëŸ¬ë¦¬ì— ì—°ê²°í•˜ê³ ì•¨ë²”ì„ ìƒì„±í•˜ê³ í•œë²ˆì— ì—¬ëŸ¬ ì‚¬ì§„ì„ ì—…ë¡œë“œ í• ìˆ˜ 있ë„ë¡ í•©ë‹ˆë‹¤.'; +$lang['Piwigo for Android'] = '안드로ì´ë“œìš© Piwigo'; $lang['Piwigo for iOS (iPhone, iPad, iPod Touch)'] = 'iOSìš© Piwigo (iPhone, iPad, iPod Touch)'; $lang['Piwigo Uploader'] = 'Piwigo 업로ë”'; $lang['Allowed file types: %s.'] = '가능한 íŒŒì¼ ì¢…ë¥˜: %s.'; @@ -357,7 +359,7 @@ $lang['Save visits in history for'] = 'ë°©ë¬¸ê¸°ë¡ ì €ìž¥: '; $lang['Week starts on'] = '한 ì£¼ì˜ ì‹œìž‘'; $lang['Miscellaneous'] = '기타'; $lang['simple visitors'] = '단순 방문ìž'; -$lang['No photo selected, no action possible.'] = 'ì„ íƒëœ ì‚¬ì§„ì´ ì—†ì–´ì„œ 사용 가능한 ë™ìž‘ì´ ì—†ìŠµë‹ˆë‹¤.'; +$lang['No photos selected, no actions possible.'] = 'ì„ íƒëœ ì‚¬ì§„ì´ ì—†ì–´ì„œ 사용 가능한 ë™ìž‘ì´ ì—†ìŠµë‹ˆë‹¤.'; $lang['Apply action'] = 'ë™ìž‘ ì ìš©'; $lang['Tools'] = 'ë„구'; $lang['Searching...'] = '검색중...'; @@ -441,7 +443,7 @@ $lang['%d parameter was updated.'] = '%d 파ë¼ë¯¸í„°ê°€ 변경ë¨.'; $lang['%d parameters were updated.'] = '%d 파ë¼ë¯¸í„°ê°€ 변경ë¨.'; $lang['Parameters'] = '파ë¼ë¯¸í„°'; $lang['There is no available subscribers to mail.'] = 'ë©”ì¼ë¡œ 공지를 받는 사용ìžê°€ 없습니다.'; -$lang['No group selected, no action possible.'] = 'ì„ íƒëœ ê·¸ë£¹ì´ ì—†ì–´ì„œ 사용 가능한 ë™ìž‘ì´ ì—†ìŠµë‹ˆë‹¤.'; +$lang['No groups selected, no actions possible.'] = 'ì„ íƒëœ ê·¸ë£¹ì´ ì—†ì–´ì„œ 사용 가능한 ë™ìž‘ì´ ì—†ìŠµë‹ˆë‹¤.'; $lang['Group'] = '그룹'; $lang['Group name'] = '그룹 ì´ë¦„'; $lang['Groups'] = '그룹'; diff --git a/language/ko_KR/common.lang.php b/language/ko_KR/common.lang.php index 5b230bbeb..66c964a06 100644 --- a/language/ko_KR/common.lang.php +++ b/language/ko_KR/common.lang.php @@ -412,4 +412,4 @@ $lang['Photo title'] = '사진 ì œëª©'; $lang['No results for'] = '다ìŒì˜ 검색 결과가 ì—†ìŒ'; $lang['Invalid username or password!'] = 'ì‹œìš©ìž ì´ë¦„ ë˜ëŠ” 비밀번호가 올바르지 않습니다.'; $lang['Your authentication key is no longer valid.'] = 'ì¸ì¦í‚¤ê°€ ìœ íš¨í•˜ì§€ 않습니다.'; -$lang['generate random password'] = 'ëžœë¤ ë¹„ë°€ë²ˆí˜¸ ìƒì„±'; \ No newline at end of file +$lang['generate random password'] = 'ëžœë¤ ë¹„ë°€ë²ˆí˜¸ ìƒì„±'; diff --git a/language/lt_LT/admin.lang.php b/language/lt_LT/admin.lang.php index 0d22e74d6..ce395283c 100644 --- a/language/lt_LT/admin.lang.php +++ b/language/lt_LT/admin.lang.php @@ -174,6 +174,7 @@ $lang['%s value is not correct file because exif are not supported'] = '%s reik $lang['(this tag will be deleted)'] = '(Å¡i žyma bus iÅ¡trinta)'; $lang[', click on'] = ', paspausk ant'; $lang['... or '] = '... arba '; +$lang['Piwigo for Android application empowers you to connect your Android phone or table to your Piwigo gallery, create some albums and upload several photos at once.'] = 'Piwigo Android\'ui programÄ—lÄ— suteikia galimybÄ™ sujungti jÅ«sų Android telefonÄ… ar planÅ¡etÄ™ su jÅ«sų Piwigo galerija, kurti kelis albumus ir įkelti kelias nuotraukas iÅ¡kart.'; $lang['Piwigo for iOS application empowers you to connect to your Piwigo gallery from your iPhone, iPad or iPod Touch, create some albums and upload several photos at once.'] = 'Piwigo iOS\'ui programÄ—lÄ— suteikia galimybÄ™ sujungti jÅ«sų iPhone, iPad ar iPod Touch su jÅ«sų Piwigo galerija, kurti kelis albumus ir įkelti kelias nuotraukas iÅ¡kart.'; $lang['A locked gallery is only visible to administrators'] = 'Užrakinta galerija prieinama tik administratoriams'; $lang['A new version of Piwigo is available.'] = 'Yra nauja Piwigo versija.'; @@ -378,6 +379,7 @@ $lang['Piwigo cannot retrieve upgrade file from server'] = 'Piwigo negali atsisi $lang['Piwigo configuration'] = 'Piwigo konfigÅ«racija'; $lang['Piwigo export plugin for Aperture'] = 'Piwigo eksportavimo priedas, skirtas Aperture'; $lang['Piwigo export plugin for iPhoto'] = 'Piwigo eksportavimo priedas, skirtas iPhoto'; +$lang['Piwigo for Android'] = 'Piwigo Android\'ui'; $lang['Piwigo for iOS (iPhone, iPad, iPod Touch)'] = 'Piwigo iOS\'ui (iPhone, iPad, iPod Touch)'; $lang['Piwigo publish plugin for Shotwell'] = 'Piwigo skelbimo priedas, skirtas Shotwell'; $lang['Piwigo publish plugin for digiKam'] = 'Piwigo skelbimo priedas, skirtas digiKam'; @@ -450,14 +452,14 @@ $lang['New photos added'] = 'Naujos nuotraukos įkeltos'; $lang['New tag'] = 'Nauja žyma'; $lang['No file was uploaded'] = 'Nebuvo įkeltas joks failas'; $lang['No group is permitted to see this private album'] = 'Jokiai grupei neleidžiama žiÅ«rÄ—ti Å¡io privataus albumo'; -$lang['No group selected, no action possible.'] = 'Nepasirinkta jokia grupÄ—, todÄ—l jokių veiksmų vykdyti neįmanoma.'; +$lang['No groups selected, no actions possible.'] = 'Nepasirinkta jokia grupÄ—, todÄ—l jokių veiksmų vykdyti neįmanoma.'; $lang['No mail to send.'] = 'Nebus siunÄiamas joks laiÅ¡kas'; $lang['No members to manage'] = 'NÄ—ra jokių narių, kuriuos galima bÅ«tų tvarkyti'; $lang['No photo can be deleted'] = 'Jokios nuotraukos negali bÅ«ti iÅ¡trintos'; $lang['No photo in the current set.'] = 'Å iuo metu rinkinyje nÄ—ra nuotraukų.'; $lang['No photo in this album'] = 'Å iame albume nÄ—ra nuotraukų'; $lang['No photo selected, %d photos in current set'] = 'Nepasirinkta jokia nuotrauka, Å¡iame rinkinyje nuotraukų: %d'; -$lang['No photo selected, no action possible.'] = 'Nepasirinkta jokia nuotrauka, neįmanomas joks veiksmas.'; +$lang['No photos selected, no actions possible.'] = 'Nepasirinkta jokia nuotrauka, neįmanomas joks veiksmas.'; $lang['No results'] = 'NÄ—ra rezultatų'; $lang['No user to send notifications by mail.'] = 'NÄ—ra vartotojų, kurie galÄ—tų bÅ«ti informuoti paÅ¡tu.'; $lang['None'] = 'NÄ—ra'; @@ -936,7 +938,7 @@ $lang['Change username'] = 'Keisti username'; $lang['Loading...'] = 'Kraunasi...'; $lang['No matching user found'] = 'Narių, atitinkanÄių kriterijus, nerasta'; $lang['No user selected of %d users'] = 'Nepasirinktas nÄ— vienas iÅ¡ %d narių'; -$lang['No user selected, no action possible.'] = 'Nepasirinktas narys, negaliu tÄ™sti veiksmų.'; +$lang['No users selected, no actions possible.'] = 'Nepasirinktas narys, negaliu tÄ™sti veiksmų.'; $lang['Password updated'] = 'Slaptažodis atnaujintas'; $lang['Show %s users'] = 'Rodyti %s vartotojus'; $lang['User %s added'] = 'Vartotojas %s pridÄ—tas'; @@ -984,7 +986,7 @@ $lang['For security reason, authentication keys do not work for administrators.' $lang['It only takes a few clicks.'] = 'Tai bus tik keli spragtelÄ—jimai.'; $lang['No filter on album. Select one or type to search'] = 'Albumas neturi filtrų. Pasirinkite vienÄ… arba paraÅ¡ykite kÄ… nors paieÅ¡kai'; $lang['No recipient selected'] = 'GavÄ—jas nepasirinktas'; -$lang['No tag selected, no action possible.'] = 'Nepasirinkta jokia žyma, negalimas joks veiksmas.'; +$lang['No tags selected, no actions possible.'] = 'Nepasirinkta jokia žyma, negalimas joks veiksmas.'; $lang['No user is permitted to see this private album'] = 'Joks lankytojas negali matyti Å¡io privataus albumo'; $lang['Piwigo %s is available, please update'] = 'Piwigo %s prieinama, praÅ¡ome atnaujinti'; $lang['Piwigo Remote Sync is able to upload a whole folder hierarchy. If you run it again, only new photos will be uploaded.'] = 'Piwigo Remote Sync gali įkelti visÄ… katalogų hierarchijÄ…. Jei paleisite jį vÄ—l, tai bus įkeltos tik naujos nuotraukos.'; diff --git a/language/lv_LV/admin.lang.php b/language/lv_LV/admin.lang.php index c12f7e342..e6f02e963 100644 --- a/language/lv_LV/admin.lang.php +++ b/language/lv_LV/admin.lang.php @@ -663,7 +663,7 @@ $lang['Refresh photo set'] = 'AtjauninÄt foto sÄ“riju'; $lang['The whole page'] = 'Visa lapa'; $lang['The whole set'] = 'Visa sÄ“rija'; $lang['No photo in the current set.'] = 'Nav fotoattÄ“lu esoÅ¡ajÄ sÄ“rijÄ.'; -$lang['No photo selected, no action possible.'] = 'Nav atlasÄ«tu fotoattÄ“lu, nekÄdas darbÄ«bas nav iespÄ“jamas.'; +$lang['No photos selected, no actions possible.'] = 'Nav atlasÄ«tu fotoattÄ“lu, nekÄdas darbÄ«bas nav iespÄ“jamas.'; $lang['Choose an action'] = 'IzvÄ“lÄ“ties darbÄ«bu'; $lang['remove author'] = 'izdzÄ“st autoru'; $lang['Type here the author name'] = 'IevadÄ«t autora vÄrdu Å¡eit'; @@ -813,6 +813,8 @@ $lang['Applications'] = 'AplikÄcijas'; $lang['Available on'] = 'Pieejams uz'; $lang['Piwigo for iOS (iPhone, iPad, iPod Touch)'] = 'Piwigo priekÅ¡ iOS (iPhone, iPad, iPod Touch)'; $lang['Piwigo for iOS application empowers you to connect to your Piwigo gallery from your iPhone, iPad or iPod Touch, create some albums and upload several photos at once.'] = 'Piwigo priekÅ¡ iOS aplikÄcijas, kas ļauj piekļūt jÅ«su Piwigo galerijai no iPhone, iPad vai iPod Touch, un bez pÅ«lÄ“m izveidot jaunus albÅ«mus un ielÄdÄ“t jaunas fotogrÄfijas.'; +$lang['Piwigo for Android'] = 'Piwigo priekÅ¡ Android'; +$lang['Piwigo for Android application empowers you to connect your Android phone or table to your Piwigo gallery, create some albums and upload several photos at once.'] = 'Piwigo priekÅ¡ Android aplikÄcija dod jums iespÄ“ju savienot savu Android telefonu vai iekÄrtu ar jÅ«su Piwigo galeriju, bez pÅ«lÄ“m izveidot jaunus albÅ«mus un ielÄdÄ“t jaunas fotogrÄfijas.'; $lang['Piwigo Publish plugin for Lightroom'] = 'Piwigo Publicēšanas spraudnis priekÅ¡ Lightroom'; $lang['Adobe Photoshop Lightroom is a photography software designed to manage large quantities of digital images and doing post production work.'] = 'Adobe Photoshop Lightroom ir fotoredaktora programmatÅ«ra, kas domÄta liela apjoma digitÄlu attÄ“lu pÄrvaldīšanai un pirmsproducēšanas darbu veikÅ¡anai.'; $lang['The Piwigo publish Plug-in allows you to export and synchronize photos from Lightroom directly to your Piwigo photo gallery.'] = 'Piwigo publicēšanas spraudnis ļauj jums eksportÄ“t un sinhronizÄ“t attÄ“lus Lightroom aplikÄcijÄ ar jÅ«su Piwigo foto galeriju.'; @@ -913,7 +915,7 @@ $lang['This group will be set to default'] = 'Å Ä« grupa tiks izmantots pÄ“c nok $lang['Rename'] = 'PÄrdÄ“vÄ“t'; $lang['Please select at least two groups'] = 'LÅ«dzu atlasiet vismaz divas grupas'; $lang['No members to manage'] = 'Nav biedru, ko pÄrvaldÄ«t'; -$lang['No group selected, no action possible.'] = 'Nav izvÄ“lÄ“ta neviena grupa, nekÄdas darbÄ«bas nav iespÄ“jamas.'; +$lang['No groups selected, no actions possible.'] = 'Nav izvÄ“lÄ“ta neviena grupa, nekÄdas darbÄ«bas nav iespÄ“jamas.'; $lang['Manage the members'] = 'PÄrvaldÄ«t biedrus'; $lang['Merge selected groups'] = 'SapludinÄt atlasÄ«tÄs grupas'; $lang['Duplicate'] = 'DublikÄts'; @@ -930,7 +932,7 @@ $lang['Registered on %s, %s.'] = 'ReÄ£istrÄ“ts %s, %s.'; $lang['User %s updated'] = '%s lietotÄjs atjauninÄts'; $lang['Update user'] = 'AtjauninÄt lietotÄju'; $lang['Show %s users'] = 'ParÄdÄ«t %s lietotÄjus'; -$lang['No user selected, no action possible.'] = 'Neviens lietotÄja nav atlasÄ«ts, darbÄ«ba nav iespÄ“jama.'; +$lang['No users selected, no actions possible.'] = 'Neviens lietotÄja nav atlasÄ«ts, darbÄ«ba nav iespÄ“jama.'; $lang['No user selected of %d users'] = 'Neviens no %d lietotÄjiem nav atlasÄ«ts'; $lang['No matching user found'] = 'Nav atrasti atbilstoÅ¡i lietotÄji'; $lang['Users modified'] = 'LietotÄji modoficÄ“ti'; @@ -969,7 +971,7 @@ $lang['No recipient selected'] = 'Nav izvÄ“lÄ“ts neviens saņēmÄ“js'; $lang['Edit user'] = 'Rediģēt lietotÄju'; $lang['Delete %d orphan photos'] = 'DzÄ“st %d nezinÄmos foto '; $lang['orphans to delete'] = 'nepiesaistÄ«tie dzēšanai'; -$lang['No tag selected, no action possible.'] = 'Nav izvÄ“lÄ“tu tegu, nekÄdas darbÄ«bas nav iespÄ“jamas.'; +$lang['No tags selected, no actions possible.'] = 'Nav izvÄ“lÄ“tu tegu, nekÄdas darbÄ«bas nav iespÄ“jamas.'; $lang['Select tags'] = 'IzvÄ“lieties tegus'; $lang['Piwigo %s is available, please update'] = 'Piwigo %s ir pieejams, lÅ«dzu atjauniniet'; $lang['Storage used'] = 'IzmantotÄ krÄtuve'; @@ -1004,4 +1006,4 @@ $lang['Display category date'] = 'Atainot kategorijas datumu'; $lang['Deletion in progress'] = 'Notiek dzēšana'; $lang['Create a first album'] = 'Izveidot pirmo albÅ«mu'; $lang['%d checksums were added'] = '%d kontrolsumma ir pievienota'; -$lang['... or hide this link'] = '... vai paslÄ“pt Å¡o saiti'; \ No newline at end of file +$lang['... or hide this link'] = '... vai paslÄ“pt Å¡o saiti'; diff --git a/language/mn_MN/admin.lang.php b/language/mn_MN/admin.lang.php index d94322676..c179f1eef 100644 --- a/language/mn_MN/admin.lang.php +++ b/language/mn_MN/admin.lang.php @@ -317,6 +317,7 @@ $lang['Save order'] = 'ÐÑ€Ñмбийг хадгалах'; $lang['Restore'] = 'СÑргÑÑÑ…'; $lang['Restore default configuration. You will lose your plugin settings!'] = 'ҮндÑÑн тохиргоог ÑÑргÑÑÑ…. Тохиргоонууд алдагдах болно.'; $lang['Repair and optimize database'] = 'МÑдÑÑллийн Ñанг заÑаж, цÑгцÑлÑÑ…'; +$lang['Piwigo for Android'] = 'Android-д зориулÑан Piwigo'; $lang['Piwigo for iOS (iPhone, iPad, iPod Touch)'] = 'iOS (iPhone, iPad, iPod Touch)-д зориулÑан Piwigo'; $lang['Permalink'] = 'Ð¥Ð¾Ð»Ð±Ð¾Ð¾Ñ Ñ…Ð°Ñг (permalink)'; $lang['Permalinks'] = 'Ð¥Ð¾Ð»Ð±Ð¾Ð¾Ñ Ñ…Ð°Ñг (permalink)'; @@ -426,8 +427,8 @@ $lang['global mode'] = 'ерөнхий Ñ…ÑÑÑг'; $lang['Support'] = 'ТуÑламж дÑмжлÑг'; $lang['Choose an action'] = 'ҮйлдÑлÑÑ Ñонгоно уу'; $lang['Action'] = 'ҮйлдÑл'; -$lang['No user selected, no action possible.'] = 'Ð¥ÑÑ€ÑглÑгч Ñонгоогүй байна'; -$lang['No photo selected, no action possible.'] = 'Зураг огт Ñонгоогүй байна'; +$lang['No users selected, no actions possible.'] = 'Ð¥ÑÑ€ÑглÑгч Ñонгоогүй байна'; +$lang['No photos selected, no actions possible.'] = 'Зураг огт Ñонгоогүй байна'; $lang['Remove all filters'] = 'Бүх Ñонголтыг цуцлах'; $lang['Refresh photo set'] = 'СÑргÑÑÑ…'; $lang['No photo selected, %d photos in current set'] = 'Зураг огт Ñонгоогүй байна, ÑÐ½Ñ Ñ…ÑÑÑгт нийт %d зураг байна.'; @@ -449,7 +450,7 @@ $lang['on the %d selected photos'] = '(ÑонгоÑон %d зурагт Ñ…ÑÑ€Ñ $lang['Apply action'] = 'ГүйцÑтгÑÑ…'; $lang['Actions'] = 'ҮйлдÑл'; $lang['An error occured during extraction (%s).'] = 'Файлыг (%s) задлах үед алдаа гарлаа.'; -$lang['No group selected, no action possible.'] = 'ÐÑг ч бүлÑг Ñонгоогүй байна'; +$lang['No groups selected, no actions possible.'] = 'ÐÑг ч бүлÑг Ñонгоогүй байна'; $lang['Pages seen'] = 'ҮзÑÑн хуудаÑ'; $lang['hide details'] = 'товч мÑдÑÑлÑл'; $lang['Impossible to deactivate this language, first set another language as default.'] = 'Уучлаарай, Тухайн Ñ…Ñлийг идÑвхгүй болгохын тулд Ó©Ó©Ñ€ Ñ…Ñлийг үндÑÑн Ñ…ÑлÑÑÑ€ Ñонгоно уу'; diff --git a/language/nb_NO/admin.lang.php b/language/nb_NO/admin.lang.php index 89ebf5792..83029f6bc 100644 --- a/language/nb_NO/admin.lang.php +++ b/language/nb_NO/admin.lang.php @@ -665,7 +665,7 @@ $lang['Refresh photo set'] = 'Oppdater bilde sesjonen'; $lang['The whole page'] = 'Hele siden'; $lang['The whole set'] = 'Hele sesjonen'; $lang['No photo in the current set.'] = 'Ingen foto i gjeldende sesjon.'; -$lang['No photo selected, no action possible.'] = 'Ingne bilder valgt, ingen tilltak mulig.'; +$lang['No photos selected, no actions possible.'] = 'Ingne bilder valgt, ingen tilltak mulig.'; $lang['Choose an action'] = 'Velg et tilltak'; $lang['remove author'] = 'fjern forfatter'; $lang['Type here the author name'] = 'Skriv forfatter navn her'; @@ -799,6 +799,7 @@ $lang['Available on'] = 'Tilgjengelig pÃ¥'; $lang['List'] = 'Vis'; $lang['Not cropped correctly?'] = 'Ikke beskÃ¥ret riktig?'; $lang['Notify administrators when a comment is'] = 'Gi beskjed til administrator nÃ¥r en kommentar er'; +$lang['Piwigo for Android'] = 'Piwigo for Android'; $lang['Piwigo for iOS (iPhone, iPad, iPod Touch)'] = 'Piwigo for iOS (iPhone, iPad, iPod Touch)'; $lang['Save visits in history for'] = 'Lagre besøkshistorie for '; $lang['Unable to dump database.'] = 'Kan ikke dumpe databasen'; @@ -806,6 +807,7 @@ $lang['You can activate only one mobile theme.'] = 'Du kan kun aktivere et mobil $lang['You can\'t define a default photo order because you have a custom setting in your local configuration.'] = 'Du kan ikke definere standard bilderekkefølge, fordi du har eget oppsett i din lokale konfigurasjon.'; $lang['simple visitors'] = 'vanlig besøkende'; $lang['%u users have automatic permission because they belong to a granted group.'] = '%u brukere har automatisk rettigheter fordi de tilhører en gruppe som allerede har rettigheter.'; +$lang['Piwigo for Android application empowers you to connect your Android phone or table to your Piwigo gallery, create some albums and upload several photos at once.'] = 'Piwigo for Android applikasjonen gjør at du kan koble til ditt Piwigo-galleri fra din Android-telefon, opprette album og laste opp flere bilder samtidig.'; $lang['Piwigo for iOS application empowers you to connect to your Piwigo gallery from your iPhone, iPad or iPod Touch, create some albums and upload several photos at once.'] = 'Piwigo for iOS applikasjonen gjør at du kan koble til ditt Piwigo-galleri fra din iPhone, iPad eller iPod Touch, opprette album og laste opp flere bilder samtidig.'; $lang['Adobe Photoshop Lightroom is a photography software designed to manage large quantities of digital images and doing post production work.'] = 'Adobe Photoshop Lightroom et et bildebehandlingsprogram, lagd for Ã¥ Ã¥ organisere svært mange bilder, samt etterbehandling av bilder.'; $lang['Aperture is a powerful tool to refine images and manage massive libraries on Mac.'] = 'Aperture er et kraftig verktøy for Ã¥ avgrense bilder, og for Ã¥ behandle store bildebibliotek pÃ¥ Mac.'; @@ -909,7 +911,7 @@ $lang['Ratio'] = 'Ratio'; $lang['Duplicate'] = 'Duplikat'; $lang['Manage the members'] = 'Administrer medlemmer'; $lang['Merge selected groups'] = 'Flett markerte grupper'; -$lang['No group selected, no action possible.'] = 'Ingen gruppe markert, kan ikke gjøre noe.'; +$lang['No groups selected, no actions possible.'] = 'Ingen gruppe markert, kan ikke gjøre noe.'; $lang['No members to manage'] = 'Ingen medlemmer Ã¥ behandle'; $lang['Please select at least two groups'] = 'Vennligst marker minst to grupper'; $lang['Rename'] = 'Gi nytt navn'; @@ -934,7 +936,7 @@ $lang['Change username'] = 'Bytt brukernavn'; $lang['Loading...'] = 'Laster...'; $lang['No matching user found'] = 'Ingen treff'; $lang['No user selected of %d users'] = 'Ingen av %d brukere valgt'; -$lang['No user selected, no action possible.'] = 'Ingen bruker valgt, kan ikke gjøre noe.'; +$lang['No users selected, no actions possible.'] = 'Ingen bruker valgt, kan ikke gjøre noe.'; $lang['Password updated'] = 'Passord oppdatert'; $lang['Registered on %s, %s.'] = 'Registrert den %s, %s.'; $lang['Show %s users'] = 'Vis %s brukere'; @@ -970,7 +972,7 @@ $lang['Orphans'] = 'Eierløs'; $lang['Recipients'] = 'Mottakere'; $lang['Y Repeat'] = 'Y Gjenta'; $lang['Display form'] = 'Visningstype'; -$lang['No tag selected, no action possible.'] = 'Ikke noe merke valgt, ingen aksjon mulig'; +$lang['No tags selected, no actions possible.'] = 'Ikke noe merke valgt, ingen aksjon mulig'; $lang['Piwigo Remote Sync is able to upload a whole folder hierarchy. If you run it again, only new photos will be uploaded.'] = 'Piwigo fjernsynkronisering kan laste opp en hel katalogstruktur. Kjøres den igjen, blir bare ny bilder lastet opp'; $lang['Running on an up-to-date Piwigo is important for security.'] = 'En oppdatert versjon av Piwigo er viktig for sikkerheten'; $lang['Select tags'] = 'Velg merker'; @@ -1005,4 +1007,4 @@ $lang['Visit'] = 'Besøk'; $lang['Welcome!'] = 'Velkommen!'; $lang['With no checksum'] = 'Uten sjekksum'; $lang['checksums to add'] = 'sjekksum som skal legges til'; -$lang['or'] = 'eller'; \ No newline at end of file +$lang['or'] = 'eller'; diff --git a/language/nl_NL/admin.lang.php b/language/nl_NL/admin.lang.php index dde753e8f..82200fcbd 100644 --- a/language/nl_NL/admin.lang.php +++ b/language/nl_NL/admin.lang.php @@ -662,7 +662,7 @@ $lang['Refresh photo set'] = 'Vernieuwen foto set'; $lang['The whole page'] = 'De hele pagina'; $lang['The whole set'] = 'De hele set'; $lang['No photo in the current set.'] = 'Geen foto in de huidige reeks.'; -$lang['No photo selected, no action possible.'] = 'Geen foto geselecteerd. Geen actie mogelijk.'; +$lang['No photos selected, no actions possible.'] = 'Geen foto geselecteerd. Geen actie mogelijk.'; $lang['Choose an action'] = 'Kies een actie'; $lang['remove author'] = 'Verwijder auteur'; $lang['Type here the author name'] = 'Type hier de naam van de fotograaf/maker'; @@ -805,6 +805,7 @@ $lang['Center of interest'] = 'Middelpunt van belangstelling'; $lang['Move to album'] = 'Verplaats naar album'; $lang['You can activate only one mobile theme.'] = 'Je kunt slechts een mobiel thema activeren.'; $lang['Piwigo for iOS application empowers you to connect to your Piwigo gallery from your iPhone, iPad or iPod Touch, create some albums and upload several photos at once.'] = 'Piwigo voor IOS applicatie stelt je in staat jouw Piwigo galerie te openen vanaf je iPhone, iPad of iPod Touch, een aantal albums aan te maken en meerdere foto\'s tegelijk te uploaden.'; +$lang['Piwigo for Android application empowers you to connect your Android phone or table to your Piwigo gallery, create some albums and upload several photos at once.'] = 'De Piwigo voor Android applicatie stelt u in staat uw Piwigo galerie te openen vanaf uw Android-telefoon of tablet, een aantal albums aan te maken en meerdere foto\'s tegelijk te uploaden.'; $lang['Adobe Photoshop Lightroom is a photography software designed to manage large quantities of digital images and doing post production work.'] = 'Adobe Photoshop Lightroom is fotografie-software ontworpen om grote hoeveelheden digitale foto\'s te verwerken en voor het verrichten van post-productie werk.'; $lang['Applications'] = 'Toepassingen'; $lang['apply automatic sort order'] = 'Automatische sorteervolgorde toepassen'; @@ -813,6 +814,7 @@ $lang['Available on'] = 'Beschikbaar voor'; $lang['cancel manual order'] = 'Annuleer handmatige volgorde'; $lang['Cancel'] = 'Annuleer'; $lang['List'] = 'Lijst'; +$lang['Piwigo for Android'] = 'Piwigo voor Android'; $lang['Piwigo for iOS (iPhone, iPad, iPod Touch)'] = 'Piwigo voor iOS (iPhone, iPad, iPod Touch)'; $lang['Piwigo Publish plugin for Lightroom'] = 'Piwigo Publish plugin voor Lightroom'; $lang['Piwigo publish plugin for Shotwell'] = 'Piwigo Publish plugin voor Shotwell'; @@ -915,7 +917,7 @@ $lang['between %d and %d pixels'] = 'tussen %d en %d pixels'; $lang['Duplicate'] = 'Kopieer'; $lang['Manage the members'] = 'Beheer de gebruikers'; $lang['Merge selected groups'] = 'Voeg de geselecteerde groepen samen'; -$lang['No group selected, no action possible.'] = 'Geen groep geselecteerd. Handeling niet mogelijk'; +$lang['No groups selected, no actions possible.'] = 'Geen groep geselecteerd. Handeling niet mogelijk'; $lang['No members to manage'] = 'Geen gebruikers te beheren'; $lang['Please select at least two groups'] = 'Selecteer minstens 2 groepen'; $lang['Rename'] = 'Hernoem'; @@ -939,7 +941,7 @@ $lang['Showing %s to %s of %s users'] = 'Toon %s aan %s van de %s gebruikers'; $lang['Update user'] = 'Werk de gebruiker bij'; $lang['No matching user found'] = 'Geen overeenkomende gebruikers gevonden'; $lang['No user selected of %d users'] = 'Geen gebruiker geselecteerd van de %d gebruikers'; -$lang['No user selected, no action possible.'] = 'Geen gebruiker geselecteerd. Geen actie mogelijk'; +$lang['No users selected, no actions possible.'] = 'Geen gebruiker geselecteerd. Geen actie mogelijk'; $lang['Registered on %s, %s.'] = 'Geregistreerd op %s, %s.'; $lang['Show %s users'] = 'Toon %s gebruikers'; $lang['Change username'] = 'Verander gebruikersnaam'; @@ -978,8 +980,8 @@ $lang['delete only album, not photos'] = 'Verwijder alleen het album, niet de fo $lang['Delete album "%s".'] = 'Verwijder album %s.'; $lang['First photo added'] = 'Eerste toegevoegde afbeelding'; $lang['It only takes a few clicks.'] = 'Het duurt slechts een paar klikken.'; -$lang['No tag selected, no action possible.'] = 'Geen label geselecteerd. Geen actie mogelijk'; -$lang['Piwigo %s is available, please update'] = 'Piwigo %s is beschikbaar, update a.u.b.'; +$lang['No tags selected, no actions possible.'] = 'Geen label geselecteerd. Geen actie mogelijk'; +$lang['Piwigo %s is available, please update'] = 'Piwigo %s is beschikbaar, bijwerke a.u.b.'; $lang['Select tags'] = 'Selecteer labels'; $lang['Storage used'] = 'Opslag gebruikt'; $lang['(determined from photos)'] = '(Bepaald op basis van foto\'s)'; @@ -1009,4 +1011,4 @@ $lang['Visit'] = 'Bezoek'; $lang['Welcome!'] = 'Welkom!'; $lang['With no checksum'] = 'Zonder checksum'; $lang['checksums to add'] = 'checksums toe te voegen'; -$lang['or'] = 'of'; \ No newline at end of file +$lang['or'] = 'of'; diff --git a/language/nn_NO/admin.lang.php b/language/nn_NO/admin.lang.php index f35d07164..26ebfc6d7 100644 --- a/language/nn_NO/admin.lang.php +++ b/language/nn_NO/admin.lang.php @@ -217,6 +217,7 @@ $lang['width must be a number superior to'] = 'breidde mÃ¥ vera eit tal større $lang['Anomaly'] = 'Feil'; $lang['Are you sure you want to delete this plugin?'] = 'Er du sikker pÃ¥ at du vil fjerne dette tilleggsprogrammet'; $lang['Are you sure you want to install this plugin?'] = 'Er du sikker pÃ¥ at du vil installere dette tilleggsprogrammet'; +$lang['Piwigo for Android application empowers you to connect your Android phone or table to your Piwigo gallery, create some albums and upload several photos at once.'] = 'Piwigo for Android appen gjer det mogleg Ã¥ kople ein Android telefon eller nettbrett til ditt Piwigo galleri. Du kan lage album og laste opp fleire bilete pÃ¥ ein gong.'; $lang['Piwigo for iOS application empowers you to connect to your Piwigo gallery from your iPhone, iPad or iPod Touch, create some albums and upload several photos at once.'] = 'Piwigo for iOS appen gjer det mogleg Ã¥ kople ein iPhone, iPad eller iPod Touch til ditt Piwigo galleri. Du kan lage album og laste opp fleire bilete pÃ¥ ein gong.'; $lang['Add write access to the "%s" directory'] = 'Legg til skriverettar til "%s" katalogen'; $lang['Adobe Photoshop Lightroom is a photography software designed to manage large quantities of digital images and doing post production work.'] = 'Adobe Photoshop Lightroom er programvare laga for Ã¥ handtere store mengder digitale foto og gjera biletbehandling.'; @@ -288,7 +289,7 @@ $lang['Week starts on'] = 'Veka startar pÃ¥'; $lang['Who can see these photos?'] = 'Kven kan sjÃ¥ desse bileta?'; $lang['New parent album'] = 'Nytt foreldrealbum'; $lang['No display'] = 'Ingen vising'; -$lang['No group selected, no action possible.'] = 'Ingen gruppe er vald, ingen handling mogleg.'; +$lang['No groups selected, no actions possible.'] = 'Ingen gruppe er vald, ingen handling mogleg.'; $lang['Not cropped correctly?'] = 'Ikkje kutta rett?'; $lang['Notification'] = 'Melding'; $lang['Notify administrators when a comment is'] = 'Send melding til administratorar nÃ¥r ein kommentar er'; @@ -484,7 +485,7 @@ $lang['No photo can be deleted'] = 'Ingen bilete kan slettast'; $lang['No photo in the current set.'] = 'Ingen bilete i gjeldande samling'; $lang['No photo in this album'] = 'Ingen bilete i dette albumet'; $lang['No photo selected, %d photos in current set'] = 'Ingen bilete vald, %d bilete i gjeldande samling'; -$lang['No photo selected, no action possible.'] = 'Ingen bilete vald, ingen handling er mogleg.'; +$lang['No photos selected, no actions possible.'] = 'Ingen bilete vald, ingen handling er mogleg.'; $lang['No results'] = 'Ingen resultat'; $lang['No user to send notifications by mail.'] = 'Ingen brukar som kan informerast via e-post.'; $lang['None'] = 'Ingen'; @@ -516,6 +517,7 @@ $lang['Pending Comments'] = 'Ventande kommentarar'; $lang['Permalink'] = 'Permalenke'; $lang['Permalink %s is already used by album %s'] = 'Permalenke %s er allereie i bruk av album %s'; $lang['Permalink history'] = 'Permalenke-historikk'; +$lang['Piwigo for Android'] = 'Piwigo for Android'; $lang['Piwigo for iOS (iPhone, iPad, iPod Touch)'] = 'Piwigo for iOS (iPhone, iPad, iPod Touch)'; $lang['Posted %s on %s'] = 'Lagt til %s %s'; $lang['Permalinks'] = 'Permalenker'; @@ -937,7 +939,7 @@ $lang['No matching user found'] = 'Ingen brukarar vart funne'; $lang['Password updated'] = 'Passordet er endra'; $lang['Show %s users'] = 'Vis %s brukarar'; $lang['No user selected of %d users'] = 'Ingen brukarar valde (totalt %d brukarar)'; -$lang['No user selected, no action possible.'] = 'Ingen brukarar valde - ingen aksjon mogleg'; +$lang['No users selected, no actions possible.'] = 'Ingen brukarar valde - ingen aksjon mogleg'; $lang['Registered on %s, %s.'] = 'Registrera %s, %s.'; $lang['Showing %s to %s of %s users'] = 'Viser %s til %s av %s brukarar'; $lang['Update user'] = 'Endre brukar'; diff --git a/language/pl_PL/admin.lang.php b/language/pl_PL/admin.lang.php index 3c2204fbd..49cebf348 100644 --- a/language/pl_PL/admin.lang.php +++ b/language/pl_PL/admin.lang.php @@ -663,7 +663,7 @@ $lang['Refresh photo set'] = 'OdÅ›wież zestaw zdjęć'; $lang['The whole page'] = 'Całą strona'; $lang['The whole set'] = 'CaÅ‚y zestaw'; $lang['No photo in the current set.'] = 'Brak zdjęć w wybranym zestawie.'; -$lang['No photo selected, no action possible.'] = 'Brak wybranych zdjęć, niedostÄ™pna jest żadna akcja.'; +$lang['No photos selected, no actions possible.'] = 'Brak wybranych zdjęć, niedostÄ™pna jest żadna akcja.'; $lang['Choose an action'] = 'Wybierz akcjÄ™'; $lang['remove author'] = 'usuÅ„ autora'; $lang['Type here the author name'] = 'Wpisz tutaj nazwÄ™ autora'; @@ -802,10 +802,12 @@ $lang['Not cropped correctly?'] = 'Rozmiar nie zmieniony poprawnie?'; $lang['Center of interest'] = 'Centrum zainteresowania'; $lang['Move to album'] = 'PrzenieÅ› do albumu'; +$lang['Piwigo for Android application empowers you to connect your Android phone or table to your Piwigo gallery, create some albums and upload several photos at once.'] = 'Piwigo na Androida aplikacja daje możliwość połączenia Twojej galerii Piwigo z Twoim telefonem lub tabletem opartym na Androidzie. Możesz tworzyć albumy i wysyÅ‚ać wiele zdjęć jednoczeÅ›nie.'; $lang['Piwigo for iOS application empowers you to connect to your Piwigo gallery from your iPhone, iPad or iPod Touch, create some albums and upload several photos at once.'] = 'Piwigo na iOS aplikacja daje możliwość połączenia Twojej galerii Piwigo z Twoim iPhonem, iPadem lub iPodem. Możesz tworzyć albumy i wysyÅ‚ać wiele zdjęć jednoczeÅ›nie.'; $lang['Applications'] = 'Aplikacje'; $lang['Available on'] = 'DostÄ™pne na'; $lang['Cancel'] = 'Anuluj'; +$lang['Piwigo for Android'] = 'Piwigo na Androida'; $lang['Piwigo for iOS (iPhone, iPad, iPod Touch)'] = 'Piwigo na iOS (iPhone, iPad, iPod Touch)'; $lang['any visitor can see this album'] = 'wszyscy odwiedzajÄ…cy galeriÄ™ zobaczÄ… ten album'; $lang['apply automatic sort order'] = 'Zastosuj automatycznÄ… kolejność sortowania'; @@ -913,7 +915,7 @@ $lang['between %.2f and %.2f'] = 'pomiÄ™dzy %.2f i %.2f'; $lang['Duplicate'] = 'Duplikuj'; $lang['Manage the members'] = 'ZarzÄ…dzaj czÅ‚onkami'; $lang['Merge selected groups'] = 'Połącz wybrane grupy'; -$lang['No group selected, no action possible.'] = 'Nie wybrano grup, nie można wykonywać żadnych akcji'; +$lang['No groups selected, no actions possible.'] = 'Nie wybrano grup, nie można wykonywać żadnych akcji'; $lang['No members to manage'] = 'Nie ma czÅ‚onków do zarzÄ…dzania'; $lang['Please select at least two groups'] = 'Wybierz conajmniej dwie grupy'; $lang['Rename'] = 'ZmieÅ„ nazwÄ™'; @@ -935,7 +937,7 @@ $lang['%d of %d users selected'] = 'wybrano %d z %d użytkowników'; $lang['All %d users are selected'] = 'Każdy z %d użytkowników zostaÅ‚ wybrany'; $lang['No matching user found'] = 'Nie odnaleziono pasujÄ…cego użytkownika'; $lang['No user selected of %d users'] = 'Nie wybrano żadnego z %d użytkowników'; -$lang['No user selected, no action possible.'] = 'Nie wybrano żadnego użytkownika, żadna akcja nie jest możliwa.'; +$lang['No users selected, no actions possible.'] = 'Nie wybrano żadnego użytkownika, żadna akcja nie jest możliwa.'; $lang['Update user'] = 'Zaktualizuj użytkownika'; $lang['User %s added'] = 'Dodano użytkownika %s'; $lang['User %s updated'] = 'Użytkownik %s zostaÅ‚ zaktualizowany'; @@ -985,7 +987,7 @@ $lang['(determined from photos)'] = '(pobrane ze zdjÄ™cia)'; $lang['Delete album "%s" and its %d sub-albums.'] = 'Skasuj album "%s" ze wszystkimi %d pod albumami.'; $lang['Recipients'] = 'Odbiorcy'; $lang['No recipient selected'] = 'Nie wybrano odbiorców'; -$lang['No tag selected, no action possible.'] = 'Nie wybrano znaczników, brak możliwych akcji.'; +$lang['No tags selected, no actions possible.'] = 'Nie wybrano znaczników, brak możliwych akcji.'; $lang['First photo added'] = 'Dodano pierwsze zdjÄ™cie'; $lang['Edit user'] = 'Edytuj użytkownika'; $lang['Display form'] = 'Pokaż formularz'; @@ -1007,4 +1009,4 @@ $lang['Synchronization in progress'] = 'Trwa synchronizacja'; $lang['Welcome!'] = 'Witamy!'; $lang['With no checksum'] = 'Bez sum kontrolnych'; $lang['checksums to add'] = 'sumy kontrolne do dodania'; -$lang['or'] = 'lub'; \ No newline at end of file +$lang['or'] = 'lub'; diff --git a/language/pt_BR/admin.lang.php b/language/pt_BR/admin.lang.php index 913f57b61..06f2f6810 100644 --- a/language/pt_BR/admin.lang.php +++ b/language/pt_BR/admin.lang.php @@ -652,6 +652,7 @@ $lang['%d years'] = '%d anos'; $lang['%s ago'] = '%s atrás'; $lang['%s in the future'] = '%s no futuro'; $lang['%u users have automatic permission because they belong to a granted group.'] = 'usuários %u tem permissão automática porque pertencem a um grupo que possui essa permissão'; +$lang['Piwigo for Android application empowers you to connect your Android phone or table to your Piwigo gallery, create some albums and upload several photos at once.'] = 'O aplicativo Piwigo para Android capacita você a conectar o seu celular ou tablet Android à sua galeria Piwigo, criando álbuns e colocando várias fotos ao mesmo tempo.'; $lang['A locked gallery is only visible to administrators'] = 'Uma galeria trancada é somente visÃvel pelos administradores'; $lang['Added by %s'] = 'Adicionado por %s'; $lang['Adobe Photoshop Lightroom is a photography software designed to manage large quantities of digital images and doing post production work.'] = 'O Adobe Photoshop Lightroom é um software de fotografia feito para gerenciar grandes quantidades de imagens digitais e fazer o trabalho de pós-produção'; @@ -709,7 +710,7 @@ $lang['No group is permitted to see this private album'] = 'Nenhum grupo tem per $lang['No order field selected'] = 'Nenhum campo de ordenação selecionado'; $lang['No photo in the current set.'] = 'Nenhuma foto no set atual'; $lang['No photo selected, %d photos in current set'] = 'Nenhuma foto selecionada, %d fotos no set atual'; -$lang['No photo selected, no action possible.'] = 'Nenhuma fotos selecionada, nenhuma ação possÃvel.'; +$lang['No photos selected, no actions possible.'] = 'Nenhuma fotos selecionada, nenhuma ação possÃvel.'; $lang['No results'] = 'Sem Resultados'; $lang['None'] = 'Nenhum'; $lang['Not cropped correctly?'] = 'Não recortado corretamente?'; @@ -743,6 +744,7 @@ $lang['Piwigo Uploader'] = 'Envio de Fotos do Piwigo'; $lang['Piwigo cannot retrieve upgrade file from server'] = 'Piwigo não pode receber arquivos de atualização do servidor'; $lang['Piwigo export plugin for Aperture'] = 'Plugin de Exportação do Piwigo para Aperture'; $lang['Piwigo export plugin for iPhoto'] = 'Plugin de Exportação do Piwigo para iPhoto'; +$lang['Piwigo for Android'] = 'Piwigo para Android'; $lang['Piwigo for iOS (iPhone, iPad, iPod Touch)'] = 'Piwigo para iOS (iPhone, iPad, iPod Touch)'; $lang['Piwigo publish plugin for Shotwell'] = 'Plugin de publicação do Piwigo para Shortwell'; $lang['Piwigo publish plugin for digiKam'] = 'Plugin de publicação do Piwigo para digiKam'; @@ -914,7 +916,7 @@ $lang['between %d and %d pixels'] = 'Entre %d e %d pixels'; $lang['Duplicate'] = 'Duplicado'; $lang['Manage the members'] = 'Gerencie os membros'; $lang['Merge selected groups'] = 'Junte os grupos selecionados'; -$lang['No group selected, no action possible.'] = 'Nenhum grupo selecionado. Nenhuma açao é possÃvel.'; +$lang['No groups selected, no actions possible.'] = 'Nenhum grupo selecionado. Nenhuma açao é possÃvel.'; $lang['No members to manage'] = 'Sem membros para gerenciar'; $lang['Please select at least two groups'] = 'Por favor, selecione ao menos dois grupos'; $lang['Rename'] = 'Renomear'; @@ -936,7 +938,7 @@ $lang['Last visit on %s, %s.'] = 'Última visita em %s, %s.'; $lang['Loading...'] = 'Carregando...'; $lang['No matching user found'] = 'Nenhum usuário encontrado'; $lang['No user selected of %d users'] = 'Nenhum usuário selecionado do total de %d usuários'; -$lang['No user selected, no action possible.'] = 'Nenhum usuário selecionado, nenhuma ação possÃvel.'; +$lang['No users selected, no actions possible.'] = 'Nenhum usuário selecionado, nenhuma ação possÃvel.'; $lang['Password updated'] = 'Senha atualizada'; $lang['Registered on %s, %s.'] = 'Registrado em %s, %s.'; $lang['Show %s users'] = 'Mostra %s usuários'; @@ -985,7 +987,7 @@ $lang['Select tags'] = 'Selecionar etiquetas'; $lang['Running on an up-to-date Piwigo is important for security.'] = 'Executar um Piwigo atualizado é importante para a segurança.'; $lang['Piwigo Remote Sync is able to upload a whole folder hierarchy. If you run it again, only new photos will be uploaded.'] = 'Piwigo Remote Sync é capaz de enviar uma seleção inteira de pastas. Se você executá-lo novamente, apenas novas fotos serão enviadas.'; $lang['Piwigo %s is available, please update'] = 'Piwigo %s está disponÃvel, atualize'; -$lang['No tag selected, no action possible.'] = 'Nenhuma etiqueta selecionada, nenhuma ação possÃvel.'; +$lang['No tags selected, no actions possible.'] = 'Nenhuma etiqueta selecionada, nenhuma ação possÃvel.'; $lang['No filter on album. Select one or type to search'] = 'Nenhum filtro no álbum. Selecione um ou digite para pesquisar'; $lang['It only takes a few clicks.'] = 'Demora apenas alguns cliques.'; $lang['First photo added'] = 'Primeira foto adicionada'; @@ -1009,4 +1011,4 @@ $lang['Visit'] = 'Visita'; $lang['Welcome!'] = 'Bem vindo!'; $lang['With no checksum'] = 'Sem soma de verificação'; $lang['checksums to add'] = 'somas de verificação para adicionar'; -$lang['or'] = 'ou'; \ No newline at end of file +$lang['or'] = 'ou'; diff --git a/language/pt_PT/admin.lang.php b/language/pt_PT/admin.lang.php index d683730c5..6e13b66d6 100644 --- a/language/pt_PT/admin.lang.php +++ b/language/pt_PT/admin.lang.php @@ -609,7 +609,7 @@ $lang['Missing Plugins'] = 'Extenções em Falta'; $lang['No file was uploaded'] = 'Nenhum carregado qualquer arquivo'; $lang['No photo in the current set.'] = 'Nenhuma foto no conjunto actual.'; $lang['No photo selected, %d photos in current set'] = 'Nenhuma foto seleccionada, %d fotos no conjunto actual'; -$lang['No photo selected, no action possible.'] = 'Nenhuma foto seleccionada, ImpossÃvel realizar acção.'; +$lang['No photos selected, no actions possible.'] = 'Nenhuma foto seleccionada, ImpossÃvel realizar acção.'; $lang['None'] = 'Nenhuma'; $lang['on the %d selected photos'] = 'Nas %d fotos seleccionadas'; $lang['Operation in progress'] = 'Operação em progresso.'; @@ -812,6 +812,7 @@ $lang['Cancel'] = 'Cancelar'; $lang['List'] = 'Lista'; $lang['Web Form'] = 'Formulário web'; $lang['Applications'] = 'Aplicações'; +$lang['Piwigo for Android application empowers you to connect your Android phone or table to your Piwigo gallery, create some albums and upload several photos at once.'] = 'A aplicação Piwigo for Android permite-lhe ligar do seu telefone Android ou Tablet à galeria Piwigo, criar albuns e carregar diversas fotos simultâneamente.'; $lang['Piwigo for iOS application empowers you to connect to your Piwigo gallery from your iPhone, iPad or iPod Touch, create some albums and upload several photos at once.'] = 'A aplicação Piwigo for iOS permite-lhe, ligação à sua galeria Piwigo a partir do seu IPhone,IPad ou IPod táctil, criar albuns e carregar fotos simultâneamente.'; $lang['Adobe Photoshop Lightroom is a photography software designed to manage large quantities of digital images and doing post production work.'] = 'Adobe Photoshop Lightroom é um software para fotografia desenhado para manusear larga quantidade de fotos digitais e para transferência depois de produzidas.'; $lang['Aperture is a powerful tool to refine images and manage massive libraries on Mac.'] = 'Abertura é uma potente ferramenta destinada a refinar imagens e gerenciar massivas livrarias em Mac.'; @@ -822,6 +823,7 @@ $lang['iPhoto is the default photo manager on MacOSX. The Piwigo export plugin l $lang['On your Linux, simply install Shotwell with your package manager and the activate Piwigo publishing option.'] = 'Em Linux, instale o Shotwell com o pacote base e, depois terá de ativar a opção ativar publicação Piwigo.'; $lang['Piwigo export plugin for Aperture'] = 'Exportar Extenção Piwigo para Aperture.'; $lang['Piwigo export plugin for iPhoto'] = 'Extenção Piwigo de exportação para Iphoto.'; +$lang['Piwigo for Android'] = 'Piwigo para Android'; $lang['Piwigo for iOS (iPhone, iPad, iPod Touch)'] = 'Piwigo para iOS (iPhone, iPad, iPod táctil)'; $lang['Piwigo publish plugin for digiKam'] = 'Extenção de publicação Piwigo para DigiKam.'; $lang['Piwigo Publish plugin for Lightroom'] = 'Extenção de publicação Piwigo para Lightroom.'; @@ -912,7 +914,7 @@ $lang['between %d and %d pixels'] = 'entre %d e %d pixels'; $lang['Duplicate'] = 'Duplicar'; $lang['Manage the members'] = 'Gerir os membros'; $lang['Merge selected groups'] = 'Omitir os grupos selecionados'; -$lang['No group selected, no action possible.'] = 'Não existe grupo selecionado, não é possivel qualquer ação'; +$lang['No groups selected, no actions possible.'] = 'Não existe grupo selecionado, não é possivel qualquer ação'; $lang['No members to manage'] = 'Sem membros para gerir'; $lang['Please select at least two groups'] = 'Selecione, por favor, pelo menos dois grupo.'; $lang['Rename'] = 'Renomear'; @@ -936,7 +938,7 @@ $lang['Last visit on %s, %s.'] = 'Última visita em %s, %s.'; $lang['Loading...'] = 'Carregando'; $lang['No matching user found'] = 'Não foram encontrados utilizadores que correspondam'; $lang['No user selected of %d users'] = 'Em %d utilizadores não foi nenhum selecionado'; -$lang['No user selected, no action possible.'] = 'Sem utilizador selecionado não é possivel qualquer ação'; +$lang['No users selected, no actions possible.'] = 'Sem utilizador selecionado não é possivel qualquer ação'; $lang['Password updated'] = 'Senha atualizada'; $lang['Registered on %s, %s.'] = 'Registado em %s, %s.'; $lang['Showing %s to %s of %s users'] = 'Mostrando %s para %s de %s utilizadores'; @@ -986,7 +988,7 @@ $lang['Display form'] = 'Formulário de exibição'; $lang['First photo added'] = 'Primeira foto adicionada'; $lang['It only takes a few clicks.'] = 'Demora apenas alguns cliques'; $lang['No filter on album. Select one or type to search'] = 'Nenhum filtro no álbum. Selecione um ou digite para pesquisar'; -$lang['No tag selected, no action possible.'] = 'Nenhuma tag selecionada, nenhuma ação possÃvel.'; +$lang['No tags selected, no actions possible.'] = 'Nenhuma tag selecionada, nenhuma ação possÃvel.'; $lang['Piwigo Remote Sync is able to upload a whole folder hierarchy. If you run it again, only new photos will be uploaded.'] = 'Piwigo Remote Sync é capaz de carregar uma hierarquia de pasta inteira. Se você executá-lo novamente, apenas novas fotos serão enviadas'; $lang['Running on an up-to-date Piwigo is important for security.'] = 'Trabalhar em um Piwigo atualizado é importante para a segurança.'; $lang['Select tags'] = 'Selecionar tags'; diff --git a/language/ro_RO/admin.lang.php b/language/ro_RO/admin.lang.php index f7dc925be..a0a490201 100644 --- a/language/ro_RO/admin.lang.php +++ b/language/ro_RO/admin.lang.php @@ -608,6 +608,7 @@ $lang['Aperture is designed for professional photographers with iPhoto simplicit $lang['Aperture is a powerful tool to refine images and manage massive libraries on Mac.'] = 'Aperture este un instrument puternic proiectat pentru redefinirea imaginilor È™i pentru gestiunea de biblioteci mari pe un sistem Mac.'; $lang['Adobe Photoshop Lightroom is a photography software designed to manage large quantities of digital images and doing post production work.'] = 'Adobe Photoshop Lightroom este un program pentru fotografii proiectat pentru a gestiona È™i a prelucra mari cantități de imagini digitale.'; $lang['Piwigo for iOS application empowers you to connect to your Piwigo gallery from your iPhone, iPad or iPod Touch, create some albums and upload several photos at once.'] = 'Piwigo pentru iOS programul vă permite să vă conectaÈ›i iPhone-ul, iPad-ul sau iPad-ul Touch la galeria dvs. Piwigo, să creaÈ›i unele albume È™i să transmiteÈ›i mai multe fotografii în acelaÈ™i timp.'; +$lang['Piwigo for Android application empowers you to connect your Android phone or table to your Piwigo gallery, create some albums and upload several photos at once.'] = 'Piwigo pentru Android programul vă permite să vă conectaÈ›i telefonul sau tableta dvs. Android la galeria dvs. Piwigo, să creaÈ›i unele albume È™i să transmiteÈ›i mai multe fotografii în acelaÈ™i timp.'; $lang['%u users have automatic permission because they belong to a granted group.'] = 'u% de utilizatori au permisiunea automată, deoarece aceÈ™tia aparÈ›in unui grup cu permisii.'; $lang['View in gallery'] = 'Vezi în galerie'; $lang['Used metadata'] = 'Metadate utilizate'; @@ -672,6 +673,7 @@ $lang['Piwigo version'] = 'Versiune Piwigo'; $lang['Please select at least two groups'] = 'Te rog alege cel puÅ£in două grupuri'; $lang['Permission granted for users'] = 'Permisiuni acordate pentru utilizator'; $lang['Permission management'] = 'Management de permisiuni'; +$lang['Piwigo for Android'] = 'Piwigo pentru Android'; $lang['Piwigo for iOS (iPhone, iPad, iPod Touch)'] = 'Piwigo pentru iOS (iPhone, iPad, iPod Touch='; $lang['The name of a group must not contain " or \' or be empty.'] = 'Numele unui grup trebuie să nu conÅ£ină " sau \' sau sa fie gol.'; $lang['The name of an album must not be empty'] = 'Numele unui album trebuie să nu fie gol'; @@ -735,7 +737,7 @@ $lang['Restore'] = 'Restaurează'; $lang['Save manual order'] = 'Salvează ordinea manuală'; $lang['Save visits in history for'] = 'Salvează vizitele în istoric pentru'; $lang['Search for new images in the directories'] = 'Caută imagini noi în dosarele'; -$lang['No group selected, no action possible.'] = 'Niciun grup ales, nicio acÅ£iune posibilă.'; +$lang['No groups selected, no actions possible.'] = 'Niciun grup ales, nicio acÅ£iune posibilă.'; $lang['No mail to send.'] = 'Niciun mesaj electronic de trimis.'; $lang['No members to manage'] = 'Niciun membru de administrat'; $lang['Merge selected groups'] = 'ÃŽmbină grupurile alese'; @@ -920,7 +922,7 @@ $lang['Hoverbox display'] = 'AfiÈ™aj în fereastră flotantă'; $lang['No display'] = 'Niciu'; $lang['No order field selected'] = 'Nicio ordine a cămpurilor aleasă'; $lang['No photo selected, %d photos in current set'] = 'Nicio fotografie aleasă, %d fotografii în setul curent'; -$lang['No photo selected, no action possible.'] = 'Nicio fotografie aleasă, nicio acÈ›iune posibilă.'; +$lang['No photos selected, no actions possible.'] = 'Nicio fotografie aleasă, nicio acÈ›iune posibilă.'; $lang['No user to send notifications by mail.'] = 'Niciun utilizator petnru a fi înÈ™tiinÈ›at prin e-mail.'; $lang['Piwigo cannot retrieve upgrade file from server'] = 'Pwigo nu poate aduce fotografiile de pe server'; $lang['Webmaster status is required.'] = 'Este necesar statutul de webmaster.'; @@ -931,7 +933,7 @@ $lang['The webmaster has unsubscribed you from receiving notifications by mail.' $lang['Basic settings'] = 'Setări de bază'; $lang['No matching user found'] = 'Niciun utilizator nu corespunde'; $lang['No user selected of %d users'] = 'Niciun utilizator selectat din %d utilizatori'; -$lang['No user selected, no action possible.'] = 'Niciun utilizator selectat, nicio acÈ›iune posibilă'; +$lang['No users selected, no actions possible.'] = 'Niciun utilizator selectat, nicio acÈ›iune posibilă'; $lang['Password updated'] = 'Parolă adusă la zi'; $lang['Showing %s to %s of %s users'] = 'Arăt de la %s la %s din %s utilizatori'; $lang['Update user'] = 'Adu la zi utilizator'; @@ -993,7 +995,7 @@ $lang['delete only album, not photos'] = 'sterge doar albumul, nu si fotografiil $lang['Piwigo %s is available, please update'] = 'Piwigo %s este disponibil, te rugăm să actualizezi'; $lang['First photo added'] = 'Prima fotografie adaugată'; $lang['No filter on album. Select one or type to search'] = 'Niciun filtru pe album. Selectează unul sau tastează pentru a căuta'; -$lang['No tag selected, no action possible.'] = 'Nicio eticheta selectată, nicio acÅ£iune posibilă'; +$lang['No tags selected, no actions possible.'] = 'Nicio eticheta selectată, nicio acÅ£iune posibilă'; $lang['Confirm deletion'] = 'Confirma stergerea'; $lang['Dashboard'] = 'Panou de control'; $lang['Delete album "%s" and its %d sub-albums.'] = 'Åžterge albumul "%s" ÅŸi %d subalbumele ale sale'; @@ -1012,4 +1014,4 @@ $lang['Visit'] = 'Vizita'; $lang['Welcome!'] = 'Bine ai venit!'; $lang['With no checksum'] = 'Fara suma de control'; $lang['checksums to add'] = 'Sume de control de adaugat'; -$lang['or'] = 'sau'; \ No newline at end of file +$lang['or'] = 'sau'; diff --git a/language/ru_RU/admin.lang.php b/language/ru_RU/admin.lang.php index c1fa66482..c8e3e7f91 100644 --- a/language/ru_RU/admin.lang.php +++ b/language/ru_RU/admin.lang.php @@ -665,7 +665,7 @@ $lang['Refresh photo set'] = 'Обновить набор изображений $lang['The whole page'] = 'Ð’Ñе на Ñтранице'; $lang['The whole set'] = 'Ð’Ñе в наборе'; $lang['No photo in the current set.'] = 'Ðет изображений в текущем наборе.'; -$lang['No photo selected, no action possible.'] = 'Ðичего не выбрано, дейÑтвие невозможно.'; +$lang['No photos selected, no actions possible.'] = 'Ðичего не выбрано, дейÑтвие невозможно.'; $lang['Choose an action'] = 'Выберите дейÑтвие'; $lang['remove author'] = 'удалить автора'; $lang['Type here the author name'] = 'напечатайте Ð¸Ð¼Ñ Ð°Ð²Ñ‚Ð¾Ñ€Ð° здеÑÑŒ'; @@ -797,6 +797,7 @@ $lang['With no album'] = 'Без альбома'; $lang['With no tag'] = 'Без меток'; $lang['With no virtual album'] = 'Без виртуальных альбомов'; $lang['%u users have automatic permission because they belong to a granted group.'] = 'Пользователи %u автоматичеÑки получили разрешение, так как входÑÑ‚ в группу, которой дано разрешение.'; +$lang['Piwigo for Android application empowers you to connect your Android phone or table to your Piwigo gallery, create some albums and upload several photos at once.'] = 'Приложение Piwigo Ð´Ð»Ñ Android позволÑет Вам ÑоединÑтьÑÑ Ñ Ð’Ð°ÑˆÐµÐ¹ галереей Piwigo Ñ Ð’Ð°ÑˆÐµÐ³Ð¾ Android телефона, Ñоздавать альбомы и загружать неÑколько фотографий Ñразу.'; $lang['add a new watermark'] = 'добавить новый водÑной знак'; $lang['administrators'] = 'админиÑтраторов'; $lang['Adobe Photoshop Lightroom is a photography software designed to manage large quantities of digital images and doing post production work.'] = 'Adobe Photoshop Lightroom - Ñто Ñофт Ð´Ð»Ñ Ñ„Ð¾Ñ‚Ð¾Ð³Ñ€Ð°Ñ„Ð¾Ð², Ñозданный Ð´Ð»Ñ ÑиÑтематизации большого количеÑтва изображений, их обработки и поÑледующего иÑпользованиÑ.'; @@ -838,11 +839,12 @@ $lang['Permission granted for groups'] = 'Разрешение предоÑта $lang['Permission granted for users'] = 'Разрешение предоÑтавлено Ð´Ð»Ñ Ð¿Ð¾Ð»ÑŒÐ·Ð¾Ð²Ð°Ñ‚ÐµÐ»ÐµÐ¹'; $lang['Permission management'] = 'Управление доÑтупом'; $lang['Photo sizes with crop'] = 'Размеры изображений Ñ ÐºÑ€Ð¾Ð¿Ð¾Ð¼'; -$lang['Piwigo export plugin for Aperture'] = 'Плагин публикации изображений Ð´Ð»Ñ Aperture'; -$lang['Piwigo export plugin for iPhoto'] = 'Плагин публикации избражений Ð´Ð»Ñ iPhoto'; -$lang['Piwigo publish plugin for digiKam'] = 'Плагин публикации изображений Ð´Ð»Ñ digiKam'; -$lang['Piwigo Publish plugin for Lightroom'] = 'Плагин публикации изображений в Piwigo из Lightroom'; -$lang['Piwigo publish plugin for Shotwell'] = 'Плагин публикации изображений Ð´Ð»Ñ Shotwell'; +$lang['Piwigo export plugin for Aperture'] = 'Плагин публикации фотографий Ð´Ð»Ñ Aperture'; +$lang['Piwigo export plugin for iPhoto'] = 'Плагин публикации фотографий Ð´Ð»Ñ iPhoto'; +$lang['Piwigo for Android'] = 'Piwigo Ð´Ð»Ñ Android'; +$lang['Piwigo publish plugin for digiKam'] = 'Плагин публикации фотографий Ð´Ð»Ñ digiKam'; +$lang['Piwigo Publish plugin for Lightroom'] = 'Плагин публикации фотографий в Piwigo из Lightroom'; +$lang['Piwigo publish plugin for Shotwell'] = 'Плагин публикации фотографий Ð´Ð»Ñ Shotwell'; $lang['ReGalAndroid (RemoteGallery client for Android) is an open source (GPL v3) Piwigo client for the Android platform.'] = 'ReGalAndroid (клиент RemoteGallery Ð´Ð»Ñ Android) - Ñто клиент Ð´Ð»Ñ Piwigo Ñ Ð¾Ñ‚ÐºÑ€Ñ‹Ñ‚Ñ‹Ð¼ кодом (GPL v3) Ð´Ð»Ñ Ð¿Ð»Ð°Ñ‚Ñ„Ð¾Ñ€Ð¼Ñ‹ Android.'; $lang['registered users'] = 'зарегиÑтрированных пользователей'; $lang['Save manual order'] = 'Сохранить ручную Ñортировку'; @@ -916,7 +918,7 @@ $lang['between %d and %d pixels'] = 'между %d и %d пикÑелÑми'; $lang['Duplicate'] = 'Дубликат'; $lang['Manage the members'] = 'Управление учаÑтниками'; $lang['Merge selected groups'] = 'Объединить выбранные группы'; -$lang['No group selected, no action possible.'] = 'Группы не выбраны, поÑтому Ñделать ничего нельзÑ'; +$lang['No groups selected, no actions possible.'] = 'Группы не выбраны, поÑтому Ñделать ничего нельзÑ'; $lang['No members to manage'] = 'Ðе выбраны пользователи Ð´Ð»Ñ ÑƒÐ¿Ñ€Ð°Ð²Ð»ÐµÐ½Ð¸Ñ'; $lang['Please select at least two groups'] = 'ПожалуйÑта, выберите Ñ…Ð¾Ñ‚Ñ Ð±Ñ‹ две группы'; $lang['Rename'] = 'Переименовать'; @@ -935,7 +937,7 @@ $lang['(filtered from %s total users)'] = '(отобрано из %s - обще $lang['All %d users are selected'] = '%d - вÑе пользователи выбраны'; $lang['No matching user found'] = 'СоответÑтвующих пользователей не найдено'; $lang['No user selected of %d users'] = 'Ðе выбраны из %d пользователей'; -$lang['No user selected, no action possible.'] = 'Пользователи не выбраны; дейÑтвие невозможно.'; +$lang['No users selected, no actions possible.'] = 'Пользователи не выбраны; дейÑтвие невозможно.'; $lang['Registered on %s, %s.'] = 'ЗарегиÑтрировано %s, %s.'; $lang['Show %s users'] = '%s пользователей показывать'; $lang['Showing %s to %s of %s users'] = 'Показаны пользователи Ñ %s по %s из %s'; @@ -979,7 +981,7 @@ $lang['No filter on album. Select one or type to search'] = 'Ðе фильтра $lang['Share / Send your photos directly from your Mac Os X (10.10 and following) to Piwigo'] = 'ДелитеÑÑŒ или отправлÑйте Ваши Ð¸Ð·Ð¾Ð±Ñ€Ð°Ð¶ÐµÐ½Ð¸Ñ Ð¸Ð· Mac Os X (10.10 выше) прÑмо в Piwigo'; $lang['Time has come to update your Piwigo with version %s, go to %s'] = 'Пришло Ð²Ñ€ÐµÐ¼Ñ Ð¾Ð±Ð½Ð¾Ð²Ð¸Ñ‚ÑŒ Piwigo Ñ Ð²ÐµÑ€Ñии %s до %s'; $lang['delete album and all %d photos, even the %d associated to other albums'] = 'удаление альбома, в котором %d изображений, в том чиÑле %d ÑвÑзанные Ñ Ð´Ñ€ÑƒÐ³Ð¸Ð¼Ð¸ альбомами'; -$lang['No tag selected, no action possible.'] = 'ТÑг не выбран, дейÑтвие невозможно.'; +$lang['No tags selected, no actions possible.'] = 'ТÑг не выбран, дейÑтвие невозможно.'; $lang['Piwigo %s is available, please update'] = 'ДоÑтупна верÑÐ¸Ñ Piwigo %s. ПожалуйÑта, обновитеÑÑŒ.'; $lang['Running on an up-to-date Piwigo is important for security.'] = 'Своевременное обновление и работа только на Ñвежей верÑии Piwigo имеет важное значение Ð´Ð»Ñ Ð±ÐµÐ·Ð¾Ð¿Ð°ÑноÑти.'; $lang['delete album and the %d orphan photos'] = 'удаление альбома и %d неÑвÑзанных изображений'; @@ -1010,4 +1012,4 @@ $lang['Synchronization in progress'] = 'Идет ÑинхронизациÑ'; $lang['Welcome!'] = 'Добро пожаловать!'; $lang['With no checksum'] = 'Без контрольной Ñуммы'; $lang['checksums to add'] = 'добавить коннтрольную Ñумму'; -$lang['or'] = 'или '; \ No newline at end of file +$lang['or'] = 'или '; diff --git a/language/sh_RS/admin.lang.php b/language/sh_RS/admin.lang.php index 10853f3ea..0bbfcfb5c 100644 --- a/language/sh_RS/admin.lang.php +++ b/language/sh_RS/admin.lang.php @@ -653,7 +653,7 @@ $lang['All languages are up to date.'] = 'Svi jezici su ažurni.'; $lang['All plugins are up to date.'] = 'Svi plaginovi su ažurni.'; $lang['All themes are up to date.'] = 'Sve teme su ažurne.'; $lang['Allowed file types: %s.'] = 'Dozvoljeni tipovi fajlova: %s'; -$lang['An error has occured during extract. Please check files permissions of your piwigo installation.Click here to show log error.'] = 'Dogodila se greÅ¡ka u toku raspakivanja. Molimo proverite dozvole na fajlovima VaÅ¡e piwigo instalacije. +$lang['An error has occured during extract. Please check files permissions of your piwigo installation.Click here to show log error.'] = 'Dogodila se greÅ¡ka u toku raspakivanja. Molimo proverite dozvole na fajlovima VaÅ¡e piwigo instalacije. Kliknite ovde da biste videli zapis greÅ¡ke.'; $lang['An error has occured during upgrade.'] = 'Dogodila se greÅ¡ka u toku nadgradnje.'; $lang['Apply action'] = 'Primeni akciju'; @@ -725,7 +725,7 @@ $lang['No destination tag selected'] = 'Nije odabrana odrediÅ¡na oznaka'; $lang['No file was uploaded'] = 'Nije poslat ni jedan fajl'; $lang['No photo in the current set.'] = 'Nema fotografija u trenutnom skupu'; $lang['No photo selected, %d photos in current set'] = 'Nema odabranih fotografija, %d fotografija u trenutnom skupu'; -$lang['No photo selected, no action possible.'] = 'Nema odabranih fotografija, nema dozvoljenih akcija'; +$lang['No photos selected, no actions possible.'] = 'Nema odabranih fotografija, nema dozvoljenih akcija'; $lang['No results'] = 'Nema rezultata'; $lang['Not cropped correctly?'] = 'PogreÅ¡no iseÄeno?'; $lang['Notify administrators when a comment is'] = 'Obavesti administratore kada je komentar'; @@ -822,10 +822,12 @@ $lang['You have %d orphan tags: %s.'] = 'Imate %d napuÅ¡tenih oznaka: %s.'; $lang['You have specified $conf[\'order_by\'] in your local configuration file, this parameter in deprecated, please remove it or rename it into $conf[\'order_by_custom\'] !'] = 'OznaÄili ste $conf[\'order_by\'] u svom lokalnom podeÅ¡avanju, ovaj parametar je zastareo, molimo uklonite ga ili ga preimenujte u $conf[\'order_by_custom\']!'; $lang['Zoom'] = 'Uvećaj'; $lang['Delete selected tags'] = 'ObriÅ¡i odabrane oznake'; +$lang['Piwigo for Android application empowers you to connect your Android phone or table to your Piwigo gallery, create some albums and upload several photos at once.'] = 'Piwigo for Android aplikacija omogućava Vam da se povežete sa VaÅ¡om Piwigo galerijom preko Adroid telefona ili tablet raÄunara, možete da kreirate albume i poÅ¡aljete nekoliko slika odjednom.'; $lang['Piwigo for iOS application empowers you to connect to your Piwigo gallery from your iPhone, iPad or iPod Touch, create some albums and upload several photos at once.'] = 'Piwigo za iOS aplikacija omogućava Vam da se povežete sa VaÅ¡om Piwigo galerijom preko iPhone, iPad ili iPod Touch ureÄ‘aja, možete da kreirate albume i poÅ¡aljete nekoliko slika odjednom.'; $lang['Adobe Photoshop Lightroom is a photography software designed to manage large quantities of digital images and doing post production work.'] = 'Adobe Photoshop Lightroom je softver za fotografije dizajniran da upravlja velikom koliÄinom digitalnih slika i za postprodukciju.'; $lang['Available on'] = 'Dostupno na'; $lang['Delete selected users'] = 'ObriÅ¡i odabrane korisnike'; +$lang['Piwigo for Android'] = 'Piwigo za Android'; $lang['Piwigo for iOS (iPhone, iPad, iPod Touch)'] = 'Piwigo za iOs (iPhone, iPad, iPod Touch)'; $lang['Piwigo Publish plugin for Lightroom'] = 'Piwigo Publish plagin za Ligtroom'; $lang['Piwigo publish plugin for Shotwell'] = 'Piwigo publish plagin za Shotwell'; diff --git a/language/sk_SK/admin.lang.php b/language/sk_SK/admin.lang.php index 4a337eb0c..52a565009 100644 --- a/language/sk_SK/admin.lang.php +++ b/language/sk_SK/admin.lang.php @@ -663,7 +663,7 @@ $lang['Refresh photo set'] = 'ObnoviÅ¥ foto súbor'; $lang['The whole page'] = 'Celá stránka'; $lang['The whole set'] = 'Celý súbor'; $lang['No photo in the current set.'] = 'Žiadna fotografia v súÄasnom súbore.'; -$lang['No photo selected, no action possible.'] = 'Nie je oznaÄená žiadna fotografia, nie je možné pokraÄovaÅ¥ v akcii.'; +$lang['No photos selected, no actions possible.'] = 'Nie je oznaÄená žiadna fotografia, nie je možné pokraÄovaÅ¥ v akcii.'; $lang['Choose an action'] = 'Zvoľ akciu'; $lang['remove author'] = 'odstrániÅ¥ autora'; $lang['Type here the author name'] = 'Sem napÃÅ¡te meno autora'; @@ -814,6 +814,8 @@ $lang['Applications'] = 'Aplikácie'; $lang['Available on'] = 'K dispozÃcii'; $lang['Piwigo for iOS (iPhone, iPad, iPod Touch)'] = 'Piwigo pre iOS (iPhone, iPad, iPod Touch)'; $lang['Piwigo for iOS application empowers you to connect to your Piwigo gallery from your iPhone, iPad or iPod Touch, create some albums and upload several photos at once.'] = 'Piwigo pre iOS aplikácie umožňujúcej spojenie na VaÅ¡u Piwigo galériu pre Váš iPhone, iPad alebo iPod Touch, vytváranie albumov a nahrávanie fotografiÃ.'; +$lang['Piwigo for Android'] = 'Piwigo pre Android'; +$lang['Piwigo for Android application empowers you to connect your Android phone or table to your Piwigo gallery, create some albums and upload several photos at once.'] = 'Piwigo pre Android aplikácie umožňujúcej spojenie na VaÅ¡u Piwigo galériu pre Váš iPhone, iPad alebo iPod Touch, vytváranie albumov a nahrávanie fotografiÃ.'; $lang['Piwigo Publish plugin for Lightroom'] = 'Piwigo publikaÄný doplnok pre Lightroom'; $lang['Adobe Photoshop Lightroom is a photography software designed to manage large quantities of digital images and doing post production work.'] = 'Adobe Photoshop Lightroom je fotografický softvér urÄený na správu väÄÅ¡ieho poÄtu digitálnych fotografià a postprodukÄnú prácu.'; $lang['The Piwigo publish Plug-in allows you to export and synchronize photos from Lightroom directly to your Piwigo photo gallery.'] = 'Piwigo publikaÄný doplnok umožňuje export a synchronizáciu fotografià z Lightroomu priamo do VaÅ¡ej Piwigo foto galérie.'; @@ -915,7 +917,7 @@ $lang['This group will be unset to default'] = 'Táto skupina už viac nebude po $lang['This group will be set to default'] = 'Táto skupina bude použitá ako predvolená'; $lang['Rename'] = 'PremenovaÅ¥'; $lang['Please select at least two groups'] = 'ProsÃm oznaÄte aspoň dve skupiny'; -$lang['No group selected, no action possible.'] = 'Žiadna skupina nie je oznaÄená, žiadna akcia nie je možná.'; +$lang['No groups selected, no actions possible.'] = 'Žiadna skupina nie je oznaÄená, žiadna akcia nie je možná.'; $lang['No members to manage'] = 'Žiadni použÃvatelia na spravovanie'; $lang['Manage the members'] = 'SpravovaÅ¥ použÃvateľov'; $lang['Merge selected groups'] = 'PridaÅ¥ oznaÄené skupiny'; @@ -936,7 +938,7 @@ $lang['Showing %s to %s of %s users'] = 'Zobrazených %s až %s z %s použÃvate $lang['Show %s users'] = 'Zobrazených %s použÃvateľov'; $lang['Registered on %s, %s.'] = 'Registrované na %s, %s.'; $lang['Password updated'] = 'Heslo aktualizované'; -$lang['No user selected, no action possible.'] = 'Žiaden použÃvateľ oznaÄený, žiadna akcia možná.'; +$lang['No users selected, no actions possible.'] = 'Žiaden použÃvateľ oznaÄený, žiadna akcia možná.'; $lang['No user selected of %d users'] = 'Žiaden použÃvateľ z %d použÃvateľov oznaÄený'; $lang['No matching user found'] = 'Nenájdený požÃvateľ'; $lang['Loading...'] = 'Nahrávam...'; @@ -983,7 +985,7 @@ $lang['Select tags'] = 'Vyberte kľúÄové slová'; $lang['Running on an up-to-date Piwigo is important for security.'] = 'Spustenie na aktuálnom Piwigo je dôležité pre bezpeÄnosÅ¥.'; $lang['Piwigo Remote Sync is able to upload a whole folder hierarchy. If you run it again, only new photos will be uploaded.'] = 'Piwigo Remote Sync dokáže nahraÅ¥ celú hierarchiu prieÄinkov. Ak ho znovu spustite, nahrajú sa iba nové fotky.'; $lang['Piwigo %s is available, please update'] = 'Piwigo %s je k dispozÃcii, prosÃm aktualizujte'; -$lang['No tag selected, no action possible.'] = 'Nie je vybrané žiadne kľúÄové slovo, nie je možná žiadna akcia.'; +$lang['No tags selected, no actions possible.'] = 'Nie je vybrané žiadne kľúÄové slovo, nie je možná žiadna akcia.'; $lang['No filter on album. Select one or type to search'] = 'Na albume nie je filter. Vyberte jeden alebo typ pre vyhľadávanie'; $lang['It only takes a few clicks.'] = 'StaÄà len niekoľko kliknutÃ.'; $lang['First photo added'] = 'Prvá fotografia bola pridaná'; @@ -1007,4 +1009,4 @@ $lang['Visit'] = 'NávÅ¡teva'; $lang['Welcome!'] = 'Vitajte!'; $lang['With no checksum'] = 'Bez kontrolného súÄtu'; $lang['checksums to add'] = 'kontrolné súÄty, ktoré sa majú pridaÅ¥'; -$lang['or'] = 'alebo'; \ No newline at end of file +$lang['or'] = 'alebo'; diff --git a/language/sl_SI/admin.lang.php b/language/sl_SI/admin.lang.php index 5433d1572..08273323f 100644 --- a/language/sl_SI/admin.lang.php +++ b/language/sl_SI/admin.lang.php @@ -255,6 +255,7 @@ $lang['%s in the future'] = '%s naprej'; $lang['%u users have automatic permission because they belong to a granted group.'] = '%u uporabniki imajo samodejno dovoljenje ker pripadajo odobreni skupini'; $lang['A locked gallery is only visible to administrators'] = 'Zaklenjeno galerijo lahko vidijo le Administratorji'; $lang['Piwigo for iOS application empowers you to connect to your Piwigo gallery from your iPhone, iPad or iPod Touch, create some albums and upload several photos at once.'] = 'Piwigo za iOS je aplikacija, ki vam omogoÄi povezavo z vaÅ¡o Piwigo galerijo preko iOS naprave (iPhone, iPad ali iPod Touch) . Ustvarite nove albume in naložite veÄ fotografij hkrati.'; +$lang['Piwigo for Android application empowers you to connect your Android phone or table to your Piwigo gallery, create some albums and upload several photos at once.'] = 'Piwigo za Android je aplikacija, ki vam omogoÄi povezavo z vaÅ¡o Piwigo galerijo preko Andriod naprave. Ustvarite nove albume in naložite veÄ fotografij hkrati.'; $lang['%d physicals'] = ' %d fiziÄen'; $lang['%d month'] = '%d mesec'; $lang['%d months'] = '%d mesecev'; @@ -401,7 +402,7 @@ $lang['No photo selected, %d photos in current set'] = 'OznaÄene ni nobene foto $lang['No photo can be deleted'] = 'Ni fotografij, ki bi jih bilo mogoÄe izbrisati'; $lang['No photo in the current set.'] = 'V tem nizu ni fotografij'; $lang['No mail to send.'] = 'Ni maila, ki bi ga lahko poslali'; -$lang['No group selected, no action possible.'] = 'OznaÄena ni nobena skupina, izvesti ni mogoÄe nobenega ukaza'; +$lang['No groups selected, no actions possible.'] = 'OznaÄena ni nobena skupina, izvesti ni mogoÄe nobenega ukaza'; $lang['No group is permitted to see this private album'] = 'Nobena skupina nima dovoljenja za ogled tega privatnega albuma'; $lang['No members to manage'] = 'Ni Älanov za upravljanje'; $lang['No order field selected'] = 'Ni oznaÄenega vrstnega reda polj'; @@ -846,6 +847,7 @@ $lang['Piwigo cannot retrieve upgrade file from server'] = 'Piwigo ne more prene $lang['Piwigo configuration'] = 'Piwigo nastavitve'; $lang['Piwigo export plugin for Aperture'] = 'Piwigo izvoz vtiÄnika za Aperture'; $lang['Piwigo export plugin for iPhoto'] = 'Piwigo izvoz vtiÄnika za iPhoto'; +$lang['Piwigo for Android'] = 'Piwigo za Android'; $lang['Piwigo for iOS (iPhone, iPad, iPod Touch)'] = 'Pivigo za iOS (iPhone, iPad, iPod Touch)'; $lang['Piwigo publish plugin for Shotwell'] = 'Piwigo objavni vtiÄnik za Shotwell'; $lang['Piwigo publish plugin for digiKam'] = 'Piwigo objavni vtiÄnik za digiKam'; @@ -917,7 +919,7 @@ $lang['Optimizations have been completed with some errors.'] = 'Optimizacija se $lang['Optional URL keyword'] = 'Opcijska URL kljuÄna beseda'; $lang['Options'] = 'Možnosti'; $lang['Order of menubar items has been updated successfully.'] = 'Razvrstitev elementov menijske vrstice je bila uspeÅ¡no posodobljena'; -$lang['No photo selected, no action possible.'] = 'Ker ni izbrana nobena slika, ni možno nobeno dejanje.'; +$lang['No photos selected, no actions possible.'] = 'Ker ni izbrana nobena slika, ni možno nobeno dejanje.'; $lang['No results'] = 'Ni rezultatov'; $lang['No user to send notifications by mail.'] = 'Noben uporabnik ne bo obveÅ¡Äen preko e-poÅ¡te.'; $lang['Resize after upload disabled due to the use of GD as graphic library'] = 'Stiskanje fotografij pred nalaganjem je onemogoÄeno zaradi uporabe GD grafiÄne knjižnice.'; @@ -934,7 +936,7 @@ $lang['Last visit on %s, %s.'] = 'Zadnji obisk %s, %s.'; $lang['Loading...'] = 'Nalaganje...'; $lang['No matching user found'] = 'Ne najdem ustreznih uporabnikov'; $lang['No user selected of %d users'] = 'Izbran ni noben uporabnik od %d uporabnikov'; -$lang['No user selected, no action possible.'] = 'Izbran ni noben uporabnik, nobeno dejanje ni mogoÄe'; +$lang['No users selected, no actions possible.'] = 'Izbran ni noben uporabnik, nobeno dejanje ni mogoÄe'; $lang['Password updated'] = 'Geslo posodobljeno'; $lang['Registered on %s, %s.'] = 'Registrirani %s, %s.'; $lang['Show %s users'] = 'Prikaži %s uporabnikov'; @@ -980,7 +982,7 @@ $lang['Display form'] = 'Prikazna oblika'; $lang['First photo added'] = 'Prva slika dodana'; $lang['It only takes a few clicks.'] = 'Potrebno je le nekaj klikov'; $lang['No filter on album. Select one or type to search'] = 'Ni filtra za album. Izberite enega ali tipkajte za izbiro'; -$lang['No tag selected, no action possible.'] = 'Ni izbranih oznak, nobena akcija ni možna.'; +$lang['No tags selected, no actions possible.'] = 'Ni izbranih oznak, nobena akcija ni možna.'; $lang['Piwigo %s is available, please update'] = 'Piwigo %s je na voljo, prosimo posodobite namestitev'; $lang['Piwigo Remote Sync is able to upload a whole folder hierarchy. If you run it again, only new photos will be uploaded.'] = 'Piwigo Oddaljena Sinhronizacija je sposobna prenesti celotno hirearhijo folderjev. ÄŒe jo izvedete ponovno se prenesejo le nove fotografije.'; $lang['Running on an up-to-date Piwigo is important for security.'] = 'Uporaba posodobljene Piwigo namestitve je pomembna zaradi varnosti.'; @@ -1005,4 +1007,4 @@ $lang['Visit'] = 'ObiÅ¡Äi'; $lang['Welcome!'] = 'DobrodoÅ¡li'; $lang['With no checksum'] = 'Brez kontrolne vsote'; $lang['checksums to add'] = 'kontrolne vsote za dodati'; -$lang['or'] = 'ali'; \ No newline at end of file +$lang['or'] = 'ali'; diff --git a/language/sr_RS/admin.lang.php b/language/sr_RS/admin.lang.php index 368d13850..95e990331 100644 --- a/language/sr_RS/admin.lang.php +++ b/language/sr_RS/admin.lang.php @@ -660,7 +660,7 @@ $lang['include child albums'] = 'укључи подалбуме'; $lang['manual order'] = 'ручно уређивање'; $lang['No photo in the current set.'] = 'Ðема фотографија у одабраном Ñкупу.'; $lang['No photo selected, %d photos in current set'] = 'Ðиједна одабрана фотографија, број фотографија у одабраном Ñкупу: %d'; -$lang['No photo selected, no action possible.'] = 'Ðиједна одабрана фотографија, нема могућих операција.'; +$lang['No photos selected, no actions possible.'] = 'Ðиједна одабрана фотографија, нема могућих операција.'; $lang['on the %d selected photos'] = 'on the %d одабране Ñлике'; $lang['Orphan tags deleted'] = 'Orphan ознака обриÑана'; $lang['Refresh photo set'] = 'Обнови Ñкуп Ñлика'; @@ -795,6 +795,7 @@ $lang['Move to album'] = 'Пребаци у албум'; $lang['Minimum width'] = 'Минимална ширина'; $lang['Minimum height'] = 'Минимална виÑина'; $lang['Landscape'] = 'Положено'; +$lang['Piwigo for Android'] = 'ПиВиГо за Ðндроид'; $lang['Panorama'] = 'Панорама'; $lang['Select groups...'] = 'Одабери групе ...'; $lang['Select users...'] = 'Одабери кориÑнике ...'; @@ -879,6 +880,7 @@ $lang['X Repeat'] = 'X понављања'; $lang['pending validation'] = 'чека на потврду'; $lang['visitors need to login and have the appropriate permissions to see this album'] = 'поÑетиоци морају бити пријављени и да поÑедују одговарајуће дозволе како би видели овај албум'; $lang['(filtered from %s total users)'] = '(изфилтрирано од %s кориÑника)'; +$lang['Piwigo for Android application empowers you to connect your Android phone or table to your Piwigo gallery, create some albums and upload several photos at once.'] = 'Ðпликација Piwigo за Ðндроид вам омогућава да повежете телефон или таблет Ñа Piwigo галеријом, правите албуме и шаљете по неколико Ñлика одједном.'; $lang['Piwigo for iOS application empowers you to connect to your Piwigo gallery from your iPhone, iPad or iPod Touch, create some albums and upload several photos at once.'] = 'Ðпликација Piwigo за iOS бам омогућава да повежете Piwigo галерију Ñа iPhone, iPad или iPod Touch уређајима, правите албуме и шаљете по неколико Ñлика одједном.'; $lang['Activate it now'] = 'Ðктивирај Ñада'; $lang['Center of interest'] = 'Центар интереÑа'; @@ -925,7 +927,7 @@ $lang['Piwigo publish plugin for digiKam'] = 'Piwigo објављивање за $lang['Please select at least two groups'] = 'Изаберите најмање две групе'; $lang['No order field selected'] = 'Ðије изабрано поље за редоÑлед'; $lang['No user selected of %d users'] = 'Ðије изабран ни један од %d кориÑника'; -$lang['No user selected, no action possible.'] = 'Ðије изабран кориÑник, није могућа ни једна радња.'; +$lang['No users selected, no actions possible.'] = 'Ðије изабран кориÑник, није могућа ни једна радња.'; $lang['Notify administrators when a comment is'] = 'ОбавеÑти админиÑтраторе када је коментар'; $lang['Numeric identifier : %d'] = 'Број Ñлике: %d'; $lang['Select at least one tag'] = 'Изаберите бар једну ознаку'; @@ -936,7 +938,7 @@ $lang['Features include gallery browsing, album creation and photo upload.'] = ' $lang['For photo sizes with crop, such as "Square", Piwigo will do its best to include the center of interest.'] = 'Уколико треба иÑећи део Ñлике, као код коцкаÑтог приказа, Piwigo ће Ñе потрудити да иÑечак Ñадржи интереÑни центар.'; $lang['If no HD is available and if the current websize is bigger than resize dimensions, Piwigo will move it as HD and create a downsized websize photo from it.'] = 'Уколико велике, HD Ñлике ниÑу доÑтупне и уколико је изабрана величина за приказ на вебу већа од умањене Ñлике'; $lang['Mail theme'] = 'Мејл тема'; -$lang['No group selected, no action possible.'] = 'Ðије изабрана група, па није могућа операција.'; +$lang['No groups selected, no actions possible.'] = 'Ðије изабрана група, па није могућа операција.'; $lang['No matching user found'] = 'Ðије пронађен кориÑник'; $lang['No members to manage'] = 'Ðема кориÑника за управљање'; $lang['Open user details'] = 'Јавни подави о кориÑнику'; @@ -992,7 +994,7 @@ $lang['Display form'] = 'Форма приказа'; $lang['First photo added'] = 'Додата прва фотографија'; $lang['It only takes a few clicks.'] = 'Потребно је Ñамо неколико клика.'; $lang['No filter on album. Select one or type to search'] = 'Ðема филтера или албума. Изаберите један или унеÑите у претрагу.'; -$lang['No tag selected, no action possible.'] = 'Ðије изабрана ознака, није могућа ни једна радња.'; +$lang['No tags selected, no actions possible.'] = 'Ðије изабрана ознака, није могућа ни једна радња.'; $lang['Piwigo %s is available, please update'] = 'ДоÑтупан је Пивиго %s, ажурирајте вашу верзију.'; $lang['Display album date period'] = 'Прикажи опÑег датума из Ñваког албума, нпр. „од 12. до 15. јула 2018.“'; $lang['Display category date'] = 'Прикажи датум за категорију'; @@ -1008,4 +1010,4 @@ $lang['%d checksums were added'] = 'Додато је %d Ñума за пров $lang['... or hide this link'] = '… или Ñакриј ову везу'; $lang['Compute %d missing checksums'] = 'Прорачунај %d недоÑтајућих Ñума за проверу'; $lang['Create a first album'] = 'Ðаправите први албум'; -$lang['Deletion in progress'] = 'БриÑање је у току'; \ No newline at end of file +$lang['Deletion in progress'] = 'БриÑање је у току'; diff --git a/language/sv_SE/admin.lang.php b/language/sv_SE/admin.lang.php index 93162c24c..0740cfa97 100644 --- a/language/sv_SE/admin.lang.php +++ b/language/sv_SE/admin.lang.php @@ -664,7 +664,7 @@ $lang['Refresh photo set'] = 'Uppdatera bilder'; $lang['The whole page'] = 'Hela sidan'; $lang['The whole set'] = 'Hela markeringen'; $lang['No photo in the current set.'] = 'inga bilder i den aktuella markeringen..'; -$lang['No photo selected, no action possible.'] = 'Inga foton är valda, inga Ã¥tgärder är möjlig.'; +$lang['No photos selected, no actions possible.'] = 'Inga foton är valda, inga Ã¥tgärder är möjlig.'; $lang['Choose an action'] = 'Välj en Ã¥tgärd'; $lang['remove author'] = 'ta bort författaren'; $lang['Type here the author name'] = 'Skriv författarens namn här'; @@ -814,6 +814,8 @@ $lang['Applications'] = 'Applikationer'; $lang['Available on'] = 'Tillgängliga pÃ¥'; $lang['Piwigo for iOS (iPhone, iPad, iPod Touch)'] = 'Piwigo för iOS (iPhone, iPad, iPod Touch)'; $lang['Piwigo for iOS application empowers you to connect to your Piwigo gallery from your iPhone, iPad or iPod Touch, create some albums and upload several photos at once.'] = 'Piwigo för iOS applikationer tillÃ¥ter dig ansluta till ditt Piwigo galleri frÃ¥n din iPhone, iPad eller iPod Touch, skapa nÃ¥gra album och ladda upp flera bilder pÃ¥ en gÃ¥ng.'; +$lang['Piwigo for Android'] = 'Piwigo för Android'; +$lang['Piwigo for Android application empowers you to connect your Android phone or table to your Piwigo gallery, create some albums and upload several photos at once.'] = 'Piwigo för Android applikationer tillÃ¥ter dig ansluta till ditt Piwigo galleri frÃ¥n din Android telefon eller tablet, skapa nÃ¥gra album och ladda upp flera bilder pÃ¥ en gÃ¥ng.'; $lang['Piwigo Publish plugin for Lightroom'] = 'Piwigo Publish insticksmodul för Lightroom'; $lang['Adobe Photoshop Lightroom is a photography software designed to manage large quantities of digital images and doing post production work.'] = 'Adobe Photoshop Lightroom är en fotoredigeringsmjukvara designad för att hantera stora mängder bilder och göra efterredigering.'; $lang['The Piwigo publish Plug-in allows you to export and synchronize photos from Lightroom directly to your Piwigo photo gallery.'] = 'Insticksmodulen för Piwigo publicering möjliggör export och synkronisering av bilder mellan Lightroom och ditt bildgalleri.'; @@ -916,7 +918,7 @@ $lang['Please select at least two groups'] = 'Vänligen välj minst tvÃ¥ grupper $lang['Panorama'] = 'Panorama'; $lang['Number of albums per page'] = 'Antal album per sida'; $lang['No members to manage'] = 'Inga medlemmar att hantera'; -$lang['No group selected, no action possible.'] = 'Ingen grupp vald, ingen Ã¥tgärd möjlig'; +$lang['No groups selected, no actions possible.'] = 'Ingen grupp vald, ingen Ã¥tgärd möjlig'; $lang['Name of the duplicate'] = 'Namn pÃ¥ kopia'; $lang['Minimum width'] = 'Minsta bredd'; $lang['Minimum height'] = 'Minsta höjd'; @@ -926,7 +928,7 @@ $lang['Resize after upload disabled due to the use of GD as graphic library'] = $lang['The picture dimensions will be reduced to %dx%d pixels.'] = 'Bildens dimension kommer att reduceras till %dx%d pixlar.'; $lang['Select at least one tag'] = 'Välj minst en etikett'; $lang['(filtered from %s total users)'] = '(filtrerat frÃ¥n totalt %s användare)'; -$lang['No user selected, no action possible.'] = 'Ingen användare vald, ingen Ã¥tgärd möjlig.'; +$lang['No users selected, no actions possible.'] = 'Ingen användare vald, ingen Ã¥tgärd möjlig.'; $lang['No matching user found'] = 'Ingen matchande användare funnen'; $lang['Registered on %s, %s.'] = 'Registrerad %s, %s.'; $lang['Users modified'] = 'Användare modifierade'; @@ -979,7 +981,7 @@ $lang['(determined from photos)'] = '(bestäms frÃ¥n foton)'; $lang['Display form'] = 'Visningsforumlär'; $lang['Piwigo Remote Sync is able to upload a whole folder hierarchy. If you run it again, only new photos will be uploaded.'] = 'Piwigi Fjärrsynk kan ladda upp en hel folderhierarki. Om du kör den igen, kommer bara nya foton att laddas upp.'; $lang['Piwigo %s is available, please update'] = 'Piwigo %s är tillgänglig, vänligen uppdatera'; -$lang['No tag selected, no action possible.'] = 'Ingen tagg vald, ingen Ã¥tgärd är möjlig'; +$lang['No tags selected, no actions possible.'] = 'Ingen tagg vald, ingen Ã¥tgärd är möjlig'; $lang['No filter on album. Select one or type to search'] = 'Inga filter pÃ¥ foldrarna. Välj en eller skriv för att söka'; $lang['delete only album, not photos'] = 'Radera bara folder, inte foton'; $lang['delete album and all %d photos, even the %d associated to other albums'] = 'Radera folder och alla %d foton, även %d associerade med andra foldrar'; @@ -1008,4 +1010,4 @@ $lang['Deletion in progress'] = 'Borttagning pÃ¥gÃ¥r'; $lang['Create a first album'] = 'Skapa ett första album'; $lang['Compute %d missing checksums'] = 'Fullborda %d saknade checksummor'; $lang['... or hide this link'] = '... eller göm denna länk'; -$lang['%d checksums were added'] = '%d checksummor lades till'; \ No newline at end of file +$lang['%d checksums were added'] = '%d checksummor lades till'; diff --git a/language/ta_IN/admin.lang.php b/language/ta_IN/admin.lang.php index 71826e3de..2f4a75147 100644 --- a/language/ta_IN/admin.lang.php +++ b/language/ta_IN/admin.lang.php @@ -85,6 +85,7 @@ $lang['(this tag will be deleted)'] = '(இநà¯à®¤ கà¯à®±à®¿ நீக௠$lang['+ Add an upload box'] = '+ ஒர௠பதிவேறà¯à®± பெடà¯à®Ÿà®¿à®¯à¯ˆ சேரà¯à®•à¯à®•வà¯à®®à¯'; $lang[', click on'] = 'சொடà¯à®•à¯à®•வà¯à®®à¯ மீதà¯'; $lang['... or '] = '... அலà¯à®²à®¤à¯'; +$lang['Piwigo for Android application empowers you to connect your Android phone or table to your Piwigo gallery, create some albums and upload several photos at once.'] = ' Android கà¯à®•ான Piwigo em> பயனà¯à®ªà®¾à®Ÿà¯à®Ÿà¯ உஙà¯à®•ள௠Piwigo கேலரியில௠உஙà¯à®•ள௠Android தொலைபேசி அலà¯à®²à®¤à¯ வரைபடà¯à®Ÿà®¿à®•ை இணைகà¯à®• அனà¯à®®à®¤à®¿à®•à¯à®•à¯à®®à¯, சில ஆலà¯à®ªà®™à¯à®•ளை உரà¯à®µà®¾à®•à¯à®• மறà¯à®±à¯à®®à¯ ஒரே நேரதà¯à®¤à®¿à®²à¯ பல பà¯à®•ைபà¯à®ªà®Ÿà®™à¯à®•ளை பதிவேறà¯à®±à®²à®¾à®®à¯.'; $lang['Piwigo for iOS application empowers you to connect to your Piwigo gallery from your iPhone, iPad or iPod Touch, create some albums and upload several photos at once.'] = ' Piwigo iOS கà¯à®•௠em> பயனà¯à®ªà®¾à®Ÿà¯à®Ÿà¯ சில ஆலà¯à®ªà®™à¯à®•ளை உரà¯à®µà®¾à®•à¯à®•ி ஒரே நேரதà¯à®¤à®¿à®²à¯ பல பà¯à®•ைபà¯à®ªà®Ÿà®™à¯à®•ளை பதிவேறà¯à®±, உஙà¯à®•ள௠à®à®ªà¯‡à®¾à®©à¯, à®à®ªà®¾à®Ÿà¯ அலà¯à®²à®¤à¯ à®à®ªà®¾à®Ÿà¯ டச௠உஙà¯à®•ள௠Piwigo கேலரி இணைகà¯à®• நீஙà¯à®•ள௠அதிகாரமளிகà¯à®•ிகிறதà¯.'; $lang['ACCESS_3'] = 'நிரà¯à®µà®¾à®•ிகள௠அணà¯à®•லà¯'; $lang['ACCESS_4'] = 'வலை மேலாளரà¯à®•ள௠அணà¯à®•லà¯'; diff --git a/language/th_TH/admin.lang.php b/language/th_TH/admin.lang.php index 75097c58f..abfb84be8 100644 --- a/language/th_TH/admin.lang.php +++ b/language/th_TH/admin.lang.php @@ -391,7 +391,7 @@ $lang['No photo can be deleted'] = "ไม่มีรูปที่สาม $lang['No photo in the current set.'] = 'ไม่มีรูปภาพในชุดปัจจุบันนี้.'; $lang['No photo in this album'] = "ไม่มีรูปภาพในà¸à¸±à¸¥à¸šà¸±à¹‰à¸¡à¸™à¸µà¹‰"; $lang['No photo selected, %d photos in current set'] = 'ไม่มีรูปที่ได้เลืà¸à¸à¹„ว้,มีรูปทั้งหมด %d รูปในเซตนี้'; -$lang['No photo selected, no action possible.'] = 'ไม่มีรูปภาพที่ได้เลืà¸à¸à¹„ว้.'; +$lang['No photos selected, no actions possible.'] = 'ไม่มีรูปภาพที่ได้เลืà¸à¸à¹„ว้.'; $lang['No results'] = "ไม่มี ผลลัพธ์"; $lang['No user to send notifications by mail.'] = "ไม่มีผู้ใช้งานที่ได้ติดต่à¸à¸—างเมล."; $lang['no write access'] = "ไม่มีà¸à¸²à¸£à¹€à¸‚ียนà¸à¸²à¸£à¹€à¸‚้าถึงข้à¸à¸¡à¸¹à¸¥"; @@ -786,6 +786,7 @@ $lang['%s ago'] = '%d ที่à¹à¸¥à¹‰à¸§'; $lang['%s has been successfully updated.'] = '%s ได้à¸à¸±à¸žà¹€à¸”ตข้à¸à¸¡à¸¹à¸¥à¸¡à¸¹à¸¥à¹€à¸£à¸µà¸¢à¸šà¸£à¹‰à¸à¸¢à¹à¸¥à¹‰à¸§.'; $lang['%s in the future'] = '%s ในà¸à¸™à¸²à¸„ต'; $lang['%u users have automatic permission because they belong to a granted group.'] = 'à¸à¸³à¸«à¸™à¸”ให้ผู้ใช้ได้รับà¸à¸™à¸¸à¸à¸²à¸•โดยà¸à¸±à¸•โนมัติ เนื่à¸à¸‡à¸ˆà¸²à¸à¸žà¸§à¸à¹€à¸‚าà¸à¸¢à¸¹à¹ˆà¹ƒà¸™à¸à¸¥à¸¸à¹ˆà¸¡à¸—ี่ได้รับà¸à¸™à¸¸à¸à¸²à¸•à¸à¸¢à¸¹à¹ˆà¹à¸¥à¹‰à¸§'; +$lang['Piwigo for Android application empowers you to connect your Android phone or table to your Piwigo gallery, create some albums and upload several photos at once.'] = 'Piwigo สำหรับ à¹à¸à¸™à¸”รà¸à¸¢à¸”์ à¹à¸à¸žà¸žà¸¥à¸´à¹€à¸„ชั่นที่จะช่วยให้คุณสามารถเชื่à¸à¸¡à¸•่à¸à¹‚ทรศัพท์ à¹à¸à¸™à¸”รà¸à¸¢à¸”์ หรืà¸à¹à¸—็บเลต ไปยังà¸à¸±à¸¥à¸šà¸±à¹‰à¸¡à¸£à¸¹à¸›, เพื่à¸à¸ªà¸£à¹‰à¸²à¸‡à¸à¸±à¸¥à¸šà¸±à¹‰à¸¡ à¹à¸¥à¸°à¸à¸±à¸žà¹‚หลดรูปขà¸à¸‡à¸„ุณ.'; $lang['Piwigo for iOS application empowers you to connect to your Piwigo gallery from your iPhone, iPad or iPod Touch, create some albums and upload several photos at once.'] = 'Piwigo สำหรับ ไà¸à¹‚à¸à¹€à¸à¸ª à¹à¸à¸žà¸žà¸¥à¸´à¹€à¸„ชั่นที่จะช่วยให้คุณสามารถเชื่à¸à¸¡à¸•่à¸à¹‚ทรศัพท์ ไปยังà¸à¸±à¸¥à¸šà¸±à¹‰à¸¡à¸£à¸¹à¸› จาภไà¸à¹‚ฟน หรืà¸à¹„à¸à¹à¸žà¸”ทัช, เพื่à¸à¸ªà¸£à¹‰à¸²à¸‡à¸à¸±à¸¥à¸šà¸±à¹‰à¸¡ à¹à¸¥à¸°à¸à¸±à¸žà¹‚หลดรูปขà¸à¸‡à¸„ุณ.'; $lang['A locked gallery is only visible to administrators'] = 'à¹à¸à¸¥à¸¥à¸à¸£à¸µà¹ˆà¸–ูà¸à¸¥à¹‡à¸à¸ สามารถใช้งานได้เฉพาะผู้ดูà¹à¸¥à¸£à¸°à¸šà¸š'; $lang['Activate comments'] = 'เปิดใช้งานคà¸à¸¡à¹€à¸¡à¹‰à¸™à¸•์'; @@ -824,6 +825,7 @@ $lang['Original file : %s'] = 'ไฟล์ต้นฉบับ : %s'; $lang['Permission management'] = 'à¸à¸²à¸£à¸ˆà¸±à¸”à¸à¸²à¸£à¸à¸²à¸£à¸à¸™à¸¸à¸à¸²à¸•'; $lang['Photo name'] = 'ชื่à¸à¸£à¸¹à¸›à¸ าพ'; $lang['Photo sizes with crop'] = 'ขนาดรูปถ่ายที่มีตัด'; +$lang['Piwigo for Android'] = 'Piwigo สำหรับ Android'; $lang['Piwigo for iOS (iPhone, iPad, iPod Touch)'] = 'Piwigo สำหรับ iOS (iPhone, iPad, iPod Touch)'; $lang['Predefined filter'] = 'ตัวà¸à¸£à¸à¸‡à¸—ี่à¸à¸³à¸«à¸™à¸”ไว้ล่วงหน้า'; $lang['Source tag'] = 'à¹à¸«à¸¥à¹ˆà¸‡à¸—ี่มาขà¸à¸‡à¸›à¹‰à¸²à¸¢à¸Šà¸·à¹ˆà¸'; @@ -915,7 +917,7 @@ $lang['between %d and %d pixels'] = 'ระหว่าง %d à¹à¸¥à¸° %d พ $lang['Duplicate'] = 'สำเนา'; $lang['Manage the members'] = 'จัดà¸à¸²à¸£à¸ªà¸¡à¸²à¸Šà¸´à¸'; $lang['Merge selected groups'] = 'รวมà¸à¸¥à¸¸à¹ˆà¸¡à¸—ี่เลืà¸à¸'; -$lang['No group selected, no action possible.'] = 'ยังไม่ได้เลืà¸à¸à¸à¸¥à¸¸à¹ˆà¸¡, ไม่สามารถรวมà¸à¸¥à¸¸à¹ˆà¸¡à¹„ด้'; +$lang['No groups selected, no actions possible.'] = 'ยังไม่ได้เลืà¸à¸à¸à¸¥à¸¸à¹ˆà¸¡, ไม่สามารถรวมà¸à¸¥à¸¸à¹ˆà¸¡à¹„ด้'; $lang['No members to manage'] = 'ไม่มีสมาชิà¸à¸—ี่จะจัดà¸à¸²à¸£'; $lang['Please select at least two groups'] = 'โปรดเลืà¸à¸à¸à¸¥à¸¸à¹ˆà¸¡à¸à¸¢à¹ˆà¸²à¸‡à¸™à¹‰à¸à¸¢à¸ªà¸à¸‡à¸à¸¥à¸¸à¹ˆà¸¡'; $lang['Rename'] = 'เปลี่ยนชื่à¸'; @@ -945,7 +947,7 @@ $lang['Impossible to deactivate the default theme.'] = 'เป็นไปไม $lang['Mail address is mandatory for registration'] = 'à¸à¸µà¹€à¸¡à¸¥à¸™à¸µà¹‰à¸¡à¸µà¸œà¸¥à¸šà¸±à¸‡à¸„ับใช้สำหรับà¸à¸²à¸£à¸¥à¸‡à¸—ะเบียน'; $lang['No and unlock sub-albums'] = 'ไม่มีà¹à¸¥à¸°à¸›à¸¥à¸”ล็à¸à¸„à¸à¸±à¸¥à¸šà¸±à¹‰à¸¡à¸¢à¹ˆà¸à¸¢'; $lang['No user selected of %d users'] = 'ไม่มีผู้ใช้งานที่ถูà¸à¹€à¸¥à¸·à¸à¸ %d ผู้ใช้งาน'; -$lang['No user selected, no action possible.'] = 'ไม่มีผู้ใช้งานที่ถูà¸à¹€à¸¥à¸·à¸à¸, ไม่มีà¸à¸²à¸£à¸”ำเนินà¸à¸²à¸£à¹ƒà¸”ที่เป็นไปได้'; +$lang['No users selected, no actions possible.'] = 'ไม่มีผู้ใช้งานที่ถูà¸à¹€à¸¥à¸·à¸à¸, ไม่มีà¸à¸²à¸£à¸”ำเนินà¸à¸²à¸£à¹ƒà¸”ที่เป็นไปได้'; $lang['Registered on %s, %s.'] = 'ลงทะเบียนเมื่ภon %s, %s.'; $lang['Select at least one tag'] = 'เลืà¸à¸à¸à¸¢à¹ˆà¸²à¸‡à¸™à¹‰à¸ 1 à¹à¸—็à¸'; $lang['The settings for the guest are from the %s user'] = 'à¸à¸²à¸£à¸•ั้งค่าสำหรับผู้มาเยี่ยมชม %s ผู้ใช้งาน'; @@ -984,7 +986,7 @@ $lang['Dashboard'] = 'à¹à¸œà¸‡à¸„วบคุม'; $lang['Running on an up-to-date Piwigo is important for security.'] = 'ใช้งาน Piwigo เวà¸à¸£à¹Œà¸Šà¸±à¹ˆà¸™à¸—ี่เป็นปัจจุบัน มันสำคัà¸à¸¡à¸²à¸à¸ªà¸³à¸«à¸£à¸±à¸šà¹€à¸£à¸·à¹ˆà¸à¸‡à¸„วาม'; $lang['delete only album, not photos'] = 'ลบเฉพาะà¸à¸±à¸¥à¸šà¸±à¹‰à¸¡à¹€à¸—่านั้น, (ไม่ลบรูปภาพ)'; $lang['Piwigo %s is available, please update'] = 'Piwigo %s พร้à¸à¸¡à¹ƒà¸Šà¹‰à¸‡à¸²à¸™à¹à¸¥à¹‰à¸§, à¸à¸£à¸¸à¸“าà¸à¸±à¸›à¹€à¸”ต'; -$lang['No tag selected, no action possible.'] = 'ไม่มีà¹à¸—็à¸à¸—ี่ถูà¸à¹€à¸¥à¸·à¸à¸, ไม่มีà¸à¸²à¸£à¸”ำเนินà¸à¸²à¸£à¹ƒà¸”ๆ'; +$lang['No tags selected, no actions possible.'] = 'ไม่มีà¹à¸—็à¸à¸—ี่ถูà¸à¹€à¸¥à¸·à¸à¸, ไม่มีà¸à¸²à¸£à¸”ำเนินà¸à¸²à¸£à¹ƒà¸”ๆ'; $lang['It only takes a few clicks.'] = 'เพียงไม่à¸à¸µà¹ˆà¸„ลิà¸'; $lang['No filter on album. Select one or type to search'] = 'ไม่มีตัวà¸à¸£à¸à¸‡à¹ƒà¸™à¸à¸±à¸¥à¸šà¸±à¹‰à¸¡. โปรดเลืà¸à¸à¸›à¸£à¸°à¹€à¸ ทà¸à¸²à¸£à¸„้นหา'; $lang['Delete album "%s" and its %d sub-albums.'] = 'ลบà¸à¸±à¸¥à¸šà¸±à¹‰à¸¡ "%s" à¹à¸¥à¸° à¸à¸±à¸¥à¸šà¸±à¹‰à¸¡à¸¢à¹ˆà¸à¸¢ %d .'; diff --git a/language/tr_TR/admin.lang.php b/language/tr_TR/admin.lang.php index 99c5adab8..c3edf8535 100644 --- a/language/tr_TR/admin.lang.php +++ b/language/tr_TR/admin.lang.php @@ -435,7 +435,7 @@ $lang['No photo can be deleted'] = 'FotoÄŸraf silinemez'; $lang['No photo in the current set.'] = 'Bu yığınde fotoÄŸraf bulunmuyor'; $lang['No photo in this album'] = 'Bu albümde fotoÄŸraf yok'; $lang['No photo selected, %d photos in current set'] = 'Yığındeki %d fotoÄŸraftan hiçbiri seçilmedi'; -$lang['No photo selected, no action possible.'] = 'FotoÄŸraf seçilmedi, iÅŸlem yapılamaz.'; +$lang['No photos selected, no actions possible.'] = 'FotoÄŸraf seçilmedi, iÅŸlem yapılamaz.'; $lang['No results'] = 'Sonuç yok'; $lang['No user to send notifications by mail.'] = 'e-Posta yoluyla bilgilendirilecek hiç kullanıcı bulunmuyor.'; $lang['no write access'] = 'Yazma yetkisi yok'; @@ -776,6 +776,7 @@ $lang['You need to upgrade your system to take full advantage of the application $lang['Your configuration settings are saved'] = 'Yapılandırma ayarları kaydedildi'; $lang['Zoom'] = 'YakınlaÅŸtırma'; $lang['%u users have automatic permission because they belong to a granted group.'] = 'izin verilmiÅŸ bir gruba ait oldukları için %u kullanıcı otomatik izine sahip.'; +$lang['Piwigo for Android application empowers you to connect your Android phone or table to your Piwigo gallery, create some albums and upload several photos at once.'] = 'Android için Piwigo uygulaması ile Android telefon veya tablet\'inizden Piwigo galerinize baÄŸlanmaya, albümler yaratmanıza ve birden fazla fotoÄŸraf birden aktarmanıza izin verir.'; $lang['Piwigo for iOS application empowers you to connect to your Piwigo gallery from your iPhone, iPad or iPod Touch, create some albums and upload several photos at once.'] = 'Piwigo for iOS uygulaması ile iPhone, iPad veya iPod Touch\'ınızdan Piwigo galerinize baÄŸlanmaya, albümler yaratmanıza ve birden fazla fotoÄŸraf birden aktarmanıza izin verir. '; $lang['A locked gallery is only visible to administrators'] = 'Kilitli bir galeri sadece yöneticiler tarafından görülebilir'; $lang['Activate comments'] = 'Yorumları etkinleÅŸtir'; @@ -812,6 +813,7 @@ $lang['Photo sizes with crop'] = 'Kırparak fotoÄŸrafı boyutlandır'; $lang['Piwigo Publish plugin for Lightroom'] = 'Lightroom için Piwigo Publish eklentisi '; $lang['Piwigo export plugin for Aperture'] = 'Aperture için Piwigo aktarım eklentisi'; $lang['Piwigo export plugin for iPhoto'] = 'iPhoto için Piwigo aktarım eklentisi'; +$lang['Piwigo for Android'] = 'Android için Piwigo'; $lang['Piwigo for iOS (iPhone, iPad, iPod Touch)'] = 'iOS (iPhone, iPad, iPod Touch) için Piwigo'; $lang['Piwigo publish plugin for Shotwell'] = 'Shotwell için Piwigo publish eklentisi'; $lang['Piwigo publish plugin for digiKam'] = 'digiKam için Piwigo publish eklentisi'; @@ -913,7 +915,7 @@ $lang['Type here the name of the new group'] = 'Buraya yeni grubun ismini yazın $lang['Duplicate'] = 'Kopyasını al'; $lang['Manage the members'] = 'Üyeleri yönet'; $lang['Merge selected groups'] = 'Seçilen grupları birleÅŸtir'; -$lang['No group selected, no action possible.'] = 'Hiç bir grup seçili deÄŸil, herhangi bir iÅŸlem yapılamaz'; +$lang['No groups selected, no actions possible.'] = 'Hiç bir grup seçili deÄŸil, herhangi bir iÅŸlem yapılamaz'; $lang['No members to manage'] = 'Yönetecek üye yok'; $lang['Please select at least two groups'] = 'En azından iki grup seçin'; $lang['Rename'] = 'Yeniden adlandır'; @@ -931,7 +933,7 @@ $lang['No user selected of %d users'] = '%d kullanıcıdan hiçbiri seçilmedi'; $lang['User %s added'] = 'Kullanıcı %s eklendi'; $lang['Update user'] = 'Kullanıcıyı güncelle'; $lang['Show %s users'] = '%s kullanıcıyı göster'; -$lang['No user selected, no action possible.'] = 'Hiç bir kullanıcı seçilmedi, iÅŸlem yapılamaz.'; +$lang['No users selected, no actions possible.'] = 'Hiç bir kullanıcı seçilmedi, iÅŸlem yapılamaz.'; $lang['Last visit on %s, %s.'] = '%s \'ye son ziyaretiniz, %s.'; $lang['on the %d selected users'] = 'seçilen %d kullanıcıda'; $lang['Users modified'] = 'Kullanıcılarda deÄŸiÅŸiklik yapıldı'; @@ -970,7 +972,7 @@ $lang['Orphans'] = 'Sahipsizler'; $lang['Recipients'] = 'Alıcılar'; $lang['Y Repeat'] = 'Y Tekrarla'; $lang['It only takes a few clicks.'] = 'sadece bir kaç tıklama yeterli.'; -$lang['No tag selected, no action possible.'] = 'Etiket seçilmedi'; +$lang['No tags selected, no actions possible.'] = 'Etiket seçilmedi'; $lang['Piwigo %s is available, please update'] = 'Piwigo %s mevcut, lütfen güncelleyiniz'; $lang['delete only album, not photos'] = 'resimler hariç, sadece albümü sil'; $lang['Confirm deletion'] = 'Silmeyi onayla'; @@ -1005,4 +1007,4 @@ $lang['Some checksums are missing.'] = 'Bazı kontrol toplamları eksik.'; $lang['Display category date'] = 'Kategori tarihini görüntüle'; $lang['Compute %d missing checksums'] = '%d eksik kontrol toplamı hesapla'; $lang['... or hide this link'] = '... yada bu baÄŸlantıyı gizle'; -$lang['%d checksums were added'] = '%d kontrol toplamları ilave edildi'; \ No newline at end of file +$lang['%d checksums were added'] = '%d kontrol toplamları ilave edildi'; diff --git a/language/uk_UA/admin.lang.php b/language/uk_UA/admin.lang.php index 8b54d07be..9b8aca740 100644 --- a/language/uk_UA/admin.lang.php +++ b/language/uk_UA/admin.lang.php @@ -321,7 +321,7 @@ $lang['Deactivate all'] = 'Деактивувати вÑе'; $lang['No file was uploaded'] = 'Файл не був завантажений'; $lang['No mail to send.'] = 'Ðемає пошти Ð´Ð»Ñ Ð²Ñ–Ð´Ð¿Ñ€Ð°Ð²ÐºÐ¸.'; $lang['No photo selected, %d photos in current set'] = 'Ðемає виділених зображень, %d Ð·Ð¾Ð±Ñ€Ð°Ð¶ÐµÐ½Ð½Ñ Ð² поточному наборі'; -$lang['No photo selected, no action possible.'] = 'Ðемає виділених фотографій, немає можливих дій.'; +$lang['No photos selected, no actions possible.'] = 'Ðемає виділених фотографій, немає можливих дій.'; $lang['No results'] = 'Ðемає результату'; $lang['No user to send notifications by mail.'] = 'Ðемає кориÑтувачів Ð´Ð»Ñ Ð¾Ð¿Ð¾Ð²Ñ–Ñ‰ÐµÐ½Ð½Ñ Ð¿Ð¾ÑˆÑ‚Ð¾ÑŽ.'; $lang['Notification'] = 'ОповіщеннÑ'; @@ -812,8 +812,10 @@ $lang['Web Form'] = 'Веб-форми'; $lang['Available on'] = 'ДоÑтупні на'; $lang['Delete multiple size images'] = 'Ð’Ð¸Ð´Ð°Ð»ÐµÐ½Ð½Ñ Ð´ÐµÐºÑ–Ð»ÑŒÐºÐ¾Ñ… зображень розміром'; $lang['Generate multiple size images'] = 'Ð¡Ñ‚Ð²Ð¾Ñ€ÐµÐ½Ð½Ñ Ð´ÐµÐºÑ–Ð»ÑŒÐºÐ¾Ñ… зображень розміром'; +$lang['Piwigo for Android'] = 'Piwigo Ð´Ð»Ñ Android'; $lang['Piwigo for iOS (iPhone, iPad, iPod Touch)'] = 'Piwigo Ð´Ð»Ñ iOS(iPhone, iPad, iPod Touch)'; $lang['%u users have automatic permission because they belong to a granted group.'] = '%u кориÑтувачі мають автоматичний дозвіл, тому що вони належать до наданої групи.'; +$lang['Piwigo for Android application empowers you to connect your Android phone or table to your Piwigo gallery, create some albums and upload several photos at once.'] = 'Piwigo Ð´Ð»Ñ Android додаток дозволÑÑ” вам підключити ваш телефон або планшет в галерею Piwigo, Ñтворити кілька альбомів Ñ– завантажити декілька зображень одночаÑно.'; $lang['Piwigo for iOS application empowers you to connect to your Piwigo gallery from your iPhone, iPad or iPod Touch, create some albums and upload several photos at once.'] = 'Piwigo Ð´Ð»Ñ iOS додаток дає можливіÑть підключатиÑÑŒ до вашої галереї Piwigo з вашого ÑенÑорного iPhone, iPad та iPod, Ñтворити кілька альбомів Ñ– завантажити декілька зображень одночаÑно.'; $lang['Adobe Photoshop Lightroom is a photography software designed to manage large quantities of digital images and doing post production work.'] = 'Adobe Photoshop Lightroom ÑвлÑÑ” Ñобою програмне Ð·Ð°Ð±ÐµÐ·Ð¿ÐµÑ‡ÐµÐ½Ð½Ñ Ñ„Ð¾Ñ‚Ð¾Ð³Ñ€Ð°Ñ„Ð°, призначене Ð´Ð»Ñ ÑƒÐ¿Ñ€Ð°Ð²Ð»Ñ–Ð½Ð½Ñ Ð²ÐµÐ»Ð¸ÐºÐ¾ÑŽ кількіÑтю цифрових зображень Ñ– робить роботу поÑтпродакшн.'; $lang['any visitor can see this album'] = 'будь-Ñкий відвідувач може бачити цей альбом'; @@ -911,7 +913,7 @@ $lang['between %d and %d pixels'] = 'між %d Ñ– %d пікÑелÑми'; $lang['Duplicate'] = 'Дублювати'; $lang['Manage the members'] = 'ÐšÐµÑ€ÑƒÐ²Ð°Ð½Ð½Ñ ÑƒÑ‡Ð°Ñниками'; $lang['Merge selected groups'] = 'Ð—Ð»Ð¸Ñ‚Ñ‚Ñ Ð²Ð¸Ð±Ñ€Ð°Ð½Ð¸Ñ… груп'; -$lang['No group selected, no action possible.'] = 'Жодна група не вибрана, не можливі ніÑкі дії.'; +$lang['No groups selected, no actions possible.'] = 'Жодна група не вибрана, не можливі ніÑкі дії.'; $lang['No members to manage'] = 'Ðемає учаÑників Ð´Ð»Ñ ÑƒÐ¿Ñ€Ð°Ð²Ð»Ñ–Ð½Ð½Ñ'; $lang['Please select at least two groups'] = 'Виберіть щонайменше дві групи'; $lang['Rename'] = 'Перейменувати'; @@ -935,7 +937,7 @@ $lang['Last visit on %s, %s.'] = 'Був на Ñайті %s, %s.'; $lang['Loading...'] = 'ЗавантаженнÑ...'; $lang['No matching user found'] = 'Відповідних кориÑтувачі не знайдено'; $lang['No user selected of %d users'] = 'Ðе вибраний жоден з %d кориÑтувачів '; -$lang['No user selected, no action possible.'] = 'Жоден кориÑтувач не обраний, ніÑкі дії можливі.'; +$lang['No users selected, no actions possible.'] = 'Жоден кориÑтувач не обраний, ніÑкі дії можливі.'; $lang['Password updated'] = 'Пароль оновлений'; $lang['Registered on %s, %s.'] = 'ЗареєÑтрований %s, %s.'; $lang['Show %s users'] = 'Відображати %s кориÑтувачів'; @@ -975,7 +977,7 @@ $lang['Time has come to update your Piwigo with version %s, go to %s'] = 'ÐÐ°Ñ $lang['delete album and all %d photos, even the %d associated to other albums'] = 'видалити альбом Ñ– вÑÑ– %d фотографії, навіть, %d пов\'Ñзані з іншими альбомами'; $lang['Piwigo %s is available, please update'] = 'Piwigo %s доÑтупний до оновленнÑ, будь лаÑка, оновітьÑÑ'; $lang['No filter on album. Select one or type to search'] = 'Ðемає фільтрів на альбомі. Виберіть один або введіть Ð´Ð»Ñ Ð¿Ð¾ÑˆÑƒÐºÑƒ'; -$lang['No tag selected, no action possible.'] = 'Теґи не вибрано, ніÑкі дії неможливі.'; +$lang['No tags selected, no actions possible.'] = 'Теґи не вибрано, ніÑкі дії неможливі.'; $lang['Running on an up-to-date Piwigo is important for security.'] = 'Робота на ÑучаÑній Piwigo важлива Ð´Ð»Ñ Ð±ÐµÐ·Ð¿ÐµÐºÐ¸.'; $lang['Select tags'] = 'Виберіть теги'; $lang['Storage used'] = 'ВикориÑтано пам\'Ñті'; @@ -1005,4 +1007,4 @@ $lang['With no checksum'] = 'Без контрольної Ñуми'; $lang['checksums to add'] = 'контрольні Ñуми Ð´Ð»Ñ Ð´Ð¾Ð´Ð°Ð²Ð°Ð½Ð½Ñ'; $lang['or'] = 'чи'; $lang['Deletion in progress'] = 'ВиконуєтьÑÑ Ð²Ð¸Ð´Ð°Ð»ÐµÐ½Ð½Ñ'; -$lang['Create a first album'] = 'Створіть перший альбом'; \ No newline at end of file +$lang['Create a first album'] = 'Створіть перший альбом'; diff --git a/language/vi_VN/admin.lang.php b/language/vi_VN/admin.lang.php index 367c2c746..1624e6a07 100644 --- a/language/vi_VN/admin.lang.php +++ b/language/vi_VN/admin.lang.php @@ -663,7 +663,7 @@ $lang['Refresh photo set'] = 'Cáºp nháºt bá»™ hình'; $lang['The whole page'] = 'Nguyên cả trang'; $lang['The whole set'] = 'Nguyên cả bá»™'; $lang['No photo in the current set.'] = 'Không có hình nà o trong bá»™ hiện tại.'; -$lang['No photo selected, no action possible.'] = 'Không có hình nà o được chá»n, không tác vụ nà o được thá»±c hiện.'; +$lang['No photos selected, no actions possible.'] = 'Không có hình nà o được chá»n, không tác vụ nà o được thá»±c hiện.'; $lang['Choose an action'] = 'Chá»n má»™t tác vụ'; $lang['remove author'] = 'bá» tác giả'; $lang['Type here the author name'] = 'Nháºp tên tác giả và o đây'; @@ -813,6 +813,8 @@ $lang['Applications'] = 'Các ứng dụng'; $lang['Available on'] = 'Có thể dùng được và o'; $lang['Piwigo for iOS (iPhone, iPad, iPod Touch)'] = 'Phiên bản Piwigo cho iOS (iPhone, iPad, iPod Touch)'; $lang['Piwigo for iOS application empowers you to connect to your Piwigo gallery from your iPhone, iPad or iPod Touch, create some albums and upload several photos at once.'] = 'Phiên bản Piwigo cho iOS ứng dụng cho phép bạn kết nối Piwigo cá»§a mình từ iPhone, iPad hoặc iPod Touch, tạo albums ảnh và tải lên máy chá»§ lưu trữ ảnh ngay láºp tức.'; +$lang['Piwigo for Android'] = 'Phiên bản Piwigo cho Android'; +$lang['Piwigo for Android application empowers you to connect your Android phone or table to your Piwigo gallery, create some albums and upload several photos at once.'] = 'Phiên bản Piwigo cho Android ứng dụng cho phép bạn kết nối Piwigo cá»§a mình từ Ä‘iện thoại chạy Android hoặc máy tÃnh bảng, tạo albums ảnh và tải lên máy chá»§ lưu trữ ảnh ngay láºp tức.'; $lang['Piwigo Publish plugin for Lightroom'] = 'Plugin Publish cá»§a Piwigo cho Lightroom'; $lang['%d day'] = '%d ngà y'; $lang['%d days'] = '%d ngà y'; @@ -870,7 +872,7 @@ $lang['Minimum height'] = 'Chiá»u cao tối thiểu'; $lang['Multiple Size'] = 'Äa kÃch thước'; $lang['Name of the duplicate'] = 'Tên cá»§a phần trùng lặp'; $lang['No group is permitted to see this private album'] = 'Không nhóm nà o được phép xem album loại riêng tư'; -$lang['No group selected, no action possible.'] = 'Không nhóm nà o được chá»n, không thể thá»±c thi được tác vụ nà o.'; +$lang['No groups selected, no actions possible.'] = 'Không nhóm nà o được chá»n, không thể thá»±c thi được tác vụ nà o.'; $lang['No members to manage'] = 'Không có thà nh viên nà o để quản lý'; $lang['No order field selected'] = 'Không có tham số vị trà nà o được chá»n'; $lang['Number of albums per page'] = 'Số album ảnh trên má»™t trang'; @@ -936,7 +938,7 @@ $lang['Last visit on %s, %s.'] = 'Xem lần cuối và o lúc %s, %s.'; $lang['Loading...'] = 'Äang tải...'; $lang['No matching user found'] = 'Không tìm thấy ngưá»i dùng nà o phù hợp'; $lang['No user selected of %d users'] = 'Không có ngưá»i dùng nà o được chá»n trong số %d ngưá»i dùng'; -$lang['No user selected, no action possible.'] = 'Không có ngưá»i dùng nà o được chá»n nên không thể là m tiếp'; +$lang['No users selected, no actions possible.'] = 'Không có ngưá»i dùng nà o được chá»n nên không thể là m tiếp'; $lang['Password updated'] = 'Máºt khẩu đã được cáºp nháºt'; $lang['Registered on %s, %s.'] = 'Äã đăng ký và o lúc %s, %s.'; $lang['Show %s users'] = 'Hiển thị %s ngưá»i dùng'; @@ -988,8 +990,8 @@ $lang['First photo added'] = 'Anhr đầu tiên đã được thêm'; $lang['It only takes a few clicks.'] = 'Chỉ tốn và i cú click chuá»™t.'; $lang['No filter on album. Select one or type to search'] = 'Khong có bá»™ lá»c bá»™ ảnh. Chá»n má»™t hoặc nháºp để tìm kiếm'; $lang['No recipient selected'] = 'Chưa chá»n ngưá»i nháºn'; -$lang['No tag selected, no action possible.'] = 'Chưa chá»n từ khóa nên không thể tiến hà nh'; +$lang['No tags selected, no actions possible.'] = 'Chưa chá»n từ khóa nên không thể tiến hà nh'; $lang['No user is permitted to see this private album'] = 'Không có ngưá»i dùng nà o được phép xem bá»™ ảnh riêng tư nà y'; $lang['Orphans'] = 'Các ảnh mồ côi'; $lang['Piwigo %s is available, please update'] = 'Piwigo %s đã có, vui lòng cáºp nháºt'; -$lang['Recipients'] = 'Các ngưá»i nháºn'; \ No newline at end of file +$lang['Recipients'] = 'Các ngưá»i nháºn'; diff --git a/language/zh_CN/admin.lang.php b/language/zh_CN/admin.lang.php index 1420177bf..8d496ce43 100644 --- a/language/zh_CN/admin.lang.php +++ b/language/zh_CN/admin.lang.php @@ -660,8 +660,8 @@ $lang['include child albums'] = '包å«å相册'; $lang['manual order'] = '手动排åº'; $lang['No photo in the current set.'] = '当å‰é›†åˆæ²¡æœ‰å›¾ç‰‡ã€‚'; $lang['No photo selected, %d photos in current set'] = '没有图片被选ä¸ï¼Œå½“å‰é›†åˆä¸æœ‰ %d å¼ å›¾ç‰‡'; -$lang['No photo selected, no action possible.'] = '没有图片被选ä¸ï¼Œä¸èƒ½æ‰§è¡Œä»»ä½•æ“作。'; -$lang['on the %d selected photos'] = '于所选的 %d å¼ å›¾ç‰‡'; +$lang['No photos selected, no actions possible.'] = '没有图片被选ä¸ï¼Œä¸èƒ½æ‰§è¡Œä»»ä½•æ“作。'; +$lang['on the %d selected photos'] = 'äºŽæ¤ %d å¼ æ‰€é€‰å›¾ç‰‡'; $lang['Orphan tags deleted'] = '未关è”ä»»ä½•å›¾ç‰‡çš„æ ‡ç¾å·²è¢«åˆ 除'; $lang['Refresh photo set'] = '刷新图片集'; $lang['Remove all filters'] = 'åˆ é™¤æ‰€æœ‰è¿‡æ»¤å™¨'; @@ -810,7 +810,8 @@ $lang['This album contains %d photos, added between %s and %s.'] = 'æ¤ç›¸å†ŒåŒ… $lang['This album contains %d photos, added on %s.'] = 'æ¤ç›¸å†ŒåŒ…å«%då¼ å›¾ç‰‡ï¼Œæ·»åŠ äºŽ%s。'; $lang['This album contains no photo.'] = 'æ¤ç›¸å†Œä¸æ²¡æœ‰å›¾ç‰‡ã€‚'; $lang['Unlock gallery'] = 'è§£é”图库'; -$lang['Piwigo for iOS application empowers you to connect to your Piwigo gallery from your iPhone, iPad or iPod Touch, create some albums and upload several photos at once.'] = '您å¯ä»¥åœ¨iPhoneã€iPad或iPod Touch上安装Piwigo iOSç‰ˆï¼Œä»¥ä¾¿éšæ—¶éšåœ°è¿žæŽ¥åˆ°æ‚¨çš„Piwigoå›¾åº“ï¼Œåˆ›å»ºç›¸å†Œå’Œä¸Šä¼ å›¾ç‰‡ã€‚'; +$lang['Piwigo for Android application empowers you to connect your Android phone or table to your Piwigo gallery, create some albums and upload several photos at once.'] = 'Piwigo Android版 使您能够从Android手机或平æ¿ç”µè„‘连接到您的Piwigoå›¾åº“ï¼Œæ–¹ä¾¿æ‚¨éšæ—¶éšåœ°åˆ›å»ºç›¸å†Œå’Œä¸Šä¼ 图片。'; +$lang['Piwigo for iOS application empowers you to connect to your Piwigo gallery from your iPhone, iPad or iPod Touch, create some albums and upload several photos at once.'] = 'Piwigo iOS版 使您能够从iPhoneã€iPad或iPod Touch连接到您的Piwigoå›¾åº“ï¼Œæ–¹ä¾¿æ‚¨éšæ—¶éšåœ°åˆ›å»ºç›¸å†Œå’Œä¸Šä¼ 图片。'; $lang['Applications'] = '应用程åº'; $lang['apply automatic sort order'] = '应用自动排åº'; $lang['Automatic sort order'] = '自动排åº'; @@ -818,6 +819,7 @@ $lang['Available on'] = 'å¯ç”¨åœ¨'; $lang['cancel manual order'] = 'å–æ¶ˆæ‰‹åŠ¨æŽ’åº'; $lang['Cancel'] = 'å–æ¶ˆ'; $lang['List'] = '列表'; +$lang['Piwigo for Android'] = 'Piwigo Android版'; $lang['Piwigo for iOS (iPhone, iPad, iPod Touch)'] = 'Piwigo iOS版 (iPhone, iPad, iPod Touch)'; $lang['Save manual order'] = 'ä¿å˜æ‰‹åŠ¨æŽ’åº'; $lang['Web Form'] = 'æµè§ˆå™¨'; @@ -926,7 +928,7 @@ $lang['Type here the name of the new group'] = '在æ¤è¾“入新组的åç§°'; $lang['Duplicate'] = 'å¤åˆ¶'; $lang['Manage the members'] = '管ç†ç”¨æˆ·'; $lang['Merge selected groups'] = 'åˆå¹¶æ‰€é€‰ç»„'; -$lang['No group selected, no action possible.'] = '没有组被选ä¸ï¼Œä¸èƒ½æ‰§è¡Œä»»ä½•æ“作。'; +$lang['No groups selected, no actions possible.'] = '没有组被选ä¸ï¼Œä¸èƒ½æ‰§è¡Œä»»ä½•æ“作。'; $lang['Purge user cache'] = '清除用户缓å˜'; $lang['The picture dimensions will be reduced to %dx%d pixels.'] = '相片的分辨率将会被å‡å°‘到 %dx%d è±¡ç´ .'; $lang['Resize after upload disabled due to the use of GD as graphic library'] = '由于使用 GD å›¾å½¢åº“ï¼Œå› æ¤ç¦ç”¨ä¸Šä¼ åŽè°ƒæ•´å¤§å°'; @@ -935,7 +937,7 @@ $lang['Basic settings'] = '基本设置'; $lang['General'] = '总体'; $lang['Mail theme'] = '邮件主题'; $lang['No user selected of %d users'] = '%d ä¸ªç”¨æˆ·ä¸æ— 用户被选ä¸'; -$lang['No user selected, no action possible.'] = 'æ— ç”¨æˆ·è¢«é€‰ä¸ï¼Œæ— 法执行。'; +$lang['No users selected, no actions possible.'] = 'æ— ç”¨æˆ·è¢«é€‰ä¸ï¼Œæ— 法执行。'; $lang['Password updated'] = '密ç 已更新'; $lang['Registered on %s, %s.'] = '注册于 %s, %s。'; $lang['Show %s users'] = '显示 %s 个用户'; @@ -987,7 +989,7 @@ $lang['Select tags'] = 'é€‰æ‹©æ ‡ç¾'; $lang['Running on an up-to-date Piwigo is important for security.'] = '使用最新版的 Piwigo 对于安全是很é‡è¦çš„。'; $lang['Piwigo Remote Sync is able to upload a whole folder hierarchy. If you run it again, only new photos will be uploaded.'] = 'Piwigo è¿œç¨‹åŒæ¥èƒ½å¤Ÿä¸Šä¼ æ•´ä¸ªç›®å½•å±‚çº§ã€‚å¦‚æžœæ‚¨å†æ¬¡è¿è¡Œï¼Œåªæœ‰æ–°çš„å›¾ç‰‡ä¼šè¢«ä¸Šä¼ ã€‚'; $lang['Piwigo %s is available, please update'] = 'Piwigo %s 已准备就绪,请å‡çº§'; -$lang['No tag selected, no action possible.'] = 'æœªé€‰æ‹©æ ‡ç¾ï¼Œæ— 法执行æ“作。'; +$lang['No tags selected, no actions possible.'] = 'æœªé€‰æ‹©æ ‡ç¾ï¼Œæ— 法执行æ“作。'; $lang['No filter on album. Select one or type to search'] = '没有相册过滤器。选择一个或输入以进行æœç´¢'; $lang['It only takes a few clicks.'] = '这仅需数次点击。'; $lang['First photo added'] = 'é¦–å¼ å›¾ç‰‡å·²æ·»åŠ '; @@ -1014,4 +1016,4 @@ $lang['Welcome!'] = '欢迎ï¼'; $lang['With no checksum'] = 'æ— æ ¡éªŒç '; $lang['checksums to add'] = 'è¦æ·»åŠ çš„æ ¡éªŒç '; $lang['or'] = '或者'; -$lang['... or hide this link'] = '... 或éšè—本链接'; \ No newline at end of file +$lang['... or hide this link'] = '... 或éšè—本链接'; diff --git a/language/zh_HK/admin.lang.php b/language/zh_HK/admin.lang.php index 43731e0db..44ae09d98 100644 --- a/language/zh_HK/admin.lang.php +++ b/language/zh_HK/admin.lang.php @@ -373,6 +373,7 @@ $lang['Are you sure to install this upgrade? You must verify if this version doe $lang['Are you sure you want to delete this plugin?'] = '確定è¦åˆªé™¤æ¤æ’ä»¶å—Ž?'; $lang['%d of %d users selected'] = '%d到%dä½ç”¨æˆ¶é¸æ“‡'; $lang['(filtered from %s total users)'] = '(å…±%sç”¨æˆ¶è¢«éŽæ¿¾ï¼‰'; +$lang['Piwigo for Android application empowers you to connect your Android phone or table to your Piwigo gallery, create some albums and upload several photos at once.'] = 'Android 版的Piwigoå…許從 Android 手機或平版連接到您的Piwigo畫廊,建立多個相冊並一次上傳多張相片。'; $lang['Piwigo for iOS application empowers you to connect to your Piwigo gallery from your iPhone, iPad or iPod Touch, create some albums and upload several photos at once.'] = 'iOS 版的Piwigoå…許您從iPhone, iPad 或 iPod Touch 連接到您的Piwigo畫廊,建立多個相冊並一次上傳多張相片。'; $lang['Add a criteria'] = 'å¢žåŠ å‡†å‰‡'; $lang['Add a filter'] = 'å¢žåŠ ç¯©é¸'; @@ -751,6 +752,7 @@ $lang['Piwigo cannot retrieve upgrade file from server'] = 'Piwigo 無法從伺 $lang['Piwigo configuration'] = 'Piwigoçš„è¨å®š'; $lang['Piwigo export plugin for Aperture'] = 'Apertureçš„Piwigo匯出æ’ä»¶'; $lang['Piwigo export plugin for iPhoto'] = 'iPhotoçš„Piwigo匯出æ’ä»¶'; +$lang['Piwigo for Android'] = 'Android 版的Piwigo'; $lang['Piwigo for iOS (iPhone, iPad, iPod Touch)'] = 'iOS (iPhone, iPad, iPod Touch) 版的 Piwigo '; $lang['Piwigo publish plugin for Shotwell'] = 'Piwigo çš„ Shotwell 照片發布æ’ä»¶ '; $lang['Piwigo publish plugin for digiKam'] = 'Piwigo çš„ ddgiKam 照片發布æ’ä»¶'; @@ -826,7 +828,7 @@ $lang['Original templates'] = '原模æ¿'; $lang['No display'] = 'ä¸é¡¯ç¤º'; $lang['No file was uploaded'] = '沒有文件被上傳'; $lang['No group is permitted to see this private album'] = '沒有群組別有權é™è§€çœ‹æ¤ç§äººç›¸å†Š'; -$lang['No group selected, no action possible.'] = '尚未é¸å–群組別,無法動作'; +$lang['No groups selected, no actions possible.'] = '尚未é¸å–群組別,無法動作'; $lang['No mail to send.'] = '沒有郵件è¦ç™¼é€.'; $lang['No matching user found'] = '沒有發ç¾åŒ¹é…的用戶'; $lang['No members to manage'] = '沒有會員å¯ä»¥ç®¡ç†'; @@ -835,10 +837,10 @@ $lang['No photo can be deleted'] = '沒有圖片å¯ä»¥åˆªé™¤'; $lang['No photo in the current set.'] = 'ç•¶å‰é›†åˆæ²’有相片.'; $lang['No photo in this album'] = '沒有相片在æ¤ç›¸å†Šè£¡'; $lang['No photo selected, %d photos in current set'] = 'æ²’æœ‰é¸æ“‡ç›¸ç‰‡, ç•¶å‰é›†åˆæœ‰%d張相片'; -$lang['No photo selected, no action possible.'] = 'æ²’æœ‰é¸æ“‡ç›¸ç‰‡ï¼Œä¸æœƒæœ‰å‹•作執行'; +$lang['No photos selected, no actions possible.'] = 'æ²’æœ‰é¸æ“‡ç›¸ç‰‡ï¼Œä¸æœƒæœ‰å‹•作執行'; $lang['No results'] = 'æ²’æœ‰çµæžœ'; $lang['No user selected of %d users'] = '%då€‹ç”¨æˆ¶æ²’æœ‰ç”¨æˆ¶é¸æ“‡'; -$lang['No user selected, no action possible.'] = 'æ²’æœ‰ç”¨æˆ¶é¸æ“‡ï¼Œæ²’有行動的å¯èƒ½ã€‚'; +$lang['No users selected, no actions possible.'] = 'æ²’æœ‰ç”¨æˆ¶é¸æ“‡ï¼Œæ²’有行動的å¯èƒ½ã€‚'; $lang['No user to send notifications by mail.'] = '沒有郵件通知用戶.'; $lang['None'] = '沒有'; $lang['Not cropped correctly?'] = '䏿£ç¢ºçš„è£å‰ª?'; diff --git a/language/zh_TW/admin.lang.php b/language/zh_TW/admin.lang.php index 6fc5ea178..a9039cdc0 100644 --- a/language/zh_TW/admin.lang.php +++ b/language/zh_TW/admin.lang.php @@ -658,7 +658,7 @@ $lang['include child albums'] = '包å«å相冊'; $lang['manual order'] = '手工排åº'; $lang['No photo in the current set.'] = 'ç•¶å‰é›†åˆæ²’有相片.'; $lang['No photo selected, %d photos in current set'] = 'æ²’æœ‰é¸æ“‡ç›¸ç‰‡, ç•¶å‰é›†åˆæœ‰ %d 張相片'; -$lang['No photo selected, no action possible.'] = 'æ²’æœ‰é¸æ“‡ç›¸ç‰‡ï¼Œä¸æœƒæœ‰å‹•作執行.'; +$lang['No photos selected, no actions possible.'] = 'æ²’æœ‰é¸æ“‡ç›¸ç‰‡ï¼Œä¸æœƒæœ‰å‹•作執行.'; $lang['on the %d selected photos'] = '在 %d 張已é¸ç›¸ç‰‡ä¸Š'; $lang['Orphan tags deleted'] = 'ç„¡é—œè¯æ¨™ç±¤å·²è¢«åˆªé™¤'; $lang['Refresh photo set'] = '刷新相片集'; @@ -814,6 +814,8 @@ $lang['Applications'] = '申請'; $lang['Available on'] = 'å¯ç”¨çš„'; $lang['Piwigo for iOS (iPhone, iPad, iPod Touch)'] = 'iOS (iPhone, iPad, iPod Touch) 版的 Piwigo '; $lang['Piwigo for iOS application empowers you to connect to your Piwigo gallery from your iPhone, iPad or iPod Touch, create some albums and upload several photos at once.'] = 'iOS 版的Piwigoå…許您從iPhone, iPad 或 iPod Touch 連接到您的Piwigo畫廊,建立多個相冊並一次上傳多張相片。'; +$lang['Piwigo for Android'] = 'Android 版的Piwigo'; +$lang['Piwigo for Android application empowers you to connect your Android phone or table to your Piwigo gallery, create some albums and upload several photos at once.'] = 'Android 版的Piwigoå…許從 Android 手機或平版連接到您的Piwigo畫廊,建立多個相冊並一次上傳多張相片。'; $lang['Piwigo Publish plugin for Lightroom'] = 'Piwigo çš„ Lightroom 照片發布æ’ä»¶'; $lang['Adobe Photoshop Lightroom is a photography software designed to manage large quantities of digital images and doing post production work.'] = 'Adobe çš„ Photoshop Lightroom 是一套æ”影軟件,å¯ç®¡ç†å¤§é‡æ•¸ä½å½±åƒå’Œé€²è¡Œå¾Œè£½å·¥ä½œã€‚'; $lang['The Piwigo publish Plug-in allows you to export and synchronize photos from Lightroom directly to your Piwigo photo gallery.'] = 'Piwigo的發布æ’ä»¶å…è¨±ä½ å¾žLightroomåŒ¯å‡ºç…§ç‰‡ï¼Œä½¿ä½ çš„Lightroom照片與您的Piwigoç›¸å†ŠåŒæ¥ã€‚'; @@ -906,7 +908,7 @@ $lang['Manage the members'] = '會員管ç†'; $lang['Merge selected groups'] = 'åˆä½µé¸æ“‡ç¾¤çµ„'; $lang['Minimum width'] = '最å°å¯¬åº¦'; $lang['Minimum height'] = '最å°é«˜åº¦'; -$lang['No group selected, no action possible.'] = '尚未é¸å–群組別,無法動作'; +$lang['No groups selected, no actions possible.'] = '尚未é¸å–群組別,無法動作'; $lang['No members to manage'] = '沒有會員å¯ä»¥ç®¡ç†'; $lang['Number of albums per page'] = 'æ¯é 相本數é‡'; $lang['Panorama'] = '全景'; @@ -934,7 +936,7 @@ $lang['Last visit on %s, %s.'] = '最後的訪å•在%s, %s。'; $lang['Loading...'] = 'åŠ è¼‰ä¸...'; $lang['No matching user found'] = '沒有發ç¾åŒ¹é…的用戶'; $lang['No user selected of %d users'] = '%då€‹ç”¨æˆ¶æ²’æœ‰ç”¨æˆ¶é¸æ“‡'; -$lang['No user selected, no action possible.'] = 'æ²’æœ‰ç”¨æˆ¶é¸æ“‡ï¼Œæ²’有行動的å¯èƒ½ã€‚'; +$lang['No users selected, no actions possible.'] = 'æ²’æœ‰ç”¨æˆ¶é¸æ“‡ï¼Œæ²’有行動的å¯èƒ½ã€‚'; $lang['Password updated'] = '更新密碼'; $lang['Registered on %s, %s.'] = '註冊在%s, %s。'; $lang['Show %s users'] = '顯示%s用戶'; diff --git a/password.php b/password.php index b19bfabad..286f0a8d7 100644 --- a/password.php +++ b/password.php @@ -238,15 +238,7 @@ function reset_password() array($conf['user_fields']['id'] => $user_id) ); - single_update( - USER_INFOS_TABLE, - array( - 'activation_key' => null, - 'activation_key_expire' => null, - ), - array('user_id' => $user_id) - ); - + deactivate_password_reset_key($user_id); deactivate_user_auth_keys($user_id); $page['infos'][] = l10n('Your password has been reset'); diff --git a/profile.php b/profile.php index cb7873cd1..f2b9a2ccd 100644 --- a/profile.php +++ b/profile.php @@ -243,6 +243,11 @@ function save_profile_from_post($userdata, &$errors) ), array($data)); + if ($_POST['mail_address'] != $userdata['email']) + { + deactivate_password_reset_key($userdata['id']); + } + $activity_details_tables[] = 'users'; } diff --git a/tags.php b/tags.php index 93f7150f4..4ae3885e0 100644 --- a/tags.php +++ b/tags.php @@ -6,25 +6,6 @@ // | file that was distributed with this source code. | // +-----------------------------------------------------------------------+ -// +-----------------------------------------------------------------------+ -// | functions | -// +-----------------------------------------------------------------------+ - -function counter_compare($a, $b) -{ - if ($a['counter'] == $b['counter']) - { - return id_compare($a, $b); - } - - return ($a['counter'] < $b['counter']) ? +1 : -1; -} - -function id_compare($a, $b) -{ - return ($a['id'] < $b['id']) ? -1 : 1; -} - // +-----------------------------------------------------------------------+ // | initialization | // +-----------------------------------------------------------------------+ @@ -145,7 +126,7 @@ else // we want only the first most represented tags, so we sort them by counter // and take the first tags - usort($tags, 'counter_compare'); + usort($tags, 'tags_counter_compare'); $tags = array_slice($tags, 0, $conf['full_tag_cloud_items_number']); // depending on its counter and the other tags counter, each tag has a level diff --git a/themes/Sylvia/icon/datepicker.png b/themes/Sylvia/icon/datepicker.png deleted file mode 100644 index 3d0e015f6..000000000 Binary files a/themes/Sylvia/icon/datepicker.png and /dev/null differ diff --git a/themes/Sylvia/icon/delete.png b/themes/Sylvia/icon/delete.png deleted file mode 100644 index 285e53e19..000000000 Binary files a/themes/Sylvia/icon/delete.png and /dev/null differ diff --git a/themes/Sylvia/icon/edit.png b/themes/Sylvia/icon/edit.png deleted file mode 100644 index 9c755cda1..000000000 Binary files a/themes/Sylvia/icon/edit.png and /dev/null differ diff --git a/themes/Sylvia/icon/errors.png b/themes/Sylvia/icon/errors.png deleted file mode 100644 index e26d8c6e5..000000000 Binary files a/themes/Sylvia/icon/errors.png and /dev/null differ diff --git a/themes/Sylvia/icon/errors_small.png b/themes/Sylvia/icon/errors_small.png deleted file mode 100644 index 724cc659c..000000000 Binary files a/themes/Sylvia/icon/errors_small.png and /dev/null differ diff --git a/themes/Sylvia/icon/favicon.ico b/themes/Sylvia/icon/favicon.ico deleted file mode 100644 index f25fffe2a..000000000 Binary files a/themes/Sylvia/icon/favicon.ico and /dev/null differ diff --git a/themes/Sylvia/icon/img_small.png b/themes/Sylvia/icon/img_small.png deleted file mode 100644 index dbfcc9a00..000000000 Binary files a/themes/Sylvia/icon/img_small.png and /dev/null differ diff --git a/themes/Sylvia/icon/index.php b/themes/Sylvia/icon/index.php deleted file mode 100644 index 58ea04e8f..000000000 --- a/themes/Sylvia/icon/index.php +++ /dev/null @@ -1,15 +0,0 @@ - diff --git a/themes/Sylvia/icon/infos.png b/themes/Sylvia/icon/infos.png deleted file mode 100644 index 00695cb8f..000000000 Binary files a/themes/Sylvia/icon/infos.png and /dev/null differ diff --git a/themes/Sylvia/icon/mimetypes/avi.png b/themes/Sylvia/icon/mimetypes/avi.png deleted file mode 100644 index b5dde0869..000000000 Binary files a/themes/Sylvia/icon/mimetypes/avi.png and /dev/null differ diff --git a/themes/Sylvia/icon/mimetypes/mp3.png b/themes/Sylvia/icon/mimetypes/mp3.png deleted file mode 100644 index cb1288596..000000000 Binary files a/themes/Sylvia/icon/mimetypes/mp3.png and /dev/null differ diff --git a/themes/Sylvia/icon/mimetypes/mpg.png b/themes/Sylvia/icon/mimetypes/mpg.png deleted file mode 100644 index 4dc09c28b..000000000 Binary files a/themes/Sylvia/icon/mimetypes/mpg.png and /dev/null differ diff --git a/themes/Sylvia/icon/mimetypes/ogg.png b/themes/Sylvia/icon/mimetypes/ogg.png deleted file mode 100644 index 978b235f9..000000000 Binary files a/themes/Sylvia/icon/mimetypes/ogg.png and /dev/null differ diff --git a/themes/Sylvia/icon/mimetypes/zip.png b/themes/Sylvia/icon/mimetypes/zip.png deleted file mode 100644 index 7d76f9a60..000000000 Binary files a/themes/Sylvia/icon/mimetypes/zip.png and /dev/null differ diff --git a/themes/Sylvia/icon/note.png b/themes/Sylvia/icon/note.png deleted file mode 100644 index 9ef1af537..000000000 Binary files a/themes/Sylvia/icon/note.png and /dev/null differ diff --git a/themes/Sylvia/icon/rating-stars.gif b/themes/Sylvia/icon/rating-stars.gif deleted file mode 100644 index 4059e0329..000000000 Binary files a/themes/Sylvia/icon/rating-stars.gif and /dev/null differ diff --git a/themes/Sylvia/icon/rating-stars.png b/themes/Sylvia/icon/rating-stars.png deleted file mode 100644 index dba59ef00..000000000 Binary files a/themes/Sylvia/icon/rating-stars.png and /dev/null differ diff --git a/themes/Sylvia/icon/recent.png b/themes/Sylvia/icon/recent.png deleted file mode 100644 index 75567d689..000000000 Binary files a/themes/Sylvia/icon/recent.png and /dev/null differ diff --git a/themes/Sylvia/icon/recent_by_child.png b/themes/Sylvia/icon/recent_by_child.png deleted file mode 100644 index faf5c4d5c..000000000 Binary files a/themes/Sylvia/icon/recent_by_child.png and /dev/null differ diff --git a/themes/Sylvia/icon/recent_s.png b/themes/Sylvia/icon/recent_s.png deleted file mode 100644 index 90b190523..000000000 Binary files a/themes/Sylvia/icon/recent_s.png and /dev/null differ diff --git a/themes/Sylvia/icon/recent_s_by_child.png b/themes/Sylvia/icon/recent_s_by_child.png deleted file mode 100644 index 842a513c4..000000000 Binary files a/themes/Sylvia/icon/recent_s_by_child.png and /dev/null differ diff --git a/themes/Sylvia/icon/remove_s.png b/themes/Sylvia/icon/remove_s.png deleted file mode 100644 index 012efc1ad..000000000 Binary files a/themes/Sylvia/icon/remove_s.png and /dev/null differ diff --git a/themes/Sylvia/icon/start_filter.png b/themes/Sylvia/icon/start_filter.png deleted file mode 100644 index f8611cd83..000000000 Binary files a/themes/Sylvia/icon/start_filter.png and /dev/null differ diff --git a/themes/Sylvia/icon/stop_filter.png b/themes/Sylvia/icon/stop_filter.png deleted file mode 100644 index 145e64cc8..000000000 Binary files a/themes/Sylvia/icon/stop_filter.png and /dev/null differ diff --git a/themes/Sylvia/icon/validate_s.png b/themes/Sylvia/icon/validate_s.png deleted file mode 100644 index adea3d580..000000000 Binary files a/themes/Sylvia/icon/validate_s.png and /dev/null differ diff --git a/themes/Sylvia/images/ajax_loader.gif b/themes/Sylvia/images/ajax_loader.gif deleted file mode 100644 index d84f65378..000000000 Binary files a/themes/Sylvia/images/ajax_loader.gif and /dev/null differ diff --git a/themes/Sylvia/images/bottom-left-bg.jpg b/themes/Sylvia/images/bottom-left-bg.jpg deleted file mode 100644 index 3d8a5eed2..000000000 Binary files a/themes/Sylvia/images/bottom-left-bg.jpg and /dev/null differ diff --git a/themes/Sylvia/images/cat_bottom-left.gif b/themes/Sylvia/images/cat_bottom-left.gif deleted file mode 100644 index 2a042897d..000000000 Binary files a/themes/Sylvia/images/cat_bottom-left.gif and /dev/null differ diff --git a/themes/Sylvia/images/cat_bottom-right.gif b/themes/Sylvia/images/cat_bottom-right.gif deleted file mode 100644 index 901f31d52..000000000 Binary files a/themes/Sylvia/images/cat_bottom-right.gif and /dev/null differ diff --git a/themes/Sylvia/images/cat_top-left.gif b/themes/Sylvia/images/cat_top-left.gif deleted file mode 100644 index 1ea57346e..000000000 Binary files a/themes/Sylvia/images/cat_top-left.gif and /dev/null differ diff --git a/themes/Sylvia/images/cat_top-right.gif b/themes/Sylvia/images/cat_top-right.gif deleted file mode 100644 index 7eb5c491e..000000000 Binary files a/themes/Sylvia/images/cat_top-right.gif and /dev/null differ diff --git a/themes/Sylvia/images/fillet.gif b/themes/Sylvia/images/fillet.gif deleted file mode 100644 index 6da64117b..000000000 Binary files a/themes/Sylvia/images/fillet.gif and /dev/null differ diff --git a/themes/Sylvia/images/header_msgs-bg.gif b/themes/Sylvia/images/header_msgs-bg.gif deleted file mode 100644 index 0879e1b79..000000000 Binary files a/themes/Sylvia/images/header_msgs-bg.gif and /dev/null differ diff --git a/themes/Sylvia/images/menuBox_bottom.gif b/themes/Sylvia/images/menuBox_bottom.gif deleted file mode 100644 index 72c91b117..000000000 Binary files a/themes/Sylvia/images/menuBox_bottom.gif and /dev/null differ diff --git a/themes/Sylvia/images/menuBox_sides.gif b/themes/Sylvia/images/menuBox_sides.gif deleted file mode 100644 index 853772da3..000000000 Binary files a/themes/Sylvia/images/menuBox_sides.gif and /dev/null differ diff --git a/themes/Sylvia/images/menuBox_top.gif b/themes/Sylvia/images/menuBox_top.gif deleted file mode 100644 index 3c80b3cf9..000000000 Binary files a/themes/Sylvia/images/menuBox_top.gif and /dev/null differ diff --git a/themes/Sylvia/images/menuId_bottom.gif b/themes/Sylvia/images/menuId_bottom.gif deleted file mode 100644 index e6d1faa1d..000000000 Binary files a/themes/Sylvia/images/menuId_bottom.gif and /dev/null differ diff --git a/themes/Sylvia/images/menuId_sides.gif b/themes/Sylvia/images/menuId_sides.gif deleted file mode 100644 index 68923cba2..000000000 Binary files a/themes/Sylvia/images/menuId_sides.gif and /dev/null differ diff --git a/themes/Sylvia/images/menuId_top.gif b/themes/Sylvia/images/menuId_top.gif deleted file mode 100644 index 5243a4097..000000000 Binary files a/themes/Sylvia/images/menuId_top.gif and /dev/null differ diff --git a/themes/Sylvia/images/top-left-bg.jpg b/themes/Sylvia/images/top-left-bg.jpg deleted file mode 100644 index 98aa1d6a5..000000000 Binary files a/themes/Sylvia/images/top-left-bg.jpg and /dev/null differ diff --git a/themes/Sylvia/images/transparent.gif b/themes/Sylvia/images/transparent.gif deleted file mode 100644 index 2fb4189a1..000000000 Binary files a/themes/Sylvia/images/transparent.gif and /dev/null differ diff --git a/themes/Sylvia/local_head.tpl b/themes/Sylvia/local_head.tpl deleted file mode 100644 index 932b5d2da..000000000 --- a/themes/Sylvia/local_head.tpl +++ /dev/null @@ -1,3 +0,0 @@ - diff --git a/themes/Sylvia/screenshot.png b/themes/Sylvia/screenshot.png deleted file mode 100644 index ee3637c88..000000000 Binary files a/themes/Sylvia/screenshot.png and /dev/null differ diff --git a/themes/Sylvia/theme-ie.css b/themes/Sylvia/theme-ie.css deleted file mode 100644 index fe2a58a79..000000000 --- a/themes/Sylvia/theme-ie.css +++ /dev/null @@ -1,12 +0,0 @@ -#content .thumbnailCategory .description .text { - scrollbar-face-color:#222; - scrollbar-shadow-color:#444; - scrollbar-highlight-color:#000; - scrollbar-darkshadow-color:#333; - scrollbar-track-color:#111; - scrollbar-arrow-color:#f70; -} - -#debug { word-wrap:break-word; } -/* IE6... Hacks: */ -/*\*/ * html #menubar #mbIdentification .button { margin-right:25px; } /* */ \ No newline at end of file diff --git a/themes/Sylvia/theme.css b/themes/Sylvia/theme.css deleted file mode 100644 index 7abbebe71..000000000 --- a/themes/Sylvia/theme.css +++ /dev/null @@ -1,483 +0,0 @@ -/* thumbnail wrap size */ -.thumbnailCategory .illustration { - min-width:165px !important; /* Usable range 162px-360px , optimal : Thumbnail width + 40px */ -} - .commentElement .illustration { - min-width:220px !important; /* Usable range 219px-360px , optimal : Thumbnail width + 95px */ -} - -/** - * Menubar - */ -#menubar DL { - background:transparent url(images/menuBox_top.gif) no-repeat scroll left top; - margin:0 0 5px 40px; - padding:0; - width: 231px; - min-width: 231px; - border: 0; - min-height: 32px; - overflow-x: hidden; -} -#menubar DT { - background-color:#111; - border:0; - display:inline; - margin-left:8px; - text-align:left; -} -#menubar DD { - background:transparent url(images/menuBox_bottom.gif) no-repeat scroll left bottom; - margin:14px 0 0 0; - padding:0 0 22px; - width: 231px; - min-width: 231px; - border: 0; - overflow-x: hidden; -} -#menubar DD P { - background:transparent url(images/menuBox_sides.gif) repeat-y scroll left bottom; - padding: 2px 16px 0; - margin: 0; -} -#menubar UL, #menubar #mbCategories p, #menubar .illustration { - background:transparent url(images/menuBox_sides.gif) repeat-y scroll left bottom; - margin:0; -} -#menubar DT A { - font-size: 100%; -} -#menubar UL { - color:#333; - font-size: 16px; - line-height: 15px; -} -#menubar UL SPAN.menuInfoCat { - color:#666; -} -#menubar LI { - padding-left: 12px; -} -#menubar LI UL { - background: transparent url(images/transparent.gif); -} -#menubar A, .menuInfoCat { - font-size: 13px; -} -#menubar form { - background:transparent url(images/menuBox_sides.gif) repeat-y scroll left bottom; - margin:0; -} -#menubar p { - padding: 16px 16px 0; -} - -.menubarFilter { - position: relative; - right: 8px; - top: 16px; -} - -#menubar #mbIdentification { - background:transparent url(images/menuId_top.gif) no-repeat scroll left top !important; -} -#menubar #mbIdentification DD { - background:transparent url(images/menuId_bottom.gif) no-repeat scroll left bottom; -} -#menubar #mbIdentification UL, #menubar #mbIdentification p, #menubar #mbIdentification .illustration { - background:transparent url(images/menuId_sides.gif) repeat-y scroll left bottom; -} -#menubar #mbIdentification form { - background:transparent url(images/menuId_sides.gif) repeat-y scroll left bottom; -} -#menubar #mbIdentification form p { - background:transparent none repeat-y scroll left bottom; -} -#menubar #mbIdentification p { - padding: 2px 16px 0; - margin: 0; -} -#menubar #mbIdentification fieldset div input[type="text"] { - margin: 0 0 3px; - width: 174px; - display: inline; -} -#menubar #mbIdentification .button { - height:24px; - width:24px; - right:0px; - top:-40px; -} -#menubar #mbIdentification fieldset { - border:0; - margin:0 24px 0 23px; -} -#menubar #mbIdentification legend { - display: none; -} -#mbIdentification p, .totalImages { - color:#666; -} - -#menubar #menuTagCloud { - background:transparent url(images/menuBox_sides.gif) repeat-y scroll left bottom; - margin:0; - padding: 0 12px; -} - -#qsearchInput:focus, input:focus, select:focus, textarea:focus, input.focus, form .focus { - background-color:#444; - color:#999; -} -#qsearchInput { - color:#999; -} - - -/** - * Content - */ -.content { - background:#222 url(images/fillet.gif) repeat-x scroll left top; - min-height:466px; - border: 1px solid #000; - border-top: 0; - margin:21px 7px 0 290px !important; - padding-top:7px; -} - -#the_page { - background:transparent url(images/top-left-bg.jpg) no-repeat scroll left top; - left:0; - margin:0; - padding:0; - position:absolute; - top:0; - z-index:0; - width: 100%; - min-width: 100%; -} - -.content h2 { - padding:0px 10px 15px 15px; - border:0; -} -.content .navigationBar { - color:#666; -} -/* contentWithMenu */ -.contentWithMenu { - margin-left: 290px; -} -.contentWithMenu #comments { - padding: 0 0 5px 0; -} -.contentWithMenu #imageToolBar { - padding-left: 0; -} -.contentWithMenu #imageHeaderBar .browsePath { - margin-left: 0; -} - -/* Category thumbnails on main page */ -.thumbnailCategories li { - background:#222 url(images/cat_bottom-right.gif) no-repeat scroll right bottom; - width:49%; - margin: 0; - padding:0; -} -.thumbnailCategory { - background:transparent url(images/cat_bottom-left.gif) no-repeat scroll left bottom; - padding: 0 0 2px; - margin:0; -} -.thumbnailCategory .illustration { - background:transparent url(images/cat_top-left.gif) no-repeat scroll left top; - padding: 0 5px 0 10px; - margin: 0 !important; - text-align: center; -} -.thumbnailCategory .illustration a { - display: block; - margin: 0 auto; - padding: 20px 4px 0; - border:0; -} -.thumbnailCategory .description { - background:transparent url(images/cat_top-right.gif) no-repeat scroll right top; - margin: 0; - padding:15px 10px 3px 0; - overflow: hidden !important; - height:158px; -} -.thumbnailCategory .description .text { - display:block; - margin:10px 2px 0 0; - overflow: auto; - overflow-x:hidden; - padding:0 0 5px; -} -.thumbnailCategory .description p.dates { - margin: 0 15px 0 15px; - text-align: right; -} -.thumbnailCategory .description H3 { - display: block; -} -.thumbnailCategories li:hover { - background-color:#111; -} - -/* header */ -#theHeader { - min-height:110px; - height:110px; -} - -.header_msgs { - background:transparent url(images/header_msgs-bg.gif) repeat scroll left top; - border:0; - color:#333; - font-size:24px; - left:0; - margin:0; - padding:10px 0 6px 0; - text-align:center; - top:0; - width:100%; - z-index:99; -} -.header_notes { - background:transparent url(images/header_msgs-bg.gif) repeat scroll left top; - border:0 none; - color:#333; - font-size:16px; - margin:0; - padding:0; - position:absolute; - top:0; - width:100%; - z-index:99; -} -.infos { - color:#f70; - border:0; - background:transparent url(icon/infos.png) no-repeat center right; - margin-left:40px; - text-align:left; -} -.errors { - color:#f33; - border:0; - background:transparent url(icon/errors.png) no-repeat center right; - margin-left:40px; - text-align:left; - font-weight:bold; -} -.infos li, .errors li { - list-style-type:none; -} - -/* User comments */ -#comments { - margin: 0 10px 5px 10px; -} -.content .commentElement { - border: 1px solid #666; -} -.content .commentElement.odd { - background-color: #222; -} -.content .commentElement.even { - background-color: #111; -} -.content .commentElement .illustration { - margin: 2px; - text-align: center; -} -.content .commentElement .description { - padding:15px 10px 3px 0; - overflow-x: hidden !important; -} - -#comments .commentsList hr {display:none;} -#comments .filter input[type="submit"] { margin-top:1.8em; } - -/* Thumbnails */ -.thumbnails .wrap2 { - border: 1px solid #666; /* thumbnails border color and style */ - border-radius: 4px 4px; /* round corners with CSS3 compliant browsers */ -} -.thumbnails .wrap2:hover { - color:#666; - background-color:#111; - border:1px solid #ff3363; /* thumbnails border color when mouse cursor is over it */ -} -.calItem { - border:1px solid #666; - margin:0 5px; - padding:2px 5px 0 8px; -} -SPAN.calItem, td.calDayCellEmpty, td.calDayCellFull { - border:1px solid #666; -} - - -/** - * Picture - */ -#imageToolBar { - padding:0 7%; -} -#imageHeaderBar .imageNumber { - margin-right:7%; -} -#imageHeaderBar .browsePath { - margin-left:7%; -} -#imageHeaderBar, #imageToolBar A:hover { - background-color: transparent; -} -#imageHeaderBar H2 { - border: 0; -} - -#theImage A, .illustration A, A.navThumb, A.navThumb { - border-bottom-width: 0; -} -.rateButtonStarFull, .rateButtonStarEmpty { - background-image: url('icon/rating-stars.gif'); -} - -#thePicturePage .commentElement { - padding: 15px 2px 6px 12px; - border: 1px solid #666; -} -#thePicturePage .commentsList { - padding-left: 12px; - padding-right: 12px; - overflow: visible; - width: auto; -} -#thePicturePage .odd { - background-color: #222; -} - -.pictureContent { - margin:0 7px 7px 290px; -} - -#addComment fieldset { - color: #f70; - border-color: #f70; -} -#addComment fieldset label { - color: #666; -} - - -/** - * Default Layout - */ -*, *:focus, *:active, input:active, a:active, input:focus, a:focus { - outline: none; -} -BODY { - background:#111 url(images/bottom-left-bg.jpg) no-repeat fixed left bottom; - margin:0; - min-height: 100%; - height: 100%; - padding:0; -} -BODY, H1, H3, DT, INPUT.rateButtonSelected, H2, #menubar DT { - color:#666; -} - -/* forms */ -FIELDSET, INPUT, SELECT, TEXTAREA { - border: 1px solid #666; -} -input[type="text"], input[type="password"], input[type="button"], input[type="submit"], input[type="reset"], input[type="file"] { - background-color:#444; - color:#999; -} /* stupid Line but needed due to inpact on other themes and deadline of Piwigo 2.0 */ -input[type="file"] { - background-color:#222; - border: 1px solid #666; -} -INPUT, select, textarea { - color:#999; - background-color:#444; -} -input[type="radio"], input[type="checkbox"], input[type="button"].rateButtonStarEmpty, input[type="button"].rateButtonStarFull { - background-color: transparent; -} -input[type="button"], input[type="submit"], input[type="reset"] { - color:#ff3363; - background-color:#222; - border-color:#ff3363; -} -input[type="button"]:hover, input[type="submit"]:hover, input[type="reset"]:hover { - color:#999; - border-color:#666; -} - -/* links */ -A, .rateButton { - color:#f70; - border-width: 0; -} -A:hover, A:active { - color:#f33; - border-bottom: 1px solid #ff3363; - cursor: pointer; -} -a.external { - color:#ff3363; - border:0; - text-decoration: none; -} -a.external:hover { - color:#ff7700; - border:0; -} -a.Piwigo { - font-family: verdana, arial, helvetica, sans-serif !important; - font-size: 11px; font-weight: normal; letter-spacing: 0; - color : #F33; text-decoration: none; border: 0; } -a.Piwigo:hover { - border-bottom: 1px solid #ff3363; -} - -.titrePage img.button[alt="x"] { margin: 0 3px 3px; } -tr.tagLine, fieldset.tagLetter, legend.tagLetterLegend { - border-color: #666; -} -#debug { - margin: 15px 15px 5px 248px; - font-size:12px; - clear: both; -} - -/* sprites */ -.pwg-icon { - background-image: url(../default/s26/outline_ff3363.png); -} -A:hover .pwg-icon { - background-image: url(../default/s26/outline_ff7700.png); -} - -.message { - color:white; - background-color:#666; -} - -.switchBox { - background-color: #222222; - border: 1px solid #FF3363; - border-radius: 0 15px 0 15px; -} - -.switchBoxTitle { - border-color:#666; -} diff --git a/themes/Sylvia/themeconf.inc.php b/themes/Sylvia/themeconf.inc.php deleted file mode 100644 index 8c007f620..000000000 --- a/themes/Sylvia/themeconf.inc.php +++ /dev/null @@ -1,38 +0,0 @@ - 'Sylvia', - 'parent' => 'default', - 'icon_dir' => 'themes/Sylvia/icon', - 'mime_icon_dir' => 'themes/Sylvia/icon/mimetypes/', -); -/************************************ mainpage_categories.tpl ************************************/ -add_event_handler('loc_end_index_category_thumbnails', 'Sylvia_album'); -function Sylvia_album($tpl_thumbnails_var) -{ - global $template; - $template->set_prefilter('index_category_thumbnails', 'Sylvia_album_prefilter'); - return $tpl_thumbnails_var; -} -function Sylvia_album_prefilter($content, &$smarty) -{ - $search = '#\{html_style\}#'; - $replacement = '{html_style} -.thumbnailCategory .description .text{ldelim} - height: {$derivative_params->max_height()-30}px; -}'; - $content = preg_replace($search, $replacement, $content); - $search = '#\.thumbnailCategory[\t ]*.description\{ldelim\}[\s]*height:[\t ]*\{\$derivative_params->max_height\(\)\+5#'; - $replacement = '.thumbnailCategory .description{ldelim} - height: {$derivative_params->max_height()+15'; - $content = preg_replace($search, $replacement, $content); - return $content; -} -?> diff --git a/themes/clear/index.php b/themes/clear/index.php deleted file mode 100644 index 58ea04e8f..000000000 --- a/themes/clear/index.php +++ /dev/null @@ -1,15 +0,0 @@ - diff --git a/themes/clear/screenshot.png b/themes/clear/screenshot.png deleted file mode 100644 index 6ae1a6a4d..000000000 Binary files a/themes/clear/screenshot.png and /dev/null differ diff --git a/themes/clear/theme.css b/themes/clear/theme.css deleted file mode 100644 index a7c64fa51..000000000 --- a/themes/clear/theme.css +++ /dev/null @@ -1,89 +0,0 @@ - -/* text color */ -BODY, H1, H2, DT, -INPUT.rateButtonSelected /* <= why IE doesn't inherit this ? */ { - color:#696969; /* dimgray */ -} - -/* backgrounds */ -BODY { - background-color: #ffffff; /* white */ -} - -H2, #menubar DT, #imageHeaderBar, #imageToolBar A:hover { - background-color: #d3d3d3; -} - -#menubar DL, .content, #imageToolBar, .switchBox, .header_notes { - background-color: #eeeeee; -} - -/* borders */ -#menubar DL, .content, #imageToolBar, .switchBox { - border: 1px solid #d3d3d3; -} - -#theImage IMG { - border: 3px solid #d3d3d3; -} - -/*I think this rule is never used*/ -.content UL.thumbnail IMG { - border: 1px solid #a0a0a0; -} - -FIELDSET, INPUT, SELECT, TEXTAREA, -.content .thumbnailCategory, -.content .commentElement { - border: 1px solid gray; -} - -.thumbnails .wrap2 { - border: 1px solid #aaaaaa; /* thumbnails border color and style */ -} - -.thumbnails .wrap2:hover, -.content .thumbnailCategories .thumbnailCategory:hover, -.content .thumbnailCategories .thumbnailCategory:hover A, -.content .commentsList .commentElement:hover, -.content .commentsList .commentElement:hover A { - background-color: #faebd7; - border-color: yellow; /* thumbnails border color when mouse cursor is over it */ - color: black; -} - -/* links */ -A, INPUT.rateButton { - color: #005e89; - background: transparent; - border-bottom: 1px dotted #005e89; -} - -A:hover, INPUT.rateButton:hover { - color: #808060; -} - -A.pwg-state-default { - border: 0; -} - -A.navThumb, A.navThumb:hover { - border-bottom: none; -} - -/*calendar elements*/ -.calItem -{ - border: 1px solid silver; -} - -#qsearchInput { color: #005e89; } - -.pwg-icon { - background-image: url(../default/s26/outline_005e89.png); -} - -A:hover .pwg-icon { - background-image: url(../default/s26/outline_808060.png); -} - diff --git a/themes/clear/themeconf.inc.php b/themes/clear/themeconf.inc.php deleted file mode 100644 index 7603b1e41..000000000 --- a/themes/clear/themeconf.inc.php +++ /dev/null @@ -1,15 +0,0 @@ - 'clear', - 'parent' => 'default', - 'colorscheme' => 'clear', -); -?> diff --git a/themes/dark/images/index.php b/themes/dark/images/index.php deleted file mode 100644 index 58ea04e8f..000000000 --- a/themes/dark/images/index.php +++ /dev/null @@ -1,15 +0,0 @@ - diff --git a/themes/dark/images/tableh1_bg.png b/themes/dark/images/tableh1_bg.png deleted file mode 100644 index fb3c51854..000000000 Binary files a/themes/dark/images/tableh1_bg.png and /dev/null differ diff --git a/themes/dark/index.php b/themes/dark/index.php deleted file mode 100644 index 58ea04e8f..000000000 --- a/themes/dark/index.php +++ /dev/null @@ -1,15 +0,0 @@ - diff --git a/themes/dark/screenshot.png b/themes/dark/screenshot.png deleted file mode 100644 index 8886060b1..000000000 Binary files a/themes/dark/screenshot.png and /dev/null differ diff --git a/themes/dark/theme.css b/themes/dark/theme.css deleted file mode 100644 index 04360e00a..000000000 --- a/themes/dark/theme.css +++ /dev/null @@ -1,76 +0,0 @@ - -/* text color */ -BODY, H1, -INPUT.rateButtonSelected /* <= why IE doesn't inherit this ? */ { - color:#d0d0d0; -} - -H2, #menubar DT { - color: #ffff80; - background-image: url(images/tableh1_bg.png); -} - - -/* backgrounds */ - -BODY, #imageToolBar A:hover { - background-color: #2f2f2f; -} - -#menubar DL, .content, #imageToolBar, #imageHeaderBar, .switchBox, .header_notes { - background-color: #505050; -} - -#imageHeaderBar H2 { - background-image: none; -} - -#imageHeaderBar { - border-top: 1px solid #000; -} - -/* borders */ -#menubar DL, .content, .switchBox { - border: 1px solid #000; -} - -#menubar DT, #imageToolBar { - border-bottom: 1px solid #000; -} - -FIELDSET, INPUT, SELECT, TEXTAREA, -.thumbnailCategory , -.content .commentElement , -.thumbnails .wrap2 { - border: 1px solid gray; -} - - -.thumbnails .wrap2:hover, -.thumbnailCategory:hover, -.content .commentElement:hover{ - border-color: yellow; /* thumbnails border color when mouse cursor is over it */ -} - - -/* links */ -A, INPUT.rateButton { - color: #fff; -} - -A:hover { - color: #ffff80; -} - -.pwg-icon { - background-image: url(../default/s26/outline_ffffff.png); -} - -A:hover .pwg-icon { - background-image: url(../default/s26/outline_ffff80.png); -} - -.message { - color:white; - background-color:#666; -} \ No newline at end of file diff --git a/themes/dark/themeconf.inc.php b/themes/dark/themeconf.inc.php deleted file mode 100644 index 7e692996c..000000000 --- a/themes/dark/themeconf.inc.php +++ /dev/null @@ -1,14 +0,0 @@ - 'dark', - 'parent' => 'default', -); -?> diff --git a/themes/default/js/plugins/Chart.min.css b/themes/default/js/plugins/Chart.min.css new file mode 100644 index 000000000..9dc5ac2e5 --- /dev/null +++ b/themes/default/js/plugins/Chart.min.css @@ -0,0 +1 @@ +@keyframes chartjs-render-animation{from{opacity:.99}to{opacity:1}}.chartjs-render-monitor{animation:chartjs-render-animation 1ms}.chartjs-size-monitor,.chartjs-size-monitor-expand,.chartjs-size-monitor-shrink{position:absolute;direction:ltr;left:0;top:0;right:0;bottom:0;overflow:hidden;pointer-events:none;visibility:hidden;z-index:-1}.chartjs-size-monitor-expand>div{position:absolute;width:1000000px;height:1000000px;left:0;top:0}.chartjs-size-monitor-shrink>div{position:absolute;width:200%;height:200%;left:0;top:0} \ No newline at end of file diff --git a/themes/default/js/plugins/Chart.min.js b/themes/default/js/plugins/Chart.min.js new file mode 100644 index 000000000..7c16b0d12 --- /dev/null +++ b/themes/default/js/plugins/Chart.min.js @@ -0,0 +1,7 @@ +/*! + * Chart.js v2.9.3 + * https://www.chartjs.org + * (c) 2019 Chart.js Contributors + * Released under the MIT License + */ +!function(t,e){"object"==typeof exports&&"undefined"!=typeof module?module.exports=e(function(){try{return require("moment")}catch(t){}}()):"function"==typeof define&&define.amd?define(["require"],(function(t){return e(function(){try{return t("moment")}catch(t){}}())})):(t=t||self).Chart=e(t.moment)}(this,(function(t){"use strict";t=t&&t.hasOwnProperty("default")?t.default:t;var e={aliceblue:[240,248,255],antiquewhite:[250,235,215],aqua:[0,255,255],aquamarine:[127,255,212],azure:[240,255,255],beige:[245,245,220],bisque:[255,228,196],black:[0,0,0],blanchedalmond:[255,235,205],blue:[0,0,255],blueviolet:[138,43,226],brown:[165,42,42],burlywood:[222,184,135],cadetblue:[95,158,160],chartreuse:[127,255,0],chocolate:[210,105,30],coral:[255,127,80],cornflowerblue:[100,149,237],cornsilk:[255,248,220],crimson:[220,20,60],cyan:[0,255,255],darkblue:[0,0,139],darkcyan:[0,139,139],darkgoldenrod:[184,134,11],darkgray:[169,169,169],darkgreen:[0,100,0],darkgrey:[169,169,169],darkkhaki:[189,183,107],darkmagenta:[139,0,139],darkolivegreen:[85,107,47],darkorange:[255,140,0],darkorchid:[153,50,204],darkred:[139,0,0],darksalmon:[233,150,122],darkseagreen:[143,188,143],darkslateblue:[72,61,139],darkslategray:[47,79,79],darkslategrey:[47,79,79],darkturquoise:[0,206,209],darkviolet:[148,0,211],deeppink:[255,20,147],deepskyblue:[0,191,255],dimgray:[105,105,105],dimgrey:[105,105,105],dodgerblue:[30,144,255],firebrick:[178,34,34],floralwhite:[255,250,240],forestgreen:[34,139,34],fuchsia:[255,0,255],gainsboro:[220,220,220],ghostwhite:[248,248,255],gold:[255,215,0],goldenrod:[218,165,32],gray:[128,128,128],green:[0,128,0],greenyellow:[173,255,47],grey:[128,128,128],honeydew:[240,255,240],hotpink:[255,105,180],indianred:[205,92,92],indigo:[75,0,130],ivory:[255,255,240],khaki:[240,230,140],lavender:[230,230,250],lavenderblush:[255,240,245],lawngreen:[124,252,0],lemonchiffon:[255,250,205],lightblue:[173,216,230],lightcoral:[240,128,128],lightcyan:[224,255,255],lightgoldenrodyellow:[250,250,210],lightgray:[211,211,211],lightgreen:[144,238,144],lightgrey:[211,211,211],lightpink:[255,182,193],lightsalmon:[255,160,122],lightseagreen:[32,178,170],lightskyblue:[135,206,250],lightslategray:[119,136,153],lightslategrey:[119,136,153],lightsteelblue:[176,196,222],lightyellow:[255,255,224],lime:[0,255,0],limegreen:[50,205,50],linen:[250,240,230],magenta:[255,0,255],maroon:[128,0,0],mediumaquamarine:[102,205,170],mediumblue:[0,0,205],mediumorchid:[186,85,211],mediumpurple:[147,112,219],mediumseagreen:[60,179,113],mediumslateblue:[123,104,238],mediumspringgreen:[0,250,154],mediumturquoise:[72,209,204],mediumvioletred:[199,21,133],midnightblue:[25,25,112],mintcream:[245,255,250],mistyrose:[255,228,225],moccasin:[255,228,181],navajowhite:[255,222,173],navy:[0,0,128],oldlace:[253,245,230],olive:[128,128,0],olivedrab:[107,142,35],orange:[255,165,0],orangered:[255,69,0],orchid:[218,112,214],palegoldenrod:[238,232,170],palegreen:[152,251,152],paleturquoise:[175,238,238],palevioletred:[219,112,147],papayawhip:[255,239,213],peachpuff:[255,218,185],peru:[205,133,63],pink:[255,192,203],plum:[221,160,221],powderblue:[176,224,230],purple:[128,0,128],rebeccapurple:[102,51,153],red:[255,0,0],rosybrown:[188,143,143],royalblue:[65,105,225],saddlebrown:[139,69,19],salmon:[250,128,114],sandybrown:[244,164,96],seagreen:[46,139,87],seashell:[255,245,238],sienna:[160,82,45],silver:[192,192,192],skyblue:[135,206,235],slateblue:[106,90,205],slategray:[112,128,144],slategrey:[112,128,144],snow:[255,250,250],springgreen:[0,255,127],steelblue:[70,130,180],tan:[210,180,140],teal:[0,128,128],thistle:[216,191,216],tomato:[255,99,71],turquoise:[64,224,208],violet:[238,130,238],wheat:[245,222,179],white:[255,255,255],whitesmoke:[245,245,245],yellow:[255,255,0],yellowgreen:[154,205,50]},n=function(t,e){return t(e={exports:{}},e.exports),e.exports}((function(t){var n={};for(var i in e)e.hasOwnProperty(i)&&(n[e[i]]=i);var a=t.exports={rgb:{channels:3,labels:"rgb"},hsl:{channels:3,labels:"hsl"},hsv:{channels:3,labels:"hsv"},hwb:{channels:3,labels:"hwb"},cmyk:{channels:4,labels:"cmyk"},xyz:{channels:3,labels:"xyz"},lab:{channels:3,labels:"lab"},lch:{channels:3,labels:"lch"},hex:{channels:1,labels:["hex"]},keyword:{channels:1,labels:["keyword"]},ansi16:{channels:1,labels:["ansi16"]},ansi256:{channels:1,labels:["ansi256"]},hcg:{channels:3,labels:["h","c","g"]},apple:{channels:3,labels:["r16","g16","b16"]},gray:{channels:1,labels:["gray"]}};for(var r in a)if(a.hasOwnProperty(r)){if(!("channels"in a[r]))throw new Error("missing channels property: "+r);if(!("labels"in a[r]))throw new Error("missing channel labels property: "+r);if(a[r].labels.length!==a[r].channels)throw new Error("channel and label counts mismatch: "+r);var o=a[r].channels,s=a[r].labels;delete a[r].channels,delete a[r].labels,Object.defineProperty(a[r],"channels",{value:o}),Object.defineProperty(a[r],"labels",{value:s})}a.rgb.hsl=function(t){var e,n,i=t[0]/255,a=t[1]/255,r=t[2]/255,o=Math.min(i,a,r),s=Math.max(i,a,r),l=s-o;return s===o?e=0:i===s?e=(a-r)/l:a===s?e=2+(r-i)/l:r===s&&(e=4+(i-a)/l),(e=Math.min(60*e,360))<0&&(e+=360),n=(o+s)/2,[e,100*(s===o?0:n<=.5?l/(s+o):l/(2-s-o)),100*n]},a.rgb.hsv=function(t){var e,n,i,a,r,o=t[0]/255,s=t[1]/255,l=t[2]/255,u=Math.max(o,s,l),d=u-Math.min(o,s,l),h=function(t){return(u-t)/6/d+.5};return 0===d?a=r=0:(r=d/u,e=h(o),n=h(s),i=h(l),o===u?a=i-n:s===u?a=1/3+e-i:l===u&&(a=2/3+n-e),a<0?a+=1:a>1&&(a-=1)),[360*a,100*r,100*u]},a.rgb.hwb=function(t){var e=t[0],n=t[1],i=t[2];return[a.rgb.hsl(t)[0],100*(1/255*Math.min(e,Math.min(n,i))),100*(i=1-1/255*Math.max(e,Math.max(n,i)))]},a.rgb.cmyk=function(t){var e,n=t[0]/255,i=t[1]/255,a=t[2]/255;return[100*((1-n-(e=Math.min(1-n,1-i,1-a)))/(1-e)||0),100*((1-i-e)/(1-e)||0),100*((1-a-e)/(1-e)||0),100*e]},a.rgb.keyword=function(t){var i=n[t];if(i)return i;var a,r,o,s=1/0;for(var l in e)if(e.hasOwnProperty(l)){var u=e[l],d=(r=t,o=u,Math.pow(r[0]-o[0],2)+Math.pow(r[1]-o[1],2)+Math.pow(r[2]-o[2],2));d.04045?Math.pow((e+.055)/1.055,2.4):e/12.92)+.3576*(n=n>.04045?Math.pow((n+.055)/1.055,2.4):n/12.92)+.1805*(i=i>.04045?Math.pow((i+.055)/1.055,2.4):i/12.92)),100*(.2126*e+.7152*n+.0722*i),100*(.0193*e+.1192*n+.9505*i)]},a.rgb.lab=function(t){var e=a.rgb.xyz(t),n=e[0],i=e[1],r=e[2];return i/=100,r/=108.883,n=(n/=95.047)>.008856?Math.pow(n,1/3):7.787*n+16/116,[116*(i=i>.008856?Math.pow(i,1/3):7.787*i+16/116)-16,500*(n-i),200*(i-(r=r>.008856?Math.pow(r,1/3):7.787*r+16/116))]},a.hsl.rgb=function(t){var e,n,i,a,r,o=t[0]/360,s=t[1]/100,l=t[2]/100;if(0===s)return[r=255*l,r,r];e=2*l-(n=l<.5?l*(1+s):l+s-l*s),a=[0,0,0];for(var u=0;u<3;u++)(i=o+1/3*-(u-1))<0&&i++,i>1&&i--,r=6*i<1?e+6*(n-e)*i:2*i<1?n:3*i<2?e+(n-e)*(2/3-i)*6:e,a[u]=255*r;return a},a.hsl.hsv=function(t){var e=t[0],n=t[1]/100,i=t[2]/100,a=n,r=Math.max(i,.01);return n*=(i*=2)<=1?i:2-i,a*=r<=1?r:2-r,[e,100*(0===i?2*a/(r+a):2*n/(i+n)),100*((i+n)/2)]},a.hsv.rgb=function(t){var e=t[0]/60,n=t[1]/100,i=t[2]/100,a=Math.floor(e)%6,r=e-Math.floor(e),o=255*i*(1-n),s=255*i*(1-n*r),l=255*i*(1-n*(1-r));switch(i*=255,a){case 0:return[i,l,o];case 1:return[s,i,o];case 2:return[o,i,l];case 3:return[o,s,i];case 4:return[l,o,i];case 5:return[i,o,s]}},a.hsv.hsl=function(t){var e,n,i,a=t[0],r=t[1]/100,o=t[2]/100,s=Math.max(o,.01);return i=(2-r)*o,n=r*s,[a,100*(n=(n/=(e=(2-r)*s)<=1?e:2-e)||0),100*(i/=2)]},a.hwb.rgb=function(t){var e,n,i,a,r,o,s,l=t[0]/360,u=t[1]/100,d=t[2]/100,h=u+d;switch(h>1&&(u/=h,d/=h),i=6*l-(e=Math.floor(6*l)),0!=(1&e)&&(i=1-i),a=u+i*((n=1-d)-u),e){default:case 6:case 0:r=n,o=a,s=u;break;case 1:r=a,o=n,s=u;break;case 2:r=u,o=n,s=a;break;case 3:r=u,o=a,s=n;break;case 4:r=a,o=u,s=n;break;case 5:r=n,o=u,s=a}return[255*r,255*o,255*s]},a.cmyk.rgb=function(t){var e=t[0]/100,n=t[1]/100,i=t[2]/100,a=t[3]/100;return[255*(1-Math.min(1,e*(1-a)+a)),255*(1-Math.min(1,n*(1-a)+a)),255*(1-Math.min(1,i*(1-a)+a))]},a.xyz.rgb=function(t){var e,n,i,a=t[0]/100,r=t[1]/100,o=t[2]/100;return n=-.9689*a+1.8758*r+.0415*o,i=.0557*a+-.204*r+1.057*o,e=(e=3.2406*a+-1.5372*r+-.4986*o)>.0031308?1.055*Math.pow(e,1/2.4)-.055:12.92*e,n=n>.0031308?1.055*Math.pow(n,1/2.4)-.055:12.92*n,i=i>.0031308?1.055*Math.pow(i,1/2.4)-.055:12.92*i,[255*(e=Math.min(Math.max(0,e),1)),255*(n=Math.min(Math.max(0,n),1)),255*(i=Math.min(Math.max(0,i),1))]},a.xyz.lab=function(t){var e=t[0],n=t[1],i=t[2];return n/=100,i/=108.883,e=(e/=95.047)>.008856?Math.pow(e,1/3):7.787*e+16/116,[116*(n=n>.008856?Math.pow(n,1/3):7.787*n+16/116)-16,500*(e-n),200*(n-(i=i>.008856?Math.pow(i,1/3):7.787*i+16/116))]},a.lab.xyz=function(t){var e,n,i,a=t[0];e=t[1]/500+(n=(a+16)/116),i=n-t[2]/200;var r=Math.pow(n,3),o=Math.pow(e,3),s=Math.pow(i,3);return n=r>.008856?r:(n-16/116)/7.787,e=o>.008856?o:(e-16/116)/7.787,i=s>.008856?s:(i-16/116)/7.787,[e*=95.047,n*=100,i*=108.883]},a.lab.lch=function(t){var e,n=t[0],i=t[1],a=t[2];return(e=360*Math.atan2(a,i)/2/Math.PI)<0&&(e+=360),[n,Math.sqrt(i*i+a*a),e]},a.lch.lab=function(t){var e,n=t[0],i=t[1];return e=t[2]/360*2*Math.PI,[n,i*Math.cos(e),i*Math.sin(e)]},a.rgb.ansi16=function(t){var e=t[0],n=t[1],i=t[2],r=1 in arguments?arguments[1]:a.rgb.hsv(t)[2];if(0===(r=Math.round(r/50)))return 30;var o=30+(Math.round(i/255)<<2|Math.round(n/255)<<1|Math.round(e/255));return 2===r&&(o+=60),o},a.hsv.ansi16=function(t){return a.rgb.ansi16(a.hsv.rgb(t),t[2])},a.rgb.ansi256=function(t){var e=t[0],n=t[1],i=t[2];return e===n&&n===i?e<8?16:e>248?231:Math.round((e-8)/247*24)+232:16+36*Math.round(e/255*5)+6*Math.round(n/255*5)+Math.round(i/255*5)},a.ansi16.rgb=function(t){var e=t%10;if(0===e||7===e)return t>50&&(e+=3.5),[e=e/10.5*255,e,e];var n=.5*(1+~~(t>50));return[(1&e)*n*255,(e>>1&1)*n*255,(e>>2&1)*n*255]},a.ansi256.rgb=function(t){if(t>=232){var e=10*(t-232)+8;return[e,e,e]}var n;return t-=16,[Math.floor(t/36)/5*255,Math.floor((n=t%36)/6)/5*255,n%6/5*255]},a.rgb.hex=function(t){var e=(((255&Math.round(t[0]))<<16)+((255&Math.round(t[1]))<<8)+(255&Math.round(t[2]))).toString(16).toUpperCase();return"000000".substring(e.length)+e},a.hex.rgb=function(t){var e=t.toString(16).match(/[a-f0-9]{6}|[a-f0-9]{3}/i);if(!e)return[0,0,0];var n=e[0];3===e[0].length&&(n=n.split("").map((function(t){return t+t})).join(""));var i=parseInt(n,16);return[i>>16&255,i>>8&255,255&i]},a.rgb.hcg=function(t){var e,n=t[0]/255,i=t[1]/255,a=t[2]/255,r=Math.max(Math.max(n,i),a),o=Math.min(Math.min(n,i),a),s=r-o;return e=s<=0?0:r===n?(i-a)/s%6:r===i?2+(a-n)/s:4+(n-i)/s+4,e/=6,[360*(e%=1),100*s,100*(s<1?o/(1-s):0)]},a.hsl.hcg=function(t){var e=t[1]/100,n=t[2]/100,i=1,a=0;return(i=n<.5?2*e*n:2*e*(1-n))<1&&(a=(n-.5*i)/(1-i)),[t[0],100*i,100*a]},a.hsv.hcg=function(t){var e=t[1]/100,n=t[2]/100,i=e*n,a=0;return i<1&&(a=(n-i)/(1-i)),[t[0],100*i,100*a]},a.hcg.rgb=function(t){var e=t[0]/360,n=t[1]/100,i=t[2]/100;if(0===n)return[255*i,255*i,255*i];var a,r=[0,0,0],o=e%1*6,s=o%1,l=1-s;switch(Math.floor(o)){case 0:r[0]=1,r[1]=s,r[2]=0;break;case 1:r[0]=l,r[1]=1,r[2]=0;break;case 2:r[0]=0,r[1]=1,r[2]=s;break;case 3:r[0]=0,r[1]=l,r[2]=1;break;case 4:r[0]=s,r[1]=0,r[2]=1;break;default:r[0]=1,r[1]=0,r[2]=l}return a=(1-n)*i,[255*(n*r[0]+a),255*(n*r[1]+a),255*(n*r[2]+a)]},a.hcg.hsv=function(t){var e=t[1]/100,n=e+t[2]/100*(1-e),i=0;return n>0&&(i=e/n),[t[0],100*i,100*n]},a.hcg.hsl=function(t){var e=t[1]/100,n=t[2]/100*(1-e)+.5*e,i=0;return n>0&&n<.5?i=e/(2*n):n>=.5&&n<1&&(i=e/(2*(1-n))),[t[0],100*i,100*n]},a.hcg.hwb=function(t){var e=t[1]/100,n=e+t[2]/100*(1-e);return[t[0],100*(n-e),100*(1-n)]},a.hwb.hcg=function(t){var e=t[1]/100,n=1-t[2]/100,i=n-e,a=0;return i<1&&(a=(n-i)/(1-i)),[t[0],100*i,100*a]},a.apple.rgb=function(t){return[t[0]/65535*255,t[1]/65535*255,t[2]/65535*255]},a.rgb.apple=function(t){return[t[0]/255*65535,t[1]/255*65535,t[2]/255*65535]},a.gray.rgb=function(t){return[t[0]/100*255,t[0]/100*255,t[0]/100*255]},a.gray.hsl=a.gray.hsv=function(t){return[0,0,t[0]]},a.gray.hwb=function(t){return[0,100,t[0]]},a.gray.cmyk=function(t){return[0,0,0,t[0]]},a.gray.lab=function(t){return[t[0],0,0]},a.gray.hex=function(t){var e=255&Math.round(t[0]/100*255),n=((e<<16)+(e<<8)+e).toString(16).toUpperCase();return"000000".substring(n.length)+n},a.rgb.gray=function(t){return[(t[0]+t[1]+t[2])/3/255*100]}}));n.rgb,n.hsl,n.hsv,n.hwb,n.cmyk,n.xyz,n.lab,n.lch,n.hex,n.keyword,n.ansi16,n.ansi256,n.hcg,n.apple,n.gray;function i(t){var e=function(){for(var t={},e=Object.keys(n),i=e.length,a=0;a1&&(e=Array.prototype.slice.call(arguments));var n=t(e);if("object"==typeof n)for(var i=n.length,a=0;a1&&(e=Array.prototype.slice.call(arguments)),t(e))};return"conversion"in t&&(e.conversion=t.conversion),e}(i)}))}));var s=o,l={aliceblue:[240,248,255],antiquewhite:[250,235,215],aqua:[0,255,255],aquamarine:[127,255,212],azure:[240,255,255],beige:[245,245,220],bisque:[255,228,196],black:[0,0,0],blanchedalmond:[255,235,205],blue:[0,0,255],blueviolet:[138,43,226],brown:[165,42,42],burlywood:[222,184,135],cadetblue:[95,158,160],chartreuse:[127,255,0],chocolate:[210,105,30],coral:[255,127,80],cornflowerblue:[100,149,237],cornsilk:[255,248,220],crimson:[220,20,60],cyan:[0,255,255],darkblue:[0,0,139],darkcyan:[0,139,139],darkgoldenrod:[184,134,11],darkgray:[169,169,169],darkgreen:[0,100,0],darkgrey:[169,169,169],darkkhaki:[189,183,107],darkmagenta:[139,0,139],darkolivegreen:[85,107,47],darkorange:[255,140,0],darkorchid:[153,50,204],darkred:[139,0,0],darksalmon:[233,150,122],darkseagreen:[143,188,143],darkslateblue:[72,61,139],darkslategray:[47,79,79],darkslategrey:[47,79,79],darkturquoise:[0,206,209],darkviolet:[148,0,211],deeppink:[255,20,147],deepskyblue:[0,191,255],dimgray:[105,105,105],dimgrey:[105,105,105],dodgerblue:[30,144,255],firebrick:[178,34,34],floralwhite:[255,250,240],forestgreen:[34,139,34],fuchsia:[255,0,255],gainsboro:[220,220,220],ghostwhite:[248,248,255],gold:[255,215,0],goldenrod:[218,165,32],gray:[128,128,128],green:[0,128,0],greenyellow:[173,255,47],grey:[128,128,128],honeydew:[240,255,240],hotpink:[255,105,180],indianred:[205,92,92],indigo:[75,0,130],ivory:[255,255,240],khaki:[240,230,140],lavender:[230,230,250],lavenderblush:[255,240,245],lawngreen:[124,252,0],lemonchiffon:[255,250,205],lightblue:[173,216,230],lightcoral:[240,128,128],lightcyan:[224,255,255],lightgoldenrodyellow:[250,250,210],lightgray:[211,211,211],lightgreen:[144,238,144],lightgrey:[211,211,211],lightpink:[255,182,193],lightsalmon:[255,160,122],lightseagreen:[32,178,170],lightskyblue:[135,206,250],lightslategray:[119,136,153],lightslategrey:[119,136,153],lightsteelblue:[176,196,222],lightyellow:[255,255,224],lime:[0,255,0],limegreen:[50,205,50],linen:[250,240,230],magenta:[255,0,255],maroon:[128,0,0],mediumaquamarine:[102,205,170],mediumblue:[0,0,205],mediumorchid:[186,85,211],mediumpurple:[147,112,219],mediumseagreen:[60,179,113],mediumslateblue:[123,104,238],mediumspringgreen:[0,250,154],mediumturquoise:[72,209,204],mediumvioletred:[199,21,133],midnightblue:[25,25,112],mintcream:[245,255,250],mistyrose:[255,228,225],moccasin:[255,228,181],navajowhite:[255,222,173],navy:[0,0,128],oldlace:[253,245,230],olive:[128,128,0],olivedrab:[107,142,35],orange:[255,165,0],orangered:[255,69,0],orchid:[218,112,214],palegoldenrod:[238,232,170],palegreen:[152,251,152],paleturquoise:[175,238,238],palevioletred:[219,112,147],papayawhip:[255,239,213],peachpuff:[255,218,185],peru:[205,133,63],pink:[255,192,203],plum:[221,160,221],powderblue:[176,224,230],purple:[128,0,128],rebeccapurple:[102,51,153],red:[255,0,0],rosybrown:[188,143,143],royalblue:[65,105,225],saddlebrown:[139,69,19],salmon:[250,128,114],sandybrown:[244,164,96],seagreen:[46,139,87],seashell:[255,245,238],sienna:[160,82,45],silver:[192,192,192],skyblue:[135,206,235],slateblue:[106,90,205],slategray:[112,128,144],slategrey:[112,128,144],snow:[255,250,250],springgreen:[0,255,127],steelblue:[70,130,180],tan:[210,180,140],teal:[0,128,128],thistle:[216,191,216],tomato:[255,99,71],turquoise:[64,224,208],violet:[238,130,238],wheat:[245,222,179],white:[255,255,255],whitesmoke:[245,245,245],yellow:[255,255,0],yellowgreen:[154,205,50]},u={getRgba:d,getHsla:h,getRgb:function(t){var e=d(t);return e&&e.slice(0,3)},getHsl:function(t){var e=h(t);return e&&e.slice(0,3)},getHwb:c,getAlpha:function(t){var e=d(t);if(e)return e[3];if(e=h(t))return e[3];if(e=c(t))return e[3]},hexString:function(t,e){e=void 0!==e&&3===t.length?e:t[3];return"#"+v(t[0])+v(t[1])+v(t[2])+(e>=0&&e<1?v(Math.round(255*e)):"")},rgbString:function(t,e){if(e<1||t[3]&&t[3]<1)return f(t,e);return"rgb("+t[0]+", "+t[1]+", "+t[2]+")"},rgbaString:f,percentString:function(t,e){if(e<1||t[3]&&t[3]<1)return g(t,e);var n=Math.round(t[0]/255*100),i=Math.round(t[1]/255*100),a=Math.round(t[2]/255*100);return"rgb("+n+"%, "+i+"%, "+a+"%)"},percentaString:g,hslString:function(t,e){if(e<1||t[3]&&t[3]<1)return p(t,e);return"hsl("+t[0]+", "+t[1]+"%, "+t[2]+"%)"},hslaString:p,hwbString:function(t,e){void 0===e&&(e=void 0!==t[3]?t[3]:1);return"hwb("+t[0]+", "+t[1]+"%, "+t[2]+"%"+(void 0!==e&&1!==e?", "+e:"")+")"},keyword:function(t){return b[t.slice(0,3)]}};function d(t){if(t){var e=[0,0,0],n=1,i=t.match(/^#([a-fA-F0-9]{3,4})$/i),a="";if(i){a=(i=i[1])[3];for(var r=0;rn?(e+.05)/(n+.05):(n+.05)/(e+.05)},level:function(t){var e=this.contrast(t);return e>=7.1?"AAA":e>=4.5?"AA":""},dark:function(){var t=this.values.rgb;return(299*t[0]+587*t[1]+114*t[2])/1e3<128},light:function(){return!this.dark()},negate:function(){for(var t=[],e=0;e<3;e++)t[e]=255-this.values.rgb[e];return this.setValues("rgb",t),this},lighten:function(t){var e=this.values.hsl;return e[2]+=e[2]*t,this.setValues("hsl",e),this},darken:function(t){var e=this.values.hsl;return e[2]-=e[2]*t,this.setValues("hsl",e),this},saturate:function(t){var e=this.values.hsl;return e[1]+=e[1]*t,this.setValues("hsl",e),this},desaturate:function(t){var e=this.values.hsl;return e[1]-=e[1]*t,this.setValues("hsl",e),this},whiten:function(t){var e=this.values.hwb;return e[1]+=e[1]*t,this.setValues("hwb",e),this},blacken:function(t){var e=this.values.hwb;return e[2]+=e[2]*t,this.setValues("hwb",e),this},greyscale:function(){var t=this.values.rgb,e=.3*t[0]+.59*t[1]+.11*t[2];return this.setValues("rgb",[e,e,e]),this},clearer:function(t){var e=this.values.alpha;return this.setValues("alpha",e-e*t),this},opaquer:function(t){var e=this.values.alpha;return this.setValues("alpha",e+e*t),this},rotate:function(t){var e=this.values.hsl,n=(e[0]+t)%360;return e[0]=n<0?360+n:n,this.setValues("hsl",e),this},mix:function(t,e){var n=t,i=void 0===e?.5:e,a=2*i-1,r=this.alpha()-n.alpha(),o=((a*r==-1?a:(a+r)/(1+a*r))+1)/2,s=1-o;return this.rgb(o*this.red()+s*n.red(),o*this.green()+s*n.green(),o*this.blue()+s*n.blue()).alpha(this.alpha()*i+n.alpha()*(1-i))},toJSON:function(){return this.rgb()},clone:function(){var t,e,n=new y,i=this.values,a=n.values;for(var r in i)i.hasOwnProperty(r)&&(t=i[r],"[object Array]"===(e={}.toString.call(t))?a[r]=t.slice(0):"[object Number]"===e?a[r]=t:console.error("unexpected color value:",t));return n}},y.prototype.spaces={rgb:["red","green","blue"],hsl:["hue","saturation","lightness"],hsv:["hue","saturation","value"],hwb:["hue","whiteness","blackness"],cmyk:["cyan","magenta","yellow","black"]},y.prototype.maxes={rgb:[255,255,255],hsl:[360,100,100],hsv:[360,100,100],hwb:[360,100,100],cmyk:[100,100,100,100]},y.prototype.getValues=function(t){for(var e=this.values,n={},i=0;i=0;a--)e.call(n,t[a],a);else for(a=0;a=1?t:-(Math.sqrt(1-t*t)-1)},easeOutCirc:function(t){return Math.sqrt(1-(t-=1)*t)},easeInOutCirc:function(t){return(t/=.5)<1?-.5*(Math.sqrt(1-t*t)-1):.5*(Math.sqrt(1-(t-=2)*t)+1)},easeInElastic:function(t){var e=1.70158,n=0,i=1;return 0===t?0:1===t?1:(n||(n=.3),i<1?(i=1,e=n/4):e=n/(2*Math.PI)*Math.asin(1/i),-i*Math.pow(2,10*(t-=1))*Math.sin((t-e)*(2*Math.PI)/n))},easeOutElastic:function(t){var e=1.70158,n=0,i=1;return 0===t?0:1===t?1:(n||(n=.3),i<1?(i=1,e=n/4):e=n/(2*Math.PI)*Math.asin(1/i),i*Math.pow(2,-10*t)*Math.sin((t-e)*(2*Math.PI)/n)+1)},easeInOutElastic:function(t){var e=1.70158,n=0,i=1;return 0===t?0:2==(t/=.5)?1:(n||(n=.45),i<1?(i=1,e=n/4):e=n/(2*Math.PI)*Math.asin(1/i),t<1?i*Math.pow(2,10*(t-=1))*Math.sin((t-e)*(2*Math.PI)/n)*-.5:i*Math.pow(2,-10*(t-=1))*Math.sin((t-e)*(2*Math.PI)/n)*.5+1)},easeInBack:function(t){var e=1.70158;return t*t*((e+1)*t-e)},easeOutBack:function(t){var e=1.70158;return(t-=1)*t*((e+1)*t+e)+1},easeInOutBack:function(t){var e=1.70158;return(t/=.5)<1?t*t*((1+(e*=1.525))*t-e)*.5:.5*((t-=2)*t*((1+(e*=1.525))*t+e)+2)},easeInBounce:function(t){return 1-S.easeOutBounce(1-t)},easeOutBounce:function(t){return t<1/2.75?7.5625*t*t:t<2/2.75?7.5625*(t-=1.5/2.75)*t+.75:t<2.5/2.75?7.5625*(t-=2.25/2.75)*t+.9375:7.5625*(t-=2.625/2.75)*t+.984375},easeInOutBounce:function(t){return t<.5?.5*S.easeInBounce(2*t):.5*S.easeOutBounce(2*t-1)+.5}},C={effects:S};M.easingEffects=S;var P=Math.PI,A=P/180,D=2*P,T=P/2,I=P/4,F=2*P/3,L={clear:function(t){t.ctx.clearRect(0,0,t.width,t.height)},roundedRect:function(t,e,n,i,a,r){if(r){var o=Math.min(r,a/2,i/2),s=e+o,l=n+o,u=e+i-o,d=n+a-o;t.moveTo(e,l),se.left-1e-6&&t.xe.top-1e-6&&t.y0&&this.requestAnimationFrame()},advance:function(){for(var t,e,n,i,a=this.animations,r=0;r=n?(V.callback(t.onAnimationComplete,[t],e),e.animating=!1,a.splice(r,1)):++r}},J=V.options.resolve,Q=["push","pop","shift","splice","unshift"];function tt(t,e){var n=t._chartjs;if(n){var i=n.listeners,a=i.indexOf(e);-1!==a&&i.splice(a,1),i.length>0||(Q.forEach((function(e){delete t[e]})),delete t._chartjs)}}var et=function(t,e){this.initialize(t,e)};V.extend(et.prototype,{datasetElementType:null,dataElementType:null,_datasetElementOptions:["backgroundColor","borderCapStyle","borderColor","borderDash","borderDashOffset","borderJoinStyle","borderWidth"],_dataElementOptions:["backgroundColor","borderColor","borderWidth","pointStyle"],initialize:function(t,e){var n=this;n.chart=t,n.index=e,n.linkScales(),n.addElements(),n._type=n.getMeta().type},updateIndex:function(t){this.index=t},linkScales:function(){var t=this.getMeta(),e=this.chart,n=e.scales,i=this.getDataset(),a=e.options.scales;null!==t.xAxisID&&t.xAxisID in n&&!i.xAxisID||(t.xAxisID=i.xAxisID||a.xAxes[0].id),null!==t.yAxisID&&t.yAxisID in n&&!i.yAxisID||(t.yAxisID=i.yAxisID||a.yAxes[0].id)},getDataset:function(){return this.chart.data.datasets[this.index]},getMeta:function(){return this.chart.getDatasetMeta(this.index)},getScaleForId:function(t){return this.chart.scales[t]},_getValueScaleId:function(){return this.getMeta().yAxisID},_getIndexScaleId:function(){return this.getMeta().xAxisID},_getValueScale:function(){return this.getScaleForId(this._getValueScaleId())},_getIndexScale:function(){return this.getScaleForId(this._getIndexScaleId())},reset:function(){this._update(!0)},destroy:function(){this._data&&tt(this._data,this)},createMetaDataset:function(){var t=this.datasetElementType;return t&&new t({_chart:this.chart,_datasetIndex:this.index})},createMetaData:function(t){var e=this.dataElementType;return e&&new e({_chart:this.chart,_datasetIndex:this.index,_index:t})},addElements:function(){var t,e,n=this.getMeta(),i=this.getDataset().data||[],a=n.data;for(t=0,e=i.length;tn&&this.insertElements(n,i-n)},insertElements:function(t,e){for(var n=0;na?(r=a/e.innerRadius,t.arc(o,s,e.innerRadius-a,i+r,n-r,!0)):t.arc(o,s,a,i+Math.PI/2,n-Math.PI/2),t.closePath(),t.clip()}function rt(t,e,n){var i="inner"===e.borderAlign;i?(t.lineWidth=2*e.borderWidth,t.lineJoin="round"):(t.lineWidth=e.borderWidth,t.lineJoin="bevel"),n.fullCircles&&function(t,e,n,i){var a,r=n.endAngle;for(i&&(n.endAngle=n.startAngle+it,at(t,n),n.endAngle=r,n.endAngle===n.startAngle&&n.fullCircles&&(n.endAngle+=it,n.fullCircles--)),t.beginPath(),t.arc(n.x,n.y,n.innerRadius,n.startAngle+it,n.startAngle,!0),a=0;as;)a-=it;for(;a=o&&a<=s,u=r>=n.innerRadius&&r<=n.outerRadius;return l&&u}return!1},getCenterPoint:function(){var t=this._view,e=(t.startAngle+t.endAngle)/2,n=(t.innerRadius+t.outerRadius)/2;return{x:t.x+Math.cos(e)*n,y:t.y+Math.sin(e)*n}},getArea:function(){var t=this._view;return Math.PI*((t.endAngle-t.startAngle)/(2*Math.PI))*(Math.pow(t.outerRadius,2)-Math.pow(t.innerRadius,2))},tooltipPosition:function(){var t=this._view,e=t.startAngle+(t.endAngle-t.startAngle)/2,n=(t.outerRadius-t.innerRadius)/2+t.innerRadius;return{x:t.x+Math.cos(e)*n,y:t.y+Math.sin(e)*n}},draw:function(){var t,e=this._chart.ctx,n=this._view,i="inner"===n.borderAlign?.33:0,a={x:n.x,y:n.y,innerRadius:n.innerRadius,outerRadius:Math.max(n.outerRadius-i,0),pixelMargin:i,startAngle:n.startAngle,endAngle:n.endAngle,fullCircles:Math.floor(n.circumference/it)};if(e.save(),e.fillStyle=n.backgroundColor,e.strokeStyle=n.borderColor,a.fullCircles){for(a.endAngle=a.startAngle+it,e.beginPath(),e.arc(a.x,a.y,a.outerRadius,a.startAngle,a.endAngle),e.arc(a.x,a.y,a.innerRadius,a.endAngle,a.startAngle,!0),e.closePath(),t=0;tt.x&&(e=vt(e,"left","right")):t.basen?n:i,r:l.right||a<0?0:a>e?e:a,b:l.bottom||r<0?0:r>n?n:r,l:l.left||o<0?0:o>e?e:o}}function xt(t,e,n){var i=null===e,a=null===n,r=!(!t||i&&a)&&mt(t);return r&&(i||e>=r.left&&e<=r.right)&&(a||n>=r.top&&n<=r.bottom)}z._set("global",{elements:{rectangle:{backgroundColor:gt,borderColor:gt,borderSkipped:"bottom",borderWidth:0}}});var yt=X.extend({_type:"rectangle",draw:function(){var t=this._chart.ctx,e=this._view,n=function(t){var e=mt(t),n=e.right-e.left,i=e.bottom-e.top,a=bt(t,n/2,i/2);return{outer:{x:e.left,y:e.top,w:n,h:i},inner:{x:e.left+a.l,y:e.top+a.t,w:n-a.l-a.r,h:i-a.t-a.b}}}(e),i=n.outer,a=n.inner;t.fillStyle=e.backgroundColor,t.fillRect(i.x,i.y,i.w,i.h),i.w===a.w&&i.h===a.h||(t.save(),t.beginPath(),t.rect(i.x,i.y,i.w,i.h),t.clip(),t.fillStyle=e.borderColor,t.rect(a.x,a.y,a.w,a.h),t.fill("evenodd"),t.restore())},height:function(){var t=this._view;return t.base-t.y},inRange:function(t,e){return xt(this._view,t,e)},inLabelRange:function(t,e){var n=this._view;return pt(n)?xt(n,t,null):xt(n,null,e)},inXRange:function(t){return xt(this._view,t,null)},inYRange:function(t){return xt(this._view,null,t)},getCenterPoint:function(){var t,e,n=this._view;return pt(n)?(t=n.x,e=(n.y+n.base)/2):(t=(n.x+n.base)/2,e=n.y),{x:t,y:e}},getArea:function(){var t=this._view;return pt(t)?t.width*Math.abs(t.y-t.base):t.height*Math.abs(t.x-t.base)},tooltipPosition:function(){var t=this._view;return{x:t.x,y:t.y}}}),_t={},kt=ot,wt=ut,Mt=ft,St=yt;_t.Arc=kt,_t.Line=wt,_t.Point=Mt,_t.Rectangle=St;var Ct=V._deprecated,Pt=V.valueOrDefault;function At(t,e,n){var i,a,r=n.barThickness,o=e.stackCount,s=e.pixels[t],l=V.isNullOrUndef(r)?function(t,e){var n,i,a,r,o=t._length;for(a=1,r=e.length;a0?Math.min(o,Math.abs(i-n)):o,n=i;return o}(e.scale,e.pixels):-1;return V.isNullOrUndef(r)?(i=l*n.categoryPercentage,a=n.barPercentage):(i=r*o,a=1),{chunk:i/o,ratio:a,start:s-i/2}}z._set("bar",{hover:{mode:"label"},scales:{xAxes:[{type:"category",offset:!0,gridLines:{offsetGridLines:!0}}],yAxes:[{type:"linear"}]}}),z._set("global",{datasets:{bar:{categoryPercentage:.8,barPercentage:.9}}});var Dt=nt.extend({dataElementType:_t.Rectangle,_dataElementOptions:["backgroundColor","borderColor","borderSkipped","borderWidth","barPercentage","barThickness","categoryPercentage","maxBarThickness","minBarLength"],initialize:function(){var t,e,n=this;nt.prototype.initialize.apply(n,arguments),(t=n.getMeta()).stack=n.getDataset().stack,t.bar=!0,e=n._getIndexScale().options,Ct("bar chart",e.barPercentage,"scales.[x/y]Axes.barPercentage","dataset.barPercentage"),Ct("bar chart",e.barThickness,"scales.[x/y]Axes.barThickness","dataset.barThickness"),Ct("bar chart",e.categoryPercentage,"scales.[x/y]Axes.categoryPercentage","dataset.categoryPercentage"),Ct("bar chart",n._getValueScale().options.minBarLength,"scales.[x/y]Axes.minBarLength","dataset.minBarLength"),Ct("bar chart",e.maxBarThickness,"scales.[x/y]Axes.maxBarThickness","dataset.maxBarThickness")},update:function(t){var e,n,i=this.getMeta().data;for(this._ruler=this.getRuler(),e=0,n=i.length;e=0&&p.min>=0?p.min:p.max,y=void 0===p.start?p.end:p.max>=0&&p.min>=0?p.max-p.min:p.min-p.max,_=g.length;if(v||void 0===v&&void 0!==b)for(i=0;i<_&&(a=g[i]).index!==t;++i)a.stack===b&&(r=void 0===(u=h._parseValue(f[a.index].data[e])).start?u.end:u.min>=0&&u.max>=0?u.max:u.min,(p.min<0&&r<0||p.max>=0&&r>0)&&(x+=r));return o=h.getPixelForValue(x),l=(s=h.getPixelForValue(x+y))-o,void 0!==m&&Math.abs(l)=0&&!c||y<0&&c?o-m:o+m),{size:l,base:o,head:s,center:s+l/2}},calculateBarIndexPixels:function(t,e,n,i){var a="flex"===i.barThickness?function(t,e,n){var i,a=e.pixels,r=a[t],o=t>0?a[t-1]:null,s=t=Ot?-Rt:b<-Ot?Rt:0)+m,y=Math.cos(b),_=Math.sin(b),k=Math.cos(x),w=Math.sin(x),M=b<=0&&x>=0||x>=Rt,S=b<=zt&&x>=zt||x>=Rt+zt,C=b<=-zt&&x>=-zt||x>=Ot+zt,P=b===-Ot||x>=Ot?-1:Math.min(y,y*p,k,k*p),A=C?-1:Math.min(_,_*p,w,w*p),D=M?1:Math.max(y,y*p,k,k*p),T=S?1:Math.max(_,_*p,w,w*p);u=(D-P)/2,d=(T-A)/2,h=-(D+P)/2,c=-(T+A)/2}for(i=0,a=g.length;i0&&!isNaN(t)?Rt*(Math.abs(t)/e):0},getMaxBorderWidth:function(t){var e,n,i,a,r,o,s,l,u=0,d=this.chart;if(!t)for(e=0,n=d.data.datasets.length;e(u=s>u?s:u)?l:u);return u},setHoverStyle:function(t){var e=t._model,n=t._options,i=V.getHoverColor;t.$previousStyle={backgroundColor:e.backgroundColor,borderColor:e.borderColor,borderWidth:e.borderWidth},e.backgroundColor=Lt(n.hoverBackgroundColor,i(n.backgroundColor)),e.borderColor=Lt(n.hoverBorderColor,i(n.borderColor)),e.borderWidth=Lt(n.hoverBorderWidth,n.borderWidth)},_getRingWeightOffset:function(t){for(var e=0,n=0;n0&&Vt(l[t-1]._model,s)&&(n.controlPointPreviousX=u(n.controlPointPreviousX,s.left,s.right),n.controlPointPreviousY=u(n.controlPointPreviousY,s.top,s.bottom)),t0&&(r=t.getDatasetMeta(r[0]._datasetIndex).data),r},"x-axis":function(t,e){return ie(t,e,{intersect:!1})},point:function(t,e){return te(t,Jt(e,t))},nearest:function(t,e,n){var i=Jt(e,t);n.axis=n.axis||"xy";var a=ne(n.axis);return ee(t,i,n.intersect,a)},x:function(t,e,n){var i=Jt(e,t),a=[],r=!1;return Qt(t,(function(t){t.inXRange(i.x)&&a.push(t),t.inRange(i.x,i.y)&&(r=!0)})),n.intersect&&!r&&(a=[]),a},y:function(t,e,n){var i=Jt(e,t),a=[],r=!1;return Qt(t,(function(t){t.inYRange(i.y)&&a.push(t),t.inRange(i.x,i.y)&&(r=!0)})),n.intersect&&!r&&(a=[]),a}}},re=V.extend;function oe(t,e){return V.where(t,(function(t){return t.pos===e}))}function se(t,e){return t.sort((function(t,n){var i=e?n:t,a=e?t:n;return i.weight===a.weight?i.index-a.index:i.weight-a.weight}))}function le(t,e,n,i){return Math.max(t[n],e[n])+Math.max(t[i],e[i])}function ue(t,e,n){var i,a,r=n.box,o=t.maxPadding;if(n.size&&(t[n.pos]-=n.size),n.size=n.horizontal?r.height:r.width,t[n.pos]+=n.size,r.getPadding){var s=r.getPadding();o.top=Math.max(o.top,s.top),o.left=Math.max(o.left,s.left),o.bottom=Math.max(o.bottom,s.bottom),o.right=Math.max(o.right,s.right)}if(i=e.outerWidth-le(o,t,"left","right"),a=e.outerHeight-le(o,t,"top","bottom"),i!==t.w||a!==t.h)return t.w=i,t.h=a,n.horizontal?i!==t.w:a!==t.h}function de(t,e){var n=e.maxPadding;function i(t){var i={left:0,top:0,right:0,bottom:0};return t.forEach((function(t){i[t]=Math.max(e[t],n[t])})),i}return i(t?["left","right"]:["top","bottom"])}function he(t,e,n){var i,a,r,o,s,l,u=[];for(i=0,a=t.length;idiv{position:absolute;width:1000000px;height:1000000px;left:0;top:0}.chartjs-size-monitor-shrink>div{position:absolute;width:200%;height:200%;left:0;top:0}"}))&&fe.default||fe,me="$chartjs",ve="chartjs-size-monitor",be="chartjs-render-monitor",xe="chartjs-render-animation",ye=["animationstart","webkitAnimationStart"],_e={touchstart:"mousedown",touchmove:"mousemove",touchend:"mouseup",pointerenter:"mouseenter",pointerdown:"mousedown",pointermove:"mousemove",pointerup:"mouseup",pointerleave:"mouseout",pointerout:"mouseout"};function ke(t,e){var n=V.getStyle(t,e),i=n&&n.match(/^(\d+)(\.\d+)?px$/);return i?Number(i[1]):void 0}var we=!!function(){var t=!1;try{var e=Object.defineProperty({},"passive",{get:function(){t=!0}});window.addEventListener("e",null,e)}catch(t){}return t}()&&{passive:!0};function Me(t,e,n){t.addEventListener(e,n,we)}function Se(t,e,n){t.removeEventListener(e,n,we)}function Ce(t,e,n,i,a){return{type:t,chart:e,native:a||null,x:void 0!==n?n:null,y:void 0!==i?i:null}}function Pe(t){var e=document.createElement("div");return e.className=t||"",e}function Ae(t,e,n){var i,a,r,o,s=t[me]||(t[me]={}),l=s.resizer=function(t){var e=Pe(ve),n=Pe(ve+"-expand"),i=Pe(ve+"-shrink");n.appendChild(Pe()),i.appendChild(Pe()),e.appendChild(n),e.appendChild(i),e._reset=function(){n.scrollLeft=1e6,n.scrollTop=1e6,i.scrollLeft=1e6,i.scrollTop=1e6};var a=function(){e._reset(),t()};return Me(n,"scroll",a.bind(n,"expand")),Me(i,"scroll",a.bind(i,"shrink")),e}((i=function(){if(s.resizer){var i=n.options.maintainAspectRatio&&t.parentNode,a=i?i.clientWidth:0;e(Ce("resize",n)),i&&i.clientWidth0){var r=t[0];r.label?n=r.label:r.xLabel?n=r.xLabel:a>0&&r.index-1?t.split("\n"):t}function We(t){var e=z.global;return{xPadding:t.xPadding,yPadding:t.yPadding,xAlign:t.xAlign,yAlign:t.yAlign,rtl:t.rtl,textDirection:t.textDirection,bodyFontColor:t.bodyFontColor,_bodyFontFamily:Re(t.bodyFontFamily,e.defaultFontFamily),_bodyFontStyle:Re(t.bodyFontStyle,e.defaultFontStyle),_bodyAlign:t.bodyAlign,bodyFontSize:Re(t.bodyFontSize,e.defaultFontSize),bodySpacing:t.bodySpacing,titleFontColor:t.titleFontColor,_titleFontFamily:Re(t.titleFontFamily,e.defaultFontFamily),_titleFontStyle:Re(t.titleFontStyle,e.defaultFontStyle),titleFontSize:Re(t.titleFontSize,e.defaultFontSize),_titleAlign:t.titleAlign,titleSpacing:t.titleSpacing,titleMarginBottom:t.titleMarginBottom,footerFontColor:t.footerFontColor,_footerFontFamily:Re(t.footerFontFamily,e.defaultFontFamily),_footerFontStyle:Re(t.footerFontStyle,e.defaultFontStyle),footerFontSize:Re(t.footerFontSize,e.defaultFontSize),_footerAlign:t.footerAlign,footerSpacing:t.footerSpacing,footerMarginTop:t.footerMarginTop,caretSize:t.caretSize,cornerRadius:t.cornerRadius,backgroundColor:t.backgroundColor,opacity:0,legendColorBackground:t.multiKeyBackground,displayColors:t.displayColors,borderColor:t.borderColor,borderWidth:t.borderWidth}}function Ve(t,e){return"center"===e?t.x+t.width/2:"right"===e?t.x+t.width-t.xPadding:t.x+t.xPadding}function He(t){return Be([],Ee(t))}var je=X.extend({initialize:function(){this._model=We(this._options),this._lastActive=[]},getTitle:function(){var t=this,e=t._options,n=e.callbacks,i=n.beforeTitle.apply(t,arguments),a=n.title.apply(t,arguments),r=n.afterTitle.apply(t,arguments),o=[];return o=Be(o,Ee(i)),o=Be(o,Ee(a)),o=Be(o,Ee(r))},getBeforeBody:function(){return He(this._options.callbacks.beforeBody.apply(this,arguments))},getBody:function(t,e){var n=this,i=n._options.callbacks,a=[];return V.each(t,(function(t){var r={before:[],lines:[],after:[]};Be(r.before,Ee(i.beforeLabel.call(n,t,e))),Be(r.lines,i.label.call(n,t,e)),Be(r.after,Ee(i.afterLabel.call(n,t,e))),a.push(r)})),a},getAfterBody:function(){return He(this._options.callbacks.afterBody.apply(this,arguments))},getFooter:function(){var t=this,e=t._options.callbacks,n=e.beforeFooter.apply(t,arguments),i=e.footer.apply(t,arguments),a=e.afterFooter.apply(t,arguments),r=[];return r=Be(r,Ee(n)),r=Be(r,Ee(i)),r=Be(r,Ee(a))},update:function(t){var e,n,i,a,r,o,s,l,u,d,h=this,c=h._options,f=h._model,g=h._model=We(c),p=h._active,m=h._data,v={xAlign:f.xAlign,yAlign:f.yAlign},b={x:f.x,y:f.y},x={width:f.width,height:f.height},y={x:f.caretX,y:f.caretY};if(p.length){g.opacity=1;var _=[],k=[];y=Ne[c.position].call(h,p,h._eventPosition);var w=[];for(e=0,n=p.length;ei.width&&(a=i.width-e.width),a<0&&(a=0)),"top"===d?r+=h:r-="bottom"===d?e.height+h:e.height/2,"center"===d?"left"===u?a+=h:"right"===u&&(a-=h):"left"===u?a-=c:"right"===u&&(a+=c),{x:a,y:r}}(g,x,v=function(t,e){var n,i,a,r,o,s=t._model,l=t._chart,u=t._chart.chartArea,d="center",h="center";s.yl.height-e.height&&(h="bottom");var c=(u.left+u.right)/2,f=(u.top+u.bottom)/2;"center"===h?(n=function(t){return t<=c},i=function(t){return t>c}):(n=function(t){return t<=e.width/2},i=function(t){return t>=l.width-e.width/2}),a=function(t){return t+e.width+s.caretSize+s.caretPadding>l.width},r=function(t){return t-e.width-s.caretSize-s.caretPadding<0},o=function(t){return t<=f?"top":"bottom"},n(s.x)?(d="left",a(s.x)&&(d="center",h=o(s.y))):i(s.x)&&(d="right",r(s.x)&&(d="center",h=o(s.y)));var g=t._options;return{xAlign:g.xAlign?g.xAlign:d,yAlign:g.yAlign?g.yAlign:h}}(this,x),h._chart)}else g.opacity=0;return g.xAlign=v.xAlign,g.yAlign=v.yAlign,g.x=b.x,g.y=b.y,g.width=x.width,g.height=x.height,g.caretX=y.x,g.caretY=y.y,h._model=g,t&&c.custom&&c.custom.call(h,g),h},drawCaret:function(t,e){var n=this._chart.ctx,i=this._view,a=this.getCaretPosition(t,e,i);n.lineTo(a.x1,a.y1),n.lineTo(a.x2,a.y2),n.lineTo(a.x3,a.y3)},getCaretPosition:function(t,e,n){var i,a,r,o,s,l,u=n.caretSize,d=n.cornerRadius,h=n.xAlign,c=n.yAlign,f=t.x,g=t.y,p=e.width,m=e.height;if("center"===c)s=g+m/2,"left"===h?(a=(i=f)-u,r=i,o=s+u,l=s-u):(a=(i=f+p)+u,r=i,o=s-u,l=s+u);else if("left"===h?(i=(a=f+d+u)-u,r=a+u):"right"===h?(i=(a=f+p-d-u)-u,r=a+u):(i=(a=n.caretX)-u,r=a+u),"top"===c)s=(o=g)-u,l=o;else{s=(o=g+m)+u,l=o;var v=r;r=i,i=v}return{x1:i,x2:a,x3:r,y1:o,y2:s,y3:l}},drawTitle:function(t,e,n){var i,a,r,o=e.title,s=o.length;if(s){var l=ze(e.rtl,e.x,e.width);for(t.x=Ve(e,e._titleAlign),n.textAlign=l.textAlign(e._titleAlign),n.textBaseline="middle",i=e.titleFontSize,a=e.titleSpacing,n.fillStyle=e.titleFontColor,n.font=V.fontString(i,e._titleFontStyle,e._titleFontFamily),r=0;r0&&n.stroke()},draw:function(){var t=this._chart.ctx,e=this._view;if(0!==e.opacity){var n={width:e.width,height:e.height},i={x:e.x,y:e.y},a=Math.abs(e.opacity<.001)?0:e.opacity,r=e.title.length||e.beforeBody.length||e.body.length||e.afterBody.length||e.footer.length;this._options.enabled&&r&&(t.save(),t.globalAlpha=a,this.drawBackground(i,e,t,n),i.y+=e.yPadding,V.rtl.overrideTextDirection(t,e.textDirection),this.drawTitle(i,e,t),this.drawBody(i,e,t),this.drawFooter(i,e,t),V.rtl.restoreTextDirection(t,e.textDirection),t.restore())}},handleEvent:function(t){var e,n=this,i=n._options;return n._lastActive=n._lastActive||[],"mouseout"===t.type?n._active=[]:(n._active=n._chart.getElementsAtEventForMode(t,i.mode,i),i.reverse&&n._active.reverse()),(e=!V.arrayEquals(n._active,n._lastActive))&&(n._lastActive=n._active,(i.enabled||i.custom)&&(n._eventPosition={x:t.x,y:t.y},n.update(!0),n.pivot())),e}}),qe=Ne,Ue=je;Ue.positioners=qe;var Ye=V.valueOrDefault;function Ge(){return V.merge({},[].slice.call(arguments),{merger:function(t,e,n,i){if("xAxes"===t||"yAxes"===t){var a,r,o,s=n[t].length;for(e[t]||(e[t]=[]),a=0;a=e[t].length&&e[t].push({}),!e[t][a].type||o.type&&o.type!==e[t][a].type?V.merge(e[t][a],[Oe.getScaleDefaults(r),o]):V.merge(e[t][a],o)}else V._merger(t,e,n,i)}})}function Xe(){return V.merge({},[].slice.call(arguments),{merger:function(t,e,n,i){var a=e[t]||{},r=n[t];"scales"===t?e[t]=Ge(a,r):"scale"===t?e[t]=V.merge(a,[Oe.getScaleDefaults(r.type),r]):V._merger(t,e,n,i)}})}function Ke(t){var e=t.options;V.each(t.scales,(function(e){ge.removeBox(t,e)})),e=Xe(z.global,z[t.config.type],e),t.options=t.config.options=e,t.ensureScalesHaveIDs(),t.buildOrUpdateScales(),t.tooltip._options=e.tooltips,t.tooltip.initialize()}function Ze(t,e,n){var i,a=function(t){return t.id===i};do{i=e+n++}while(V.findIndex(t,a)>=0);return i}function $e(t){return"top"===t||"bottom"===t}function Je(t,e){return function(n,i){return n[t]===i[t]?n[e]-i[e]:n[t]-i[t]}}z._set("global",{elements:{},events:["mousemove","mouseout","click","touchstart","touchmove"],hover:{onHover:null,mode:"nearest",intersect:!0,animationDuration:400},onClick:null,maintainAspectRatio:!0,responsive:!0,responsiveAnimationDuration:0});var Qe=function(t,e){return this.construct(t,e),this};V.extend(Qe.prototype,{construct:function(t,e){var n=this;e=function(t){var e=(t=t||{}).data=t.data||{};return e.datasets=e.datasets||[],e.labels=e.labels||[],t.options=Xe(z.global,z[t.type],t.options||{}),t}(e);var i=Fe.acquireContext(t,e),a=i&&i.canvas,r=a&&a.height,o=a&&a.width;n.id=V.uid(),n.ctx=i,n.canvas=a,n.config=e,n.width=o,n.height=r,n.aspectRatio=r?o/r:null,n.options=e.options,n._bufferedRender=!1,n._layers=[],n.chart=n,n.controller=n,Qe.instances[n.id]=n,Object.defineProperty(n,"data",{get:function(){return n.config.data},set:function(t){n.config.data=t}}),i&&a?(n.initialize(),n.update()):console.error("Failed to create chart: can't acquire context from the given item")},initialize:function(){var t=this;return Le.notify(t,"beforeInit"),V.retinaScale(t,t.options.devicePixelRatio),t.bindEvents(),t.options.responsive&&t.resize(!0),t.initToolTip(),Le.notify(t,"afterInit"),t},clear:function(){return V.canvas.clear(this),this},stop:function(){return $.cancelAnimation(this),this},resize:function(t){var e=this,n=e.options,i=e.canvas,a=n.maintainAspectRatio&&e.aspectRatio||null,r=Math.max(0,Math.floor(V.getMaximumWidth(i))),o=Math.max(0,Math.floor(a?r/a:V.getMaximumHeight(i)));if((e.width!==r||e.height!==o)&&(i.width=e.width=r,i.height=e.height=o,i.style.width=r+"px",i.style.height=o+"px",V.retinaScale(e,n.devicePixelRatio),!t)){var s={width:r,height:o};Le.notify(e,"resize",[s]),n.onResize&&n.onResize(e,s),e.stop(),e.update({duration:n.responsiveAnimationDuration})}},ensureScalesHaveIDs:function(){var t=this.options,e=t.scales||{},n=t.scale;V.each(e.xAxes,(function(t,n){t.id||(t.id=Ze(e.xAxes,"x-axis-",n))})),V.each(e.yAxes,(function(t,n){t.id||(t.id=Ze(e.yAxes,"y-axis-",n))})),n&&(n.id=n.id||"scale")},buildOrUpdateScales:function(){var t=this,e=t.options,n=t.scales||{},i=[],a=Object.keys(n).reduce((function(t,e){return t[e]=!1,t}),{});e.scales&&(i=i.concat((e.scales.xAxes||[]).map((function(t){return{options:t,dtype:"category",dposition:"bottom"}})),(e.scales.yAxes||[]).map((function(t){return{options:t,dtype:"linear",dposition:"left"}})))),e.scale&&i.push({options:e.scale,dtype:"radialLinear",isDefault:!0,dposition:"chartArea"}),V.each(i,(function(e){var i=e.options,r=i.id,o=Ye(i.type,e.dtype);$e(i.position)!==$e(e.dposition)&&(i.position=e.dposition),a[r]=!0;var s=null;if(r in n&&n[r].type===o)(s=n[r]).options=i,s.ctx=t.ctx,s.chart=t;else{var l=Oe.getScaleConstructor(o);if(!l)return;s=new l({id:r,type:o,options:i,ctx:t.ctx,chart:t}),n[s.id]=s}s.mergeTicksOptions(),e.isDefault&&(t.scale=s)})),V.each(a,(function(t,e){t||delete n[e]})),t.scales=n,Oe.addScalesToLayout(this)},buildOrUpdateControllers:function(){var t,e,n=this,i=[],a=n.data.datasets;for(t=0,e=a.length;t=0;--n)this.drawDataset(e[n],t);Le.notify(this,"afterDatasetsDraw",[t])}},drawDataset:function(t,e){var n={meta:t,index:t.index,easingValue:e};!1!==Le.notify(this,"beforeDatasetDraw",[n])&&(t.controller.draw(e),Le.notify(this,"afterDatasetDraw",[n]))},_drawTooltip:function(t){var e=this.tooltip,n={tooltip:e,easingValue:t};!1!==Le.notify(this,"beforeTooltipDraw",[n])&&(e.draw(),Le.notify(this,"afterTooltipDraw",[n]))},getElementAtEvent:function(t){return ae.modes.single(this,t)},getElementsAtEvent:function(t){return ae.modes.label(this,t,{intersect:!0})},getElementsAtXAxis:function(t){return ae.modes["x-axis"](this,t,{intersect:!0})},getElementsAtEventForMode:function(t,e,n){var i=ae.modes[e];return"function"==typeof i?i(this,t,n):[]},getDatasetAtEvent:function(t){return ae.modes.dataset(this,t,{intersect:!0})},getDatasetMeta:function(t){var e=this.data.datasets[t];e._meta||(e._meta={});var n=e._meta[this.id];return n||(n=e._meta[this.id]={type:null,data:[],dataset:null,controller:null,hidden:null,xAxisID:null,yAxisID:null,order:e.order||0,index:t}),n},getVisibleDatasetCount:function(){for(var t=0,e=0,n=this.data.datasets.length;e3?n[2]-n[1]:n[1]-n[0];Math.abs(i)>1&&t!==Math.floor(t)&&(i=t-Math.floor(t));var a=V.log10(Math.abs(i)),r="";if(0!==t)if(Math.max(Math.abs(n[0]),Math.abs(n[n.length-1]))<1e-4){var o=V.log10(Math.abs(t)),s=Math.floor(o)-Math.floor(a);s=Math.max(Math.min(s,20),0),r=t.toExponential(s)}else{var l=-1*Math.floor(a);l=Math.max(Math.min(l,20),0),r=t.toFixed(l)}else r="0";return r},logarithmic:function(t,e,n){var i=t/Math.pow(10,Math.floor(V.log10(t)));return 0===t?"0":1===i||2===i||5===i||0===e||e===n.length-1?t.toExponential():""}}},on=V.isArray,sn=V.isNullOrUndef,ln=V.valueOrDefault,un=V.valueAtIndexOrDefault;function dn(t,e,n){var i,a=t.getTicks().length,r=Math.min(e,a-1),o=t.getPixelForTick(r),s=t._startPixel,l=t._endPixel;if(!(n&&(i=1===a?Math.max(o-s,l-o):0===e?(t.getPixelForTick(1)-o)/2:(o-t.getPixelForTick(r-1))/2,(o+=rl+1e-6)))return o}function hn(t,e,n,i){var a,r,o,s,l,u,d,h,c,f,g,p,m,v=n.length,b=[],x=[],y=[];for(a=0;ae){for(n=0;n=c||d<=1||!s.isHorizontal()?s.labelRotation=h:(e=(t=s._getLabelSizes()).widest.width,n=t.highest.height-t.highest.offset,i=Math.min(s.maxWidth,s.chart.width-e),e+6>(a=l.offset?s.maxWidth/d:i/(d-1))&&(a=i/(d-(l.offset?.5:1)),r=s.maxHeight-cn(l.gridLines)-u.padding-fn(l.scaleLabel),o=Math.sqrt(e*e+n*n),f=V.toDegrees(Math.min(Math.asin(Math.min((t.highest.height+6)/a,1)),Math.asin(Math.min(r/o,1))-Math.asin(n/o))),f=Math.max(h,Math.min(c,f))),s.labelRotation=f)},afterCalculateTickRotation:function(){V.callback(this.options.afterCalculateTickRotation,[this])},beforeFit:function(){V.callback(this.options.beforeFit,[this])},fit:function(){var t=this,e=t.minSize={width:0,height:0},n=t.chart,i=t.options,a=i.ticks,r=i.scaleLabel,o=i.gridLines,s=t._isVisible(),l="bottom"===i.position,u=t.isHorizontal();if(u?e.width=t.maxWidth:s&&(e.width=cn(o)+fn(r)),u?s&&(e.height=cn(o)+fn(r)):e.height=t.maxHeight,a.display&&s){var d=pn(a),h=t._getLabelSizes(),c=h.first,f=h.last,g=h.widest,p=h.highest,m=.4*d.minor.lineHeight,v=a.padding;if(u){var b=0!==t.labelRotation,x=V.toRadians(t.labelRotation),y=Math.cos(x),_=Math.sin(x),k=_*g.width+y*(p.height-(b?p.offset:0))+(b?0:m);e.height=Math.min(t.maxHeight,e.height+k+v);var w,M,S=t.getPixelForTick(0)-t.left,C=t.right-t.getPixelForTick(t.getTicks().length-1);b?(w=l?y*c.width+_*c.offset:_*(c.height-c.offset),M=l?_*(f.height-f.offset):y*f.width+_*f.offset):(w=c.width/2,M=f.width/2),t.paddingLeft=Math.max((w-S)*t.width/(t.width-S),0)+3,t.paddingRight=Math.max((M-C)*t.width/(t.width-C),0)+3}else{var P=a.mirror?0:g.width+v+m;e.width=Math.min(t.maxWidth,e.width+P),t.paddingTop=c.height/2,t.paddingBottom=f.height/2}}t.handleMargins(),u?(t.width=t._length=n.width-t.margins.left-t.margins.right,t.height=e.height):(t.width=e.width,t.height=t._length=n.height-t.margins.top-t.margins.bottom)},handleMargins:function(){var t=this;t.margins&&(t.margins.left=Math.max(t.paddingLeft,t.margins.left),t.margins.top=Math.max(t.paddingTop,t.margins.top),t.margins.right=Math.max(t.paddingRight,t.margins.right),t.margins.bottom=Math.max(t.paddingBottom,t.margins.bottom))},afterFit:function(){V.callback(this.options.afterFit,[this])},isHorizontal:function(){var t=this.options.position;return"top"===t||"bottom"===t},isFullWidth:function(){return this.options.fullWidth},getRightValue:function(t){if(sn(t))return NaN;if(("number"==typeof t||t instanceof Number)&&!isFinite(t))return NaN;if(t)if(this.isHorizontal()){if(void 0!==t.x)return this.getRightValue(t.x)}else if(void 0!==t.y)return this.getRightValue(t.y);return t},_convertTicksToLabels:function(t){var e,n,i,a=this;for(a.ticks=t.map((function(t){return t.value})),a.beforeTickToLabelConversion(),e=a.convertTicksToLabels(t)||a.ticks,a.afterTickToLabelConversion(),n=0,i=t.length;nn-1?null:this.getPixelForDecimal(t*i+(e?i/2:0))},getPixelForDecimal:function(t){return this._reversePixels&&(t=1-t),this._startPixel+t*this._length},getDecimalForPixel:function(t){var e=(t-this._startPixel)/this._length;return this._reversePixels?1-e:e},getBasePixel:function(){return this.getPixelForValue(this.getBaseValue())},getBaseValue:function(){var t=this.min,e=this.max;return this.beginAtZero?0:t<0&&e<0?e:t>0&&e>0?t:0},_autoSkip:function(t){var e,n,i,a,r=this.options.ticks,o=this._length,s=r.maxTicksLimit||o/this._tickSize()+1,l=r.major.enabled?function(t){var e,n,i=[];for(e=0,n=t.length;es)return function(t,e,n){var i,a,r=0,o=e[0];for(n=Math.ceil(n),i=0;iu)return r;return Math.max(u,1)}(l,t,0,s),u>0){for(e=0,n=u-1;e1?(h-d)/(u-1):null,vn(t,i,V.isNullOrUndef(a)?0:d-a,d),vn(t,i,h,V.isNullOrUndef(a)?t.length:h+a),mn(t)}return vn(t,i),mn(t)},_tickSize:function(){var t=this.options.ticks,e=V.toRadians(this.labelRotation),n=Math.abs(Math.cos(e)),i=Math.abs(Math.sin(e)),a=this._getLabelSizes(),r=t.autoSkipPadding||0,o=a?a.widest.width+r:0,s=a?a.highest.height+r:0;return this.isHorizontal()?s*n>o*i?o/n:s/i:s*i=0&&(o=t),void 0!==r&&(t=n.indexOf(r))>=0&&(s=t),e.minIndex=o,e.maxIndex=s,e.min=n[o],e.max=n[s]},buildTicks:function(){var t=this._getLabels(),e=this.minIndex,n=this.maxIndex;this.ticks=0===e&&n===t.length-1?t:t.slice(e,n+1)},getLabelForIndex:function(t,e){var n=this.chart;return n.getDatasetMeta(e).controller._getValueScaleId()===this.id?this.getRightValue(n.data.datasets[e].data[t]):this._getLabels()[t]},_configure:function(){var t=this,e=t.options.offset,n=t.ticks;xn.prototype._configure.call(t),t.isHorizontal()||(t._reversePixels=!t._reversePixels),n&&(t._startValue=t.minIndex-(e?.5:0),t._valueRange=Math.max(n.length-(e?0:1),1))},getPixelForValue:function(t,e,n){var i,a,r,o=this;return yn(e)||yn(n)||(t=o.chart.data.datasets[n].data[e]),yn(t)||(i=o.isHorizontal()?t.x:t.y),(void 0!==i||void 0!==t&&isNaN(e))&&(a=o._getLabels(),t=V.valueOrDefault(i,t),e=-1!==(r=a.indexOf(t))?r:e,isNaN(e)&&(e=t)),o.getPixelForDecimal((e-o._startValue)/o._valueRange)},getPixelForTick:function(t){var e=this.ticks;return t<0||t>e.length-1?null:this.getPixelForValue(e[t],t+this.minIndex)},getValueForPixel:function(t){var e=Math.round(this._startValue+this.getDecimalForPixel(t)*this._valueRange);return Math.min(Math.max(e,0),this.ticks.length-1)},getBasePixel:function(){return this.bottom}}),kn={position:"bottom"};_n._defaults=kn;var wn=V.noop,Mn=V.isNullOrUndef;var Sn=xn.extend({getRightValue:function(t){return"string"==typeof t?+t:xn.prototype.getRightValue.call(this,t)},handleTickRangeOptions:function(){var t=this,e=t.options.ticks;if(e.beginAtZero){var n=V.sign(t.min),i=V.sign(t.max);n<0&&i<0?t.max=0:n>0&&i>0&&(t.min=0)}var a=void 0!==e.min||void 0!==e.suggestedMin,r=void 0!==e.max||void 0!==e.suggestedMax;void 0!==e.min?t.min=e.min:void 0!==e.suggestedMin&&(null===t.min?t.min=e.suggestedMin:t.min=Math.min(t.min,e.suggestedMin)),void 0!==e.max?t.max=e.max:void 0!==e.suggestedMax&&(null===t.max?t.max=e.suggestedMax:t.max=Math.max(t.max,e.suggestedMax)),a!==r&&t.min>=t.max&&(a?t.max=t.min+1:t.min=t.max-1),t.min===t.max&&(t.max++,e.beginAtZero||t.min--)},getTickLimit:function(){var t,e=this.options.ticks,n=e.stepSize,i=e.maxTicksLimit;return n?t=Math.ceil(this.max/n)-Math.floor(this.min/n)+1:(t=this._computeTickLimit(),i=i||11),i&&(t=Math.min(i,t)),t},_computeTickLimit:function(){return Number.POSITIVE_INFINITY},handleDirectionalChanges:wn,buildTicks:function(){var t=this,e=t.options.ticks,n=t.getTickLimit(),i={maxTicks:n=Math.max(2,n),min:e.min,max:e.max,precision:e.precision,stepSize:V.valueOrDefault(e.fixedStepSize,e.stepSize)},a=t.ticks=function(t,e){var n,i,a,r,o=[],s=t.stepSize,l=s||1,u=t.maxTicks-1,d=t.min,h=t.max,c=t.precision,f=e.min,g=e.max,p=V.niceNum((g-f)/u/l)*l;if(p<1e-14&&Mn(d)&&Mn(h))return[f,g];(r=Math.ceil(g/p)-Math.floor(f/p))>u&&(p=V.niceNum(r*p/u/l)*l),s||Mn(c)?n=Math.pow(10,V._decimalPlaces(p)):(n=Math.pow(10,c),p=Math.ceil(p*n)/n),i=Math.floor(f/p)*p,a=Math.ceil(g/p)*p,s&&(!Mn(d)&&V.almostWhole(d/p,p/1e3)&&(i=d),!Mn(h)&&V.almostWhole(h/p,p/1e3)&&(a=h)),r=(a-i)/p,r=V.almostEquals(r,Math.round(r),p/1e3)?Math.round(r):Math.ceil(r),i=Math.round(i*n)/n,a=Math.round(a*n)/n,o.push(Mn(d)?i:d);for(var m=1;me.length-1?null:this.getPixelForValue(e[t])}}),Tn=Cn;Dn._defaults=Tn;var In=V.valueOrDefault,Fn=V.math.log10;var Ln={position:"left",ticks:{callback:rn.formatters.logarithmic}};function On(t,e){return V.isFinite(t)&&t>=0?t:e}var Rn=xn.extend({determineDataLimits:function(){var t,e,n,i,a,r,o=this,s=o.options,l=o.chart,u=l.data.datasets,d=o.isHorizontal();function h(t){return d?t.xAxisID===o.id:t.yAxisID===o.id}o.min=Number.POSITIVE_INFINITY,o.max=Number.NEGATIVE_INFINITY,o.minNotZero=Number.POSITIVE_INFINITY;var c=s.stacked;if(void 0===c)for(t=0;t0){var e=V.min(t),n=V.max(t);o.min=Math.min(o.min,e),o.max=Math.max(o.max,n)}}))}else for(t=0;t0?t.minNotZero=t.min:t.max<1?t.minNotZero=Math.pow(10,Math.floor(Fn(t.max))):t.minNotZero=1)},buildTicks:function(){var t=this,e=t.options.ticks,n=!t.isHorizontal(),i={min:On(e.min),max:On(e.max)},a=t.ticks=function(t,e){var n,i,a=[],r=In(t.min,Math.pow(10,Math.floor(Fn(e.min)))),o=Math.floor(Fn(e.max)),s=Math.ceil(e.max/Math.pow(10,o));0===r?(n=Math.floor(Fn(e.minNotZero)),i=Math.floor(e.minNotZero/Math.pow(10,n)),a.push(r),r=i*Math.pow(10,n)):(n=Math.floor(Fn(r)),i=Math.floor(r/Math.pow(10,n)));var l=n<0?Math.pow(10,Math.abs(n)):1;do{a.push(r),10===++i&&(i=1,l=++n>=0?1:l),r=Math.round(i*Math.pow(10,n)*l)/l}while(ne.length-1?null:this.getPixelForValue(e[t])},_getFirstTickValue:function(t){var e=Math.floor(Fn(t));return Math.floor(t/Math.pow(10,e))*Math.pow(10,e)},_configure:function(){var t=this,e=t.min,n=0;xn.prototype._configure.call(t),0===e&&(e=t._getFirstTickValue(t.minNotZero),n=In(t.options.ticks.fontSize,z.global.defaultFontSize)/t._length),t._startValue=Fn(e),t._valueOffset=n,t._valueRange=(Fn(t.max)-Fn(e))/(1-n)},getPixelForValue:function(t){var e=this,n=0;return(t=+e.getRightValue(t))>e.min&&t>0&&(n=(Fn(t)-e._startValue)/e._valueRange+e._valueOffset),e.getPixelForDecimal(n)},getValueForPixel:function(t){var e=this,n=e.getDecimalForPixel(t);return 0===n&&0===e.min?0:Math.pow(10,e._startValue+(n-e._valueOffset)*e._valueRange)}}),zn=Ln;Rn._defaults=zn;var Nn=V.valueOrDefault,Bn=V.valueAtIndexOrDefault,En=V.options.resolve,Wn={display:!0,animate:!0,position:"chartArea",angleLines:{display:!0,color:"rgba(0,0,0,0.1)",lineWidth:1,borderDash:[],borderDashOffset:0},gridLines:{circular:!1},ticks:{showLabelBackdrop:!0,backdropColor:"rgba(255,255,255,0.75)",backdropPaddingY:2,backdropPaddingX:2,callback:rn.formatters.linear},pointLabels:{display:!0,fontSize:10,callback:function(t){return t}}};function Vn(t){var e=t.ticks;return e.display&&t.display?Nn(e.fontSize,z.global.defaultFontSize)+2*e.backdropPaddingY:0}function Hn(t,e,n,i,a){return t===i||t===a?{start:e-n/2,end:e+n/2}:ta?{start:e-n,end:e}:{start:e,end:e+n}}function jn(t){return 0===t||180===t?"center":t<180?"left":"right"}function qn(t,e,n,i){var a,r,o=n.y+i/2;if(V.isArray(e))for(a=0,r=e.length;a270||t<90)&&(n.y-=e.h)}function Yn(t){return V.isNumber(t)?t:0}var Gn=Sn.extend({setDimensions:function(){var t=this;t.width=t.maxWidth,t.height=t.maxHeight,t.paddingTop=Vn(t.options)/2,t.xCenter=Math.floor(t.width/2),t.yCenter=Math.floor((t.height-t.paddingTop)/2),t.drawingArea=Math.min(t.height-t.paddingTop,t.width)/2},determineDataLimits:function(){var t=this,e=t.chart,n=Number.POSITIVE_INFINITY,i=Number.NEGATIVE_INFINITY;V.each(e.data.datasets,(function(a,r){if(e.isDatasetVisible(r)){var o=e.getDatasetMeta(r);V.each(a.data,(function(e,a){var r=+t.getRightValue(e);isNaN(r)||o.data[a].hidden||(n=Math.min(r,n),i=Math.max(r,i))}))}})),t.min=n===Number.POSITIVE_INFINITY?0:n,t.max=i===Number.NEGATIVE_INFINITY?0:i,t.handleTickRangeOptions()},_computeTickLimit:function(){return Math.ceil(this.drawingArea/Vn(this.options))},convertTicksToLabels:function(){var t=this;Sn.prototype.convertTicksToLabels.call(t),t.pointLabels=t.chart.data.labels.map((function(){var e=V.callback(t.options.pointLabels.callback,arguments,t);return e||0===e?e:""}))},getLabelForIndex:function(t,e){return+this.getRightValue(this.chart.data.datasets[e].data[t])},fit:function(){var t=this.options;t.display&&t.pointLabels.display?function(t){var e,n,i,a=V.options._parseFont(t.options.pointLabels),r={l:0,r:t.width,t:0,b:t.height-t.paddingTop},o={};t.ctx.font=a.string,t._pointLabelSizes=[];var s,l,u,d=t.chart.data.labels.length;for(e=0;er.r&&(r.r=f.end,o.r=h),g.startr.b&&(r.b=g.end,o.b=h)}t.setReductions(t.drawingArea,r,o)}(this):this.setCenterPoint(0,0,0,0)},setReductions:function(t,e,n){var i=this,a=e.l/Math.sin(n.l),r=Math.max(e.r-i.width,0)/Math.sin(n.r),o=-e.t/Math.cos(n.t),s=-Math.max(e.b-(i.height-i.paddingTop),0)/Math.cos(n.b);a=Yn(a),r=Yn(r),o=Yn(o),s=Yn(s),i.drawingArea=Math.min(Math.floor(t-(a+r)/2),Math.floor(t-(o+s)/2)),i.setCenterPoint(a,r,o,s)},setCenterPoint:function(t,e,n,i){var a=this,r=a.width-e-a.drawingArea,o=t+a.drawingArea,s=n+a.drawingArea,l=a.height-a.paddingTop-i-a.drawingArea;a.xCenter=Math.floor((o+r)/2+a.left),a.yCenter=Math.floor((s+l)/2+a.top+a.paddingTop)},getIndexAngle:function(t){var e=this.chart,n=(t*(360/e.data.labels.length)+((e.options||{}).startAngle||0))%360;return(n<0?n+360:n)*Math.PI*2/360},getDistanceFromCenterForValue:function(t){var e=this;if(V.isNullOrUndef(t))return NaN;var n=e.drawingArea/(e.max-e.min);return e.options.ticks.reverse?(e.max-t)*n:(t-e.min)*n},getPointPosition:function(t,e){var n=this.getIndexAngle(t)-Math.PI/2;return{x:Math.cos(n)*e+this.xCenter,y:Math.sin(n)*e+this.yCenter}},getPointPositionForValue:function(t,e){return this.getPointPosition(t,this.getDistanceFromCenterForValue(e))},getBasePosition:function(t){var e=this.min,n=this.max;return this.getPointPositionForValue(t||0,this.beginAtZero?0:e<0&&n<0?n:e>0&&n>0?e:0)},_drawGrid:function(){var t,e,n,i=this,a=i.ctx,r=i.options,o=r.gridLines,s=r.angleLines,l=Nn(s.lineWidth,o.lineWidth),u=Nn(s.color,o.color);if(r.pointLabels.display&&function(t){var e=t.ctx,n=t.options,i=n.pointLabels,a=Vn(n),r=t.getDistanceFromCenterForValue(n.ticks.reverse?t.min:t.max),o=V.options._parseFont(i);e.save(),e.font=o.string,e.textBaseline="middle";for(var s=t.chart.data.labels.length-1;s>=0;s--){var l=0===s?a/2:0,u=t.getPointPosition(s,r+l+5),d=Bn(i.fontColor,s,z.global.defaultFontColor);e.fillStyle=d;var h=t.getIndexAngle(s),c=V.toDegrees(h);e.textAlign=jn(c),Un(c,t._pointLabelSizes[s],u),qn(e,t.pointLabels[s],u,o.lineHeight)}e.restore()}(i),o.display&&V.each(i.ticks,(function(t,n){0!==n&&(e=i.getDistanceFromCenterForValue(i.ticksAsNumbers[n]),function(t,e,n,i){var a,r=t.ctx,o=e.circular,s=t.chart.data.labels.length,l=Bn(e.color,i-1),u=Bn(e.lineWidth,i-1);if((o||s)&&l&&u){if(r.save(),r.strokeStyle=l,r.lineWidth=u,r.setLineDash&&(r.setLineDash(e.borderDash||[]),r.lineDashOffset=e.borderDashOffset||0),r.beginPath(),o)r.arc(t.xCenter,t.yCenter,n,0,2*Math.PI);else{a=t.getPointPosition(0,n),r.moveTo(a.x,a.y);for(var d=1;d=0;t--)e=i.getDistanceFromCenterForValue(r.ticks.reverse?i.min:i.max),n=i.getPointPosition(t,e),a.beginPath(),a.moveTo(i.xCenter,i.yCenter),a.lineTo(n.x,n.y),a.stroke();a.restore()}},_drawLabels:function(){var t=this,e=t.ctx,n=t.options.ticks;if(n.display){var i,a,r=t.getIndexAngle(0),o=V.options._parseFont(n),s=Nn(n.fontColor,z.global.defaultFontColor);e.save(),e.font=o.string,e.translate(t.xCenter,t.yCenter),e.rotate(r),e.textAlign="center",e.textBaseline="middle",V.each(t.ticks,(function(r,l){(0!==l||n.reverse)&&(i=t.getDistanceFromCenterForValue(t.ticksAsNumbers[l]),n.showLabelBackdrop&&(a=e.measureText(r).width,e.fillStyle=n.backdropColor,e.fillRect(-a/2-n.backdropPaddingX,-i-o.size/2-n.backdropPaddingY,a+2*n.backdropPaddingX,o.size+2*n.backdropPaddingY)),e.fillStyle=s,e.fillText(r,0,-i))})),e.restore()}},_drawTitle:V.noop}),Xn=Wn;Gn._defaults=Xn;var Kn=V._deprecated,Zn=V.options.resolve,$n=V.valueOrDefault,Jn=Number.MIN_SAFE_INTEGER||-9007199254740991,Qn=Number.MAX_SAFE_INTEGER||9007199254740991,ti={millisecond:{common:!0,size:1,steps:1e3},second:{common:!0,size:1e3,steps:60},minute:{common:!0,size:6e4,steps:60},hour:{common:!0,size:36e5,steps:24},day:{common:!0,size:864e5,steps:30},week:{common:!1,size:6048e5,steps:4},month:{common:!0,size:2628e6,steps:12},quarter:{common:!1,size:7884e6,steps:4},year:{common:!0,size:3154e7}},ei=Object.keys(ti);function ni(t,e){return t-e}function ii(t){return V.valueOrDefault(t.time.min,t.ticks.min)}function ai(t){return V.valueOrDefault(t.time.max,t.ticks.max)}function ri(t,e,n,i){var a=function(t,e,n){for(var i,a,r,o=0,s=t.length-1;o>=0&&o<=s;){if(a=t[(i=o+s>>1)-1]||null,r=t[i],!a)return{lo:null,hi:r};if(r[e]n))return{lo:a,hi:r};s=i-1}}return{lo:r,hi:null}}(t,e,n),r=a.lo?a.hi?a.lo:t[t.length-2]:t[0],o=a.lo?a.hi?a.hi:t[t.length-1]:t[1],s=o[e]-r[e],l=s?(n-r[e])/s:0,u=(o[i]-r[i])*l;return r[i]+u}function oi(t,e){var n=t._adapter,i=t.options.time,a=i.parser,r=a||i.format,o=e;return"function"==typeof a&&(o=a(o)),V.isFinite(o)||(o="string"==typeof r?n.parse(o,r):n.parse(o)),null!==o?+o:(a||"function"!=typeof r||(o=r(e),V.isFinite(o)||(o=n.parse(o))),o)}function si(t,e){if(V.isNullOrUndef(e))return null;var n=t.options.time,i=oi(t,t.getRightValue(e));return null===i?i:(n.round&&(i=+t._adapter.startOf(i,n.round)),i)}function li(t,e,n,i){var a,r,o,s=ei.length;for(a=ei.indexOf(t);a=0&&(e[r].major=!0);return e}(t,r,o,n):r}var di=xn.extend({initialize:function(){this.mergeTicksOptions(),xn.prototype.initialize.call(this)},update:function(){var t=this,e=t.options,n=e.time||(e.time={}),i=t._adapter=new an._date(e.adapters.date);return Kn("time scale",n.format,"time.format","time.parser"),Kn("time scale",n.min,"time.min","ticks.min"),Kn("time scale",n.max,"time.max","ticks.max"),V.mergeIf(n.displayFormats,i.formats()),xn.prototype.update.apply(t,arguments)},getRightValue:function(t){return t&&void 0!==t.t&&(t=t.t),xn.prototype.getRightValue.call(this,t)},determineDataLimits:function(){var t,e,n,i,a,r,o,s=this,l=s.chart,u=s._adapter,d=s.options,h=d.time.unit||"day",c=Qn,f=Jn,g=[],p=[],m=[],v=s._getLabels();for(t=0,n=v.length;t1?function(t){var e,n,i,a={},r=[];for(e=0,n=t.length;e1e5*u)throw e+" and "+n+" are too far apart with stepSize of "+u+" "+l;for(a=h;a=a&&n<=r&&d.push(n);return i.min=a,i.max=r,i._unit=l.unit||(s.autoSkip?li(l.minUnit,i.min,i.max,h):function(t,e,n,i,a){var r,o;for(r=ei.length-1;r>=ei.indexOf(n);r--)if(o=ei[r],ti[o].common&&t._adapter.diff(a,i,o)>=e-1)return o;return ei[n?ei.indexOf(n):0]}(i,d.length,l.minUnit,i.min,i.max)),i._majorUnit=s.major.enabled&&"year"!==i._unit?function(t){for(var e=ei.indexOf(t)+1,n=ei.length;ee&&s=0&&t0?s:1}}),hi={position:"bottom",distribution:"linear",bounds:"data",adapters:{},time:{parser:!1,unit:!1,round:!1,displayFormat:!1,isoWeekday:!1,minUnit:"millisecond",displayFormats:{}},ticks:{autoSkip:!1,source:"auto",major:{enabled:!1}}};di._defaults=hi;var ci={category:_n,linear:Dn,logarithmic:Rn,radialLinear:Gn,time:di},fi={datetime:"MMM D, YYYY, h:mm:ss a",millisecond:"h:mm:ss.SSS a",second:"h:mm:ss a",minute:"h:mm a",hour:"hA",day:"MMM D",week:"ll",month:"MMM YYYY",quarter:"[Q]Q - YYYY",year:"YYYY"};an._date.override("function"==typeof t?{_id:"moment",formats:function(){return fi},parse:function(e,n){return"string"==typeof e&&"string"==typeof n?e=t(e,n):e instanceof t||(e=t(e)),e.isValid()?e.valueOf():null},format:function(e,n){return t(e).format(n)},add:function(e,n,i){return t(e).add(n,i).valueOf()},diff:function(e,n,i){return t(e).diff(t(n),i)},startOf:function(e,n,i){return e=t(e),"isoWeek"===n?e.isoWeekday(i).valueOf():e.startOf(n).valueOf()},endOf:function(e,n){return t(e).endOf(n).valueOf()},_create:function(e){return t(e)}}:{}),z._set("global",{plugins:{filler:{propagate:!0}}});var gi={dataset:function(t){var e=t.fill,n=t.chart,i=n.getDatasetMeta(e),a=i&&n.isDatasetVisible(e)&&i.dataset._children||[],r=a.length||0;return r?function(t,e){return e=n)&&i;switch(r){case"bottom":return"start";case"top":return"end";case"zero":return"origin";case"origin":case"start":case"end":return r;default:return!1}}function mi(t){return(t.el._scale||{}).getPointPositionForValue?function(t){var e,n,i,a,r,o=t.el._scale,s=o.options,l=o.chart.data.labels.length,u=t.fill,d=[];if(!l)return null;for(e=s.ticks.reverse?o.max:o.min,n=s.ticks.reverse?o.min:o.max,i=o.getPointPositionForValue(0,e),a=0;a0;--r)V.canvas.lineTo(t,n[r],n[r-1],!0);else for(o=n[0].cx,s=n[0].cy,l=Math.sqrt(Math.pow(n[0].x-o,2)+Math.pow(n[0].y-s,2)),r=a-1;r>0;--r)t.arc(o,s,l,n[r].angle,n[r-1].angle,!0)}}function _i(t,e,n,i,a,r){var o,s,l,u,d,h,c,f,g=e.length,p=i.spanGaps,m=[],v=[],b=0,x=0;for(t.beginPath(),o=0,s=g;o=0;--n)(e=l[n].$filler)&&e.visible&&(a=(i=e.el)._view,r=i._children||[],o=e.mapper,s=a.backgroundColor||z.global.defaultColor,o&&s&&r.length&&(V.canvas.clipArea(u,t.chartArea),_i(u,r,o,a,s,i._loop),V.canvas.unclipArea(u)))}},wi=V.rtl.getRtlAdapter,Mi=V.noop,Si=V.valueOrDefault;function Ci(t,e){return t.usePointStyle&&t.boxWidth>e?e:t.boxWidth}z._set("global",{legend:{display:!0,position:"top",align:"center",fullWidth:!0,reverse:!1,weight:1e3,onClick:function(t,e){var n=e.datasetIndex,i=this.chart,a=i.getDatasetMeta(n);a.hidden=null===a.hidden?!i.data.datasets[n].hidden:null,i.update()},onHover:null,onLeave:null,labels:{boxWidth:40,padding:10,generateLabels:function(t){var e=t.data.datasets,n=t.options.legend||{},i=n.labels&&n.labels.usePointStyle;return t._getSortedDatasetMetas().map((function(n){var a=n.controller.getStyle(i?0:void 0);return{text:e[n.index].label,fillStyle:a.backgroundColor,hidden:!t.isDatasetVisible(n.index),lineCap:a.borderCapStyle,lineDash:a.borderDash,lineDashOffset:a.borderDashOffset,lineJoin:a.borderJoinStyle,lineWidth:a.borderWidth,strokeStyle:a.borderColor,pointStyle:a.pointStyle,rotation:a.rotation,datasetIndex:n.index}}),this)}}},legendCallback:function(t){var e,n,i,a=document.createElement("ul"),r=t.data.datasets;for(a.setAttribute("class",t.id+"-legend"),e=0,n=r.length;el.width)&&(h+=o+n.padding,d[d.length-(e>0?0:1)]=0),s[e]={left:0,top:0,width:i,height:o},d[d.length-1]+=i+n.padding})),l.height+=h}else{var c=n.padding,f=t.columnWidths=[],g=t.columnHeights=[],p=n.padding,m=0,v=0;V.each(t.legendItems,(function(t,e){var i=Ci(n,o)+o/2+a.measureText(t.text).width;e>0&&v+o+2*c>l.height&&(p+=m+n.padding,f.push(m),g.push(v),m=0,v=0),m=Math.max(m,i),v+=o+c,s[e]={left:0,top:0,width:i,height:o}})),p+=m,f.push(m),g.push(v),l.width+=p}t.width=l.width,t.height=l.height}else t.width=l.width=t.height=l.height=0},afterFit:Mi,isHorizontal:function(){return"top"===this.options.position||"bottom"===this.options.position},draw:function(){var t=this,e=t.options,n=e.labels,i=z.global,a=i.defaultColor,r=i.elements.line,o=t.height,s=t.columnHeights,l=t.width,u=t.lineWidths;if(e.display){var d,h=wi(e.rtl,t.left,t.minSize.width),c=t.ctx,f=Si(n.fontColor,i.defaultFontColor),g=V.options._parseFont(n),p=g.size;c.textAlign=h.textAlign("left"),c.textBaseline="middle",c.lineWidth=.5,c.strokeStyle=f,c.fillStyle=f,c.font=g.string;var m=Ci(n,p),v=t.legendHitBoxes,b=function(t,i){switch(e.align){case"start":return n.padding;case"end":return t-i;default:return(t-i+n.padding)/2}},x=t.isHorizontal();d=x?{x:t.left+b(l,u[0]),y:t.top+n.padding,line:0}:{x:t.left+n.padding,y:t.top+b(o,s[0]),line:0},V.rtl.overrideTextDirection(t.ctx,e.textDirection);var y=p+n.padding;V.each(t.legendItems,(function(e,i){var f=c.measureText(e.text).width,g=m+p/2+f,_=d.x,k=d.y;h.setWidth(t.minSize.width),x?i>0&&_+g+n.padding>t.left+t.minSize.width&&(k=d.y+=y,d.line++,_=d.x=t.left+b(l,u[d.line])):i>0&&k+y>t.top+t.minSize.height&&(_=d.x=_+t.columnWidths[d.line]+n.padding,d.line++,k=d.y=t.top+b(o,s[d.line]));var w=h.x(_);!function(t,e,i){if(!(isNaN(m)||m<=0)){c.save();var o=Si(i.lineWidth,r.borderWidth);if(c.fillStyle=Si(i.fillStyle,a),c.lineCap=Si(i.lineCap,r.borderCapStyle),c.lineDashOffset=Si(i.lineDashOffset,r.borderDashOffset),c.lineJoin=Si(i.lineJoin,r.borderJoinStyle),c.lineWidth=o,c.strokeStyle=Si(i.strokeStyle,a),c.setLineDash&&c.setLineDash(Si(i.lineDash,r.borderDash)),n&&n.usePointStyle){var s=m*Math.SQRT2/2,l=h.xPlus(t,m/2),u=e+p/2;V.canvas.drawPoint(c,i.pointStyle,s,l,u,i.rotation)}else c.fillRect(h.leftForLtr(t,m),e,m,p),0!==o&&c.strokeRect(h.leftForLtr(t,m),e,m,p);c.restore()}}(w,k,e),v[i].left=h.leftForLtr(w,v[i].width),v[i].top=k,function(t,e,n,i){var a=p/2,r=h.xPlus(t,m+a),o=e+a;c.fillText(n.text,r,o),n.hidden&&(c.beginPath(),c.lineWidth=2,c.moveTo(r,o),c.lineTo(h.xPlus(r,i),o),c.stroke())}(w,k,e,f),x?d.x+=g+n.padding:d.y+=y})),V.rtl.restoreTextDirection(t.ctx,e.textDirection)}},_getLegendItemAt:function(t,e){var n,i,a,r=this;if(t>=r.left&&t<=r.right&&e>=r.top&&e<=r.bottom)for(a=r.legendHitBoxes,n=0;n=(i=a[n]).left&&t<=i.left+i.width&&e>=i.top&&e<=i.top+i.height)return r.legendItems[n];return null},handleEvent:function(t){var e,n=this,i=n.options,a="mouseup"===t.type?"click":t.type;if("mousemove"===a){if(!i.onHover&&!i.onLeave)return}else{if("click"!==a)return;if(!i.onClick)return}e=n._getLegendItemAt(t.x,t.y),"click"===a?e&&i.onClick&&i.onClick.call(n,t.native,e):(i.onLeave&&e!==n._hoveredItem&&(n._hoveredItem&&i.onLeave.call(n,t.native,n._hoveredItem),n._hoveredItem=e),i.onHover&&e&&i.onHover.call(n,t.native,e))}});function Ai(t,e){var n=new Pi({ctx:t.ctx,options:e,chart:t});ge.configure(t,n,e),ge.addBox(t,n),t.legend=n}var Di={id:"legend",_element:Pi,beforeInit:function(t){var e=t.options.legend;e&&Ai(t,e)},beforeUpdate:function(t){var e=t.options.legend,n=t.legend;e?(V.mergeIf(e,z.global.legend),n?(ge.configure(t,n,e),n.options=e):Ai(t,e)):n&&(ge.removeBox(t,n),delete t.legend)},afterEvent:function(t,e){var n=t.legend;n&&n.handleEvent(e)}},Ti=V.noop;z._set("global",{title:{display:!1,fontStyle:"bold",fullWidth:!0,padding:10,position:"top",text:"",weight:2e3}});var Ii=X.extend({initialize:function(t){V.extend(this,t),this.legendHitBoxes=[]},beforeUpdate:Ti,update:function(t,e,n){var i=this;return i.beforeUpdate(),i.maxWidth=t,i.maxHeight=e,i.margins=n,i.beforeSetDimensions(),i.setDimensions(),i.afterSetDimensions(),i.beforeBuildLabels(),i.buildLabels(),i.afterBuildLabels(),i.beforeFit(),i.fit(),i.afterFit(),i.afterUpdate(),i.minSize},afterUpdate:Ti,beforeSetDimensions:Ti,setDimensions:function(){var t=this;t.isHorizontal()?(t.width=t.maxWidth,t.left=0,t.right=t.width):(t.height=t.maxHeight,t.top=0,t.bottom=t.height),t.paddingLeft=0,t.paddingTop=0,t.paddingRight=0,t.paddingBottom=0,t.minSize={width:0,height:0}},afterSetDimensions:Ti,beforeBuildLabels:Ti,buildLabels:Ti,afterBuildLabels:Ti,beforeFit:Ti,fit:function(){var t,e=this,n=e.options,i=e.minSize={},a=e.isHorizontal();n.display?(t=(V.isArray(n.text)?n.text.length:1)*V.options._parseFont(n).lineHeight+2*n.padding,e.width=i.width=a?e.maxWidth:t,e.height=i.height=a?t:e.maxHeight):e.width=i.width=e.height=i.height=0},afterFit:Ti,isHorizontal:function(){var t=this.options.position;return"top"===t||"bottom"===t},draw:function(){var t=this,e=t.ctx,n=t.options;if(n.display){var i,a,r,o=V.options._parseFont(n),s=o.lineHeight,l=s/2+n.padding,u=0,d=t.top,h=t.left,c=t.bottom,f=t.right;e.fillStyle=V.valueOrDefault(n.fontColor,z.global.defaultFontColor),e.font=o.string,t.isHorizontal()?(a=h+(f-h)/2,r=d+l,i=f-h):(a="left"===n.position?h+l:f-l,r=d+(c-d)/2,i=c-d,u=Math.PI*("left"===n.position?-.5:.5)),e.save(),e.translate(a,r),e.rotate(u),e.textAlign="center",e.textBaseline="middle";var g=n.text;if(V.isArray(g))for(var p=0,m=0;m=0;i--){var a=t[i];if(e(a))return a}},V.isNumber=function(t){return!isNaN(parseFloat(t))&&isFinite(t)},V.almostEquals=function(t,e,n){return Math.abs(t-e)=t},V.max=function(t){return t.reduce((function(t,e){return isNaN(e)?t:Math.max(t,e)}),Number.NEGATIVE_INFINITY)},V.min=function(t){return t.reduce((function(t,e){return isNaN(e)?t:Math.min(t,e)}),Number.POSITIVE_INFINITY)},V.sign=Math.sign?function(t){return Math.sign(t)}:function(t){return 0===(t=+t)||isNaN(t)?t:t>0?1:-1},V.toRadians=function(t){return t*(Math.PI/180)},V.toDegrees=function(t){return t*(180/Math.PI)},V._decimalPlaces=function(t){if(V.isFinite(t)){for(var e=1,n=0;Math.round(t*e)/e!==t;)e*=10,n++;return n}},V.getAngleFromPoint=function(t,e){var n=e.x-t.x,i=e.y-t.y,a=Math.sqrt(n*n+i*i),r=Math.atan2(i,n);return r<-.5*Math.PI&&(r+=2*Math.PI),{angle:r,distance:a}},V.distanceBetweenPoints=function(t,e){return Math.sqrt(Math.pow(e.x-t.x,2)+Math.pow(e.y-t.y,2))},V.aliasPixel=function(t){return t%2==0?0:.5},V._alignPixel=function(t,e,n){var i=t.currentDevicePixelRatio,a=n/2;return Math.round((e-a)*i)/i+a},V.splineCurve=function(t,e,n,i){var a=t.skip?e:t,r=e,o=n.skip?e:n,s=Math.sqrt(Math.pow(r.x-a.x,2)+Math.pow(r.y-a.y,2)),l=Math.sqrt(Math.pow(o.x-r.x,2)+Math.pow(o.y-r.y,2)),u=s/(s+l),d=l/(s+l),h=i*(u=isNaN(u)?0:u),c=i*(d=isNaN(d)?0:d);return{previous:{x:r.x-h*(o.x-a.x),y:r.y-h*(o.y-a.y)},next:{x:r.x+c*(o.x-a.x),y:r.y+c*(o.y-a.y)}}},V.EPSILON=Number.EPSILON||1e-14,V.splineCurveMonotone=function(t){var e,n,i,a,r,o,s,l,u,d=(t||[]).map((function(t){return{model:t._model,deltaK:0,mK:0}})),h=d.length;for(e=0;e0?d[e-1]:null,(a=e0?d[e-1]:null,a=e=t.length-1?t[0]:t[e+1]:e>=t.length-1?t[t.length-1]:t[e+1]},V.previousItem=function(t,e,n){return n?e<=0?t[t.length-1]:t[e-1]:e<=0?t[0]:t[e-1]},V.niceNum=function(t,e){var n=Math.floor(V.log10(t)),i=t/Math.pow(10,n);return(e?i<1.5?1:i<3?2:i<7?5:10:i<=1?1:i<=2?2:i<=5?5:10)*Math.pow(10,n)},V.requestAnimFrame="undefined"==typeof window?function(t){t()}:window.requestAnimationFrame||window.webkitRequestAnimationFrame||window.mozRequestAnimationFrame||window.oRequestAnimationFrame||window.msRequestAnimationFrame||function(t){return window.setTimeout(t,1e3/60)},V.getRelativePosition=function(t,e){var n,i,a=t.originalEvent||t,r=t.target||t.srcElement,o=r.getBoundingClientRect(),s=a.touches;s&&s.length>0?(n=s[0].clientX,i=s[0].clientY):(n=a.clientX,i=a.clientY);var l=parseFloat(V.getStyle(r,"padding-left")),u=parseFloat(V.getStyle(r,"padding-top")),d=parseFloat(V.getStyle(r,"padding-right")),h=parseFloat(V.getStyle(r,"padding-bottom")),c=o.right-o.left-l-d,f=o.bottom-o.top-u-h;return{x:n=Math.round((n-o.left-l)/c*r.width/e.currentDevicePixelRatio),y:i=Math.round((i-o.top-u)/f*r.height/e.currentDevicePixelRatio)}},V.getConstraintWidth=function(t){return n(t,"max-width","clientWidth")},V.getConstraintHeight=function(t){return n(t,"max-height","clientHeight")},V._calculatePadding=function(t,e,n){return(e=V.getStyle(t,e)).indexOf("%")>-1?n*parseInt(e,10)/100:parseInt(e,10)},V._getParentNode=function(t){var e=t.parentNode;return e&&"[object ShadowRoot]"===e.toString()&&(e=e.host),e},V.getMaximumWidth=function(t){var e=V._getParentNode(t);if(!e)return t.clientWidth;var n=e.clientWidth,i=n-V._calculatePadding(e,"padding-left",n)-V._calculatePadding(e,"padding-right",n),a=V.getConstraintWidth(t);return isNaN(a)?i:Math.min(i,a)},V.getMaximumHeight=function(t){var e=V._getParentNode(t);if(!e)return t.clientHeight;var n=e.clientHeight,i=n-V._calculatePadding(e,"padding-top",n)-V._calculatePadding(e,"padding-bottom",n),a=V.getConstraintHeight(t);return isNaN(a)?i:Math.min(i,a)},V.getStyle=function(t,e){return t.currentStyle?t.currentStyle[e]:document.defaultView.getComputedStyle(t,null).getPropertyValue(e)},V.retinaScale=function(t,e){var n=t.currentDevicePixelRatio=e||"undefined"!=typeof window&&window.devicePixelRatio||1;if(1!==n){var i=t.canvas,a=t.height,r=t.width;i.height=a*n,i.width=r*n,t.ctx.scale(n,n),i.style.height||i.style.width||(i.style.height=a+"px",i.style.width=r+"px")}},V.fontString=function(t,e,n){return e+" "+t+"px "+n},V.longestText=function(t,e,n,i){var a=(i=i||{}).data=i.data||{},r=i.garbageCollect=i.garbageCollect||[];i.font!==e&&(a=i.data={},r=i.garbageCollect=[],i.font=e),t.font=e;var o,s,l,u,d,h=0,c=n.length;for(o=0;on.length){for(o=0;oi&&(i=r),i},V.numberOfLabelLines=function(t){var e=1;return V.each(t,(function(t){V.isArray(t)&&t.length>e&&(e=t.length)})),e},V.color=k?function(t){return t instanceof CanvasGradient&&(t=z.global.defaultColor),k(t)}:function(t){return console.error("Color.js not found!"),t},V.getHoverColor=function(t){return t instanceof CanvasPattern||t instanceof CanvasGradient?t:V.color(t).saturate(.5).darken(.1).rgbString()}}(),tn._adapters=an,tn.Animation=Z,tn.animationService=$,tn.controllers=$t,tn.DatasetController=nt,tn.defaults=z,tn.Element=X,tn.elements=_t,tn.Interaction=ae,tn.layouts=ge,tn.platform=Fe,tn.plugins=Le,tn.Scale=xn,tn.scaleService=Oe,tn.Ticks=rn,tn.Tooltip=Ue,tn.helpers.each(ci,(function(t,e){tn.scaleService.registerScaleType(e,t,t._defaults)})),Li)Li.hasOwnProperty(Ni)&&tn.plugins.register(Li[Ni]);tn.platform.initialize();var Bi=tn;return"undefined"!=typeof window&&(window.Chart=tn),tn.Chart=tn,tn.Legend=Li.legend._element,tn.Title=Li.title._element,tn.pluginService=tn.plugins,tn.PluginBase=tn.Element.extend({}),tn.canvasHelpers=tn.helpers.canvas,tn.layoutService=tn.layouts,tn.LinearScaleBase=Sn,tn.helpers.each(["Bar","Bubble","Doughnut","Line","PolarArea","Radar","Scatter"],(function(t){tn[t]=function(e,n){return new tn(e,tn.helpers.merge(n||{},{type:t.charAt(0).toLowerCase()+t.slice(1)}))}})),Bi})); diff --git a/themes/default/js/plugins/jqtree.css b/themes/default/js/plugins/jqtree.css new file mode 100644 index 000000000..1e97f6c22 --- /dev/null +++ b/themes/default/js/plugins/jqtree.css @@ -0,0 +1,184 @@ +ul.jqtree-tree { + list-style: none outside; + margin-left: 0; + margin-bottom: 0; + padding: 0; +} + + ul.jqtree-tree ul.jqtree_common { + list-style: none outside; + margin-left: 12px; + margin-right: 0; + margin-bottom: 0; + padding: 0; + display: block; + } + + ul.jqtree-tree li.jqtree-closed > ul.jqtree_common { + display: none; + } + + ul.jqtree-tree li.jqtree_common { + clear: both; + list-style-type: none; + } + + ul.jqtree-tree .jqtree-toggler { + border-bottom: none; + color: #333; + text-decoration: none; + vertical-align: middle; + } + + ul.jqtree-tree .jqtree-toggler:hover { + color: #000; + text-decoration: none; + } + + ul.jqtree-tree .jqtree-toggler.jqtree-closed { + background-position: 0 0; + } + + ul.jqtree-tree .jqtree-toggler.jqtree-toggler-left { + margin-right: 0.5em; + } + + ul.jqtree-tree .jqtree-toggler.jqtree-toggler-right { + margin-left: 0.5em; + } + + ul.jqtree-tree .jqtree-element { + cursor: pointer; + position: relative; + display: -webkit-box; + display: flex; + } + + ul.jqtree-tree .jqtree-title { + color: #1C4257; + vertical-align: middle; + margin-left: 1.5em; + } + + ul.jqtree-tree .jqtree-title.jqtree-title-folder { + margin-left: 0; + } + + ul.jqtree-tree li.jqtree-folder { + margin-bottom: 4px; + } + + ul.jqtree-tree li.jqtree-folder.jqtree-closed { + margin-bottom: 1px; + } + + ul.jqtree-tree li.jqtree-ghost { + position: relative; + z-index: 10; + margin-right: 10px; + } + + ul.jqtree-tree li.jqtree-ghost span { + display: block; + } + + ul.jqtree-tree li.jqtree-ghost span.jqtree-circle { + border: solid 2px #0000ff; + border-radius: 100px; + height: 8px; + width: 8px; + position: absolute; + top: -4px; + left: -6px; + box-sizing: border-box; + } + + ul.jqtree-tree li.jqtree-ghost span.jqtree-line { + background-color: #0000ff; + height: 2px; + padding: 0; + position: absolute; + top: -1px; + left: 2px; + width: 100%; + } + + ul.jqtree-tree li.jqtree-ghost.jqtree-inside { + margin-left: 48px; + } + + ul.jqtree-tree span.jqtree-border { + position: absolute; + display: block; + left: -2px; + top: 0; + border: solid 2px #0000ff; + border-radius: 6px; + margin: 0; + box-sizing: content-box; + } + + ul.jqtree-tree li.jqtree-selected > .jqtree-element, + ul.jqtree-tree li.jqtree-selected > .jqtree-element:hover { + background-color: #97BDD6; + background: -webkit-gradient(linear, left top, left bottom, from(#BEE0F5), to(#89AFCA)); + background: linear-gradient(#BEE0F5, #89AFCA); + text-shadow: 0 1px 0 rgba(255, 255, 255, 0.7); + } + + ul.jqtree-tree .jqtree-moving > .jqtree-element .jqtree-title { + outline: dashed 1px #0000ff; + } + +ul.jqtree-tree.jqtree-rtl { + direction: rtl; +} + +ul.jqtree-tree.jqtree-rtl ul.jqtree_common { + margin-left: 0; + margin-right: 12px; + } + +ul.jqtree-tree.jqtree-rtl .jqtree-toggler { + margin-left: 0.5em; + margin-right: 0; + } + +ul.jqtree-tree.jqtree-rtl .jqtree-title { + margin-left: 0; + margin-right: 1.5em; + } + +ul.jqtree-tree.jqtree-rtl .jqtree-title.jqtree-title-folder { + margin-right: 0; + } + +ul.jqtree-tree.jqtree-rtl li.jqtree-ghost { + margin-right: 0; + margin-left: 10px; + } + +ul.jqtree-tree.jqtree-rtl li.jqtree-ghost span.jqtree-circle { + right: -6px; + } + +ul.jqtree-tree.jqtree-rtl li.jqtree-ghost span.jqtree-line { + right: 2px; + } + +ul.jqtree-tree.jqtree-rtl li.jqtree-ghost.jqtree-inside { + margin-left: 0; + margin-right: 48px; + } + +ul.jqtree-tree.jqtree-rtl span.jqtree-border { + right: -2px; + } + +span.jqtree-dragging { + color: #fff; + background: #000; + opacity: 0.6; + cursor: pointer; + padding: 2px 8px; +} diff --git a/themes/default/js/plugins/jquery-confirm.min.css b/themes/default/js/plugins/jquery-confirm.min.css new file mode 100644 index 000000000..bd1bc7590 --- /dev/null +++ b/themes/default/js/plugins/jquery-confirm.min.css @@ -0,0 +1,9 @@ +/*! + * jquery-confirm v3.3.4 (http://craftpip.github.io/jquery-confirm/) + * Author: boniface pereira + * Website: www.craftpip.com + * Contact: hey@craftpip.com + * + * Copyright 2013-2019 jquery-confirm + * Licensed under MIT (https://github.com/craftpip/jquery-confirm/blob/master/LICENSE) + */@-webkit-keyframes jconfirm-spin{from{-webkit-transform:rotate(0deg);transform:rotate(0deg)}to{-webkit-transform:rotate(360deg);transform:rotate(360deg)}}@keyframes jconfirm-spin{from{-webkit-transform:rotate(0deg);transform:rotate(0deg)}to{-webkit-transform:rotate(360deg);transform:rotate(360deg)}}body[class*=jconfirm-no-scroll-]{overflow:hidden!important}.jconfirm{position:fixed;top:0;left:0;right:0;bottom:0;z-index:99999999;font-family:inherit;overflow:hidden}.jconfirm .jconfirm-bg{position:fixed;top:0;left:0;right:0;bottom:0;-webkit-transition:opacity .4s;transition:opacity .4s}.jconfirm .jconfirm-bg.jconfirm-bg-h{opacity:0!important}.jconfirm .jconfirm-scrollpane{-webkit-perspective:500px;perspective:500px;-webkit-perspective-origin:center;perspective-origin:center;display:table;width:100%;height:100%}.jconfirm .jconfirm-row{display:table-row;width:100%}.jconfirm .jconfirm-cell{display:table-cell;vertical-align:middle}.jconfirm .jconfirm-holder{max-height:100%;padding:50px 0}.jconfirm .jconfirm-box-container{-webkit-transition:-webkit-transform;transition:-webkit-transform;transition:transform;transition:transform,-webkit-transform}.jconfirm .jconfirm-box-container.jconfirm-no-transition{-webkit-transition:none!important;transition:none!important}.jconfirm .jconfirm-box{background:white;border-radius:4px;position:relative;outline:0;padding:15px 15px 0;overflow:hidden;margin-left:auto;margin-right:auto}@-webkit-keyframes type-blue{1%,100%{border-color:#3498db}50%{border-color:#5faee3}}@keyframes type-blue{1%,100%{border-color:#3498db}50%{border-color:#5faee3}}@-webkit-keyframes type-green{1%,100%{border-color:#2ecc71}50%{border-color:#54d98c}}@keyframes type-green{1%,100%{border-color:#2ecc71}50%{border-color:#54d98c}}@-webkit-keyframes type-red{1%,100%{border-color:#e74c3c}50%{border-color:#ed7669}}@keyframes type-red{1%,100%{border-color:#e74c3c}50%{border-color:#ed7669}}@-webkit-keyframes type-orange{1%,100%{border-color:#f1c40f}50%{border-color:#f4d03f}}@keyframes type-orange{1%,100%{border-color:#f1c40f}50%{border-color:#f4d03f}}@-webkit-keyframes type-purple{1%,100%{border-color:#9b59b6}50%{border-color:#b07cc6}}@keyframes type-purple{1%,100%{border-color:#9b59b6}50%{border-color:#b07cc6}}@-webkit-keyframes type-dark{1%,100%{border-color:#34495e}50%{border-color:#46627f}}@keyframes type-dark{1%,100%{border-color:#34495e}50%{border-color:#46627f}}.jconfirm .jconfirm-box.jconfirm-type-animated{-webkit-animation-duration:2s;animation-duration:2s;-webkit-animation-iteration-count:infinite;animation-iteration-count:infinite}.jconfirm .jconfirm-box.jconfirm-type-blue{border-top:solid 7px #3498db;-webkit-animation-name:type-blue;animation-name:type-blue}.jconfirm .jconfirm-box.jconfirm-type-green{border-top:solid 7px #2ecc71;-webkit-animation-name:type-green;animation-name:type-green}.jconfirm .jconfirm-box.jconfirm-type-red{border-top:solid 7px #e74c3c;-webkit-animation-name:type-red;animation-name:type-red}.jconfirm .jconfirm-box.jconfirm-type-orange{border-top:solid 7px #f1c40f;-webkit-animation-name:type-orange;animation-name:type-orange}.jconfirm .jconfirm-box.jconfirm-type-purple{border-top:solid 7px #9b59b6;-webkit-animation-name:type-purple;animation-name:type-purple}.jconfirm .jconfirm-box.jconfirm-type-dark{border-top:solid 7px #34495e;-webkit-animation-name:type-dark;animation-name:type-dark}.jconfirm .jconfirm-box.loading{height:120px}.jconfirm .jconfirm-box.loading:before{content:'';position:absolute;left:0;background:white;right:0;top:0;bottom:0;border-radius:10px;z-index:1}.jconfirm .jconfirm-box.loading:after{opacity:.6;content:'';height:30px;width:30px;border:solid 3px transparent;position:absolute;left:50%;margin-left:-15px;border-radius:50%;-webkit-animation:jconfirm-spin 1s infinite linear;animation:jconfirm-spin 1s infinite linear;border-bottom-color:dodgerblue;top:50%;margin-top:-15px;z-index:2}.jconfirm .jconfirm-box div.jconfirm-closeIcon{height:20px;width:20px;position:absolute;top:10px;right:10px;cursor:pointer;opacity:.6;text-align:center;font-size:27px!important;line-height:14px!important;display:none;z-index:1}.jconfirm .jconfirm-box div.jconfirm-closeIcon:empty{display:none}.jconfirm .jconfirm-box div.jconfirm-closeIcon .fa{font-size:16px}.jconfirm .jconfirm-box div.jconfirm-closeIcon .glyphicon{font-size:16px}.jconfirm .jconfirm-box div.jconfirm-closeIcon .zmdi{font-size:16px}.jconfirm .jconfirm-box div.jconfirm-closeIcon:hover{opacity:1}.jconfirm .jconfirm-box div.jconfirm-title-c{display:block;font-size:22px;line-height:20px;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none;cursor:default;padding-bottom:15px}.jconfirm .jconfirm-box div.jconfirm-title-c.jconfirm-hand{cursor:move}.jconfirm .jconfirm-box div.jconfirm-title-c .jconfirm-icon-c{font-size:inherit;display:inline-block;vertical-align:middle}.jconfirm .jconfirm-box div.jconfirm-title-c .jconfirm-icon-c i{vertical-align:middle}.jconfirm .jconfirm-box div.jconfirm-title-c .jconfirm-icon-c:empty{display:none}.jconfirm .jconfirm-box div.jconfirm-title-c .jconfirm-title{-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none;font-size:inherit;font-family:inherit;display:inline-block;vertical-align:middle}.jconfirm .jconfirm-box div.jconfirm-title-c .jconfirm-title:empty{display:none}.jconfirm .jconfirm-box div.jconfirm-content-pane{margin-bottom:15px;height:auto;-webkit-transition:height .4s ease-in;transition:height .4s ease-in;display:inline-block;width:100%;position:relative;overflow-x:hidden;overflow-y:auto}.jconfirm .jconfirm-box div.jconfirm-content-pane.no-scroll{overflow-y:hidden}.jconfirm .jconfirm-box div.jconfirm-content-pane::-webkit-scrollbar{width:3px}.jconfirm .jconfirm-box div.jconfirm-content-pane::-webkit-scrollbar-track{background:rgba(0,0,0,0.1)}.jconfirm .jconfirm-box div.jconfirm-content-pane::-webkit-scrollbar-thumb{background:#666;border-radius:3px}.jconfirm .jconfirm-box div.jconfirm-content-pane .jconfirm-content{overflow:auto}.jconfirm .jconfirm-box div.jconfirm-content-pane .jconfirm-content img{max-width:100%;height:auto}.jconfirm .jconfirm-box div.jconfirm-content-pane .jconfirm-content:empty{display:none}.jconfirm .jconfirm-box .jconfirm-buttons{padding-bottom:11px}.jconfirm .jconfirm-box .jconfirm-buttons>button{margin-bottom:4px;margin-left:2px;margin-right:2px}.jconfirm .jconfirm-box .jconfirm-buttons button{display:inline-block;padding:6px 12px;font-size:14px;font-weight:400;line-height:1.42857143;text-align:center;white-space:nowrap;vertical-align:middle;-ms-touch-action:manipulation;touch-action:manipulation;cursor:pointer;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none;border-radius:4px;min-height:1em;-webkit-transition:opacity .1s ease,background-color .1s ease,color .1s ease,background .1s ease,-webkit-box-shadow .1s ease;transition:opacity .1s ease,background-color .1s ease,color .1s ease,background .1s ease,-webkit-box-shadow .1s ease;transition:opacity .1s ease,background-color .1s ease,color .1s ease,box-shadow .1s ease,background .1s ease;transition:opacity .1s ease,background-color .1s ease,color .1s ease,box-shadow .1s ease,background .1s ease,-webkit-box-shadow .1s ease;-webkit-tap-highlight-color:transparent;border:0;background-image:none}.jconfirm .jconfirm-box .jconfirm-buttons button.btn-blue{background-color:#3498db;color:#FFF;text-shadow:none;-webkit-transition:background .2s;transition:background .2s}.jconfirm .jconfirm-box .jconfirm-buttons button.btn-blue:hover{background-color:#2980b9;color:#FFF}.jconfirm .jconfirm-box .jconfirm-buttons button.btn-green{background-color:#2ecc71;color:#FFF;text-shadow:none;-webkit-transition:background .2s;transition:background .2s}.jconfirm .jconfirm-box .jconfirm-buttons button.btn-green:hover{background-color:#27ae60;color:#FFF}.jconfirm .jconfirm-box .jconfirm-buttons button.btn-red{background-color:#e74c3c;color:#FFF;text-shadow:none;-webkit-transition:background .2s;transition:background .2s}.jconfirm .jconfirm-box .jconfirm-buttons button.btn-red:hover{background-color:#c0392b;color:#FFF}.jconfirm .jconfirm-box .jconfirm-buttons button.btn-orange{background-color:#f1c40f;color:#FFF;text-shadow:none;-webkit-transition:background .2s;transition:background .2s}.jconfirm .jconfirm-box .jconfirm-buttons button.btn-orange:hover{background-color:#f39c12;color:#FFF}.jconfirm .jconfirm-box .jconfirm-buttons button.btn-default{background-color:#ecf0f1;color:#000;text-shadow:none;-webkit-transition:background .2s;transition:background .2s}.jconfirm .jconfirm-box .jconfirm-buttons button.btn-default:hover{background-color:#bdc3c7;color:#000}.jconfirm .jconfirm-box .jconfirm-buttons button.btn-purple{background-color:#9b59b6;color:#FFF;text-shadow:none;-webkit-transition:background .2s;transition:background .2s}.jconfirm .jconfirm-box .jconfirm-buttons button.btn-purple:hover{background-color:#8e44ad;color:#FFF}.jconfirm .jconfirm-box .jconfirm-buttons button.btn-dark{background-color:#34495e;color:#FFF;text-shadow:none;-webkit-transition:background .2s;transition:background .2s}.jconfirm .jconfirm-box .jconfirm-buttons button.btn-dark:hover{background-color:#2c3e50;color:#FFF}.jconfirm .jconfirm-box.jconfirm-type-red .jconfirm-title-c .jconfirm-icon-c{color:#e74c3c!important}.jconfirm .jconfirm-box.jconfirm-type-blue .jconfirm-title-c .jconfirm-icon-c{color:#3498db!important}.jconfirm .jconfirm-box.jconfirm-type-green .jconfirm-title-c .jconfirm-icon-c{color:#2ecc71!important}.jconfirm .jconfirm-box.jconfirm-type-purple .jconfirm-title-c .jconfirm-icon-c{color:#9b59b6!important}.jconfirm .jconfirm-box.jconfirm-type-orange .jconfirm-title-c .jconfirm-icon-c{color:#f1c40f!important}.jconfirm .jconfirm-box.jconfirm-type-dark .jconfirm-title-c .jconfirm-icon-c{color:#34495e!important}.jconfirm .jconfirm-clear{clear:both}.jconfirm.jconfirm-rtl{direction:rtl}.jconfirm.jconfirm-rtl div.jconfirm-closeIcon{left:5px;right:auto}.jconfirm.jconfirm-white .jconfirm-bg,.jconfirm.jconfirm-light .jconfirm-bg{background-color:#444;opacity:.2}.jconfirm.jconfirm-white .jconfirm-box,.jconfirm.jconfirm-light .jconfirm-box{-webkit-box-shadow:0 2px 6px rgba(0,0,0,0.2);box-shadow:0 2px 6px rgba(0,0,0,0.2);border-radius:5px}.jconfirm.jconfirm-white .jconfirm-box .jconfirm-title-c .jconfirm-icon-c,.jconfirm.jconfirm-light .jconfirm-box .jconfirm-title-c .jconfirm-icon-c{margin-right:8px;margin-left:0}.jconfirm.jconfirm-white .jconfirm-box .jconfirm-buttons,.jconfirm.jconfirm-light .jconfirm-box .jconfirm-buttons{float:right}.jconfirm.jconfirm-white .jconfirm-box .jconfirm-buttons button,.jconfirm.jconfirm-light .jconfirm-box .jconfirm-buttons button{text-transform:uppercase;font-size:14px;font-weight:bold;text-shadow:none}.jconfirm.jconfirm-white .jconfirm-box .jconfirm-buttons button.btn-default,.jconfirm.jconfirm-light .jconfirm-box .jconfirm-buttons button.btn-default{-webkit-box-shadow:none;box-shadow:none;color:#333}.jconfirm.jconfirm-white .jconfirm-box .jconfirm-buttons button.btn-default:hover,.jconfirm.jconfirm-light .jconfirm-box .jconfirm-buttons button.btn-default:hover{background:#ddd}.jconfirm.jconfirm-white.jconfirm-rtl .jconfirm-title-c .jconfirm-icon-c,.jconfirm.jconfirm-light.jconfirm-rtl .jconfirm-title-c .jconfirm-icon-c{margin-left:8px;margin-right:0}.jconfirm.jconfirm-black .jconfirm-bg,.jconfirm.jconfirm-dark .jconfirm-bg{background-color:darkslategray;opacity:.4}.jconfirm.jconfirm-black .jconfirm-box,.jconfirm.jconfirm-dark .jconfirm-box{-webkit-box-shadow:0 2px 6px rgba(0,0,0,0.2);box-shadow:0 2px 6px rgba(0,0,0,0.2);background:#444;border-radius:5px;color:white}.jconfirm.jconfirm-black .jconfirm-box .jconfirm-title-c .jconfirm-icon-c,.jconfirm.jconfirm-dark .jconfirm-box .jconfirm-title-c .jconfirm-icon-c{margin-right:8px;margin-left:0}.jconfirm.jconfirm-black .jconfirm-box .jconfirm-buttons,.jconfirm.jconfirm-dark .jconfirm-box .jconfirm-buttons{float:right}.jconfirm.jconfirm-black .jconfirm-box .jconfirm-buttons button,.jconfirm.jconfirm-dark .jconfirm-box .jconfirm-buttons button{border:0;background-image:none;text-transform:uppercase;font-size:14px;font-weight:bold;text-shadow:none;-webkit-transition:background .1s;transition:background .1s;color:white}.jconfirm.jconfirm-black .jconfirm-box .jconfirm-buttons button.btn-default,.jconfirm.jconfirm-dark .jconfirm-box .jconfirm-buttons button.btn-default{-webkit-box-shadow:none;box-shadow:none;color:#fff;background:0}.jconfirm.jconfirm-black .jconfirm-box .jconfirm-buttons button.btn-default:hover,.jconfirm.jconfirm-dark .jconfirm-box .jconfirm-buttons button.btn-default:hover{background:#666}.jconfirm.jconfirm-black.jconfirm-rtl .jconfirm-title-c .jconfirm-icon-c,.jconfirm.jconfirm-dark.jconfirm-rtl .jconfirm-title-c .jconfirm-icon-c{margin-left:8px;margin-right:0}.jconfirm .jconfirm-box.hilight.jconfirm-hilight-shake{-webkit-animation:shake .82s cubic-bezier(0.36,0.07,0.19,0.97) both;animation:shake .82s cubic-bezier(0.36,0.07,0.19,0.97) both;-webkit-transform:translate3d(0,0,0);transform:translate3d(0,0,0)}.jconfirm .jconfirm-box.hilight.jconfirm-hilight-glow{-webkit-animation:glow .82s cubic-bezier(0.36,0.07,0.19,0.97) both;animation:glow .82s cubic-bezier(0.36,0.07,0.19,0.97) both;-webkit-transform:translate3d(0,0,0);transform:translate3d(0,0,0)}@-webkit-keyframes shake{10%,90%{-webkit-transform:translate3d(-2px,0,0);transform:translate3d(-2px,0,0)}20%,80%{-webkit-transform:translate3d(4px,0,0);transform:translate3d(4px,0,0)}30%,50%,70%{-webkit-transform:translate3d(-8px,0,0);transform:translate3d(-8px,0,0)}40%,60%{-webkit-transform:translate3d(8px,0,0);transform:translate3d(8px,0,0)}}@keyframes shake{10%,90%{-webkit-transform:translate3d(-2px,0,0);transform:translate3d(-2px,0,0)}20%,80%{-webkit-transform:translate3d(4px,0,0);transform:translate3d(4px,0,0)}30%,50%,70%{-webkit-transform:translate3d(-8px,0,0);transform:translate3d(-8px,0,0)}40%,60%{-webkit-transform:translate3d(8px,0,0);transform:translate3d(8px,0,0)}}@-webkit-keyframes glow{0%,100%{-webkit-box-shadow:0 0 0 red;box-shadow:0 0 0 red}50%{-webkit-box-shadow:0 0 30px red;box-shadow:0 0 30px red}}@keyframes glow{0%,100%{-webkit-box-shadow:0 0 0 red;box-shadow:0 0 0 red}50%{-webkit-box-shadow:0 0 30px red;box-shadow:0 0 30px red}}.jconfirm{-webkit-perspective:400px;perspective:400px}.jconfirm .jconfirm-box{opacity:1;-webkit-transition-property:all;transition-property:all}.jconfirm .jconfirm-box.jconfirm-animation-top,.jconfirm .jconfirm-box.jconfirm-animation-left,.jconfirm .jconfirm-box.jconfirm-animation-right,.jconfirm .jconfirm-box.jconfirm-animation-bottom,.jconfirm .jconfirm-box.jconfirm-animation-opacity,.jconfirm .jconfirm-box.jconfirm-animation-zoom,.jconfirm .jconfirm-box.jconfirm-animation-scale,.jconfirm .jconfirm-box.jconfirm-animation-none,.jconfirm .jconfirm-box.jconfirm-animation-rotate,.jconfirm .jconfirm-box.jconfirm-animation-rotatex,.jconfirm .jconfirm-box.jconfirm-animation-rotatey,.jconfirm .jconfirm-box.jconfirm-animation-scaley,.jconfirm .jconfirm-box.jconfirm-animation-scalex{opacity:0}.jconfirm .jconfirm-box.jconfirm-animation-rotate{-webkit-transform:rotate(90deg);transform:rotate(90deg)}.jconfirm .jconfirm-box.jconfirm-animation-rotatex{-webkit-transform:rotateX(90deg);transform:rotateX(90deg);-webkit-transform-origin:center;transform-origin:center}.jconfirm .jconfirm-box.jconfirm-animation-rotatexr{-webkit-transform:rotateX(-90deg);transform:rotateX(-90deg);-webkit-transform-origin:center;transform-origin:center}.jconfirm .jconfirm-box.jconfirm-animation-rotatey{-webkit-transform:rotatey(90deg);transform:rotatey(90deg);-webkit-transform-origin:center;transform-origin:center}.jconfirm .jconfirm-box.jconfirm-animation-rotateyr{-webkit-transform:rotatey(-90deg);transform:rotatey(-90deg);-webkit-transform-origin:center;transform-origin:center}.jconfirm .jconfirm-box.jconfirm-animation-scaley{-webkit-transform:scaley(1.5);transform:scaley(1.5);-webkit-transform-origin:center;transform-origin:center}.jconfirm .jconfirm-box.jconfirm-animation-scalex{-webkit-transform:scalex(1.5);transform:scalex(1.5);-webkit-transform-origin:center;transform-origin:center}.jconfirm .jconfirm-box.jconfirm-animation-top{-webkit-transform:translate(0px,-100px);transform:translate(0px,-100px)}.jconfirm .jconfirm-box.jconfirm-animation-left{-webkit-transform:translate(-100px,0px);transform:translate(-100px,0px)}.jconfirm .jconfirm-box.jconfirm-animation-right{-webkit-transform:translate(100px,0px);transform:translate(100px,0px)}.jconfirm .jconfirm-box.jconfirm-animation-bottom{-webkit-transform:translate(0px,100px);transform:translate(0px,100px)}.jconfirm .jconfirm-box.jconfirm-animation-zoom{-webkit-transform:scale(1.2);transform:scale(1.2)}.jconfirm .jconfirm-box.jconfirm-animation-scale{-webkit-transform:scale(0.5);transform:scale(0.5)}.jconfirm .jconfirm-box.jconfirm-animation-none{visibility:hidden}.jconfirm.jconfirm-supervan .jconfirm-bg{background-color:rgba(54,70,93,0.95)}.jconfirm.jconfirm-supervan .jconfirm-box{background-color:transparent}.jconfirm.jconfirm-supervan .jconfirm-box.jconfirm-type-blue{border:0}.jconfirm.jconfirm-supervan .jconfirm-box.jconfirm-type-green{border:0}.jconfirm.jconfirm-supervan .jconfirm-box.jconfirm-type-red{border:0}.jconfirm.jconfirm-supervan .jconfirm-box.jconfirm-type-orange{border:0}.jconfirm.jconfirm-supervan .jconfirm-box.jconfirm-type-purple{border:0}.jconfirm.jconfirm-supervan .jconfirm-box.jconfirm-type-dark{border:0}.jconfirm.jconfirm-supervan .jconfirm-box div.jconfirm-closeIcon{color:white}.jconfirm.jconfirm-supervan .jconfirm-box div.jconfirm-title-c{text-align:center;color:white;font-size:28px;font-weight:normal}.jconfirm.jconfirm-supervan .jconfirm-box div.jconfirm-title-c>*{padding-bottom:25px}.jconfirm.jconfirm-supervan .jconfirm-box div.jconfirm-title-c .jconfirm-icon-c{margin-right:8px;margin-left:0}.jconfirm.jconfirm-supervan .jconfirm-box div.jconfirm-content-pane{margin-bottom:25px}.jconfirm.jconfirm-supervan .jconfirm-box div.jconfirm-content{text-align:center;color:white}.jconfirm.jconfirm-supervan .jconfirm-box .jconfirm-buttons{text-align:center}.jconfirm.jconfirm-supervan .jconfirm-box .jconfirm-buttons button{font-size:16px;border-radius:2px;background:#303f53;text-shadow:none;border:0;color:white;padding:10px;min-width:100px}.jconfirm.jconfirm-supervan.jconfirm-rtl .jconfirm-box div.jconfirm-title-c .jconfirm-icon-c{margin-left:8px;margin-right:0}.jconfirm.jconfirm-material .jconfirm-bg{background-color:rgba(0,0,0,0.67)}.jconfirm.jconfirm-material .jconfirm-box{background-color:white;-webkit-box-shadow:0 7px 8px -4px rgba(0,0,0,0.2),0 13px 19px 2px rgba(0,0,0,0.14),0 5px 24px 4px rgba(0,0,0,0.12);box-shadow:0 7px 8px -4px rgba(0,0,0,0.2),0 13px 19px 2px rgba(0,0,0,0.14),0 5px 24px 4px rgba(0,0,0,0.12);padding:30px 25px 10px 25px}.jconfirm.jconfirm-material .jconfirm-box .jconfirm-title-c .jconfirm-icon-c{margin-right:8px;margin-left:0}.jconfirm.jconfirm-material .jconfirm-box div.jconfirm-closeIcon{color:rgba(0,0,0,0.87)}.jconfirm.jconfirm-material .jconfirm-box div.jconfirm-title-c{color:rgba(0,0,0,0.87);font-size:22px;font-weight:bold}.jconfirm.jconfirm-material .jconfirm-box div.jconfirm-content{color:rgba(0,0,0,0.87)}.jconfirm.jconfirm-material .jconfirm-box .jconfirm-buttons{text-align:right}.jconfirm.jconfirm-material .jconfirm-box .jconfirm-buttons button{text-transform:uppercase;font-weight:500}.jconfirm.jconfirm-material.jconfirm-rtl .jconfirm-title-c .jconfirm-icon-c{margin-left:8px;margin-right:0}.jconfirm.jconfirm-bootstrap .jconfirm-bg{background-color:rgba(0,0,0,0.21)}.jconfirm.jconfirm-bootstrap .jconfirm-box{background-color:white;-webkit-box-shadow:0 3px 8px 0 rgba(0,0,0,0.2);box-shadow:0 3px 8px 0 rgba(0,0,0,0.2);border:solid 1px rgba(0,0,0,0.4);padding:15px 0 0}.jconfirm.jconfirm-bootstrap .jconfirm-box .jconfirm-title-c .jconfirm-icon-c{margin-right:8px;margin-left:0}.jconfirm.jconfirm-bootstrap .jconfirm-box div.jconfirm-closeIcon{color:rgba(0,0,0,0.87)}.jconfirm.jconfirm-bootstrap .jconfirm-box div.jconfirm-title-c{color:rgba(0,0,0,0.87);font-size:22px;font-weight:bold;padding-left:15px;padding-right:15px}.jconfirm.jconfirm-bootstrap .jconfirm-box div.jconfirm-content{color:rgba(0,0,0,0.87);padding:0 15px}.jconfirm.jconfirm-bootstrap .jconfirm-box .jconfirm-buttons{text-align:right;padding:10px;margin:-5px 0 0;border-top:solid 1px #ddd;overflow:hidden;border-radius:0 0 4px 4px}.jconfirm.jconfirm-bootstrap .jconfirm-box .jconfirm-buttons button{font-weight:500}.jconfirm.jconfirm-bootstrap.jconfirm-rtl .jconfirm-title-c .jconfirm-icon-c{margin-left:8px;margin-right:0}.jconfirm.jconfirm-modern .jconfirm-bg{background-color:slategray;opacity:.6}.jconfirm.jconfirm-modern .jconfirm-box{background-color:white;-webkit-box-shadow:0 7px 8px -4px rgba(0,0,0,0.2),0 13px 19px 2px rgba(0,0,0,0.14),0 5px 24px 4px rgba(0,0,0,0.12);box-shadow:0 7px 8px -4px rgba(0,0,0,0.2),0 13px 19px 2px rgba(0,0,0,0.14),0 5px 24px 4px rgba(0,0,0,0.12);padding:30px 30px 15px}.jconfirm.jconfirm-modern .jconfirm-box div.jconfirm-closeIcon{color:rgba(0,0,0,0.87);top:15px;right:15px}.jconfirm.jconfirm-modern .jconfirm-box div.jconfirm-title-c{color:rgba(0,0,0,0.87);font-size:24px;font-weight:bold;text-align:center;margin-bottom:10px}.jconfirm.jconfirm-modern .jconfirm-box div.jconfirm-title-c .jconfirm-icon-c{-webkit-transition:-webkit-transform .5s;transition:-webkit-transform .5s;transition:transform .5s;transition:transform .5s,-webkit-transform .5s;-webkit-transform:scale(0);transform:scale(0);display:block;margin-right:0;margin-left:0;margin-bottom:10px;font-size:69px;color:#aaa}.jconfirm.jconfirm-modern .jconfirm-box div.jconfirm-content{text-align:center;font-size:15px;color:#777;margin-bottom:25px}.jconfirm.jconfirm-modern .jconfirm-box .jconfirm-buttons{text-align:center}.jconfirm.jconfirm-modern .jconfirm-box .jconfirm-buttons button{font-weight:bold;text-transform:uppercase;-webkit-transition:background .1s;transition:background .1s;padding:10px 20px}.jconfirm.jconfirm-modern .jconfirm-box .jconfirm-buttons button+button{margin-left:4px}.jconfirm.jconfirm-modern.jconfirm-open .jconfirm-box .jconfirm-title-c .jconfirm-icon-c{-webkit-transform:scale(1);transform:scale(1)} \ No newline at end of file diff --git a/themes/default/js/plugins/jquery-confirm.min.js b/themes/default/js/plugins/jquery-confirm.min.js new file mode 100644 index 000000000..4cf8123e2 --- /dev/null +++ b/themes/default/js/plugins/jquery-confirm.min.js @@ -0,0 +1,10 @@ +/*! + * jquery-confirm v3.3.4 (http://craftpip.github.io/jquery-confirm/) + * Author: Boniface Pereira + * Website: www.craftpip.com + * Contact: hey@craftpip.com + * + * Copyright 2013-2019 jquery-confirm + * Licensed under MIT (https://github.com/craftpip/jquery-confirm/blob/master/LICENSE) + */ +(function(factory){if(typeof define==="function"&&define.amd){define(["jquery"],factory);}else{if(typeof module==="object"&&module.exports){module.exports=function(root,jQuery){if(jQuery===undefined){if(typeof window!=="undefined"){jQuery=require("jquery");}else{jQuery=require("jquery")(root);}}factory(jQuery);return jQuery;};}else{factory(jQuery);}}}(function($){var w=window;$.fn.confirm=function(options,option2){if(typeof options==="undefined"){options={};}if(typeof options==="string"){options={content:options,title:(option2)?option2:false};}$(this).each(function(){var $this=$(this);if($this.attr("jc-attached")){console.warn("jConfirm has already been attached to this element ",$this[0]);return;}$this.on("click",function(e){e.preventDefault();var jcOption=$.extend({},options);if($this.attr("data-title")){jcOption.title=$this.attr("data-title");}if($this.attr("data-content")){jcOption.content=$this.attr("data-content");}if(typeof jcOption.buttons==="undefined"){jcOption.buttons={};}jcOption["$target"]=$this;if($this.attr("href")&&Object.keys(jcOption.buttons).length===0){var buttons=$.extend(true,{},w.jconfirm.pluginDefaults.defaultButtons,(w.jconfirm.defaults||{}).defaultButtons||{});var firstBtn=Object.keys(buttons)[0];jcOption.buttons=buttons;jcOption.buttons[firstBtn].action=function(){location.href=$this.attr("href");};}jcOption.closeIcon=false;var instance=$.confirm(jcOption);});$this.attr("jc-attached",true);});return $(this);};$.confirm=function(options,option2){if(typeof options==="undefined"){options={};}if(typeof options==="string"){options={content:options,title:(option2)?option2:false};}var putDefaultButtons=!(options.buttons===false);if(typeof options.buttons!=="object"){options.buttons={};}if(Object.keys(options.buttons).length===0&&putDefaultButtons){var buttons=$.extend(true,{},w.jconfirm.pluginDefaults.defaultButtons,(w.jconfirm.defaults||{}).defaultButtons||{});options.buttons=buttons;}return w.jconfirm(options);};$.alert=function(options,option2){if(typeof options==="undefined"){options={};}if(typeof options==="string"){options={content:options,title:(option2)?option2:false};}var putDefaultButtons=!(options.buttons===false);if(typeof options.buttons!=="object"){options.buttons={};}if(Object.keys(options.buttons).length===0&&putDefaultButtons){var buttons=$.extend(true,{},w.jconfirm.pluginDefaults.defaultButtons,(w.jconfirm.defaults||{}).defaultButtons||{});var firstBtn=Object.keys(buttons)[0];options.buttons[firstBtn]=buttons[firstBtn];}return w.jconfirm(options);};$.dialog=function(options,option2){if(typeof options==="undefined"){options={};}if(typeof options==="string"){options={content:options,title:(option2)?option2:false,closeIcon:function(){}};}options.buttons={};if(typeof options.closeIcon==="undefined"){options.closeIcon=function(){};}options.confirmKeys=[13];return w.jconfirm(options);};w.jconfirm=function(options){if(typeof options==="undefined"){options={};}var pluginOptions=$.extend(true,{},w.jconfirm.pluginDefaults);if(w.jconfirm.defaults){pluginOptions=$.extend(true,pluginOptions,w.jconfirm.defaults);}pluginOptions=$.extend(true,{},pluginOptions,options);var instance=new w.Jconfirm(pluginOptions);w.jconfirm.instances.push(instance);return instance;};w.Jconfirm=function(options){$.extend(this,options);this._init();};w.Jconfirm.prototype={_init:function(){var that=this;if(!w.jconfirm.instances.length){w.jconfirm.lastFocused=$("body").find(":focus");}this._id=Math.round(Math.random()*99999);this.contentParsed=$(document.createElement("div"));if(!this.lazyOpen){setTimeout(function(){that.open();},0);}},_buildHTML:function(){var that=this;this._parseAnimation(this.animation,"o");this._parseAnimation(this.closeAnimation,"c");this._parseBgDismissAnimation(this.backgroundDismissAnimation);this._parseColumnClass(this.columnClass);this._parseTheme(this.theme);this._parseType(this.type);var template=$(this.template);template.find(".jconfirm-box").addClass(this.animationParsed).addClass(this.backgroundDismissAnimationParsed).addClass(this.typeParsed);if(this.typeAnimated){template.find(".jconfirm-box").addClass("jconfirm-type-animated");}if(this.useBootstrap){template.find(".jc-bs3-row").addClass(this.bootstrapClasses.row);template.find(".jc-bs3-row").addClass("justify-content-md-center justify-content-sm-center justify-content-xs-center justify-content-lg-center");template.find(".jconfirm-box-container").addClass(this.columnClassParsed);if(this.containerFluid){template.find(".jc-bs3-container").addClass(this.bootstrapClasses.containerFluid);}else{template.find(".jc-bs3-container").addClass(this.bootstrapClasses.container);}}else{template.find(".jconfirm-box").css("width",this.boxWidth);}if(this.titleClass){template.find(".jconfirm-title-c").addClass(this.titleClass);}template.addClass(this.themeParsed);var ariaLabel="jconfirm-box"+this._id;template.find(".jconfirm-box").attr("aria-labelledby",ariaLabel).attr("tabindex",-1);template.find(".jconfirm-content").attr("id",ariaLabel);if(this.bgOpacity!==null){template.find(".jconfirm-bg").css("opacity",this.bgOpacity);}if(this.rtl){template.addClass("jconfirm-rtl");}this.$el=template.appendTo(this.container);this.$jconfirmBoxContainer=this.$el.find(".jconfirm-box-container");this.$jconfirmBox=this.$body=this.$el.find(".jconfirm-box");this.$jconfirmBg=this.$el.find(".jconfirm-bg");this.$title=this.$el.find(".jconfirm-title");this.$titleContainer=this.$el.find(".jconfirm-title-c");this.$content=this.$el.find("div.jconfirm-content");this.$contentPane=this.$el.find(".jconfirm-content-pane");this.$icon=this.$el.find(".jconfirm-icon-c");this.$closeIcon=this.$el.find(".jconfirm-closeIcon");this.$holder=this.$el.find(".jconfirm-holder");this.$btnc=this.$el.find(".jconfirm-buttons");this.$scrollPane=this.$el.find(".jconfirm-scrollpane");that.setStartingPoint();this._contentReady=$.Deferred();this._modalReady=$.Deferred();this.$holder.css({"padding-top":this.offsetTop,"padding-bottom":this.offsetBottom,});this.setTitle();this.setIcon();this._setButtons();this._parseContent();this.initDraggable();if(this.isAjax){this.showLoading(false);}$.when(this._contentReady,this._modalReady).then(function(){if(that.isAjaxLoading){setTimeout(function(){that.isAjaxLoading=false;that.setContent();that.setTitle();that.setIcon();setTimeout(function(){that.hideLoading(false);that._updateContentMaxHeight();},100);if(typeof that.onContentReady==="function"){that.onContentReady();}},50);}else{that._updateContentMaxHeight();that.setTitle();that.setIcon();if(typeof that.onContentReady==="function"){that.onContentReady();}}if(that.autoClose){that._startCountDown();}}).then(function(){that._watchContent();});if(this.animation==="none"){this.animationSpeed=1;this.animationBounce=1;}this.$body.css(this._getCSS(this.animationSpeed,this.animationBounce));this.$contentPane.css(this._getCSS(this.animationSpeed,1));this.$jconfirmBg.css(this._getCSS(this.animationSpeed,1));this.$jconfirmBoxContainer.css(this._getCSS(this.animationSpeed,1));},_typePrefix:"jconfirm-type-",typeParsed:"",_parseType:function(type){this.typeParsed=this._typePrefix+type;},setType:function(type){var oldClass=this.typeParsed;this._parseType(type);this.$jconfirmBox.removeClass(oldClass).addClass(this.typeParsed);},themeParsed:"",_themePrefix:"jconfirm-",setTheme:function(theme){var previous=this.theme;this.theme=theme||this.theme;this._parseTheme(this.theme);if(previous){this.$el.removeClass(previous);}this.$el.addClass(this.themeParsed);this.theme=theme;},_parseTheme:function(theme){var that=this;theme=theme.split(",");$.each(theme,function(k,a){if(a.indexOf(that._themePrefix)===-1){theme[k]=that._themePrefix+$.trim(a);}});this.themeParsed=theme.join(" ").toLowerCase();},backgroundDismissAnimationParsed:"",_bgDismissPrefix:"jconfirm-hilight-",_parseBgDismissAnimation:function(bgDismissAnimation){var animation=bgDismissAnimation.split(",");var that=this;$.each(animation,function(k,a){if(a.indexOf(that._bgDismissPrefix)===-1){animation[k]=that._bgDismissPrefix+$.trim(a);}});this.backgroundDismissAnimationParsed=animation.join(" ").toLowerCase();},animationParsed:"",closeAnimationParsed:"",_animationPrefix:"jconfirm-animation-",setAnimation:function(animation){this.animation=animation||this.animation;this._parseAnimation(this.animation,"o");},_parseAnimation:function(animation,which){which=which||"o";var animations=animation.split(",");var that=this;$.each(animations,function(k,a){if(a.indexOf(that._animationPrefix)===-1){animations[k]=that._animationPrefix+$.trim(a);}});var a_string=animations.join(" ").toLowerCase();if(which==="o"){this.animationParsed=a_string;}else{this.closeAnimationParsed=a_string;}return a_string;},setCloseAnimation:function(closeAnimation){this.closeAnimation=closeAnimation||this.closeAnimation;this._parseAnimation(this.closeAnimation,"c");},setAnimationSpeed:function(speed){this.animationSpeed=speed||this.animationSpeed;},columnClassParsed:"",setColumnClass:function(colClass){if(!this.useBootstrap){console.warn("cannot set columnClass, useBootstrap is set to false");return;}this.columnClass=colClass||this.columnClass;this._parseColumnClass(this.columnClass);this.$jconfirmBoxContainer.addClass(this.columnClassParsed);},_updateContentMaxHeight:function(){var height=$(window).height()-(this.$jconfirmBox.outerHeight()-this.$contentPane.outerHeight())-(this.offsetTop+this.offsetBottom);this.$contentPane.css({"max-height":height+"px"});},setBoxWidth:function(width){if(this.useBootstrap){console.warn("cannot set boxWidth, useBootstrap is set to true");return;}this.boxWidth=width;this.$jconfirmBox.css("width",width);},_parseColumnClass:function(colClass){colClass=colClass.toLowerCase();var p;switch(colClass){case"xl":case"xlarge":p="col-md-12";break;case"l":case"large":p="col-md-8 col-md-offset-2";break;case"m":case"medium":p="col-md-6 col-md-offset-3";break;case"s":case"small":p="col-md-4 col-md-offset-4";break;case"xs":case"xsmall":p="col-md-2 col-md-offset-5";break;default:p=colClass;}this.columnClassParsed=p;},initDraggable:function(){var that=this;var $t=this.$titleContainer;this.resetDrag();if(this.draggable){$t.on("mousedown",function(e){$t.addClass("jconfirm-hand");that.mouseX=e.clientX;that.mouseY=e.clientY;that.isDrag=true;});$(window).on("mousemove."+this._id,function(e){if(that.isDrag){that.movingX=e.clientX-that.mouseX+that.initialX;that.movingY=e.clientY-that.mouseY+that.initialY;that.setDrag();}});$(window).on("mouseup."+this._id,function(){$t.removeClass("jconfirm-hand");if(that.isDrag){that.isDrag=false;that.initialX=that.movingX;that.initialY=that.movingY;}});}},resetDrag:function(){this.isDrag=false;this.initialX=0;this.initialY=0;this.movingX=0;this.movingY=0;this.mouseX=0;this.mouseY=0;this.$jconfirmBoxContainer.css("transform","translate("+0+"px, "+0+"px)");},setDrag:function(){if(!this.draggable){return;}this.alignMiddle=false;var boxWidth=this.$jconfirmBox.outerWidth();var boxHeight=this.$jconfirmBox.outerHeight();var windowWidth=$(window).width();var windowHeight=$(window).height();var that=this;var dragUpdate=1;if(that.movingX%dragUpdate===0||that.movingY%dragUpdate===0){if(that.dragWindowBorder){var leftDistance=(windowWidth/2)-boxWidth/2;var topDistance=(windowHeight/2)-boxHeight/2;topDistance-=that.dragWindowGap;leftDistance-=that.dragWindowGap;if(leftDistance+that.movingX<0){that.movingX=-leftDistance;}else{if(leftDistance-that.movingX<0){that.movingX=leftDistance;}}if(topDistance+that.movingY<0){that.movingY=-topDistance;}else{if(topDistance-that.movingY<0){that.movingY=topDistance;}}}that.$jconfirmBoxContainer.css("transform","translate("+that.movingX+"px, "+that.movingY+"px)");}},_scrollTop:function(){if(typeof pageYOffset!=="undefined"){return pageYOffset;}else{var B=document.body;var D=document.documentElement;D=(D.clientHeight)?D:B;return D.scrollTop;}},_watchContent:function(){var that=this;if(this._timer){clearInterval(this._timer);}var prevContentHeight=0;this._timer=setInterval(function(){if(that.smoothContent){var contentHeight=that.$content.outerHeight()||0;if(contentHeight!==prevContentHeight){prevContentHeight=contentHeight;}var wh=$(window).height();var total=that.offsetTop+that.offsetBottom+that.$jconfirmBox.height()-that.$contentPane.height()+that.$content.height();if(total').html(that.buttons[key].text).addClass(that.buttons[key].btnClass).prop("disabled",that.buttons[key].isDisabled).css("display",that.buttons[key].isHidden?"none":"").click(function(e){e.preventDefault();var res=that.buttons[key].action.apply(that,[that.buttons[key]]);that.onAction.apply(that,[key,that.buttons[key]]);that._stopCountDown();if(typeof res==="undefined"||res){that.close();}});that.buttons[key].el=button_element;that.buttons[key].setText=function(text){button_element.html(text);};that.buttons[key].addClass=function(className){button_element.addClass(className);};that.buttons[key].removeClass=function(className){button_element.removeClass(className);};that.buttons[key].disable=function(){that.buttons[key].isDisabled=true;button_element.prop("disabled",true);};that.buttons[key].enable=function(){that.buttons[key].isDisabled=false;button_element.prop("disabled",false);};that.buttons[key].show=function(){that.buttons[key].isHidden=false;button_element.css("display","");};that.buttons[key].hide=function(){that.buttons[key].isHidden=true;button_element.css("display","none");};that["$_"+key]=that["$$"+key]=button_element;that.$btnc.append(button_element);});if(total_buttons===0){this.$btnc.hide();}if(this.closeIcon===null&&total_buttons===0){this.closeIcon=true;}if(this.closeIcon){if(this.closeIconClass){var closeHtml='';this.$closeIcon.html(closeHtml);}this.$closeIcon.click(function(e){e.preventDefault();var buttonName=false;var shouldClose=false;var str;if(typeof that.closeIcon==="function"){str=that.closeIcon();}else{str=that.closeIcon;}if(typeof str==="string"&&typeof that.buttons[str]!=="undefined"){buttonName=str;shouldClose=false;}else{if(typeof str==="undefined"||!!(str)===true){shouldClose=true;}else{shouldClose=false;}}if(buttonName){var btnResponse=that.buttons[buttonName].action.apply(that);shouldClose=(typeof btnResponse==="undefined")||!!(btnResponse);}if(shouldClose){that.close();}});this.$closeIcon.show();}else{this.$closeIcon.hide();}},setTitle:function(string,force){force=force||false;if(typeof string!=="undefined"){if(typeof string==="string"){this.title=string;}else{if(typeof string==="function"){if(typeof string.promise==="function"){console.error("Promise was returned from title function, this is not supported.");}var response=string();if(typeof response==="string"){this.title=response;}else{this.title=false;}}else{this.title=false;}}}if(this.isAjaxLoading&&!force){return;}this.$title.html(this.title||"");this.updateTitleContainer();},setIcon:function(iconClass,force){force=force||false;if(typeof iconClass!=="undefined"){if(typeof iconClass==="string"){this.icon=iconClass;}else{if(typeof iconClass==="function"){var response=iconClass();if(typeof response==="string"){this.icon=response;}else{this.icon=false;}}else{this.icon=false;}}}if(this.isAjaxLoading&&!force){return;}this.$icon.html(this.icon?'':"");this.updateTitleContainer();},updateTitleContainer:function(){if(!this.title&&!this.icon){this.$titleContainer.hide();}else{this.$titleContainer.show();}},setContentPrepend:function(content,force){if(!content){return;}this.contentParsed.prepend(content);},setContentAppend:function(content){if(!content){return;}this.contentParsed.append(content);},setContent:function(content,force){force=!!force;var that=this;if(content){this.contentParsed.html("").append(content);}if(this.isAjaxLoading&&!force){return;}this.$content.html("");this.$content.append(this.contentParsed);setTimeout(function(){that.$body.find("input[autofocus]:visible:first").focus();},100);},loadingSpinner:false,showLoading:function(disableButtons){this.loadingSpinner=true;this.$jconfirmBox.addClass("loading");if(disableButtons){this.$btnc.find("button").prop("disabled",true);}},hideLoading:function(enableButtons){this.loadingSpinner=false;this.$jconfirmBox.removeClass("loading");if(enableButtons){this.$btnc.find("button").prop("disabled",false);}},ajaxResponse:false,contentParsed:"",isAjax:false,isAjaxLoading:false,_parseContent:function(){var that=this;var e=" ";if(typeof this.content==="function"){var res=this.content.apply(this);if(typeof res==="string"){this.content=res;}else{if(typeof res==="object"&&typeof res.always==="function"){this.isAjax=true;this.isAjaxLoading=true;res.always(function(data,status,xhr){that.ajaxResponse={data:data,status:status,xhr:xhr};that._contentReady.resolve(data,status,xhr);if(typeof that.contentLoaded==="function"){that.contentLoaded(data,status,xhr);}});this.content=e;}else{this.content=e;}}}if(typeof this.content==="string"&&this.content.substr(0,4).toLowerCase()==="url:"){this.isAjax=true;this.isAjaxLoading=true;var u=this.content.substring(4,this.content.length);$.get(u).done(function(html){that.contentParsed.html(html);}).always(function(data,status,xhr){that.ajaxResponse={data:data,status:status,xhr:xhr};that._contentReady.resolve(data,status,xhr);if(typeof that.contentLoaded==="function"){that.contentLoaded(data,status,xhr);}});}if(!this.content){this.content=e;}if(!this.isAjax){this.contentParsed.html(this.content);this.setContent();that._contentReady.resolve();}},_stopCountDown:function(){clearInterval(this.autoCloseInterval);if(this.$cd){this.$cd.remove();}},_startCountDown:function(){var that=this;var opt=this.autoClose.split("|");if(opt.length!==2){console.error("Invalid option for autoClose. example 'close|10000'");return false;}var button_key=opt[0];var time=parseInt(opt[1]);if(typeof this.buttons[button_key]==="undefined"){console.error("Invalid button key '"+button_key+"' for autoClose");return false;}var seconds=Math.ceil(time/1000);this.$cd=$(' ('+seconds+")").appendTo(this["$_"+button_key]);this.autoCloseInterval=setInterval(function(){that.$cd.html(" ("+(seconds-=1)+") ");if(seconds<=0){that["$$"+button_key].trigger("click");that._stopCountDown();}},1000);},_getKey:function(key){switch(key){case 192:return"tilde";case 13:return"enter";case 16:return"shift";case 9:return"tab";case 20:return"capslock";case 17:return"ctrl";case 91:return"win";case 18:return"alt";case 27:return"esc";case 32:return"space";}var initial=String.fromCharCode(key);if(/^[A-z0-9]+$/.test(initial)){return initial.toLowerCase();}else{return false;}},reactOnKey:function(e){var that=this;var a=$(".jconfirm");if(a.eq(a.length-1)[0]!==this.$el[0]){return false;}var key=e.which;if(this.$content.find(":input").is(":focus")&&/13|32/.test(key)){return false;}var keyChar=this._getKey(key);if(keyChar==="esc"&&this.escapeKey){if(this.escapeKey===true){this.$scrollPane.trigger("click");}else{if(typeof this.escapeKey==="string"||typeof this.escapeKey==="function"){var buttonKey;if(typeof this.escapeKey==="function"){buttonKey=this.escapeKey();}else{buttonKey=this.escapeKey;}if(buttonKey){if(typeof this.buttons[buttonKey]==="undefined"){console.warn("Invalid escapeKey, no buttons found with key "+buttonKey);}else{this["$_"+buttonKey].trigger("click");}}}}}$.each(this.buttons,function(key,button){if(button.keys.indexOf(keyChar)!==-1){that["$_"+key].trigger("click");}});},setDialogCenter:function(){console.info("setDialogCenter is deprecated, dialogs are centered with CSS3 tables");},_unwatchContent:function(){clearInterval(this._timer);},close:function(onClosePayload){var that=this;if(typeof this.onClose==="function"){this.onClose(onClosePayload);}this._unwatchContent();$(window).unbind("resize."+this._id);$(window).unbind("keyup."+this._id);$(window).unbind("jcKeyDown."+this._id);if(this.draggable){$(window).unbind("mousemove."+this._id);$(window).unbind("mouseup."+this._id);this.$titleContainer.unbind("mousedown");}that.$el.removeClass(that.loadedClass);$("body").removeClass("jconfirm-no-scroll-"+that._id);that.$jconfirmBoxContainer.removeClass("jconfirm-no-transition");setTimeout(function(){that.$body.addClass(that.closeAnimationParsed);that.$jconfirmBg.addClass("jconfirm-bg-h");var closeTimer=(that.closeAnimation==="none")?1:that.animationSpeed;setTimeout(function(){that.$el.remove();var l=w.jconfirm.instances;var i=w.jconfirm.instances.length-1;for(i;i>=0;i--){if(w.jconfirm.instances[i]._id===that._id){w.jconfirm.instances.splice(i,1);}}if(!w.jconfirm.instances.length){if(that.scrollToPreviousElement&&w.jconfirm.lastFocused&&w.jconfirm.lastFocused.length&&$.contains(document,w.jconfirm.lastFocused[0])){var $lf=w.jconfirm.lastFocused;if(that.scrollToPreviousElementAnimate){var st=$(window).scrollTop();var ot=w.jconfirm.lastFocused.offset().top;var wh=$(window).height();if(!(ot>st&&ot<(st+wh))){var scrollTo=(ot-Math.round((wh/3)));$("html, body").animate({scrollTop:scrollTo},that.animationSpeed,"swing",function(){$lf.focus();});}else{$lf.focus();}}else{$lf.focus();}w.jconfirm.lastFocused=false;}}if(typeof that.onDestroy==="function"){that.onDestroy();}},closeTimer*0.4);},50);return true;},open:function(){if(this.isOpen()){return false;}this._buildHTML();this._bindEvents();this._open();return true;},setStartingPoint:function(){var el=false;if(this.animateFromElement!==true&&this.animateFromElement){el=this.animateFromElement;w.jconfirm.lastClicked=false;}else{if(w.jconfirm.lastClicked&&this.animateFromElement===true){el=w.jconfirm.lastClicked;w.jconfirm.lastClicked=false;}else{return false;}}if(!el){return false;}var offset=el.offset();var iTop=el.outerHeight()/2;var iLeft=el.outerWidth()/2;iTop-=this.$jconfirmBox.outerHeight()/2;iLeft-=this.$jconfirmBox.outerWidth()/2;var sourceTop=offset.top+iTop;sourceTop=sourceTop-this._scrollTop();var sourceLeft=offset.left+iLeft;var wh=$(window).height()/2;var ww=$(window).width()/2;var targetH=wh-this.$jconfirmBox.outerHeight()/2;var targetW=ww-this.$jconfirmBox.outerWidth()/2;sourceTop-=targetH;sourceLeft-=targetW;if(Math.abs(sourceTop)>wh||Math.abs(sourceLeft)>ww){return false;}this.$jconfirmBoxContainer.css("transform","translate("+sourceLeft+"px, "+sourceTop+"px)");},_open:function(){var that=this;if(typeof that.onOpenBefore==="function"){that.onOpenBefore();}this.$body.removeClass(this.animationParsed);this.$jconfirmBg.removeClass("jconfirm-bg-h");this.$body.focus();that.$jconfirmBoxContainer.css("transform","translate("+0+"px, "+0+"px)");setTimeout(function(){that.$body.css(that._getCSS(that.animationSpeed,1));that.$body.css({"transition-property":that.$body.css("transition-property")+", margin"});that.$jconfirmBoxContainer.addClass("jconfirm-no-transition");that._modalReady.resolve();if(typeof that.onOpen==="function"){that.onOpen();}that.$el.addClass(that.loadedClass);},this.animationSpeed);},loadedClass:"jconfirm-open",isClosed:function(){return !this.$el||this.$el.parent().length===0;},isOpen:function(){return !this.isClosed();},toggle:function(){if(!this.isOpen()){this.open();}else{this.close();}}};w.jconfirm.instances=[];w.jconfirm.lastFocused=false;w.jconfirm.pluginDefaults={template:'×',title:"Hello",titleClass:"",type:"default",typeAnimated:true,draggable:true,dragWindowGap:15,dragWindowBorder:true,animateFromElement:true,alignMiddle:true,smoothContent:true,content:"Are you sure to continue?",buttons:{},defaultButtons:{ok:{action:function(){}},close:{action:function(){}}},contentLoaded:function(){},icon:"",lazyOpen:false,bgOpacity:null,theme:"light",animation:"scale",closeAnimation:"scale",animationSpeed:400,animationBounce:1,escapeKey:true,rtl:false,container:"body",containerFluid:false,backgroundDismiss:false,backgroundDismissAnimation:"shake",autoClose:false,closeIcon:null,closeIconClass:false,watchInterval:100,columnClass:"col-md-4 col-md-offset-4 col-sm-6 col-sm-offset-3 col-xs-10 col-xs-offset-1",boxWidth:"50%",scrollToPreviousElement:true,scrollToPreviousElementAnimate:true,useBootstrap:true,offsetTop:40,offsetBottom:40,bootstrapClasses:{container:"container",containerFluid:"container-fluid",row:"row"},onContentReady:function(){},onOpenBefore:function(){},onOpen:function(){},onClose:function(){},onDestroy:function(){},onAction:function(){}};var keyDown=false;$(window).on("keydown",function(e){if(!keyDown){var $target=$(e.target);var pass=false;if($target.closest(".jconfirm-box").length){pass=true;}if(pass){$(window).trigger("jcKeyDown");}keyDown=true;}});$(window).on("keyup",function(){keyDown=false;});w.jconfirm.lastClicked=false;$(document).on("mousedown","button, a, [jc-source]",function(){w.jconfirm.lastClicked=$(this);});})); \ No newline at end of file diff --git a/themes/default/js/plugins/moment-with-locales.min.js b/themes/default/js/plugins/moment-with-locales.min.js new file mode 100644 index 000000000..b79adb7f6 --- /dev/null +++ b/themes/default/js/plugins/moment-with-locales.min.js @@ -0,0 +1,2 @@ +!function(e,a){"object"==typeof exports&&"undefined"!=typeof module?module.exports=a():"function"==typeof define&&define.amd?define(a):e.moment=a()}(this,function(){"use strict";var e,n;function M(){return e.apply(null,arguments)}function _(e){return e instanceof Array||"[object Array]"===Object.prototype.toString.call(e)}function i(e){return null!=e&&"[object Object]"===Object.prototype.toString.call(e)}function h(e,a){return Object.prototype.hasOwnProperty.call(e,a)}function o(e){if(Object.getOwnPropertyNames)return 0===Object.getOwnPropertyNames(e).length;var a;for(a in e)if(h(e,a))return;return 1}function r(e){return void 0===e}function m(e){return"number"==typeof e||"[object Number]"===Object.prototype.toString.call(e)}function d(e){return e instanceof Date||"[object Date]"===Object.prototype.toString.call(e)}function u(e,a){for(var t=[],s=0;s>>0,s=0;sFe(e)?(r=e+1,d-Fe(e)):(r=e,d);return{year:r,dayOfYear:_}}function Ce(e,a,t){var s,n,r=Je(e.year(),a,t),d=Math.floor((e.dayOfYear()-r-1)/7)+1;return d<1?s=d+Ie(n=e.year()-1,a,t):d>Ie(e.year(),a,t)?(s=d-Ie(e.year(),a,t),n=e.year()+1):(n=e.year(),s=d),{week:s,year:n}}function Ie(e,a,t){var s=Je(e,a,t),n=Je(e+1,a,t);return(Fe(e)-s+n)/7}W("w",["ww",2],"wo","week"),W("W",["WW",2],"Wo","isoWeek"),z("week","w"),z("isoWeek","W"),C("week",5),C("isoWeek",5),le("w",ae),le("ww",ae,$),le("W",ae),le("WW",ae,$),Ye(["w","ww","W","WW"],function(e,a,t,s){a[s.substr(0,1)]=G(e)});function Ue(e,a){return e.slice(a,7).concat(e.slice(0,a))}W("d",0,"do","day"),W("dd",0,0,function(e){return this.localeData().weekdaysMin(this,e)}),W("ddd",0,0,function(e){return this.localeData().weekdaysShort(this,e)}),W("dddd",0,0,function(e){return this.localeData().weekdays(this,e)}),W("e",0,0,"weekday"),W("E",0,0,"isoWeekday"),z("day","d"),z("weekday","e"),z("isoWeekday","E"),C("day",11),C("weekday",11),C("isoWeekday",11),le("d",ae),le("e",ae),le("E",ae),le("dd",function(e,a){return a.weekdaysMinRegex(e)}),le("ddd",function(e,a){return a.weekdaysShortRegex(e)}),le("dddd",function(e,a){return a.weekdaysRegex(e)}),Ye(["dd","ddd","dddd"],function(e,a,t,s){var n=t._locale.weekdaysParse(e,s,t._strict);null!=n?a.d=n:L(t).invalidWeekday=e}),Ye(["d","e","E"],function(e,a,t,s){a[s]=G(e)});var Ge="Sunday_Monday_Tuesday_Wednesday_Thursday_Friday_Saturday".split("_"),Ve="Sun_Mon_Tue_Wed_Thu_Fri_Sat".split("_"),Be="Su_Mo_Tu_We_Th_Fr_Sa".split("_"),Ke=ue,qe=ue,Ze=ue;function $e(){function e(e,a){return a.length-e.length}for(var a,t,s,n,r=[],d=[],_=[],i=[],o=0;o<7;o++)a=c([2e3,1]).day(o),t=he(this.weekdaysMin(a,"")),s=he(this.weekdaysShort(a,"")),n=he(this.weekdays(a,"")),r.push(t),d.push(s),_.push(n),i.push(t),i.push(s),i.push(n);r.sort(e),d.sort(e),_.sort(e),i.sort(e),this._weekdaysRegex=new RegExp("^("+i.join("|")+")","i"),this._weekdaysShortRegex=this._weekdaysRegex,this._weekdaysMinRegex=this._weekdaysRegex,this._weekdaysStrictRegex=new RegExp("^("+_.join("|")+")","i"),this._weekdaysShortStrictRegex=new RegExp("^("+d.join("|")+")","i"),this._weekdaysMinStrictRegex=new RegExp("^("+r.join("|")+")","i")}function Qe(){return this.hours()%12||12}function Xe(e,a){W(e,0,0,function(){return this.localeData().meridiem(this.hours(),this.minutes(),a)})}function ea(e,a){return a._meridiemParse}W("H",["HH",2],0,"hour"),W("h",["hh",2],0,Qe),W("k",["kk",2],0,function(){return this.hours()||24}),W("hmm",0,0,function(){return""+Qe.apply(this)+S(this.minutes(),2)}),W("hmmss",0,0,function(){return""+Qe.apply(this)+S(this.minutes(),2)+S(this.seconds(),2)}),W("Hmm",0,0,function(){return""+this.hours()+S(this.minutes(),2)}),W("Hmmss",0,0,function(){return""+this.hours()+S(this.minutes(),2)+S(this.seconds(),2)}),Xe("a",!0),Xe("A",!1),z("hour","h"),C("hour",13),le("a",ea),le("A",ea),le("H",ae),le("h",ae),le("k",ae),le("HH",ae,$),le("hh",ae,$),le("kk",ae,$),le("hmm",te),le("hmmss",se),le("Hmm",te),le("Hmmss",se),Le(["H","HH"],De),Le(["k","kk"],function(e,a,t){var s=G(e);a[De]=24===s?0:s}),Le(["a","A"],function(e,a,t){t._isPm=t._locale.isPM(e),t._meridiem=e}),Le(["h","hh"],function(e,a,t){a[De]=G(e),L(t).bigHour=!0}),Le("hmm",function(e,a,t){var s=e.length-2;a[De]=G(e.substr(0,s)),a[Te]=G(e.substr(s)),L(t).bigHour=!0}),Le("hmmss",function(e,a,t){var s=e.length-4,n=e.length-2;a[De]=G(e.substr(0,s)),a[Te]=G(e.substr(s,2)),a[ge]=G(e.substr(n)),L(t).bigHour=!0}),Le("Hmm",function(e,a,t){var s=e.length-2;a[De]=G(e.substr(0,s)),a[Te]=G(e.substr(s))}),Le("Hmmss",function(e,a,t){var s=e.length-4,n=e.length-2;a[De]=G(e.substr(0,s)),a[Te]=G(e.substr(s,2)),a[ge]=G(e.substr(n))});var aa=V("Hours",!0);var ta,sa={calendar:{sameDay:"[Today at] LT",nextDay:"[Tomorrow at] LT",nextWeek:"dddd [at] LT",lastDay:"[Yesterday at] LT",lastWeek:"[Last] dddd [at] LT",sameElse:"L"},longDateFormat:{LTS:"h:mm:ss A",LT:"h:mm A",L:"MM/DD/YYYY",LL:"MMMM D, YYYY",LLL:"MMMM D, YYYY h:mm A",LLLL:"dddd, MMMM D, YYYY h:mm A"},invalidDate:"Invalid date",ordinal:"%d",dayOfMonthOrdinalParse:/\d{1,2}/,relativeTime:{future:"in %s",past:"%s ago",s:"a few seconds",ss:"%d seconds",m:"a minute",mm:"%d minutes",h:"an hour",hh:"%d hours",d:"a day",dd:"%d days",w:"a week",ww:"%d weeks",M:"a month",MM:"%d months",y:"a year",yy:"%d years"},months:Se,monthsShort:je,week:{dow:0,doy:6},weekdays:Ge,weekdaysMin:Be,weekdaysShort:Ve,meridiemParse:/[ap]\.?m?\.?/i},na={},ra={};function da(e){return e?e.toLowerCase().replace("_","-"):e}function _a(e){for(var a,t,s,n,r=0;r=a&&function(e,a){for(var t=Math.min(e.length,a.length),s=0;s=a-1)break;a--}r++}return ta}function ia(a){var e=null;if(void 0===na[a]&&"undefined"!=typeof module&&module&&module.exports)try{e=ta._abbr,require("./locale/"+a),oa(e)}catch(e){na[a]=null}return na[a]}function oa(e,a){var t;return e&&((t=r(a)?ua(e):ma(e,a))?ta=t:"undefined"!=typeof console&&console.warn&&console.warn("Locale "+e+" not found. Did you forget to load it?")),ta._abbr}function ma(e,a){if(null===a)return delete na[e],null;var t,s=sa;if(a.abbr=e,null!=na[e])w("defineLocaleOverride","use moment.updateLocale(localeName, config) to change an existing locale. moment.defineLocale(localeName, config) should only be used for creating a new locale See http://momentjs.com/guides/#/warnings/define-locale/ for more info."),s=na[e]._config;else if(null!=a.parentLocale)if(null!=na[a.parentLocale])s=na[a.parentLocale]._config;else{if(null==(t=ia(a.parentLocale)))return ra[a.parentLocale]||(ra[a.parentLocale]=[]),ra[a.parentLocale].push({name:e,config:a}),null;s=t._config}return na[e]=new b(H(s,a)),ra[e]&&ra[e].forEach(function(e){ma(e.name,e.config)}),oa(e),na[e]}function ua(e){var a;if(e&&e._locale&&e._locale._abbr&&(e=e._locale._abbr),!e)return ta;if(!_(e)){if(a=ia(e))return a;e=[e]}return _a(e)}function la(e){var a,t=e._a;return t&&-2===L(e).overflow&&(a=t[pe]<0||11be(t[fe],t[pe])?ke:t[De]<0||24Ie(t,r,d)?L(e)._overflowWeeks=!0:null!=i?L(e)._overflowWeekday=!0:(_=Re(t,s,n,r,d),e._a[fe]=_.year,e._dayOfYear=_.dayOfYear)}(e),null!=e._dayOfYear&&(r=ga(e._a[fe],s[fe]),(e._dayOfYear>Fe(r)||0===e._dayOfYear)&&(L(e)._overflowDayOfYear=!0),t=Ne(r,0,e._dayOfYear),e._a[pe]=t.getUTCMonth(),e._a[ke]=t.getUTCDate()),a=0;a<3&&null==e._a[a];++a)e._a[a]=i[a]=s[a];for(;a<7;a++)e._a[a]=i[a]=null==e._a[a]?2===a?1:0:e._a[a];24===e._a[De]&&0===e._a[Te]&&0===e._a[ge]&&0===e._a[we]&&(e._nextDay=!0,e._a[De]=0),e._d=(e._useUTC?Ne:function(e,a,t,s,n,r,d){var _;return e<100&&0<=e?(_=new Date(e+400,a,t,s,n,r,d),isFinite(_.getFullYear())&&_.setFullYear(e)):_=new Date(e,a,t,s,n,r,d),_}).apply(null,i),n=e._useUTC?e._d.getUTCDay():e._d.getDay(),null!=e._tzm&&e._d.setUTCMinutes(e._d.getUTCMinutes()-e._tzm),e._nextDay&&(e._a[De]=24),e._w&&void 0!==e._w.d&&e._w.d!==n&&(L(e).weekdayMismatch=!0)}}function va(e){if(e._f!==M.ISO_8601)if(e._f!==M.RFC_2822){e._a=[],L(e).empty=!0;for(var a,t,s,n,r,d,_,i=""+e._i,o=i.length,m=0,u=E(e._f,e._locale).match(j)||[],l=0;lt.valueOf():t.valueOf()"}),yt.toJSON=function(){return this.isValid()?this.toISOString():null},yt.toString=function(){return this.clone().locale("en").format("ddd MMM DD YYYY HH:mm:ss [GMT]ZZ")},yt.unix=function(){return Math.floor(this.valueOf()/1e3)},yt.valueOf=function(){return this._d.valueOf()-6e4*(this._offset||0)},yt.creationData=function(){return{input:this._i,format:this._f,locale:this._locale,isUTC:this._isUTC,strict:this._strict}},yt.eraName=function(){for(var e,a=this.localeData().eras(),t=0,s=a.length;tthis.clone().month(0).utcOffset()||this.utcOffset()>this.clone().month(5).utcOffset()},yt.isLocal=function(){return!!this.isValid()&&!this._isUTC},yt.isUtcOffset=function(){return!!this.isValid()&&this._isUTC},yt.isUtc=Ca,yt.isUTC=Ca,yt.zoneAbbr=function(){return this._isUTC?"UTC":""},yt.zoneName=function(){return this._isUTC?"Coordinated Universal Time":""},yt.dates=t("dates accessor is deprecated. Use date instead.",lt),yt.months=t("months accessor is deprecated. Use month instead",Ae),yt.years=t("years accessor is deprecated. Use year instead",ze),yt.zone=t("moment().zone is deprecated, use moment().utcOffset instead. http://momentjs.com/guides/#/warnings/zone/",function(e,a){return null!=e?("string"!=typeof e&&(e=-e),this.utcOffset(e,a),this):-this.utcOffset()}),yt.isDSTShifted=t("isDSTShifted is deprecated. See http://momentjs.com/guides/#/warnings/dst-shifted/ for more information",function(){if(!r(this._isDSTShifted))return this._isDSTShifted;var e,a={};return p(a,this),(a=Ha(a))._a?(e=(a._isUTC?c:Sa)(a._a),this._isDSTShifted=this.isValid()&&0=0?this.parent.children[e]:null}return null},e.prototype.getNextSibling=function(){if(this.parent){var e=this.parent.getChildIndex(this)+1;return e/g,">").replace(/"/g,""").replace(/'/g,"'").replace(/\//g,"/")},t.getBoolString=function(e){return e?"true":"false"}},function(e,t){e.exports=jQuery},function(e,t,o){"use strict";t.__esModule=!0;var n=function(){function e(e,t){this.$el=jQuery(e);var o=this.constructor.defaults;this.options=jQuery.extend({},o,t)}return e.register=function(t,o){var n=function(){return"simple_widget_"+o};function r(t,o){var n=jQuery.data(t,o);return n&&n instanceof e?n:null}function i(e,o){for(var i=n(),s=0,a=e.get();so.right||t>o.bottom)return null;for(var n=0,r=this.hitAreas.length;n>1,s=this.hitAreas[i];if(ts.bottom))return s;n=i+1}}return null},e.prototype.mustOpenFolderTimer=function(e){var t=e.node;return t.isFolder()&&!t.is_open&&e.position===s.Position.Inside},e.prototype.updateDropHint=function(){if(this.hoveredArea){this.removeDropHint();var e=this.treeWidget._getNodeElementForNode(this.hoveredArea.node);this.previousGhost=e.addDropHint(this.hoveredArea.position)}},e.prototype.startOpenFolderTimer=function(e){var t=this;this.stopOpenFolderTimer(),this.openFolderTimer=window.setTimeout(function(){t.treeWidget._openNode(e,t.treeWidget.options.slide,function(){t.refresh(),t.updateDropHint()})},this.treeWidget.options.openFolderDelay)},e.prototype.stopOpenFolderTimer=function(){this.openFolderTimer&&(clearTimeout(this.openFolderTimer),this.openFolderTimer=null)},e.prototype.moveItem=function(e){var t=this;if(this.currentItem&&this.hoveredArea&&this.hoveredArea.position!==s.Position.None&&this.canMoveToArea(this.hoveredArea)){var o=this.currentItem.node,n=this.hoveredArea.node,r=this.hoveredArea.position,i=o.parent;r===s.Position.Inside&&(this.hoveredArea.node.is_open=!0);var a=function(){t.treeWidget.tree.moveNode(o,n,r),t.treeWidget.element.empty(),t.treeWidget._refreshElements(null)};this.treeWidget._triggerEvent("tree.move",{move_info:{moved_node:o,target_node:n,position:s.getPositionName(r),previous_parent:i,do_move:a,original_event:e.originalEvent}}).isDefaultPrevented()||a()}},e.prototype.getTreeDimensions=function(){var e=this.treeWidget.element.offset();if(e){var t=this.treeWidget.element,o=t.width()||0,n=t.height()||0,r=e.left+this.treeWidget._getScrollLeft();return{left:r,top:e.top,right:r+o,bottom:e.top+n+16}}return{left:0,top:0,right:0,bottom:0}},e}();t.DragAndDropHandler=l;var d=function(e){function t(t,o,n){var r=e.call(this,t)||this;return r.currentNode=o,r.treeBottom=n,r}return r(t,e),t.prototype.generate=function(){return this.positions=[],this.lastTop=0,this.iterate(),this.generateHitAreas(this.positions)},t.prototype.generateHitAreas=function(e){for(var t=-1,o=[],n=[],r=0,i=e;r'+e+""),this.$element.css("position","absolute"),n.append(this.$element)}return e.prototype.move=function(e,t){this.$element.offset({left:e-this.offsetX,top:t-this.offsetY})},e.prototype.remove=function(){this.$element.remove()},e}()},function(e,t,o){"use strict";t.__esModule=!0;var n=o(1),r=function(){function e(e){this.treeWidget=e,this.openedIconElement=this.createButtonElement(e.options.openedIcon),this.closedIconElement=this.createButtonElement(e.options.closedIcon)}return e.prototype.render=function(e){e&&e.parent?this.renderFromNode(e):this.renderFromRoot()},e.prototype.renderFromRoot=function(){var e=this.treeWidget.element;e.empty(),this.createDomElements(e[0],this.treeWidget.tree.children,!0,1)},e.prototype.renderFromNode=function(e){var t=jQuery(e.element),o=this.createLi(e,e.getLevel());this.attachNodeData(e,o),t.after(o),t.remove(),e.children&&this.createDomElements(o,e.children,!1,e.getLevel()+1)},e.prototype.createDomElements=function(e,t,o,n){var r=this.createUl(o);e.appendChild(r);for(var i=0,s=t;i1)){var n=o.changedTouches[0];return t._handleMouseDown(t._getPositionInfo(n))}},t.touchMove=function(e){var o=e.originalEvent;if(!(o.touches.length>1)){var n=o.changedTouches[0];return t._handleMouseMove(e,t._getPositionInfo(n))}},t.touchEnd=function(e){var o=e.originalEvent;if(!(o.touches.length>1)){var n=o.changedTouches[0];return t._handleMouseUp(t._getPositionInfo(n))}},t}return r(t,e),t.prototype.setMouseDelay=function(e){this.mouseDelay=e},t.prototype._init=function(){this.$el.on("mousedown.mousewidget",this.mouseDown),this.$el.on("touchstart.mousewidget",this.touchStart),this.isMouseStarted=!1,this.mouseDelay=0,this.mouseDelayTimer=null,this.isMouseDelayMet=!0,this.mouseDownInfo=null},t.prototype._deinit=function(){this.$el.off("mousedown.mousewidget"),this.$el.off("touchstart.mousewidget");var e=jQuery(document);e.off("mousemove.mousewidget"),e.off("mouseup.mousewidget")},t.prototype._handleMouseDown=function(e){if(this.isMouseStarted&&this._handleMouseUp(e),this.mouseDownInfo=e,this._mouseCapture(e))return this._handleStartMouse(),!0},t.prototype._handleStartMouse=function(){var e=jQuery(document);e.on("mousemove.mousewidget",this.mouseMove),e.on("touchmove.mousewidget",this.touchMove),e.on("mouseup.mousewidget",this.mouseUp),e.on("touchend.mousewidget",this.touchEnd),this.mouseDelay&&this._startMouseDelayTimer()},t.prototype._startMouseDelayTimer=function(){var e=this;this.mouseDelayTimer&&clearTimeout(this.mouseDelayTimer),this.mouseDelayTimer=window.setTimeout(function(){e.isMouseDelayMet=!0},this.mouseDelay),this.isMouseDelayMet=!1},t.prototype._handleMouseMove=function(e,t){return this.isMouseStarted?(this._mouseDrag(t),e.preventDefault()):!(!this.mouseDelay||this.isMouseDelayMet)||(this.mouseDownInfo&&(this.isMouseStarted=!1!==this._mouseStart(this.mouseDownInfo)),this.isMouseStarted?this._mouseDrag(t):this._handleMouseUp(t),!this.isMouseStarted)},t.prototype._getPositionInfo=function(e){return{pageX:e.pageX,pageY:e.pageY,target:e.target,originalEvent:e}},t.prototype._handleMouseUp=function(e){var t=jQuery(document);t.off("mousemove.mousewidget"),t.off("touchmove.mousewidget"),t.off("mouseup.mousewidget"),t.off("touchend.mousewidget"),this.isMouseStarted&&(this.isMouseStarted=!1,this._mouseStop(e))},t}(o(3).default);t.default=i},function(e,t,o){"use strict";t.__esModule=!0;var n=o(1),r=function(){function e(e){this.treeWidget=e}return e.prototype.saveState=function(){var e=JSON.stringify(this.getState());this.treeWidget.options.onSetStateFromStorage?this.treeWidget.options.onSetStateFromStorage(e):this.supportsLocalStorage()&&localStorage.setItem(this.getKeyName(),e)},e.prototype.getStateFromStorage=function(){var e=this._loadFromStorage();return e?this._parseState(e):null},e.prototype.getState=function(){var e,t=this;return{open_nodes:(e=[],t.treeWidget.tree.iterate(function(t){return t.is_open&&t.id&&t.hasChildren()&&e.push(t.id),!0}),e),selected_node:t.treeWidget.getSelectedNodes().map(function(e){return e.id})}},e.prototype.setInitialState=function(e){if(e){var t=!1;return e.open_nodes&&(t=this._openInitialNodes(e.open_nodes)),e.selected_node&&(this._resetSelection(),this._selectInitialNodes(e.selected_node)),t}return!1},e.prototype.setInitialStateOnDemand=function(e,t){e?this._setInitialStateOnDemand(e.open_nodes,e.selected_node,t):t()},e.prototype.getNodeIdToBeSelected=function(){var e=this.getStateFromStorage();return e&&e.selected_node?e.selected_node[0]:null},e.prototype._parseState=function(e){var t=jQuery.parseJSON(e);return t&&t.selected_node&&n.isInt(t.selected_node)&&(t.selected_node=[t.selected_node]),t},e.prototype._loadFromStorage=function(){return this.treeWidget.options.onGetStateFromStorage?this.treeWidget.options.onGetStateFromStorage():this.supportsLocalStorage()?localStorage.getItem(this.getKeyName()):void 0},e.prototype._openInitialNodes=function(e){for(var t=!1,o=0,n=e;o=r},e.prototype.getScrollLeft=function(){return this.$scrollParent&&this.$scrollParent.scrollLeft()||0},e.prototype.initScrollParent=function(){var e=this,t=function(){e.scrollParentTop=0,e.$scrollParent=null};"fixed"===this.treeWidget.$el.css("position")&&t();var o=function(){var t=["overflow","overflow-y"],o=function(e){for(var o=0,n=t;o0,s=o.left+n.clientWidth,a=o.left,l=e.pageX>s-20,d=e.pageX0,i=e.pageX>n-20,s=e.pageX-o<20;i?t.scrollLeft(o+20):s&&r&&t.scrollLeft(Math.max(o-20,0))}},e}();t.default=n},function(e,t,o){"use strict";t.__esModule=!0;var n=function(){function e(e){this.treeWidget=e,this.clear()}return e.prototype.getSelectedNode=function(){var e=this.getSelectedNodes();return!!e.length&&e[0]},e.prototype.getSelectedNodes=function(){if(this.selectedSingleNode)return[this.selectedSingleNode];var e=[];for(var t in this.selectedNodes)if(this.selectedNodes.hasOwnProperty(t)){var o=this.treeWidget.getNodeById(t);o&&e.push(o)}return e},e.prototype.getSelectedNodesUnder=function(e){if(this.selectedSingleNode)return e.isParentOf(this.selectedSingleNode)?[this.selectedSingleNode]:[];var t=[];for(var o in this.selectedNodes)if(this.selectedNodes.hasOwnProperty(o)){var n=this.treeWidget.getNodeById(o);n&&e.isParentOf(n)&&t.push(n)}return t},e.prototype.isNodeSelected=function(e){return!!e&&(null!=e.id?!!this.selectedNodes[e.id]:!!this.selectedSingleNode&&this.selectedSingleNode.element===e.element)},e.prototype.clear=function(){this.selectedNodes={},this.selectedSingleNode=null},e.prototype.removeFromSelection=function(e,t){var o=this;void 0===t&&(t=!1),null==e.id?this.selectedSingleNode&&e.element===this.selectedSingleNode.element&&(this.selectedSingleNode=null):(delete this.selectedNodes[e.id],t&&e.iterate(function(){return delete o.selectedNodes[e.id],!0}))},e.prototype.addToSelection=function(e){null!=e.id?this.selectedNodes[e.id]=!0:this.selectedSingleNode=e},e}();t.default=n},function(e,t,o){"use strict";var n,r=this&&this.__extends||(n=function(e,t){return(n=Object.setPrototypeOf||{__proto__:[]}instanceof Array&&function(e,t){e.__proto__=t}||function(e,t){for(var o in t)t.hasOwnProperty(o)&&(e[o]=t[o])})(e,t)},function(e,t){function o(){this.constructor=e}n(e,t),e.prototype=null===t?Object.create(t):(o.prototype=t.prototype,new o)});t.__esModule=!0;var i=o(0),s=function(){function e(e,t){this.init(e,t)}return e.prototype.init=function(e,t){this.node=e,this.treeWidget=t,e.element||(e.element=this.treeWidget.element.get(0)),this.$element=jQuery(e.element)},e.prototype.addDropHint=function(e){return this.mustShowBorderDropHint(e)?new l(this.$element,this.treeWidget._getScrollLeft()):new d(this.node,this.$element,e)},e.prototype.select=function(e){var t=this.getLi();t.addClass("jqtree-selected"),t.attr("aria-selected","true");var o=this.getSpan();o.attr("tabindex",this.treeWidget.options.tabIndex),e&&o.focus()},e.prototype.deselect=function(){var e=this.getLi();e.removeClass("jqtree-selected"),e.attr("aria-selected","false");var t=this.getSpan();t.removeAttr("tabindex"),t.blur()},e.prototype.getUl=function(){return this.$element.children("ul:first")},e.prototype.getSpan=function(){return this.$element.children(".jqtree-element").find("span.jqtree-title")},e.prototype.getLi=function(){return this.$element},e.prototype.mustShowBorderDropHint=function(e){return e===i.Position.Inside},e}();t.NodeElement=s;var a=function(e){function t(){return null!==e&&e.apply(this,arguments)||this}return r(t,e),t.prototype.open=function(e,t,o){var n=this;if(void 0===t&&(t=!0),void 0===o&&(o="fast"),!this.node.is_open){this.node.is_open=!0;var r=this.getButton();r.removeClass("jqtree-closed"),r.html("");var i=r.get(0);if(i){var s=this.treeWidget.renderer.openedIconElement.cloneNode(!0);i.appendChild(s)}var a=function(){n.getLi().removeClass("jqtree-closed"),n.getSpan().attr("aria-expanded","true"),e&&e(n.node),n.treeWidget._triggerEvent("tree.open",{node:n.node})};t?this.getUl().slideDown(o,a):(this.getUl().show(),a())}},t.prototype.close=function(e,t){var o=this;if(void 0===e&&(e=!0),void 0===t&&(t="fast"),this.node.is_open){this.node.is_open=!1;var n=this.getButton();n.addClass("jqtree-closed"),n.html("");var r=n.get(0);if(r){var i=this.treeWidget.renderer.closedIconElement.cloneNode(!0);r.appendChild(i)}var s=function(){o.getLi().addClass("jqtree-closed"),o.getSpan().attr("aria-expanded","false"),o.treeWidget._triggerEvent("tree.close",{node:o.node})};e?this.getUl().slideUp(t,s):(this.getUl().hide(),s())}},t.prototype.mustShowBorderDropHint=function(e){return!this.node.is_open&&e===i.Position.Inside},t.prototype.getButton=function(){return this.$element.children(".jqtree-element").find("a.jqtree-toggler")},t}(s);t.FolderElement=a;var l=function(){function e(e,t){var o=e.children(".jqtree-element"),n=e.width()||0,r=Math.max(n+t-4,0),i=o.outerHeight()||0,s=Math.max(i-4,0);this.$hint=jQuery(''),o.append(this.$hint),this.$hint.css({width:r,height:s})}return e.prototype.remove=function(){this.$hint.remove()},e}();t.BorderDropHint=l;var d=function(){function e(e,t,o){this.$element=t,this.node=e,this.$ghost=jQuery('\n '),o===i.Position.After?this.moveAfter():o===i.Position.Before?this.moveBefore():o===i.Position.Inside&&(e.isFolder()&&e.is_open?this.moveInsideOpenFolder():this.moveInside())}return e.prototype.remove=function(){this.$ghost.remove()},e.prototype.moveAfter=function(){this.$element.after(this.$ghost)},e.prototype.moveBefore=function(){this.$element.before(this.$ghost)},e.prototype.moveInsideOpenFolder=function(){jQuery(this.node.children[0].element).before(this.$ghost)},e.prototype.moveInside=function(){this.$element.after(this.$ghost),this.$ghost.addClass("jqtree-inside")},e}()},,function(e,t,o){e.exports=o(4)}]); \ No newline at end of file diff --git a/themes/default/template/comments.tpl b/themes/default/template/comments.tpl index 6a38dcf99..42d786ac5 100644 --- a/themes/default/template/comments.tpl +++ b/themes/default/template/comments.tpl @@ -12,7 +12,7 @@ - {'Filter'|@translate} + {'Filter'|@translate} diff --git a/themes/default/template/header.tpl b/themes/default/template/header.tpl index 03084aa87..5092b3814 100644 --- a/themes/default/template/header.tpl +++ b/themes/default/template/header.tpl @@ -1,6 +1,9 @@ +{if $SHOW_MOBILE_APP_BANNER} + +{/if} diff --git a/themes/default/template/include/resize.inc.tpl b/themes/default/template/include/resize.inc.tpl deleted file mode 100644 index 152ee61a2..000000000 --- a/themes/default/template/include/resize.inc.tpl +++ /dev/null @@ -1,16 +0,0 @@ -{* Resize possible *} -{footer_script require='jquery.ui.resizable'}{literal} - jQuery().ready(function(){ - // Resize possible for list - jQuery(".categoryList").resizable({ - handles: "all", - animate: true, - animateDuration: "slow", - animateEasing: "swing", - preventDefault: true, - preserveCursor: true, - autoHide: true, - ghost: true - }); - }); -{/literal}{/footer_script} diff --git a/themes/default/template/menubar_related_categories.tpl b/themes/default/template/menubar_related_categories.tpl new file mode 100644 index 000000000..1d1e0837e --- /dev/null +++ b/themes/default/template/menubar_related_categories.tpl @@ -0,0 +1,28 @@ + + {'Related albums'|@translate} + + +{assign var='ref_level' value=0} +{foreach from=$block->data.MENU_CATEGORIES item=cat} + {if $cat.LEVEL > $ref_level} + + {else} + + {''|@str_repeat:($ref_level-$cat.LEVEL)} + {/if} + + {if isset($cat.url)} + {$cat.name} + {else} + {$cat.name} + {/if} + {if $cat.count_images > 0} + {$cat.count_images} + {/if} + {if $cat.count_categories > 0} + {$cat.count_categories} + {/if} + {assign var='ref_level' value=$cat.LEVEL} +{/foreach} +{''|@str_repeat:$ref_level} + diff --git a/themes/default/template/search.tpl b/themes/default/template/search.tpl index 4129746bd..cca8ca41e 100644 --- a/themes/default/template/search.tpl +++ b/themes/default/template/search.tpl @@ -1,8 +1,3 @@ -{* Example of resizeable *} -{* -{include file='include/resize.inc.tpl'} -*} - {combine_script id='jquery.selectize' load='footer' path='themes/default/js/plugins/selectize.min.js'} {combine_css id='jquery.selectize' path="themes/default/js/plugins/selectize.{$themeconf.colorscheme}.css"} diff --git a/themes/default/theme.css b/themes/default/theme.css index 3468e3992..8b1d94944 100644 --- a/themes/default/theme.css +++ b/themes/default/theme.css @@ -113,6 +113,10 @@ padding:0 25px; } +#menubar .badge { + margin-left:5px; +} + .badge::before { content: '['; } @@ -121,6 +125,34 @@ content: ']'; } +.badge.badgeCategories::before { + content:"("; +} +.badge.badgeCategories::after { + content:")"; +} + +/* A nicer (more modern) way to present badge, with a background color and no brackets */ + +/* +.badge::before, .badge::after { + content:none; +} + +.badge { + display: inline-block; + min-width: 5px; + padding: 3px 7px; + color: #eee; + line-height: 1; + vertical-align: middle; + white-space: nowrap; + text-align: center; + background-color: #666; + border-radius: 10px; +} +*/ + /* category and tag results paragraphs on a quick search */ .search_results { font-size: 16px; @@ -792,3 +824,8 @@ LEGEND { .selectize-dropdown [data-selectable], .selectize-dropdown .optgroup-header { padding: 0px 5px !important; } + + +#TagsGroupRemoveTag span{ + display:none; +} diff --git a/themes/elegant/admin/admin.inc.php b/themes/elegant/admin/admin.inc.php deleted file mode 100644 index 7f68dc072..000000000 --- a/themes/elegant/admin/admin.inc.php +++ /dev/null @@ -1,29 +0,0 @@ -set_filenames(array( - 'theme_admin_content' => dirname(__FILE__) . '/admin.tpl')); - -$template->assign('options', safe_unserialize($conf['elegant'])); - -$template->assign_var_from_handle('ADMIN_CONTENT', 'theme_admin_content'); - -?> \ No newline at end of file diff --git a/themes/elegant/admin/admin.tpl b/themes/elegant/admin/admin.tpl deleted file mode 100644 index 2cbad5e21..000000000 --- a/themes/elegant/admin/admin.tpl +++ /dev/null @@ -1,44 +0,0 @@ -{combine_css path="themes/default/js/ui/theme/jquery.ui.button.css"} -{combine_css path="themes/elegant/admin/jquery.ui.button.css"} -{footer_script require='jquery.ui.button'} -{literal} -jQuery(document).ready(function(){ - jQuery( ".radio" ).buttonset(); -}); -{/literal} -{/footer_script} - - - {'Elegant, Configuration Page'|@translate} - - - - - {'Panels options'|@translate} - {'Choose what should be the default state for each panel, or disable the animation:'|@translate} - - - {'Main Menu Panel'|@translate} - {'Displayed'|@translate} - {'Hidden'|@translate} - {'Disable the animation'|@translate} - - - {'Photo Description Panel'|@translate} - {'Displayed'|@translate} - {'Hidden'|@translate} - {'Disable the animation'|@translate} - - - {'Comments Panel'|@translate} - {'Displayed'|@translate} - {'Hidden'|@translate} - {'Disable the animation'|@translate} - - - - - - - - diff --git a/themes/elegant/admin/index.php b/themes/elegant/admin/index.php deleted file mode 100644 index c01bbd832..000000000 --- a/themes/elegant/admin/index.php +++ /dev/null @@ -1,15 +0,0 @@ - diff --git a/themes/elegant/admin/jquery.ui.button.css b/themes/elegant/admin/jquery.ui.button.css deleted file mode 100644 index 4bc0491e3..000000000 --- a/themes/elegant/admin/jquery.ui.button.css +++ /dev/null @@ -1,571 +0,0 @@ -/*! jQuery UI - v1.10.3 - 2013-06-16 -* http://jqueryui.com -* Includes: jquery.ui.core.css, jquery.ui.button.css -* To view and modify this theme, visit http://jqueryui.com/themeroller/?ffDefault=Verdana%2CArial%2Csans-serif&fwDefault=normal&fsDefault=1.1em&cornerRadius=4px&bgColorHeader=cccccc&bgTextureHeader=highlight_soft&bgImgOpacityHeader=75&borderColorHeader=aaaaaa&fcHeader=222222&iconColorHeader=222222&bgColorContent=ffffff&bgTextureContent=flat&bgImgOpacityContent=75&borderColorContent=aaaaaa&fcContent=222222&iconColorContent=222222&bgColorDefault=e6e6e6&bgTextureDefault=glass&bgImgOpacityDefault=75&borderColorDefault=d3d3d3&fcDefault=555555&iconColorDefault=888888&bgColorHover=dadada&bgTextureHover=glass&bgImgOpacityHover=75&borderColorHover=999999&fcHover=212121&iconColorHover=454545&bgColorActive=ffffff&bgTextureActive=glass&bgImgOpacityActive=65&borderColorActive=aaaaaa&fcActive=212121&iconColorActive=454545&bgColorHighlight=fbf9ee&bgTextureHighlight=glass&bgImgOpacityHighlight=55&borderColorHighlight=fcefa1&fcHighlight=363636&iconColorHighlight=2e83ff&bgColorError=fef1ec&bgTextureError=glass&bgImgOpacityError=95&borderColorError=cd0a0a&fcError=cd0a0a&iconColorError=cd0a0a&bgColorOverlay=aaaaaa&bgTextureOverlay=flat&bgImgOpacityOverlay=0&opacityOverlay=30&bgColorShadow=aaaaaa&bgTextureShadow=flat&bgImgOpacityShadow=0&opacityShadow=30&thicknessShadow=8px&offsetTopShadow=-8px&offsetLeftShadow=-8px&cornerRadiusShadow=8px -* Copyright 2013 jQuery Foundation and other contributors Licensed MIT */ - -/* Layout helpers -----------------------------------*/ -#content .ui-helper-hidden { - display: none; -} -#content .ui-helper-hidden-accessible { - border: 0; - clip: rect(0 0 0 0); - height: 1px; - margin: -1px; - overflow: hidden; - padding: 0; - position: absolute; - width: 1px; -} -#content .ui-helper-reset { - margin: 0; - padding: 0; - border: 0; - outline: 0; - line-height: 1.3; - text-decoration: none; - font-size: 100%; - list-style: none; -} -#content .ui-helper-clearfix:before, -#content .ui-helper-clearfix:after { - content: ""; - display: table; - border-collapse: collapse; -} -#content .ui-helper-clearfix:after { - clear: both; -} -#content .ui-helper-clearfix { - min-height: 0; /* support: IE7 */ -} -#content .ui-helper-zfix { - width: 100%; - height: 100%; - top: 0; - left: 0; - position: absolute; - opacity: 0; - filter:Alpha(Opacity=0); -} - -#content .ui-front { - z-index: 100; -} - - -/* Interaction Cues -----------------------------------*/ -#content .ui-state-disabled { - cursor: default !important; -} - - -/* Icons -----------------------------------*/ - -/* states and images */ -#content .ui-icon { - display: block; - text-indent: -99999px; - overflow: hidden; - background-repeat: no-repeat; -} - - -/* Misc visuals -----------------------------------*/ - -/* Overlays */ -#content .ui-widget-overlay { - position: fixed; - top: 0; - left: 0; - width: 100%; - height: 100%; -} -#content .ui-button { - display: inline-block; - position: relative; - padding: 0; - line-height: normal; - margin-right: .1em; - cursor: pointer; - vertical-align: middle; - text-align: center; - overflow: visible; /* removes extra width in IE */ -} -#content .ui-button, -#content .ui-button:link, -#content .ui-button:visited, -#content .ui-button:hover, -#content .ui-button:active { - text-decoration: none; -} -/* to make room for the icon, a width needs to be set here */ -#content .ui-button-icon-only { - width: 2.2em; -} -/* button elements seem to need a little more width */ -#content button.ui-button-icon-only { - width: 2.4em; -} -#content .ui-button-icons-only { - width: 3.4em; -} -#content button.ui-button-icons-only { - width: 3.7em; -} - -/* button text element */ -#content .ui-button .ui-button-text { - display: block; - line-height: normal; -} -#content .ui-button-text-only .ui-button-text { - padding: .4em 1em; -} -#content .ui-button-icon-only .ui-button-text, -#content .ui-button-icons-only .ui-button-text { - padding: .4em; - text-indent: -9999999px; -} -#content .ui-button-text-icon-primary .ui-button-text, -#content .ui-button-text-icons .ui-button-text { - padding: .4em 1em .4em 2.1em; -} -#content .ui-button-text-icon-secondary .ui-button-text, -#content .ui-button-text-icons .ui-button-text { - padding: .4em 2.1em .4em 1em; -} -#content .ui-button-text-icons .ui-button-text { - padding-left: 2.1em; - padding-right: 2.1em; -} -/* no icon support for input elements, provide padding by default */ -#content input.ui-button { - padding: .4em 1em; -} - -/* button icon element(s) */ -#content .ui-button-icon-only .ui-icon, -#content .ui-button-text-icon-primary .ui-icon, -#content .ui-button-text-icon-secondary .ui-icon, -#content .ui-button-text-icons .ui-icon, -#content .ui-button-icons-only .ui-icon { - position: absolute; - top: 50%; - margin-top: -8px; -} -#content .ui-button-icon-only .ui-icon { - left: 50%; - margin-left: -8px; -} -#content .ui-button-text-icon-primary .ui-button-icon-primary, -#content .ui-button-text-icons .ui-button-icon-primary, -#content .ui-button-icons-only .ui-button-icon-primary { - left: .5em; -} -#content .ui-button-text-icon-secondary .ui-button-icon-secondary, -#content .ui-button-text-icons .ui-button-icon-secondary, -#content .ui-button-icons-only .ui-button-icon-secondary { - right: .5em; -} - -/* button sets */ -#content .ui-buttonset { - margin-right: 7px; -} -#content .ui-buttonset .ui-button { - margin-left: 0; - margin-right: -.3em; -} - -/* workarounds */ -/* reset extra padding in Firefox, see h5bp.com/l */ -#content input.ui-button::-moz-focus-inner, -#content button.ui-button::-moz-focus-inner { - border: 0; - padding: 0; -} - -/* Component containers -----------------------------------*/ -#content .ui-widget-content { - border: 1px solid #aaaaaa; - background: #ffffff url(images/ui-bg_flat_75_ffffff_40x100.png) 50% 50% repeat-x; - color: #222222; -} -#content .ui-widget-content a { - color: #222222; -} -#content .ui-widget-header { - border: 1px solid #aaaaaa; - background: #cccccc url(images/ui-bg_highlight-soft_75_cccccc_1x100.png) 50% 50% repeat-x; - color: #222222; - font-weight: bold; -} -#content .ui-widget-header a { - color: #222222; -} - -/* Interaction states -----------------------------------*/ -#content .ui-state-default, -#content .ui-widget-content .ui-state-default, -#content .ui-widget-header .ui-state-default { - border: 1px solid #d3d3d3; - background: #e6e6e6 url(images/ui-bg_glass_75_e6e6e6_1x400.png) 50% 50% repeat-x; - font-weight: normal; - color: #555555; -} -#content .ui-state-default a, -#content .ui-state-default a:link, -#content .ui-state-default a:visited { - color: #555555; - text-decoration: none; -} -#content .ui-state-hover, -#content .ui-widget-content .ui-state-hover, -#content .ui-widget-header .ui-state-hover, -#content .ui-state-focus, -#content .ui-widget-content .ui-state-focus, -#content .ui-widget-header .ui-state-focus { - border: 1px solid #999999; - background: #dadada url(images/ui-bg_glass_75_dadada_1x400.png) 50% 50% repeat-x; - font-weight: normal; - color: #212121; -} -#content .ui-state-hover a, -#content .ui-state-hover a:hover, -#content .ui-state-hover a:link, -#content .ui-state-hover a:visited { - color: #212121; - text-decoration: none; -} -#content .ui-state-active, -#content .ui-widget-content .ui-state-active, -#content .ui-widget-header .ui-state-active { - border: 1px solid #aaaaaa; - background: #ffffff url(images/ui-bg_glass_65_ffffff_1x400.png) 50% 50% repeat-x; - font-weight: normal; - color: #212121; -} -#content .ui-state-active a, -#content .ui-state-active a:link, -#content .ui-state-active a:visited { - color: #212121; - text-decoration: none; -} - -/* Interaction Cues -----------------------------------*/ -#content .ui-state-highlight, -#content .ui-widget-content .ui-state-highlight, -#content .ui-widget-header .ui-state-highlight { - border: 1px solid #fcefa1; - background: #fbf9ee url(images/ui-bg_glass_55_fbf9ee_1x400.png) 50% 50% repeat-x; - color: #363636; -} -#content .ui-state-highlight a, -#content .ui-widget-content .ui-state-highlight a, -#content .ui-widget-header .ui-state-highlight a { - color: #363636; -} -#content .ui-state-error, -#content .ui-widget-content .ui-state-error, -#content .ui-widget-header .ui-state-error { - border: 1px solid #cd0a0a; - background: #fef1ec url(images/ui-bg_glass_95_fef1ec_1x400.png) 50% 50% repeat-x; - color: #cd0a0a; -} -#content .ui-state-error a, -#content .ui-widget-content .ui-state-error a, -#content .ui-widget-header .ui-state-error a { - color: #cd0a0a; -} -#content .ui-state-error-text, -#content .ui-widget-content .ui-state-error-text, -#content .ui-widget-header .ui-state-error-text { - color: #cd0a0a; -} -#content .ui-priority-primary, -#content .ui-widget-content .ui-priority-primary, -#content .ui-widget-header .ui-priority-primary { - font-weight: bold; -} -#content .ui-priority-secondary, -#content .ui-widget-content .ui-priority-secondary, -#content .ui-widget-header .ui-priority-secondary { - opacity: .7; - filter:Alpha(Opacity=70); - font-weight: normal; -} -#content .ui-state-disabled, -#content .ui-widget-content .ui-state-disabled, -#content .ui-widget-header .ui-state-disabled { - opacity: .35; - filter:Alpha(Opacity=35); - background-image: none; -} -#content .ui-state-disabled .ui-icon { - filter:Alpha(Opacity=35); /* For IE8 - See #6059 */ -} - -/* Icons -----------------------------------*/ - -/* states and images */ -#content .ui-icon { - width: 16px; - height: 16px; -} -#content .ui-icon, -#content .ui-widget-content .ui-icon { - background-image: url(images/ui-icons_222222_256x240.png); -} -#content .ui-widget-header .ui-icon { - background-image: url(images/ui-icons_222222_256x240.png); -} -#content .ui-state-default .ui-icon { - background-image: url(images/ui-icons_888888_256x240.png); -} -#content .ui-state-hover .ui-icon, -#content .ui-state-focus .ui-icon { - background-image: url(images/ui-icons_454545_256x240.png); -} -#content .ui-state-active .ui-icon { - background-image: url(images/ui-icons_454545_256x240.png); -} -#content .ui-state-highlight .ui-icon { - background-image: url(images/ui-icons_2e83ff_256x240.png); -} -#content .ui-state-error .ui-icon, -#content .ui-state-error-text .ui-icon { - background-image: url(images/ui-icons_cd0a0a_256x240.png); -} - -/* positioning */ -#content .ui-icon-blank { background-position: 16px 16px; } -#content .ui-icon-carat-1-n { background-position: 0 0; } -#content .ui-icon-carat-1-ne { background-position: -16px 0; } -#content .ui-icon-carat-1-e { background-position: -32px 0; } -#content .ui-icon-carat-1-se { background-position: -48px 0; } -#content .ui-icon-carat-1-s { background-position: -64px 0; } -#content .ui-icon-carat-1-sw { background-position: -80px 0; } -#content .ui-icon-carat-1-w { background-position: -96px 0; } -#content .ui-icon-carat-1-nw { background-position: -112px 0; } -#content .ui-icon-carat-2-n-s { background-position: -128px 0; } -#content .ui-icon-carat-2-e-w { background-position: -144px 0; } -#content .ui-icon-triangle-1-n { background-position: 0 -16px; } -#content .ui-icon-triangle-1-ne { background-position: -16px -16px; } -#content .ui-icon-triangle-1-e { background-position: -32px -16px; } -#content .ui-icon-triangle-1-se { background-position: -48px -16px; } -#content .ui-icon-triangle-1-s { background-position: -64px -16px; } -#content .ui-icon-triangle-1-sw { background-position: -80px -16px; } -#content .ui-icon-triangle-1-w { background-position: -96px -16px; } -#content .ui-icon-triangle-1-nw { background-position: -112px -16px; } -#content .ui-icon-triangle-2-n-s { background-position: -128px -16px; } -#content .ui-icon-triangle-2-e-w { background-position: -144px -16px; } -#content .ui-icon-arrow-1-n { background-position: 0 -32px; } -#content .ui-icon-arrow-1-ne { background-position: -16px -32px; } -#content .ui-icon-arrow-1-e { background-position: -32px -32px; } -#content .ui-icon-arrow-1-se { background-position: -48px -32px; } -#content .ui-icon-arrow-1-s { background-position: -64px -32px; } -#content .ui-icon-arrow-1-sw { background-position: -80px -32px; } -#content .ui-icon-arrow-1-w { background-position: -96px -32px; } -#content .ui-icon-arrow-1-nw { background-position: -112px -32px; } -#content .ui-icon-arrow-2-n-s { background-position: -128px -32px; } -#content .ui-icon-arrow-2-ne-sw { background-position: -144px -32px; } -#content .ui-icon-arrow-2-e-w { background-position: -160px -32px; } -#content .ui-icon-arrow-2-se-nw { background-position: -176px -32px; } -#content .ui-icon-arrowstop-1-n { background-position: -192px -32px; } -#content .ui-icon-arrowstop-1-e { background-position: -208px -32px; } -#content .ui-icon-arrowstop-1-s { background-position: -224px -32px; } -#content .ui-icon-arrowstop-1-w { background-position: -240px -32px; } -#content .ui-icon-arrowthick-1-n { background-position: 0 -48px; } -#content .ui-icon-arrowthick-1-ne { background-position: -16px -48px; } -#content .ui-icon-arrowthick-1-e { background-position: -32px -48px; } -#content .ui-icon-arrowthick-1-se { background-position: -48px -48px; } -#content .ui-icon-arrowthick-1-s { background-position: -64px -48px; } -#content .ui-icon-arrowthick-1-sw { background-position: -80px -48px; } -#content .ui-icon-arrowthick-1-w { background-position: -96px -48px; } -#content .ui-icon-arrowthick-1-nw { background-position: -112px -48px; } -#content .ui-icon-arrowthick-2-n-s { background-position: -128px -48px; } -#content .ui-icon-arrowthick-2-ne-sw { background-position: -144px -48px; } -#content .ui-icon-arrowthick-2-e-w { background-position: -160px -48px; } -#content .ui-icon-arrowthick-2-se-nw { background-position: -176px -48px; } -#content .ui-icon-arrowthickstop-1-n { background-position: -192px -48px; } -#content .ui-icon-arrowthickstop-1-e { background-position: -208px -48px; } -#content .ui-icon-arrowthickstop-1-s { background-position: -224px -48px; } -#content .ui-icon-arrowthickstop-1-w { background-position: -240px -48px; } -#content .ui-icon-arrowreturnthick-1-w { background-position: 0 -64px; } -#content .ui-icon-arrowreturnthick-1-n { background-position: -16px -64px; } -#content .ui-icon-arrowreturnthick-1-e { background-position: -32px -64px; } -#content .ui-icon-arrowreturnthick-1-s { background-position: -48px -64px; } -#content .ui-icon-arrowreturn-1-w { background-position: -64px -64px; } -#content .ui-icon-arrowreturn-1-n { background-position: -80px -64px; } -#content .ui-icon-arrowreturn-1-e { background-position: -96px -64px; } -#content .ui-icon-arrowreturn-1-s { background-position: -112px -64px; } -#content .ui-icon-arrowrefresh-1-w { background-position: -128px -64px; } -#content .ui-icon-arrowrefresh-1-n { background-position: -144px -64px; } -#content .ui-icon-arrowrefresh-1-e { background-position: -160px -64px; } -#content .ui-icon-arrowrefresh-1-s { background-position: -176px -64px; } -#content .ui-icon-arrow-4 { background-position: 0 -80px; } -#content .ui-icon-arrow-4-diag { background-position: -16px -80px; } -#content .ui-icon-extlink { background-position: -32px -80px; } -#content .ui-icon-newwin { background-position: -48px -80px; } -#content .ui-icon-refresh { background-position: -64px -80px; } -#content .ui-icon-shuffle { background-position: -80px -80px; } -#content .ui-icon-transfer-e-w { background-position: -96px -80px; } -#content .ui-icon-transferthick-e-w { background-position: -112px -80px; } -#content .ui-icon-folder-collapsed { background-position: 0 -96px; } -#content .ui-icon-folder-open { background-position: -16px -96px; } -#content .ui-icon-document { background-position: -32px -96px; } -#content .ui-icon-document-b { background-position: -48px -96px; } -#content .ui-icon-note { background-position: -64px -96px; } -#content .ui-icon-mail-closed { background-position: -80px -96px; } -#content .ui-icon-mail-open { background-position: -96px -96px; } -#content .ui-icon-suitcase { background-position: -112px -96px; } -#content .ui-icon-comment { background-position: -128px -96px; } -#content .ui-icon-person { background-position: -144px -96px; } -#content .ui-icon-print { background-position: -160px -96px; } -#content .ui-icon-trash { background-position: -176px -96px; } -#content .ui-icon-locked { background-position: -192px -96px; } -#content .ui-icon-unlocked { background-position: -208px -96px; } -#content .ui-icon-bookmark { background-position: -224px -96px; } -#content .ui-icon-tag { background-position: -240px -96px; } -#content .ui-icon-home { background-position: 0 -112px; } -#content .ui-icon-flag { background-position: -16px -112px; } -#content .ui-icon-calendar { background-position: -32px -112px; } -#content .ui-icon-cart { background-position: -48px -112px; } -#content .ui-icon-pencil { background-position: -64px -112px; } -#content .ui-icon-clock { background-position: -80px -112px; } -#content .ui-icon-disk { background-position: -96px -112px; } -#content .ui-icon-calculator { background-position: -112px -112px; } -#content .ui-icon-zoomin { background-position: -128px -112px; } -#content .ui-icon-zoomout { background-position: -144px -112px; } -#content .ui-icon-search { background-position: -160px -112px; } -#content .ui-icon-wrench { background-position: -176px -112px; } -#content .ui-icon-gear { background-position: -192px -112px; } -#content .ui-icon-heart { background-position: -208px -112px; } -#content .ui-icon-star { background-position: -224px -112px; } -#content .ui-icon-link { background-position: -240px -112px; } -#content .ui-icon-cancel { background-position: 0 -128px; } -#content .ui-icon-plus { background-position: -16px -128px; } -#content .ui-icon-plusthick { background-position: -32px -128px; } -#content .ui-icon-minus { background-position: -48px -128px; } -#content .ui-icon-minusthick { background-position: -64px -128px; } -#content .ui-icon-close { background-position: -80px -128px; } -#content .ui-icon-closethick { background-position: -96px -128px; } -#content .ui-icon-key { background-position: -112px -128px; } -#content .ui-icon-lightbulb { background-position: -128px -128px; } -#content .ui-icon-scissors { background-position: -144px -128px; } -#content .ui-icon-clipboard { background-position: -160px -128px; } -#content .ui-icon-copy { background-position: -176px -128px; } -#content .ui-icon-contact { background-position: -192px -128px; } -#content .ui-icon-image { background-position: -208px -128px; } -#content .ui-icon-video { background-position: -224px -128px; } -#content .ui-icon-script { background-position: -240px -128px; } -#content .ui-icon-alert { background-position: 0 -144px; } -#content .ui-icon-info { background-position: -16px -144px; } -#content .ui-icon-notice { background-position: -32px -144px; } -#content .ui-icon-help { background-position: -48px -144px; } -#content .ui-icon-check { background-position: -64px -144px; } -#content .ui-icon-bullet { background-position: -80px -144px; } -#content .ui-icon-radio-on { background-position: -96px -144px; } -#content .ui-icon-radio-off { background-position: -112px -144px; } -#content .ui-icon-pin-w { background-position: -128px -144px; } -#content .ui-icon-pin-s { background-position: -144px -144px; } -#content .ui-icon-play { background-position: 0 -160px; } -#content .ui-icon-pause { background-position: -16px -160px; } -#content .ui-icon-seek-next { background-position: -32px -160px; } -#content .ui-icon-seek-prev { background-position: -48px -160px; } -#content .ui-icon-seek-end { background-position: -64px -160px; } -#content .ui-icon-seek-start { background-position: -80px -160px; } -/* ui-icon-seek-first is deprecated, use ui-icon-seek-start instead */ -#content .ui-icon-seek-first { background-position: -80px -160px; } -#content .ui-icon-stop { background-position: -96px -160px; } -#content .ui-icon-eject { background-position: -112px -160px; } -#content .ui-icon-volume-off { background-position: -128px -160px; } -#content .ui-icon-volume-on { background-position: -144px -160px; } -#content .ui-icon-power { background-position: 0 -176px; } -#content .ui-icon-signal-diag { background-position: -16px -176px; } -#content .ui-icon-signal { background-position: -32px -176px; } -#content .ui-icon-battery-0 { background-position: -48px -176px; } -#content .ui-icon-battery-1 { background-position: -64px -176px; } -#content .ui-icon-battery-2 { background-position: -80px -176px; } -#content .ui-icon-battery-3 { background-position: -96px -176px; } -#content .ui-icon-circle-plus { background-position: 0 -192px; } -#content .ui-icon-circle-minus { background-position: -16px -192px; } -#content .ui-icon-circle-close { background-position: -32px -192px; } -#content .ui-icon-circle-triangle-e { background-position: -48px -192px; } -#content .ui-icon-circle-triangle-s { background-position: -64px -192px; } -#content .ui-icon-circle-triangle-w { background-position: -80px -192px; } -#content .ui-icon-circle-triangle-n { background-position: -96px -192px; } -#content .ui-icon-circle-arrow-e { background-position: -112px -192px; } -#content .ui-icon-circle-arrow-s { background-position: -128px -192px; } -#content .ui-icon-circle-arrow-w { background-position: -144px -192px; } -#content .ui-icon-circle-arrow-n { background-position: -160px -192px; } -#content .ui-icon-circle-zoomin { background-position: -176px -192px; } -#content .ui-icon-circle-zoomout { background-position: -192px -192px; } -#content .ui-icon-circle-check { background-position: -208px -192px; } -#content .ui-icon-circlesmall-plus { background-position: 0 -208px; } -#content .ui-icon-circlesmall-minus { background-position: -16px -208px; } -#content .ui-icon-circlesmall-close { background-position: -32px -208px; } -#content .ui-icon-squaresmall-plus { background-position: -48px -208px; } -#content .ui-icon-squaresmall-minus { background-position: -64px -208px; } -#content .ui-icon-squaresmall-close { background-position: -80px -208px; } -#content .ui-icon-grip-dotted-vertical { background-position: 0 -224px; } -#content .ui-icon-grip-dotted-horizontal { background-position: -16px -224px; } -#content .ui-icon-grip-solid-vertical { background-position: -32px -224px; } -#content .ui-icon-grip-solid-horizontal { background-position: -48px -224px; } -#content .ui-icon-gripsmall-diagonal-se { background-position: -64px -224px; } -#content .ui-icon-grip-diagonal-se { background-position: -80px -224px; } - - -/* Misc visuals -----------------------------------*/ - -/* Corner radius */ -#content .ui-corner-all, -#content .ui-corner-top, -#content .ui-corner-left, -#content .ui-corner-tl { - border-top-left-radius: 4px; -} -#content .ui-corner-all, -#content .ui-corner-top, -#content .ui-corner-right, -#content .ui-corner-tr { - border-top-right-radius: 4px; -} -#content .ui-corner-all, -#content .ui-corner-bottom, -#content .ui-corner-left, -#content .ui-corner-bl { - border-bottom-left-radius: 4px; -} -#content .ui-corner-all, -#content .ui-corner-bottom, -#content .ui-corner-right, -#content .ui-corner-br { - border-bottom-right-radius: 4px; -} - -/* Overlays */ -#content .ui-widget-overlay { - background: #aaaaaa url(images/ui-bg_flat_0_aaaaaa_40x100.png) 50% 50% repeat-x; - opacity: .3; - filter: Alpha(Opacity=30); -} -#content .ui-widget-shadow { - margin: -8px 0 0 -8px; - padding: 8px; - background: #aaaaaa url(images/ui-bg_flat_0_aaaaaa_40x100.png) 50% 50% repeat-x; - opacity: .3; - filter: Alpha(Opacity=30); - border-radius: 8px; -} diff --git a/themes/elegant/admin/upgrade.inc.php b/themes/elegant/admin/upgrade.inc.php deleted file mode 100644 index b07fb4768..000000000 --- a/themes/elegant/admin/upgrade.inc.php +++ /dev/null @@ -1,28 +0,0 @@ - 'on', //on - off - disabled - 'p_pict_descr' => 'on', //on - off - disabled - 'p_pict_comment' => 'off', //on - off - disabled - ); - - conf_update_param('elegant', $config, true); -} -elseif (count(safe_unserialize( $conf['elegant'] ))!=3) -{ - $conff = safe_unserialize($conf['elegant']); - $config = array( - 'p_main_menu' => (isset($conff['p_main_menu'])) ? $conff['p_main_menu'] :'on', - 'p_pict_descr' => (isset($conff['p_pict_descr'])) ? $conff['p_pict_descr'] :'on', - 'p_pict_comment' => (isset($conff['p_pict_comment'])) ? $conff['p_pict_comment'] :'off', - ); - - conf_update_param('elegant', $config, true); -} -?> \ No newline at end of file diff --git a/themes/elegant/fix-ie7.css b/themes/elegant/fix-ie7.css deleted file mode 100644 index 380666696..000000000 --- a/themes/elegant/fix-ie7.css +++ /dev/null @@ -1,3 +0,0 @@ -#theImage.infoshown { float: left;} -#theImage.infohidden { float: right;} -#imageToolBar .actionButtons { float: right;} \ No newline at end of file diff --git a/themes/elegant/icon/arrows_ccc.png b/themes/elegant/icon/arrows_ccc.png deleted file mode 100644 index d4e0b3514..000000000 Binary files a/themes/elegant/icon/arrows_ccc.png and /dev/null differ diff --git a/themes/elegant/icon/arrows_fff.png b/themes/elegant/icon/arrows_fff.png deleted file mode 100644 index a3a4cd675..000000000 Binary files a/themes/elegant/icon/arrows_fff.png and /dev/null differ diff --git a/themes/elegant/icon/icons_sprite-hover.png b/themes/elegant/icon/icons_sprite-hover.png deleted file mode 100644 index f181301af..000000000 Binary files a/themes/elegant/icon/icons_sprite-hover.png and /dev/null differ diff --git a/themes/elegant/icon/icons_sprite.png b/themes/elegant/icon/icons_sprite.png deleted file mode 100644 index af96ffedc..000000000 Binary files a/themes/elegant/icon/icons_sprite.png and /dev/null differ diff --git a/themes/elegant/icon/icons_sprite.xcf b/themes/elegant/icon/icons_sprite.xcf deleted file mode 100644 index e9dfe623f..000000000 Binary files a/themes/elegant/icon/icons_sprite.xcf and /dev/null differ diff --git a/themes/elegant/icon/img_next.png b/themes/elegant/icon/img_next.png deleted file mode 100644 index be982ed82..000000000 Binary files a/themes/elegant/icon/img_next.png and /dev/null differ diff --git a/themes/elegant/icon/img_prev.png b/themes/elegant/icon/img_prev.png deleted file mode 100644 index 1061c77b5..000000000 Binary files a/themes/elegant/icon/img_prev.png and /dev/null differ diff --git a/themes/elegant/icon/none.png b/themes/elegant/icon/none.png deleted file mode 100644 index f32e0d46b..000000000 Binary files a/themes/elegant/icon/none.png and /dev/null differ diff --git a/themes/elegant/icon/rating-stars.png b/themes/elegant/icon/rating-stars.png deleted file mode 100644 index b4d4de476..000000000 Binary files a/themes/elegant/icon/rating-stars.png and /dev/null differ diff --git a/themes/elegant/index.php b/themes/elegant/index.php deleted file mode 100644 index 58ea04e8f..000000000 --- a/themes/elegant/index.php +++ /dev/null @@ -1,15 +0,0 @@ - diff --git a/themes/elegant/language/ar_SA/theme.lang.php b/themes/elegant/language/ar_SA/theme.lang.php deleted file mode 100644 index 74abd8223..000000000 --- a/themes/elegant/language/ar_SA/theme.lang.php +++ /dev/null @@ -1,17 +0,0 @@ - \ No newline at end of file diff --git a/themes/elegant/language/bg_BG/theme.lang.php b/themes/elegant/language/bg_BG/theme.lang.php deleted file mode 100644 index 5e68f94e6..000000000 --- a/themes/elegant/language/bg_BG/theme.lang.php +++ /dev/null @@ -1,17 +0,0 @@ - \ No newline at end of file diff --git a/themes/elegant/language/br_FR/theme.lang.php b/themes/elegant/language/br_FR/theme.lang.php deleted file mode 100644 index f74c94b76..000000000 --- a/themes/elegant/language/br_FR/theme.lang.php +++ /dev/null @@ -1,17 +0,0 @@ - \ No newline at end of file diff --git a/themes/elegant/language/ca_ES/theme.lang.php b/themes/elegant/language/ca_ES/theme.lang.php deleted file mode 100644 index fd471ad8f..000000000 --- a/themes/elegant/language/ca_ES/theme.lang.php +++ /dev/null @@ -1,17 +0,0 @@ - \ No newline at end of file diff --git a/themes/elegant/language/cs_CZ/index.php b/themes/elegant/language/cs_CZ/index.php deleted file mode 100644 index c01bbd832..000000000 --- a/themes/elegant/language/cs_CZ/index.php +++ /dev/null @@ -1,15 +0,0 @@ - diff --git a/themes/elegant/language/cs_CZ/theme.lang.php b/themes/elegant/language/cs_CZ/theme.lang.php deleted file mode 100644 index b5e534976..000000000 --- a/themes/elegant/language/cs_CZ/theme.lang.php +++ /dev/null @@ -1,11 +0,0 @@ - \ No newline at end of file diff --git a/themes/elegant/language/da_DK/theme.lang.php b/themes/elegant/language/da_DK/theme.lang.php deleted file mode 100644 index 32af74f0e..000000000 --- a/themes/elegant/language/da_DK/theme.lang.php +++ /dev/null @@ -1,17 +0,0 @@ - \ No newline at end of file diff --git a/themes/elegant/language/de_DE/theme.lang.php b/themes/elegant/language/de_DE/theme.lang.php deleted file mode 100644 index 9e0ec9d2a..000000000 --- a/themes/elegant/language/de_DE/theme.lang.php +++ /dev/null @@ -1,16 +0,0 @@ - \ No newline at end of file diff --git a/themes/elegant/language/en_UK/index.php b/themes/elegant/language/en_UK/index.php deleted file mode 100644 index c01bbd832..000000000 --- a/themes/elegant/language/en_UK/index.php +++ /dev/null @@ -1,15 +0,0 @@ - diff --git a/themes/elegant/language/en_UK/theme.lang.php b/themes/elegant/language/en_UK/theme.lang.php deleted file mode 100644 index c2eb97e86..000000000 --- a/themes/elegant/language/en_UK/theme.lang.php +++ /dev/null @@ -1,11 +0,0 @@ - \ No newline at end of file diff --git a/themes/elegant/language/eo_EO/theme.lang.php b/themes/elegant/language/eo_EO/theme.lang.php deleted file mode 100644 index 6226882cd..000000000 --- a/themes/elegant/language/eo_EO/theme.lang.php +++ /dev/null @@ -1,17 +0,0 @@ - \ No newline at end of file diff --git a/themes/elegant/language/es_ES/theme.lang.php b/themes/elegant/language/es_ES/theme.lang.php deleted file mode 100644 index 13f2f2d9b..000000000 --- a/themes/elegant/language/es_ES/theme.lang.php +++ /dev/null @@ -1,17 +0,0 @@ - \ No newline at end of file diff --git a/themes/elegant/language/et_EE/theme.lang.php b/themes/elegant/language/et_EE/theme.lang.php deleted file mode 100644 index 5b8fb91e7..000000000 --- a/themes/elegant/language/et_EE/theme.lang.php +++ /dev/null @@ -1,16 +0,0 @@ - \ No newline at end of file diff --git a/themes/elegant/language/fi_FI/theme.lang.php b/themes/elegant/language/fi_FI/theme.lang.php deleted file mode 100644 index 6e28ea198..000000000 --- a/themes/elegant/language/fi_FI/theme.lang.php +++ /dev/null @@ -1,17 +0,0 @@ - \ No newline at end of file diff --git a/themes/elegant/language/fr_CA/index.php b/themes/elegant/language/fr_CA/index.php deleted file mode 100644 index c01bbd832..000000000 --- a/themes/elegant/language/fr_CA/index.php +++ /dev/null @@ -1,15 +0,0 @@ - diff --git a/themes/elegant/language/fr_CA/theme.lang.php b/themes/elegant/language/fr_CA/theme.lang.php deleted file mode 100644 index 46b8a3bcc..000000000 --- a/themes/elegant/language/fr_CA/theme.lang.php +++ /dev/null @@ -1,12 +0,0 @@ - \ No newline at end of file diff --git a/themes/elegant/language/fr_FR/index.php b/themes/elegant/language/fr_FR/index.php deleted file mode 100644 index c01bbd832..000000000 --- a/themes/elegant/language/fr_FR/index.php +++ /dev/null @@ -1,15 +0,0 @@ - diff --git a/themes/elegant/language/fr_FR/theme.lang.php b/themes/elegant/language/fr_FR/theme.lang.php deleted file mode 100644 index 5b5ad5b2e..000000000 --- a/themes/elegant/language/fr_FR/theme.lang.php +++ /dev/null @@ -1,12 +0,0 @@ - \ No newline at end of file diff --git a/themes/elegant/language/gl_ES/theme.lang.php b/themes/elegant/language/gl_ES/theme.lang.php deleted file mode 100644 index 4c52b4f65..000000000 --- a/themes/elegant/language/gl_ES/theme.lang.php +++ /dev/null @@ -1,16 +0,0 @@ - diff --git a/themes/elegant/language/he_IL/theme.lang.php b/themes/elegant/language/he_IL/theme.lang.php deleted file mode 100644 index 477d284ea..000000000 --- a/themes/elegant/language/he_IL/theme.lang.php +++ /dev/null @@ -1,16 +0,0 @@ - \ No newline at end of file diff --git a/themes/elegant/language/index.php b/themes/elegant/language/index.php deleted file mode 100644 index c01bbd832..000000000 --- a/themes/elegant/language/index.php +++ /dev/null @@ -1,15 +0,0 @@ - diff --git a/themes/elegant/language/it_IT/theme.lang.php b/themes/elegant/language/it_IT/theme.lang.php deleted file mode 100644 index f0c808ca5..000000000 --- a/themes/elegant/language/it_IT/theme.lang.php +++ /dev/null @@ -1,17 +0,0 @@ - \ No newline at end of file diff --git a/themes/elegant/language/ja_JP/index.php b/themes/elegant/language/ja_JP/index.php deleted file mode 100644 index ec6605317..000000000 --- a/themes/elegant/language/ja_JP/index.php +++ /dev/null @@ -1,7 +0,0 @@ - diff --git a/themes/elegant/language/ja_JP/theme.lang.php b/themes/elegant/language/ja_JP/theme.lang.php deleted file mode 100644 index 0737204a7..000000000 --- a/themes/elegant/language/ja_JP/theme.lang.php +++ /dev/null @@ -1,16 +0,0 @@ - diff --git a/themes/elegant/language/km_KH/theme.lang.php b/themes/elegant/language/km_KH/theme.lang.php deleted file mode 100644 index 672488144..000000000 --- a/themes/elegant/language/km_KH/theme.lang.php +++ /dev/null @@ -1,17 +0,0 @@ - \ No newline at end of file diff --git a/themes/elegant/language/kn_IN/theme.lang.php b/themes/elegant/language/kn_IN/theme.lang.php deleted file mode 100644 index 14273677e..000000000 --- a/themes/elegant/language/kn_IN/theme.lang.php +++ /dev/null @@ -1,17 +0,0 @@ - \ No newline at end of file diff --git a/themes/elegant/language/ko_KR/theme.lang.php b/themes/elegant/language/ko_KR/theme.lang.php deleted file mode 100644 index ab2904943..000000000 --- a/themes/elegant/language/ko_KR/theme.lang.php +++ /dev/null @@ -1,17 +0,0 @@ - \ No newline at end of file diff --git a/themes/elegant/language/lt_LT/theme.lang.php b/themes/elegant/language/lt_LT/theme.lang.php deleted file mode 100644 index c97774809..000000000 --- a/themes/elegant/language/lt_LT/theme.lang.php +++ /dev/null @@ -1,17 +0,0 @@ - \ No newline at end of file diff --git a/themes/elegant/language/lv_LV/theme.lang.php b/themes/elegant/language/lv_LV/theme.lang.php deleted file mode 100644 index af23655c0..000000000 --- a/themes/elegant/language/lv_LV/theme.lang.php +++ /dev/null @@ -1,17 +0,0 @@ - \ No newline at end of file diff --git a/themes/elegant/language/mn_MN/index.php b/themes/elegant/language/mn_MN/index.php deleted file mode 100644 index ec6605317..000000000 --- a/themes/elegant/language/mn_MN/index.php +++ /dev/null @@ -1,7 +0,0 @@ - diff --git a/themes/elegant/language/mn_MN/theme.lang.php b/themes/elegant/language/mn_MN/theme.lang.php deleted file mode 100644 index bee23f289..000000000 --- a/themes/elegant/language/mn_MN/theme.lang.php +++ /dev/null @@ -1,17 +0,0 @@ - \ No newline at end of file diff --git a/themes/elegant/language/nb_NO/theme.lang.php b/themes/elegant/language/nb_NO/theme.lang.php deleted file mode 100644 index bbe9b90cd..000000000 --- a/themes/elegant/language/nb_NO/theme.lang.php +++ /dev/null @@ -1,17 +0,0 @@ - \ No newline at end of file diff --git a/themes/elegant/language/nl_NL/theme.lang.php b/themes/elegant/language/nl_NL/theme.lang.php deleted file mode 100644 index a1d91e9a1..000000000 --- a/themes/elegant/language/nl_NL/theme.lang.php +++ /dev/null @@ -1,16 +0,0 @@ - \ No newline at end of file diff --git a/themes/elegant/language/pl_PL/theme.lang.php b/themes/elegant/language/pl_PL/theme.lang.php deleted file mode 100644 index 61020c8f3..000000000 --- a/themes/elegant/language/pl_PL/theme.lang.php +++ /dev/null @@ -1,17 +0,0 @@ - \ No newline at end of file diff --git a/themes/elegant/language/pt_BR/theme.lang.php b/themes/elegant/language/pt_BR/theme.lang.php deleted file mode 100644 index e31e8b9d6..000000000 --- a/themes/elegant/language/pt_BR/theme.lang.php +++ /dev/null @@ -1,17 +0,0 @@ - \ No newline at end of file diff --git a/themes/elegant/language/pt_PT/theme.lang.php b/themes/elegant/language/pt_PT/theme.lang.php deleted file mode 100644 index 3bf665290..000000000 --- a/themes/elegant/language/pt_PT/theme.lang.php +++ /dev/null @@ -1,17 +0,0 @@ - \ No newline at end of file diff --git a/themes/elegant/language/ro_RO/theme.lang.php b/themes/elegant/language/ro_RO/theme.lang.php deleted file mode 100644 index 5a5349f73..000000000 --- a/themes/elegant/language/ro_RO/theme.lang.php +++ /dev/null @@ -1,17 +0,0 @@ - \ No newline at end of file diff --git a/themes/elegant/language/ru_RU/theme.lang.php b/themes/elegant/language/ru_RU/theme.lang.php deleted file mode 100644 index c28d2352e..000000000 --- a/themes/elegant/language/ru_RU/theme.lang.php +++ /dev/null @@ -1,17 +0,0 @@ - \ No newline at end of file diff --git a/themes/elegant/language/sk_SK/theme.lang.php b/themes/elegant/language/sk_SK/theme.lang.php deleted file mode 100644 index d8b4a8d38..000000000 --- a/themes/elegant/language/sk_SK/theme.lang.php +++ /dev/null @@ -1,17 +0,0 @@ - \ No newline at end of file diff --git a/themes/elegant/language/sl_SI/theme.lang.php b/themes/elegant/language/sl_SI/theme.lang.php deleted file mode 100644 index 678a2315c..000000000 --- a/themes/elegant/language/sl_SI/theme.lang.php +++ /dev/null @@ -1,17 +0,0 @@ - \ No newline at end of file diff --git a/themes/elegant/language/sr_RS/index.php b/themes/elegant/language/sr_RS/index.php deleted file mode 100644 index ec6605317..000000000 --- a/themes/elegant/language/sr_RS/index.php +++ /dev/null @@ -1,7 +0,0 @@ - diff --git a/themes/elegant/language/sr_RS/theme.lang.php b/themes/elegant/language/sr_RS/theme.lang.php deleted file mode 100644 index 67b934063..000000000 --- a/themes/elegant/language/sr_RS/theme.lang.php +++ /dev/null @@ -1,16 +0,0 @@ - \ No newline at end of file diff --git a/themes/elegant/language/ta_IN/theme.lang.php b/themes/elegant/language/ta_IN/theme.lang.php deleted file mode 100644 index 15826689d..000000000 --- a/themes/elegant/language/ta_IN/theme.lang.php +++ /dev/null @@ -1,18 +0,0 @@ - \ No newline at end of file diff --git a/themes/elegant/language/th_TH/theme.lang.php b/themes/elegant/language/th_TH/theme.lang.php deleted file mode 100644 index b641b3b19..000000000 --- a/themes/elegant/language/th_TH/theme.lang.php +++ /dev/null @@ -1,18 +0,0 @@ - \ No newline at end of file diff --git a/themes/elegant/language/tr_TR/theme.lang.php b/themes/elegant/language/tr_TR/theme.lang.php deleted file mode 100644 index 216931bc5..000000000 --- a/themes/elegant/language/tr_TR/theme.lang.php +++ /dev/null @@ -1,17 +0,0 @@ - \ No newline at end of file diff --git a/themes/elegant/language/uk_UA/theme.lang.php b/themes/elegant/language/uk_UA/theme.lang.php deleted file mode 100644 index b34287dde..000000000 --- a/themes/elegant/language/uk_UA/theme.lang.php +++ /dev/null @@ -1,17 +0,0 @@ - \ No newline at end of file diff --git a/themes/elegant/language/vi_VN/theme.lang.php b/themes/elegant/language/vi_VN/theme.lang.php deleted file mode 100644 index 675d81657..000000000 --- a/themes/elegant/language/vi_VN/theme.lang.php +++ /dev/null @@ -1,17 +0,0 @@ - \ No newline at end of file diff --git a/themes/elegant/language/zh_CN/theme.lang.php b/themes/elegant/language/zh_CN/theme.lang.php deleted file mode 100644 index 13984a0a8..000000000 --- a/themes/elegant/language/zh_CN/theme.lang.php +++ /dev/null @@ -1,17 +0,0 @@ - \ No newline at end of file diff --git a/themes/elegant/language/zh_HK/theme.lang.php b/themes/elegant/language/zh_HK/theme.lang.php deleted file mode 100644 index e55ea0044..000000000 --- a/themes/elegant/language/zh_HK/theme.lang.php +++ /dev/null @@ -1,17 +0,0 @@ - \ No newline at end of file diff --git a/themes/elegant/language/zh_TW/theme.lang.php b/themes/elegant/language/zh_TW/theme.lang.php deleted file mode 100644 index 9d042dea4..000000000 --- a/themes/elegant/language/zh_TW/theme.lang.php +++ /dev/null @@ -1,17 +0,0 @@ - \ No newline at end of file diff --git a/themes/elegant/local_head.tpl b/themes/elegant/local_head.tpl deleted file mode 100644 index 8c2b4045c..000000000 --- a/themes/elegant/local_head.tpl +++ /dev/null @@ -1,11 +0,0 @@ -{footer_script} - var p_main_menu = "{$elegant.p_main_menu}", p_pict_descr = "{$elegant.p_pict_descr}", p_pict_comment = "{$elegant.p_pict_comment}"; -{/footer_script} -{if $BODY_ID=='thePicturePage'} - {combine_script id='elegant.scripts_pp' load='footer' require='jquery' path='themes/elegant/scripts_pp.js'} -{else} - {combine_script id='elegant.scripts' load='footer' require='jquery' path='themes/elegant/scripts.js'} -{/if} - diff --git a/themes/elegant/screenshot.png b/themes/elegant/screenshot.png deleted file mode 100644 index 5d938d235..000000000 Binary files a/themes/elegant/screenshot.png and /dev/null differ diff --git a/themes/elegant/scripts.js b/themes/elegant/scripts.js deleted file mode 100644 index 51da49fd6..000000000 --- a/themes/elegant/scripts.js +++ /dev/null @@ -1,54 +0,0 @@ -(function() { - var session_storage = window.sessionStorage || {}; - - var menubar=jQuery("#menubar"), - menuswitcher=jQuery("#menuSwitcher"), - content=jQuery("#the_page > .content"), - pcontent=jQuery("#content"); - - function hideMenu(delay) { - menubar.hide(delay); - menuswitcher.addClass("menuhidden").removeClass("menushown"); - content.addClass("menuhidden").removeClass("menushown"); - pcontent.addClass("menuhidden").removeClass("menushown"); - session_storage['page-menu'] = 'hidden'; - } - - function showMenu(delay) { - menubar.show(delay); - menuswitcher.addClass("menushown").removeClass("menuhidden"); - content.addClass("menushown").removeClass("menuhidden"); - pcontent.addClass("menushown").removeClass("menuhidden"); - session_storage['page-menu'] = 'visible'; - } - - jQuery(function(){ - if (menubar.length == 1 && p_main_menu!="disabled") { - menuswitcher.html(' '); - - if (session_storage['page-menu'] === undefined && p_main_menu == 'off') { - session_storage['page-menu'] = 'hidden'; - } - - if (session_storage['page-menu'] == 'hidden') { - hideMenu(0); - } - else { - showMenu(0); - } - - menuswitcher.click(function(e){ - if (menubar.is(":hidden")) { - showMenu(0); - } - else { - hideMenu(0); - } - e.preventDefault(); - }); - } - else if (menubar.length == 1 && p_main_menu=="disabled") { - showMenu(0); - } - }); -}()); \ No newline at end of file diff --git a/themes/elegant/scripts_pp.js b/themes/elegant/scripts_pp.js deleted file mode 100644 index f85570d7c..000000000 --- a/themes/elegant/scripts_pp.js +++ /dev/null @@ -1,172 +0,0 @@ -(function() { - var session_storage = window.sessionStorage || {}; - - var menubar=jQuery("#menubar"), - menuswitcher, - content=jQuery("#the_page > .content"), - pcontent=jQuery("#content"), - imageInfos=jQuery("#imageInfos"), - infoswitcher, - theImage=jQuery("#theImage"), - comments=jQuery("#thePicturePage #comments"), - comments_button, - commentsswitcher, - comments_add, - comments_top_offset = 0; - - function hideMenu(delay) { - menubar.hide(delay); - menuswitcher.addClass("menuhidden").removeClass("menushown"); - content.addClass("menuhidden").removeClass("menushown"); - pcontent.addClass("menuhidden").removeClass("menushown"); - session_storage['picture-menu'] = 'hidden'; - } - - function showMenu(delay) { - menubar.show(delay); - menuswitcher.addClass("menushown").removeClass("menuhidden"); - content.addClass("menushown").removeClass("menuhidden"); - pcontent.addClass("menushown").removeClass("menuhidden"); - session_storage['picture-menu'] = 'visible'; - } - - function hideInfo(delay) { - imageInfos.hide(delay); - infoswitcher.addClass("infohidden").removeClass("infoshown"); - theImage.addClass("infohidden").removeClass("infoshown"); - session_storage['side-info'] = 'hidden'; - } - - function showInfo(delay) { - imageInfos.show(delay); - infoswitcher.addClass("infoshown").removeClass("infohidden"); - theImage.addClass("infoshown").removeClass("infohidden"); - session_storage['side-info'] = 'visible'; - } - - function commentsToggle() { - if (comments.hasClass("commentshidden")) { - comments.removeClass("commentshidden").addClass("commentsshown"); - comments_button.addClass("comments_toggle_off").removeClass("comments_toggle_on"); - session_storage['comments'] = 'visible'; - comments_top_offset = comments_add.offset().top - parseFloat(comments_add.css('marginTop').replace(/auto/, 0)); - } - else { - comments.addClass("commentshidden").removeClass("commentsshown"); - comments_button.addClass("comments_toggle_on").removeClass("comments_toggle_off"); - session_storage['comments'] = 'hidden'; - comments_top_offset = 0; - } - } - - jQuery(function(){ - // side-menu show/hide - if (menubar.length == 1 && p_main_menu!="disabled") { - menuswitcher=jQuery("#menuSwitcher"); - - menuswitcher.html(' '); - - if (session_storage['picture-menu'] === undefined && p_main_menu == 'off') { - session_storage['picture-menu'] = 'hidden'; - } - - if (session_storage['picture-menu'] == 'hidden') { - hideMenu(0); - } - else { - showMenu(0); - } - - menuswitcher.click(function(e){ - if (menubar.is(":hidden")) { - showMenu(0); - } - else { - hideMenu(0); - } - e.preventDefault(); - }); - } - - // info show/hide - if (imageInfos.length == 1 && p_pict_descr!="disabled") { - infoswitcher=jQuery("#infoSwitcher"); - - infoswitcher.html(' '); - - if (session_storage['side-info'] === undefined && p_pict_descr == 'off') { - session_storage['side-info'] = 'hidden'; - } - - if (session_storage['side-info'] == 'hidden') { - hideInfo(0); - } - else { - showInfo(0); - } - - infoswitcher.click(function(e){ - if (imageInfos.is(":hidden")) { - showInfo(0); - } - else { - hideInfo(0); - } - e.preventDefault(); - }); - } - - // comments show/hide - if (comments.length == 1 && p_pict_comment!="disabled") { - commentsswitcher=jQuery("#commentsSwitcher"); - comments_button=jQuery("#comments h3"); - comments_add=jQuery('#commentAdd'); - - commentsswitcher.html(' '); - - if (comments_button.length == 0) { - jQuery("#addComment").before("Comments"); - comments_button=jQuery("#comments h3"); - } - - if (session_storage['comments'] === undefined && p_pict_comment == 'off') { - session_storage['comments'] = 'hidden'; - } - - if (session_storage['comments'] == 'hidden') { - comments.addClass("commentshidden"); - comments_button.addClass("comments_toggle comments_toggle_on"); - } - else { - comments.addClass("commentsshown"); - comments_button.addClass("comments_toggle comments_toggle_off"); - } - - comments_button.click(commentsToggle); - commentsswitcher.click(commentsToggle); - - jQuery(window).scroll(function (event) { - if (comments_top_offset==0) return; - - var y = jQuery(this).scrollTop(); - - if (y >= comments_top_offset) { - comments_add.css({ - 'position': 'absolute', - 'top': y-comments.offset().top+10 - }); - } - else { - comments_add.css({ - 'position': 'static', - 'top': 0 - }); - } - }); - - if (comments_add.is(":visible")) { - comments_top_offset = comments_add.offset().top - parseFloat(comments_add.css('marginTop').replace(/auto/, 0)); - } - } - }); -}()); diff --git a/themes/elegant/theme.css b/themes/elegant/theme.css deleted file mode 100644 index 3fb589222..000000000 --- a/themes/elegant/theme.css +++ /dev/null @@ -1,292 +0,0 @@ -/* backgrounds */ - -html, body { background-color: #111;} - -#content, .content { background-color: #222;} -.content .titrePage { background-color: #111;} - -#menubar, #the_page #menuSwitcher.menuhidden { background-color: #222;} - -#thePicturePage, #imageHeaderBar { background-color: #111;} -#imageInfos, #infoSwitcher.infohidden { background-color: #333;} -#thePicturePage #comments { background-color: #333;} -#pictureCommentList li { background-color: #444;} - -.calendarTitle { background-color: #222;} - -.switchBox, .header_notes { background-color: #555;} -.thumbnailCategory , .commentElement { background-color: #333;} -.message { background-color: #666;} - -INPUT[type="text"], INPUT[type="password"], -INPUT[type="button"], INPUT[type="submit"], -INPUT[type="reset"], INPUT[type="file"], -SELECT, TEXTAREA, OPTION { background-color: #555;} -INPUT:focus, SELECT:focus, TEXTAREA:focus { background-color: #666;} - - -/* font colors */ - -body, legend { color: #aaa;} -a { color: #ccc;} -a:hover { color: #fff;} -INPUT.rateButton { color: #fff;} -H1, H3, INPUT.rateButtonSelected { color: #ccc;} -.message { color: #fff;} -.commentContent .comments_toggle:hover { color: #fff;} -INPUT[type="text"], INPUT[type="password"], -INPUT[type="button"], INPUT[type="submit"], -INPUT[type="reset"], INPUT[type="file"], -SELECT, TEXTAREA { color: #ccc;} -INPUT:focus, SELECT:focus, TEXTAREA:focus { color: #fff;} - - -/* borders */ - -#content,.content, .content .titrePage { border-bottom: 2px solid #444;} -#imageHeaderBar { border: solid 0 #444; border-bottom-width:2px;} -#copyright { border-top-width:2px;} -#content .calendarTitleBar { border-bottom: none;} -.calendarTitle { border-top: 2px solid #444;} -.switchBox { border: 1px solid #000;} -.switchBoxTitle { border-bottom: 1px solid #444;} -INPUT, SELECT, TEXTAREA { border: 1px solid #666;} -FIELDSET {border: 2px solid #444;} - -/* form */ -legend {font-style:normal;} -#qsearchInput {margin-left:-20px} - -/* icons */ - -.pwg-icon { background-image: url(icon/icons_sprite.png);} -A:hover .pwg-icon { background-image: url(icon/icons_sprite-hover.png);} - - -/* general rules */ - -body { margin: 5px 0;} -a:hover { border-bottom: none;} -#copyright { padding:0 4px 0 0; text-align:right;} - - -/* content */ - -#the_page #content.menushown, #the_page > .content.menushown, .contentWithMenu { margin-left: 240px;} -#the_page #content.menuhidden, #the_page > .content.menuhidden { margin-left: 35px;} -#the_page #content, #the_page > .content { margin-right: 0;} - -#content,.content { margin-bottom: 4px; padding-bottom: 4px;} -#thePicturePage #content { padding-bottom: 0;} -.content .titrePage { padding:0; margin-bottom:4px;} -.content .titrePage H2 { line-height: 20px; padding: 8px 0 0 2px;} - - -/* menubar */ - -#menubar { - display: inline; - width: 230px; - float: left; - margin: 28px 8px 10px 0; - padding: 0; -} -#menubar DT { text-align: left;} -#menubar dd { padding: 0 0 1em 1em;} -#menubar .pwg-icon-filter { display: none;} - -#quickconnect FIELDSET { - margin: 0 10px 0 -10px; - border: 2px solid #444444; -} - -/* switchers */ - -#menuSwitcher { - display: block; - text-align: center; - height: 32px; - cursor: pointer; - float: left; - margin: 28px 0 0 -34px; -} - - -#imageInfos, #infoSwitcher.infohidden { border-radius: 10px 0 0 10px;} -#menubar, #the_page #menuSwitcher.menuhidden { border-radius: 0 10px 10px 0;} -#the_page #menuSwitcher.menuhidden { width: 25px; margin-left: 0;} - -#infoSwitcher { - display: block; - text-align: center; - height: 32px; - cursor: pointer; - position:absolute; - left:75%; - top:0; - margin: 10px 0 0 7px; - z-index:99; -} - -#infoSwitcher.infohidden { - width:25px; - top:10px; - right:0; - left:auto; - margin:0; -} - -#slideshow #theImage { width: 100%; margin: auto; overflow: visible;} -#theImage.infohidden { width: 100%;} - -#commentsSwitcher { float: left; margin: 2px 0; cursor:pointer;} -.noCommentContent #commentsSwitcher { display: none;} - -.switchArrow { width: 16px; height: 16px; margin: 8px 5px 8px 4px;} -.switchArrow { background: transparent url("icon/arrows_ccc.png");} -.switchArrow:hover { background: transparent url("icon/arrows_fff.png");} -.menuhidden .switchArrow { background-position: 0 0;} -.menushown .switchArrow { background-position: -16px 0;} -.infohidden .switchArrow { background-position: -16px 0;} -.infoshown .switchArrow { background-position: 0 0;} -.commentshidden .switchArrow { background-position: -48px 0;} -.commentsshown .switchArrow { background-position: -32px 0;} - - -/* switchboxes */ - -.switchBox { - border-radius: 4px 4px 4px 4px; - padding: 0.5em 10px; - text-align: left; - z-index: 100; -} -.derivativeSizeDetails { display: none;} - -/* thumbnails */ - -#thumbnails { padding-top: 5px;} -.thumbnailCategory .illustration, -.commentElement .illustration { margin: 2px; text-align: center;} - - -/* picture page */ - -.contentWithMenu #imageHeaderBar { padding: 0;} -#imageHeaderBar { padding: 0 0 0 10px;} -#imageHeaderBar { width: auto;} -#imageHeaderBar h2 { font-size: 100%; font-weight: inherit;} -#imageHeaderBar .browsePath { - display:inline-block; - float:left; - font-size:120%; - line-height:20px; - padding: 8px 0 0 2px; - font-weight:bold; - margin:0; -} -#imageToolBar .imageNumber { display: inline-block; float: right; line-height: 26px; margin: 0 2px 0 0; min-width: 40px; text-align: center;} -#imageToolBar { margin-top: -28px; margin-bottom: 0; float: right;} -#thePicturePage .pwg-button { width: 26px;} -#thePicturePage .actionButtons { margin-right: 26px;} - -#theImageAndInfos { - display: block; - width: 100%; - position: relative; -} -#theImage { - display: inline-block; - width: 75%; - vertical-align: top; - overflow: auto; - padding: 10px 0 5px 0; -} - -.rateButtonStarFull { background: url('icon/rating-stars.png') no-repeat -16px center; width:16px;} -.rateButtonStarEmpty { background: url('icon/rating-stars.png') no-repeat 0 center; width:16px;} - - -/* image infos */ - -#imageInfos { - display: inline-block; - width: 24.5%; - vertical-align: top; - padding-top: 35px; - padding-bottom: 5px; - margin: 10px 0 10px 0.5%; - word-wrap:break-word; -} - -#imageInfos .navThumbs { width: 250px; height: 130px; margin: auto; padding: 0 5px;} -#imageInfos .navThumb { position: relative; margin: 0; overflow: hidden;} -#imageInfos #linkPrev { float: left;} -#imageInfos #linkNext { float: right;} -#imageInfos .prevThumbHover { background: transparent url(icon/none.png) no-repeat center center;} -#imageInfos .prevThumbHover:hover { background: transparent url(icon/img_prev.png) no-repeat center center;} -#imageInfos .nextThumbHover { background: transparent url(icon/none.png) no-repeat center center;} -#imageInfos .nextThumbHover:hover { background: transparent url(icon/img_next.png) no-repeat center center;} - -#imageInfos dl.imageInfoTable { display: block; padding: 0 15px; margin: 12px auto;} -#imageInfos .imageInfo { display: block; line-height: 16px;} -#imageInfos .imageInfo dt { display: block; font-weight: bold; text-align: left; padding: 0;} -#imageInfos .imageInfo dd { display: block; text-align: left; margin: 0 0 5px 20px;} -#imageInfos h3 { margin: 20px 0 10px;} - - -/* image comments */ - -#thePicturePage #comments { padding: 2px 5px; position:relative;} -#thePicturePage #comments h3 { margin: 10px 0;} -#thePicturePage #comments form { margin: 10px 0;} -#thePicturePage #comments fieldset { margin: 0 1em;} - -.commentshidden #pictureComments { display: none;} -.commentContent .comments_toggle { cursor: pointer;} - -#commentAdd, #pictureCommentList { width: 48%; padding: 0 1%;} -#commentAdd { float: left; } -#pictureCommentList { float: right; } - -#commentAdd input[type="text"], -#commentAdd textarea { - width: 95%; - font-family: Arial,Helvetica,sans-serif; - font-size: 100%; -} -#pictureCommentList .commentsOrder { float: left; margin-bottom: 5px;} -#pictureCommentList .navigationBar { float: right; margin-bottom: 5px;} -#pictureComments h4 { margin: 0;} -#pictureComments form p { margin: 5px 0;} -#pictureComments form p textarea { margin: 10px 0;} -#pictureComments INPUT { margin: 10px;} -#pictureComments INPUT[type=submit] { margin: 0;} -.commentElement .description { padding: 5px;} - -/* tag page */ - -FIELDSET.tagLetter, LEGEND.tagLetterLegend, TR.tagLine { - border-color: #333; -} - -FIELDSET.tagLetter { - width:250px; -} - -TABLE.tagLetterContent { - font-size:inherit; -} - -TD.nbEntries { - white-space: nowrap; -} - -/* calendar */ - -.calendarViews { margin-top: 4px;} - -/* plugins */ - -#the_page .content .stuffs { margin: 0!important} -.categoryActions .theme_menuf { display: none;} diff --git a/themes/elegant/themeconf.inc.php b/themes/elegant/themeconf.inc.php deleted file mode 100644 index 5ff8842eb..000000000 --- a/themes/elegant/themeconf.inc.php +++ /dev/null @@ -1,27 +0,0 @@ - 'elegant', - 'parent' => 'default', - 'local_head' => 'local_head.tpl' -); -// Need upgrade? -global $conf; -include(PHPWG_THEMES_PATH.'elegant/admin/upgrade.inc.php'); - -add_event_handler('init', 'set_config_values_elegant'); -function set_config_values_elegant() -{ - global $conf, $template; - $config = unserialize( $conf['elegant'] ); - $template->assign( 'elegant', $config ); -} - -?> diff --git a/themes/smartpocket/admin/admin.inc.php b/themes/smartpocket/admin/admin.inc.php deleted file mode 100644 index 6b2069837..000000000 --- a/themes/smartpocket/admin/admin.inc.php +++ /dev/null @@ -1,28 +0,0 @@ -set_filenames(array( - 'theme_admin_content' => dirname(__FILE__) . '/admin.tpl')); - -$template->assign('options', safe_unserialize($conf['smartpocket'])); - -$template->assign_var_from_handle('ADMIN_CONTENT', 'theme_admin_content'); - -?> \ No newline at end of file diff --git a/themes/smartpocket/admin/admin.tpl b/themes/smartpocket/admin/admin.tpl deleted file mode 100644 index baf6d47fe..000000000 --- a/themes/smartpocket/admin/admin.tpl +++ /dev/null @@ -1,47 +0,0 @@ -{html_style} -.graphicalCheckbox { - font-size:16px; - line-height:16px; -} - -input[type=checkbox] { - display:none; -} -{/html_style} - -{footer_script}{literal} -jQuery(document).ready(function() { - jQuery('form li label input[type=checkbox]').change(function() { - jQuery(this).prev().toggleClass('icon-check icon-check-empty'); - }); -}); -{/literal}{/footer_script} - - - {'Smartpocket, Configuration Page'|@translate} - - - - - {'Slideshow Options'|@translate} - - - - {'Loop the slideshow'|@translate} - - - - - - {'Autohide the bar of the slideshow'|@translate} - - - - - - - - - - - diff --git a/themes/smartpocket/admin/index.php b/themes/smartpocket/admin/index.php deleted file mode 100644 index c01bbd832..000000000 --- a/themes/smartpocket/admin/index.php +++ /dev/null @@ -1,15 +0,0 @@ - diff --git a/themes/smartpocket/admin/maintain.inc.php b/themes/smartpocket/admin/maintain.inc.php deleted file mode 100644 index 92fe7b1e3..000000000 --- a/themes/smartpocket/admin/maintain.inc.php +++ /dev/null @@ -1,43 +0,0 @@ - true,//true - false - 'autohide' => 5000,//5000 - 0 - ); - - function activate($theme_version, &$errors=array()) - { - global $conf, $prefixeTable; - - if (empty($conf['smartpocket'])) - { - conf_update_param('smartpocket', $this->default_conf, true); - } - elseif (count(safe_unserialize($conf['smartpocket'])) != 2) - { - $conff = safe_unserialize($conf['smartpocket']); - - $config = array( - 'loop' => (!empty($conff['loop'])) ? $conff['loop'] :true, - 'autohide' => (!empty($conff['autohide'])) ? $conff['autohide'] :5000, - ); - - conf_update_param('smartpocket', $config, true); - } - $this->installed = true; - } - - function deactivate() - { - } - - function delete() - { - // delete configuration - conf_delete_param('smartpocket'); - } -} -?> \ No newline at end of file diff --git a/themes/smartpocket/admin/upgrade.inc.php b/themes/smartpocket/admin/upgrade.inc.php deleted file mode 100644 index 53e4e1aae..000000000 --- a/themes/smartpocket/admin/upgrade.inc.php +++ /dev/null @@ -1,25 +0,0 @@ - true,//true - false - 'autohide' => 5000,//5000 - 0 - ); - - conf_update_param('smartpocket', $config, true); -} -elseif (count(safe_unserialize($conf['smartpocket'])) != 2) -{ - $conff = safe_unserialize($conf['smartpocket']); - $config = array( - 'loop' => (!empty($conff['loop'])) ? $conff['loop'] :true, - 'autohide' => (!empty($conff['autohide'])) ? $conff['autohide'] :5000, - ); - conf_update_param('smartpocket', $config, true); -} -?> \ No newline at end of file diff --git a/themes/smartpocket/images/ajax-loader.gif b/themes/smartpocket/images/ajax-loader.gif deleted file mode 100644 index fd1a189c2..000000000 Binary files a/themes/smartpocket/images/ajax-loader.gif and /dev/null differ diff --git a/themes/smartpocket/images/ajax-loader.png b/themes/smartpocket/images/ajax-loader.png deleted file mode 100644 index 0973ae040..000000000 Binary files a/themes/smartpocket/images/ajax-loader.png and /dev/null differ diff --git a/themes/smartpocket/images/error.gif b/themes/smartpocket/images/error.gif deleted file mode 100644 index 6a96f4d61..000000000 Binary files a/themes/smartpocket/images/error.gif and /dev/null differ diff --git a/themes/smartpocket/images/icons-18-black.png b/themes/smartpocket/images/icons-18-black.png deleted file mode 100644 index 791646384..000000000 Binary files a/themes/smartpocket/images/icons-18-black.png and /dev/null differ diff --git a/themes/smartpocket/images/icons-18-white.png b/themes/smartpocket/images/icons-18-white.png deleted file mode 100644 index 3419b81f6..000000000 Binary files a/themes/smartpocket/images/icons-18-white.png and /dev/null differ diff --git a/themes/smartpocket/images/icons-36-black.png b/themes/smartpocket/images/icons-36-black.png deleted file mode 100644 index 043bfcd52..000000000 Binary files a/themes/smartpocket/images/icons-36-black.png and /dev/null differ diff --git a/themes/smartpocket/images/icons-36-white.png b/themes/smartpocket/images/icons-36-white.png deleted file mode 100644 index 12455c907..000000000 Binary files a/themes/smartpocket/images/icons-36-white.png and /dev/null differ diff --git a/themes/smartpocket/images/icons.png b/themes/smartpocket/images/icons.png deleted file mode 100644 index c4011d1d0..000000000 Binary files a/themes/smartpocket/images/icons.png and /dev/null differ diff --git a/themes/smartpocket/images/icons@2x.png b/themes/smartpocket/images/icons@2x.png deleted file mode 100644 index 87b63455d..000000000 Binary files a/themes/smartpocket/images/icons@2x.png and /dev/null differ diff --git a/themes/smartpocket/images/loader.gif b/themes/smartpocket/images/loader.gif deleted file mode 100644 index c95d05a05..000000000 Binary files a/themes/smartpocket/images/loader.gif and /dev/null differ diff --git a/themes/smartpocket/jquery.mobile.css b/themes/smartpocket/jquery.mobile.css deleted file mode 100644 index 422d175b7..000000000 --- a/themes/smartpocket/jquery.mobile.css +++ /dev/null @@ -1,3366 +0,0 @@ -/* -* jQuery Mobile 1.3.1 -* Git HEAD hash: 74b4bec049fd93e4fe40205e6157de16eb64eb46 <> Date: Mon Apr 8 2013 19:41:28 UTC -* http://jquerymobile.com -* -* Copyright 2010, 2013 jQuery Foundation, Inc. and other contributors -* Released under the MIT license. -* http://jquery.org/license -* -*/ - - -/* Swatches */ -/* A ------------------------------------------------------------------------------------------------------------*/ -.ui-bar-a { - border: 1px solid #333 /*{a-bar-border}*/; - background: #111 /*{a-bar-background-color}*/; - color: #fff /*{a-bar-color}*/; - font-weight: bold; - text-shadow: 0 /*{a-bar-shadow-x}*/ -1px /*{a-bar-shadow-y}*/ 0 /*{a-bar-shadow-radius}*/ #000 /*{a-bar-shadow-color}*/; - background-image: -webkit-gradient(linear, left top, left bottom, from( #3c3c3c /*{a-bar-background-start}*/), to( #111 /*{a-bar-background-end}*/)); /* Saf4+, Chrome */ - background-image: -webkit-linear-gradient( #3c3c3c /*{a-bar-background-start}*/, #111 /*{a-bar-background-end}*/); /* Chrome 10+, Saf5.1+ */ - background-image: -moz-linear-gradient( #3c3c3c /*{a-bar-background-start}*/, #111 /*{a-bar-background-end}*/); /* FF3.6 */ - background-image: -ms-linear-gradient( #3c3c3c /*{a-bar-background-start}*/, #111 /*{a-bar-background-end}*/); /* IE10 */ - background-image: -o-linear-gradient( #3c3c3c /*{a-bar-background-start}*/, #111 /*{a-bar-background-end}*/); /* Opera 11.10+ */ - background-image: linear-gradient( #3c3c3c /*{a-bar-background-start}*/, #111 /*{a-bar-background-end}*/); -} -.ui-bar-a, -.ui-bar-a input, -.ui-bar-a select, -.ui-bar-a textarea, -.ui-bar-a button { - font-family: Helvetica, Arial, sans-serif /*{global-font-family}*/; -} -.ui-bar-a .ui-link-inherit { - color: #fff /*{a-bar-color}*/; -} -.ui-bar-a a.ui-link { - color: #7cc4e7 /*{a-bar-link-color}*/; - font-weight: bold; -} -.ui-bar-a a.ui-link:visited { - color: #2489ce /*{a-bar-link-visited}*/; -} -.ui-bar-a a.ui-link:hover { - color: #2489ce /*{a-bar-link-hover}*/; -} -.ui-bar-a a.ui-link:active { - color: #2489ce /*{a-bar-link-active}*/; -} -.ui-body-a, -.ui-overlay-a { - border: 1px solid #444 /*{a-body-border}*/; - background: #222 /*{a-body-background-color}*/; - color: #fff /*{a-body-color}*/; - text-shadow: 0 /*{a-body-shadow-x}*/ 1px /*{a-body-shadow-y}*/ 0 /*{a-body-shadow-radius}*/ #111 /*{a-body-shadow-color}*/; - font-weight: normal; - background-image: -webkit-gradient(linear, left top, left bottom, from( #444 /*{a-body-background-start}*/), to( #222 /*{a-body-background-end}*/)); /* Saf4+, Chrome */ - background-image: -webkit-linear-gradient( #444 /*{a-body-background-start}*/, #222 /*{a-body-background-end}*/); /* Chrome 10+, Saf5.1+ */ - background-image: -moz-linear-gradient( #444 /*{a-body-background-start}*/, #222 /*{a-body-background-end}*/); /* FF3.6 */ - background-image: -ms-linear-gradient( #444 /*{a-body-background-start}*/, #222 /*{a-body-background-end}*/); /* IE10 */ - background-image: -o-linear-gradient( #444 /*{a-body-background-start}*/, #222 /*{a-body-background-end}*/); /* Opera 11.10+ */ - background-image: linear-gradient( #444 /*{a-body-background-start}*/, #222 /*{a-body-background-end}*/); -} -.ui-overlay-a { - background-image: none; - border-width: 0; -} -.ui-body-a, -.ui-body-a input, -.ui-body-a select, -.ui-body-a textarea, -.ui-body-a button { - font-family: Helvetica, Arial, sans-serif /*{global-font-family}*/; -} -.ui-body-a .ui-link-inherit { - color: #fff /*{a-body-color}*/; -} -.ui-body-a .ui-link { - color: #2489ce /*{a-body-link-color}*/; - font-weight: bold; -} -.ui-body-a .ui-link:visited { - color: #2489ce /*{a-body-link-visited}*/; -} -.ui-body-a .ui-link:hover { - color: #2489ce /*{a-body-link-hover}*/; -} -.ui-body-a .ui-link:active { - color: #2489ce /*{a-body-link-active}*/; -} -.ui-btn-up-a { - border: 1px solid #111 /*{a-bup-border}*/; - background: #333 /*{a-bup-background-color}*/; - font-weight: bold; - color: #fff /*{a-bup-color}*/; - text-shadow: 0 /*{a-bup-shadow-x}*/ 1px /*{a-bup-shadow-y}*/ 0 /*{a-bup-shadow-radius}*/ #111 /*{a-bup-shadow-color}*/; - background-image: -webkit-gradient(linear, left top, left bottom, from( #444 /*{a-bup-background-start}*/), to( #2d2d2d /*{a-bup-background-end}*/)); /* Saf4+, Chrome */ - background-image: -webkit-linear-gradient( #444 /*{a-bup-background-start}*/, #2d2d2d /*{a-bup-background-end}*/); /* Chrome 10+, Saf5.1+ */ - background-image: -moz-linear-gradient( #444 /*{a-bup-background-start}*/, #2d2d2d /*{a-bup-background-end}*/); /* FF3.6 */ - background-image: -ms-linear-gradient( #444 /*{a-bup-background-start}*/, #2d2d2d /*{a-bup-background-end}*/); /* IE10 */ - background-image: -o-linear-gradient( #444 /*{a-bup-background-start}*/, #2d2d2d /*{a-bup-background-end}*/); /* Opera 11.10+ */ - background-image: linear-gradient( #444 /*{a-bup-background-start}*/, #2d2d2d /*{a-bup-background-end}*/); -} -.ui-btn-up-a:visited, -.ui-btn-up-a a.ui-link-inherit { - color: #fff /*{a-bup-color}*/; -} -.ui-btn-hover-a { - border: 1px solid #000 /*{a-bhover-border}*/; - background: #444 /*{a-bhover-background-color}*/; - font-weight: bold; - color: #fff /*{a-bhover-color}*/; - text-shadow: 0 /*{a-bhover-shadow-x}*/ 1px /*{a-bhover-shadow-y}*/ 0 /*{a-bhover-shadow-radius}*/ #111 /*{a-bhover-shadow-color}*/; - background-image: -webkit-gradient(linear, left top, left bottom, from( #555 /*{a-bhover-background-start}*/), to( #383838 /*{a-bhover-background-end}*/)); /* Saf4+, Chrome */ - background-image: -webkit-linear-gradient( #555 /*{a-bhover-background-start}*/, #383838 /*{a-bhover-background-end}*/); /* Chrome 10+, Saf5.1+ */ - background-image: -moz-linear-gradient( #555 /*{a-bhover-background-start}*/, #383838 /*{a-bhover-background-end}*/); /* FF3.6 */ - background-image: -ms-linear-gradient( #555 /*{a-bhover-background-start}*/, #383838 /*{a-bhover-background-end}*/); /* IE10 */ - background-image: -o-linear-gradient( #555 /*{a-bhover-background-start}*/, #383838 /*{a-bhover-background-end}*/); /* Opera 11.10+ */ - background-image: linear-gradient( #555 /*{a-bhover-background-start}*/, #383838 /*{a-bhover-background-end}*/); -} -.ui-btn-hover-a:visited, -.ui-btn-hover-a:hover, -.ui-btn-hover-a a.ui-link-inherit { - color: #fff /*{a-bhover-color}*/; -} -.ui-btn-down-a { - border: 1px solid #000 /*{a-bdown-border}*/; - background: #222 /*{a-bdown-background-color}*/; - font-weight: bold; - color: #fff /*{a-bdown-color}*/; - text-shadow: 0 /*{a-bdown-shadow-x}*/ 1px /*{a-bdown-shadow-y}*/ 0 /*{a-bdown-shadow-radius}*/ #111 /*{a-bdown-shadow-color}*/; - background-image: -webkit-gradient(linear, left top, left bottom, from( #202020 /*{a-bdown-background-start}*/), to( #2c2c2c /*{a-bdown-background-end}*/)); /* Saf4+, Chrome */ - background-image: -webkit-linear-gradient( #202020 /*{a-bdown-background-start}*/, #2c2c2c /*{a-bdown-background-end}*/); /* Chrome 10+, Saf5.1+ */ - background-image: -moz-linear-gradient( #202020 /*{a-bdown-background-start}*/, #2c2c2c /*{a-bdown-background-end}*/); /* FF3.6 */ - background-image: -ms-linear-gradient( #202020 /*{a-bdown-background-start}*/, #2c2c2c /*{a-bdown-background-end}*/); /* IE10 */ - background-image: -o-linear-gradient( #202020 /*{a-bdown-background-start}*/, #2c2c2c /*{a-bdown-background-end}*/); /* Opera 11.10+ */ - background-image: linear-gradient( #202020 /*{a-bdown-background-start}*/, #2c2c2c /*{a-bdown-background-end}*/); -} -.ui-btn-down-a:visited, -.ui-btn-down-a:hover, -.ui-btn-down-a a.ui-link-inherit { - color: #fff /*{a-bdown-color}*/; -} -.ui-btn-up-a, -.ui-btn-hover-a, -.ui-btn-down-a { - font-family: Helvetica, Arial, sans-serif /*{global-font-family}*/; - text-decoration: none; -} -/* B ------------------------------------------------------------------------------------------------------------*/ -.ui-bar-b { - border: 1px solid #456f9a /*{b-bar-border}*/; - background: #5e87b0 /*{b-bar-background-color}*/; - color: #fff /*{b-bar-color}*/; - font-weight: bold; - text-shadow: 0 /*{b-bar-shadow-x}*/ 1px /*{b-bar-shadow-y}*/ 0 /*{b-bar-shadow-radius}*/ #3e6790 /*{b-bar-shadow-color}*/; - background-image: -webkit-gradient(linear, left top, left bottom, from( #6facd5 /*{b-bar-background-start}*/), to( #497bae /*{b-bar-background-end}*/)); /* Saf4+, Chrome */ - background-image: -webkit-linear-gradient( #6facd5 /*{b-bar-background-start}*/, #497bae /*{b-bar-background-end}*/); /* Chrome 10+, Saf5.1+ */ - background-image: -moz-linear-gradient( #6facd5 /*{b-bar-background-start}*/, #497bae /*{b-bar-background-end}*/); /* FF3.6 */ - background-image: -ms-linear-gradient( #6facd5 /*{b-bar-background-start}*/, #497bae /*{b-bar-background-end}*/); /* IE10 */ - background-image: -o-linear-gradient( #6facd5 /*{b-bar-background-start}*/, #497bae /*{b-bar-background-end}*/); /* Opera 11.10+ */ - background-image: linear-gradient( #6facd5 /*{b-bar-background-start}*/, #497bae /*{b-bar-background-end}*/); -} -.ui-bar-b, -.ui-bar-b input, -.ui-bar-b select, -.ui-bar-b textarea, -.ui-bar-b button { - font-family: Helvetica, Arial, sans-serif /*{global-font-family}*/; -} -.ui-bar-b .ui-link-inherit { - color: #fff /*{b-bar-color}*/; -} -.ui-bar-b a.ui-link { - color: #ddf0f8 /*{b-bar-link-color}*/; - font-weight: bold; -} -.ui-bar-b a.ui-link:visited { - color: #ddf0f8 /*{b-bar-link-visited}*/; -} -.ui-bar-b a.ui-link:hover { - color: #ddf0f8 /*{b-bar-link-hover}*/; -} -.ui-bar-b a.ui-link:active { - color: #ddf0f8 /*{b-bar-link-active}*/; -} -.ui-body-b, -.ui-overlay-b { - border: 1px solid #999 /*{b-body-border}*/; - background: #f3f3f3 /*{b-body-background-color}*/; - color: #222 /*{b-body-color}*/; - text-shadow: 0 /*{b-body-shadow-x}*/ 1px /*{b-body-shadow-y}*/ 0 /*{b-body-shadow-radius}*/ #fff /*{b-body-shadow-color}*/; - font-weight: normal; - background-image: -webkit-gradient(linear, left top, left bottom, from( #ddd /*{b-body-background-start}*/), to( #ccc /*{b-body-background-end}*/)); /* Saf4+, Chrome */ - background-image: -webkit-linear-gradient( #ddd /*{b-body-background-start}*/, #ccc /*{b-body-background-end}*/); /* Chrome 10+, Saf5.1+ */ - background-image: -moz-linear-gradient( #ddd /*{b-body-background-start}*/, #ccc /*{b-body-background-end}*/); /* FF3.6 */ - background-image: -ms-linear-gradient( #ddd /*{b-body-background-start}*/, #ccc /*{b-body-background-end}*/); /* IE10 */ - background-image: -o-linear-gradient( #ddd /*{b-body-background-start}*/, #ccc /*{b-body-background-end}*/); /* Opera 11.10+ */ - background-image: linear-gradient( #ddd /*{b-body-background-start}*/, #ccc /*{b-body-background-end}*/); -} -.ui-overlay-b { - background-image: none; - border-width: 0; -} -.ui-body-b, -.ui-body-b input, -.ui-body-b select, -.ui-body-b textarea, -.ui-body-b button { - font-family: Helvetica, Arial, sans-serif /*{global-font-family}*/; -} -.ui-body-b .ui-link-inherit { - color: #333 /*{b-body-color}*/; -} -.ui-body-b .ui-link { - color: #2489ce /*{b-body-link-color}*/; - font-weight: bold; -} -.ui-body-b .ui-link:visited { - color: #2489ce /*{b-body-link-visited}*/; -} -.ui-body-b .ui-link:hover { - color: #2489ce /*{b-body-link-hover}*/; -} -.ui-body-b .ui-link:active { - color: #2489ce /*{b-body-link-active}*/; -} -.ui-btn-up-b { - border: 1px solid #044062 /*{b-bup-border}*/; - background: #396b9e /*{b-bup-background-color}*/; - font-weight: bold; - color: #fff /*{b-bup-color}*/; - text-shadow: 0 /*{b-bup-shadow-x}*/ 1px /*{b-bup-shadow-y}*/ 0 /*{b-bup-shadow-radius}*/ #194b7e /*{b-bup-shadow-color}*/; - background-image: -webkit-gradient(linear, left top, left bottom, from( #5f9cc5 /*{b-bup-background-start}*/), to( #396b9e /*{b-bup-background-end}*/)); /* Saf4+, Chrome */ - background-image: -webkit-linear-gradient( #5f9cc5 /*{b-bup-background-start}*/, #396b9e /*{b-bup-background-end}*/); /* Chrome 10+, Saf5.1+ */ - background-image: -moz-linear-gradient( #5f9cc5 /*{b-bup-background-start}*/, #396b9e /*{b-bup-background-end}*/); /* FF3.6 */ - background-image: -ms-linear-gradient( #5f9cc5 /*{b-bup-background-start}*/, #396b9e /*{b-bup-background-end}*/); /* IE10 */ - background-image: -o-linear-gradient( #5f9cc5 /*{b-bup-background-start}*/, #396b9e /*{b-bup-background-end}*/); /* Opera 11.10+ */ - background-image: linear-gradient( #5f9cc5 /*{b-bup-background-start}*/, #396b9e /*{b-bup-background-end}*/); -} -.ui-btn-up-b:visited, -.ui-btn-up-b a.ui-link-inherit { - color: #fff /*{b-bup-color}*/; -} -.ui-btn-hover-b { - border: 1px solid #00415e /*{b-bhover-border}*/; - background: #4b88b6 /*{b-bhover-background-color}*/; - font-weight: bold; - color: #fff /*{b-bhover-color}*/; - text-shadow: 0 /*{b-bhover-shadow-x}*/ 1px /*{b-bhover-shadow-y}*/ 0 /*{b-bhover-shadow-radius}*/ #194b7e /*{b-bhover-shadow-color}*/; - background-image: -webkit-gradient(linear, left top, left bottom, from( #6facd5 /*{b-bhover-background-start}*/), to( #4272a4 /*{b-bhover-background-end}*/)); /* Saf4+, Chrome */ - background-image: -webkit-linear-gradient( #6facd5 /*{b-bhover-background-start}*/, #4272a4 /*{b-bhover-background-end}*/); /* Chrome 10+, Saf5.1+ */ - background-image: -moz-linear-gradient( #6facd5 /*{b-bhover-background-start}*/, #4272a4 /*{b-bhover-background-end}*/); /* FF3.6 */ - background-image: -ms-linear-gradient( #6facd5 /*{b-bhover-background-start}*/, #4272a4 /*{b-bhover-background-end}*/); /* IE10 */ - background-image: -o-linear-gradient( #6facd5 /*{b-bhover-background-start}*/, #4272a4 /*{b-bhover-background-end}*/); /* Opera 11.10+ */ - background-image: linear-gradient( #6facd5 /*{b-bhover-background-start}*/, #4272a4 /*{b-bhover-background-end}*/); -} -.ui-btn-hover-b:visited, -.ui-btn-hover-b:hover, -.ui-btn-hover-b a.ui-link-inherit { - color: #fff /*{b-bhover-color}*/; -} -.ui-btn-down-b { - border: 1px solid #225377 /*{b-bdown-border}*/; - background: #4e89c5 /*{b-bdown-background-color}*/; - font-weight: bold; - color: #fff /*{b-bdown-color}*/; - text-shadow: 0 /*{b-bdown-shadow-x}*/ 1px /*{b-bdown-shadow-y}*/ 0 /*{b-bdown-shadow-radius}*/ #194b7e /*{b-bdown-shadow-color}*/; - background-image: -webkit-gradient(linear, left top, left bottom, from( #295b8e /*{b-bdown-background-start}*/), to( #3e79b5 /*{b-bdown-background-end}*/)); /* Saf4+, Chrome */ - background-image: -webkit-linear-gradient( #295b8e /*{b-bdown-background-start}*/, #3e79b5 /*{b-bdown-background-end}*/); /* Chrome 10+, Saf5.1+ */ - background-image: -moz-linear-gradient( #295b8e /*{b-bdown-background-start}*/, #3e79b5 /*{b-bdown-background-end}*/); /* FF3.6 */ - background-image: -ms-linear-gradient( #295b8e /*{b-bdown-background-start}*/, #3e79b5 /*{b-bdown-background-end}*/); /* IE10 */ - background-image: -o-linear-gradient( #295b8e /*{b-bdown-background-start}*/, #3e79b5 /*{b-bdown-background-end}*/); /* Opera 11.10+ */ - background-image: linear-gradient( #295b8e /*{b-bdown-background-start}*/, #3e79b5 /*{b-bdown-background-end}*/); -} -.ui-btn-down-b:visited, -.ui-btn-down-b:hover, -.ui-btn-down-b a.ui-link-inherit { - color: #fff /*{b-bdown-color}*/; -} -.ui-btn-up-b, -.ui-btn-hover-b, -.ui-btn-down-b { - font-family: Helvetica, Arial, sans-serif /*{global-font-family}*/; - text-decoration: none; -} -/* C ------------------------------------------------------------------------------------------------------------*/ -.ui-bar-c { - border: 1px solid #b3b3b3 /*{c-bar-border}*/; - background: #eee /*{c-bar-background-color}*/; - color: #3e3e3e /*{c-bar-color}*/; - font-weight: bold; - text-shadow: 0 /*{c-bar-shadow-x}*/ 1px /*{c-bar-shadow-y}*/ 0 /*{c-bar-shadow-radius}*/ #fff /*{c-bar-shadow-color}*/; - background-image: -webkit-gradient(linear, left top, left bottom, from( #f0f0f0 /*{c-bar-background-start}*/), to( #ddd /*{c-bar-background-end}*/)); /* Saf4+, Chrome */ - background-image: -webkit-linear-gradient( #f0f0f0 /*{c-bar-background-start}*/, #ddd /*{c-bar-background-end}*/); /* Chrome 10+, Saf5.1+ */ - background-image: -moz-linear-gradient( #f0f0f0 /*{c-bar-background-start}*/, #ddd /*{c-bar-background-end}*/); /* FF3.6 */ - background-image: -ms-linear-gradient( #f0f0f0 /*{c-bar-background-start}*/, #ddd /*{c-bar-background-end}*/); /* IE10 */ - background-image: -o-linear-gradient( #f0f0f0 /*{c-bar-background-start}*/, #ddd /*{c-bar-background-end}*/); /* Opera 11.10+ */ - background-image: linear-gradient( #f0f0f0 /*{c-bar-background-start}*/, #ddd /*{c-bar-background-end}*/); -} -.ui-bar-c .ui-link-inherit { - color: #3e3e3e /*{c-bar-color}*/; -} -.ui-bar-c a.ui-link { - color: #7cc4e7 /*{c-bar-link-color}*/; - font-weight: bold; -} -.ui-bar-c a.ui-link:visited { - color: #2489ce /*{c-bar-link-visited}*/; -} -.ui-bar-c a.ui-link:hover { - color: #2489ce /*{c-bar-link-hover}*/; -} -.ui-bar-c a.ui-link:active { - color: #2489ce /*{c-bar-link-active}*/; -} -.ui-bar-c, -.ui-bar-c input, -.ui-bar-c select, -.ui-bar-c textarea, -.ui-bar-c button { - font-family: Helvetica, Arial, sans-serif /*{global-font-family}*/; -} -.ui-body-c, -.ui-overlay-c { - border: 1px solid #aaa /*{c-body-border}*/; - color: #333 /*{c-body-color}*/; - text-shadow: 0 /*{c-body-shadow-x}*/ 1px /*{c-body-shadow-y}*/ 0 /*{c-body-shadow-radius}*/ #fff /*{c-body-shadow-color}*/; - background: #f9f9f9 /*{c-body-background-color}*/; - background-image: -webkit-gradient(linear, left top, left bottom, from( #f9f9f9 /*{c-body-background-start}*/), to( #eee /*{c-body-background-end}*/)); /* Saf4+, Chrome */ - background-image: -webkit-linear-gradient( #f9f9f9 /*{c-body-background-start}*/, #eee /*{c-body-background-end}*/); /* Chrome 10+, Saf5.1+ */ - background-image: -moz-linear-gradient( #f9f9f9 /*{c-body-background-start}*/, #eee /*{c-body-background-end}*/); /* FF3.6 */ - background-image: -ms-linear-gradient( #f9f9f9 /*{c-body-background-start}*/, #eee /*{c-body-background-end}*/); /* IE10 */ - background-image: -o-linear-gradient( #f9f9f9 /*{c-body-background-start}*/, #eee /*{c-body-background-end}*/); /* Opera 11.10+ */ - background-image: linear-gradient( #f9f9f9 /*{c-body-background-start}*/, #eee /*{c-body-background-end}*/); -} -.ui-overlay-c { - background-image: none; - border-width: 0; -} -.ui-body-c, -.ui-body-c input, -.ui-body-c select, -.ui-body-c textarea, -.ui-body-c button { - font-family: Helvetica, Arial, sans-serif /*{global-font-family}*/; -} -.ui-body-c .ui-link-inherit { - color: #333 /*{c-body-color}*/; -} -.ui-body-c .ui-link { - color: #2489ce /*{c-body-link-color}*/; - font-weight: bold; -} -.ui-body-c .ui-link:visited { - color: #2489ce /*{c-body-link-visited}*/; -} -.ui-body-c .ui-link:hover { - color: #2489ce /*{c-body-link-hover}*/; -} -.ui-body-c .ui-link:active { - color: #2489ce /*{c-body-link-active}*/; -} -.ui-btn-up-c { - border: 1px solid #ccc /*{c-bup-border}*/; - background: #eee /*{c-bup-background-color}*/; - font-weight: bold; - color: #222 /*{c-bup-color}*/; - text-shadow: 0 /*{c-bup-shadow-x}*/ 1px /*{c-bup-shadow-y}*/ 0 /*{c-bup-shadow-radius}*/ #fff /*{c-bup-shadow-color}*/; - background-image: -webkit-gradient(linear, left top, left bottom, from( #fff /*{c-bup-background-start}*/), to( #f1f1f1 /*{c-bup-background-end}*/)); /* Saf4+, Chrome */ - background-image: -webkit-linear-gradient( #fff /*{c-bup-background-start}*/, #f1f1f1 /*{c-bup-background-end}*/); /* Chrome 10+, Saf5.1+ */ - background-image: -moz-linear-gradient( #fff /*{c-bup-background-start}*/, #f1f1f1 /*{c-bup-background-end}*/); /* FF3.6 */ - background-image: -ms-linear-gradient( #fff /*{c-bup-background-start}*/, #f1f1f1 /*{c-bup-background-end}*/); /* IE10 */ - background-image: -o-linear-gradient( #fff /*{c-bup-background-start}*/, #f1f1f1 /*{c-bup-background-end}*/); /* Opera 11.10+ */ - background-image: linear-gradient( #fff /*{c-bup-background-start}*/, #f1f1f1 /*{c-bup-background-end}*/); -} -.ui-btn-up-c:visited, -.ui-btn-up-c a.ui-link-inherit { - color: #2f3e46 /*{c-bup-color}*/; -} -.ui-btn-hover-c { - border: 1px solid #bbb /*{c-bhover-border}*/; - background: #dfdfdf /*{c-bhover-background-color}*/; - font-weight: bold; - color: #222 /*{c-bhover-color}*/; - text-shadow: 0 /*{c-bhover-shadow-x}*/ 1px /*{c-bhover-shadow-y}*/ 0 /*{c-bhover-shadow-radius}*/ #fff /*{c-bhover-shadow-color}*/; - background-image: -webkit-gradient(linear, left top, left bottom, from( #f6f6f6 /*{c-bhover-background-start}*/), to( #e0e0e0 /*{c-bhover-background-end}*/)); /* Saf4+, Chrome */ - background-image: -webkit-linear-gradient( #f6f6f6 /*{c-bhover-background-start}*/, #e0e0e0 /*{c-bhover-background-end}*/); /* Chrome 10+, Saf5.1+ */ - background-image: -moz-linear-gradient( #f6f6f6 /*{c-bhover-background-start}*/, #e0e0e0 /*{c-bhover-background-end}*/); /* FF3.6 */ - background-image: -ms-linear-gradient( #f6f6f6 /*{c-bhover-background-start}*/, #e0e0e0 /*{c-bhover-background-end}*/); /* IE10 */ - background-image: -o-linear-gradient( #f6f6f6 /*{c-bhover-background-start}*/, #e0e0e0 /*{c-bhover-background-end}*/); /* Opera 11.10+ */ - background-image: linear-gradient( #f6f6f6 /*{c-bhover-background-start}*/, #e0e0e0 /*{c-bhover-background-end}*/); -} -.ui-btn-hover-c:visited, -.ui-btn-hover-c:hover, -.ui-btn-hover-c a.ui-link-inherit { - color: #2f3e46 /*{c-bhover-color}*/; -} -.ui-btn-down-c { - border: 1px solid #bbb /*{c-bdown-border}*/; - background: #d6d6d6 /*{c-bdown-background-color}*/; - font-weight: bold; - color: #222 /*{c-bdown-color}*/; - text-shadow: 0 /*{c-bdown-shadow-x}*/ 1px /*{c-bdown-shadow-y}*/ 0 /*{c-bdown-shadow-radius}*/ #fff /*{c-bdown-shadow-color}*/; - background-image: -webkit-gradient(linear, left top, left bottom, from( #d0d0d0 /*{c-bdown-background-start}*/), to( #dfdfdf /*{c-bdown-background-end}*/)); /* Saf4+, Chrome */ - background-image: -webkit-linear-gradient( #d0d0d0 /*{c-bdown-background-start}*/, #dfdfdf /*{c-bdown-background-end}*/); /* Chrome 10+, Saf5.1+ */ - background-image: -moz-linear-gradient( #d0d0d0 /*{c-bdown-background-start}*/, #dfdfdf /*{c-bdown-background-end}*/); /* FF3.6 */ - background-image: -ms-linear-gradient( #d0d0d0 /*{c-bdown-background-start}*/, #dfdfdf /*{c-bdown-background-end}*/); /* IE10 */ - background-image: -o-linear-gradient( #d0d0d0 /*{c-bdown-background-start}*/, #dfdfdf /*{c-bdown-background-end}*/); /* Opera 11.10+ */ - background-image: linear-gradient( #d0d0d0 /*{c-bdown-background-start}*/, #dfdfdf /*{c-bdown-background-end}*/); -} -.ui-btn-down-c:visited, -.ui-btn-down-c:hover, -.ui-btn-down-c a.ui-link-inherit { - color: #2f3e46 /*{c-bdown-color}*/; -} -.ui-btn-up-c, -.ui-btn-hover-c, -.ui-btn-down-c { - font-family: Helvetica, Arial, sans-serif /*{global-font-family}*/; - text-decoration: none; -} -/* D ------------------------------------------------------------------------------------------------------------*/ -.ui-bar-d { - border: 1px solid #bbb /*{d-bar-border}*/; - background: #bbb /*{d-bar-background-color}*/; - color: #333 /*{d-bar-color}*/; - font-weight: bold; - text-shadow: 0 /*{d-bar-shadow-x}*/ 1px /*{d-bar-shadow-y}*/ 0 /*{d-bar-shadow-radius}*/ #eee /*{d-bar-shadow-color}*/; - background-image: -webkit-gradient(linear, left top, left bottom, from( #ddd /*{d-bar-background-start}*/), to( #bbb /*{d-bar-background-end}*/)); /* Saf4+, Chrome */ - background-image: -webkit-linear-gradient( #ddd /*{d-bar-background-start}*/, #bbb /*{d-bar-background-end}*/); /* Chrome 10+, Saf5.1+ */ - background-image: -moz-linear-gradient( #ddd /*{d-bar-background-start}*/, #bbb /*{d-bar-background-end}*/); /* FF3.6 */ - background-image: -ms-linear-gradient( #ddd /*{d-bar-background-start}*/, #bbb /*{d-bar-background-end}*/); /* IE10 */ - background-image: -o-linear-gradient( #ddd /*{d-bar-background-start}*/, #bbb /*{d-bar-background-end}*/); /* Opera 11.10+ */ - background-image: linear-gradient( #ddd /*{d-bar-background-start}*/, #bbb /*{d-bar-background-end}*/); -} -.ui-bar-d, -.ui-bar-d input, -.ui-bar-d select, -.ui-bar-d textarea, -.ui-bar-d button { - font-family: Helvetica, Arial, sans-serif /*{global-font-family}*/; -} -.ui-bar-d .ui-link-inherit { - color: #333 /*{d-bar-color}*/; -} -.ui-bar-d a.ui-link { - color: #2489ce /*{d-bar-link-color}*/; - font-weight: bold; -} -.ui-bar-d a.ui-link:visited { - color: #2489ce /*{d-bar-link-visited}*/; -} -.ui-bar-d a.ui-link:hover { - color: #2489ce /*{d-bar-link-hover}*/; -} -.ui-bar-d a.ui-link:active { - color: #2489ce /*{d-bar-link-active}*/; -} -.ui-body-d, -.ui-overlay-d { - border: 1px solid #bbb /*{d-body-border}*/; - color: #333 /*{d-body-color}*/; - text-shadow: 0 /*{d-body-shadow-x}*/ 1px /*{d-body-shadow-y}*/ 0 /*{d-body-shadow-radius}*/ #fff /*{d-body-shadow-color}*/; - background: #fff /*{d-body-background-color}*/; - background-image: -webkit-gradient(linear, left top, left bottom, from( #fff /*{d-body-background-start}*/), to( #fff /*{d-body-background-end}*/)); /* Saf4+, Chrome */ - background-image: -webkit-linear-gradient( #fff /*{d-body-background-start}*/, #fff /*{d-body-background-end}*/); /* Chrome 10+, Saf5.1+ */ - background-image: -moz-linear-gradient( #fff /*{d-body-background-start}*/, #fff /*{d-body-background-end}*/); /* FF3.6 */ - background-image: -ms-linear-gradient( #fff /*{d-body-background-start}*/, #fff /*{d-body-background-end}*/); /* IE10 */ - background-image: -o-linear-gradient( #fff /*{d-body-background-start}*/, #fff /*{d-body-background-end}*/); /* Opera 11.10+ */ - background-image: linear-gradient( #fff /*{d-body-background-start}*/, #fff /*{d-body-background-end}*/); -} -.ui-overlay-d { - background-image: none; - border-width: 0; -} -.ui-body-d, -.ui-body-d input, -.ui-body-d select, -.ui-body-d textarea, -.ui-body-d button { - font-family: Helvetica, Arial, sans-serif /*{global-font-family}*/; -} -.ui-body-d .ui-link-inherit { - color: #333 /*{d-body-color}*/; -} -.ui-body-d .ui-link { - color: #2489ce /*{d-body-link-color}*/; - font-weight: bold; -} -.ui-body-d .ui-link:visited { - color: #2489ce /*{d-body-link-visited}*/; -} -.ui-body-d .ui-link:hover { - color: #2489ce /*{d-body-link-hover}*/; -} -.ui-body-d .ui-link:active { - color: #2489ce /*{d-body-link-active}*/; -} -.ui-btn-up-d { - border: 1px solid #bbb /*{d-bup-border}*/; - background: #fff /*{d-bup-background-color}*/; - font-weight: bold; - color: #333 /*{d-bup-color}*/; - text-shadow: 0 /*{d-bup-shadow-x}*/ 1px /*{d-bup-shadow-y}*/ 0 /*{d-bup-shadow-radius}*/ #fff /*{d-bup-shadow-color}*/; - background-image: -webkit-gradient(linear, left top, left bottom, from( #fafafa /*{d-bup-background-start}*/), to( #f6f6f6 /*{d-bup-background-end}*/)); /* Saf4+, Chrome */ - background-image: -webkit-linear-gradient( #fafafa /*{d-bup-background-start}*/, #f6f6f6 /*{d-bup-background-end}*/); /* Chrome 10+, Saf5.1+ */ - background-image: -moz-linear-gradient( #fafafa /*{d-bup-background-start}*/, #f6f6f6 /*{d-bup-background-end}*/); /* FF3.6 */ - background-image: -ms-linear-gradient( #fafafa /*{d-bup-background-start}*/, #f6f6f6 /*{d-bup-background-end}*/); /* IE10 */ - background-image: -o-linear-gradient( #fafafa /*{d-bup-background-start}*/, #f6f6f6 /*{d-bup-background-end}*/); /* Opera 11.10+ */ - background-image: linear-gradient( #fafafa /*{d-bup-background-start}*/, #f6f6f6 /*{d-bup-background-end}*/); -} -.ui-btn-up-d:visited, -.ui-btn-up-d a.ui-link-inherit { - color: #333 /*{d-bup-color}*/; -} -.ui-btn-hover-d { - border: 1px solid #aaa /*{d-bhover-border}*/; - background: #eee /*{d-bhover-background-color}*/; - font-weight: bold; - color: #333 /*{d-bhover-color}*/; - cursor: pointer; - text-shadow: 0 /*{d-bhover-shadow-x}*/ 1px /*{d-bhover-shadow-y}*/ 0 /*{d-bhover-shadow-radius}*/ #fff /*{d-bhover-shadow-color}*/; - background-image: -webkit-gradient(linear, left top, left bottom, from( #eee /*{d-bhover-background-start}*/), to( #fff /*{d-bhover-background-end}*/)); /* Saf4+, Chrome */ - background-image: -webkit-linear-gradient( #eee /*{d-bhover-background-start}*/, #fff /*{d-bhover-background-end}*/); /* Chrome 10+, Saf5.1+ */ - background-image: -moz-linear-gradient( #eee /*{d-bhover-background-start}*/, #fff /*{d-bhover-background-end}*/); /* FF3.6 */ - background-image: -ms-linear-gradient( #eee /*{d-bhover-background-start}*/, #fff /*{d-bhover-background-end}*/); /* IE10 */ - background-image: -o-linear-gradient( #eee /*{d-bhover-background-start}*/, #fff /*{d-bhover-background-end}*/); /* Opera 11.10+ */ - background-image: linear-gradient( #eee /*{d-bhover-background-start}*/, #fff /*{d-bhover-background-end}*/); -} -.ui-btn-hover-d:visited, -.ui-btn-hover-d:hover, -.ui-btn-hover-d a.ui-link-inherit { - color: #333 /*{d-bhover-color}*/; -} -.ui-btn-down-d { - border: 1px solid #aaa /*{d-bdown-border}*/; - background: #eee /*{d-bdown-background-color}*/; - font-weight: bold; - color: #333 /*{d-bdown-color}*/; - text-shadow: 0 /*{d-bdown-shadow-x}*/ 1px /*{d-bdown-shadow-y}*/ 0 /*{d-bdown-shadow-radius}*/ #fff /*{d-bdown-shadow-color}*/; - background-image: -webkit-gradient(linear, left top, left bottom, from( #e5e5e5 /*{d-bdown-background-start}*/), to( #f2f2f2 /*{d-bdown-background-end}*/)); /* Saf4+, Chrome */ - background-image: -webkit-linear-gradient( #e5e5e5 /*{d-bdown-background-start}*/, #f2f2f2 /*{d-bdown-background-end}*/); /* Chrome 10+, Saf5.1+ */ - background-image: -moz-linear-gradient( #e5e5e5 /*{d-bdown-background-start}*/, #f2f2f2 /*{d-bdown-background-end}*/); /* FF3.6 */ - background-image: -ms-linear-gradient( #e5e5e5 /*{d-bdown-background-start}*/, #f2f2f2 /*{d-bdown-background-end}*/); /* IE10 */ - background-image: -o-linear-gradient( #e5e5e5 /*{d-bdown-background-start}*/, #f2f2f2 /*{d-bdown-background-end}*/); /* Opera 11.10+ */ - background-image: linear-gradient( #e5e5e5 /*{d-bdown-background-start}*/, #f2f2f2 /*{d-bdown-background-end}*/); -} -.ui-btn-down-d:visited, -.ui-btn-down-d:hover, -.ui-btn-down-d a.ui-link-inherit { - color: #333 /*{d-bdown-color}*/; -} -.ui-btn-up-d, -.ui-btn-hover-d, -.ui-btn-down-d { - font-family: Helvetica, Arial, sans-serif /*{global-font-family}*/; - text-decoration: none; -} -/* E ------------------------------------------------------------------------------------------------------------*/ -.ui-bar-e { - border: 1px solid #f7c942 /*{e-bar-border}*/; - background: #fadb4e /*{e-bar-background-color}*/; - color: #333 /*{e-bar-color}*/; - font-weight: bold; - text-shadow: 0 /*{e-bar-shadow-x}*/ 1px /*{e-bar-shadow-y}*/ 0 /*{e-bar-shadow-radius}*/ #fff /*{e-bar-shadow-color}*/; - background-image: -webkit-gradient(linear, left top, left bottom, from( #fceda7 /*{e-bar-background-start}*/), to( #fbef7e /*{e-bar-background-end}*/)); /* Saf4+, Chrome */ - background-image: -webkit-linear-gradient( #fceda7 /*{e-bar-background-start}*/, #fbef7e /*{e-bar-background-end}*/); /* Chrome 10+, Saf5.1+ */ - background-image: -moz-linear-gradient( #fceda7 /*{e-bar-background-start}*/, #fbef7e /*{e-bar-background-end}*/); /* FF3.6 */ - background-image: -ms-linear-gradient( #fceda7 /*{e-bar-background-start}*/, #fbef7e /*{e-bar-background-end}*/); /* IE10 */ - background-image: -o-linear-gradient( #fceda7 /*{e-bar-background-start}*/, #fbef7e /*{e-bar-background-end}*/); /* Opera 11.10+ */ - background-image: linear-gradient( #fceda7 /*{e-bar-background-start}*/, #fbef7e /*{e-bar-background-end}*/); -} -.ui-bar-e, -.ui-bar-e input, -.ui-bar-e select, -.ui-bar-e textarea, -.ui-bar-e button { - font-family: Helvetica, Arial, sans-serif /*{global-font-family}*/; -} -.ui-bar-e .ui-link-inherit { - color: #333 /*{e-bar-color}*/; -} -.ui-bar-e a.ui-link { - color: #2489ce /*{e-bar-link-color}*/; - font-weight: bold; -} -.ui-bar-e a.ui-link:visited { - color: #2489ce /*{e-bar-link-visited}*/; -} -.ui-bar-e a.ui-link:hover { - color: #2489ce /*{e-bar-link-hover}*/; -} -.ui-bar-e a.ui-link:active { - color: #2489ce /*{e-bar-link-active}*/; -} -.ui-body-e, -.ui-overlay-e { - border: 1px solid #f7c942 /*{e-body-border}*/; - color: #222 /*{e-body-color}*/; - text-shadow: 0 /*{e-body-shadow-x}*/ 1px /*{e-body-shadow-y}*/ 0 /*{e-body-shadow-radius}*/ #fff /*{e-body-shadow-color}*/; - background: #fff9df /*{e-body-background-color}*/; - background-image: -webkit-gradient(linear, left top, left bottom, from( #fffadf /*{e-body-background-start}*/), to( #fff3a5 /*{e-body-background-end}*/)); /* Saf4+, Chrome */ - background-image: -webkit-linear-gradient( #fffadf /*{e-body-background-start}*/, #fff3a5 /*{e-body-background-end}*/); /* Chrome 10+, Saf5.1+ */ - background-image: -moz-linear-gradient( #fffadf /*{e-body-background-start}*/, #fff3a5 /*{e-body-background-end}*/); /* FF3.6 */ - background-image: -ms-linear-gradient( #fffadf /*{e-body-background-start}*/, #fff3a5 /*{e-body-background-end}*/); /* IE10 */ - background-image: -o-linear-gradient( #fffadf /*{e-body-background-start}*/, #fff3a5 /*{e-body-background-end}*/); /* Opera 11.10+ */ - background-image: linear-gradient( #fffadf /*{e-body-background-start}*/, #fff3a5 /*{e-body-background-end}*/); -} -.ui-overlay-e { - background-image: none; - border-width: 0; -} -.ui-body-e, -.ui-body-e input, -.ui-body-e select, -.ui-body-e textarea, -.ui-body-e button { - font-family: Helvetica, Arial, sans-serif /*{global-font-family}*/; -} -.ui-body-e .ui-link-inherit { - color: #222 /*{e-body-color}*/; -} -.ui-body-e .ui-link { - color: #2489ce /*{e-body-link-color}*/; - font-weight: bold; -} -.ui-body-e .ui-link:visited { - color: #2489ce /*{e-body-link-visited}*/; -} -.ui-body-e .ui-link:hover { - color: #2489ce /*{e-body-link-hover}*/; -} -.ui-body-e .ui-link:active { - color: #2489ce /*{e-body-link-active}*/; -} -.ui-btn-up-e { - border: 1px solid #f4c63f /*{e-bup-border}*/; - background: #fadb4e /*{e-bup-background-color}*/; - font-weight: bold; - color: #222 /*{e-bup-color}*/; - text-shadow: 0 /*{e-bup-shadow-x}*/ 1px /*{e-bup-shadow-y}*/ 0 /*{e-bup-shadow-radius}*/ #fff /*{e-bup-shadow-color}*/; - background-image: -webkit-gradient(linear, left top, left bottom, from( #ffefaa /*{e-bup-background-start}*/), to( #ffe155 /*{e-bup-background-end}*/)); /* Saf4+, Chrome */ - background-image: -webkit-linear-gradient( #ffefaa /*{e-bup-background-start}*/, #ffe155 /*{e-bup-background-end}*/); /* Chrome 10+, Saf5.1+ */ - background-image: -moz-linear-gradient( #ffefaa /*{e-bup-background-start}*/, #ffe155 /*{e-bup-background-end}*/); /* FF3.6 */ - background-image: -ms-linear-gradient( #ffefaa /*{e-bup-background-start}*/, #ffe155 /*{e-bup-background-end}*/); /* IE10 */ - background-image: -o-linear-gradient( #ffefaa /*{e-bup-background-start}*/, #ffe155 /*{e-bup-background-end}*/); /* Opera 11.10+ */ - background-image: linear-gradient( #ffefaa /*{e-bup-background-start}*/, #ffe155 /*{e-bup-background-end}*/); -} -.ui-btn-up-e:visited, -.ui-btn-up-e a.ui-link-inherit { - color: #222 /*{e-bup-color}*/; -} -.ui-btn-hover-e { - border: 1px solid #f2c43d /*{e-bhover-border}*/; - background: #fbe26f /*{e-bhover-background-color}*/; - font-weight: bold; - color: #111 /*{e-bhover-color}*/; - text-shadow: 0 /*{e-bhover-shadow-x}*/ 1px /*{e-bhover-shadow-y}*/ 0 /*{e-bhover-shadow-radius}*/ #fff /*{e-bhover-shadow-color}*/; - background-image: -webkit-gradient(linear, left top, left bottom, from( #fff5ba /*{e-bhover-background-start}*/), to( #fbdd52 /*{e-bhover-background-end}*/)); /* Saf4+, Chrome */ - background-image: -webkit-linear-gradient( #fff5ba /*{e-bhover-background-start}*/, #fbdd52 /*{e-bhover-background-end}*/); /* Chrome 10+, Saf5.1+ */ - background-image: -moz-linear-gradient( #fff5ba /*{e-bhover-background-start}*/, #fbdd52 /*{e-bhover-background-end}*/); /* FF3.6 */ - background-image: -ms-linear-gradient( #fff5ba /*{e-bhover-background-start}*/, #fbdd52 /*{e-bhover-background-end}*/); /* IE10 */ - background-image: -o-linear-gradient( #fff5ba /*{e-bhover-background-start}*/, #fbdd52 /*{e-bhover-background-end}*/); /* Opera 11.10+ */ - background-image: linear-gradient( #fff5ba /*{e-bhover-background-start}*/, #fbdd52 /*{e-bhover-background-end}*/); -} -.ui-btn-hover-e:visited, -.ui-btn-hover-e:hover, -.ui-btn-hover-e a.ui-link-inherit { - color: #333 /*{e-bhover-color}*/; -} -.ui-btn-down-e { - border: 1px solid #f2c43d /*{e-bdown-border}*/; - background: #fceda7 /*{e-bdown-background-color}*/; - font-weight: bold; - color: #111 /*{e-bdown-color}*/; - text-shadow: 0 /*{e-bdown-shadow-x}*/ 1px /*{e-bdown-shadow-y}*/ 0 /*{e-bdown-shadow-radius}*/ #fff /*{e-bdown-shadow-color}*/; - background-image: -webkit-gradient(linear, left top, left bottom, from( #f8d94c /*{e-bdown-background-start}*/), to( #fadb4e /*{e-bdown-background-end}*/)); /* Saf4+, Chrome */ - background-image: -webkit-linear-gradient( #f8d94c /*{e-bdown-background-start}*/, #fadb4e /*{e-bdown-background-end}*/); /* Chrome 10+, Saf5.1+ */ - background-image: -moz-linear-gradient( #f8d94c /*{e-bdown-background-start}*/, #fadb4e /*{e-bdown-background-end}*/); /* FF3.6 */ - background-image: -ms-linear-gradient( #f8d94c /*{e-bdown-background-start}*/, #fadb4e /*{e-bdown-background-end}*/); /* IE10 */ - background-image: -o-linear-gradient( #f8d94c /*{e-bdown-background-start}*/, #fadb4e /*{e-bdown-background-end}*/); /* Opera 11.10+ */ - background-image: linear-gradient( #f8d94c /*{e-bdown-background-start}*/, #fadb4e /*{e-bdown-background-end}*/); -} -.ui-btn-down-e:visited, -.ui-btn-down-e:hover, -.ui-btn-down-e a.ui-link-inherit { - color: #333 /*{e-bdown-color}*/; -} -.ui-btn-up-e, -.ui-btn-hover-e, -.ui-btn-down-e { - font-family: Helvetica, Arial, sans-serif /*{global-font-family}*/; - text-decoration: none; -} -/* Structure */ -/* links within "buttons" ------------------------------------------------------------------------------------------------------------*/ -a.ui-link-inherit { - text-decoration: none !important; -} -/* Active class used as the "on" state across all themes ------------------------------------------------------------------------------------------------------------*/ -.ui-btn-active { - border: 1px solid #2373a5 /*{global-active-border}*/; - background: #5393c5 /*{global-active-background-color}*/; - font-weight: bold; - color: #fff /*{global-active-color}*/; - cursor: pointer; - text-shadow: 0 /*{global-active-shadow-x}*/ 1px /*{global-active-shadow-y}*/ 0 /*{global-active-shadow-radius}*/ #3373a5 /*{global-active-shadow-color}*/; - text-decoration: none; - background-image: -webkit-gradient(linear, left top, left bottom, from( #5393c5 /*{global-active-background-start}*/), to( #6facd5 /*{global-active-background-end}*/)); /* Saf4+, Chrome */ - background-image: -webkit-linear-gradient( #5393c5 /*{global-active-background-start}*/, #6facd5 /*{global-active-background-end}*/); /* Chrome 10+, Saf5.1+ */ - background-image: -moz-linear-gradient( #5393c5 /*{global-active-background-start}*/, #6facd5 /*{global-active-background-end}*/); /* FF3.6 */ - background-image: -ms-linear-gradient( #5393c5 /*{global-active-background-start}*/, #6facd5 /*{global-active-background-end}*/); /* IE10 */ - background-image: -o-linear-gradient( #5393c5 /*{global-active-background-start}*/, #6facd5 /*{global-active-background-end}*/); /* Opera 11.10+ */ - background-image: linear-gradient( #5393c5 /*{global-active-background-start}*/, #6facd5 /*{global-active-background-end}*/); - font-family: Helvetica, Arial, sans-serif /*{global-font-family}*/; -} -.ui-btn-active:visited, -.ui-btn-active:hover, -.ui-btn-active a.ui-link-inherit { - color: #fff /*{global-active-color}*/; -} -/* button inner top highlight ------------------------------------------------------------------------------------------------------------*/ -.ui-btn-inner { - border-top: 1px solid #fff; - border-color: rgba(255,255,255,.3); -} -/* corner rounding classes ------------------------------------------------------------------------------------------------------------*/ -.ui-corner-all { - -webkit-border-radius: .6em /*{global-radii-blocks}*/; - border-radius: .6em /*{global-radii-blocks}*/; -} -/* Form field separator ------------------------------------------------------------------------------------------------------------*/ -.ui-br { - border-color: rgb(130,130,130); - border-color: rgba(130,130,130,.3); - border-style: solid; -} -/* Interaction cues ------------------------------------------------------------------------------------------------------------*/ -.ui-disabled { - filter: Alpha(Opacity=30); - opacity: .3; - zoom: 1; -} -.ui-disabled, -.ui-disabled a { - cursor: default !important; - pointer-events: none; -} -/* Icons ------------------------------------------------------------------------------------------------------------*/ -.ui-icon, -.ui-icon-searchfield:after { - background-color: #666 /*{global-icon-color}*/; - background-color: rgba(0,0,0,.4) /*{global-icon-disc}*/; - background-image: url(images/icons-18-white.png) /*{global-icon-set}*/; - background-repeat: no-repeat; - -webkit-border-radius: 9px; - border-radius: 9px; -} -/* Alt icon color ------------------------------------------------------------------------------------------------------------*/ -.ui-icon-alt .ui-icon, -.ui-icon-alt .ui-icon-searchfield:after { - background-color: #fff; - background-color: rgba(255,255,255,.3); - background-image: url(images/icons-18-black.png); - background-repeat: no-repeat; -} -/* No disc ------------------------------------------------------------------------------------------------------------*/ -.ui-icon-nodisc .ui-icon, -.ui-icon-nodisc .ui-icon-searchfield:after, -.ui-icon-nodisc .ui-icon-alt .ui-icon, -.ui-icon-nodisc .ui-icon-alt .ui-icon-searchfield:after { - background-color: transparent; -} -/* Icon sprite ------------------------------------------------------------------------------------------------------------*/ -/* plus minus */ -.ui-icon-plus { - background-position: -1px -1px; -} -.ui-icon-minus { - background-position: -37px -1px; -} -/* delete/close */ -.ui-icon-delete { - background-position: -73px -1px; -} -/* arrows */ -.ui-icon-arrow-r { - background-position: -108px -1px; -} -.ui-icon-arrow-l { - background-position: -144px -1px; -} -.ui-icon-arrow-u { - background-position: -180px -1px; -} -.ui-icon-arrow-d { - background-position: -216px -1px; -} -/* misc */ -.ui-icon-check { - background-position: -252px -1px; -} -.ui-icon-gear { - background-position: -288px -1px; -} -.ui-icon-refresh { - background-position: -323px -1px; -} -.ui-icon-forward { - background-position: -360px -1px; -} -.ui-icon-back { - background-position: -396px -1px; -} -.ui-icon-grid { - background-position: -432px -1px; -} -.ui-icon-star { - background-position: -467px -1px; -} -.ui-icon-alert { - background-position: -503px -1px; -} -.ui-icon-info { - background-position: -539px -1px; -} -.ui-icon-home { - background-position: -575px -1px; -} -/* search */ -.ui-icon-search, -.ui-icon-searchfield:after { - background-position: -611px -1px; -} -/* checkbox radio */ -.ui-icon-checkbox-on { - background-position: -647px -1px; -} -.ui-icon-checkbox-off { - background-position: -683px -1px; -} -.ui-icon-radio-on { - background-position: -718px -1px; -} -.ui-icon-radio-off { - background-position: -754px -1px; -} -/* menu edit */ -.ui-icon-bars { - background-position: -788px -1px; -} -.ui-icon-edit { - background-position: -824px -1px; -} -/* HD/"retina" sprite ------------------------------------------------------------------------------------------------------------*/ -@media only screen and (-webkit-min-device-pixel-ratio: 1.3), - only screen and (min--moz-device-pixel-ratio: 1.3), - only screen and (min-resolution: 200dpi) { - - .ui-icon-plus, .ui-icon-minus, .ui-icon-delete, .ui-icon-arrow-r, - .ui-icon-arrow-l, .ui-icon-arrow-u, .ui-icon-arrow-d, .ui-icon-check, - .ui-icon-gear, .ui-icon-refresh, .ui-icon-forward, .ui-icon-back, - .ui-icon-grid, .ui-icon-star, .ui-icon-alert, .ui-icon-info, .ui-icon-home, .ui-icon-bars, .ui-icon-edit, - .ui-icon-search, .ui-icon-searchfield:after, - .ui-icon-checkbox-off, .ui-icon-checkbox-on, .ui-icon-radio-off, .ui-icon-radio-on { - background-image: url(images/icons-36-white.png); - -moz-background-size: 864px 18px; - -o-background-size: 864px 18px; - -webkit-background-size: 864px 18px; - background-size: 864px 18px; - } - .ui-icon-alt .ui-icon { - background-image: url(images/icons-36-black.png); - } - .ui-icon-plus { - background-position: 0 50%; - } - .ui-icon-minus { - background-position: -36px 50%; - } - .ui-icon-delete { - background-position: -72px 50%; - } - .ui-icon-arrow-r { - background-position: -108px 50%; - } - .ui-icon-arrow-l { - background-position: -144px 50%; - } - .ui-icon-arrow-u { - background-position: -179px 50%; - } - .ui-icon-arrow-d { - background-position: -215px 50%; - } - .ui-icon-check { - background-position: -252px 50%; - } - .ui-icon-gear { - background-position: -287px 50%; - } - .ui-icon-refresh { - background-position: -323px 50%; - } - .ui-icon-forward { - background-position: -360px 50%; - } - .ui-icon-back { - background-position: -395px 50%; - } - .ui-icon-grid { - background-position: -431px 50%; - } - .ui-icon-star { - background-position: -467px 50%; - } - .ui-icon-alert { - background-position: -503px 50%; - } - .ui-icon-info { - background-position: -538px 50%; - } - .ui-icon-home { - background-position: -575px 50%; - } - .ui-icon-search, - .ui-icon-searchfield:after { - background-position: -611px 50%; - } - .ui-icon-checkbox-on { - background-position: -647px 50%; - } - .ui-icon-checkbox-off { - background-position: -683px 50%; - } - .ui-icon-radio-on { - background-position: -718px 50%; - } - .ui-icon-radio-off { - background-position: -754px 50%; - } - .ui-icon-bars { - background-position: -788px 50%; - - }.ui-icon-edit { - background-position: -824px 50%; - } -} -/* checks,radios */ -.ui-checkbox .ui-icon, -.ui-selectmenu-list .ui-icon { - -webkit-border-radius: 3px; - border-radius: 3px; -} -.ui-icon-checkbox-off, -.ui-icon-radio-off { - background-color: transparent; -} -.ui-checkbox-on .ui-icon, -.ui-radio-on .ui-icon { - background-color: #4596ce /*{global-active-background-color}*/; /* NOTE: this hex should match the active state color. It's repeated here for cascade */ -} -/* loading icon */ -.ui-icon-loading { - background: url(images/ajax-loader.gif); - background-size: 46px 46px; -} -/* Button corner class ------------------------------------------------------------------------------------------------------------*/ -.ui-btn-corner-all { - -webkit-border-radius: 1em /*{global-radii-buttons}*/; - border-radius: 1em /*{global-radii-buttons}*/; -} -/* radius clip workaround for cleaning up corner trapping */ -.ui-corner-all, -.ui-btn-corner-all { - -webkit-background-clip: padding; - background-clip: padding-box; -} -/* Overlay / modal ------------------------------------------------------------------------------------------------------------*/ -.ui-overlay { - background: #666; - filter: Alpha(Opacity=50); - opacity: .5; - position: absolute; - width: 100%; - height: 100%; -} -.ui-overlay-shadow { - -moz-box-shadow: 0 0 12px rgba(0,0,0,.6); - -webkit-box-shadow: 0 0 12px rgba(0,0,0,.6); - box-shadow: 0 0 12px rgba(0,0,0,.6); -} -.ui-shadow { - -moz-box-shadow: 0 1px 3px /*{global-box-shadow-size}*/ rgba(0,0,0,.2) /*{global-box-shadow-color}*/; - -webkit-box-shadow: 0 1px 3px /*{global-box-shadow-size}*/ rgba(0,0,0,.2) /*{global-box-shadow-color}*/; - box-shadow: 0 1px 3px /*{global-box-shadow-size}*/ rgba(0,0,0,.2) /*{global-box-shadow-color}*/ -} -.ui-bar-a .ui-shadow, -.ui-bar-b .ui-shadow , -.ui-bar-c .ui-shadow { - -moz-box-shadow: 0 1px 0 rgba(255,255,255,.3); - -webkit-box-shadow: 0 1px 0 rgba(255,255,255,.3); - box-shadow: 0 1px 0 rgba(255,255,255,.3); -} -.ui-shadow-inset { - -moz-box-shadow: inset 0 1px 4px rgba(0,0,0,.2); - -webkit-box-shadow: inset 0 1px 4px rgba(0,0,0,.2); - box-shadow: inset 0 1px 4px rgba(0,0,0,.2); -} -.ui-icon-shadow { - -moz-box-shadow: 0 1px 0 rgba(255,255,255,.4) /*{global-icon-shadow}*/; - -webkit-box-shadow: 0 1px 0 rgba(255,255,255,.4) /*{global-icon-shadow}*/; - box-shadow: 0 1px 0 rgba(255,255,255,.4) /*{global-icon-shadow}*/; -} -/* Focus state - set here for specificity (note: these classes are added by JavaScript) ------------------------------------------------------------------------------------------------------------*/ -.ui-btn:focus, .ui-link-inherit:focus { - outline: 0; -} -.ui-btn.ui-focus { - z-index: 1; -} -.ui-focus, -.ui-btn:focus { - -moz-box-shadow: inset 0 0 3px #387bbe /*{global-active-background-color}*/, 0 0 9px #387bbe /*{global-active-background-color}*/; - -webkit-box-shadow: inset 0 0 3px #387bbe /*{global-active-background-color}*/, 0 0 9px #387bbe /*{global-active-background-color}*/; - box-shadow: inset 0 0 3px #387bbe /*{global-active-background-color}*/, 0 0 9px #387bbe /*{global-active-background-color}*/; -} -.ui-input-text.ui-focus, -.ui-input-search.ui-focus { - -moz-box-shadow: 0 0 12px #387bbe /*{global-active-background-color}*/; - -webkit-box-shadow: 0 0 12px #387bbe /*{global-active-background-color}*/; - box-shadow: 0 0 12px #387bbe /*{global-active-background-color}*/; -} -/* unset box shadow in browsers that don't do it right ------------------------------------------------------------------------------------------------------------*/ -.ui-mobile-nosupport-boxshadow * { - -moz-box-shadow: none !important; - -webkit-box-shadow: none !important; - box-shadow: none !important; -} -/* ...and bring back focus */ -.ui-mobile-nosupport-boxshadow .ui-focus, -.ui-mobile-nosupport-boxshadow .ui-btn:focus, -.ui-mobile-nosupport-boxshadow .ui-link-inherit:focus { - outline-width: 1px; - outline-style: auto; -} -/* some unsets - more probably needed */ -.ui-mobile, .ui-mobile body { height: 99.9%; } -.ui-mobile fieldset, .ui-page { padding: 0; margin: 0; } -.ui-mobile a img, .ui-mobile fieldset { border-width: 0; } -/* responsive page widths */ -.ui-mobile-viewport { margin: 0; overflow-x: visible; -webkit-text-size-adjust: 100%; -ms-text-size-adjust:none; -webkit-tap-highlight-color: rgba(0, 0, 0, 0); } -/* Issue #2066 */ -body.ui-mobile-viewport, -div.ui-mobile-viewport { overflow-x: hidden; } -/* "page" containers - full-screen views, one should always be in view post-pageload */ -.ui-mobile [data-role=page], .ui-mobile [data-role=dialog], .ui-page { top: 0; left: 0; width: 100%; min-height: 100%; position: absolute; display: none; border: 0; } -.ui-mobile .ui-page-active { display: block; overflow: visible; } -/* on ios4, setting focus on the page element causes flashing during transitions when there is an outline, so we turn off outlines */ -.ui-page { outline: none; } -/*orientations from js are available */ -@media screen and (orientation: portrait){ -.ui-mobile .ui-page { min-height: 420px; } -} -@media screen and (orientation: landscape){ -.ui-mobile .ui-page { min-height: 300px; } -} -/* loading screen */ -.ui-loading .ui-loader { display: block; } -.ui-loader { display: none; z-index: 9999999; position: fixed; top: 50%; left: 50%; border:0; } -.ui-loader-default { background: none; filter: Alpha(Opacity=18); opacity: .18; width: 46px; height: 46px; margin-left: -23px; margin-top: -23px; } -.ui-loader-verbose { width: 200px; filter: Alpha(Opacity=88); opacity: .88; box-shadow: 0 1px 1px -1px #fff; height: auto; margin-left: -110px; margin-top: -43px; padding: 10px; } -.ui-loader-default h1 { font-size: 0; width: 0; height: 0; overflow: hidden; } -.ui-loader-verbose h1 { font-size: 16px; margin: 0; text-align: center; } -.ui-loader .ui-icon { background-color: #000; display: block; margin: 0; width: 44px; height: 44px; padding: 1px; -webkit-border-radius: 36px; border-radius: 36px; } -.ui-loader-verbose .ui-icon { margin: 0 auto 10px; filter: Alpha(Opacity=75); opacity: .75; } -.ui-loader-textonly { padding: 15px; margin-left: -115px; } -.ui-loader-textonly .ui-icon { display: none; } -.ui-loader-fakefix { position: absolute; } -/*fouc*/ -.ui-mobile-rendering > * { visibility: hidden; } -/*headers, content panels*/ -.ui-bar, .ui-body { position: relative; padding: .4em 15px; overflow: hidden; display: block; clear:both; } -.ui-bar { font-size: 16px; margin: 0; } -.ui-bar h1, .ui-bar h2, .ui-bar h3, .ui-bar h4, .ui-bar h5, .ui-bar h6 { margin: 0; padding: 0; font-size: 16px; display: inline-block; } -.ui-header, .ui-footer { position: relative; zoom: 1; } -.ui-mobile .ui-header, .ui-mobile .ui-footer { border-left-width: 0; border-right-width: 0; } -.ui-header .ui-btn-left, -.ui-header .ui-btn-right, -.ui-footer .ui-btn-left, -.ui-footer .ui-btn-right, -.ui-header-fixed.ui-fixed-hidden .ui-btn-left, -.ui-header-fixed.ui-fixed-hidden .ui-btn-right { position: absolute; top: 3px; } -.ui-header-fixed .ui-btn-left, -.ui-header-fixed .ui-btn-right { top: 4px;} -.ui-header .ui-btn-left, -.ui-footer .ui-btn-left { left: 5px; } -.ui-header .ui-btn-right, -.ui-footer .ui-btn-right { right: 5px; } -.ui-footer > .ui-btn-icon-notext, -.ui-header > .ui-btn-icon-notext, -.ui-header-fixed.ui-fixed-hidden > .ui-btn-icon-notext { top: 6px; } -.ui-header-fixed > .ui-btn-icon-notext { top: 7px;} -.ui-header .ui-title, .ui-footer .ui-title { min-height: 1.1em; text-align: center; font-size: 16px; display: block; margin: .6em 30% .8em; padding: 0; text-overflow: ellipsis; overflow: hidden; white-space: nowrap; outline: 0 !important; } -.ui-footer .ui-title { margin: .6em 15px .8em; } -/* content area*/ -.ui-content { border-width: 0; overflow: visible; overflow-x: hidden; padding: 15px; } -/* corner styling for dialogs and popups */ -.ui-corner-all > .ui-header:first-child, -.ui-corner-all > .ui-content:first-child, -.ui-corner-all > .ui-footer:first-child { - -webkit-border-top-left-radius: inherit; - border-top-left-radius: inherit; - -webkit-border-top-right-radius: inherit; - border-top-right-radius: inherit; -} -.ui-corner-all > .ui-header:last-child, -.ui-corner-all > .ui-content:last-child, -.ui-corner-all > .ui-footer:last-child { - -webkit-border-bottom-left-radius: inherit; - border-bottom-left-radius: inherit; - -webkit-border-bottom-right-radius: inherit; - border-bottom-right-radius: inherit; -} -/* icons sizing */ -.ui-icon { width: 18px; height: 18px; } -/* non-js content hiding */ -.ui-nojs { position: absolute; left: -9999px; } -/* accessible content hiding */ -.ui-hide-label label.ui-input-text, .ui-hide-label label.ui-select, .ui-hide-label label.ui-slider, .ui-hide-label label.ui-submit, .ui-hide-label .ui-controlgroup-label, -.ui-hidden-accessible { position: absolute !important; left: -9999px; clip: rect(1px 1px 1px 1px); clip: rect(1px,1px,1px,1px); } -/* Transitions originally inspired by those from jQtouch, nice work, folks */ -.ui-mobile-viewport-transitioning, -.ui-mobile-viewport-transitioning .ui-page { - width: 100%; - height: 100%; - overflow: hidden; - -webkit-box-sizing: border-box; - -moz-box-sizing: border-box; - box-sizing: border-box; -} -.ui-page-pre-in { - opacity: 0; -} -.in { - -webkit-animation-timing-function: ease-out; - -webkit-animation-duration: 350ms; - -moz-animation-timing-function: ease-out; - -moz-animation-duration: 350ms; - animation-timing-function: ease-out; - animation-duration: 350ms; -} -.out { - -webkit-animation-timing-function: ease-in; - -webkit-animation-duration: 225ms; - -moz-animation-timing-function: ease-in; - -moz-animation-duration: 225ms; - animation-timing-function: ease-in; - animation-duration: 225ms; -} -@-webkit-keyframes fadein { - from { opacity: 0; } - to { opacity: 1; } -} -@-moz-keyframes fadein { - from { opacity: 0; } - to { opacity: 1; } -} -@keyframes fadein { - from { opacity: 0; } - to { opacity: 1; } -} -@-webkit-keyframes fadeout { - from { opacity: 1; } - to { opacity: 0; } -} -@-moz-keyframes fadeout { - from { opacity: 1; } - to { opacity: 0; } -} -@keyframes fadeout { - from { opacity: 1; } - to { opacity: 0; } -} -.fade.out { - opacity: 0; - -webkit-animation-duration: 125ms; - -webkit-animation-name: fadeout; - -moz-animation-duration: 125ms; - -moz-animation-name: fadeout; - animation-duration: 125ms; - animation-name: fadeout; -} -.fade.in { - opacity: 1; - -webkit-animation-duration: 225ms; - -webkit-animation-name: fadein; - -moz-animation-duration: 225ms; - -moz-animation-name: fadein; - animation-duration: 225ms; - animation-name: fadein; -} -.pop { - -webkit-transform-origin: 50% 50%; - -moz-transform-origin: 50% 50%; - transform-origin: 50% 50%; -} -.pop.in { - -webkit-transform: scale(1); - -webkit-animation-name: popin; - -webkit-animation-duration: 350ms; - -moz-transform: scale(1); - -moz-animation-name: popin; - -moz-animation-duration: 350ms; - transform: scale(1); - animation-name: popin; - animation-duration: 350ms; - opacity: 1; -} -.pop.out { - -webkit-animation-name: fadeout; - -webkit-animation-duration: 100ms; - -moz-animation-name: fadeout; - -moz-animation-duration: 100ms; - animation-name: fadeout; - animation-duration: 100ms; - opacity: 0; -} -.pop.in.reverse { - -webkit-animation-name: fadein; - -moz-animation-name: fadein; - animation-name: fadein; -} -.pop.out.reverse { - -webkit-transform: scale(.8); - -webkit-animation-name: popout; - -moz-transform: scale(.8); - -moz-animation-name: popout; - transform: scale(.8); - animation-name: popout; -} -@-webkit-keyframes popin { - from { - -webkit-transform: scale(.8); - opacity: 0; - } - to { - -webkit-transform: scale(1); - opacity: 1; - } -} -@-moz-keyframes popin { - from { - -moz-transform: scale(.8); - opacity: 0; - } - to { - -moz-transform: scale(1); - opacity: 1; - } -} -@keyframes popin { - from { - transform: scale(.8); - opacity: 0; - } - to { - transform: scale(1); - opacity: 1; - } -} -@-webkit-keyframes popout { - from { - -webkit-transform: scale(1); - opacity: 1; - } - to { - -webkit-transform: scale(.8); - opacity: 0; - } -} -@-moz-keyframes popout { - from { - -moz-transform: scale(1); - opacity: 1; - } - to { - -moz-transform: scale(.8); - opacity: 0; - } -} -@keyframes popout { - from { - transform: scale(1); - opacity: 1; - } - to { - transform: scale(.8); - opacity: 0; - } -} -/* keyframes for slidein from sides */ -@-webkit-keyframes slideinfromright { - from { -webkit-transform: translate3d(100%,0,0); } - to { -webkit-transform: translate3d(0,0,0); } -} -@-moz-keyframes slideinfromright { - from { -moz-transform: translateX(100%); } - to { -moz-transform: translateX(0); } -} -@keyframes slideinfromright { - from { transform: translateX(100%); } - to { transform: translateX(0); } -} -@-webkit-keyframes slideinfromleft { - from { -webkit-transform: translate3d(-100%,0,0); } - to { -webkit-transform: translate3d(0,0,0); } -} -@-moz-keyframes slideinfromleft { - from { -moz-transform: translateX(-100%); } - to { -moz-transform: translateX(0); } -} -@keyframes slideinfromleft { - from { transform: translateX(-100%); } - to { transform: translateX(0); } -} -/* keyframes for slideout to sides */ -@-webkit-keyframes slideouttoleft { - from { -webkit-transform: translate3d(0,0,0); } - to { -webkit-transform: translate3d(-100%,0,0); } -} -@-moz-keyframes slideouttoleft { - from { -moz-transform: translateX(0); } - to { -moz-transform: translateX(-100%); } -} -@keyframes slideouttoleft { - from { transform: translateX(0); } - to { transform: translateX(-100%); } -} -@-webkit-keyframes slideouttoright { - from { -webkit-transform: translate3d(0,0,0); } - to { -webkit-transform: translate3d(100%,0,0); } -} -@-moz-keyframes slideouttoright { - from { -moz-transform: translateX(0); } - to { -moz-transform: translateX(100%); } -} -@keyframes slideouttoright { - from { transform: translateX(0); } - to { transform: translateX(100%); } -} -.slide.out, .slide.in { - -webkit-animation-timing-function: ease-out; - -webkit-animation-duration: 350ms; - -moz-animation-timing-function: ease-out; - -moz-animation-duration: 350ms; - animation-timing-function: ease-out; - animation-duration: 350ms; -} -.slide.out { - -webkit-transform: translate3d(-100%,0,0); - -webkit-animation-name: slideouttoleft; - -moz-transform: translateX(-100%); - -moz-animation-name: slideouttoleft; - transform: translateX(-100%); - animation-name: slideouttoleft; -} -.slide.in { - -webkit-transform: translate3d(0,0,0); - -webkit-animation-name: slideinfromright; - -moz-transform: translateX(0); - -moz-animation-name: slideinfromright; - transform: translateX(0); - animation-name: slideinfromright; -} -.slide.out.reverse { - -webkit-transform: translate3d(100%,0,0); - -webkit-animation-name: slideouttoright; - -moz-transform: translateX(100%); - -moz-animation-name: slideouttoright; - transform: translateX(100%); - animation-name: slideouttoright; -} -.slide.in.reverse { - -webkit-transform: translate3d(0,0,0); - -webkit-animation-name: slideinfromleft; - -moz-transform: translateX(0); - -moz-animation-name: slideinfromleft; - transform: translateX(0); - animation-name: slideinfromleft; -} -.slidefade.out { - -webkit-transform: translateX(-100%); - -webkit-animation-name: slideouttoleft; - -webkit-animation-duration: 225ms; - -moz-transform: translateX(-100%); - -moz-animation-name: slideouttoleft; - -moz-animation-duration: 225ms; - transform: translateX(-100%); - animation-name: slideouttoleft; - animation-duration: 225ms; -} -.slidefade.in { - -webkit-transform: translateX(0); - -webkit-animation-name: fadein; - -webkit-animation-duration: 200ms; - -moz-transform: translateX(0); - -moz-animation-name: fadein; - -moz-animation-duration: 200ms; - transform: translateX(0); - animation-name: fadein; - animation-duration: 200ms; -} -.slidefade.out.reverse { - -webkit-transform: translateX(100%); - -webkit-animation-name: slideouttoright; - -webkit-animation-duration: 200ms; - -moz-transform: translateX(100%); - -moz-animation-name: slideouttoright; - -moz-animation-duration: 200ms; - transform: translateX(100%); - animation-name: slideouttoright; - animation-duration: 200ms; -} -.slidefade.in.reverse { - -webkit-transform: translateX(0); - -webkit-animation-name: fadein; - -webkit-animation-duration: 200ms; - -moz-transform: translateX(0); - -moz-animation-name: fadein; - -moz-animation-duration: 200ms; - transform: translateX(0); - animation-name: fadein; - animation-duration: 200ms; -} -/* slide down */ -.slidedown.out { - -webkit-animation-name: fadeout; - -webkit-animation-duration: 100ms; - -moz-animation-name: fadeout; - -moz-animation-duration: 100ms; - animation-name: fadeout; - animation-duration: 100ms; -} -.slidedown.in { - -webkit-transform: translateY(0); - -webkit-animation-name: slideinfromtop; - -webkit-animation-duration: 250ms; - -moz-transform: translateY(0); - -moz-animation-name: slideinfromtop; - -moz-animation-duration: 250ms; - transform: translateY(0); - animation-name: slideinfromtop; - animation-duration: 250ms; -} -.slidedown.in.reverse { - -webkit-animation-name: fadein; - -webkit-animation-duration: 150ms; - -moz-animation-name: fadein; - -moz-animation-duration: 150ms; - animation-name: fadein; - animation-duration: 150ms; -} -.slidedown.out.reverse { - -webkit-transform: translateY(-100%); - -webkit-animation-name: slideouttotop; - -webkit-animation-duration: 200ms; - -moz-transform: translateY(-100%); - -moz-animation-name: slideouttotop; - -moz-animation-duration: 200ms; - transform: translateY(-100%); - animation-name: slideouttotop; - animation-duration: 200ms; -} -@-webkit-keyframes slideinfromtop { - from { -webkit-transform: translateY(-100%); } - to { -webkit-transform: translateY(0); } -} -@-moz-keyframes slideinfromtop { - from { -moz-transform: translateY(-100%); } - to { -moz-transform: translateY(0); } -} -@keyframes slideinfromtop { - from { transform: translateY(-100%); } - to { transform: translateY(0); } -} -@-webkit-keyframes slideouttotop { - from { -webkit-transform: translateY(0); } - to { -webkit-transform: translateY(-100%); } -} -@-moz-keyframes slideouttotop { - from { -moz-transform: translateY(0); } - to { -moz-transform: translateY(-100%); } -} -@keyframes slideouttotop { - from { transform: translateY(0); } - to { transform: translateY(-100%); } -} -/* slide up */ -.slideup.out { - -webkit-animation-name: fadeout; - -webkit-animation-duration: 100ms; - -moz-animation-name: fadeout; - -moz-animation-duration: 100ms; - animation-name: fadeout; - animation-duration: 100ms; -} -.slideup.in { - -webkit-transform: translateY(0); - -webkit-animation-name: slideinfrombottom; - -webkit-animation-duration: 250ms; - -moz-transform: translateY(0); - -moz-animation-name: slideinfrombottom; - -moz-animation-duration: 250ms; - transform: translateY(0); - animation-name: slideinfrombottom; - animation-duration: 250ms; -} -.slideup.in.reverse { - -webkit-animation-name: fadein; - -webkit-animation-duration: 150ms; - -moz-animation-name: fadein; - -moz-animation-duration: 150ms; - animation-name: fadein; - animation-duration: 150ms; -} -.slideup.out.reverse { - -webkit-transform: translateY(100%); - -webkit-animation-name: slideouttobottom; - -webkit-animation-duration: 200ms; - -moz-transform: translateY(100%); - -moz-animation-name: slideouttobottom; - -moz-animation-duration: 200ms; - transform: translateY(100%); - animation-name: slideouttobottom; - animation-duration: 200ms; -} -@-webkit-keyframes slideinfrombottom { - from { -webkit-transform: translateY(100%); } - to { -webkit-transform: translateY(0); } -} -@-moz-keyframes slideinfrombottom { - from { -moz-transform: translateY(100%); } - to { -moz-transform: translateY(0); } -} -@keyframes slideinfrombottom { - from { transform: translateY(100%); } - to { transform: translateY(0); } -} -@-webkit-keyframes slideouttobottom { - from { -webkit-transform: translateY(0); } - to { -webkit-transform: translateY(100%); } -} -@-moz-keyframes slideouttobottom { - from { -moz-transform: translateY(0); } - to { -moz-transform: translateY(100%); } -} -@keyframes slideouttobottom { - from { transform: translateY(0); } - to { transform: translateY(100%); } -} -/* The properties in this rule are only necessary for the 'flip' transition. - * We need specify the perspective to create a projection matrix. This will add - * some depth as the element flips. The depth number represents the distance of - * the viewer from the z-plane. According to the CSS3 spec, 1000 is a moderate - * value. - */ -.viewport-flip { - -webkit-perspective: 1000; - -moz-perspective: 1000; - perspective: 1000; - position: absolute; -} -.flip { - -webkit-backface-visibility: hidden; - -webkit-transform: translateX(0); /* Needed to work around an iOS 3.1 bug that causes listview thumbs to disappear when -webkit-visibility:hidden is used. */ - -moz-backface-visibility: hidden; - -moz-transform: translateX(0); - backface-visibility: hidden; - transform: translateX(0); -} -.flip.out { - -webkit-transform: rotateY(-90deg) scale(.9); - -webkit-animation-name: flipouttoleft; - -webkit-animation-duration: 175ms; - -moz-transform: rotateY(-90deg) scale(.9); - -moz-animation-name: flipouttoleft; - -moz-animation-duration: 175ms; - transform: rotateY(-90deg) scale(.9); - animation-name: flipouttoleft; - animation-duration: 175ms; -} -.flip.in { - -webkit-animation-name: flipintoright; - -webkit-animation-duration: 225ms; - -moz-animation-name: flipintoright; - -moz-animation-duration: 225ms; - animation-name: flipintoright; - animation-duration: 225ms; -} -.flip.out.reverse { - -webkit-transform: rotateY(90deg) scale(.9); - -webkit-animation-name: flipouttoright; - -moz-transform: rotateY(90deg) scale(.9); - -moz-animation-name: flipouttoright; - transform: rotateY(90deg) scale(.9); - animation-name: flipouttoright; -} -.flip.in.reverse { - -webkit-animation-name: flipintoleft; - -moz-animation-name: flipintoleft; - animation-name: flipintoleft; -} -@-webkit-keyframes flipouttoleft { - from { -webkit-transform: rotateY(0); } - to { -webkit-transform: rotateY(-90deg) scale(.9); } -} -@-moz-keyframes flipouttoleft { - from { -moz-transform: rotateY(0); } - to { -moz-transform: rotateY(-90deg) scale(.9); } -} -@keyframes flipouttoleft { - from { transform: rotateY(0); } - to { transform: rotateY(-90deg) scale(.9); } -} -@-webkit-keyframes flipouttoright { - from { -webkit-transform: rotateY(0) ; } - to { -webkit-transform: rotateY(90deg) scale(.9); } -} -@-moz-keyframes flipouttoright { - from { -moz-transform: rotateY(0); } - to { -moz-transform: rotateY(90deg) scale(.9); } -} -@keyframes flipouttoright { - from { transform: rotateY(0); } - to { transform: rotateY(90deg) scale(.9); } -} -@-webkit-keyframes flipintoleft { - from { -webkit-transform: rotateY(-90deg) scale(.9); } - to { -webkit-transform: rotateY(0); } -} -@-moz-keyframes flipintoleft { - from { -moz-transform: rotateY(-90deg) scale(.9); } - to { -moz-transform: rotateY(0); } -} -@keyframes flipintoleft { - from { transform: rotateY(-90deg) scale(.9); } - to { transform: rotateY(0); } -} -@-webkit-keyframes flipintoright { - from { -webkit-transform: rotateY(90deg) scale(.9); } - to { -webkit-transform: rotateY(0); } -} -@-moz-keyframes flipintoright { - from { -moz-transform: rotateY(90deg) scale(.9); } - to { -moz-transform: rotateY(0); } -} -@keyframes flipintoright { - from { transform: rotateY(90deg) scale(.9); } - to { transform: rotateY(0); } -} -/* The properties in this rule are only necessary for the 'flip' transition. - * We need specify the perspective to create a projection matrix. This will add - * some depth as the element flips. The depth number represents the distance of - * the viewer from the z-plane. According to the CSS3 spec, 1000 is a moderate - * value. - */ -.viewport-turn { - -webkit-perspective: 200px; - -moz-perspective: 200px; - -ms-perspective: 200px; - perspective: 200px; - position: absolute; -} -.turn { - -webkit-backface-visibility: hidden; - -webkit-transform: translateX(0); /* Needed to work around an iOS 3.1 bug that causes listview thumbs to disappear when -webkit-visibility:hidden is used. */ - -webkit-transform-origin: 0; - - -moz-backface-visibility: hidden; - -moz-transform: translateX(0); - -moz-transform-origin: 0; - - backface-visibility :hidden; - transform: translateX(0); - transform-origin: 0; -} -.turn.out { - -webkit-transform: rotateY(-90deg) scale(.9); - -webkit-animation-name: flipouttoleft; - -webkit-animation-duration: 125ms; - -moz-transform: rotateY(-90deg) scale(.9); - -moz-animation-name: flipouttoleft; - -moz-animation-duration: 125ms; - transform: rotateY(-90deg) scale(.9); - animation-name: flipouttoleft; - animation-duration: 125ms; -} -.turn.in { - -webkit-animation-name: flipintoright; - -webkit-animation-duration: 250ms; - -moz-animation-name: flipintoright; - -moz-animation-duration: 250ms; - animation-name: flipintoright; - animation-duration: 250ms; - -} -.turn.out.reverse { - -webkit-transform: rotateY(90deg) scale(.9); - -webkit-animation-name: flipouttoright; - -moz-transform: rotateY(90deg) scale(.9); - -moz-animation-name: flipouttoright; - transform: rotateY(90deg) scale(.9); - animation-name: flipouttoright; -} -.turn.in.reverse { - -webkit-animation-name: flipintoleft; - -moz-animation-name: flipintoleft; - animation-name: flipintoleft; -} -@-webkit-keyframes flipouttoleft { - from { -webkit-transform: rotateY(0); } - to { -webkit-transform: rotateY(-90deg) scale(.9); } -} -@-moz-keyframes flipouttoleft { - from { -moz-transform: rotateY(0); } - to { -moz-transform: rotateY(-90deg) scale(.9); } -} -@keyframes flipouttoleft { - from { transform: rotateY(0); } - to { transform: rotateY(-90deg) scale(.9); } -} -@-webkit-keyframes flipouttoright { - from { -webkit-transform: rotateY(0) ; } - to { -webkit-transform: rotateY(90deg) scale(.9); } -} -@-moz-keyframes flipouttoright { - from { -moz-transform: rotateY(0); } - to { -moz-transform: rotateY(90deg) scale(.9); } -} -@keyframes flipouttoright { - from { transform: rotateY(0); } - to { transform: rotateY(90deg) scale(.9); } -} -@-webkit-keyframes flipintoleft { - from { -webkit-transform: rotateY(-90deg) scale(.9); } - to { -webkit-transform: rotateY(0); } -} -@-moz-keyframes flipintoleft { - from { -moz-transform: rotateY(-90deg) scale(.9); } - to { -moz-transform: rotateY(0); } -} -@keyframes flipintoleft { - from { transform: rotateY(-90deg) scale(.9); } - to { transform: rotateY(0); } -} -@-webkit-keyframes flipintoright { - from { -webkit-transform: rotateY(90deg) scale(.9); } - to { -webkit-transform: rotateY(0); } -} -@-moz-keyframes flipintoright { - from { -moz-transform: rotateY(90deg) scale(.9); } - to { -moz-transform: rotateY(0); } -} -@keyframes flipintoright { - from { transform: rotateY(90deg) scale(.9); } - to { transform: rotateY(0); } -} -/* flow transition */ -.flow { - -webkit-transform-origin: 50% 30%; - -webkit-box-shadow: 0 0 20px rgba(0,0,0,.4); - -moz-transform-origin: 50% 30%; - -moz-box-shadow: 0 0 20px rgba(0,0,0,.4); - transform-origin: 50% 30%; - box-shadow: 0 0 20px rgba(0,0,0,.4); -} -.ui-dialog.flow { - -webkit-transform-origin: none; - -webkit-box-shadow: none; - -moz-transform-origin: none; - -moz-box-shadow: none; - transform-origin: none; - box-shadow: none; -} -.flow.out { - -webkit-transform: translateX(-100%) scale(.7); - -webkit-animation-name: flowouttoleft; - -webkit-animation-timing-function: ease; - -webkit-animation-duration: 350ms; - -moz-transform: translateX(-100%) scale(.7); - -moz-animation-name: flowouttoleft; - -moz-animation-timing-function: ease; - -moz-animation-duration: 350ms; - transform: translateX(-100%) scale(.7); - animation-name: flowouttoleft; - animation-timing-function: ease; - animation-duration: 350ms; -} -.flow.in { - -webkit-transform: translateX(0) scale(1); - -webkit-animation-name: flowinfromright; - -webkit-animation-timing-function: ease; - -webkit-animation-duration: 350ms; - -moz-transform: translateX(0) scale(1); - -moz-animation-name: flowinfromright; - -moz-animation-timing-function: ease; - -moz-animation-duration: 350ms; - transform: translateX(0) scale(1); - animation-name: flowinfromright; - animation-timing-function: ease; - animation-duration: 350ms; -} -.flow.out.reverse { - -webkit-transform: translateX(100%); - -webkit-animation-name: flowouttoright; - -moz-transform: translateX(100%); - -moz-animation-name: flowouttoright; - transform: translateX(100%); - animation-name: flowouttoright; -} -.flow.in.reverse { - -webkit-animation-name: flowinfromleft; - -moz-animation-name: flowinfromleft; - animation-name: flowinfromleft; -} -@-webkit-keyframes flowouttoleft { - 0% { -webkit-transform: translateX(0) scale(1); } - 60%, 70% { -webkit-transform: translateX(0) scale(.7); } - 100% { -webkit-transform: translateX(-100%) scale(.7); } -} -@-moz-keyframes flowouttoleft { - 0% { -moz-transform: translateX(0) scale(1); } - 60%, 70% { -moz-transform: translateX(0) scale(.7); } - 100% { -moz-transform: translateX(-100%) scale(.7); } -} -@keyframes flowouttoleft { - 0% { transform: translateX(0) scale(1); } - 60%, 70% { transform: translateX(0) scale(.7); } - 100% { transform: translateX(-100%) scale(.7); } -} -@-webkit-keyframes flowouttoright { - 0% { -webkit-transform: translateX(0) scale(1); } - 60%, 70% { -webkit-transform: translateX(0) scale(.7); } - 100% { -webkit-transform: translateX(100%) scale(.7); } -} -@-moz-keyframes flowouttoright { - 0% { -moz-transform: translateX(0) scale(1); } - 60%, 70% { -moz-transform: translateX(0) scale(.7); } - 100% { -moz-transform: translateX(100%) scale(.7); } -} -@keyframes flowouttoright { - 0% { transform: translateX(0) scale(1); } - 60%, 70% { transform: translateX(0) scale(.7); } - 100% { transform: translateX(100%) scale(.7); } -} -@-webkit-keyframes flowinfromleft { - 0% { -webkit-transform: translateX(-100%) scale(.7); } - 30%, 40% { -webkit-transform: translateX(0) scale(.7); } - 100% { -webkit-transform: translateX(0) scale(1); } -} -@-moz-keyframes flowinfromleft { - 0% { -moz-transform: translateX(-100%) scale(.7); } - 30%, 40% { -moz-transform: translateX(0) scale(.7); } - 100% { -moz-transform: translateX(0) scale(1); } -} -@keyframes flowinfromleft { - 0% { transform: translateX(-100%) scale(.7); } - 30%, 40% { transform: translateX(0) scale(.7); } - 100% { transform: translateX(0) scale(1); } -} -@-webkit-keyframes flowinfromright { - 0% { -webkit-transform: translateX(100%) scale(.7); } - 30%, 40% { -webkit-transform: translateX(0) scale(.7); } - 100% { -webkit-transform: translateX(0) scale(1); } -} -@-moz-keyframes flowinfromright { - 0% { -moz-transform: translateX(100%) scale(.7); } - 30%, 40% { -moz-transform: translateX(0) scale(.7); } - 100% { -moz-transform: translateX(0) scale(1); } -} -@keyframes flowinfromright { - 0% { transform: translateX(100%) scale(.7); } - 30%, 40% { transform: translateX(0) scale(.7); } - 100% { transform: translateX(0) scale(1); } -} -/* content configurations. */ -.ui-grid-a, .ui-grid-b, .ui-grid-c, .ui-grid-d { overflow: hidden; } -.ui-block-a, .ui-block-b, .ui-block-c, .ui-block-d, .ui-block-e { margin: 0; padding: 0; border: 0; float: left; min-height: 1px; -webkit-box-sizing: border-box; -moz-box-sizing: border-box; -ms-box-sizing: border-box; box-sizing: border-box; } -/* grid solo: 100 - single item fallback */ -.ui-grid-solo .ui-block-a { display: block; float: none; } -/* Lower percentages for older browsers (i.e. IE7) to prevent wrapping. -.5px to fix BB5 wrap issue. */ -/* grid a: 50/50 */ -.ui-grid-a .ui-block-a, .ui-grid-a .ui-block-b { width: 49.95%; } -.ui-grid-a > :nth-child(n) { width: 50%; margin-right: -.5px; } -.ui-grid-a .ui-block-a { clear: left; } -/* grid b: 33/33/33 */ -.ui-grid-b .ui-block-a, .ui-grid-b .ui-block-b, .ui-grid-b .ui-block-c { width: 33.25%; } -.ui-grid-b > :nth-child(n) { width: 33.333%; margin-right: -.5px; } -.ui-grid-b .ui-block-a { clear: left; } -/* grid c: 25/25/25/25 */ -.ui-grid-c .ui-block-a, .ui-grid-c .ui-block-b, .ui-grid-c .ui-block-c, .ui-grid-c .ui-block-d { width: 24.925%; } -.ui-grid-c > :nth-child(n) { width: 25%; margin-right: -.5px; } -.ui-grid-c .ui-block-a { clear: left; } -/* grid d: 20/20/20/20/20 */ -.ui-grid-d .ui-block-a, .ui-grid-d .ui-block-b, .ui-grid-d .ui-block-c, .ui-grid-d .ui-block-d, .ui-grid-d .ui-block-e { width: 19.925%; } -.ui-grid-d > :nth-child(n) { width: 20%; } -.ui-grid-d .ui-block-a { clear: left; } -/* preset breakpoint to switch to stacked grid styles below 35em (560px) */ -@media all and (max-width: 35em) { - .ui-responsive .ui-block-a, - .ui-responsive .ui-block-b, - .ui-responsive .ui-block-c, - .ui-responsive .ui-block-d, - .ui-responsive .ui-block-e { - width: 100%; - float:none; - } -} -/* fixed page header & footer configuration */ -.ui-header-fixed, -.ui-footer-fixed { - left: 0; - right: 0; - width: 100%; - position: fixed; - z-index: 1000; -} -.ui-header-fixed { - top: -1px; - padding-top: 1px; -} -.ui-header-fixed.ui-fixed-hidden { - top: 0; - padding-top: 0; -} -.ui-footer-fixed { - bottom: -1px; - padding-bottom: 1px; -} -.ui-footer-fixed.ui-fixed-hidden { - bottom: 0; - padding-bottom: 0; -} -.ui-header-fullscreen, -.ui-footer-fullscreen { - filter: Alpha(Opacity=90); - opacity: .9; -} -.ui-page-header-fixed { - padding-top: 2.6875em; -} -.ui-page-footer-fixed { - padding-bottom: 2.6875em; -} -.ui-page-header-fullscreen > .ui-content, -.ui-page-footer-fullscreen > .ui-content { - padding: 0; -} -.ui-fixed-hidden { - position: absolute; -} -.ui-page-header-fullscreen .ui-fixed-hidden, -.ui-page-footer-fullscreen .ui-fixed-hidden { - left: -9999px; -} -.ui-header-fixed .ui-btn, -.ui-footer-fixed .ui-btn { - z-index: 10; -} -/* workarounds for other widgets */ -.ui-android-2x-fixed .ui-li-has-thumb { - -webkit-transform: translate3d(0,0,0); -} -.ui-navbar { max-width: 100%; } -.ui-navbar.ui-mini { margin: 0; } -.ui-navbar ul:before, .ui-navbar ul:after { content: " "; display: table; } -.ui-navbar ul:after { clear: both; } -.ui-navbar ul { list-style:none; margin: 0; padding: 0; position: relative; display: block; border: 0; max-width: 100%; overflow: visible; zoom: 1; } -.ui-navbar li .ui-btn { display: block; text-align: center; margin: 0 -1px 0 0; border-right-width: 0; } -.ui-navbar li .ui-btn-icon-right .ui-icon { right: 6px; } -/* add border if not in header/footer (full width) */ -.ui-navbar li:last-child .ui-btn, -.ui-navbar .ui-grid-duo .ui-block-b .ui-btn { margin-right: 0; border-right-width: 1px; } -.ui-header .ui-navbar li:last-child .ui-btn, -.ui-footer .ui-navbar li:last-child .ui-btn, -.ui-header .ui-navbar .ui-grid-duo .ui-block-b .ui-btn, -.ui-footer .ui-navbar .ui-grid-duo .ui-block-b .ui-btn { margin-right: -1px; border-right-width: 0; } -.ui-navbar .ui-grid-duo li.ui-block-a:last-child .ui-btn { margin-right: -1px; border-right-width: 1px; } -.ui-header .ui-navbar li .ui-btn, -.ui-footer .ui-navbar li .ui-btn { border-top-width: 0; border-bottom-width: 0; } -/* fixing gaps caused by subpixel problem */ -.ui-header .ui-navbar .ui-grid-b li.ui-block-c .ui-btn, -.ui-footer .ui-navbar .ui-grid-b li.ui-block-c .ui-btn { margin-right: -5px; } -.ui-header .ui-navbar .ui-grid-c li.ui-block-d .ui-btn, -.ui-footer .ui-navbar .ui-grid-c li.ui-block-d .ui-btn, -.ui-header .ui-navbar .ui-grid-d li.ui-block-e .ui-btn, -.ui-footer .ui-navbar .ui-grid-d li.ui-block-e .ui-btn { margin-right: -4px; } -.ui-header .ui-navbar .ui-grid-b li.ui-block-c .ui-btn-icon-right .ui-icon, -.ui-footer .ui-navbar .ui-grid-b li.ui-block-c .ui-btn-icon-right .ui-icon, -.ui-header .ui-navbar .ui-grid-c li.ui-block-d .ui-btn-icon-right .ui-icon, -.ui-footer .ui-navbar .ui-grid-c li.ui-block-d .ui-btn-icon-right .ui-icon, -.ui-header .ui-navbar .ui-grid-d li.ui-block-e .ui-btn-icon-right .ui-icon, -.ui-footer .ui-navbar .ui-grid-d li.ui-block-e .ui-btn-icon-right .ui-icon { right: 8px; } -.ui-navbar li .ui-btn .ui-btn-inner { padding-top: .7em; padding-bottom: .8em } -.ui-navbar li .ui-btn-icon-top .ui-btn-inner { padding-top: 30px; } -.ui-navbar li .ui-btn-icon-bottom .ui-btn-inner { padding-bottom: 30px; } -.ui-btn { display: block; text-align: center; cursor:pointer; position: relative; margin: .5em 0; padding: 0; } -.ui-mini { margin-top: .25em; margin-bottom: .25em; } -.ui-btn-left, .ui-btn-right, .ui-input-clear, .ui-btn-inline, -.ui-grid-a .ui-btn, .ui-grid-b .ui-btn, .ui-grid-c .ui-btn, .ui-grid-d .ui-btn, .ui-grid-e .ui-btn, .ui-grid-solo .ui-btn { margin-right: 5px; margin-left: 5px; } -.ui-btn-inner { font-size: 16px; padding: .6em 20px; min-width: .75em; display: block; position: relative; text-overflow: ellipsis; overflow: hidden; white-space: nowrap; zoom: 1; } -.ui-btn input, .ui-btn button { z-index: 2; } -.ui-btn-left, .ui-btn-right, .ui-btn-inline { display: inline-block; vertical-align: middle; } -.ui-mobile .ui-btn-left, .ui-mobile .ui-btn-right, .ui-btn-left > .ui-btn, .ui-btn-right > .ui-btn { margin: 0; } /* .ui-mobile to increase specificity level */ -.ui-btn-block { display: block; } -.ui-header > .ui-btn, -.ui-footer > .ui-btn { display: inline-block; margin: 0; } -.ui-header .ui-btn-block, -.ui-footer .ui-btn-block { display: block; } -.ui-header .ui-btn-inner, -.ui-footer .ui-btn-inner, -.ui-mini .ui-btn-inner { font-size: 12.5px; padding: .55em 11px .5em; } -.ui-fullsize .ui-btn-inner, -.ui-fullsize .ui-btn-inner { font-size: 16px; padding: .6em 20px; } -.ui-btn-icon-notext { width: 24px; height: 24px; } -.ui-btn-icon-notext .ui-btn-inner { padding: 0; height: 100%; } -.ui-btn-icon-notext .ui-btn-inner .ui-icon { margin: 2px 1px 2px 3px; float: left; } -.ui-btn-text { position: relative; z-index: 1; width: 100%; -moz-user-select: none; -webkit-user-select: none; -ms-user-select: none; } -div.ui-btn-text { width: auto; } -.ui-btn-icon-notext .ui-btn-text { position: absolute; left: -9999px; } -.ui-btn-icon-left .ui-btn-inner { padding-left: 40px; } -.ui-btn-icon-right .ui-btn-inner { padding-right: 40px; } -.ui-btn-icon-top .ui-btn-inner { padding-top: 40px; } -.ui-btn-icon-bottom .ui-btn-inner { padding-bottom: 40px; } -.ui-header .ui-btn-icon-left .ui-btn-inner, -.ui-footer .ui-btn-icon-left .ui-btn-inner, -.ui-mini.ui-btn-icon-left .ui-btn-inner, -.ui-mini .ui-btn-icon-left .ui-btn-inner { padding-left: 30px; } -.ui-header .ui-btn-icon-right .ui-btn-inner, -.ui-footer .ui-btn-icon-right .ui-btn-inner, -.ui-mini.ui-btn-icon-right .ui-btn-inner, -.ui-mini .ui-btn-icon-right .ui-btn-inner { padding-right: 30px; } -.ui-header .ui-btn-icon-top .ui-btn-inner, -.ui-footer .ui-btn-icon-top .ui-btn-inner { padding: 30px 3px .5em 3px; } -.ui-mini.ui-btn-icon-top .ui-btn-inner, -.ui-mini .ui-btn-icon-top .ui-btn-inner { padding-top: 30px; } -.ui-header .ui-btn-icon-bottom .ui-btn-inner, -.ui-footer .ui-btn-icon-bottom .ui-btn-inner { padding: .55em 3px 30px 3px; } -.ui-mini.ui-btn-icon-bottom .ui-btn-inner, -.ui-mini .ui-btn-icon-bottom .ui-btn-inner { padding-bottom: 30px; } -/* Corner styling inheritance */ -.ui-btn-inner { - -webkit-border-radius: inherit; - border-radius: inherit; -} -/*btn icon positioning*/ -.ui-btn-icon-notext .ui-icon { display: block; z-index: 0;} -.ui-btn-icon-left > .ui-btn-inner > .ui-icon, .ui-btn-icon-right > .ui-btn-inner > .ui-icon { position: absolute; top: 50%; margin-top: -9px; } -.ui-btn-icon-top .ui-btn-inner .ui-icon, .ui-btn-icon-bottom .ui-btn-inner .ui-icon { position: absolute; left: 50%; margin-left: -9px; } -.ui-btn-icon-left .ui-icon { left: 10px; } -.ui-btn-icon-right .ui-icon { right: 10px; } -.ui-btn-icon-top .ui-icon { top: 10px; } -.ui-btn-icon-bottom .ui-icon { top: auto; bottom: 10px; } -.ui-header .ui-btn-icon-left .ui-icon, -.ui-footer .ui-btn-icon-left .ui-icon, -.ui-mini.ui-btn-icon-left .ui-icon, -.ui-mini .ui-btn-icon-left .ui-icon { left: 5px; } -.ui-header .ui-btn-icon-right .ui-icon, -.ui-footer .ui-btn-icon-right .ui-icon, -.ui-mini.ui-btn-icon-right .ui-icon, -.ui-mini .ui-btn-icon-right .ui-icon { right: 5px; } -.ui-header .ui-btn-icon-top .ui-icon, -.ui-footer .ui-btn-icon-top .ui-icon, -.ui-mini.ui-btn-icon-top .ui-icon, -.ui-mini .ui-btn-icon-top .ui-icon { top: 5px; } -.ui-header .ui-btn-icon-bottom .ui-icon, -.ui-footer .ui-btn-icon-bottom .ui-icon, -.ui-mini.ui-btn-icon-bottom .ui-icon, -.ui-mini .ui-btn-icon-bottom .ui-icon { bottom: 5px; } -/*hiding native button,inputs */ -.ui-btn-hidden { position: absolute; top: 0; left: 0; width: 100%; height: 100%; -webkit-appearance: none; cursor: pointer; background: #fff; background: rgba(255,255,255,0); filter: Alpha(Opacity=0); opacity: .1; font-size: 1px; border: none; text-indent: -9999px; } -/* Fixes IE/WP filter alpha opacity bugs */ -.ui-disabled .ui-btn-hidden { display: none; } -.ui-disabled { z-index: 1; } -.ui-field-contain .ui-btn.ui-submit { margin: 0; } -label.ui-submit { font-size: 16px; line-height: 1.4; font-weight: normal; margin: 0 0 .3em; display: block; } -@media all and (min-width: 28em){ - .ui-field-contain label.ui-submit { vertical-align: top; display: inline-block; width: 20%; margin: 0 2% 0 0; } - .ui-field-contain .ui-btn.ui-submit { width: 78%; display: inline-block; -webkit-box-sizing: border-box; -moz-box-sizing: border-box; -ms-box-sizing: border-box; box-sizing: border-box; } - .ui-hide-label .ui-btn.ui-submit { width: auto; display: block; } -} -.ui-collapsible-inset { margin: .5em 0; } -.ui-collapsible-heading { font-size: 16px; display: block; margin: 0 -15px; padding: 0; position: relative; } -.ui-collapsible-inset .ui-collapsible-heading { margin: 0; } -.ui-collapsible-heading .ui-btn { text-align: left; margin: 0; border-left-width: 0; border-right-width: 0; } -.ui-collapsible-inset .ui-collapsible-heading .ui-btn { border-right-width: 1px; border-left-width: 1px; } -.ui-collapsible-collapsed + .ui-collapsible:not(.ui-collapsible-inset) .ui-collapsible-heading .ui-btn { border-top-width: 0; } -.ui-collapsible-set .ui-collapsible:not(.ui-collapsible-inset) .ui-collapsible-heading .ui-btn { border-top-width: 1px; } -.ui-collapsible-heading .ui-btn-inner { padding-left: 12px; padding-right: 12px; } -.ui-collapsible-heading .ui-btn-icon-left .ui-btn-inner { padding-left: 40px; } -.ui-collapsible-heading .ui-btn-icon-right .ui-btn-inner { padding-right: 40px; } -.ui-collapsible-heading .ui-btn-icon-top .ui-btn-inner, -.ui-collapsible-heading .ui-btn-icon-bottom .ui-btn-inner { text-align: center; } -.ui-collapsible-heading .ui-btn-icon-left.ui-mini .ui-btn-inner { padding-left: 30px; } -.ui-collapsible-heading .ui-btn-icon-right.ui-mini .ui-btn-inner { padding-right: 30px; } -.ui-collapsible-heading .ui-btn span.ui-btn { position: absolute; left: 6px; top: 50%; margin: -12px 0 0 0; width: 20px; height: 20px; padding: 1px 0 1px 2px; text-indent: -9999px; } -.ui-collapsible-heading .ui-btn span.ui-btn .ui-btn-inner { padding: 10px 0; } -.ui-collapsible-heading .ui-btn span.ui-btn .ui-icon { left: 0; margin-top: -10px; } -.ui-collapsible-heading-status { position: absolute; top: -9999px; left: 0; } -.ui-collapsible-content { - display: block; - margin: 0 -15px; - padding: 10px 15px; - border-left-width: 0; - border-right-width: 0; - border-top: none; /* Overrides ui-body-* */ - background-image: none; /* Overrides ui-body-* */ -} -.ui-collapsible-inset .ui-collapsible-content { margin: 0; border-right-width: 1px; border-left-width: 1px; } -.ui-collapsible-content-collapsed { display: none; } -.ui-collapsible-set > .ui-collapsible.ui-corner-all { - -webkit-border-radius: 0; - border-radius: 0; -} -.ui-collapsible-heading, -.ui-collapsible-heading > .ui-btn { - -webkit-border-radius: inherit; - border-radius: inherit; -} -.ui-collapsible-set .ui-collapsible.ui-first-child { - -webkit-border-top-right-radius: inherit; - border-top-right-radius: inherit; - -webkit-border-top-left-radius: inherit; - border-top-left-radius: inherit; -} -.ui-collapsible-content, -.ui-collapsible-set .ui-collapsible.ui-last-child { - -webkit-border-bottom-right-radius: inherit; - border-bottom-right-radius: inherit; - -webkit-border-bottom-left-radius: inherit; - border-bottom-left-radius: inherit; -} -.ui-collapsible-themed-content:not(.ui-collapsible-collapsed) > .ui-collapsible-heading { - -webkit-border-bottom-right-radius: 0; - border-bottom-right-radius: 0; - -webkit-border-bottom-left-radius: 0; - border-bottom-left-radius: 0; -} -.ui-collapsible-set { margin: .5em 0; } -.ui-collapsible-set .ui-collapsible { margin: -1px 0 0; } -.ui-collapsible-set .ui-collapsible.ui-first-child { margin-top: 0; } -.ui-controlgroup, fieldset.ui-controlgroup { padding: 0; margin: .5em 0; zoom: 1; } -.ui-controlgroup.ui-mini, fieldset.ui-controlgroup.ui-mini { margin: .25em 0; } -.ui-field-contain .ui-controlgroup, .ui-field-contain fieldset.ui-controlgroup { margin: 0; } -.ui-bar .ui-controlgroup { margin: 0 5px; } -.ui-controlgroup-label { font-size: 16px; line-height: 1.4; font-weight: normal; margin: 0 0 .4em; } -.ui-controlgroup-controls label.ui-select, -.ui-controlgroup-controls label.ui-submit { position: absolute; left: -9999px; } -.ui-controlgroup li { list-style: none; } -.ui-controlgroup .ui-btn { margin: 0; } -.ui-controlgroup .ui-btn-icon-notext { width: auto; height: auto; top: auto; } -.ui-controlgroup .ui-btn-icon-notext .ui-btn-inner { height: 20px; padding: .6em 20px .6em 20px } -.ui-controlgroup-horizontal .ui-btn-icon-notext .ui-btn-inner { width: 18px; } -.ui-controlgroup.ui-mini .ui-btn-icon-notext .ui-btn-inner, -.ui-header .ui-controlgroup .ui-btn-icon-notext .ui-btn-inner, -.ui-footer .ui-controlgroup .ui-btn-icon-notext .ui-btn-inner { height: 16px; padding: .55em 11px .5em 11px; } -.ui-controlgroup .ui-btn-icon-notext .ui-btn-inner .ui-icon { position: absolute; top: 50%; right: 50%; margin: -9px -9px 0 0; } -.ui-controlgroup-horizontal .ui-btn-inner { text-align: center; } -.ui-controlgroup-horizontal.ui-mini .ui-btn-inner { height: 16px; line-height: 16px; } -.ui-controlgroup .ui-checkbox label, .ui-controlgroup .ui-radio label { font-size: 16px; } -.ui-controlgroup-horizontal .ui-controlgroup-controls:before, -.ui-controlgroup-horizontal .ui-controlgroup-controls:after { content: ""; display: table; } -.ui-controlgroup-horizontal .ui-controlgroup-controls:after { clear: both; } -.ui-controlgroup-horizontal .ui-controlgroup-controls { display: inline-block; vertical-align: middle; zoom: 1; } -.ui-controlgroup-horizontal .ui-controlgroup-controls > .ui-btn, .ui-controlgroup-horizontal .ui-controlgroup-controls li > .ui-btn, -.ui-controlgroup-horizontal .ui-checkbox, .ui-controlgroup-horizontal .ui-radio, -.ui-controlgroup-horizontal .ui-select { float: left; clear: none; margin: 0; } -/* On IE7 the floating selects will be displayed as block if .ui-btn-text has width 100% */ -.ui-controlgroup-horizontal .ui-select .ui-btn-text { width: auto; } -.ui-controlgroup-vertical .ui-btn { border-bottom-width: 0; } -.ui-controlgroup-vertical .ui-btn.ui-last-child { border-bottom-width: 1px; } -.ui-controlgroup-horizontal .ui-btn { border-right-width: 0; } -.ui-controlgroup-horizontal .ui-btn.ui-last-child { border-right-width: 1px; } -.ui-controlgroup .ui-btn-corner-all { - -webkit-border-radius: 0; - border-radius: 0; -} -.ui-controlgroup .ui-controlgroup-controls, -.ui-controlgroup .ui-radio, -.ui-controlgroup .ui-checkbox, -.ui-controlgroup .ui-select, -.ui-controlgroup li { - -webkit-border-radius: inherit; - border-radius: inherit; -} -.ui-controlgroup-vertical .ui-btn.ui-first-child { - -webkit-border-top-left-radius: inherit; - border-top-left-radius: inherit; - -webkit-border-top-right-radius: inherit; - border-top-right-radius: inherit; -} -.ui-controlgroup-vertical .ui-btn.ui-last-child { - -webkit-border-bottom-left-radius: inherit; - border-bottom-left-radius: inherit; - -webkit-border-bottom-right-radius: inherit; - border-bottom-right-radius: inherit; -} -.ui-controlgroup-horizontal .ui-btn.ui-first-child { - -webkit-border-top-left-radius: inherit; - border-top-left-radius: inherit; - -webkit-border-bottom-left-radius: inherit; - border-bottom-left-radius: inherit; -} -.ui-controlgroup-horizontal .ui-btn.ui-last-child { - -webkit-border-top-right-radius: inherit; - border-top-right-radius: inherit; - -webkit-border-bottom-right-radius: inherit; - border-bottom-right-radius: inherit; -} -.ui-controlgroup .ui-shadow:not(.ui-focus) { - -moz-box-shadow: none; - -webkit-box-shadow: none; - box-shadow: none; -} -@media all and (min-width: 28em){ - .ui-field-contain .ui-controlgroup-label { vertical-align: top; display: inline-block; width: 20%; margin: 0 2% 0 0; } - .ui-field-contain .ui-controlgroup-controls { width: 78%; display: inline-block; } - .ui-field-contain .ui-controlgroup .ui-select { width: 100%; display: block; } - .ui-field-contain .ui-controlgroup-horizontal .ui-select { width: auto; } - .ui-hide-label .ui-controlgroup-controls { width: 100%; } -} -.ui-dialog { - background: none !important; /* this is to ensure that dialog theming does not apply (by default at least) on the page div */ -} -.ui-dialog-contain { - width: 92.5%; - max-width: 500px; - margin: 10% auto 15px auto; - padding: 0; - position: relative; - top: -15px; -} -.ui-dialog-contain > .ui-header, -.ui-dialog-contain > .ui-content, -.ui-dialog-contain > .ui-footer { - display: block; - position: relative; - width: auto; - margin: 0; -} -.ui-dialog-contain > .ui-header { - border: none; - overflow: hidden; - z-index: 10; - padding: 0; -} -.ui-dialog-contain > .ui-content { - padding: 15px; -} -.ui-dialog-contain > .ui-footer { - z-index: 10; - padding: 0 15px; -} -.ui-popup-open .ui-header-fixed, -.ui-popup-open .ui-footer-fixed { - position: absolute !important; /* See line #553 of popup.js */ -} -.ui-popup-screen { - background-image: url(data:image/gif;base64,R0lGODlhAQABAID/AMDAwAAAACH5BAEAAAAALAAAAAABAAEAAAICRAEAOw==); /* Necessary to set some form of background to ensure element is clickable in IE6/7. While legacy IE won't understand the data-URI'd image, it ensures no additional requests occur in all other browsers with little overhead. */ - top: 0; - left: 0; - right: 0; - bottom: 1px; - position: absolute; - filter: Alpha(Opacity=0); - opacity: 0; - z-index: 1099; -} -.ui-popup-screen.in { - opacity: 0.5; - filter: Alpha(Opacity=50); -} -.ui-popup-screen.out { - opacity: 0; - filter: Alpha(Opacity=0); -} -.ui-popup-container { - z-index: 1100; - display: inline-block; - position: absolute; - padding: 0; - outline: 0; -} -.ui-popup { - position: relative; -} -.ui-popup.ui-content, -.ui-popup .ui-content { - overflow: visible; -} -.ui-popup > p, -.ui-popup > h1, -.ui-popup > h2, -.ui-popup > h3, -.ui-popup > h4, -.ui-popup > h5, -.ui-popup > h6 { - margin: .5em 7px; -} -.ui-popup > span { - display: block; - margin: .5em 7px; -} -.ui-popup .ui-title { - font-size: 16px; - font-weight: bold; - margin-top: .5em; - margin-bottom: .5em; -} -.ui-popup-container .ui-content > p, -.ui-popup-container .ui-content > h1, -.ui-popup-container .ui-content > h2, -.ui-popup-container .ui-content > h3, -.ui-popup-container .ui-content > h4, -.ui-popup-container .ui-content > h5, -.ui-popup-container .ui-content > h6 { - margin: .5em 0; -} -.ui-popup-container .ui-content > span { - margin: 0; -} -.ui-popup-container .ui-content > p:first-child, -.ui-popup-container .ui-content > h1:first-child, -.ui-popup-container .ui-content > h2:first-child, -.ui-popup-container .ui-content > h3:first-child, -.ui-popup-container .ui-content > h4:first-child, -.ui-popup-container .ui-content > h5:first-child, -.ui-popup-container .ui-content > h6:first-child { - margin-top: 0; -} -.ui-popup-container .ui-content > p:last-child, -.ui-popup-container .ui-content > h1:last-child, -.ui-popup-container .ui-content > h2:last-child, -.ui-popup-container .ui-content > h3:last-child, -.ui-popup-container .ui-content > h4:last-child, -.ui-popup-container .ui-content > h5:last-child, -.ui-popup-container .ui-content > h6:last-child { - margin-bottom: 0; -} -.ui-popup > img { - width: auto; - height: auto; - max-width: 100%; - max-height: 100%; - vertical-align: middle; -} -.ui-popup:not(.ui-content) > img:only-child, -.ui-popup:not(.ui-content) > .ui-btn-left:first-child + img:last-child, -.ui-popup:not(.ui-content) > .ui-btn-right:first-child + img:last-child { - -webkit-border-radius: inherit; - border-radius: inherit; -} -.ui-popup iframe { - vertical-align: middle; -} -@media all and (min-width: 28em){ - .ui-popup .ui-field-contain label.ui-submit, - .ui-popup .ui-field-contain .ui-controlgroup-label, - .ui-popup .ui-field-contain label.ui-select, - .ui-popup .ui-field-contain label.ui-input-text { - font-size: 16px; line-height: 1.4; display: block; font-weight: normal; margin: 0 0 .3em; - } - .ui-popup .ui-field-contain .ui-btn.ui-submit, - .ui-popup .ui-field-contain .ui-controlgroup-controls, - .ui-popup .ui-field-contain .ui-select, - .ui-popup .ui-field-contain input.ui-input-text, - .ui-popup .ui-field-contain textarea.ui-input-text, - .ui-popup .ui-field-contain .ui-input-search { - width: 100%; display: block; - } -} -.ui-popup > .ui-btn-left, -.ui-popup > .ui-btn-right { - position: absolute; - top: -9px; - margin: 0; - z-index: 1101; -} -.ui-popup > .ui-btn-left { left: -9px; } -.ui-popup > .ui-btn-right { right: -9px; } -.ui-popup-hidden { top: -99999px; left: -9999px; } -.ui-checkbox, .ui-radio { position: relative; clear: both; margin: 0; z-index: 1; } -.ui-checkbox .ui-btn, .ui-radio .ui-btn { text-align: left; z-index: 2; } -.ui-controlgroup .ui-checkbox .ui-btn, .ui-controlgroup .ui-radio .ui-btn { margin: 0; } -.ui-checkbox .ui-btn-inner, .ui-radio .ui-btn-inner { white-space: normal; } -.ui-checkbox .ui-btn-icon-left .ui-btn-inner,.ui-radio .ui-btn-icon-left .ui-btn-inner { padding-left: 45px; } -.ui-checkbox .ui-mini.ui-btn-icon-left .ui-btn-inner,.ui-radio .ui-mini.ui-btn-icon-left .ui-btn-inner { padding-left: 36px; } -.ui-checkbox .ui-btn-icon-right .ui-btn-inner, .ui-radio .ui-btn-icon-right .ui-btn-inner { padding-right: 45px; } -.ui-checkbox .ui-mini.ui-btn-icon-right .ui-btn-inner, .ui-radio .ui-mini.ui-btn-icon-right .ui-btn-inner { padding-right: 36px; } -.ui-checkbox .ui-btn-icon-top .ui-btn-inner, .ui-radio .ui-btn-icon-top .ui-btn-inner { padding-right: 0; padding-left: 0; text-align: center; } -.ui-checkbox .ui-btn-icon-bottom .ui-btn-inner, .ui-radio .ui-btn-icon-bottom .ui-btn-inner { padding-right: 0; padding-left: 0; text-align: center; } -.ui-checkbox .ui-icon, .ui-radio .ui-icon { top: 1.1em; } -.ui-checkbox .ui-btn-icon-left .ui-icon, .ui-radio .ui-btn-icon-left .ui-icon { left: 15px; } -.ui-checkbox .ui-mini.ui-btn-icon-left .ui-icon, .ui-radio .ui-mini.ui-btn-icon-left .ui-icon { left: 9px; } -.ui-checkbox .ui-btn-icon-right .ui-icon, .ui-radio .ui-btn-icon-right .ui-icon { right: 15px; } -.ui-checkbox .ui-mini.ui-btn-icon-right .ui-icon, .ui-radio .ui-mini.ui-btn-icon-right .ui-icon { right: 9px; } -.ui-checkbox .ui-btn-icon-top .ui-icon, .ui-radio .ui-btn-icon-top .ui-icon { top: 10px; } -.ui-checkbox .ui-btn-icon-bottom .ui-icon, .ui-radio .ui-btn-icon-bottom .ui-icon { top: auto; bottom: 10px; } -.ui-checkbox .ui-btn-icon-right .ui-icon, .ui-radio .ui-btn-icon-right .ui-icon { right: 15px; } -.ui-checkbox .ui-mini.ui-btn-icon-right .ui-icon, .ui-radio .ui-mini.ui-btn-icon-right .ui-icon { right: 9px; } -.ui-controlgroup-horizontal .ui-checkbox .ui-icon, -.ui-controlgroup-horizontal .ui-radio .ui-icon { display: none; } -.ui-controlgroup-horizontal .ui-checkbox .ui-btn-inner, -.ui-controlgroup-horizontal .ui-radio .ui-btn-inner { padding: .6em 20px; } -.ui-controlgroup-horizontal .ui-checkbox .ui-mini .ui-btn-inner, -.ui-controlgroup-horizontal .ui-radio .ui-mini .ui-btn-inner { padding: .55em 11px .5em; } -/* input, label positioning */ -.ui-checkbox input,.ui-radio input { position:absolute; left:20px; top:50%; width: 10px; height: 10px; margin:-5px 0 0 0; outline: 0 !important; z-index: 1; } -.ui-field-contain, fieldset.ui-field-contain { padding: .8em 0; margin: 0; border-width: 0 0 1px 0; overflow: visible; } -.ui-field-contain:last-child { border-bottom-width: 0; } -.ui-field-contain { max-width: 100%; } /* This prevents horizontal scrollbar in IE7 */ -@media all and (min-width: 28em){ - .ui-field-contain, .ui-mobile fieldset.ui-field-contain { border-width: 0; padding: 0; margin: 1em 0; } -} -.ui-select { display: block; position: relative; } -.ui-select select { position: absolute; left: -9999px; top: -9999px; } -.ui-select .ui-btn { opacity: 1; } -.ui-field-contain .ui-select .ui-btn { margin: 0; } -/* Fixes #2588: When Windows Phone 7.5 (Mango) tries to calculate a numeric opacity for a select (including "inherit") without explicitly specifying an opacity on the parent to give it context, a bug appears where clicking elsewhere on the page after opening the select will open the select again. */ -.ui-select .ui-btn select { cursor: pointer; -webkit-appearance: none; left: 0; top:0; width: 100%; min-height: 1.5em; min-height: 100%; height: 3em; max-height: 100%; filter: Alpha(Opacity=0); opacity: 0; z-index: 2; } -.ui-select .ui-disabled { opacity: .3; } -/* Display none because of issues with IE/WP's filter alpha opacity */ -.ui-select .ui-disabled select { display: none; } -@-moz-document url-prefix() { .ui-select .ui-btn select { opacity: 0.0001; }} -.ui-select .ui-btn.ui-select-nativeonly { border-radius: 0; border: 0; } -.ui-select .ui-btn.ui-select-nativeonly select { opacity: 1; text-indent: 0; display: block; } -.ui-select .ui-disabled.ui-select-nativeonly .ui-btn-inner { opacity: 0; } -.ui-select .ui-btn-icon-right .ui-btn-inner, .ui-select .ui-li-has-count .ui-btn-inner { padding-right: 45px; } -.ui-select .ui-mini.ui-btn-icon-right .ui-btn-inner { padding-right: 32px; } -.ui-select .ui-btn-icon-right.ui-li-has-count .ui-btn-inner { padding-right: 80px; } -.ui-select .ui-mini.ui-btn-icon-right.ui-li-has-count .ui-btn-inner { padding-right: 67px; } -.ui-select .ui-btn-icon-right .ui-icon { right: 15px; } -.ui-select .ui-mini.ui-btn-icon-right .ui-icon { right: 7px; } -.ui-select .ui-btn-icon-right.ui-li-has-count .ui-li-count { right: 45px; } -.ui-select .ui-mini.ui-btn-icon-right.ui-li-has-count .ui-li-count { right: 32px; } -/* labels */ -label.ui-select { font-size: 16px; line-height: 1.4; font-weight: normal; margin: 0 0 .3em; display: block; } -/*listbox*/ -.ui-select .ui-btn-text, .ui-selectmenu .ui-btn-text { display: block; min-height: 1em; overflow: hidden !important; -/* This !important is required for iPad Safari specifically. See https://github.com/jquery/jquery-mobile/issues/2647 */ } -.ui-select .ui-btn-text { text-overflow: ellipsis; } -.ui-selectmenu { padding: 6px; min-width: 160px; } -.ui-selectmenu .ui-listview { margin: 0; } -.ui-selectmenu .ui-btn.ui-li-divider { cursor: default; } -.ui-screen-hidden, .ui-selectmenu-list .ui-li .ui-icon { display: none; } -.ui-selectmenu-list .ui-li .ui-icon { display: block; } -.ui-li.ui-selectmenu-placeholder { display: none; } -.ui-selectmenu .ui-header { margin: 0; padding: 0; } -.ui-selectmenu.ui-popup .ui-header { -webkit-border-top-left-radius: 0; border-top-left-radius: 0; -webkit-border-top-right-radius: 0; border-top-right-radius: 0; } -.ui-selectmenu .ui-header .ui-title { margin: 0.6em 46px 0.8em; } -@media all and (min-width: 28em){ - .ui-field-contain label.ui-select { vertical-align: top; display: inline-block; width: 20%; margin: 0 2% 0 0; } - .ui-field-contain .ui-select { width: 78%; display: inline-block; } - .ui-hide-label .ui-select { width: 100%; } -} -/* when no placeholder is defined in a multiple select, the header height doesn't even extend past the close button. this shim's content in there */ -.ui-selectmenu .ui-header h1:after { content: '.'; visibility: hidden; } -label.ui-input-text { font-size: 16px; line-height: 1.4; display: block; font-weight: normal; margin: 0 0 .3em; } -input.ui-input-text, textarea.ui-input-text { background-image: none; padding: .4em; margin: .5em 0; min-height: 1.4em; line-height: 1.4em; font-size: 16px; display: block; width: 100%; outline: 0; } -input.ui-mini, .ui-mini input, textarea.ui-mini { font-size: 14px; } -div.ui-input-text input.ui-input-text, div.ui-input-text textarea.ui-input-text, -.ui-input-search input.ui-input-text { border: none; width: 100%; padding: .4em 0; margin: 0; display: block; background: transparent none; outline: 0 !important; } -.ui-input-search, div.ui-input-text { margin: .5em 0; background-image: none; position: relative; } -.ui-input-search { padding: 0 30px; } -div.ui-input-text { padding: 0 .4em; } -div.ui-input-has-clear { padding: 0 30px 0 .4em; } -input.ui-input-text.ui-mini, textarea.ui-input-text.ui-mini, -.ui-input-search.ui-mini, div.ui-input-text.ui-mini { margin: .25em 0; } -.ui-field-contain input.ui-input-text, .ui-field-contain textarea.ui-input-text, -.ui-field-contain .ui-input-search, .ui-field-contain div.ui-input-text { margin: 0; } -textarea.ui-input-text { -webkit-box-sizing: border-box; -moz-box-sizing: border-box; -ms-box-sizing: border-box; box-sizing: border-box; } -input.ui-input-text { -webkit-appearance: none; } -textarea.ui-input-text { height: 50px; -webkit-transition: height 200ms linear; -moz-transition: height 200ms linear; -o-transition: height 200ms linear; transition: height 200ms linear; } -textarea.ui-mini { height: 45px; } -.ui-icon-searchfield:after { position: absolute; left: 7px; top: 50%; margin-top: -9px; content: ""; width: 18px; height: 18px; opacity: .5; } -.ui-input-search .ui-input-clear, .ui-input-text .ui-input-clear { position: absolute; right: 0; top: 50%; margin-top: -13px; } -.ui-mini .ui-input-clear { right: -3px; } -.ui-input-search .ui-input-clear-hidden, .ui-input-text .ui-input-clear-hidden { display: none; } -/* Resolves issue #5166: Added to support issue introduced in Firefox 15. We can likely remove this in the future. */ -input::-moz-placeholder, textarea::-moz-placeholder { color: #aaa; } -/* Resolves issue #5131: Width of textinput depends on its type, for Android 4.1 */ -input[type=number]::-webkit-outer-spin-button { margin: 0; } -@media all and (min-width: 28em){ - .ui-field-contain label.ui-input-text { vertical-align: top; display: inline-block; width: 20%; margin: 0 2% 0 0 } - .ui-field-contain input.ui-input-text, - .ui-field-contain textarea.ui-input-text, - .ui-field-contain .ui-input-search, - .ui-field-contain div.ui-input-text { width: 78%; display: inline-block; } - .ui-field-contain .ui-input-search, - .ui-field-contain div.ui-input-text { -webkit-box-sizing: border-box; -moz-box-sizing: border-box; -ms-box-sizing: border-box; box-sizing: border-box; } - .ui-hide-label input.ui-input-text, - .ui-hide-label textarea.ui-input-text, - .ui-hide-label .ui-input-search, - .ui-hide-label div.ui-input-text, - .ui-input-search input.ui-input-text, - div.ui-input-text input.ui-input-text { width: 100%; } -} -.ui-rangeslider { - zoom: 1; - margin: 0; -} -.ui-rangeslider:before, -.ui-rangeslider:after { - content: ""; - display: table; -} -.ui-rangeslider:after { - clear: both; -} -/* Margin-top/bottom: .5em * 16px/14px to make it equal to ui-rangeslider-sliders margin (input font-size is 14px) */ -.ui-rangeslider input.ui-input-text.ui-slider-input { - margin: .57143em 0; -} -.ui-rangeslider.ui-mini input.ui-slider-input { - margin: .28571em 0; -} -.ui-rangeslider input.ui-slider-input.ui-rangeslider-last { - float: right; -} -.ui-rangeslider .ui-rangeslider-sliders { - position: relative; - overflow: visible; - height: 30px; - margin: .5em 68px; -} -.ui-rangeslider.ui-mini .ui-rangeslider-sliders { - margin: .25em 68px; -} -.ui-field-contain .ui-rangeslider input.ui-slider-input, -.ui-field-contain .ui-rangeslider.ui-mini input.ui-slider-input, -.ui-field-contain .ui-rangeslider .ui-rangeslider-sliders, -.ui-field-contain .ui-rangeslider.ui-mini .ui-rangeslider-sliders { - margin-top: 0; - margin-bottom: 0; -} -.ui-rangeslider .ui-rangeslider-sliders .ui-slider-track { - position: absolute; - top: 6px; - right: 0; - left: 0; - margin: 0; -} -.ui-rangeslider.ui-mini .ui-rangeslider-sliders .ui-slider-track { - top: 8px; -} -.ui-rangeslider .ui-slider-track:first-child .ui-slider-bg { - display: none; -} -.ui-rangeslider .ui-rangeslider-sliders .ui-slider-track:first-child { - background-color: transparent; - background: none; - border-width: 0; - height: 0; -} -/* this makes ie6 and ie7 set height to 0 to fix z-index problem */ -html >/**/body .ui-rangeslider .ui-rangeslider-sliders .ui-slider-track:first-child { - height: 15px; - border-width: 1px; -} -html >/**/body .ui-rangeslider.ui-mini .ui-rangeslider-sliders .ui-slider-track:first-child { - height: 12px; -} -@media all and (min-width: 28em){ - .ui-field-contain .ui-rangeslider label.ui-slider { - float: left; - } - .ui-field-contain .ui-rangeslider input.ui-slider-input { - position: relative; - z-index: 1; - } - .ui-field-contain .ui-rangeslider input.ui-slider-input.ui-rangeslider-first, - .ui-field-contain .ui-rangeslider.ui-mini input.ui-slider-input.ui-rangeslider-first { - margin-right: 17px; - } - .ui-field-contain .ui-rangeslider .ui-rangeslider-sliders, - .ui-field-contain .ui-rangeslider.ui-mini .ui-rangeslider-sliders { - float: left; - width: 78%; - margin: 0 -68px; - } - .ui-field-contain .ui-rangeslider .ui-slider-track, - .ui-field-contain .ui-rangeslider.ui-mini .ui-slider-track { - right: 68px; - left: 68px; - } - .ui-field-contain.ui-hide-label .ui-rangeslider input.ui-slider-input.ui-rangeslider-first { - margin: 0; - } - .ui-field-contain.ui-hide-label .ui-rangeslider .ui-rangeslider-sliders, - .ui-field-contain.ui-hide-label .ui-rangeslider.ui-mini .ui-rangeslider-sliders { - width: auto; - float: none; - margin: 0 68px; - } - .ui-field-contain.ui-hide-label .ui-rangeslider .ui-slider-track, - .ui-field-contain.ui-hide-label .ui-rangeslider.ui-mini .ui-slider-track { - right: 0; - left: 0; - } -} -.ui-listview { margin: 0; } -ol.ui-listview, ol.ui-listview .ui-li-divider { counter-reset: listnumbering; } -.ui-content .ui-listview, .ui-panel-inner > .ui-listview { margin: -15px; } -.ui-collapsible-content > .ui-listview { margin: -10px -15px; } -.ui-content .ui-listview-inset, .ui-panel-inner .ui-listview-inset { margin: 1em 0; } -.ui-collapsible-content .ui-listview-inset { margin: .5em 0; } -.ui-listview, .ui-li { list-style: none; padding: 0; } -.ui-li, .ui-li.ui-field-contain { display: block; margin: 0; position: relative; overflow: visible; text-align: left; border-width: 0; border-top-width: 1px; } -.ui-li.ui-btn, .ui-li.ui-field-contain, .ui-li-divider, .ui-li-static { margin: 0; } -.ui-listview-inset .ui-li { border-right-width: 1px; border-left-width: 1px; } -.ui-li.ui-last-child, .ui-li.ui-field-contain.ui-last-child { border-bottom-width: 1px; } -.ui-collapsible-content > .ui-listview:not(.ui-listview-inset) > .ui-li.ui-first-child { border-top-width: 0; } -.ui-collapsible-themed-content .ui-listview:not(.ui-listview-inset) > .ui-li.ui-last-child { border-bottom-width: 0; } -.ui-li .ui-btn-text a.ui-link-inherit { text-overflow: ellipsis; overflow: hidden; white-space: nowrap; } -.ui-li-static { background-image: none; } -.ui-li-divider { padding: .5em 15px; font-size: 14px; font-weight: bold; } -ol.ui-listview .ui-link-inherit:before, ol.ui-listview .ui-li-static:before, .ui-li-dec { font-size: .8em; display: inline-block; padding-right: .3em; font-weight: normal; counter-increment: listnumbering; content: counter(listnumbering) ". "; } -ol.ui-listview .ui-li-jsnumbering:before { content: "" !important; } /* to avoid chance of duplication */ -.ui-listview .ui-li > .ui-btn-text { - -webkit-border-radius: inherit; - border-radius: inherit; -} -.ui-listview > .ui-li.ui-first-child, -.ui-listview .ui-btn.ui-first-child > .ui-li > .ui-btn-text > .ui-link-inherit { - -webkit-border-top-right-radius: inherit; - border-top-right-radius: inherit; - -webkit-border-top-left-radius: inherit; - border-top-left-radius: inherit; -} -.ui-listview > .ui-li.ui-last-child, -.ui-listview .ui-btn.ui-last-child > .ui-li > .ui-btn-text > .ui-link-inherit, -.ui-collapsible-content > .ui-listview:not(.ui-listview-inset), -.ui-collapsible-content > .ui-listview:not(.ui-listview-inset) .ui-li.ui-last-child { - -webkit-border-bottom-right-radius: inherit; - border-bottom-right-radius: inherit; - -webkit-border-bottom-left-radius: inherit; - border-bottom-left-radius: inherit; -} -.ui-listview > .ui-li.ui-first-child .ui-li-link-alt { - -webkit-border-top-right-radius: inherit; - border-top-right-radius: inherit; -} -.ui-listview > .ui-li.ui-last-child .ui-li-link-alt { - -webkit-border-bottom-right-radius: inherit; - border-bottom-right-radius: inherit; -} -.ui-listview > .ui-li.ui-first-child .ui-li-thumb:not(.ui-li-icon) { - -webkit-border-top-left-radius: inherit; - border-top-left-radius: inherit; -} -.ui-listview > .ui-li.ui-last-child .ui-li-thumb:not(.ui-li-icon) { - -webkit-border-bottom-left-radius: inherit; - border-bottom-left-radius: inherit; -} -.ui-li>.ui-btn-inner { display: block; position: relative; padding: 0; } -.ui-li .ui-btn-inner a.ui-link-inherit, .ui-li-static.ui-li { padding: .7em 15px; display: block; } -.ui-li-has-thumb .ui-btn-inner a.ui-link-inherit, .ui-li-static.ui-li-has-thumb { min-height: 59px; padding-left: 100px; } -.ui-li-has-icon .ui-btn-inner a.ui-link-inherit, .ui-li-static.ui-li-has-icon { min-height: 20px; padding-left: 40px; } -.ui-li-has-count .ui-btn-inner a.ui-link-inherit, .ui-li-static.ui-li-has-count, .ui-li-divider.ui-li-has-count { padding-right: 45px; } -.ui-li-has-arrow .ui-btn-inner a.ui-link-inherit, .ui-li-static.ui-li-has-arrow { padding-right: 40px; } -.ui-li-has-arrow.ui-li-has-count .ui-btn-inner a.ui-link-inherit, .ui-li-static.ui-li-has-arrow.ui-li-has-count { padding-right: 75px; } -.ui-li-heading { font-size: 16px; font-weight: bold; display: block; margin: .6em 0; text-overflow: ellipsis; overflow: hidden; white-space: nowrap; } -.ui-li-desc { font-size: 12px; font-weight: normal; display: block; margin: -.5em 0 .6em; text-overflow: ellipsis; overflow: hidden; white-space: nowrap; } -ol.ui-listview > .ui-li .ui-li-heading { display: inline-block; width: 100%; margin-left: -1.3em; text-indent: 1.3em; vertical-align: middle; } -ol.ui-listview > .ui-li .ui-li-desc:not(.ui-li-aside) { text-indent: 1.55em; } -.ui-li-thumb, .ui-listview .ui-li-icon { position: absolute; left: 1px; top: 0; max-height: 80px; max-width: 80px; } -.ui-listview .ui-li-icon { max-height: 16px; max-width: 16px; left: 10px; top: .9em; } -.ui-li-thumb, .ui-listview .ui-li-icon, .ui-li-content { float: left; margin-right: 10px; } -.ui-li-aside { float: right; width: 50%; text-align: right; margin: .3em 0; } -@media all and (min-width: 480px){ - .ui-li-aside { width: 45%; } -} -.ui-li-divider { cursor: default; } -.ui-li-has-alt .ui-btn-inner a.ui-link-inherit, .ui-li-static.ui-li-has-alt { padding-right: 53px; } -.ui-li-has-alt.ui-li-has-count .ui-btn-inner a.ui-link-inherit, .ui-li-static.ui-li-has-alt.ui-li-has-count { padding-right: 88px; } -.ui-li-has-count .ui-li-count { position: absolute; font-size: 11px; font-weight: bold; padding: .2em .5em; top: 50%; margin-top: -.9em; right: 10px; } -.ui-li-has-count.ui-li-divider .ui-li-count, .ui-li-has-count .ui-link-inherit .ui-li-count { margin-top: -.95em; } -.ui-li-has-arrow.ui-li-has-count .ui-li-count { right: 40px; } -.ui-li-has-alt.ui-li-has-count .ui-li-count { right: 53px; } -.ui-li-link-alt { position: absolute; width: 40px; height: 100%; border-width: 0; border-left-width: 1px; top: 0; right: 0; margin: 0; padding: 0; z-index: 2; } -.ui-li-link-alt .ui-btn { overflow: hidden; position: absolute; right: 8px; top: 50%; margin: -13px 0 0 0; border-bottom-width: 1px; z-index: -1;} -.ui-li-link-alt .ui-btn-inner { padding: 0; height: 100%; position: absolute; width: 100%; top: 0; left: 0;} -.ui-li-link-alt .ui-btn .ui-icon { right: 50%; margin-right: -9px; } -.ui-li-link-alt .ui-btn-icon-notext .ui-btn-inner .ui-icon { position: absolute; top: 50%; margin-top: -9px; } -.ui-listview * .ui-btn-inner > .ui-btn > .ui-btn-inner { border-top: 0; } -.ui-listview-filter { border-width: 0; overflow: hidden; margin: -15px -15px 15px -15px; } -.ui-collapsible-content .ui-listview-filter { margin: -10px -15px 10px -15px; border-bottom: inherit; } -.ui-listview-filter-inset { margin: -15px -5px; background: transparent; } -.ui-collapsible-content .ui-listview-filter-inset { margin: -5px; border-bottom-width: 0; } -.ui-listview-filter .ui-input-search { margin: 5px; width: auto; display: block; } -.ui-li.ui-screen-hidden{ display:none; } -/* Odd iPad positioning issue. */ -@media only screen and (min-device-width: 768px) and (max-device-width: 1024px) { - .ui-li .ui-btn-text { overflow: visible; } -} -label.ui-slider { - font-size: 16px; - line-height: 1.4; - font-weight: normal; - margin: 0; - display: block; -} -.ui-field-contain label.ui-slider { - margin-bottom: .4em; -} -div.ui-slider { - height: 30px; - margin: .5em 0; - zoom: 1; -} -div.ui-slider.ui-mini { - margin: .25em 0; -} -.ui-field-contain div.ui-slider, -.ui-field-contain div.ui-slider.ui-mini { - margin: 0; -} -div.ui-slider:before, div.ui-slider:after { - content: ""; - display: table; -} -div.ui-slider:after { - clear: both; -} -/* High level of specificity to override Textinput CSS. */ -input.ui-input-text.ui-slider-input { - display: block; - float: left; - margin: 0; - padding: 4px; - width: 40px; - height: 22px; - line-height: 22px; - font-size: 14px; - border-width: 0; - background-image: none; - font-weight: bold; - text-align: center; - vertical-align: text-bottom; - outline: 0; - -webkit-box-sizing: content-box; - -moz-box-sizing: content-box; - -ms-box-sizing: content-box; - box-sizing: content-box; -} -.ui-slider-input::-webkit-outer-spin-button, -.ui-slider-input::-webkit-inner-spin-button { - -webkit-appearance: none; - margin: 0; -} -.ui-slider-track, -.ui-slider-switch { - position: relative; - overflow: visible; - height: 15px; - margin: 0 15px 0 68px; - top: 6px; -} -.ui-slider-track.ui-mini { - height: 12px; - top: 8px; -} -.ui-slider-bg { - border: none; - height: 100%; -} -/* High level of specificity to override button margins in grids */ -.ui-slider-track .ui-btn.ui-slider-handle, -.ui-slider-switch .ui-btn.ui-slider-handle { - position: absolute; - z-index: 1; - top: 50%; - width: 28px; - height: 28px; - margin: -15px 0 0 -15px; - outline: 0; -} -.ui-slider-track.ui-mini .ui-slider-handle { - height: 14px; - width: 14px; - margin: -8px 0 0 -7px; -} -.ui-slider-handle .ui-btn-inner { - padding: 0; - height: 100%; -} -.ui-slider-track.ui-mini .ui-slider-handle .ui-btn-inner { - height: 30px; - width: 30px; - padding: 0; - margin: -9px 0 0 -9px; - border-top: none; -} -select.ui-slider-switch { - display: none; -} -div.ui-slider-switch { - display: inline-block; - height: 32px; - width: 5.8em; - margin: .5em 0; - top: 0; -} -/* reset the clearfix */ -div.ui-slider-switch:before, div.ui-slider-switch:after { - display: none; - clear: none; -} -div.ui-slider-switch.ui-mini { - width: 5em; - height: 29px; - margin: .25em 0; - top: 0; -} -.ui-field-contain .ui-slider-switch, -.ui-field-contain .ui-slider-switch.ui-mini { - margin: 0; -} -.ui-slider-inneroffset { - margin: 0 16px; - position: relative; - z-index: 1; -} -.ui-slider-switch.ui-mini .ui-slider-inneroffset { - margin: 0 15px 0 14px; -} -.ui-slider-switch .ui-btn.ui-slider-handle { - margin: 1px 0 0 -15px; -} -.ui-slider-switch.ui-mini .ui-slider-handle { - width: 25px; - height: 25px; - margin: 1px 0 0 -13px; - padding: 0; -} -.ui-slider-handle-snapping { - -webkit-transition: left 70ms linear; - -moz-transition: left 70ms linear; -} -.ui-slider-switch.ui-mini .ui-slider-handle .ui-btn-inner { - height: 30px; - width: 30px; - padding: 0; - margin: 0; - border-top: none; -} -.ui-slider-switch .ui-slider-label { - position: absolute; - text-align: center; - width: 100%; - overflow: hidden; - font-size: 16px; - top: 0; - line-height: 2; - min-height: 100%; - border-width: 0; - white-space: nowrap; - cursor: pointer; -} -.ui-slider-switch.ui-mini .ui-slider-label { - font-size: 14px; -} -.ui-slider-switch .ui-slider-label-a { - z-index: 1; - left: 0; - text-indent: -1.5em; -} -.ui-slider-switch .ui-slider-label-b { - z-index: 0; - right: 0; - text-indent: 1.5em; -} -@media all and (min-width: 28em){ - .ui-field-contain label.ui-slider { - vertical-align: top; - display: inline-block; - width: 20%; - margin: 0 2% 0 0; - } - .ui-field-contain div.ui-slider { - display: inline-block; - width: 78%; - } - .ui-field-contain.ui-hide-label div.ui-slider { - display: block; - width: auto; - } - .ui-field-contain div.ui-slider-switch, - .ui-field-contain.ui-hide-label div.ui-slider-switch { - display: inline-block; - width: 5.8em; - } - .ui-field-contain div.ui-slider-switch.ui-mini { - width: 5em; - } -} -.ui-table { - border: 0; - border-collapse: collapse; - padding: 0; - width: 100%; -} -.ui-table th, -.ui-table td { - line-height: 1.5em; - text-align: left; - padding: .4em .5em; - vertical-align:top; -} -.ui-table th .ui-btn, -.ui-table td .ui-btn { - line-height: normal; -} -.ui-table th { - font-weight: bold; -} -.ui-table caption { - text-align:left; - margin-bottom:1.4em; - opacity: .5; -} -/* Add strokes between each row */ -.table-stroke thead th { - border-bottom: 1px solid #d6d6d6; /* non-RGBA fallback */ - border-bottom: 1px solid rgba(0, 0, 0, .1); -} -.table-stroke tbody th, -.table-stroke tbody td { - border-bottom: 1px solid #e6e6e6; /* non-RGBA fallback */ - border-bottom: 1px solid rgba(0, 0, 0, .05); -} -/* Add alternating row stripes */ -.table-stripe tbody tr:nth-child(odd) td, -.table-stripe tbody tr:nth-child(odd) th { - background-color: #eeeeee; /* non-RGBA fallback */ - background-color: rgba(0,0,0,0.04); -} -/* Add stroke to the header and last item */ -.table-stripe thead th, -.table-stripe tbody tr:last-child { - border-bottom: 1px solid #d6d6d6; /* non-RGBA fallback */ - border-bottom: 1px solid rgba(0, 0, 0, .1); -} -/* - Styles for the table columntoggle mode -*/ -.ui-table-columntoggle-btn { - float: right; - margin-bottom:.8em; -} -/* Remove top/bottom margins around the fieldcontain on check list */ -.ui-table-columntoggle-popup fieldset { - margin:0; -} -/* Hide all prioritized columns by default */ -@media only all { - th.ui-table-priority-6, - td.ui-table-priority-6, - th.ui-table-priority-5, - td.ui-table-priority-5, - th.ui-table-priority-4, - td.ui-table-priority-4, - th.ui-table-priority-3, - td.ui-table-priority-3, - th.ui-table-priority-2, - td.ui-table-priority-2, - th.ui-table-priority-1, - td.ui-table-priority-1 { - display: none; - } -} -/* Preset breakpoints if ".ui-responsive" class added to table */ -/* Show priority 1 at 320px (20em x 16px) */ -@media screen and (min-width: 20em) { - .ui-table-columntoggle.ui-responsive th.ui-table-priority-1, - .ui-table-columntoggle.ui-responsive td.ui-table-priority-1 { - display: table-cell; - } -} -/* Show priority 2 at 480px (30em x 16px) */ -@media screen and (min-width: 30em) { - .ui-table-columntoggle.ui-responsive th.ui-table-priority-2, - .ui-table-columntoggle.ui-responsive td.ui-table-priority-2 { - display: table-cell; - } -} -/* Show priority 3 at 640px (40em x 16px) */ -@media screen and (min-width: 40em) { - .ui-table-columntoggle.ui-responsive th.ui-table-priority-3, - .ui-table-columntoggle.ui-responsive td.ui-table-priority-3 { - display: table-cell; - } -} -/* Show priority 4 at 800px (50em x 16px) */ -@media screen and (min-width: 50em) { - .ui-table-columntoggle.ui-responsive th.ui-table-priority-4, - .ui-table-columntoggle.ui-responsive td.ui-table-priority-4 { - display: table-cell; - } -} -/* Show priority 5 at 960px (60em x 16px) */ -@media screen and (min-width: 60em) { - .ui-table-columntoggle.ui-responsive th.ui-table-priority-5, - .ui-table-columntoggle.ui-responsive td.ui-table-priority-5 { - display: table-cell; - } -} -/* Show priority 6 at 1,120px (70em x 16px) */ -@media screen and (min-width: 70em) { - .ui-table-columntoggle.ui-responsive th.ui-table-priority-6, - .ui-table-columntoggle.ui-responsive td.ui-table-priority-6 { - display: table-cell; - } -} -/* Unchecked manually: Always hide */ -.ui-table-columntoggle th.ui-table-cell-hidden, -.ui-table-columntoggle td.ui-table-cell-hidden, -.ui-table-columntoggle.ui-responsive th.ui-table-cell-hidden, -.ui-table-columntoggle.ui-responsive td.ui-table-cell-hidden { - display: none; -} -/* Checked manually: Always show */ -.ui-table-columntoggle th.ui-table-cell-visible, -.ui-table-columntoggle td.ui-table-cell-visible, -.ui-table-columntoggle.ui-responsive th.ui-table-cell-visible, -.ui-table-columntoggle.ui-responsive td.ui-table-cell-visible { - display: table-cell; -} -/* - Styles for the table columntoggle mode -*/ -.ui-table-reflow td .ui-table-cell-label, -.ui-table-reflow th .ui-table-cell-label { - display: none; -} -/* Mobile first styles: Begin with the stacked presentation at narrow widths */ -@media only all { - /* Hide the table headers */ - .ui-table-reflow thead td, - .ui-table-reflow thead th { - display: none; - } - /* Show the table cells as a block level element */ - .ui-table-reflow td, - .ui-table-reflow th { - text-align: left; - display: block; - } - /* Add a fair amount of top margin to visually separate each row when stacked */ - .ui-table-reflow tbody th { - margin-top: 3em; - } - /* Make the label elements a percentage width */ - .ui-table-reflow td .ui-table-cell-label, - .ui-table-reflow th .ui-table-cell-label { - display: block; - padding: .4em; - min-width: 30%; - display: inline-block; - margin: -.4em 1em -.4em -.4em; - } - /* For grouped headers, have a different style to visually separate the levels by classing the first label in each col group */ - .ui-table-reflow th .ui-table-cell-label-top, - .ui-table-reflow td .ui-table-cell-label-top { - display: block; - padding: .4em 0; - margin: .4em 0; - text-transform: uppercase; - font-size: .9em; - font-weight: normal; - } -} -/* Breakpoint to show as a standard table at 560px (35em x 16px) or wider */ -@media ( min-width: 35em ) { - /* Fixes table rendering when switching between breakpoints in Safari <= 5. See https://github.com/jquery/jquery-mobile/issues/5380 */ - .ui-table-reflow.ui-responsive { - display: table-row-group; - } - /* Show the table header rows */ - .ui-table-reflow.ui-responsive td, - .ui-table-reflow.ui-responsive th, - .ui-table-reflow.ui-responsive tbody th, - .ui-table-reflow.ui-responsive tbody td, - .ui-table-reflow.ui-responsive thead td, - .ui-table-reflow.ui-responsive thead th { - display: table-cell; - margin: 0; - } - /* Hide the labels in each cell */ - .ui-table-reflow.ui-responsive td .ui-table-cell-label, - .ui-table-reflow.ui-responsive th .ui-table-cell-label { - display: none; - } -} -/* Hack to make IE9 and WP7.5 treat cells like block level elements, scoped to ui-responsive class */ -/* Applied in a max-width media query up to the table layout breakpoint so we don't need to negate this*/ -@media ( max-width: 35em ) { - .ui-table-reflow.ui-responsive td, - .ui-table-reflow.ui-responsive th { - width: 100%; - -webkit-box-sizing: border-box; - -moz-box-sizing: border-box; - box-sizing: border-box; - float: left; - clear: left; - } -} -/* panel */ -.ui-panel { - width: 17em; - min-height: 100%; - max-height: none; - border-width: 0; - position: absolute; - top: 0; - display: block; -} -.ui-panel-closed { - width: 0; - max-height: 100%; - overflow: hidden; - visibility: hidden; -} -.ui-panel-fixed { - position: fixed; - bottom: -1px; /* fixes gap on Chrome for Android */ - padding-bottom: 1px; -} -.ui-panel-display-overlay { - z-index: 1001; /* fixed toolbars have z-index 1000 */ -} -.ui-panel-display-reveal { - z-index: 0; -} -.ui-panel-display-push { - z-index: 999; -} -.ui-panel-inner { - padding: 15px; -} -/* content-wrap */ -.ui-panel-content-wrap { - position: relative; - left: 0; - min-height: inherit; - border: none; - z-index: 999; -} -.ui-panel-content-wrap-display-overlay, -.ui-panel-animate.ui-panel-content-wrap > .ui-header, /* ios4 fix */ -.ui-panel-content-wrap-closed { - position: static; -} -/* dismiss */ -.ui-panel-dismiss { - position: absolute; - top: 0; - left:0; - height: 100%; - width: 100%; - z-index: 1002; - display: none; -} -.ui-panel-dismiss-open { - display: block; -} -/* animate class is added to panel, wrapper and fixed toolbars */ -.ui-panel-animate { - -webkit-transition: -webkit-transform 350ms ease; - -moz-transition: -moz-transform 350ms ease; - transition: transform 350ms ease; -} -/* hardware acceleration for smoother transitions on WebKit browsers */ -.ui-panel-animate.ui-panel:not(.ui-panel-display-reveal), -.ui-panel-animate.ui-panel:not(.ui-panel-display-reveal) > div, -.ui-panel-animate.ui-panel-closed.ui-panel-display-reveal > div, -.ui-panel-animate.ui-panel-content-wrap, -.ui-panel-animate.ui-panel-content-fixed-toolbar { - -webkit-backface-visibility: hidden; - -webkit-transform: translate3d(0,0,0); -} -/* positioning: panel */ -/* panel left */ -.ui-panel-position-left { - left: -17em; -} -/* animated: panel left (for overlay and push) */ -.ui-panel-animate.ui-panel-position-left.ui-panel-display-overlay, -.ui-panel-animate.ui-panel-position-left.ui-panel-display-push { - left: 0; - -webkit-transform: translate3d(-17em,0,0); - -moz-transform: translate3d(-17em,0,0); - transform: translate3d(-17em,0,0); -} -/* panel left open */ -.ui-panel-position-left.ui-panel-display-reveal, /* negate "panel left" for reveal */ -.ui-panel-position-left.ui-panel-open { - left: 0; -} -/* animated: panel left open (for overlay and push) */ -.ui-panel-animate.ui-panel-position-left.ui-panel-open.ui-panel-display-overlay, -.ui-panel-animate.ui-panel-position-left.ui-panel-open.ui-panel-display-push { - -webkit-transform: translate3d(0,0,0); - transform: translate3d(0,0,0); - -moz-transform: none; -} -/* panel right */ -.ui-panel-position-right { - right: -17em; -} -/* animated: panel right (for overlay and push) */ -.ui-panel-animate.ui-panel-position-right.ui-panel-display-overlay, -.ui-panel-animate.ui-panel-position-right.ui-panel-display-push { - right: 0; - -webkit-transform: translate3d(17em,0,0); - -moz-transform: translate3d(17em,0,0); - transform: translate3d(17em,0,0); -} -/* panel right open */ -.ui-panel-position-right.ui-panel-display-reveal, /* negate "panel right" for reveal */ -.ui-panel-position-right.ui-panel-open { - right: 0; -} -/* animated: panel right open (for overlay and push) */ -.ui-panel-animate.ui-panel-position-right.ui-panel-open.ui-panel-display-overlay, -.ui-panel-animate.ui-panel-position-right.ui-panel-open.ui-panel-display-push { - -webkit-transform: translate3d(0,0,0); - transform: translate3d(0,0,0); - -moz-transform: none; -} -/* positioning: content wrap, fixed toolbars and dismiss */ -/* panel left open */ -.ui-panel-content-fixed-toolbar-position-left.ui-panel-content-fixed-toolbar-open, -.ui-panel-content-wrap-position-left.ui-panel-content-wrap-open, -.ui-panel-dismiss-position-left.ui-panel-dismiss-open { - left: 17em; - right: -17em; -} -/* animated: panel left open (for reveal and push) */ -.ui-panel-animate.ui-panel-content-fixed-toolbar-position-left.ui-panel-content-fixed-toolbar-open.ui-panel-content-fixed-toolbar-display-reveal, -.ui-panel-animate.ui-panel-content-fixed-toolbar-position-left.ui-panel-content-fixed-toolbar-open.ui-panel-content-fixed-toolbar-display-push, -.ui-panel-animate.ui-panel-content-wrap-position-left.ui-panel-content-wrap-open.ui-panel-content-wrap-display-reveal, -.ui-panel-animate.ui-panel-content-wrap-position-left.ui-panel-content-wrap-open.ui-panel-content-wrap-display-push { - left: 0; - right: 0; - -webkit-transform: translate3d(17em,0,0); - -moz-transform: translate3d(17em,0,0); - transform: translate3d(17em,0,0); -} -/* panel right open */ -.ui-panel-content-fixed-toolbar-position-right.ui-panel-content-fixed-toolbar-open, -.ui-panel-content-wrap-position-right.ui-panel-content-wrap-open, -.ui-panel-dismiss-position-right.ui-panel-dismiss-open { - left: -17em; - right: 17em; -} -/* animated: panel right open (for reveal and push) */ -.ui-panel-animate.ui-panel-content-fixed-toolbar-position-right.ui-panel-content-fixed-toolbar-open.ui-panel-content-fixed-toolbar-display-reveal, -.ui-panel-animate.ui-panel-content-fixed-toolbar-position-right.ui-panel-content-fixed-toolbar-open.ui-panel-content-fixed-toolbar-display-push, -.ui-panel-animate.ui-panel-content-wrap-position-right.ui-panel-content-wrap-open.ui-panel-content-wrap-display-reveal, -.ui-panel-animate.ui-panel-content-wrap-position-right.ui-panel-content-wrap-open.ui-panel-content-wrap-display-push { - left: 0; - right: 0; - -webkit-transform: translate3d(-17em,0,0); - -moz-transform: translate3d(-17em,0,0); - transform: translate3d(-17em,0,0); -} -/* negate "panel left/right open" for overlay */ -.ui-panel-content-fixed-toolbar-open.ui-panel-content-fixed-toolbar-display-overlay, -.ui-panel-content-wrap-open.ui-panel-content-wrap-display-overlay { - left: 0; -} -/* always disable overflow-x to prevent zoom issue on Android */ -.ui-page-active.ui-page-panel { - overflow-x: hidden; -} -/* shadows and borders */ -.ui-panel-display-reveal { - -webkit-box-shadow: inset -5px 0 5px rgba(0,0,0,.15); - -moz-box-shadow: inset -5px 0 5px rgba(0,0,0,.15); - box-shadow: inset -5px 0 5px rgba(0,0,0,.15); -} -.ui-panel-position-right.ui-panel-display-reveal { - -webkit-box-shadow: inset 5px 0 5px rgba(0,0,0,.15); - -moz-box-shadow: inset 5px 0 5px rgba(0,0,0,.15); - box-shadow: inset 5px 0 5px rgba(0,0,0,.15); -} -.ui-panel-display-overlay { - -webkit-box-shadow: 5px 0 5px rgba(0,0,0,.15); - -moz-box-shadow: 5px 0 5px rgba(0,0,0,.15); - box-shadow: 5px 0 5px rgba(0,0,0,.15); -} -.ui-panel-position-right.ui-panel-display-overlay { - -webkit-box-shadow: -5px 0 5px rgba(0,0,0,.15); - -moz-box-shadow: -5px 0 5px rgba(0,0,0,.15); - box-shadow: -5px 0 5px rgba(0,0,0,.15); -} -.ui-panel-display-push.ui-panel-open.ui-panel-position-left { - border-right-width: 1px; - margin-right: -1px; -} -.ui-panel-animate.ui-panel-content-fixed-toolbar-position-left.ui-panel-content-fixed-toolbar-open.ui-panel-content-fixed-toolbar-display-push { - margin-left: 1px; -} -.ui-panel-display-push.ui-panel-open.ui-panel-position-right { - border-left-width: 1px; - margin-left: -1px; -} -.ui-panel-animate.ui-panel-content-fixed-toolbar-position-right.ui-panel-content-fixed-toolbar-open.ui-panel-content-fixed-toolbar-display-push { - margin-right: 1px; -} -/* wrap on wide viewports once open */ -@media (min-width:55em){ - .ui-responsive-panel.ui-page-panel-open .ui-panel-content-fixed-toolbar-display-push.ui-panel-content-fixed-toolbar-position-left, - .ui-responsive-panel.ui-page-panel-open .ui-panel-content-fixed-toolbar-display-reveal.ui-panel-content-fixed-toolbar-position-left, - .ui-responsive-panel.ui-page-panel-open .ui-panel-content-wrap-display-push.ui-panel-content-wrap-position-left, - .ui-responsive-panel.ui-page-panel-open .ui-panel-content-wrap-display-reveal.ui-panel-content-wrap-position-left { - margin-right: 17em; - } - .ui-responsive-panel.ui-page-panel-open .ui-panel-content-fixed-toolbar-display-push.ui-panel-content-fixed-toolbar-position-right, - .ui-responsive-panel.ui-page-panel-open .ui-panel-content-fixed-toolbar-display-reveal.ui-panel-content-fixed-toolbar-position-right, - .ui-responsive-panel.ui-page-panel-open .ui-panel-content-wrap-display-push.ui-panel-content-wrap-position-right, - .ui-responsive-panel.ui-page-panel-open .ui-panel-content-wrap-display-reveal.ui-panel-content-wrap-position-right { - margin-left: 17em; - } - .ui-responsive-panel.ui-page-panel-open .ui-panel-content-fixed-toolbar-display-push, - .ui-responsive-panel.ui-page-panel-open .ui-panel-content-fixed-toolbar-display-reveal { - width: auto; - } - .ui-responsive-panel .ui-panel-dismiss-display-push { - display: none; - } -} diff --git a/themes/smartpocket/js/code.photoswipe.jquery.min.js b/themes/smartpocket/js/code.photoswipe.jquery.min.js deleted file mode 100644 index d209fc3e3..000000000 --- a/themes/smartpocket/js/code.photoswipe.jquery.min.js +++ /dev/null @@ -1,164 +0,0 @@ -// PhotoSwipe - http://www.photoswipe.com/ -// Copyright (c) 2012 by Code Computerlove (http://www.codecomputerlove.com) -// Licensed under the MIT license -// version: 3.0.5.1 -(function(e){Function.prototype.bind||(Function.prototype.bind=function(d){var a=[].slice,b=a.call(arguments,1),c=this,g=function(){},f=function(){return c.apply(this instanceof g?this:d||{},b.concat(a.call(arguments)))};g.prototype=c.prototype;f.prototype=new g;return f});"undefined"===typeof e.Code&&(e.Code={});e.Code.Util={registerNamespace:function(){var d=arguments,a=null,b,c,g,f,i;b=0;for(f=d.length;bd.DOM.windowHeight()}};d.Browser._detect()})(window,window.Code.Util); -(function(e,d,a){a.extend(a,{Events:{add:function(a,c,g){"mousewheel"===c&&(c=this._normaliseMouseWheelType());d(a).bind(c,g)},remove:function(a,c,g){"mousewheel"===c&&(c=this._normaliseMouseWheelType());d(a).unbind(c,g)},fire:function(a,c){var g,f=Array.prototype.slice.call(arguments).splice(2);"mousewheel"===c&&(c=this._normaliseMouseWheelType());g="string"===typeof c?{type:c}:c;d(a).trigger(d.Event(g.type,g),f)},getMousePosition:function(a){return{x:a.pageX,y:a.pageY}},getTouchEvent:function(a){return a.originalEvent}, -getWheelDelta:function(b){var c=0;a.isNothing(b.originalEvent.wheelDelta)?a.isNothing(b.originalEvent.detail)||(c=-b.originalEvent.detail/3):c=b.originalEvent.wheelDelta/120;return c},domReady:function(a){d(document).ready(a)},_normaliseMouseWheelType:function(){return a.Browser.isEventSupported("mousewheel")?"mousewheel":"DOMMouseScroll"}}})})(window,window.jQuery,window.Code.Util); -(function(e,d,a){a.extend(a,{DOM:{setData:function(b,c,g){if(a.isLikeArray(b)){var f,d;f=0;for(d=b.length;f"+a+">");a.attr(c);a.append(g);return a[0]},appendChild:function(a,c){d(c).append(a)},insertBefore:function(a,c){d(a).insertBefore(c)},appendText:function(a,c){d(c).text(a)},appendToBody:function(a){d("body").append(a)},removeChild:function(a){d(a).empty().remove()},removeChildren:function(a){d(a).empty()}, -hasAttribute:function(b,c){return!a.isNothing(d(b).attr(c))},getAttribute:function(b,c,g){b=d(b).attr(c);a.isNothing(b)&&!a.isNothing(g)&&(b=g);return b},setAttribute:function(b,c,g){if(a.isLikeArray(b)){var f,d;f=0;for(d=b.length;f=f&&(f=1);if(0>=b&&(d.DOM.setStyle(a,"opacity",f),!d.isNothing(c))){c(a); -return}1<=d.DOM.getStyle(a,"opacity")&&d.DOM.setStyle(a,"opacity",0);d.Browser.isCSSTransformSupported?this._applyTransition(a,"opacity",f,b,c,g):d.isNothing(e.jQuery)||e.jQuery(a).fadeTo(b,f,c)},fadeTo:function(a,b,c,g,f){this.fadeIn(a,c,g,f,b)},fadeOut:function(a,b,c,g){if(0>=b&&(d.DOM.setStyle(a,"opacity",0),!d.isNothing(c))){c(a);return}d.Browser.isCSSTransformSupported?this._applyTransition(a,"opacity",0,b,c,g):e.jQuery(a).fadeTo(b,0,c)},slideBy:function(a,b,c,g,f,i){var j={},b=d.coalesce(b, -0),c=d.coalesce(c,0),i=d.coalesce(i,"ease-out");j[this._transitionPrefix+"Property"]="all";j[this._transitionPrefix+"Delay"]="0";0===g?(j[this._transitionPrefix+"Duration"]="",j[this._transitionPrefix+"TimingFunction"]=""):(j[this._transitionPrefix+"Duration"]=g+"ms",j[this._transitionPrefix+"TimingFunction"]=d.coalesce(i,"ease-out"),d.Events.add(a,this._transitionEndLabel,this._getTransitionEndHandler()));j[this._transformLabel]=d.Browser.is3dSupported?"translate3d("+b+"px, "+c+"px, 0px)":"translate("+ -b+"px, "+c+"px)";d.isNothing(f)||(a.cclallcallback=f);d.DOM.setStyle(a,j);0===g&&e.setTimeout(function(){this._leaveTransforms(a)}.bind(this),this._applyTransitionDelay)},resetTranslate:function(a){var b={};b[this._transformLabel]=b[this._transformLabel]=d.Browser.is3dSupported?"translate3d(0px, 0px, 0px)":"translate(0px, 0px)";d.DOM.setStyle(a,b)},_applyTransition:function(a,b,c,g,f,i){var j={},i=d.coalesce(i,"ease-in");j[this._transitionPrefix+"Property"]=b;j[this._transitionPrefix+"Duration"]= -g+"ms";j[this._transitionPrefix+"TimingFunction"]=i;j[this._transitionPrefix+"Delay"]="0";d.Events.add(a,this._transitionEndLabel,this._getTransitionEndHandler());d.DOM.setStyle(a,j);d.isNothing(f)||(a["ccl"+b+"callback"]=f);e.setTimeout(function(){d.DOM.setStyle(a,b,c)},this._applyTransitionDelay)},_onTransitionEnd:function(a){d.Events.remove(a.currentTarget,this._transitionEndLabel,this._getTransitionEndHandler());this._leaveTransforms(a.currentTarget)},_leaveTransforms:function(a){var b=a.style[this._transitionPrefix+ -"Property"],c=""!==b?"ccl"+b+"callback":"cclallcallback",g,b=d.coalesce(a.style.webkitTransform,a.style.MozTransform,a.style.OTransform,a.style.transform),f,i=e.parseInt(d.DOM.getStyle(a,"left"),0),j=e.parseInt(d.DOM.getStyle(a,"top"),0),h,l,k={};""!==b&&(b=d.Browser.is3dSupported?b.match(/translate3d\((.*?)\)/):b.match(/translate\((.*?)\)/),d.isNothing(b)||(f=b[1].split(", "),h=e.parseInt(f[0],0),l=e.parseInt(f[1],0)));k[this._transitionPrefix+"Property"]="";k[this._transitionPrefix+"Duration"]= -"";k[this._transitionPrefix+"TimingFunction"]="";k[this._transitionPrefix+"Delay"]="";d.DOM.setStyle(a,k);e.setTimeout(function(){if(!d.isNothing(f)){k={};k[this._transformLabel]="";k.left=i+h+"px";k.top=j+l+"px";d.DOM.setStyle(a,k)}if(!d.isNothing(a[c])){g=a[c];delete a[c];g(a)}}.bind(this),this._applyTransitionDelay)}}})})(window,window.Code.Util); -(function(e,d,a){a.registerNamespace("Code.Util.TouchElement");a.TouchElement.EventTypes={onTouch:"CodeUtilTouchElementOnTouch"};a.TouchElement.ActionTypes={touchStart:"touchStart",touchMove:"touchMove",touchEnd:"touchEnd",touchMoveEnd:"touchMoveEnd",tap:"tap",doubleTap:"doubleTap",swipeLeft:"swipeLeft",swipeRight:"swipeRight",swipeUp:"swipeUp",swipeDown:"swipeDown",gestureStart:"gestureStart",gestureChange:"gestureChange",gestureEnd:"gestureEnd"}})(window,window.klass,window.Code.Util); -(function(e,d,a){a.registerNamespace("Code.Util.TouchElement");a.TouchElement.TouchElementClass=d({el:null,captureSettings:null,touchStartPoint:null,touchEndPoint:null,touchStartTime:null,doubleTapTimeout:null,touchStartHandler:null,touchMoveHandler:null,touchEndHandler:null,mouseDownHandler:null,mouseMoveHandler:null,mouseUpHandler:null,mouseOutHandler:null,gestureStartHandler:null,gestureChangeHandler:null,gestureEndHandler:null,swipeThreshold:null,swipeTimeThreshold:null,doubleTapSpeed:null,dispose:function(){var b; -this.removeEventHandlers();for(b in this)a.objectHasProperty(this,b)&&(this[b]=null)},initialize:function(b,c){this.el=b;this.captureSettings={swipe:!1,move:!1,gesture:!1,doubleTap:!1,preventDefaultTouchEvents:!0,allowVerticalScroll:!1};a.extend(this.captureSettings,c);this.swipeThreshold=50;this.doubleTapSpeed=this.swipeTimeThreshold=250;this.touchStartPoint={x:0,y:0};this.touchEndPoint={x:0,y:0}},addEventHandlers:function(){a.isNothing(this.touchStartHandler)&&(this.touchStartHandler=this.onTouchStart.bind(this), -this.touchMoveHandler=this.onTouchMove.bind(this),this.touchEndHandler=this.onTouchEnd.bind(this),this.mouseDownHandler=this.onMouseDown.bind(this),this.mouseMoveHandler=this.onMouseMove.bind(this),this.mouseUpHandler=this.onMouseUp.bind(this),this.mouseOutHandler=this.onMouseOut.bind(this),this.gestureStartHandler=this.onGestureStart.bind(this),this.gestureChangeHandler=this.onGestureChange.bind(this),this.gestureEndHandler=this.onGestureEnd.bind(this));a.Events.add(this.el,"touchstart",this.touchStartHandler); -this.captureSettings.move&&a.Events.add(this.el,"touchmove",this.touchMoveHandler);a.Events.add(this.el,"touchend",this.touchEndHandler);a.Events.add(this.el,"mousedown",this.mouseDownHandler);a.Browser.isGestureSupported&&this.captureSettings.gesture&&(a.Events.add(this.el,"gesturestart",this.gestureStartHandler),a.Events.add(this.el,"gesturechange",this.gestureChangeHandler),a.Events.add(this.el,"gestureend",this.gestureEndHandler))},removeEventHandlers:function(){a.Events.remove(this.el,"touchstart", -this.touchStartHandler);this.captureSettings.move&&a.Events.remove(this.el,"touchmove",this.touchMoveHandler);a.Events.remove(this.el,"touchend",this.touchEndHandler);a.Events.remove(this.el,"mousedown",this.mouseDownHandler);a.Browser.isGestureSupported&&this.captureSettings.gesture&&(a.Events.remove(this.el,"gesturestart",this.gestureStartHandler),a.Events.remove(this.el,"gesturechange",this.gestureChangeHandler),a.Events.remove(this.el,"gestureend",this.gestureEndHandler))},getTouchPoint:function(a){return{x:a[0].pageX, -y:a[0].pageY}},fireTouchEvent:function(b){var c=0,g=0,f=0,d,c=this.touchEndPoint.x-this.touchStartPoint.x,g=this.touchEndPoint.y-this.touchStartPoint.y,f=Math.sqrt(c*c+g*g);if(this.captureSettings.swipe&&(d=new Date,d-=this.touchStartTime,d<=this.swipeTimeThreshold)){if(e.Math.abs(c)>=this.swipeThreshold){a.Events.fire(this,{type:a.TouchElement.EventTypes.onTouch,target:this,point:this.touchEndPoint,action:0>c?a.TouchElement.ActionTypes.swipeLeft:a.TouchElement.ActionTypes.swipeRight,targetEl:b.target, -currentTargetEl:b.currentTarget});return}if(e.Math.abs(g)>=this.swipeThreshold){a.Events.fire(this,{type:a.TouchElement.EventTypes.onTouch,target:this,point:this.touchEndPoint,action:0>g?a.TouchElement.ActionTypes.swipeUp:a.TouchElement.ActionTypes.swipeDown,targetEl:b.target,currentTargetEl:b.currentTarget});return}}1this.imageEl.naturalHeight;this.imageEl.isLoading=!1;a.Events.fire(this,{type:b.Image.EventTypes.onLoad,target:this})},onImageError:function(){this.imageEl.onload=null;this.imageEl.onerror=null;this.imageEl.onabort=null;this.imageEl.isLoading=!1;this.imageEl.isError=!0;a.Events.fire(this,{type:b.Image.EventTypes.onError, -target:this})}})})(window,window.klass,window.Code.Util); -(function(e,d,a){a.registerNamespace("Code.PhotoSwipe.Cache");e=e.Code.PhotoSwipe;e.Cache.Mode={normal:"normal",aggressive:"aggressive"};e.Cache.Functions={getImageSource:function(a){return a.href},getImageCaption:function(b){if("IMG"===b.nodeName)return a.DOM.getAttribute(b,"alt");var c,g,f;c=0;for(g=b.childNodes.length;cb&&(b=this.initialBodyHeight),a.DOM.windowHeight()>b&&(b= -a.DOM.windowHeight())):(c=a.DOM.width(this.settings.target),b=a.DOM.height(this.settings.target),f="0px");a.DOM.setStyle(this.el,{width:c,height:b,top:f})},fadeIn:function(c,b){this.resetPosition();a.DOM.setStyle(this.el,"opacity",0);a.DOM.show(this.el);a.Animation.fadeIn(this.el,c,b)}})})(window,window.klass,window.Code.Util); -(function(e,d,a){a.registerNamespace("Code.PhotoSwipe.Carousel");e=e.Code.PhotoSwipe;e.Carousel.EventTypes={onSlideByEnd:"PhotoSwipeCarouselOnSlideByEnd",onSlideshowStart:"PhotoSwipeCarouselOnSlideshowStart",onSlideshowStop:"PhotoSwipeCarouselOnSlideshowStop"};e.Carousel.CssClasses={carousel:"ps-carousel",content:"ps-carousel-content",item:"ps-carousel-item",itemLoading:"ps-carousel-item-loading",itemError:"ps-carousel-item-error"};e.Carousel.SlideByAction={previous:"previous",current:"current",next:"next"}})(window, -window.klass,window.Code.Util); -(function(e,d,a){a.registerNamespace("Code.PhotoSwipe.Carousel");var b=e.Code.PhotoSwipe;b.Carousel.CarouselClass=d({el:null,contentEl:null,settings:null,cache:null,slideByEndHandler:null,currentCacheIndex:null,isSliding:null,isSlideshowActive:null,lastSlideByAction:null,touchStartPoint:null,touchStartPosition:null,imageLoadHandler:null,imageErrorHandler:null,slideshowTimeout:null,dispose:function(){var c,g,f;g=0;for(f=this.cache.images.length;gthis.cache.images.length&&(this.settings.loop=!1);this.el=a.DOM.createElement("div",{"class":b.Carousel.CssClasses.carousel},"");a.DOM.setStyle(this.el,{display:"block",position:"absolute",left:0,top:0,overflow:"hidden",zIndex:this.settings.zIndex});a.DOM.hide(this.el);this.contentEl=a.DOM.createElement("div",{"class":b.Carousel.CssClasses.content},"");a.DOM.setStyle(this.contentEl,{display:"block",position:"absolute",left:0,top:0});a.DOM.appendChild(this.contentEl, -this.el);d=3>c.images.length?c.images.length:3;for(f=0;fe&&(b=e/f,f=Math.round(f*b),d=Math.round(d*b)),d>h)b=h/d,d=Math.round(d*b),f=Math.round(f*b)}else b=c.isLandscape?e/c.naturalWidth:h/c.naturalHeight,f=Math.round(c.naturalWidth* -b),d=Math.round(c.naturalHeight*b),"zoom"===this.settings.imageScaleMethod?(b=1,de?b=e/f:d>h&&(b=h/d),1!==b&&(f=Math.round(f*b),d=Math.round(d*b)));b=Math.round((h-d)/2)+"px";e=Math.round((e-f)/2)+"px";a.DOM.setStyle(c,{position:"absolute",width:f,height:d,top:b,left:e,display:"block"})}},setContentLeftPosition:function(){var c,b,d;c=this.settings.target===e?a.DOM.windowWidth():a.DOM.width(this.settings.target); -b=this.getItemEls();d=0;this.settings.loop?d=-1*(c+this.settings.margin):this.currentCacheIndex===this.cache.images.length-1?d=-1*(b.length-1)*(c+this.settings.margin):0this.cache.images.length-1&&(b=0),0>e&&(e=this.cache.images.length-1),b=this.cache.getImages([e,this.currentCacheIndex,b]),a||this.addCacheImageToItemEl(b[1],d[1]),this.addCacheImageToItemEl(b[2],d[2]),this.addCacheImageToItemEl(b[0], -d[0])):1===d.length?a||(b=this.cache.getImages([this.currentCacheIndex]),this.addCacheImageToItemEl(b[0],d[0])):2===d.length?0===this.currentCacheIndex?(b=this.cache.getImages([this.currentCacheIndex,this.currentCacheIndex+1]),a||this.addCacheImageToItemEl(b[0],d[0]),this.addCacheImageToItemEl(b[1],d[1])):(b=this.cache.getImages([this.currentCacheIndex-1,this.currentCacheIndex]),a||this.addCacheImageToItemEl(b[1],d[1]),this.addCacheImageToItemEl(b[0],d[0])):0===this.currentCacheIndex?(b=this.cache.getImages([this.currentCacheIndex, -this.currentCacheIndex+1,this.currentCacheIndex+2]),a||this.addCacheImageToItemEl(b[0],d[0]),this.addCacheImageToItemEl(b[1],d[1]),this.addCacheImageToItemEl(b[2],d[2])):(this.currentCacheIndex===this.cache.images.length-1?(b=this.cache.getImages([this.currentCacheIndex-2,this.currentCacheIndex-1,this.currentCacheIndex]),a||this.addCacheImageToItemEl(b[2],d[2]),this.addCacheImageToItemEl(b[1],d[1])):(b=this.cache.getImages([this.currentCacheIndex-1,this.currentCacheIndex,this.currentCacheIndex+1]), -a||this.addCacheImageToItemEl(b[1],d[1]),this.addCacheImageToItemEl(b[2],d[2])),this.addCacheImageToItemEl(b[0],d[0]))},addCacheImageToItemEl:function(c,d){a.DOM.removeClass(d,b.Carousel.CssClasses.itemError);a.DOM.addClass(d,b.Carousel.CssClasses.itemLoading);a.DOM.removeChildren(d);a.DOM.setStyle(c.imageEl,{display:"none"});a.DOM.appendChild(c.imageEl,d);a.Animation.resetTranslate(c.imageEl);a.Events.add(c,b.Image.EventTypes.onLoad,this.imageLoadHandler);a.Events.add(c,b.Image.EventTypes.onError, -this.imageErrorHandler);c.load()},slideCarousel:function(c,d,f){if(!this.isSliding){var i,j;i=this.settings.target===e?a.DOM.windowWidth()+this.settings.margin:a.DOM.width(this.settings.target)+this.settings.margin;f=a.coalesce(f,this.settings.slideSpeed);if(!(1>e.Math.abs(j))){switch(d){case a.TouchElement.ActionTypes.swipeLeft:c=-1*i;break;case a.TouchElement.ActionTypes.swipeRight:c=i;break;default:j=c.x-this.touchStartPoint.x,c=e.Math.abs(j)>i/2?0c?b.Carousel.SlideByAction.next: -0this.currentCacheIndex?this.currentCacheIndex=this.cache.images.length-1:this.currentCacheIndex=== -this.cache.images.length&&(this.currentCacheIndex=0)):3=c?this.slideByEndHandler():a.Browser.isCSSTransformSupported?(d=a.coalesce(this.contentEl.style.webkitTransform,this.contentEl.style.MozTransform, -this.contentEl.style.OTransform,this.contentEl.style.transform,""),0===d.indexOf("translate3d("+b)?this.slideByEndHandler():0===d.indexOf("translate("+b)?this.slideByEndHandler():a.Animation.slideBy(this.contentEl,b,0,c,this.slideByEndHandler,this.settings.slideTimingFunction)):a.isNothing(e.jQuery)||(d={left:this.getStartingPos().x+b+"px"},"ease-out"===this.settings.animationTimingFunction&&(this.settings.animationTimingFunction="easeOutQuad"),a.isNothing(e.jQuery.easing[this.settings.animationTimingFunction])&& -(this.settings.animationTimingFunction="linear"),e.jQuery(this.contentEl).animate(d,this.settings.slideSpeed,this.settings.animationTimingFunction,this.slideByEndHandler))}})})(window,window.klass,window.Code.Util,window.Code.PhotoSwipe.TouchElement); -(function(e,d,a){a.registerNamespace("Code.PhotoSwipe.Toolbar");var b=e.Code.PhotoSwipe;b.Toolbar.CssClasses={toolbar:"ps-toolbar",toolbarContent:"ps-toolbar-content",toolbarTop:"ps-toolbar-top",caption:"ps-caption",captionBottom:"ps-caption-bottom",captionContent:"ps-caption-content",close:"ps-toolbar-close",play:"ps-toolbar-play",playDisabled:"ps-toolbar-play-disabled",previous:"ps-toolbar-previous",previousDisabled:"ps-toolbar-previous-disabled",next:"ps-toolbar-next",nextDisabled:"ps-toolbar-next-disabled"}; -b.Toolbar.ToolbarAction={close:"close",play:"play",next:"next",previous:"previous",none:"none"};b.Toolbar.EventTypes={onTap:"PhotoSwipeToolbarOnClick",onBeforeShow:"PhotoSwipeToolbarOnBeforeShow",onShow:"PhotoSwipeToolbarOnShow",onBeforeHide:"PhotoSwipeToolbarOnBeforeHide",onHide:"PhotoSwipeToolbarOnHide"};b.Toolbar.getToolbar=function(){return''}})(window,window.klass,window.Code.Util); -(function(e,d,a){a.registerNamespace("Code.PhotoSwipe.Toolbar");var b=e.Code.PhotoSwipe;b.Toolbar.ToolbarClass=d({toolbarEl:null,closeEl:null,playEl:null,previousEl:null,nextEl:null,captionEl:null,captionContentEl:null,currentCaption:null,settings:null,cache:null,timeout:null,isVisible:null,fadeOutHandler:null,touchStartHandler:null,touchMoveHandler:null,clickHandler:null,dispose:function(){var b;this.clearTimeout();this.removeEventHandlers();a.Animation.stop(this.toolbarEl);a.Animation.stop(this.captionEl); -a.DOM.removeChild(this.toolbarEl,this.toolbarEl.parentNode);a.DOM.removeChild(this.captionEl,this.captionEl.parentNode);for(b in this)a.objectHasProperty(this,b)&&(this[b]=null)},initialize:function(c,d){var f;this.settings=d;this.cache=c;this.isVisible=!1;this.fadeOutHandler=this.onFadeOut.bind(this);this.touchStartHandler=this.onTouchStart.bind(this);this.touchMoveHandler=this.onTouchMove.bind(this);this.clickHandler=this.onClick.bind(this);f=b.Toolbar.CssClasses.toolbar;this.settings.captionAndToolbarFlipPosition&& -(f=f+" "+b.Toolbar.CssClasses.toolbarTop);this.toolbarEl=a.DOM.createElement("div",{"class":f},this.settings.getToolbar());a.DOM.setStyle(this.toolbarEl,{left:0,position:"absolute",overflow:"hidden",zIndex:this.settings.zIndex});this.settings.target===e?a.DOM.appendToBody(this.toolbarEl):a.DOM.appendChild(this.toolbarEl,this.settings.target);a.DOM.hide(this.toolbarEl);this.closeEl=a.DOM.find("."+b.Toolbar.CssClasses.close,this.toolbarEl)[0];this.settings.preventHide&&!a.isNothing(this.closeEl)&&a.DOM.hide(this.closeEl); -this.playEl=a.DOM.find("."+b.Toolbar.CssClasses.play,this.toolbarEl)[0];this.settings.preventSlideshow&&!a.isNothing(this.playEl)&&a.DOM.hide(this.playEl);this.nextEl=a.DOM.find("."+b.Toolbar.CssClasses.next,this.toolbarEl)[0];this.previousEl=a.DOM.find("."+b.Toolbar.CssClasses.previous,this.toolbarEl)[0];f=b.Toolbar.CssClasses.caption;this.settings.captionAndToolbarFlipPosition&&(f=f+" "+b.Toolbar.CssClasses.captionBottom);this.captionEl=a.DOM.createElement("div",{"class":f},"");a.DOM.setStyle(this.captionEl, -{left:0,position:"absolute",overflow:"hidden",zIndex:this.settings.zIndex});this.settings.target===e?a.DOM.appendToBody(this.captionEl):a.DOM.appendChild(this.captionEl,this.settings.target);a.DOM.hide(this.captionEl);this.captionContentEl=a.DOM.createElement("div",{"class":b.Toolbar.CssClasses.captionContent},"");a.DOM.appendChild(this.captionContentEl,this.captionEl);this.addEventHandlers()},resetPosition:function(){var b,d,f;this.settings.target===e?(this.settings.captionAndToolbarFlipPosition? -(d=a.DOM.windowScrollTop(),f=a.DOM.windowScrollTop()+a.DOM.windowHeight()-a.DOM.height(this.captionEl)):(d=a.DOM.windowScrollTop()+a.DOM.windowHeight()-a.DOM.height(this.toolbarEl),f=a.DOM.windowScrollTop()),b=a.DOM.windowWidth()):(this.settings.captionAndToolbarFlipPosition?(d="0",f=a.DOM.height(this.settings.target)-a.DOM.height(this.captionEl)):(d=a.DOM.height(this.settings.target)-a.DOM.height(this.toolbarEl),f=0),b=a.DOM.width(this.settings.target));a.DOM.setStyle(this.toolbarEl,{top:d+"px", -width:b});a.DOM.setStyle(this.captionEl,{top:f+"px",width:b})},toggleVisibility:function(a){this.isVisible?this.fadeOut():this.show(a)},show:function(c){a.Animation.stop(this.toolbarEl);a.Animation.stop(this.captionEl);this.resetPosition();this.setToolbarStatus(c);a.Events.fire(this,{type:b.Toolbar.EventTypes.onBeforeShow,target:this});this.showToolbar();this.setCaption(c);this.showCaption();this.isVisible=!0;this.setTimeout();a.Events.fire(this,{type:b.Toolbar.EventTypes.onShow,target:this})},setTimeout:function(){0< -this.settings.captionAndToolbarAutoHideDelay&&(this.clearTimeout(),this.timeout=e.setTimeout(this.fadeOut.bind(this),this.settings.captionAndToolbarAutoHideDelay))},clearTimeout:function(){a.isNothing(this.timeout)||(e.clearTimeout(this.timeout),this.timeout=null)},fadeOut:function(){this.clearTimeout();a.Events.fire(this,{type:b.Toolbar.EventTypes.onBeforeHide,target:this});a.Animation.fadeOut(this.toolbarEl,this.settings.fadeOutSpeed);a.Animation.fadeOut(this.captionEl,this.settings.fadeOutSpeed, -this.fadeOutHandler);this.isVisible=!1},addEventHandlers:function(){a.Browser.isTouchSupported&&(a.Browser.blackberry||a.Events.add(this.toolbarEl,"touchstart",this.touchStartHandler),a.Events.add(this.toolbarEl,"touchmove",this.touchMoveHandler),a.Events.add(this.captionEl,"touchmove",this.touchMoveHandler));a.Events.add(this.toolbarEl,"click",this.clickHandler)},removeEventHandlers:function(){a.Browser.isTouchSupported&&(a.Browser.blackberry||a.Events.remove(this.toolbarEl,"touchstart",this.touchStartHandler), -a.Events.remove(this.toolbarEl,"touchmove",this.touchMoveHandler),a.Events.remove(this.captionEl,"touchmove",this.touchMoveHandler));a.Events.remove(this.toolbarEl,"click",this.clickHandler)},handleTap:function(c){this.clearTimeout();var d;if(c.target===this.nextEl||a.DOM.isChildOf(c.target,this.nextEl))d=b.Toolbar.ToolbarAction.next;else if(c.target===this.previousEl||a.DOM.isChildOf(c.target,this.previousEl))d=b.Toolbar.ToolbarAction.previous;else if(c.target===this.closeEl||a.DOM.isChildOf(c.target, -this.closeEl))d=b.Toolbar.ToolbarAction.close;else if(c.target===this.playEl||a.DOM.isChildOf(c.target,this.playEl))d=b.Toolbar.ToolbarAction.play;this.setTimeout();a.isNothing(d)&&(d=b.Toolbar.ToolbarAction.none);a.Events.fire(this,{type:b.Toolbar.EventTypes.onTap,target:this,action:d,tapTarget:c.target})},setCaption:function(b){a.DOM.removeChildren(this.captionContentEl);this.currentCaption=a.coalesce(this.cache.images[b].caption,"\u00a0");a.isObject(this.currentCaption)?a.DOM.appendChild(this.currentCaption, -this.captionContentEl):(""===this.currentCaption&&(this.currentCaption="\u00a0"),a.DOM.appendText(this.currentCaption,this.captionContentEl));this.currentCaption="\u00a0"===this.currentCaption?"":this.currentCaption;this.resetPosition()},showToolbar:function(){a.DOM.setStyle(this.toolbarEl,{opacity:this.settings.captionAndToolbarOpacity});a.DOM.show(this.toolbarEl)},showCaption:function(){(""===this.currentCaption||1>this.captionContentEl.childNodes.length)&&!this.settings.captionAndToolbarShowEmptyCaptions? -a.DOM.hide(this.captionEl):(a.DOM.setStyle(this.captionEl,{opacity:this.settings.captionAndToolbarOpacity}),a.DOM.show(this.captionEl))},setToolbarStatus:function(c){this.settings.loop||(a.DOM.removeClass(this.previousEl,b.Toolbar.CssClasses.previousDisabled),a.DOM.removeClass(this.nextEl,b.Toolbar.CssClasses.nextDisabled),a.DOM.removeClass(this.playEl,b.Toolbar.CssClasses.playDisabled),0this.settings.maxUserZoom&&(a=this.settings.maxUserZoom);return a},setStartingScaleAndRotation:function(a,b){this.transformSettings.startingScale=this.getScale(a);this.transformSettings.startingRotation=(this.transformSettings.startingRotation+b)%360},zoomRotate:function(a,b){this.transformSettings.scale=this.getScale(a);this.transformSettings.rotation=this.transformSettings.startingRotation+b;this.applyTransform()},panStart:function(a){this.setStartingTranslateFromCurrentTransform(); -this.panStartingPoint={x:a.x,y:a.y}},pan:function(a){var b=(a.y-this.panStartingPoint.y)/this.transformSettings.scale;this.transformSettings.translateX=this.transformSettings.startingTranslateX+(a.x-this.panStartingPoint.x)/this.transformSettings.scale;this.transformSettings.translateY=this.transformSettings.startingTranslateY+b;this.applyTransform()},zoomAndPanToPoint:function(b,d){if(this.settings.target===e){this.panStart({x:a.DOM.windowWidth()/2,y:a.DOM.windowHeight()/2});var f=(d.y-this.panStartingPoint.y)/ -this.transformSettings.scale;this.transformSettings.translateX=-1*(this.transformSettings.startingTranslateX+(d.x-this.panStartingPoint.x)/this.transformSettings.scale);this.transformSettings.translateY=-1*(this.transformSettings.startingTranslateY+f)}this.setStartingScaleAndRotation(b,0);this.transformSettings.scale=this.transformSettings.startingScale;this.transformSettings.rotation=0;this.applyTransform()},applyTransform:function(){var c=this.transformSettings.rotation%360,d=e.parseInt(this.transformSettings.translateX, -10),f=e.parseInt(this.transformSettings.translateY,10),i="scale("+this.transformSettings.scale+") rotate("+c+"deg) translate("+d+"px, "+f+"px)";a.DOM.setStyle(this.transformEl,{webkitTransform:i,MozTransform:i,msTransform:i,OTransform:i,transform:i});a.Events.fire(this,{target:this,type:b.ZoomPanRotate.EventTypes.onTransform,scale:this.transformSettings.scale,rotation:this.transformSettings.rotation,rotationDegs:c,translateX:d,translateY:f})}})})(window,window.klass,window.Code.Util); -(function(e,d){d.registerNamespace("Code.PhotoSwipe");var a=e.Code.PhotoSwipe;a.CssClasses={buildingBody:"ps-building",activeBody:"ps-active"};a.EventTypes={onBeforeShow:"PhotoSwipeOnBeforeShow",onShow:"PhotoSwipeOnShow",onBeforeHide:"PhotoSwipeOnBeforeHide",onHide:"PhotoSwipeOnHide",onDisplayImage:"PhotoSwipeOnDisplayImage",onResetPosition:"PhotoSwipeOnResetPosition",onSlideshowStart:"PhotoSwipeOnSlideshowStart",onSlideshowStop:"PhotoSwipeOnSlideshowStop",onTouch:"PhotoSwipeOnTouch",onBeforeCaptionAndToolbarShow:"PhotoSwipeOnBeforeCaptionAndToolbarShow", -onCaptionAndToolbarShow:"PhotoSwipeOnCaptionAndToolbarShow",onBeforeCaptionAndToolbarHide:"PhotoSwipeOnBeforeCaptionAndToolbarHide",onCaptionAndToolbarHide:"PhotoSwipeOnCaptionAndToolbarHide",onToolbarTap:"PhotoSwipeOnToolbarTap",onBeforeZoomPanRotateShow:"PhotoSwipeOnBeforeZoomPanRotateShow",onZoomPanRotateShow:"PhotoSwipeOnZoomPanRotateShow",onBeforeZoomPanRotateHide:"PhotoSwipeOnBeforeZoomPanRotateHide",onZoomPanRotateHide:"PhotoSwipeOnZoomPanRotateHide",onZoomPanRotateTransform:"PhotoSwipeOnZoomPanRotateTransform"}; -a.instances=[];a.activeInstances=[];a.setActivateInstance=function(b){if(-1this.currentIndex||this.currentIndex>this.originalImages.length-1)throw"Code.PhotoSwipe.PhotoSwipeClass.show: Starting index out of range";this.isAlreadyGettingPage=this.getWindowDimensions();h.setActivateInstance(this);this.windowDimensions=this.getWindowDimensions();this.settings.target===e?a.DOM.addClass(e.document.body,h.CssClasses.buildingBody):a.DOM.addClass(this.settings.target,h.CssClasses.buildingBody);this.createComponents();a.Events.fire(this,{type:h.EventTypes.onBeforeShow, -target:this});this.documentOverlay.fadeIn(this.settings.fadeInSpeed,this.onDocumentOverlayFadeIn.bind(this))},getWindowDimensions:function(){return{width:a.DOM.windowWidth(),height:a.DOM.windowHeight()}},createComponents:function(){this.documentOverlay=new c.DocumentOverlayClass(this.settings);this.carousel=new g.CarouselClass(this.cache,this.settings);this.uiLayer=new i.UILayerClass(this.settings);this.settings.captionAndToolbarHide||(this.toolbar=new f.ToolbarClass(this.cache,this.settings))},resetPosition:function(){if(!this._isResettingPosition){var b= -this.getWindowDimensions();this._isResettingPosition=!0;this.windowDimensions=b;this.destroyZoomPanRotate();this.documentOverlay.resetPosition();this.carousel.resetPosition();a.isNothing(this.toolbar)||this.toolbar.resetPosition();this.uiLayer.resetPosition();this._isResettingPosition=!1;a.Events.fire(this,{type:h.EventTypes.onResetPosition,target:this})}},addEventHandler:function(b,c){a.Events.add(this,b,c)},addEventHandlers:function(){a.isNothing(this.windowOrientationChangeHandler)&&(this.windowOrientationChangeHandler= -this.onWindowOrientationChange.bind(this),this.windowScrollHandler=this.onWindowScroll.bind(this),this.keyDownHandler=this.onKeyDown.bind(this),this.windowHashChangeHandler=this.onWindowHashChange.bind(this),this.uiLayerTouchHandler=this.onUILayerTouch.bind(this),this.carouselSlideByEndHandler=this.onCarouselSlideByEnd.bind(this),this.carouselSlideshowStartHandler=this.onCarouselSlideshowStart.bind(this),this.carouselSlideshowStopHandler=this.onCarouselSlideshowStop.bind(this),this.toolbarTapHandler= -this.onToolbarTap.bind(this),this.toolbarBeforeShowHandler=this.onToolbarBeforeShow.bind(this),this.toolbarShowHandler=this.onToolbarShow.bind(this),this.toolbarBeforeHideHandler=this.onToolbarBeforeHide.bind(this),this.toolbarHideHandler=this.onToolbarHide.bind(this),this.mouseWheelHandler=this.onMouseWheel.bind(this),this.zoomPanRotateTransformHandler=this.onZoomPanRotateTransform.bind(this));a.Browser.android?this.orientationEventName="resize":a.Browser.iOS&&!a.Browser.safari?a.Events.add(e.document.body, -"orientationchange",this.windowOrientationChangeHandler):this.orientationEventName=!a.isNothing(e.onorientationchange)?"orientationchange":"resize";a.isNothing(this.orientationEventName)||a.Events.add(e,this.orientationEventName,this.windowOrientationChangeHandler);this.settings.target===e&&a.Events.add(e,"scroll",this.windowScrollHandler);this.settings.enableKeyboard&&a.Events.add(e.document,"keydown",this.keyDownHandler);this.isBackEventSupported&&this.settings.backButtonHideEnabled&&(this.windowHashChangeHandler= -this.onWindowHashChange.bind(this),this.settings.jQueryMobile?e.location.hash=this.settings.jQueryMobileDialogHash:(this.currentHistoryHashValue="PhotoSwipe"+(new Date).getTime().toString(),e.location.hash=this.currentHistoryHashValue),a.Events.add(e,"hashchange",this.windowHashChangeHandler));this.settings.enableMouseWheel&&a.Events.add(e,"mousewheel",this.mouseWheelHandler);a.Events.add(this.uiLayer,a.TouchElement.EventTypes.onTouch,this.uiLayerTouchHandler);a.Events.add(this.carousel,g.EventTypes.onSlideByEnd, -this.carouselSlideByEndHandler);a.Events.add(this.carousel,g.EventTypes.onSlideshowStart,this.carouselSlideshowStartHandler);a.Events.add(this.carousel,g.EventTypes.onSlideshowStop,this.carouselSlideshowStopHandler);a.isNothing(this.toolbar)||(a.Events.add(this.toolbar,f.EventTypes.onTap,this.toolbarTapHandler),a.Events.add(this.toolbar,f.EventTypes.onBeforeShow,this.toolbarBeforeShowHandler),a.Events.add(this.toolbar,f.EventTypes.onShow,this.toolbarShowHandler),a.Events.add(this.toolbar,f.EventTypes.onBeforeHide, -this.toolbarBeforeHideHandler),a.Events.add(this.toolbar,f.EventTypes.onHide,this.toolbarHideHandler))},removeEventHandlers:function(){a.Browser.iOS&&!a.Browser.safari&&a.Events.remove(e.document.body,"orientationchange",this.windowOrientationChangeHandler);a.isNothing(this.orientationEventName)||a.Events.remove(e,this.orientationEventName,this.windowOrientationChangeHandler);a.Events.remove(e,"scroll",this.windowScrollHandler);this.settings.enableKeyboard&&a.Events.remove(e.document,"keydown",this.keyDownHandler); -this.isBackEventSupported&&(this.settings.backButtonHideEnabled&&null!==this.windowHashChangeHandler)&&a.Events.remove(e,"hashchange",this.windowHashChangeHandler);this.settings.enableMouseWheel&&a.Events.remove(e,"mousewheel",this.mouseWheelHandler);a.isNothing(this.uiLayer)||a.Events.remove(this.uiLayer,a.TouchElement.EventTypes.onTouch,this.uiLayerTouchHandler);a.isNothing(this.toolbar)||(a.Events.remove(this.carousel,g.EventTypes.onSlideByEnd,this.carouselSlideByEndHandler),a.Events.remove(this.carousel, -g.EventTypes.onSlideshowStart,this.carouselSlideshowStartHandler),a.Events.remove(this.carousel,g.EventTypes.onSlideshowStop,this.carouselSlideshowStopHandler));a.isNothing(this.toolbar)||(a.Events.remove(this.toolbar,f.EventTypes.onTap,this.toolbarTapHandler),a.Events.remove(this.toolbar,f.EventTypes.onBeforeShow,this.toolbarBeforeShowHandler),a.Events.remove(this.toolbar,f.EventTypes.onShow,this.toolbarShowHandler),a.Events.remove(this.toolbar,f.EventTypes.onBeforeHide,this.toolbarBeforeHideHandler), -a.Events.remove(this.toolbar,f.EventTypes.onHide,this.toolbarHideHandler))},hide:function(){if(!this.settings.preventHide){if(a.isNothing(this.documentOverlay))throw"Code.PhotoSwipe.PhotoSwipeClass.hide: PhotoSwipe instance is already hidden";a.isNothing(this.hiding)&&(this.clearUIWebViewResetPositionTimeout(),this.destroyZoomPanRotate(),this.removeEventHandlers(),a.Events.fire(this,{type:h.EventTypes.onBeforeHide,target:this}),this.uiLayer.dispose(),this.uiLayer=null,a.isNothing(this.toolbar)||(this.toolbar.dispose(), -this.toolbar=null),this.carousel.dispose(),this.carousel=null,a.DOM.removeClass(e.document.body,h.CssClasses.activeBody),a.DOM.removeClass(e.document.getElementsByTagName("html")[0],h.CssClasses.activeBody),this.documentOverlay.dispose(),this.documentOverlay=null,this._isResettingPosition=!1,h.unsetActivateInstance(this),a.Events.fire(this,{type:h.EventTypes.onHide,target:this}),this.goBackInHistory())}},goBackInHistory:function(){this.isBackEventSupported&&this.settings.backButtonHideEnabled&&(this.backButtonClicked|| -e.history.back())},play:function(){!this.isZoomActive()&&(!this.settings.preventSlideshow&&!a.isNothing(this.carousel))&&(!a.isNothing(this.toolbar)&&this.toolbar.isVisible&&this.toolbar.fadeOut(),this.carousel.startSlideshow())},stop:function(){this.isZoomActive()||a.isNothing(this.carousel)||this.carousel.stopSlideshow()},previous:function(){this.isZoomActive()||a.isNothing(this.carousel)||this.carousel.previous()},next:function(){this.isZoomActive()||a.isNothing(this.carousel)||this.carousel.next()}, -toggleToolbar:function(){this.isZoomActive()||a.isNothing(this.toolbar)||this.toolbar.toggleVisibility(this.currentIndex)},fadeOutToolbarIfVisible:function(){!a.isNothing(this.toolbar)&&(this.toolbar.isVisible&&0g&&(b.point.x=g);b.point.yc&&(b.point.y=c);this.createZoomPanRotate(); -this.isZoomActive()&&this.zoomPanRotate.zoomAndPanToPoint(this.settings.doubleTapZoomLevel,b.point);break;case a.TouchElement.ActionTypes.gestureStart:this.createZoomPanRotate()}a.Events.fire(this,{type:h.EventTypes.onTouch,target:this,point:b.point,action:b.action})},onCarouselSlideByEnd:function(b){this.currentIndex=b.cacheIndex;a.isNothing(this.toolbar)||(this.toolbar.setCaption(this.currentIndex),this.toolbar.setToolbarStatus(this.currentIndex));a.Events.fire(this,{type:h.EventTypes.onDisplayImage, -target:this,action:b.action,index:b.cacheIndex})},onToolbarTap:function(b){switch(b.action){case f.ToolbarAction.next:this.next();break;case f.ToolbarAction.previous:this.previous();break;case f.ToolbarAction.close:this.hide();break;case f.ToolbarAction.play:this.play()}a.Events.fire(this,{type:h.EventTypes.onToolbarTap,target:this,toolbarAction:b.action,tapTarget:b.tapTarget})},onMouseWheel:function(b){var c=a.Events.getWheelDelta(b);b.timeStamp-(this.mouseWheelStartTime||0)c?this.next():0c.DOM.windowHeight()}};c.Browser._detect()})(window,window.Code.Util); -(function(e,c){c.extend(c,{Events:{add:function(a,b,d){this._checkHandlersProperty(a);"mousewheel"===b&&(b=this._normaliseMouseWheelType());"undefined"===typeof a.__eventHandlers[b]&&(a.__eventHandlers[b]=[]);a.__eventHandlers[b].push(d);this._isBrowserObject(a)&&a.addEventListener(b,d,!1)},remove:function(a,b,d){this._checkHandlersProperty(a);"mousewheel"===b&&(b=this._normaliseMouseWheelType());if(a.__eventHandlers[b]instanceof Array){var f,g,e=a.__eventHandlers[b];if(c.isNothing(d)){if(this._isBrowserObject(a)){f= -0;for(g=e.length;fj.length){a.dispatchEvent(d);return}}this._checkHandlersProperty(a);d="string"===typeof b?{type:b}:b;d.target||(d.target=a);if(!d.type)throw Error("Event object missing 'type' property.");if(a.__eventHandlers[d.type]instanceof Array){g=a.__eventHandlers[d.type];j.unshift(d);d=0;for(f=g.length;d=g&&(g=1);if(0>=b&&(c.DOM.setStyle(a,"opacity",g),!c.isNothing(d))){d(a); -return}1<=c.DOM.getStyle(a,"opacity")&&c.DOM.setStyle(a,"opacity",0);c.Browser.isCSSTransformSupported?this._applyTransition(a,"opacity",g,b,d,f):c.isNothing(e.jQuery)||e.jQuery(a).fadeTo(b,g,d)},fadeTo:function(a,b,d,f,c){this.fadeIn(a,d,f,c,b)},fadeOut:function(a,b,d,f){if(0>=b&&(c.DOM.setStyle(a,"opacity",0),!c.isNothing(d))){d(a);return}c.Browser.isCSSTransformSupported?this._applyTransition(a,"opacity",0,b,d,f):e.jQuery(a).fadeTo(b,0,d)},slideBy:function(a,b,d,f,g,h){var j={},b=c.coalesce(b, -0),d=c.coalesce(d,0),h=c.coalesce(h,"ease-out");j[this._transitionPrefix+"Property"]="all";j[this._transitionPrefix+"Delay"]="0";0===f?(j[this._transitionPrefix+"Duration"]="",j[this._transitionPrefix+"TimingFunction"]=""):(j[this._transitionPrefix+"Duration"]=f+"ms",j[this._transitionPrefix+"TimingFunction"]=c.coalesce(h,"ease-out"),c.Events.add(a,this._transitionEndLabel,this._getTransitionEndHandler()));j[this._transformLabel]=c.Browser.is3dSupported?"translate3d("+b+"px, "+d+"px, 0px)":"translate("+ -b+"px, "+d+"px)";c.isNothing(g)||(a.cclallcallback=g);c.DOM.setStyle(a,j);0===f&&e.setTimeout(function(){this._leaveTransforms(a)}.bind(this),this._applyTransitionDelay)},resetTranslate:function(a){var b={};b[this._transformLabel]=b[this._transformLabel]=c.Browser.is3dSupported?"translate3d(0px, 0px, 0px)":"translate(0px, 0px)";c.DOM.setStyle(a,b)},_applyTransition:function(a,b,d,f,g,h){var j={},h=c.coalesce(h,"ease-in");j[this._transitionPrefix+"Property"]=b;j[this._transitionPrefix+"Duration"]= -f+"ms";j[this._transitionPrefix+"TimingFunction"]=h;j[this._transitionPrefix+"Delay"]="0";c.Events.add(a,this._transitionEndLabel,this._getTransitionEndHandler());c.DOM.setStyle(a,j);c.isNothing(g)||(a["ccl"+b+"callback"]=g);e.setTimeout(function(){c.DOM.setStyle(a,b,d)},this._applyTransitionDelay)},_onTransitionEnd:function(a){c.Events.remove(a.currentTarget,this._transitionEndLabel,this._getTransitionEndHandler());this._leaveTransforms(a.currentTarget)},_leaveTransforms:function(a){var b=a.style[this._transitionPrefix+ -"Property"],d=""!==b?"ccl"+b+"callback":"cclallcallback",f,b=c.coalesce(a.style.webkitTransform,a.style.MozTransform,a.style.OTransform,a.style.transform),g,h=e.parseInt(c.DOM.getStyle(a,"left"),0),j=e.parseInt(c.DOM.getStyle(a,"top"),0),i,l,k={};""!==b&&(b=c.Browser.is3dSupported?b.match(/translate3d\((.*?)\)/):b.match(/translate\((.*?)\)/),c.isNothing(b)||(g=b[1].split(", "),i=e.parseInt(g[0],0),l=e.parseInt(g[1],0)));k[this._transitionPrefix+"Property"]="";k[this._transitionPrefix+"Duration"]= -"";k[this._transitionPrefix+"TimingFunction"]="";k[this._transitionPrefix+"Delay"]="";c.DOM.setStyle(a,k);e.setTimeout(function(){if(!c.isNothing(g)){k={};k[this._transformLabel]="";k.left=h+i+"px";k.top=j+l+"px";c.DOM.setStyle(a,k)}if(!c.isNothing(a[d])){f=a[d];delete a[d];f(a)}}.bind(this),this._applyTransitionDelay)}}})})(window,window.Code.Util); -(function(e,c,a){a.registerNamespace("Code.Util.TouchElement");a.TouchElement.EventTypes={onTouch:"CodeUtilTouchElementOnTouch"};a.TouchElement.ActionTypes={touchStart:"touchStart",touchMove:"touchMove",touchEnd:"touchEnd",touchMoveEnd:"touchMoveEnd",tap:"tap",doubleTap:"doubleTap",swipeLeft:"swipeLeft",swipeRight:"swipeRight",swipeUp:"swipeUp",swipeDown:"swipeDown",gestureStart:"gestureStart",gestureChange:"gestureChange",gestureEnd:"gestureEnd"}})(window,window.klass,window.Code.Util); -(function(e,c,a){a.registerNamespace("Code.Util.TouchElement");a.TouchElement.TouchElementClass=c({el:null,captureSettings:null,touchStartPoint:null,touchEndPoint:null,touchStartTime:null,doubleTapTimeout:null,touchStartHandler:null,touchMoveHandler:null,touchEndHandler:null,mouseDownHandler:null,mouseMoveHandler:null,mouseUpHandler:null,mouseOutHandler:null,gestureStartHandler:null,gestureChangeHandler:null,gestureEndHandler:null,swipeThreshold:null,swipeTimeThreshold:null,doubleTapSpeed:null,dispose:function(){var b; -this.removeEventHandlers();for(b in this)a.objectHasProperty(this,b)&&(this[b]=null)},initialize:function(b,d){this.el=b;this.captureSettings={swipe:!1,move:!1,gesture:!1,doubleTap:!1,preventDefaultTouchEvents:!0,allowVerticalScroll:!1};a.extend(this.captureSettings,d);this.swipeThreshold=50;this.doubleTapSpeed=this.swipeTimeThreshold=250;this.touchStartPoint={x:0,y:0};this.touchEndPoint={x:0,y:0}},addEventHandlers:function(){a.isNothing(this.touchStartHandler)&&(this.touchStartHandler=this.onTouchStart.bind(this), -this.touchMoveHandler=this.onTouchMove.bind(this),this.touchEndHandler=this.onTouchEnd.bind(this),this.mouseDownHandler=this.onMouseDown.bind(this),this.mouseMoveHandler=this.onMouseMove.bind(this),this.mouseUpHandler=this.onMouseUp.bind(this),this.mouseOutHandler=this.onMouseOut.bind(this),this.gestureStartHandler=this.onGestureStart.bind(this),this.gestureChangeHandler=this.onGestureChange.bind(this),this.gestureEndHandler=this.onGestureEnd.bind(this));a.Events.add(this.el,"touchstart",this.touchStartHandler); -this.captureSettings.move&&a.Events.add(this.el,"touchmove",this.touchMoveHandler);a.Events.add(this.el,"touchend",this.touchEndHandler);a.Events.add(this.el,"mousedown",this.mouseDownHandler);a.Browser.isGestureSupported&&this.captureSettings.gesture&&(a.Events.add(this.el,"gesturestart",this.gestureStartHandler),a.Events.add(this.el,"gesturechange",this.gestureChangeHandler),a.Events.add(this.el,"gestureend",this.gestureEndHandler))},removeEventHandlers:function(){a.Events.remove(this.el,"touchstart", -this.touchStartHandler);this.captureSettings.move&&a.Events.remove(this.el,"touchmove",this.touchMoveHandler);a.Events.remove(this.el,"touchend",this.touchEndHandler);a.Events.remove(this.el,"mousedown",this.mouseDownHandler);a.Browser.isGestureSupported&&this.captureSettings.gesture&&(a.Events.remove(this.el,"gesturestart",this.gestureStartHandler),a.Events.remove(this.el,"gesturechange",this.gestureChangeHandler),a.Events.remove(this.el,"gestureend",this.gestureEndHandler))},getTouchPoint:function(a){return{x:a[0].pageX, -y:a[0].pageY}},fireTouchEvent:function(b){var d=0,f=0,c=0,h,d=this.touchEndPoint.x-this.touchStartPoint.x,f=this.touchEndPoint.y-this.touchStartPoint.y,c=Math.sqrt(d*d+f*f);if(this.captureSettings.swipe&&(h=new Date,h-=this.touchStartTime,h<=this.swipeTimeThreshold)){if(e.Math.abs(d)>=this.swipeThreshold){a.Events.fire(this,{type:a.TouchElement.EventTypes.onTouch,target:this,point:this.touchEndPoint,action:0>d?a.TouchElement.ActionTypes.swipeLeft:a.TouchElement.ActionTypes.swipeRight,targetEl:b.target, -currentTargetEl:b.currentTarget});return}if(e.Math.abs(f)>=this.swipeThreshold){a.Events.fire(this,{type:a.TouchElement.EventTypes.onTouch,target:this,point:this.touchEndPoint,action:0>f?a.TouchElement.ActionTypes.swipeUp:a.TouchElement.ActionTypes.swipeDown,targetEl:b.target,currentTargetEl:b.currentTarget});return}}1this.imageEl.naturalHeight;this.imageEl.isLoading=!1;a.Events.fire(this,{type:b.Image.EventTypes.onLoad,target:this})},onImageError:function(){this.imageEl.onload=null;this.imageEl.onerror=null;this.imageEl.onabort=null;this.imageEl.isLoading=!1;this.imageEl.isError=!0;a.Events.fire(this,{type:b.Image.EventTypes.onError, -target:this})}})})(window,window.klass,window.Code.Util); -(function(e,c,a){a.registerNamespace("Code.PhotoSwipe.Cache");e=e.Code.PhotoSwipe;e.Cache.Mode={normal:"normal",aggressive:"aggressive"};e.Cache.Functions={getImageSource:function(a){return a.href},getImageCaption:function(b){if("IMG"===b.nodeName)return a.DOM.getAttribute(b,"alt");var d,f,c;d=0;for(f=b.childNodes.length;df&&(f=this.initialBodyHeight),a.DOM.windowHeight()>f&&(f= -a.DOM.windowHeight())):(b=a.DOM.width(this.settings.target),f=a.DOM.height(this.settings.target),c="0px");a.DOM.setStyle(this.el,{width:b,height:f,top:c})},fadeIn:function(b,f){this.resetPosition();a.DOM.setStyle(this.el,"opacity",0);a.DOM.show(this.el);a.Animation.fadeIn(this.el,b,f)}})})(window,window.klass,window.Code.Util); -(function(e,c,a){a.registerNamespace("Code.PhotoSwipe.Carousel");e=e.Code.PhotoSwipe;e.Carousel.EventTypes={onSlideByEnd:"PhotoSwipeCarouselOnSlideByEnd",onSlideshowStart:"PhotoSwipeCarouselOnSlideshowStart",onSlideshowStop:"PhotoSwipeCarouselOnSlideshowStop"};e.Carousel.CssClasses={carousel:"ps-carousel",content:"ps-carousel-content",item:"ps-carousel-item",itemLoading:"ps-carousel-item-loading",itemError:"ps-carousel-item-error"};e.Carousel.SlideByAction={previous:"previous",current:"current",next:"next"}})(window, -window.klass,window.Code.Util); -(function(e,c,a){a.registerNamespace("Code.PhotoSwipe.Carousel");var b=e.Code.PhotoSwipe;b.Carousel.CarouselClass=c({el:null,contentEl:null,settings:null,cache:null,slideByEndHandler:null,currentCacheIndex:null,isSliding:null,isSlideshowActive:null,lastSlideByAction:null,touchStartPoint:null,touchStartPosition:null,imageLoadHandler:null,imageErrorHandler:null,slideshowTimeout:null,dispose:function(){var d,f,c;f=0;for(c=this.cache.images.length;fthis.cache.images.length&&(this.settings.loop=!1);this.el=a.DOM.createElement("div",{"class":b.Carousel.CssClasses.carousel},"");a.DOM.setStyle(this.el,{display:"block",position:"absolute",left:0,top:0,overflow:"hidden",zIndex:this.settings.zIndex});a.DOM.hide(this.el);this.contentEl=a.DOM.createElement("div",{"class":b.Carousel.CssClasses.content},"");a.DOM.setStyle(this.contentEl,{display:"block",position:"absolute",left:0,top:0});a.DOM.appendChild(this.contentEl, -this.el);h=3>d.images.length?d.images.length:3;for(c=0;cj&&(c=j/e,e=Math.round(e*c),h=Math.round(h*c)),h>i)c=i/h,h=Math.round(h*c),e=Math.round(e*c)}else c=b.isLandscape?j/b.naturalWidth:i/b.naturalHeight,e=Math.round(b.naturalWidth* -c),h=Math.round(b.naturalHeight*c),"zoom"===this.settings.imageScaleMethod?(c=1,hj?c=j/e:h>i&&(c=i/h),1!==c&&(e=Math.round(e*c),h=Math.round(h*c)));c=Math.round((i-h)/2)+"px";j=Math.round((j-e)/2)+"px";a.DOM.setStyle(b,{position:"absolute",width:e,height:h,top:c,left:j,display:"block"})}},setContentLeftPosition:function(){var b,c,g;b=this.settings.target===e?a.DOM.windowWidth():a.DOM.width(this.settings.target); -c=this.getItemEls();g=0;this.settings.loop?g=-1*(b+this.settings.margin):this.currentCacheIndex===this.cache.images.length-1?g=-1*(c.length-1)*(b+this.settings.margin):0this.cache.images.length-1&&(b=0),0>e&&(e=this.cache.images.length-1),b=this.cache.getImages([e,this.currentCacheIndex,b]),a||this.addCacheImageToItemEl(b[1],c[1]),this.addCacheImageToItemEl(b[2],c[2]),this.addCacheImageToItemEl(b[0], -c[0])):1===c.length?a||(b=this.cache.getImages([this.currentCacheIndex]),this.addCacheImageToItemEl(b[0],c[0])):2===c.length?0===this.currentCacheIndex?(b=this.cache.getImages([this.currentCacheIndex,this.currentCacheIndex+1]),a||this.addCacheImageToItemEl(b[0],c[0]),this.addCacheImageToItemEl(b[1],c[1])):(b=this.cache.getImages([this.currentCacheIndex-1,this.currentCacheIndex]),a||this.addCacheImageToItemEl(b[1],c[1]),this.addCacheImageToItemEl(b[0],c[0])):0===this.currentCacheIndex?(b=this.cache.getImages([this.currentCacheIndex, -this.currentCacheIndex+1,this.currentCacheIndex+2]),a||this.addCacheImageToItemEl(b[0],c[0]),this.addCacheImageToItemEl(b[1],c[1]),this.addCacheImageToItemEl(b[2],c[2])):(this.currentCacheIndex===this.cache.images.length-1?(b=this.cache.getImages([this.currentCacheIndex-2,this.currentCacheIndex-1,this.currentCacheIndex]),a||this.addCacheImageToItemEl(b[2],c[2]),this.addCacheImageToItemEl(b[1],c[1])):(b=this.cache.getImages([this.currentCacheIndex-1,this.currentCacheIndex,this.currentCacheIndex+1]), -a||this.addCacheImageToItemEl(b[1],c[1]),this.addCacheImageToItemEl(b[2],c[2])),this.addCacheImageToItemEl(b[0],c[0]))},addCacheImageToItemEl:function(d,c){a.DOM.removeClass(c,b.Carousel.CssClasses.itemError);a.DOM.addClass(c,b.Carousel.CssClasses.itemLoading);a.DOM.removeChildren(c);a.DOM.setStyle(d.imageEl,{display:"none"});a.DOM.appendChild(d.imageEl,c);a.Animation.resetTranslate(d.imageEl);a.Events.add(d,b.Image.EventTypes.onLoad,this.imageLoadHandler);a.Events.add(d,b.Image.EventTypes.onError, -this.imageErrorHandler);d.load()},slideCarousel:function(d,c,g){if(!this.isSliding){var h,j;h=this.settings.target===e?a.DOM.windowWidth()+this.settings.margin:a.DOM.width(this.settings.target)+this.settings.margin;g=a.coalesce(g,this.settings.slideSpeed);if(!(1>e.Math.abs(j))){switch(c){case a.TouchElement.ActionTypes.swipeLeft:d=-1*h;break;case a.TouchElement.ActionTypes.swipeRight:d=h;break;default:j=d.x-this.touchStartPoint.x,d=e.Math.abs(j)>h/2?0d?b.Carousel.SlideByAction.next: -0this.currentCacheIndex?this.currentCacheIndex=this.cache.images.length-1:this.currentCacheIndex=== -this.cache.images.length&&(this.currentCacheIndex=0)):3=d?this.slideByEndHandler():a.Browser.isCSSTransformSupported?(c=a.coalesce(this.contentEl.style.webkitTransform,this.contentEl.style.MozTransform, -this.contentEl.style.OTransform,this.contentEl.style.transform,""),0===c.indexOf("translate3d("+b)?this.slideByEndHandler():0===c.indexOf("translate("+b)?this.slideByEndHandler():a.Animation.slideBy(this.contentEl,b,0,d,this.slideByEndHandler,this.settings.slideTimingFunction)):a.isNothing(e.jQuery)||(c={left:this.getStartingPos().x+b+"px"},"ease-out"===this.settings.animationTimingFunction&&(this.settings.animationTimingFunction="easeOutQuad"),a.isNothing(e.jQuery.easing[this.settings.animationTimingFunction])&& -(this.settings.animationTimingFunction="linear"),e.jQuery(this.contentEl).animate(c,this.settings.slideSpeed,this.settings.animationTimingFunction,this.slideByEndHandler))}})})(window,window.klass,window.Code.Util,window.Code.PhotoSwipe.TouchElement); -(function(e,c,a){a.registerNamespace("Code.PhotoSwipe.Toolbar");var b=e.Code.PhotoSwipe;b.Toolbar.CssClasses={toolbar:"ps-toolbar",toolbarContent:"ps-toolbar-content",toolbarTop:"ps-toolbar-top",caption:"ps-caption",captionBottom:"ps-caption-bottom",captionContent:"ps-caption-content",close:"ps-toolbar-close",play:"ps-toolbar-play",playDisabled:"ps-toolbar-play-disabled",previous:"ps-toolbar-previous",previousDisabled:"ps-toolbar-previous-disabled",next:"ps-toolbar-next",nextDisabled:"ps-toolbar-next-disabled"}; -b.Toolbar.ToolbarAction={close:"close",play:"play",next:"next",previous:"previous",none:"none"};b.Toolbar.EventTypes={onTap:"PhotoSwipeToolbarOnClick",onBeforeShow:"PhotoSwipeToolbarOnBeforeShow",onShow:"PhotoSwipeToolbarOnShow",onBeforeHide:"PhotoSwipeToolbarOnBeforeHide",onHide:"PhotoSwipeToolbarOnHide"};b.Toolbar.getToolbar=function(){return''}})(window,window.klass,window.Code.Util); -(function(e,c,a){a.registerNamespace("Code.PhotoSwipe.Toolbar");var b=e.Code.PhotoSwipe;b.Toolbar.ToolbarClass=c({toolbarEl:null,closeEl:null,playEl:null,previousEl:null,nextEl:null,captionEl:null,captionContentEl:null,currentCaption:null,settings:null,cache:null,timeout:null,isVisible:null,fadeOutHandler:null,touchStartHandler:null,touchMoveHandler:null,clickHandler:null,dispose:function(){var b;this.clearTimeout();this.removeEventHandlers();a.Animation.stop(this.toolbarEl);a.Animation.stop(this.captionEl); -a.DOM.removeChild(this.toolbarEl,this.toolbarEl.parentNode);a.DOM.removeChild(this.captionEl,this.captionEl.parentNode);for(b in this)a.objectHasProperty(this,b)&&(this[b]=null)},initialize:function(d,c){var g;this.settings=c;this.cache=d;this.isVisible=!1;this.fadeOutHandler=this.onFadeOut.bind(this);this.touchStartHandler=this.onTouchStart.bind(this);this.touchMoveHandler=this.onTouchMove.bind(this);this.clickHandler=this.onClick.bind(this);g=b.Toolbar.CssClasses.toolbar;this.settings.captionAndToolbarFlipPosition&& -(g=g+" "+b.Toolbar.CssClasses.toolbarTop);this.toolbarEl=a.DOM.createElement("div",{"class":g},this.settings.getToolbar());a.DOM.setStyle(this.toolbarEl,{left:0,position:"absolute",overflow:"hidden",zIndex:this.settings.zIndex});this.settings.target===e?a.DOM.appendToBody(this.toolbarEl):a.DOM.appendChild(this.toolbarEl,this.settings.target);a.DOM.hide(this.toolbarEl);this.closeEl=a.DOM.find("."+b.Toolbar.CssClasses.close,this.toolbarEl)[0];this.settings.preventHide&&!a.isNothing(this.closeEl)&&a.DOM.hide(this.closeEl); -this.playEl=a.DOM.find("."+b.Toolbar.CssClasses.play,this.toolbarEl)[0];this.settings.preventSlideshow&&!a.isNothing(this.playEl)&&a.DOM.hide(this.playEl);this.nextEl=a.DOM.find("."+b.Toolbar.CssClasses.next,this.toolbarEl)[0];this.previousEl=a.DOM.find("."+b.Toolbar.CssClasses.previous,this.toolbarEl)[0];g=b.Toolbar.CssClasses.caption;this.settings.captionAndToolbarFlipPosition&&(g=g+" "+b.Toolbar.CssClasses.captionBottom);this.captionEl=a.DOM.createElement("div",{"class":g},"");a.DOM.setStyle(this.captionEl, -{left:0,position:"absolute",overflow:"hidden",zIndex:this.settings.zIndex});this.settings.target===e?a.DOM.appendToBody(this.captionEl):a.DOM.appendChild(this.captionEl,this.settings.target);a.DOM.hide(this.captionEl);this.captionContentEl=a.DOM.createElement("div",{"class":b.Toolbar.CssClasses.captionContent},"");a.DOM.appendChild(this.captionContentEl,this.captionEl);this.addEventHandlers()},resetPosition:function(){var b,c,g;this.settings.target===e?(this.settings.captionAndToolbarFlipPosition? -(c=a.DOM.windowScrollTop(),g=a.DOM.windowScrollTop()+a.DOM.windowHeight()-a.DOM.height(this.captionEl)):(c=a.DOM.windowScrollTop()+a.DOM.windowHeight()-a.DOM.height(this.toolbarEl),g=a.DOM.windowScrollTop()),b=a.DOM.windowWidth()):(this.settings.captionAndToolbarFlipPosition?(c="0",g=a.DOM.height(this.settings.target)-a.DOM.height(this.captionEl)):(c=a.DOM.height(this.settings.target)-a.DOM.height(this.toolbarEl),g=0),b=a.DOM.width(this.settings.target));a.DOM.setStyle(this.toolbarEl,{top:c+"px", -width:b});a.DOM.setStyle(this.captionEl,{top:g+"px",width:b})},toggleVisibility:function(a){this.isVisible?this.fadeOut():this.show(a)},show:function(d){a.Animation.stop(this.toolbarEl);a.Animation.stop(this.captionEl);this.resetPosition();this.setToolbarStatus(d);a.Events.fire(this,{type:b.Toolbar.EventTypes.onBeforeShow,target:this});this.showToolbar();this.setCaption(d);this.showCaption();this.isVisible=!0;this.setTimeout();a.Events.fire(this,{type:b.Toolbar.EventTypes.onShow,target:this})},setTimeout:function(){0< -this.settings.captionAndToolbarAutoHideDelay&&(this.clearTimeout(),this.timeout=e.setTimeout(this.fadeOut.bind(this),this.settings.captionAndToolbarAutoHideDelay))},clearTimeout:function(){a.isNothing(this.timeout)||(e.clearTimeout(this.timeout),this.timeout=null)},fadeOut:function(){this.clearTimeout();a.Events.fire(this,{type:b.Toolbar.EventTypes.onBeforeHide,target:this});a.Animation.fadeOut(this.toolbarEl,this.settings.fadeOutSpeed);a.Animation.fadeOut(this.captionEl,this.settings.fadeOutSpeed, -this.fadeOutHandler);this.isVisible=!1},addEventHandlers:function(){a.Browser.isTouchSupported&&(a.Browser.blackberry||a.Events.add(this.toolbarEl,"touchstart",this.touchStartHandler),a.Events.add(this.toolbarEl,"touchmove",this.touchMoveHandler),a.Events.add(this.captionEl,"touchmove",this.touchMoveHandler));a.Events.add(this.toolbarEl,"click",this.clickHandler)},removeEventHandlers:function(){a.Browser.isTouchSupported&&(a.Browser.blackberry||a.Events.remove(this.toolbarEl,"touchstart",this.touchStartHandler), -a.Events.remove(this.toolbarEl,"touchmove",this.touchMoveHandler),a.Events.remove(this.captionEl,"touchmove",this.touchMoveHandler));a.Events.remove(this.toolbarEl,"click",this.clickHandler)},handleTap:function(d){this.clearTimeout();var c;if(d.target===this.nextEl||a.DOM.isChildOf(d.target,this.nextEl))c=b.Toolbar.ToolbarAction.next;else if(d.target===this.previousEl||a.DOM.isChildOf(d.target,this.previousEl))c=b.Toolbar.ToolbarAction.previous;else if(d.target===this.closeEl||a.DOM.isChildOf(d.target, -this.closeEl))c=b.Toolbar.ToolbarAction.close;else if(d.target===this.playEl||a.DOM.isChildOf(d.target,this.playEl))c=b.Toolbar.ToolbarAction.play;this.setTimeout();a.isNothing(c)&&(c=b.Toolbar.ToolbarAction.none);a.Events.fire(this,{type:b.Toolbar.EventTypes.onTap,target:this,action:c,tapTarget:d.target})},setCaption:function(b){a.DOM.removeChildren(this.captionContentEl);this.currentCaption=a.coalesce(this.cache.images[b].caption,"\u00a0");a.isObject(this.currentCaption)?a.DOM.appendChild(this.currentCaption, -this.captionContentEl):(""===this.currentCaption&&(this.currentCaption="\u00a0"),a.DOM.appendText(this.currentCaption,this.captionContentEl));this.currentCaption="\u00a0"===this.currentCaption?"":this.currentCaption;this.resetPosition()},showToolbar:function(){a.DOM.setStyle(this.toolbarEl,{opacity:this.settings.captionAndToolbarOpacity});a.DOM.show(this.toolbarEl)},showCaption:function(){(""===this.currentCaption||1>this.captionContentEl.childNodes.length)&&!this.settings.captionAndToolbarShowEmptyCaptions? -a.DOM.hide(this.captionEl):(a.DOM.setStyle(this.captionEl,{opacity:this.settings.captionAndToolbarOpacity}),a.DOM.show(this.captionEl))},setToolbarStatus:function(d){this.settings.loop||(a.DOM.removeClass(this.previousEl,b.Toolbar.CssClasses.previousDisabled),a.DOM.removeClass(this.nextEl,b.Toolbar.CssClasses.nextDisabled),a.DOM.removeClass(this.playEl,b.Toolbar.CssClasses.playDisabled),0this.settings.maxUserZoom&&(a=this.settings.maxUserZoom);return a},setStartingScaleAndRotation:function(a,b){this.transformSettings.startingScale=this.getScale(a);this.transformSettings.startingRotation=(this.transformSettings.startingRotation+b)%360},zoomRotate:function(a,b){this.transformSettings.scale=this.getScale(a);this.transformSettings.rotation=this.transformSettings.startingRotation+b;this.applyTransform()},panStart:function(a){this.setStartingTranslateFromCurrentTransform(); -this.panStartingPoint={x:a.x,y:a.y}},pan:function(a){var b=(a.y-this.panStartingPoint.y)/this.transformSettings.scale;this.transformSettings.translateX=this.transformSettings.startingTranslateX+(a.x-this.panStartingPoint.x)/this.transformSettings.scale;this.transformSettings.translateY=this.transformSettings.startingTranslateY+b;this.applyTransform()},zoomAndPanToPoint:function(b,c){if(this.settings.target===e){this.panStart({x:a.DOM.windowWidth()/2,y:a.DOM.windowHeight()/2});var g=(c.y-this.panStartingPoint.y)/ -this.transformSettings.scale;this.transformSettings.translateX=-1*(this.transformSettings.startingTranslateX+(c.x-this.panStartingPoint.x)/this.transformSettings.scale);this.transformSettings.translateY=-1*(this.transformSettings.startingTranslateY+g)}this.setStartingScaleAndRotation(b,0);this.transformSettings.scale=this.transformSettings.startingScale;this.transformSettings.rotation=0;this.applyTransform()},applyTransform:function(){var c=this.transformSettings.rotation%360,f=e.parseInt(this.transformSettings.translateX, -10),g=e.parseInt(this.transformSettings.translateY,10),h="scale("+this.transformSettings.scale+") rotate("+c+"deg) translate("+f+"px, "+g+"px)";a.DOM.setStyle(this.transformEl,{webkitTransform:h,MozTransform:h,msTransform:h,OTransform:h,transform:h});a.Events.fire(this,{target:this,type:b.ZoomPanRotate.EventTypes.onTransform,scale:this.transformSettings.scale,rotation:this.transformSettings.rotation,rotationDegs:c,translateX:f,translateY:g})}})})(window,window.klass,window.Code.Util); -(function(e,c){c.registerNamespace("Code.PhotoSwipe");var a=e.Code.PhotoSwipe;a.CssClasses={buildingBody:"ps-building",activeBody:"ps-active"};a.EventTypes={onBeforeShow:"PhotoSwipeOnBeforeShow",onShow:"PhotoSwipeOnShow",onBeforeHide:"PhotoSwipeOnBeforeHide",onHide:"PhotoSwipeOnHide",onDisplayImage:"PhotoSwipeOnDisplayImage",onResetPosition:"PhotoSwipeOnResetPosition",onSlideshowStart:"PhotoSwipeOnSlideshowStart",onSlideshowStop:"PhotoSwipeOnSlideshowStop",onTouch:"PhotoSwipeOnTouch",onBeforeCaptionAndToolbarShow:"PhotoSwipeOnBeforeCaptionAndToolbarShow", -onCaptionAndToolbarShow:"PhotoSwipeOnCaptionAndToolbarShow",onBeforeCaptionAndToolbarHide:"PhotoSwipeOnBeforeCaptionAndToolbarHide",onCaptionAndToolbarHide:"PhotoSwipeOnCaptionAndToolbarHide",onToolbarTap:"PhotoSwipeOnToolbarTap",onBeforeZoomPanRotateShow:"PhotoSwipeOnBeforeZoomPanRotateShow",onZoomPanRotateShow:"PhotoSwipeOnZoomPanRotateShow",onBeforeZoomPanRotateHide:"PhotoSwipeOnBeforeZoomPanRotateHide",onZoomPanRotateHide:"PhotoSwipeOnZoomPanRotateHide",onZoomPanRotateTransform:"PhotoSwipeOnZoomPanRotateTransform"}; -a.instances=[];a.activeInstances=[];a.setActivateInstance=function(b){if(-1this.currentIndex||this.currentIndex>this.originalImages.length-1)throw"Code.PhotoSwipe.PhotoSwipeClass.show: Starting index out of range";this.isAlreadyGettingPage=this.getWindowDimensions();i.setActivateInstance(this);this.windowDimensions=this.getWindowDimensions();this.settings.target===e?a.DOM.addClass(e.document.body,i.CssClasses.buildingBody):a.DOM.addClass(this.settings.target,i.CssClasses.buildingBody);this.createComponents();a.Events.fire(this,{type:i.EventTypes.onBeforeShow, -target:this});this.documentOverlay.fadeIn(this.settings.fadeInSpeed,this.onDocumentOverlayFadeIn.bind(this))},getWindowDimensions:function(){return{width:a.DOM.windowWidth(),height:a.DOM.windowHeight()}},createComponents:function(){this.documentOverlay=new d.DocumentOverlayClass(this.settings);this.carousel=new f.CarouselClass(this.cache,this.settings);this.uiLayer=new h.UILayerClass(this.settings);this.settings.captionAndToolbarHide||(this.toolbar=new g.ToolbarClass(this.cache,this.settings))},resetPosition:function(){if(!this._isResettingPosition){var b= -this.getWindowDimensions();this._isResettingPosition=!0;this.windowDimensions=b;this.destroyZoomPanRotate();this.documentOverlay.resetPosition();this.carousel.resetPosition();a.isNothing(this.toolbar)||this.toolbar.resetPosition();this.uiLayer.resetPosition();this._isResettingPosition=!1;a.Events.fire(this,{type:i.EventTypes.onResetPosition,target:this})}},addEventHandler:function(b,c){a.Events.add(this,b,c)},addEventHandlers:function(){a.isNothing(this.windowOrientationChangeHandler)&&(this.windowOrientationChangeHandler= -this.onWindowOrientationChange.bind(this),this.windowScrollHandler=this.onWindowScroll.bind(this),this.keyDownHandler=this.onKeyDown.bind(this),this.windowHashChangeHandler=this.onWindowHashChange.bind(this),this.uiLayerTouchHandler=this.onUILayerTouch.bind(this),this.carouselSlideByEndHandler=this.onCarouselSlideByEnd.bind(this),this.carouselSlideshowStartHandler=this.onCarouselSlideshowStart.bind(this),this.carouselSlideshowStopHandler=this.onCarouselSlideshowStop.bind(this),this.toolbarTapHandler= -this.onToolbarTap.bind(this),this.toolbarBeforeShowHandler=this.onToolbarBeforeShow.bind(this),this.toolbarShowHandler=this.onToolbarShow.bind(this),this.toolbarBeforeHideHandler=this.onToolbarBeforeHide.bind(this),this.toolbarHideHandler=this.onToolbarHide.bind(this),this.mouseWheelHandler=this.onMouseWheel.bind(this),this.zoomPanRotateTransformHandler=this.onZoomPanRotateTransform.bind(this));a.Browser.android?this.orientationEventName="resize":a.Browser.iOS&&!a.Browser.safari?a.Events.add(e.document.body, -"orientationchange",this.windowOrientationChangeHandler):this.orientationEventName=!a.isNothing(e.onorientationchange)?"orientationchange":"resize";a.isNothing(this.orientationEventName)||a.Events.add(e,this.orientationEventName,this.windowOrientationChangeHandler);this.settings.target===e&&a.Events.add(e,"scroll",this.windowScrollHandler);this.settings.enableKeyboard&&a.Events.add(e.document,"keydown",this.keyDownHandler);this.isBackEventSupported&&this.settings.backButtonHideEnabled&&(this.windowHashChangeHandler= -this.onWindowHashChange.bind(this),this.settings.jQueryMobile?e.location.hash=this.settings.jQueryMobileDialogHash:(this.currentHistoryHashValue="PhotoSwipe"+(new Date).getTime().toString(),e.location.hash=this.currentHistoryHashValue),a.Events.add(e,"hashchange",this.windowHashChangeHandler));this.settings.enableMouseWheel&&a.Events.add(e,"mousewheel",this.mouseWheelHandler);a.Events.add(this.uiLayer,a.TouchElement.EventTypes.onTouch,this.uiLayerTouchHandler);a.Events.add(this.carousel,f.EventTypes.onSlideByEnd, -this.carouselSlideByEndHandler);a.Events.add(this.carousel,f.EventTypes.onSlideshowStart,this.carouselSlideshowStartHandler);a.Events.add(this.carousel,f.EventTypes.onSlideshowStop,this.carouselSlideshowStopHandler);a.isNothing(this.toolbar)||(a.Events.add(this.toolbar,g.EventTypes.onTap,this.toolbarTapHandler),a.Events.add(this.toolbar,g.EventTypes.onBeforeShow,this.toolbarBeforeShowHandler),a.Events.add(this.toolbar,g.EventTypes.onShow,this.toolbarShowHandler),a.Events.add(this.toolbar,g.EventTypes.onBeforeHide, -this.toolbarBeforeHideHandler),a.Events.add(this.toolbar,g.EventTypes.onHide,this.toolbarHideHandler))},removeEventHandlers:function(){a.Browser.iOS&&!a.Browser.safari&&a.Events.remove(e.document.body,"orientationchange",this.windowOrientationChangeHandler);a.isNothing(this.orientationEventName)||a.Events.remove(e,this.orientationEventName,this.windowOrientationChangeHandler);a.Events.remove(e,"scroll",this.windowScrollHandler);this.settings.enableKeyboard&&a.Events.remove(e.document,"keydown",this.keyDownHandler); -this.isBackEventSupported&&(this.settings.backButtonHideEnabled&&null!==this.windowHashChangeHandler)&&a.Events.remove(e,"hashchange",this.windowHashChangeHandler);this.settings.enableMouseWheel&&a.Events.remove(e,"mousewheel",this.mouseWheelHandler);a.isNothing(this.uiLayer)||a.Events.remove(this.uiLayer,a.TouchElement.EventTypes.onTouch,this.uiLayerTouchHandler);a.isNothing(this.toolbar)||(a.Events.remove(this.carousel,f.EventTypes.onSlideByEnd,this.carouselSlideByEndHandler),a.Events.remove(this.carousel, -f.EventTypes.onSlideshowStart,this.carouselSlideshowStartHandler),a.Events.remove(this.carousel,f.EventTypes.onSlideshowStop,this.carouselSlideshowStopHandler));a.isNothing(this.toolbar)||(a.Events.remove(this.toolbar,g.EventTypes.onTap,this.toolbarTapHandler),a.Events.remove(this.toolbar,g.EventTypes.onBeforeShow,this.toolbarBeforeShowHandler),a.Events.remove(this.toolbar,g.EventTypes.onShow,this.toolbarShowHandler),a.Events.remove(this.toolbar,g.EventTypes.onBeforeHide,this.toolbarBeforeHideHandler), -a.Events.remove(this.toolbar,g.EventTypes.onHide,this.toolbarHideHandler))},hide:function(){if(!this.settings.preventHide){if(a.isNothing(this.documentOverlay))throw"Code.PhotoSwipe.PhotoSwipeClass.hide: PhotoSwipe instance is already hidden";a.isNothing(this.hiding)&&(this.clearUIWebViewResetPositionTimeout(),this.destroyZoomPanRotate(),this.removeEventHandlers(),a.Events.fire(this,{type:i.EventTypes.onBeforeHide,target:this}),this.uiLayer.dispose(),this.uiLayer=null,a.isNothing(this.toolbar)||(this.toolbar.dispose(), -this.toolbar=null),this.carousel.dispose(),this.carousel=null,a.DOM.removeClass(e.document.body,i.CssClasses.activeBody),a.DOM.removeClass(e.document.getElementsByTagName("html")[0],i.CssClasses.activeBody),this.documentOverlay.dispose(),this.documentOverlay=null,this._isResettingPosition=!1,i.unsetActivateInstance(this),a.Events.fire(this,{type:i.EventTypes.onHide,target:this}),this.goBackInHistory())}},goBackInHistory:function(){this.isBackEventSupported&&this.settings.backButtonHideEnabled&&(this.backButtonClicked|| -e.history.back())},play:function(){!this.isZoomActive()&&(!this.settings.preventSlideshow&&!a.isNothing(this.carousel))&&(!a.isNothing(this.toolbar)&&this.toolbar.isVisible&&this.toolbar.fadeOut(),this.carousel.startSlideshow())},stop:function(){this.isZoomActive()||a.isNothing(this.carousel)||this.carousel.stopSlideshow()},previous:function(){this.isZoomActive()||a.isNothing(this.carousel)||this.carousel.previous()},next:function(){this.isZoomActive()||a.isNothing(this.carousel)||this.carousel.next()}, -toggleToolbar:function(){this.isZoomActive()||a.isNothing(this.toolbar)||this.toolbar.toggleVisibility(this.currentIndex)},fadeOutToolbarIfVisible:function(){!a.isNothing(this.toolbar)&&(this.toolbar.isVisible&&0g&&(b.point.x=g);b.point.yc&&(b.point.y=c);this.createZoomPanRotate(); -this.isZoomActive()&&this.zoomPanRotate.zoomAndPanToPoint(this.settings.doubleTapZoomLevel,b.point);break;case a.TouchElement.ActionTypes.gestureStart:this.createZoomPanRotate()}a.Events.fire(this,{type:i.EventTypes.onTouch,target:this,point:b.point,action:b.action})},onCarouselSlideByEnd:function(b){this.currentIndex=b.cacheIndex;a.isNothing(this.toolbar)||(this.toolbar.setCaption(this.currentIndex),this.toolbar.setToolbarStatus(this.currentIndex));a.Events.fire(this,{type:i.EventTypes.onDisplayImage, -target:this,action:b.action,index:b.cacheIndex})},onToolbarTap:function(b){switch(b.action){case g.ToolbarAction.next:this.next();break;case g.ToolbarAction.previous:this.previous();break;case g.ToolbarAction.close:this.hide();break;case g.ToolbarAction.play:this.play()}a.Events.fire(this,{type:i.EventTypes.onToolbarTap,target:this,toolbarAction:b.action,tapTarget:b.tapTarget})},onMouseWheel:function(b){var c=a.Events.getWheelDelta(b);b.timeStamp-(this.mouseWheelStartTime||0)c?this.next():0").appendTo(b),e=d.css("display");d.remove();if(e==="none"||e===""){ch||(ch=c.createElement("iframe"),ch.frameBorder=ch.width=ch.height=0),b.appendChild(ch);if(!ci||!ch.createElement)ci=(ch.contentWindow||ch.contentDocument).document,ci.write((c.compatMode==="CSS1Compat"?"":"")+""),ci.close();d=ci.createElement(a),ci.body.appendChild(d),e=f.css(d,"display"),b.removeChild(ch)}cg[a]=e}return cg[a]}function cq(a,b){var c={};f.each(cm.concat.apply([],cm.slice(0,b)),function(){c[this]=a});return c}function cp(){cn=b}function co(){setTimeout(cp,0);return cn=f.now()}function cf(){try{return new a.ActiveXObject("Microsoft.XMLHTTP")}catch(b){}}function ce(){try{return new a.XMLHttpRequest}catch(b){}}function b$(a,c){a.dataFilter&&(c=a.dataFilter(c,a.dataType));var d=a.dataTypes,e={},g,h,i=d.length,j,k=d[0],l,m,n,o,p;for(g=1;g0){c!=="border"&&f.each(e,function(){c||(d-=parseFloat(f.css(a,"padding"+this))||0),c==="margin"?d+=parseFloat(f.css(a,c+this))||0:d-=parseFloat(f.css(a,"border"+this+"Width"))||0});return d+"px"}d=bv(a,b,b);if(d<0||d==null)d=a.style[b]||0;d=parseFloat(d)||0,c&&f.each(e,function(){d+=parseFloat(f.css(a,"padding"+this))||0,c!=="padding"&&(d+=parseFloat(f.css(a,"border"+this+"Width"))||0),c==="margin"&&(d+=parseFloat(f.css(a,c+this))||0)});return d+"px"}function bl(a,b){b.src?f.ajax({url:b.src,async:!1,dataType:"script"}):f.globalEval((b.text||b.textContent||b.innerHTML||"").replace(bd,"/*$0*/")),b.parentNode&&b.parentNode.removeChild(b)}function bk(a){f.nodeName(a,"input")?bj(a):"getElementsByTagName"in a&&f.grep(a.getElementsByTagName("input"),bj)}function bj(a){if(a.type==="checkbox"||a.type==="radio")a.defaultChecked=a.checked}function bi(a){return"getElementsByTagName"in a?a.getElementsByTagName("*"):"querySelectorAll"in a?a.querySelectorAll("*"):[]}function bh(a,b){var c;if(b.nodeType===1){b.clearAttributes&&b.clearAttributes(),b.mergeAttributes&&b.mergeAttributes(a),c=b.nodeName.toLowerCase();if(c==="object")b.outerHTML=a.outerHTML;else if(c!=="input"||a.type!=="checkbox"&&a.type!=="radio"){if(c==="option")b.selected=a.defaultSelected;else if(c==="input"||c==="textarea")b.defaultValue=a.defaultValue}else a.checked&&(b.defaultChecked=b.checked=a.checked),b.value!==a.value&&(b.value=a.value);b.removeAttribute(f.expando)}}function bg(a,b){if(b.nodeType===1&&!!f.hasData(a)){var c=f.expando,d=f.data(a),e=f.data(b,d);if(d=d[c]){var g=d.events;e=e[c]=f.extend({},d);if(g){delete e.handle,e.events={};for(var h in g)for(var i=0,j=g[h].length;i=0===c})}function U(a){return!a||!a.parentNode||a.parentNode.nodeType===11}function M(a,b){return(a&&a!=="*"?a+".":"")+b.replace(y,"`").replace(z,"&")}function L(a){var b,c,d,e,g,h,i,j,k,l,m,n,o,p=[],q=[],r=f._data(this,"events");if(!(a.liveFired===this||!r||!r.live||a.target.disabled||a.button&&a.type==="click")){a.namespace&&(n=new RegExp("(^|\\.)"+a.namespace.split(".").join("\\.(?:.*\\.)?")+"(\\.|$)")),a.liveFired=this;var s=r.live.slice(0);for(i=0;ic)break;a.currentTarget=e.elem,a.data=e.handleObj.data,a.handleObj=e.handleObj,o=e.handleObj.origHandler.apply(e.elem,arguments);if(o===!1||a.isPropagationStopped()){c=e.level,o===!1&&(b=!1);if(a.isImmediatePropagationStopped())break}}return b}}function J(a,c,d){var e=f.extend({},d[0]);e.type=a,e.originalEvent={},e.liveFired=b,f.event.handle.call(c,e),e.isDefaultPrevented()&&d[0].preventDefault()}function D(){return!0}function C(){return!1}function m(a,c,d){var e=c+"defer",g=c+"queue",h=c+"mark",i=f.data(a,e,b,!0);i&&(d==="queue"||!f.data(a,g,b,!0))&&(d==="mark"||!f.data(a,h,b,!0))&&setTimeout(function(){!f.data(a,g,b,!0)&&!f.data(a,h,b,!0)&&(f.removeData(a,e,!0),i.resolve())},0)}function l(a){for(var b in a)if(b!=="toJSON")return!1;return!0}function k(a,c,d){if(d===b&&a.nodeType===1){var e="data-"+c.replace(j,"-$1").toLowerCase();d=a.getAttribute(e);if(typeof d=="string"){try{d=d==="true"?!0:d==="false"?!1:d==="null"?null:f.isNaN(d)?i.test(d)?f.parseJSON(d):d:parseFloat(d)}catch(g){}f.data(a,c,d)}else d=b}return d}var c=a.document,d=a.navigator,e=a.location,f=function(){function K(){if(!e.isReady){try{c.documentElement.doScroll("left")}catch(a){setTimeout(K,1);return}e.ready()}}var e=function(a,b){return new e.fn.init(a,b,h)},f=a.jQuery,g=a.$,h,i=/^(?:[^#<]*(<[\w\W]+>)[^>]*$|#([\w\-]*)$)/,j=/\S/,k=/^\s+/,l=/\s+$/,m=/\d/,n=/^<(\w+)\s*\/?>(?:<\/\1>)?$/,o=/^[\],:{}\s]*$/,p=/\\(?:["\\\/bfnrt]|u[0-9a-fA-F]{4})/g,q=/"[^"\\\n\r]*"|true|false|null|-?\d+(?:\.\d*)?(?:[eE][+\-]?\d+)?/g,r=/(?:^|:|,)(?:\s*\[)+/g,s=/(webkit)[ \/]([\w.]+)/,t=/(opera)(?:.*version)?[ \/]([\w.]+)/,u=/(msie) ([\w.]+)/,v=/(mozilla)(?:.*? rv:([\w.]+))?/,w=/-([a-z]|[0-9])/ig,x=/^-ms-/,y=function(a,b){return(b+"").toUpperCase()},z=d.userAgent,A,B,C,D=Object.prototype.toString,E=Object.prototype.hasOwnProperty,F=Array.prototype.push,G=Array.prototype.slice,H=String.prototype.trim,I=Array.prototype.indexOf,J={};e.fn=e.prototype={constructor:e,init:function(a,d,f){var g,h,j,k;if(!a)return this;if(a.nodeType){this.context=this[0]=a,this.length=1;return this}if(a==="body"&&!d&&c.body){this.context=c,this[0]=c.body,this.selector=a,this.length=1;return this}if(typeof a=="string"){a.charAt(0)!=="<"||a.charAt(a.length-1)!==">"||a.length<3?g=i.exec(a):g=[null,a,null];if(g&&(g[1]||!d)){if(g[1]){d=d instanceof e?d[0]:d,k=d?d.ownerDocument||d:c,j=n.exec(a),j?e.isPlainObject(d)?(a=[c.createElement(j[1])],e.fn.attr.call(a,d,!0)):a=[k.createElement(j[1])]:(j=e.buildFragment([g[1]],[k]),a=(j.cacheable?e.clone(j.fragment):j.fragment).childNodes);return e.merge(this,a)}h=c.getElementById(g[2]);if(h&&h.parentNode){if(h.id!==g[2])return f.find(a);this.length=1,this[0]=h}this.context=c,this.selector=a;return this}return!d||d.jquery?(d||f).find(a):this.constructor(d).find(a)}if(e.isFunction(a))return f.ready(a);a.selector!==b&&(this.selector=a.selector,this.context=a.context);return e.makeArray(a,this)},selector:"",jquery:"1.6.4",length:0,size:function(){return this.length},toArray:function(){return G.call(this,0)},get:function(a){return a==null?this.toArray():a<0?this[this.length+a]:this[a]},pushStack:function(a,b,c){var d=this.constructor();e.isArray(a)?F.apply(d,a):e.merge(d,a),d.prevObject=this,d.context=this.context,b==="find"?d.selector=this.selector+(this.selector?" ":"")+c:b&&(d.selector=this.selector+"."+b+"("+c+")");return d},each:function(a,b){return e.each(this,a,b)},ready:function(a){e.bindReady(),B.done(a);return this},eq:function(a){return a===-1?this.slice(a):this.slice(a,+a+1)},first:function(){return this.eq(0)},last:function(){return this.eq(-1)},slice:function(){return this.pushStack(G.apply(this,arguments),"slice",G.call(arguments).join(","))},map:function(a){return this.pushStack(e.map(this,function(b,c){return a.call(b,c,b)}))},end:function(){return this.prevObject||this.constructor(null)},push:F,sort:[].sort,splice:[].splice},e.fn.init.prototype=e.fn,e.extend=e.fn.extend=function(){var a,c,d,f,g,h,i=arguments[0]||{},j=1,k=arguments.length,l=!1;typeof i=="boolean"&&(l=i,i=arguments[1]||{},j=2),typeof i!="object"&&!e.isFunction(i)&&(i={}),k===j&&(i=this,--j);for(;j0)return;B.resolveWith(c,[e]),e.fn.trigger&&e(c).trigger("ready").unbind("ready")}},bindReady:function(){if(!B){B=e._Deferred();if(c.readyState==="complete")return setTimeout(e.ready,1);if(c.addEventListener)c.addEventListener("DOMContentLoaded",C,!1),a.addEventListener("load",e.ready,!1);else if(c.attachEvent){c.attachEvent("onreadystatechange",C),a.attachEvent("onload",e.ready);var b=!1;try{b=a.frameElement==null}catch(d){}c.documentElement.doScroll&&b&&K()}}},isFunction:function(a){return e.type(a)==="function"},isArray:Array.isArray||function(a){return e.type(a)==="array"},isWindow:function(a){return a&&typeof a=="object"&&"setInterval"in a},isNaN:function(a){return a==null||!m.test(a)||isNaN(a)},type:function(a){return a==null?String(a):J[D.call(a)]||"object"},isPlainObject:function(a){if(!a||e.type(a)!=="object"||a.nodeType||e.isWindow(a))return!1;try{if(a.constructor&&!E.call(a,"constructor")&&!E.call(a.constructor.prototype,"isPrototypeOf"))return!1}catch(c){return!1}var d;for(d in a);return d===b||E.call(a,d)},isEmptyObject:function(a){for(var b in a)return!1;return!0},error:function(a){throw a},parseJSON:function(b){if(typeof b!="string"||!b)return null;b=e.trim(b);if(a.JSON&&a.JSON.parse)return a.JSON.parse(b);if(o.test(b.replace(p,"@").replace(q,"]").replace(r,"")))return(new Function("return "+b))();e.error("Invalid JSON: "+b)},parseXML:function(c){var d,f;try{a.DOMParser?(f=new DOMParser,d=f.parseFromString(c,"text/xml")):(d=new ActiveXObject("Microsoft.XMLDOM"),d.async="false",d.loadXML(c))}catch(g){d=b}(!d||!d.documentElement||d.getElementsByTagName("parsererror").length)&&e.error("Invalid XML: "+c);return d},noop:function(){},globalEval:function(b){b&&j.test(b)&&(a.execScript||function(b){a.eval.call(a,b)})(b)},camelCase:function(a){return a.replace(x,"ms-").replace(w,y)},nodeName:function(a,b){return a.nodeName&&a.nodeName.toUpperCase()===b.toUpperCase()},each:function(a,c,d){var f,g=0,h=a.length,i=h===b||e.isFunction(a);if(d){if(i){for(f in a)if(c.apply(a[f],d)===!1)break}else for(;g0&&a[0]&&a[j-1]||j===0||e.isArray(a));if(k)for(;i1?h.call(arguments,0):c,--e||g.resolveWith(g,h.call(b,0))}}var b=arguments,c=0,d=b.length,e=d,g=d<=1&&a&&f.isFunction(a.promise)?a:f.Deferred();if(d>1){for(;ca",d=a.getElementsByTagName("*"),e=a.getElementsByTagName("a")[0];if(!d||!d.length||!e)return{};g=c.createElement("select"),h=g.appendChild(c.createElement("option")),i=a.getElementsByTagName("input")[0],k={leadingWhitespace:a.firstChild.nodeType===3,tbody:!a.getElementsByTagName("tbody").length,htmlSerialize:!!a.getElementsByTagName("link").length,style:/top/.test(e.getAttribute("style")),hrefNormalized:e.getAttribute("href")==="/a",opacity:/^0.55$/.test(e.style.opacity),cssFloat:!!e.style.cssFloat,checkOn:i.value==="on",optSelected:h.selected,getSetAttribute:a.className!=="t",submitBubbles:!0,changeBubbles:!0,focusinBubbles:!1,deleteExpando:!0,noCloneEvent:!0,inlineBlockNeedsLayout:!1,shrinkWrapBlocks:!1,reliableMarginRight:!0},i.checked=!0,k.noCloneChecked=i.cloneNode(!0).checked,g.disabled=!0,k.optDisabled=!h.disabled;try{delete a.test}catch(v){k.deleteExpando=!1}!a.addEventListener&&a.attachEvent&&a.fireEvent&&(a.attachEvent("onclick",function(){k.noCloneEvent=!1}),a.cloneNode(!0).fireEvent("onclick")),i=c.createElement("input"),i.value="t",i.setAttribute("type","radio"),k.radioValue=i.value==="t",i.setAttribute("checked","checked"),a.appendChild(i),l=c.createDocumentFragment(),l.appendChild(a.firstChild),k.checkClone=l.cloneNode(!0).cloneNode(!0).lastChild.checked,a.innerHTML="",a.style.width=a.style.paddingLeft="1px",m=c.getElementsByTagName("body")[0],o=c.createElement(m?"div":"body"),p={visibility:"hidden",width:0,height:0,border:0,margin:0,background:"none"},m&&f.extend(p,{position:"absolute",left:"-1000px",top:"-1000px"});for(t in p)o.style[t]=p[t];o.appendChild(a),n=m||b,n.insertBefore(o,n.firstChild),k.appendChecked=i.checked,k.boxModel=a.offsetWidth===2,"zoom"in a.style&&(a.style.display="inline",a.style.zoom=1,k.inlineBlockNeedsLayout=a.offsetWidth===2,a.style.display="",a.innerHTML="",k.shrinkWrapBlocks=a.offsetWidth!==2),a.innerHTML="t",q=a.getElementsByTagName("td"),u=q[0].offsetHeight===0,q[0].style.display="",q[1].style.display="none",k.reliableHiddenOffsets=u&&q[0].offsetHeight===0,a.innerHTML="",c.defaultView&&c.defaultView.getComputedStyle&&(j=c.createElement("div"),j.style.width="0",j.style.marginRight="0",a.appendChild(j),k.reliableMarginRight=(parseInt((c.defaultView.getComputedStyle(j,null)||{marginRight:0}).marginRight,10)||0)===0),o.innerHTML="",n.removeChild(o);if(a.attachEvent)for(t in{submit:1,change:1,focusin:1})s="on"+t,u=s in a,u||(a.setAttribute(s,"return;"),u=typeof a[s]=="function"),k[t+"Bubbles"]=u;o=l=g=h=m=j=a=i=null;return k}(),f.boxModel=f.support.boxModel;var i=/^(?:\{.*\}|\[.*\])$/,j=/([A-Z])/g;f.extend({cache:{},uuid:0,expando:"jQuery"+(f.fn.jquery+Math.random()).replace(/\D/g,""),noData:{embed:!0,object:"clsid:D27CDB6E-AE6D-11cf-96B8-444553540000",applet:!0},hasData:function(a){a=a.nodeType?f.cache[a[f.expando]]:a[f.expando];return!!a&&!l(a)},data:function(a,c,d,e){if(!!f.acceptData(a)){var g,h,i=f.expando,j=typeof c=="string",k=a.nodeType,l=k?f.cache:a,m=k?a[f.expando]:a[f.expando]&&f.expando;if((!m||e&&m&&l[m]&&!l[m][i])&&j&&d===b)return;m||(k?a[f.expando]=m=++f.uuid:m=f.expando),l[m]||(l[m]={},k||(l[m].toJSON=f.noop));if(typeof c=="object"||typeof c=="function")e?l[m][i]=f.extend(l[m][i],c):l[m]=f.extend(l[m],c);g=l[m],e&&(g[i]||(g[i]={}),g=g[i]),d!==b&&(g[f.camelCase(c)]=d);if(c==="events"&&!g[c])return g[i]&&g[i].events;j?(h=g[c],h==null&&(h=g[f.camelCase(c)])):h=g;return h}},removeData:function(a,b,c){if(!!f.acceptData(a)){var d,e=f.expando,g=a.nodeType,h=g?f.cache:a,i=g?a[f.expando]:f.expando;if(!h[i])return;if(b){d=c?h[i][e]:h[i];if(d){d[b]||(b=f.camelCase(b)),delete d[b];if(!l(d))return}}if(c){delete h[i][e];if(!l(h[i]))return}var j=h[i][e];f.support.deleteExpando||!h.setInterval?delete h[i]:h[i]=null,j?(h[i]={},g||(h[i].toJSON=f.noop),h[i][e]=j):g&&(f.support.deleteExpando?delete a[f.expando]:a.removeAttribute?a.removeAttribute(f.expando):a[f.expando]=null)}},_data:function(a,b,c){return f.data(a,b,c,!0)},acceptData:function(a){if(a.nodeName){var b=f.noData[a.nodeName.toLowerCase()];if(b)return b!==!0&&a.getAttribute("classid")===b}return!0}}),f.fn.extend({data:function(a,c){var d=null;if(typeof a=="undefined"){if(this.length){d=f.data(this[0]);if(this[0].nodeType===1){var e=this[0].attributes,g;for(var h=0,i=e.length;h-1)return!0;return!1},val:function(a){var c,d,e=this[0];if(!arguments.length){if(e){c=f.valHooks[e.nodeName.toLowerCase()]||f.valHooks[e.type];if(c&&"get"in c&&(d=c.get(e,"value"))!==b)return d;d=e.value;return typeof d=="string"?d.replace(p,""):d==null?"":d}return b}var g=f.isFunction(a);return this.each(function(d){var e=f(this),h;if(this.nodeType===1){g?h=a.call(this,d,e.val()):h=a,h==null?h="":typeof h=="number"?h+="":f.isArray(h)&&(h=f.map(h,function(a){return a==null?"":a+""})),c=f.valHooks[this.nodeName.toLowerCase()]||f.valHooks[this.type];if(!c||!("set"in c)||c.set(this,h,"value")===b)this.value=h}})}}),f.extend({valHooks:{option:{get:function(a){var b=a.attributes.value;return!b||b.specified?a.value:a.text}},select:{get:function(a){var b,c=a.selectedIndex,d=[],e=a.options,g=a.type==="select-one";if(c<0)return null;for(var h=g?c:0,i=g?c+1:e.length;h=0}),c.length||(a.selectedIndex=-1);return c}}},attrFn:{val:!0,css:!0,html:!0,text:!0,data:!0,width:!0,height:!0,offset:!0},attrFix:{tabindex:"tabIndex"},attr:function(a,c,d,e){var g=a.nodeType;if(!a||g===3||g===8||g===2)return b;if(e&&c in f.attrFn)return f(a)[c](d);if(!("getAttribute"in a))return f.prop(a,c,d);var h,i,j=g!==1||!f.isXMLDoc(a);j&&(c=f.attrFix[c]||c,i=f.attrHooks[c],i||(t.test(c)?i=v:u&&(i=u)));if(d!==b){if(d===null){f.removeAttr(a,c);return b}if(i&&"set"in i&&j&&(h=i.set(a,d,c))!==b)return h;a.setAttribute(c,""+d);return d}if(i&&"get"in i&&j&&(h=i.get(a,c))!==null)return h;h=a.getAttribute(c);return h===null?b:h},removeAttr:function(a,b){var c;a.nodeType===1&&(b=f.attrFix[b]||b,f.attr(a,b,""),a.removeAttribute(b),t.test(b)&&(c=f.propFix[b]||b)in a&&(a[c]=!1))},attrHooks:{type:{set:function(a,b){if(q.test(a.nodeName)&&a.parentNode)f.error("type property can't be changed");else if(!f.support.radioValue&&b==="radio"&&f.nodeName(a,"input")){var c=a.value;a.setAttribute("type",b),c&&(a.value=c);return b}}},value:{get:function(a,b){if(u&&f.nodeName(a,"button"))return u.get(a,b);return b in a?a.value:null},set:function(a,b,c){if(u&&f.nodeName(a,"button"))return u.set(a,b,c);a.value=b}}},propFix:{tabindex:"tabIndex",readonly:"readOnly","for":"htmlFor","class":"className",maxlength:"maxLength",cellspacing:"cellSpacing",cellpadding:"cellPadding",rowspan:"rowSpan",colspan:"colSpan",usemap:"useMap",frameborder:"frameBorder",contenteditable:"contentEditable"},prop:function(a,c,d){var e=a.nodeType;if(!a||e===3||e===8||e===2)return b;var g,h,i=e!==1||!f.isXMLDoc(a);i&&(c=f.propFix[c]||c,h=f.propHooks[c]);return d!==b?h&&"set"in h&&(g=h.set(a,d,c))!==b?g:a[c]=d:h&&"get"in h&&(g=h.get(a,c))!==null?g:a[c]},propHooks:{tabIndex:{get:function(a){var c=a.getAttributeNode("tabindex");return c&&c.specified?parseInt(c.value,10):r.test(a.nodeName)||s.test(a.nodeName)&&a.href?0:b}}}}),f.attrHooks.tabIndex=f.propHooks.tabIndex,v={get:function(a,c){var d;return f.prop(a,c)===!0||(d=a.getAttributeNode(c))&&d.nodeValue!==!1?c.toLowerCase():b},set:function(a,b,c){var d;b===!1?f.removeAttr(a,c):(d=f.propFix[c]||c,d in a&&(a[d]=!0),a.setAttribute(c,c.toLowerCase()));return c}},f.support.getSetAttribute||(u=f.valHooks.button={get:function(a,c){var d;d=a.getAttributeNode(c);return d&&d.nodeValue!==""?d.nodeValue:b},set:function(a,b,d){var e=a.getAttributeNode(d);e||(e=c.createAttribute(d),a.setAttributeNode(e));return e.nodeValue=b+""}},f.each(["width","height"],function(a,b){f.attrHooks[b]=f.extend(f.attrHooks[b],{set:function(a,c){if(c===""){a.setAttribute(b,"auto");return c}}})})),f.support.hrefNormalized||f.each(["href","src","width","height"],function(a,c){f.attrHooks[c]=f.extend(f.attrHooks[c],{get:function(a){var d=a.getAttribute(c,2);return d===null?b:d}})}),f.support.style||(f.attrHooks.style={get:function(a){return a.style.cssText.toLowerCase()||b},set:function(a,b){return a.style.cssText=""+b}}),f.support.optSelected||(f.propHooks.selected=f.extend(f.propHooks.selected,{get:function(a){var b=a.parentNode;b&&(b.selectedIndex,b.parentNode&&b.parentNode.selectedIndex);return null}})),f.support.checkOn||f.each(["radio","checkbox"],function(){f.valHooks[this]={get:function(a){return a.getAttribute("value")===null?"on":a.value}}}),f.each(["radio","checkbox"],function(){f.valHooks[this]=f.extend(f.valHooks[this],{set:function(a,b){if(f.isArray(b))return a.checked=f.inArray(f(a).val(),b)>=0}})});var w=/\.(.*)$/,x=/^(?:textarea|input|select)$/i,y=/\./g,z=/ /g,A=/[^\w\s.|`]/g,B=function(a){return a.replace(A,"\\$&")};f.event={add:function(a,c,d,e){if(a.nodeType!==3&&a.nodeType!==8){if(d===!1)d=C;else if(!d)return;var g,h;d.handler&&(g=d,d=g.handler),d.guid||(d.guid=f.guid++);var i=f._data(a);if(!i)return;var j=i.events,k=i.handle;j||(i.events=j={}),k||(i.handle=k=function(a){return typeof f!="undefined"&&(!a||f.event.triggered!==a.type)?f.event.handle.apply(k.elem,arguments):b}),k.elem=a,c=c.split(" ");var l,m=0,n;while(l=c[m++]){h=g?f.extend({},g):{handler:d,data:e},l.indexOf(".")>-1?(n=l.split("."),l=n.shift(),h.namespace=n.slice(0).sort().join(".")):(n=[],h.namespace=""),h.type=l,h.guid||(h.guid=d.guid);var o=j[l],p=f.event.special[l]||{};if(!o){o=j[l]=[];if(!p.setup||p.setup.call(a,e,n,k)===!1)a.addEventListener?a.addEventListener(l,k,!1):a.attachEvent&&a.attachEvent("on"+l,k)}p.add&&(p.add.call(a,h),h.handler.guid||(h.handler.guid=d.guid)),o.push(h),f.event.global[l]=!0}a=null}},global:{},remove:function(a,c,d,e){if(a.nodeType!==3&&a.nodeType!==8){d===!1&&(d=C);var g,h,i,j,k=0,l,m,n,o,p,q,r,s=f.hasData(a)&&f._data(a),t=s&&s.events;if(!s||!t)return;c&&c.type&&(d=c.handler,c=c.type);if(!c||typeof c=="string"&&c.charAt(0)==="."){c=c||"";for(h in t)f.event.remove(a,h+c);return}c=c.split(" ");while(h=c[k++]){r=h,q=null,l=h.indexOf(".")<0,m=[],l||(m=h.split("."),h=m.shift(),n=new RegExp("(^|\\.)"+f.map(m.slice(0).sort(),B).join("\\.(?:.*\\.)?")+"(\\.|$)")),p=t[h];if(!p)continue;if(!d){for(j=0;j=0&&(h=h.slice(0,-1),j=!0),h.indexOf(".")>=0&&(i=h.split("."),h=i.shift(),i.sort());if(!!e&&!f.event.customEvent[h]||!!f.event.global[h]){c=typeof c=="object"?c[f.expando]?c:new f.Event(h,c):new f.Event(h),c.type=h,c.exclusive=j,c.namespace=i.join("."),c.namespace_re=new RegExp("(^|\\.)"+i.join("\\.(?:.*\\.)?")+"(\\.|$)");if(g||!e)c.preventDefault(),c.stopPropagation();if(!e){f.each(f.cache,function(){var a=f.expando,b=this[a];b&&b.events&&b.events[h]&&f.event.trigger(c,d,b.handle.elem)});return}if(e.nodeType===3||e.nodeType===8)return;c.result=b,c.target=e,d=d!=null?f.makeArray(d):[],d.unshift(c);var k=e,l=h.indexOf(":")<0?"on"+h:"";do{var m=f._data(k,"handle");c.currentTarget=k,m&&m.apply(k,d),l&&f.acceptData(k)&&k[l]&&k[l].apply(k,d)===!1&&(c.result=!1,c.preventDefault()),k=k.parentNode||k.ownerDocument||k===c.target.ownerDocument&&a}while(k&&!c.isPropagationStopped());if(!c.isDefaultPrevented()){var n,o=f.event.special[h]||{};if((!o._default||o._default.call(e.ownerDocument,c)===!1)&&(h!=="click"||!f.nodeName(e,"a"))&&f.acceptData(e)){try{l&&e[h]&&(n=e[l],n&&(e[l]=null),f.event.triggered=h,e[h]())}catch(p){}n&&(e[l]=n),f.event.triggered=b}}return c.result}},handle:function(c){c=f.event.fix(c||a.event);var d=((f._data(this,"events")||{})[c.type]||[]).slice(0),e=!c.exclusive&&!c.namespace,g=Array.prototype.slice.call(arguments,0);g[0]=c,c.currentTarget=this;for(var h=0,i=d.length;h-1?f.map(a.options,function(a){return a.selected}).join("-"):"":f.nodeName(a,"select")&&(c=a.selectedIndex);return c},I=function(c){var d=c.target,e,g;if(!!x.test(d.nodeName)&&!d.readOnly){e=f._data(d,"_change_data"),g=H(d),(c.type!=="focusout"||d.type!=="radio")&&f._data(d,"_change_data",g);if(e===b||g===e)return;if(e!=null||g)c.type="change",c.liveFired=b,f.event.trigger(c,arguments[1],d)}};f.event.special.change={filters:{focusout:I,beforedeactivate:I,click:function(a){var b=a.target,c=f.nodeName(b,"input")?b.type:"";(c==="radio"||c==="checkbox"||f.nodeName(b,"select"))&&I.call(this,a)},keydown:function(a){var b=a.target,c=f.nodeName(b,"input")?b.type:"";(a.keyCode===13&&!f.nodeName(b,"textarea")||a.keyCode===32&&(c==="checkbox"||c==="radio")||c==="select-multiple")&&I.call(this,a)},beforeactivate:function(a){var b=a.target;f._data(b,"_change_data",H(b))}},setup:function(a,b){if(this.type==="file")return!1;for(var c in G)f.event.add(this,c+".specialChange",G[c]);return x.test(this.nodeName)},teardown:function(a){f.event.remove(this,".specialChange");return x.test(this.nodeName)}},G=f.event.special.change.filters,G.focus=G.beforeactivate}f.support.focusinBubbles||f.each({focus:"focusin",blur:"focusout"},function(a,b){function e(a){var c=f.event.fix(a);c.type=b,c.originalEvent={},f.event.trigger(c,null,c.target),c.isDefaultPrevented()&&a.preventDefault()}var d=0;f.event.special[b]={setup:function(){d++===0&&c.addEventListener(a,e,!0)},teardown:function(){--d===0&&c.removeEventListener(a,e,!0)}}}),f.each(["bind","one"],function(a,c){f.fn[c]=function(a,d,e){var g;if(typeof a=="object"){for(var h in a)this[c](h,d,a[h],e);return this}if(arguments.length===2||d===!1)e=d,d=b;c==="one"?(g=function(a){f(this).unbind(a,g);return e.apply(this,arguments)},g.guid=e.guid||f.guid++):g=e;if(a==="unload"&&c!=="one")this.one(a,d,e);else for(var i=0,j=this.length;i0?this.bind(b,a,c):this.trigger(b)},f.attrFn&&(f.attrFn[b]=!0)}),function(){function u(a,b,c,d,e,f){for(var g=0,h=d.length;g0){j=i;break}}i=i[a]}d[g]=j}}}function t(a,b,c,d,e,f){for(var g=0,h=d.length;g+~,(\[\\]+)+|[>+~])(\s*,\s*)?((?:.|\r|\n)*)/g,d=0,e=Object.prototype.toString,g=!1,h=!0,i=/\\/g,j=/\W/;[0,0].sort(function(){h=!1;return 0});var k=function(b,d,f,g){f=f||[],d=d||c;var h=d;if(d.nodeType!==1&&d.nodeType!==9)return[];if(!b||typeof b!="string")return f;var i,j,n,o,q,r,s,t,u=!0,w=k.isXML(d),x=[],y=b;do{a.exec(""),i=a.exec(y);if(i){y=i[3],x.push(i[1]);if(i[2]){o=i[3];break}}}while(i);if(x.length>1&&m.exec(b))if(x.length===2&&l.relative[x[0]])j=v(x[0]+x[1],d);else{j=l.relative[x[0]]?[d]:k(x.shift(),d);while(x.length)b=x.shift(),l.relative[b]&&(b+=x.shift()),j=v(b,j)}else{!g&&x.length>1&&d.nodeType===9&&!w&&l.match.ID.test(x[0])&&!l.match.ID.test(x[x.length-1])&&(q=k.find(x.shift(),d,w),d=q.expr?k.filter(q.expr,q.set)[0]:q.set[0]);if(d){q=g?{expr:x.pop(),set:p(g)}:k.find(x.pop(),x.length===1&&(x[0]==="~"||x[0]==="+")&&d.parentNode?d.parentNode:d,w),j=q.expr?k.filter(q.expr,q.set):q.set,x.length>0?n=p(j):u=!1;while(x.length)r=x.pop(),s=r,l.relative[r]?s=x.pop():r="",s==null&&(s=d),l.relative[r](n,s,w)}else n=x=[]}n||(n=j),n||k.error(r||b);if(e.call(n)==="[object Array]")if(!u)f.push.apply(f,n);else if(d&&d.nodeType===1)for(t=0;n[t]!=null;t++)n[t]&&(n[t]===!0||n[t].nodeType===1&&k.contains(d,n[t]))&&f.push(j[t]);else for(t=0;n[t]!=null;t++)n[t]&&n[t].nodeType===1&&f.push(j[t]);else p(n,f);o&&(k(o,h,f,g),k.uniqueSort(f));return f};k.uniqueSort=function(a){if(r){g=h,a.sort(r);if(g)for(var b=1;b0},k.find=function(a,b,c){var d;if(!a)return[];for(var e=0,f=l.order.length;e":function(a,b){var c,d=typeof b=="string",e=0,f=a.length;if(d&&!j.test(b)){b=b.toLowerCase();for(;e=0)?c||d.push(h):c&&(b[g]=!1));return!1},ID:function(a){return a[1].replace(i,"")},TAG:function(a,b){return a[1].replace(i,"").toLowerCase()},CHILD:function(a){if(a[1]==="nth"){a[2]||k.error(a[0]),a[2]=a[2].replace(/^\+|\s*/g,"");var b=/(-?)(\d*)(?:n([+\-]?\d*))?/.exec(a[2]==="even"&&"2n"||a[2]==="odd"&&"2n+1"||!/\D/.test(a[2])&&"0n+"+a[2]||a[2]);a[2]=b[1]+(b[2]||1)-0,a[3]=b[3]-0}else a[2]&&k.error(a[0]);a[0]=d++;return a},ATTR:function(a,b,c,d,e,f){var g=a[1]=a[1].replace(i,"");!f&&l.attrMap[g]&&(a[1]=l.attrMap[g]),a[4]=(a[4]||a[5]||"").replace(i,""),a[2]==="~="&&(a[4]=" "+a[4]+" ");return a},PSEUDO:function(b,c,d,e,f){if(b[1]==="not")if((a.exec(b[3])||"").length>1||/^\w/.test(b[3]))b[3]=k(b[3],null,null,c);else{var g=k.filter(b[3],c,d,!0^f);d||e.push.apply(e,g);return!1}else if(l.match.POS.test(b[0])||l.match.CHILD.test(b[0]))return!0;return b},POS:function(a){a.unshift(!0);return a}},filters:{enabled:function(a){return a.disabled===!1&&a.type!=="hidden"},disabled:function(a){return a.disabled===!0},checked:function(a){return a.checked===!0},selected:function(a){a.parentNode&&a.parentNode.selectedIndex;return a.selected===!0},parent:function(a){return!!a.firstChild},empty:function(a){return!a.firstChild},has:function(a,b,c){return!!k(c[3],a).length},header:function(a){return/h\d/i.test(a.nodeName)},text:function(a){var b=a.getAttribute("type"),c=a.type;return a.nodeName.toLowerCase()==="input"&&"text"===c&&(b===c||b===null)},radio:function(a){return a.nodeName.toLowerCase()==="input"&&"radio"===a.type},checkbox:function(a){return a.nodeName.toLowerCase()==="input"&&"checkbox"===a.type},file:function(a){return a.nodeName.toLowerCase()==="input"&&"file"===a.type},password:function(a){return a.nodeName.toLowerCase()==="input"&&"password"===a.type},submit:function(a){var b=a.nodeName.toLowerCase();return(b==="input"||b==="button")&&"submit"===a.type},image:function(a){return a.nodeName.toLowerCase()==="input"&&"image"===a.type},reset:function(a){var b=a.nodeName.toLowerCase();return(b==="input"||b==="button")&&"reset"===a.type},button:function(a){var b=a.nodeName.toLowerCase();return b==="input"&&"button"===a.type||b==="button"},input:function(a){return/input|select|textarea|button/i.test(a.nodeName)},focus:function(a){return a===a.ownerDocument.activeElement}},setFilters:{first:function(a,b){return b===0},last:function(a,b,c,d){return b===d.length-1},even:function(a,b){return b%2===0},odd:function(a,b){return b%2===1},lt:function(a,b,c){return bc[3]-0},nth:function(a,b,c){return c[3]-0===b},eq:function(a,b,c){return c[3]-0===b}},filter:{PSEUDO:function(a,b,c,d){var e=b[1],f=l.filters[e];if(f)return f(a,c,b,d);if(e==="contains")return(a.textContent||a.innerText||k.getText([a])||"").indexOf(b[3])>=0;if(e==="not"){var g=b[3];for(var h=0,i=g.length;h=0}},ID:function(a,b){return a.nodeType===1&&a.getAttribute("id")===b},TAG:function(a,b){return b==="*"&&a.nodeType===1||a.nodeName.toLowerCase()===b},CLASS:function(a,b){return(" "+(a.className||a.getAttribute("class"))+" ").indexOf(b)>-1},ATTR:function(a,b){var c=b[1],d=l.attrHandle[c]?l.attrHandle[c](a):a[c]!=null?a[c]:a.getAttribute(c),e=d+"",f=b[2],g=b[4];return d==null?f==="!=":f==="="?e===g:f==="*="?e.indexOf(g)>=0:f==="~="?(" "+e+" ").indexOf(g)>=0:g?f==="!="?e!==g:f==="^="?e.indexOf(g)===0:f==="$="?e.substr(e.length-g.length)===g:f==="|="?e===g||e.substr(0,g.length+1)===g+"-":!1:e&&d!==!1},POS:function(a,b,c,d){var e=b[2],f=l.setFilters[e];if(f)return f(a,c,b,d)}}},m=l.match.POS,n=function(a,b){return"\\"+(b-0+1)};for(var o in l.match)l.match[o]=new RegExp(l.match[o].source+/(?![^\[]*\])(?![^\(]*\))/.source),l.leftMatch[o]=new RegExp(/(^(?:.|\r|\n)*?)/.source+l.match[o].source.replace(/\\(\d+)/g,n));var p=function(a,b){a=Array.prototype.slice.call(a,0);if(b){b.push.apply(b,a);return b}return a};try{Array.prototype.slice.call(c.documentElement.childNodes,0)[0].nodeType}catch(q){p=function(a,b){var c=0,d=b||[];if(e.call(a)==="[object Array]")Array.prototype.push.apply(d,a);else if(typeof a.length=="number")for(var f=a.length;c",e.insertBefore(a,e.firstChild),c.getElementById(d)&&(l.find.ID=function(a,c,d){if(typeof c.getElementById!="undefined"&&!d){var e=c.getElementById(a[1]);return e?e.id===a[1]||typeof e.getAttributeNode!="undefined"&&e.getAttributeNode("id").nodeValue===a[1]?[e]:b:[]}},l.filter.ID=function(a,b){var c=typeof a.getAttributeNode!="undefined"&&a.getAttributeNode("id");return a.nodeType===1&&c&&c.nodeValue===b}),e.removeChild(a),e=a=null}(),function(){var a=c.createElement("div");a.appendChild(c.createComment("")),a.getElementsByTagName("*").length>0&&(l.find.TAG=function(a,b){var c=b.getElementsByTagName(a[1]);if(a[1]==="*"){var d=[];for(var e=0;c[e];e++)c[e].nodeType===1&&d.push(c[e]);c=d}return c}),a.innerHTML="",a.firstChild&&typeof a.firstChild.getAttribute!="undefined"&&a.firstChild.getAttribute("href")!=="#"&&(l.attrHandle.href=function(a){return a.getAttribute("href",2)}),a=null}(),c.querySelectorAll&&function(){var a=k,b=c.createElement("div"),d="__sizzle__";b.innerHTML="";if(!b.querySelectorAll||b.querySelectorAll(".TEST").length!==0){k=function(b,e,f,g){e=e||c;if(!g&&!k.isXML(e)){var h=/^(\w+$)|^\.([\w\-]+$)|^#([\w\-]+$)/.exec(b);if(h&&(e.nodeType===1||e.nodeType===9)){if(h[1])return p(e.getElementsByTagName(b),f);if(h[2]&&l.find.CLASS&&e.getElementsByClassName)return p(e.getElementsByClassName(h[2]),f)}if(e.nodeType===9){if(b==="body"&&e.body)return p([e.body],f);if(h&&h[3]){var i=e.getElementById(h[3]);if(!i||!i.parentNode)return p([],f);if(i.id===h[3])return p([i],f)}try{return p(e.querySelectorAll(b),f)}catch(j){}}else if(e.nodeType===1&&e.nodeName.toLowerCase()!=="object"){var m=e,n=e.getAttribute("id"),o=n||d,q=e.parentNode,r=/^\s*[+~]/.test(b);n?o=o.replace(/'/g,"\\$&"):e.setAttribute("id",o),r&&q&&(e=e.parentNode);try{if(!r||q)return p(e.querySelectorAll("[id='"+o+"'] "+b),f)}catch(s){}finally{n||m.removeAttribute("id")}}}return a(b,e,f,g)};for(var e in a)k[e]=a[e];b=null}}(),function(){var a=c.documentElement,b=a.matchesSelector||a.mozMatchesSelector||a.webkitMatchesSelector||a.msMatchesSelector;if(b){var d=!b.call(c.createElement("div"),"div"),e=!1;try{b.call(c.documentElement,"[test!='']:sizzle")}catch(f){e=!0}k.matchesSelector=function(a,c){c=c.replace(/\=\s*([^'"\]]*)\s*\]/g,"='$1']");if(!k.isXML(a))try{if(e||!l.match.PSEUDO.test(c)&&!/!=/.test(c)){var f=b.call(a,c);if(f||!d||a.document&&a.document.nodeType!==11)return f}}catch(g){}return k(c,null,null,[a]).length>0}}}(),function(){var a=c.createElement("div");a.innerHTML="";if(!!a.getElementsByClassName&&a.getElementsByClassName("e").length!==0){a.lastChild.className="e";if(a.getElementsByClassName("e").length===1)return;l.order.splice(1,0,"CLASS"),l.find.CLASS=function(a,b,c){if(typeof b.getElementsByClassName!="undefined"&&!c)return b.getElementsByClassName(a[1])},a=null}}(),c.documentElement.contains?k.contains=function(a,b){return a!==b&&(a.contains?a.contains(b):!0)}:c.documentElement.compareDocumentPosition?k.contains=function(a,b){return!!(a.compareDocumentPosition(b)&16)}:k.contains=function(){return!1},k.isXML=function(a){var b=(a?a.ownerDocument||a:0).documentElement;return b?b.nodeName!=="HTML":!1};var v=function(a,b){var c,d=[],e="",f=b.nodeType?[b]:b;while(c=l.match.PSEUDO.exec(a))e+=c[0],a=a.replace(l.match.PSEUDO,"");a=l.relative[a]?a+"*":a;for(var g=0,h=f.length;g0)for(h=g;h0:this.filter(a).length>0)},closest:function(a,b){var c=[],d,e,g=this[0];if(f.isArray(a)){var h,i,j={},k=1;if(g&&a.length){for(d=0,e=a.length;d-1:f(g).is(h))&&c.push({selector:i,elem:g,level:k});g=g.parentNode,k++}}return c}var l=S.test(a)||typeof a!="string"?f(a,b||this.context):0;for(d=0,e=this.length;d-1:f.find.matchesSelector(g,a)){c.push(g);break}g=g.parentNode;if(!g||!g.ownerDocument||g===b||g.nodeType===11)break}}c=c.length>1?f.unique(c):c;return this.pushStack(c,"closest",a)},index:function(a){if(!a)return this[0]&&this[0].parentNode?this.prevAll().length:-1;if(typeof a=="string")return f.inArray(this[0],f(a));return f.inArray(a.jquery?a[0]:a,this)},add:function(a,b){var c=typeof a=="string"?f(a,b):f.makeArray(a&&a.nodeType?[a]:a),d=f.merge(this.get(),c);return this.pushStack(U(c[0])||U(d[0])?d:f.unique(d))},andSelf:function(){return this.add(this.prevObject)}}),f.each({parent:function(a){var b=a.parentNode;return b&&b.nodeType!==11?b:null},parents:function(a){return f.dir(a,"parentNode")},parentsUntil:function(a,b,c){return f.dir(a,"parentNode",c)},next:function(a){return f.nth(a,2,"nextSibling")},prev:function(a){return f.nth(a,2,"previousSibling")},nextAll:function(a){return f.dir(a,"nextSibling")},prevAll:function(a){return f.dir(a,"previousSibling")},nextUntil:function(a,b,c){return f.dir(a,"nextSibling",c)},prevUntil:function(a,b,c){return f.dir(a,"previousSibling",c)},siblings:function(a){return f.sibling(a.parentNode.firstChild,a)},children:function(a){return f.sibling(a.firstChild)},contents:function(a){return f.nodeName(a,"iframe")?a.contentDocument||a.contentWindow.document:f.makeArray(a.childNodes)}},function(a,b){f.fn[a]=function(c,d){var e=f.map(this,b,c),g=R.call(arguments);N.test(a)||(d=c),d&&typeof d=="string"&&(e=f.filter(d,e)),e=this.length>1&&!T[a]?f.unique(e):e,(this.length>1||P.test(d))&&O.test(a)&&(e=e.reverse());return this.pushStack(e,a,g.join(","))}}),f.extend({filter:function(a,b,c){c&&(a=":not("+a+")");return b.length===1?f.find.matchesSelector(b[0],a)?[b[0]]:[]:f.find.matches(a,b)},dir:function(a,c,d){var e=[],g=a[c];while(g&&g.nodeType!==9&&(d===b||g.nodeType!==1||!f(g).is(d)))g.nodeType===1&&e.push(g),g=g[c];return e},nth:function(a,b,c,d){b=b||1;var e=0;for(;a;a=a[c])if(a.nodeType===1&&++e===b)break;return a},sibling:function(a,b){var c=[];for(;a;a=a.nextSibling)a.nodeType===1&&a!==b&&c.push(a);return c}});var W=/ jQuery\d+="(?:\d+|null)"/g,X=/^\s+/,Y=/<(?!area|br|col|embed|hr|img|input|link|meta|param)(([\w:]+)[^>]*)\/>/ig,Z=/<([\w:]+)/,$=/",""],legend:[1,"",""],thead:[1,"",""],tr:[2,"",""],td:[3,"",""],col:[2,"",""],area:[1,"",""],_default:[0,"",""]};be.optgroup=be.option,be.tbody=be.tfoot=be.colgroup=be.caption=be.thead,be.th=be.td,f.support.htmlSerialize||(be._default=[1,"div",""]),f.fn.extend({text:function(a){if(f.isFunction(a))return this.each(function(b){var c=f(this);c.text(a.call(this,b,c.text()))});if(typeof a!="object"&&a!==b)return this.empty().append((this[0]&&this[0].ownerDocument||c).createTextNode(a));return f.text(this)},wrapAll:function(a){if(f.isFunction(a))return this.each(function(b){f(this).wrapAll(a.call(this,b))});if(this[0]){var b=f(a,this[0].ownerDocument).eq(0).clone(!0);this[0].parentNode&&b.insertBefore(this[0]),b.map(function(){var a=this;while(a.firstChild&&a.firstChild.nodeType===1)a=a.firstChild;return a}).append(this)}return this},wrapInner:function(a){if(f.isFunction(a))return this.each(function(b){f(this).wrapInner(a.call(this,b))});return this.each(function(){var b=f(this),c=b.contents();c.length?c.wrapAll(a):b.append(a)})},wrap:function(a){return this.each(function(){f(this).wrapAll(a)})},unwrap:function(){return this.parent().each(function(){f.nodeName(this,"body")||f(this).replaceWith(this.childNodes)}).end()},append:function(){return this.domManip(arguments,!0,function(a){this.nodeType===1&&this.appendChild(a)})},prepend:function(){return this.domManip(arguments,!0,function(a){this.nodeType===1&&this.insertBefore(a,this.firstChild)})},before:function(){if(this[0]&&this[0].parentNode)return this.domManip(arguments,!1,function(a){this.parentNode.insertBefore(a,this)});if(arguments.length){var a=f(arguments[0]);a.push.apply(a,this.toArray());return this.pushStack(a,"before",arguments)}},after:function(){if(this[0]&&this[0].parentNode)return this.domManip(arguments,!1,function(a){this.parentNode.insertBefore(a,this.nextSibling)});if(arguments.length){var a=this.pushStack(this,"after",arguments);a.push.apply(a,f(arguments[0]).toArray());return a}},remove:function(a,b){for(var c=0,d;(d=this[c])!=null;c++)if(!a||f.filter(a,[d]).length)!b&&d.nodeType===1&&(f.cleanData(d.getElementsByTagName("*")),f.cleanData([d])),d.parentNode&&d.parentNode.removeChild(d);return this},empty:function(){for(var a=0,b;(b=this[a])!=null;a++){b.nodeType===1&&f.cleanData(b.getElementsByTagName("*"));while(b.firstChild)b.removeChild(b.firstChild)}return this},clone:function(a,b){a=a==null?!1:a,b=b==null?a:b;return this.map(function(){return f.clone(this,a,b)})},html:function(a){if(a===b)return this[0]&&this[0].nodeType===1?this[0].innerHTML.replace(W,""):null;if(typeof a=="string"&&!ba.test(a)&&(f.support.leadingWhitespace||!X.test(a))&&!be[(Z.exec(a)||["",""])[1].toLowerCase()]){a=a.replace(Y,"<$1>$2>");try{for(var c=0,d=this.length;c1&&l0?this.clone(!0):this).get();f(e[h])[b](j),d=d.concat(j)}return this.pushStack(d,a,e.selector)}}),f.extend({clone:function(a,b,c){var d=a.cloneNode(!0),e,g,h;if((!f.support.noCloneEvent||!f.support.noCloneChecked)&&(a.nodeType===1||a.nodeType===11)&&!f.isXMLDoc(a)){bh(a,d),e=bi(a),g=bi(d);for(h=0;e[h];++h)g[h]&&bh(e[h],g[h])}if(b){bg(a,d);if(c){e=bi(a),g=bi(d);for(h=0;e[h];++h)bg(e[h],g[h])}}e=g=null;return d},clean:function(a,b,d,e){var g;b=b||c,typeof b.createElement=="undefined"&&(b=b.ownerDocument||b[0]&&b[0].ownerDocument||c);var h=[],i;for(var j=0,k;(k=a[j])!=null;j++){typeof k=="number"&&(k+="");if(!k)continue;if(typeof k=="string")if(!_.test(k))k=b.createTextNode(k);else{k=k.replace(Y,"<$1>$2>");var l=(Z.exec(k)||["",""])[1].toLowerCase(),m=be[l]||be._default,n=m[0],o=b.createElement("div");o.innerHTML=m[1]+k+m[2];while(n--)o=o.lastChild;if(!f.support.tbody){var p=$.test(k),q=l==="table"&&!p?o.firstChild&&o.firstChild.childNodes:m[1]===""&&!p?o.childNodes:[];for(i=q.length-1;i>=0;--i)f.nodeName(q[i],"tbody")&&!q[i].childNodes.length&&q[i].parentNode.removeChild(q[i])}!f.support.leadingWhitespace&&X.test(k)&&o.insertBefore(b.createTextNode(X.exec(k)[0]),o.firstChild),k=o.childNodes}var r;if(!f.support.appendChecked)if(k[0]&&typeof (r=k.length)=="number")for(i=0;i=0)return b+"px"}}}),f.support.opacity||(f.cssHooks.opacity={get:function(a,b){return bn.test((b&&a.currentStyle?a.currentStyle.filter:a.style.filter)||"")?parseFloat(RegExp.$1)/100+"":b?"1":""},set:function(a,b){var c=a.style,d=a.currentStyle,e=f.isNaN(b)?"":"alpha(opacity="+b*100+")",g=d&&d.filter||c.filter||"";c.zoom=1;if(b>=1&&f.trim(g.replace(bm,""))===""){c.removeAttribute("filter");if(d&&!d.filter)return}c.filter=bm.test(g)?g.replace(bm,e):g+" "+e}}),f(function(){f.support.reliableMarginRight||(f.cssHooks.marginRight={get:function(a,b){var c;f.swap(a,{display:"inline-block"},function(){b?c=bv(a,"margin-right","marginRight"):c=a.style.marginRight});return c}})}),c.defaultView&&c.defaultView.getComputedStyle&&(bw=function(a,c){var d,e,g;c=c.replace(bo,"-$1").toLowerCase();if(!(e=a.ownerDocument.defaultView))return b;if(g=e.getComputedStyle(a,null))d=g.getPropertyValue(c),d===""&&!f.contains(a.ownerDocument.documentElement,a)&&(d=f.style(a,c));return d}),c.documentElement.currentStyle&&(bx=function(a,b){var c,d=a.currentStyle&&a.currentStyle[b],e=a.runtimeStyle&&a.runtimeStyle[b],f=a.style;!bp.test(d)&&bq.test(d)&&(c=f.left,e&&(a.runtimeStyle.left=a.currentStyle.left),f.left=b==="fontSize"?"1em":d||0,d=f.pixelLeft+"px",f.left=c,e&&(a.runtimeStyle.left=e));return d===""?"auto":d}),bv=bw||bx,f.expr&&f.expr.filters&&(f.expr.filters.hidden=function(a){var b=a.offsetWidth,c=a.offsetHeight;return b===0&&c===0||!f.support.reliableHiddenOffsets&&(a.style.display||f.css(a,"display"))==="none"},f.expr.filters.visible=function(a){return!f.expr.filters.hidden(a)});var bz=/%20/g,bA=/\[\]$/,bB=/\r?\n/g,bC=/#.*$/,bD=/^(.*?):[ \t]*([^\r\n]*)\r?$/mg,bE=/^(?:color|date|datetime|datetime-local|email|hidden|month|number|password|range|search|tel|text|time|url|week)$/i,bF=/^(?:about|app|app\-storage|.+\-extension|file|res|widget):$/,bG=/^(?:GET|HEAD)$/,bH=/^\/\//,bI=/\?/,bJ=/'),a.close(),t.location.hash=i)}}(),l}()}(e,this),function(e){t.matchMedia=t.matchMedia||function(e){var t,i=e.documentElement,n=i.firstElementChild||i.firstChild,a=e.createElement("body"),o=e.createElement("div");return o.id="mq-test-1",o.style.cssText="position:absolute;top:-100em",a.style.background="none",a.appendChild(o),function(e){return o.innerHTML='',i.insertBefore(a,n),t=42===o.offsetWidth,i.removeChild(a),{matches:t,media:e}}}(i),e.mobile.media=function(e){return t.matchMedia(e).matches}}(e),function(e){var t={touch:"ontouchend"in i};e.mobile.support=e.mobile.support||{},e.extend(e.support,t),e.extend(e.mobile.support,t)}(e),function(e){e.extend(e.support,{orientation:"orientation"in t&&"onorientationchange"in t})}(e),function(e,n){function a(e){var t=e.charAt(0).toUpperCase()+e.substr(1),i=(e+" "+p.join(t+" ")+t).split(" ");for(var a in i)if(u[i[a]]!==n)return!0}function o(e,t,n){for(var a,o=i.createElement("div"),s=function(e){return e.charAt(0).toUpperCase()+e.substr(1)},r=function(e){return""===e?"":"-"+e.charAt(0).toLowerCase()+e.substr(1)+"-"},l=function(i){var n=r(i)+e+": "+t+";",l=s(i),d=l+(""===l?e:s(e));o.setAttribute("style",n),o.style[d]&&(a=!0)},d=n?n:p,c=0;d.length>c;c++)l(d[c]);return!!a}function s(){var a="transform-3d",o=e.mobile.media("(-"+p.join("-"+a+"),(-")+"-"+a+"),("+a+")");if(o)return!!o;var s=i.createElement("div"),r={MozTransform:"-moz-transform",transform:"transform"};h.append(s);for(var l in r)s.style[l]!==n&&(s.style[l]="translate3d( 100px, 1px, 1px )",o=t.getComputedStyle(s).getPropertyValue(r[l]));return!!o&&"none"!==o}function r(){var t,i,n=location.protocol+"//"+location.host+location.pathname+"ui-dir/",a=e("head base"),o=null,s="";return a.length?s=a.attr("href"):a=o=e("",{href:n}).appendTo("head"),t=e("").prependTo(h),i=t[0].href,a[0].href=s||location.pathname,o&&o.remove(),0===i.indexOf(n)}function l(){var e,n=i.createElement("x"),a=i.documentElement,o=t.getComputedStyle;return"pointerEvents"in n.style?(n.style.pointerEvents="auto",n.style.pointerEvents="x",a.appendChild(n),e=o&&"auto"===o(n,"").pointerEvents,a.removeChild(n),!!e):!1}function d(){var e=i.createElement("div");return e.getBoundingClientRect!==n}function c(){var e=t,i=navigator.userAgent,n=navigator.platform,a=i.match(/AppleWebKit\/([0-9]+)/),o=!!a&&a[1],s=i.match(/Fennec\/([0-9]+)/),r=!!s&&s[1],l=i.match(/Opera Mobi\/([0-9]+)/),d=!!l&&l[1];return(n.indexOf("iPhone")>-1||n.indexOf("iPad")>-1||n.indexOf("iPod")>-1)&&o&&534>o||e.operamini&&"[object OperaMini]"==={}.toString.call(e.operamini)||l&&7458>d||i.indexOf("Android")>-1&&o&&533>o||r&&6>r||"palmGetResource"in t&&o&&534>o||i.indexOf("MeeGo")>-1&&i.indexOf("NokiaBrowser/8.5.0")>-1?!1:!0}var h=e("").prependTo("html"),u=h[0].style,p=["Webkit","Moz","O"],m="palmGetResource"in t,f=t.opera,g=t.operamini&&"[object OperaMini]"==={}.toString.call(t.operamini),b=t.blackberry&&!a("-webkit-transform");e.extend(e.mobile,{browser:{}}),e.mobile.browser.oldIE=function(){var e=3,t=i.createElement("div"),n=t.all||[];do t.innerHTML="";while(n[0]);return e>4?e:!e}(),e.extend(e.support,{cssTransitions:"WebKitTransitionEvent"in t||o("transition","height 100ms linear",["Webkit","Moz",""])&&!e.mobile.browser.oldIE&&!f,pushState:"pushState"in history&&"replaceState"in history&&!(t.navigator.userAgent.indexOf("Firefox")>=0&&t.top!==t)&&-1===t.navigator.userAgent.search(/CriOS/),mediaquery:e.mobile.media("only all"),cssPseudoElement:!!a("content"),touchOverflow:!!a("overflowScrolling"),cssTransform3d:s(),boxShadow:!!a("boxShadow")&&!b,fixedPosition:c(),scrollTop:("pageXOffset"in t||"scrollTop"in i.documentElement||"scrollTop"in h[0])&&!m&&!g,dynamicBaseTag:r(),cssPointerEvents:l(),boundingRect:d()}),h.remove();var v=function(){var e=t.navigator.userAgent;return e.indexOf("Nokia")>-1&&(e.indexOf("Symbian/3")>-1||e.indexOf("Series60/5")>-1)&&e.indexOf("AppleWebKit")>-1&&e.match(/(BrowserNG|NokiaBrowser)\/7\.[0-3]/)}();e.mobile.gradeA=function(){return(e.support.mediaquery||e.mobile.browser.oldIE&&e.mobile.browser.oldIE>=7)&&(e.support.boundingRect||null!==e.fn.jquery.match(/1\.[0-7+]\.[0-9+]?/))},e.mobile.ajaxBlacklist=t.blackberry&&!t.WebKitPoint||g||v,v&&e(function(){e("head link[rel='stylesheet']").attr("rel","alternate stylesheet").attr("rel","stylesheet")}),e.support.boxShadow||e("html").addClass("ui-mobile-nosupport-boxshadow")}(e),function(e,t){var i,n=e.mobile.window;e.event.special.navigate=i={bound:!1,pushStateEnabled:!0,originalEventName:t,isPushStateEnabled:function(){return e.support.pushState&&e.mobile.pushStateEnabled===!0&&this.isHashChangeEnabled()},isHashChangeEnabled:function(){return e.mobile.hashListeningEnabled===!0},popstate:function(t){var i=new e.Event("navigate"),a=new e.Event("beforenavigate"),o=t.originalEvent.state||{};location.href,n.trigger(a),a.isDefaultPrevented()||(t.historyState&&e.extend(o,t.historyState),i.originalEvent=t,setTimeout(function(){n.trigger(i,{state:o})},0))},hashchange:function(t){var i=new e.Event("navigate"),a=new e.Event("beforenavigate");n.trigger(a),a.isDefaultPrevented()||(i.originalEvent=t,n.trigger(i,{state:t.hashchangeState||{}}))},setup:function(){i.bound||(i.bound=!0,i.isPushStateEnabled()?(i.originalEventName="popstate",n.bind("popstate.navigate",i.popstate)):i.isHashChangeEnabled()&&(i.originalEventName="hashchange",n.bind("hashchange.navigate",i.hashchange)))}}}(e),function(e,i){var n,a,o="&ui-state=dialog";e.mobile.path=n={uiStateKey:"&ui-state",urlParseRE:/^\s*(((([^:\/#\?]+:)?(?:(\/\/)((?:(([^:@\/#\?]+)(?:\:([^:@\/#\?]+))?)@)?(([^:\/#\?\]\[]+|\[[^\/\]@#?]+\])(?:\:([0-9]+))?))?)?)?((\/?(?:[^\/\?#]+\/+)*)([^\?#]*)))?(\?[^#]+)?)(#.*)?/,getLocation:function(e){var t=e?this.parseUrl(e):location,i=this.parseUrl(e||location.href).hash;return i="#"===i?"":i,t.protocol+"//"+t.host+t.pathname+t.search+i},parseLocation:function(){return this.parseUrl(this.getLocation())},parseUrl:function(t){if("object"===e.type(t))return t;var i=n.urlParseRE.exec(t||"")||[];return{href:i[0]||"",hrefNoHash:i[1]||"",hrefNoSearch:i[2]||"",domain:i[3]||"",protocol:i[4]||"",doubleSlash:i[5]||"",authority:i[6]||"",username:i[8]||"",password:i[9]||"",host:i[10]||"",hostname:i[11]||"",port:i[12]||"",pathname:i[13]||"",directory:i[14]||"",filename:i[15]||"",search:i[16]||"",hash:i[17]||""}},makePathAbsolute:function(e,t){if(e&&"/"===e.charAt(0))return e;e=e||"",t=t?t.replace(/^\/|(\/[^\/]*|[^\/]+)$/g,""):"";for(var i=t?t.split("/"):[],n=e.split("/"),a=0;n.length>a;a++){var o=n[a];switch(o){case".":break;case"..":i.length&&i.pop();break;default:i.push(o)}}return"/"+i.join("/")},isSameDomain:function(e,t){return n.parseUrl(e).domain===n.parseUrl(t).domain},isRelativeUrl:function(e){return""===n.parseUrl(e).protocol},isAbsoluteUrl:function(e){return""!==n.parseUrl(e).protocol},makeUrlAbsolute:function(e,t){if(!n.isRelativeUrl(e))return e;t===i&&(t=this.documentBase);var a=n.parseUrl(e),o=n.parseUrl(t),s=a.protocol||o.protocol,r=a.protocol?a.doubleSlash:a.doubleSlash||o.doubleSlash,l=a.authority||o.authority,d=""!==a.pathname,c=n.makePathAbsolute(a.pathname||o.filename,o.pathname),h=a.search||!d&&o.search||"",u=a.hash;return s+r+l+c+h+u},addSearchParams:function(t,i){var a=n.parseUrl(t),o="object"==typeof i?e.param(i):i,s=a.search||"?";return a.hrefNoSearch+s+("?"!==s.charAt(s.length-1)?"&":"")+o+(a.hash||"")},convertUrlToDataUrl:function(e){var i=n.parseUrl(e);return n.isEmbeddedPage(i)?i.hash.split(o)[0].replace(/^#/,"").replace(/\?.*$/,""):n.isSameDomain(i,this.documentBase)?i.hrefNoHash.replace(this.documentBase.domain,"").split(o)[0]:t.decodeURIComponent(e)},get:function(e){return e===i&&(e=n.parseLocation().hash),n.stripHash(e).replace(/[^\/]*\.[^\/*]+$/,"")},set:function(e){location.hash=e},isPath:function(e){return/\//.test(e)},clean:function(e){return e.replace(this.documentBase.domain,"")},stripHash:function(e){return e.replace(/^#/,"")},stripQueryParams:function(e){return e.replace(/\?.*$/,"")},cleanHash:function(e){return n.stripHash(e.replace(/\?.*$/,"").replace(o,""))},isHashValid:function(e){return/^#[^#]+$/.test(e)},isExternal:function(e){var t=n.parseUrl(e);return t.protocol&&t.domain!==this.documentUrl.domain?!0:!1},hasProtocol:function(e){return/^(:?\w+:)/.test(e)},isEmbeddedPage:function(e){var t=n.parseUrl(e);return""!==t.protocol?!this.isPath(t.hash)&&t.hash&&(t.hrefNoHash===this.documentUrl.hrefNoHash||this.documentBaseDiffers&&t.hrefNoHash===this.documentBase.hrefNoHash):/^#/.test(t.href)},squash:function(e,t){var i,a,o,s,r=this.isPath(e),l=this.parseUrl(e),d=l.hash,c="";return t=t||(n.isPath(e)?n.getLocation():n.getDocumentUrl()),a=r?n.stripHash(e):e,a=n.isPath(l.hash)?n.stripHash(l.hash):a,s=a.indexOf(this.uiStateKey),s>-1&&(c=a.slice(s),a=a.slice(0,s)),i=n.makeUrlAbsolute(a,t),o=this.parseUrl(i).search,r?((n.isPath(d)||0===d.replace("#","").indexOf(this.uiStateKey))&&(d=""),c&&-1===d.indexOf(this.uiStateKey)&&(d+=c),-1===d.indexOf("#")&&""!==d&&(d="#"+d),i=n.parseUrl(i),i=i.protocol+"//"+i.host+i.pathname+o+d):i+=i.indexOf("#")>-1?c:"#"+c,i},isPreservableHash:function(e){return 0===e.replace("#","").indexOf(this.uiStateKey)}},n.documentUrl=n.parseLocation(),a=e("head").find("base"),n.documentBase=a.length?n.parseUrl(n.makeUrlAbsolute(a.attr("href"),n.documentUrl.href)):n.documentUrl,n.documentBaseDiffers=n.documentUrl.hrefNoHash!==n.documentBase.hrefNoHash,n.getDocumentUrl=function(t){return t?e.extend({},n.documentUrl):n.documentUrl.href},n.getDocumentBase=function(t){return t?e.extend({},n.documentBase):n.documentBase.href}}(e),function(e,t){e.mobile.path,e.mobile.History=function(e,t){this.stack=e||[],this.activeIndex=t||0},e.extend(e.mobile.History.prototype,{getActive:function(){return this.stack[this.activeIndex]},getLast:function(){return this.stack[this.previousIndex]},getNext:function(){return this.stack[this.activeIndex+1]},getPrev:function(){return this.stack[this.activeIndex-1]},add:function(e,t){t=t||{},this.getNext()&&this.clearForward(),t.hash&&-1===t.hash.indexOf("#")&&(t.hash="#"+t.hash),t.url=e,this.stack.push(t),this.activeIndex=this.stack.length-1},clearForward:function(){this.stack=this.stack.slice(0,this.activeIndex+1)},find:function(e,t,i){t=t||this.stack;var n,a,o,s=t.length;for(a=0;s>a;a++)if(n=t[a],(decodeURIComponent(e)===decodeURIComponent(n.url)||decodeURIComponent(e)===decodeURIComponent(n.hash))&&(o=a,i))return o;return o},closest:function(e){var i,n=this.activeIndex;return i=this.find(e,this.stack.slice(0,n)),i===t&&(i=this.find(e,this.stack.slice(n),!0),i=i===t?i:i+n),i},direct:function(i){var n=this.closest(i.url),a=this.activeIndex;n!==t&&(this.activeIndex=n,this.previousIndex=a),a>n?(i.present||i.back||e.noop)(this.getActive(),"back"):n>a?(i.present||i.forward||e.noop)(this.getActive(),"forward"):n===t&&i.missing&&i.missing(this.getActive())}})}(e),function(e){var a=e.mobile.path,o=location.href;e.mobile.Navigator=function(t){this.history=t,this.ignoreInitialHashChange=!0,e.mobile.window.bind({"popstate.history":e.proxy(this.popstate,this),"hashchange.history":e.proxy(this.hashchange,this)})},e.extend(e.mobile.Navigator.prototype,{squash:function(n,o){var s,r,l=a.isPath(n)?a.stripHash(n):n;return r=a.squash(n),s=e.extend({hash:l,url:r},o),t.history.replaceState(s,s.title||i.title,r),s},hash:function(e,t){var i,n,o;if(i=a.parseUrl(e),n=a.parseLocation(),n.pathname+n.search===i.pathname+i.search)o=i.hash?i.hash:i.pathname+i.search;else if(a.isPath(e)){var s=a.parseUrl(t);o=s.pathname+s.search+(a.isPreservableHash(s.hash)?s.hash.replace("#",""):"")}else o=e;return o},go:function(n,o,s){var r,l,d,c,h=e.event.special.navigate.isPushStateEnabled();l=a.squash(n),d=this.hash(n,l),s&&d!==a.stripHash(a.parseLocation().hash)&&(this.preventNextHashChange=s),this.preventHashAssignPopState=!0,t.location.hash=d,this.preventHashAssignPopState=!1,r=e.extend({url:l,hash:d,title:i.title},o),h&&(c=new e.Event("popstate"),c.originalEvent={type:"popstate",state:null},this.squash(n,r),s||(this.ignorePopState=!0,e.mobile.window.trigger(c))),this.history.add(r.url,r)},popstate:function(t){var i,s;if(e.event.special.navigate.isPushStateEnabled())return this.preventHashAssignPopState?(this.preventHashAssignPopState=!1,t.stopImmediatePropagation(),n):this.ignorePopState?(this.ignorePopState=!1,n):!t.originalEvent.state&&1===this.history.stack.length&&this.ignoreInitialHashChange&&(this.ignoreInitialHashChange=!1,location.href===o)?(t.preventDefault(),n):(i=a.parseLocation().hash,!t.originalEvent.state&&i?(s=this.squash(i),this.history.add(s.url,s),t.historyState=s,n):(this.history.direct({url:(t.originalEvent.state||{}).url||i,present:function(i,n){t.historyState=e.extend({},i),t.historyState.direction=n}}),n))},hashchange:function(t){var o,s;if(e.event.special.navigate.isHashChangeEnabled()&&!e.event.special.navigate.isPushStateEnabled()){if(this.preventNextHashChange)return this.preventNextHashChange=!1,t.stopImmediatePropagation(),n;o=this.history,s=a.parseLocation().hash,this.history.direct({url:s,present:function(i,n){t.hashchangeState=e.extend({},i),t.hashchangeState.direction=n},missing:function(){o.add(s,{hash:s,title:i.title})}})}}})}(e),function(e){e.mobile.navigate=function(t,i,n){e.mobile.navigate.navigator.go(t,i,n)},e.mobile.navigate.history=new e.mobile.History,e.mobile.navigate.navigator=new e.mobile.Navigator(e.mobile.navigate.history);var t=e.mobile.path.parseLocation();e.mobile.navigate.history.add(t.href,{hash:t.hash})}(e),function(e,t,i,n){function a(e){for(;e&&e.originalEvent!==n;)e=e.originalEvent;return e}function o(t,i){var o,s,r,l,d,c,h,u,p,m=t.type;if(t=e.Event(t),t.type=i,o=t.originalEvent,s=e.event.props,m.search(/^(mouse|click)/)>-1&&(s=q),o)for(h=s.length,l;h;)l=s[--h],t[l]=o[l];if(m.search(/mouse(down|up)|click/)>-1&&!t.which&&(t.which=1),-1!==m.search(/^touch/)&&(r=a(o),m=r.touches,d=r.changedTouches,c=m&&m.length?m[0]:d&&d.length?d[0]:n))for(u=0,p=k.length;p>u;u++)l=k[u],t[l]=c[l];return t}function s(t){for(var i,n,a={};t;){i=e.data(t,T);for(n in i)i[n]&&(a[n]=a.hasVirtualBinding=!0);t=t.parentNode}return a}function r(t,i){for(var n;t;){if(n=e.data(t,T),n&&(!i||n[i]))return t;t=t.parentNode}return null}function l(){M=!1}function d(){M=!0}function c(){U=0,O.length=0,H=!1,d()}function h(){l()}function u(){p(),S=setTimeout(function(){S=0,c()},e.vmouse.resetTimerDuration)}function p(){S&&(clearTimeout(S),S=0)}function m(t,i,n){var a;return(n&&n[t]||!n&&r(i.target,t))&&(a=o(i,t),e(i.target).trigger(a)),a}function f(t){var i=e.data(t.target,D);if(!(H||U&&U===i)){var n=m("v"+t.type,t);n&&(n.isDefaultPrevented()&&t.preventDefault(),n.isPropagationStopped()&&t.stopPropagation(),n.isImmediatePropagationStopped()&&t.stopImmediatePropagation())}}function g(t){var i,n,o=a(t).touches;if(o&&1===o.length&&(i=t.target,n=s(i),n.hasVirtualBinding)){U=L++,e.data(i,D,U),p(),h(),I=!1;var r=a(t).touches[0];A=r.pageX,N=r.pageY,m("vmouseover",t,n),m("vmousedown",t,n)}}function b(e){M||(I||m("vmousecancel",e,s(e.target)),I=!0,u())}function v(t){if(!M){var i=a(t).touches[0],n=I,o=e.vmouse.moveDistanceThreshold,r=s(t.target);I=I||Math.abs(i.pageX-A)>o||Math.abs(i.pageY-N)>o,I&&!n&&m("vmousecancel",t,r),m("vmousemove",t,r),u()}}function _(e){if(!M){d();var t,i=s(e.target);if(m("vmouseup",e,i),!I){var n=m("vclick",e,i);n&&n.isDefaultPrevented()&&(t=a(e).changedTouches[0],O.push({touchID:U,x:t.clientX,y:t.clientY}),H=!0)}m("vmouseout",e,i),I=!1,u()}}function C(t){var i,n=e.data(t,T);if(n)for(i in n)if(n[i])return!0;return!1}function x(){}function y(t){var i=t.substr(1);return{setup:function(){C(this)||e.data(this,T,{});var n=e.data(this,T);n[t]=!0,j[t]=(j[t]||0)+1,1===j[t]&&B.bind(i,f),e(this).bind(i,x),F&&(j.touchstart=(j.touchstart||0)+1,1===j.touchstart&&B.bind("touchstart",g).bind("touchend",_).bind("touchmove",v).bind("scroll",b))},teardown:function(){--j[t],j[t]||B.unbind(i,f),F&&(--j.touchstart,j.touchstart||B.unbind("touchstart",g).unbind("touchmove",v).unbind("touchend",_).unbind("scroll",b));var n=e(this),a=e.data(this,T);a&&(a[t]=!1),n.unbind(i,x),C(this)||n.removeData(T)}}}var w,T="virtualMouseBindings",D="virtualTouchID",P="vmouseover vmousedown vmousemove vmouseup vclick vmouseout vmousecancel".split(" "),k="clientX clientY pageX pageY screenX screenY".split(" "),E=e.event.mouseHooks?e.event.mouseHooks.props:[],q=e.event.props.concat(E),j={},S=0,A=0,N=0,I=!1,O=[],H=!1,M=!1,F="addEventListener"in i,B=e(i),L=1,U=0;e.vmouse={moveDistanceThreshold:10,clickDistanceThreshold:10,resetTimerDuration:1500};for(var z=0;P.length>z;z++)e.event.special[P[z]]=y(P[z]);F&&i.addEventListener("click",function(t){var i,a,o,s,r,l,d=O.length,c=t.target;if(d)for(i=t.clientX,a=t.clientY,w=e.vmouse.clickDistanceThreshold,o=c;o;){for(s=0;d>s;s++)if(r=O[s],l=0,o===c&&w>Math.abs(r.x-i)&&w>Math.abs(r.y-a)||e.data(o,D)===r.touchID)return t.preventDefault(),t.stopPropagation(),n;o=o.parentNode}},!0)}(e,t,i),function(e,t,n){function a(t,i,n){var a=n.type;n.type=i,e.event.dispatch.call(t,n),n.type=a}var o=e(i);e.each("touchstart touchmove touchend tap taphold swipe swipeleft swiperight scrollstart scrollstop".split(" "),function(t,i){e.fn[i]=function(e){return e?this.bind(i,e):this.trigger(i)},e.attrFn&&(e.attrFn[i]=!0)});var s=e.mobile.support.touch,r="touchmove scroll",l=s?"touchstart":"mousedown",d=s?"touchend":"mouseup",c=s?"touchmove":"mousemove";e.event.special.scrollstart={enabled:!0,setup:function(){function t(e,t){i=t,a(o,i?"scrollstart":"scrollstop",e)}var i,n,o=this,s=e(o);s.bind(r,function(a){e.event.special.scrollstart.enabled&&(i||t(a,!0),clearTimeout(n),n=setTimeout(function(){t(a,!1)},50))})}},e.event.special.tap={tapholdThreshold:750,setup:function(){var t=this,i=e(t);i.bind("vmousedown",function(n){function s(){clearTimeout(d)}function r(){s(),i.unbind("vclick",l).unbind("vmouseup",s),o.unbind("vmousecancel",r)}function l(e){r(),c===e.target&&a(t,"tap",e)}if(n.which&&1!==n.which)return!1;var d,c=n.target;n.originalEvent,i.bind("vmouseup",s).bind("vclick",l),o.bind("vmousecancel",r),d=setTimeout(function(){a(t,"taphold",e.Event("taphold",{target:c})) -},e.event.special.tap.tapholdThreshold)})}},e.event.special.swipe={scrollSupressionThreshold:30,durationThreshold:1e3,horizontalDistanceThreshold:30,verticalDistanceThreshold:75,start:function(t){var i=t.originalEvent.touches?t.originalEvent.touches[0]:t;return{time:(new Date).getTime(),coords:[i.pageX,i.pageY],origin:e(t.target)}},stop:function(e){var t=e.originalEvent.touches?e.originalEvent.touches[0]:e;return{time:(new Date).getTime(),coords:[t.pageX,t.pageY]}},handleSwipe:function(t,i){i.time-t.timee.event.special.swipe.horizontalDistanceThreshold&&Math.abs(t.coords[1]-i.coords[1])i.coords[0]?"swipeleft":"swiperight")},setup:function(){var t=this,i=e(t);i.bind(l,function(t){function a(t){s&&(o=e.event.special.swipe.stop(t),Math.abs(s.coords[0]-o.coords[0])>e.event.special.swipe.scrollSupressionThreshold&&t.preventDefault())}var o,s=e.event.special.swipe.start(t);i.bind(c,a).one(d,function(){i.unbind(c,a),s&&o&&e.event.special.swipe.handleSwipe(s,o),s=o=n})})}},e.each({scrollstop:"scrollstart",taphold:"tap",swipeleft:"swipe",swiperight:"swipe"},function(t,i){e.event.special[t]={setup:function(){e(this).bind(i,e.noop)}}})}(e,this),function(e){e.event.special.throttledresize={setup:function(){e(this).bind("resize",o)},teardown:function(){e(this).unbind("resize",o)}};var t,i,n,a=250,o=function(){i=(new Date).getTime(),n=i-s,n>=a?(s=i,e(this).trigger("throttledresize")):(t&&clearTimeout(t),t=setTimeout(o,a-n))},s=0}(e),function(e,t){function a(){var e=o();e!==s&&(s=e,d.trigger(c))}var o,s,r,l,d=e(t),c="orientationchange",h={0:!0,180:!0};if(e.support.orientation){var u=t.innerWidth||d.width(),p=t.innerHeight||d.height(),m=50;r=u>p&&u-p>m,l=h[t.orientation],(r&&l||!r&&!l)&&(h={"-90":!0,90:!0})}e.event.special.orientationchange=e.extend({},e.event.special.orientationchange,{setup:function(){return e.support.orientation&&!e.event.special.orientationchange.disabled?!1:(s=o(),d.bind("throttledresize",a),n)},teardown:function(){return e.support.orientation&&!e.event.special.orientationchange.disabled?!1:(d.unbind("throttledresize",a),n)},add:function(e){var t=e.handler;e.handler=function(e){return e.orientation=o(),t.apply(this,arguments)}}}),e.event.special.orientationchange.orientation=o=function(){var n=!0,a=i.documentElement;return n=e.support.orientation?h[t.orientation]:a&&1.1>a.clientWidth/a.clientHeight,n?"portrait":"landscape"},e.fn[c]=function(e){return e?this.bind(c,e):this.trigger(c)},e.attrFn&&(e.attrFn[c]=!0)}(e,this),function(e){e.widget("mobile.page",e.mobile.widget,{options:{theme:"c",domCache:!1,keepNativeDefault:":jqmData(role='none'), :jqmData(role='nojs')"},_create:function(){return this._trigger("beforecreate")===!1?!1:(this.element.attr("tabindex","0").addClass("ui-page ui-body-"+this.options.theme),this._on(this.element,{pagebeforehide:"removeContainerBackground",pagebeforeshow:"_handlePageBeforeShow"}),n)},_handlePageBeforeShow:function(){this.setContainerBackground()},removeContainerBackground:function(){e.mobile.pageContainer.removeClass("ui-overlay-"+e.mobile.getInheritedTheme(this.element.parent()))},setContainerBackground:function(t){this.options.theme&&e.mobile.pageContainer.addClass("ui-overlay-"+(t||this.options.theme))},keepNativeSelector:function(){var t=this.options,i=t.keepNative&&e.trim(t.keepNative);return i&&t.keepNative!==t.keepNativeDefault?[t.keepNative,t.keepNativeDefault].join(", "):t.keepNativeDefault}})}(e),function(e,t,i){var n=function(n){return n===i&&(n=!0),function(i,a,o,s){var r=new e.Deferred,l=a?" reverse":"",d=e.mobile.urlHistory.getActive(),c=d.lastScroll||e.mobile.defaultHomeScroll,h=e.mobile.getScreenHeight(),u=e.mobile.maxTransitionWidth!==!1&&e.mobile.window.width()>e.mobile.maxTransitionWidth,p=!e.support.cssTransitions||u||!i||"none"===i||Math.max(e.mobile.window.scrollTop(),c)>e.mobile.getMaxScrollForTransition(),m=" ui-page-pre-in",f=function(){e.mobile.pageContainer.toggleClass("ui-mobile-viewport-transitioning viewport-"+i)},g=function(){e.event.special.scrollstart.enabled=!1,t.scrollTo(0,c),setTimeout(function(){e.event.special.scrollstart.enabled=!0},150)},b=function(){s.removeClass(e.mobile.activePageClass+" out in reverse "+i).height("")},v=function(){n?s.animationComplete(_):_(),s.height(h+e.mobile.window.scrollTop()).addClass(i+" out"+l)},_=function(){s&&n&&b(),C()},C=function(){o.css("z-index",-10),o.addClass(e.mobile.activePageClass+m),e.mobile.focusPage(o),o.height(h+c),g(),o.css("z-index",""),p||o.animationComplete(x),o.removeClass(m).addClass(i+" in"+l),p&&x()},x=function(){n||s&&b(),o.removeClass("out in reverse "+i).height(""),f(),e.mobile.window.scrollTop()!==c&&g(),r.resolve(i,a,o,s,!0)};return f(),s&&!p?v():_(),r.promise()}},a=n(),o=n(!1),s=function(){return 3*e.mobile.getScreenHeight()};e.mobile.defaultTransitionHandler=a,e.mobile.transitionHandlers={"default":e.mobile.defaultTransitionHandler,sequential:a,simultaneous:o},e.mobile.transitionFallbacks={},e.mobile._maybeDegradeTransition=function(t){return t&&!e.support.cssTransform3d&&e.mobile.transitionFallbacks[t]&&(t=e.mobile.transitionFallbacks[t]),t},e.mobile.getMaxScrollForTransition=e.mobile.getMaxScrollForTransition||s}(e,this),function(e,n){function a(t){!f||f.closest("."+e.mobile.activePageClass).length&&!t||f.removeClass(e.mobile.activeBtnClass),f=null}function o(){_=!1,v.length>0&&e.mobile.changePage.apply(null,v.pop())}function s(t,i,n,a){i&&i.data("mobile-page")._trigger("beforehide",null,{nextPage:t}),t.data("mobile-page")._trigger("beforeshow",null,{prevPage:i||e("")}),e.mobile.hidePageLoadingMsg(),n=e.mobile._maybeDegradeTransition(n);var o=e.mobile.transitionHandlers[n||"default"]||e.mobile.defaultTransitionHandler,s=o(n,a,t,i);return s.done(function(){i&&i.data("mobile-page")._trigger("hide",null,{nextPage:t}),t.data("mobile-page")._trigger("show",null,{prevPage:i||e("")})}),s}function r(t,i){i&&t.attr("data-"+e.mobile.ns+"role",i),t.page()}function l(){var t=e.mobile.activePage&&c(e.mobile.activePage);return t||w.hrefNoHash}function d(e){for(;e&&("string"!=typeof e.nodeName||"a"!==e.nodeName.toLowerCase());)e=e.parentNode;return e}function c(t){var i=e(t).closest(".ui-page").jqmData("url"),n=w.hrefNoHash;return i&&p.isPath(i)||(i=n),p.makeUrlAbsolute(i,n)}var h=e.mobile.window,u=(e("html"),e("head")),p=e.extend(e.mobile.path,{getFilePath:function(t){var i="&"+e.mobile.subPageUrlKey;return t&&t.split(i)[0].split(C)[0]},isFirstPageUrl:function(t){var i=p.parseUrl(p.makeUrlAbsolute(t,this.documentBase)),a=i.hrefNoHash===this.documentUrl.hrefNoHash||this.documentBaseDiffers&&i.hrefNoHash===this.documentBase.hrefNoHash,o=e.mobile.firstPage,s=o&&o[0]?o[0].id:n;return a&&(!i.hash||"#"===i.hash||s&&i.hash.replace(/^#/,"")===s)},isPermittedCrossDomainRequest:function(t,i){return e.mobile.allowCrossDomainPages&&"file:"===t.protocol&&-1!==i.search(/^https?:/)}}),m=null,f=null,g=e.Deferred(),b=e.mobile.navigate.history,v=[],_=!1,C="&ui-state=dialog",x=u.children("base"),y=p.documentUrl,w=p.documentBase,T=(p.documentBaseDiffers,e.mobile.getScreenHeight),D=e.support.dynamicBaseTag?{element:x.length?x:e("",{href:w.hrefNoHash}).prependTo(u),set:function(e){e=p.parseUrl(e).hrefNoHash,D.element.attr("href",p.makeUrlAbsolute(e,w))},reset:function(){D.element.attr("href",w.hrefNoSearch)}}:n;e.mobile.getDocumentUrl=p.getDocumentUrl,e.mobile.getDocumentBase=p.getDocumentBase,e.mobile.back=function(){var e=t.navigator;this.phonegapNavigationEnabled&&e&&e.app&&e.app.backHistory?e.app.backHistory():t.history.back()},e.mobile.focusPage=function(e){var t=e.find("[autofocus]"),i=e.find(".ui-title:eq(0)");return t.length?(t.focus(),n):(i.length?i.focus():e.focus(),n)};var P,k,E=!0;P=function(){if(E){var t=e.mobile.urlHistory.getActive();if(t){var i=h.scrollTop();t.lastScroll=e.mobile.minScrollBack>i?e.mobile.defaultHomeScroll:i}}},k=function(){setTimeout(P,100)},h.bind(e.support.pushState?"popstate":"hashchange",function(){E=!1}),h.one(e.support.pushState?"popstate":"hashchange",function(){E=!0}),h.one("pagecontainercreate",function(){e.mobile.pageContainer.bind("pagechange",function(){E=!0,h.unbind("scrollstop",k),h.bind("scrollstop",k)})}),h.bind("scrollstop",k),e.mobile._maybeDegradeTransition=e.mobile._maybeDegradeTransition||function(e){return e},e.mobile.resetActivePageHeight=function(t){var i=e("."+e.mobile.activePageClass),n=parseFloat(i.css("padding-top")),a=parseFloat(i.css("padding-bottom")),o=parseFloat(i.css("border-top-width")),s=parseFloat(i.css("border-bottom-width"));t="number"==typeof t?t:T(),i.css("min-height",t-n-a-o-s)},e.fn.animationComplete=function(t){return e.support.cssTransitions?e(this).one("webkitAnimationEnd animationend",t):(setTimeout(t,0),e(this))},e.mobile.path=p,e.mobile.base=D,e.mobile.urlHistory=b,e.mobile.dialogHashKey=C,e.mobile.allowCrossDomainPages=!1,e.mobile._bindPageRemove=function(){var t=e(this);!t.data("mobile-page").options.domCache&&t.is(":jqmData(external-page='true')")&&t.bind("pagehide.remove",function(){var t=e(this),i=new e.Event("pageremove");t.trigger(i),i.isDefaultPrevented()||t.removeWithDependents()})},e.mobile.loadPage=function(t,i){var a=e.Deferred(),o=e.extend({},e.mobile.loadPage.defaults,i),s=null,d=null,c=p.makeUrlAbsolute(t,l());o.data&&"get"===o.type&&(c=p.addSearchParams(c,o.data),o.data=n),o.data&&"post"===o.type&&(o.reloadPage=!0);var h=p.getFilePath(c),u=p.convertUrlToDataUrl(c);if(o.pageContainer=o.pageContainer||e.mobile.pageContainer,s=o.pageContainer.children("[data-"+e.mobile.ns+"url='"+u+"']"),0===s.length&&u&&!p.isPath(u)&&(s=o.pageContainer.children("#"+u).attr("data-"+e.mobile.ns+"url",u).jqmData("url",u)),0===s.length)if(e.mobile.firstPage&&p.isFirstPageUrl(h))e.mobile.firstPage.parent().length&&(s=e(e.mobile.firstPage));else if(p.isEmbeddedPage(h))return a.reject(c,i),a.promise();if(s.length){if(!o.reloadPage)return r(s,o.role),a.resolve(c,i,s),D&&!i.prefetch&&D.set(t),a.promise();d=s}var m=o.pageContainer,f=new e.Event("pagebeforeload"),g={url:t,absUrl:c,dataUrl:u,deferred:a,options:o};if(m.trigger(f,g),f.isDefaultPrevented())return a.promise();if(o.showLoadMsg)var b=setTimeout(function(){e.mobile.showPageLoadingMsg()},o.loadMsgDelay),v=function(){clearTimeout(b),e.mobile.hidePageLoadingMsg()};return D&&i.prefetch===n&&D.reset(),e.mobile.allowCrossDomainPages||p.isSameDomain(y,c)?e.ajax({url:h,type:o.type,data:o.data,contentType:o.contentType,dataType:"html",success:function(l,m,f){var b=e(""),_=l.match(/]*>([^<]*)/)&&RegExp.$1,C=RegExp("(<[^>]+\\bdata-"+e.mobile.ns+"role=[\"']?page[\"']?[^>]*>)"),x=RegExp("\\bdata-"+e.mobile.ns+"url=[\"']?([^\"'>]*)[\"']?");if(C.test(l)&&RegExp.$1&&x.test(RegExp.$1)&&RegExp.$1&&(t=h=p.getFilePath(e(""+RegExp.$1+"").text())),D&&i.prefetch===n&&D.set(h),b.get(0).innerHTML=l,s=b.find(":jqmData(role='page'), :jqmData(role='dialog')").first(),s.length||(s=e(""+(l.split(/<\/?body[^>]*>/gim)[1]||"")+"")),_&&!s.jqmData("title")&&(~_.indexOf("&")&&(_=e(""+_+"").text()),s.jqmData("title",_)),!e.support.dynamicBaseTag){var y=p.get(h);s.find("[src], link[href], a[rel='external'], :jqmData(ajax='false'), a[target]").each(function(){var t=e(this).is("[href]")?"href":e(this).is("[src]")?"src":"action",i=e(this).attr(t);i=i.replace(location.protocol+"//"+location.host+location.pathname,""),/^(\w+:|#|\/)/.test(i)||e(this).attr(t,y+i)})}s.attr("data-"+e.mobile.ns+"url",p.convertUrlToDataUrl(h)).attr("data-"+e.mobile.ns+"external-page",!0).appendTo(o.pageContainer),s.one("pagecreate",e.mobile._bindPageRemove),r(s,o.role),c.indexOf("&"+e.mobile.subPageUrlKey)>-1&&(s=o.pageContainer.children("[data-"+e.mobile.ns+"url='"+u+"']")),o.showLoadMsg&&v(),g.xhr=f,g.textStatus=m,g.page=s,o.pageContainer.trigger("pageload",g),a.resolve(c,i,s,d)},error:function(t,n,s){D&&D.set(p.get()),g.xhr=t,g.textStatus=n,g.errorThrown=s;var r=new e.Event("pageloadfailed");o.pageContainer.trigger(r,g),r.isDefaultPrevented()||(o.showLoadMsg&&(v(),e.mobile.showPageLoadingMsg(e.mobile.pageLoadErrorMessageTheme,e.mobile.pageLoadErrorMessage,!0),setTimeout(e.mobile.hidePageLoadingMsg,1500)),a.reject(c,i))}}):a.reject(c,i),a.promise()},e.mobile.loadPage.defaults={type:"get",data:n,reloadPage:!1,role:n,showLoadMsg:!1,pageContainer:n,loadMsgDelay:50},e.mobile.changePage=function(t,d){if(_)return v.unshift(arguments),n;var c,h=e.extend({},e.mobile.changePage.defaults,d);h.pageContainer=h.pageContainer||e.mobile.pageContainer,h.fromPage=h.fromPage||e.mobile.activePage,c="string"==typeof t;var u=h.pageContainer,m=new e.Event("pagebeforechange"),f={toPage:t,options:h};if(f.absUrl=c?p.makeUrlAbsolute(t,l()):t.data("absUrl"),u.trigger(m,f),!m.isDefaultPrevented()){if(t=f.toPage,c="string"==typeof t,_=!0,c)return h.target=t,e.mobile.loadPage(t,h).done(function(t,i,n,a){_=!1,i.duplicateCachedPage=a,n.data("absUrl",f.absUrl),e.mobile.changePage(n,i)}).fail(function(){a(!0),o(),h.pageContainer.trigger("pagechangefailed",f)}),n;t[0]!==e.mobile.firstPage[0]||h.dataUrl||(h.dataUrl=y.hrefNoHash);var g=h.fromPage,x=h.dataUrl&&p.convertUrlToDataUrl(h.dataUrl)||t.jqmData("url"),w=x,T=(p.getFilePath(x),b.getActive()),D=0===b.activeIndex,P=0,k=i.title,E="dialog"===h.role||"dialog"===t.jqmData("role");if(g&&g[0]===t[0]&&!h.allowSamePageTransition)return _=!1,u.trigger("pagechange",f),h.fromHashChange&&b.direct({url:x}),n;r(t,h.role),h.fromHashChange&&(P="back"===d.direction?-1:1);try{i.activeElement&&"body"!==i.activeElement.nodeName.toLowerCase()?e(i.activeElement).blur():e("input:focus, textarea:focus, select:focus").blur()}catch(q){}var j=!1;E&&T&&(T.url&&T.url.indexOf(C)>-1&&e.mobile.activePage&&!e.mobile.activePage.is(".ui-dialog")&&b.activeIndex>0&&(h.changeHash=!1,j=!0),x=T.url||"",x+=!j&&x.indexOf("#")>-1?C:"#"+C,0===b.activeIndex&&x===b.initialDst&&(x+=C));var S=T?t.jqmData("title")||t.children(":jqmData(role='header')").find(".ui-title").text():k;if(S&&k===i.title&&(k=S),t.jqmData("title")||t.jqmData("title",k),h.transition=h.transition||(P&&!D?T.transition:n)||(E?e.mobile.defaultDialogTransition:e.mobile.defaultPageTransition),!P&&j&&(b.getActive().pageUrl=w),x&&!h.fromHashChange){var A;!p.isPath(x)&&0>x.indexOf("#")&&(x="#"+x),A={transition:h.transition,title:k,pageUrl:w,role:h.role},h.changeHash!==!1&&e.mobile.hashListeningEnabled?e.mobile.navigate(x,A,!0):t[0]!==e.mobile.firstPage[0]&&e.mobile.navigate.history.add(x,A)}i.title=k,e.mobile.activePage=t,h.reverse=h.reverse||0>P,s(t,g,h.transition,h.reverse).done(function(i,n,s,r,l){a(),h.duplicateCachedPage&&h.duplicateCachedPage.remove(),l||e.mobile.focusPage(t),o(),u.trigger("pagechange",f)})}},e.mobile.changePage.defaults={transition:n,reverse:!1,changeHash:!0,fromHashChange:!1,role:n,duplicateCachedPage:n,pageContainer:n,showLoadMsg:!0,dataUrl:n,fromPage:n,allowSamePageTransition:!1},e.mobile.navreadyDeferred=e.Deferred(),e.mobile._registerInternalEvents=function(){var i=function(t,i){var a,o,s,r,l=!0;return!e.mobile.ajaxEnabled||t.is(":jqmData(ajax='false')")||!t.jqmHijackable().length||t.attr("target")?!1:(a=t.attr("action"),r=(t.attr("method")||"get").toLowerCase(),a||(a=c(t),"get"===r&&(a=p.parseUrl(a).hrefNoSearch),a===w.hrefNoHash&&(a=y.hrefNoSearch)),a=p.makeUrlAbsolute(a,c(t)),p.isExternal(a)&&!p.isPermittedCrossDomainRequest(y,a)?!1:(i||(o=t.serializeArray(),m&&m[0].form===t[0]&&(s=m.attr("name"),s&&(e.each(o,function(e,t){return t.name===s?(s="",!1):n}),s&&o.push({name:s,value:m.attr("value")}))),l={url:a,options:{type:r,data:e.param(o),transition:t.jqmData("transition"),reverse:"reverse"===t.jqmData("direction"),reloadPage:!0}}),l))};e.mobile.document.delegate("form","submit",function(t){var n=i(e(this));n&&(e.mobile.changePage(n.url,n.options),t.preventDefault())}),e.mobile.document.bind("vclick",function(t){var n,o,s=t.target,r=!1;if(!(t.which>1)&&e.mobile.linkBindingEnabled){if(m=e(s),e.data(s,"mobile-button")){if(!i(e(s).closest("form"),!0))return;s.parentNode&&(s=s.parentNode)}else{if(s=d(s),!s||"#"===p.parseUrl(s.getAttribute("href")||"#").hash)return;if(!e(s).jqmHijackable().length)return}~s.className.indexOf("ui-link-inherit")?s.parentNode&&(o=e.data(s.parentNode,"buttonElements")):o=e.data(s,"buttonElements"),o?s=o.outer:r=!0,n=e(s),r&&(n=n.closest(".ui-btn")),n.length>0&&!n.hasClass("ui-disabled")&&(a(!0),f=n,f.addClass(e.mobile.activeBtnClass))}}),e.mobile.document.bind("click",function(i){if(e.mobile.linkBindingEnabled&&!i.isDefaultPrevented()){var o,s=d(i.target),r=e(s);if(s&&!(i.which>1)&&r.jqmHijackable().length){if(o=function(){t.setTimeout(function(){a(!0)},200)},r.is(":jqmData(rel='back')"))return e.mobile.back(),!1;var l=c(r),h=p.makeUrlAbsolute(r.attr("href")||"#",l);if(!e.mobile.ajaxEnabled&&!p.isEmbeddedPage(h))return o(),n;if(-1!==h.search("#")){if(h=h.replace(/[^#]*#/,""),!h)return i.preventDefault(),n;h=p.isPath(h)?p.makeUrlAbsolute(h,l):p.makeUrlAbsolute("#"+h,y.hrefNoHash)}var u=r.is("[rel='external']")||r.is(":jqmData(ajax='false')")||r.is("[target]"),m=u||p.isExternal(h)&&!p.isPermittedCrossDomainRequest(y,h);if(m)return o(),n;var f=r.jqmData("transition"),g="reverse"===r.jqmData("direction")||r.jqmData("back"),b=r.attr("data-"+e.mobile.ns+"rel")||n;e.mobile.changePage(h,{transition:f,reverse:g,role:b,link:r}),i.preventDefault()}}}),e.mobile.document.delegate(".ui-page","pageshow.prefetch",function(){var t=[];e(this).find("a:jqmData(prefetch)").each(function(){var i=e(this),n=i.attr("href");n&&-1===e.inArray(n,t)&&(t.push(n),e.mobile.loadPage(n,{role:i.attr("data-"+e.mobile.ns+"rel"),prefetch:!0}))})}),e.mobile._handleHashChange=function(i,a){var o=p.stripHash(i),s=0===e.mobile.urlHistory.stack.length?"none":n,r={changeHash:!1,fromHashChange:!0,reverse:"back"===a.direction};if(e.extend(r,a,{transition:(b.getLast()||{}).transition||s}),b.activeIndex>0&&o.indexOf(C)>-1&&b.initialDst!==o){if(e.mobile.activePage&&!e.mobile.activePage.is(".ui-dialog"))return"back"===a.direction?e.mobile.back():t.history.forward(),n;o=a.pageUrl;var l=e.mobile.urlHistory.getActive();e.extend(r,{role:l.role,transition:l.transition,reverse:"back"===a.direction})}o?(o=p.isPath(o)?o:p.makeUrlAbsolute("#"+o,w),o===p.makeUrlAbsolute("#"+b.initialDst,w)&&b.stack.length&&b.stack[0].url!==b.initialDst.replace(C,"")&&(o=e.mobile.firstPage),e.mobile.changePage(o,r)):e.mobile.changePage(e.mobile.firstPage,r)},h.bind("navigate",function(t,i){var n;t.originalEvent&&t.originalEvent.isDefaultPrevented()||(n=e.event.special.navigate.originalEventName.indexOf("hashchange")>-1?i.state.hash:i.state.url,n||(n=e.mobile.path.parseLocation().hash),n&&"#"!==n&&0!==n.indexOf("#"+e.mobile.path.uiStateKey)||(n=location.href),e.mobile._handleHashChange(n,i.state))}),e.mobile.document.bind("pageshow",e.mobile.resetActivePageHeight),e.mobile.window.bind("throttledresize",e.mobile.resetActivePageHeight)},e(function(){g.resolve()}),e.when(g,e.mobile.navreadyDeferred).done(function(){e.mobile._registerInternalEvents()})}(e),function(e){e.mobile.transitionFallbacks.flip="fade"}(e,this),function(e){e.mobile.transitionFallbacks.flow="fade"}(e,this),function(e){e.mobile.transitionFallbacks.pop="fade"}(e,this),function(e){e.mobile.transitionHandlers.slide=e.mobile.transitionHandlers.simultaneous,e.mobile.transitionFallbacks.slide="fade"}(e,this),function(e){e.mobile.transitionFallbacks.slidedown="fade"}(e,this),function(e){e.mobile.transitionFallbacks.slidefade="fade"}(e,this),function(e){e.mobile.transitionFallbacks.slideup="fade"}(e,this),function(e){e.mobile.transitionFallbacks.turn="fade"}(e,this),function(e){e.mobile.page.prototype.options.degradeInputs={color:!1,date:!1,datetime:!1,"datetime-local":!1,email:!1,month:!1,number:!1,range:"number",search:"text",tel:!1,time:!1,url:!1,week:!1},e.mobile.document.bind("pagecreate create",function(t){var i,n=e.mobile.closestPageData(e(t.target));n&&(i=n.options,e(t.target).find("input").not(n.keepNativeSelector()).each(function(){var t=e(this),n=this.getAttribute("type"),a=i.degradeInputs[n]||"text";if(i.degradeInputs[n]){var o=e("").html(t.clone()).html(),s=o.indexOf(" type=")>-1,r=s?/\s+type=["']?\w+['"]?/:/\/?>/,l=' type="'+a+'" data-'+e.mobile.ns+'type="'+n+'"'+(s?"":">");t.replaceWith(o.replace(r,l))}}))})}(e),function(e){e.widget("mobile.dialog",e.mobile.widget,{options:{closeBtn:"left",closeBtnText:"Close",overlayTheme:"a",corners:!0,initSelector:":jqmData(role='dialog')"},_handlePageBeforeShow:function(){this._isCloseable=!0,this.options.overlayTheme&&this.element.page("removeContainerBackground").page("setContainerBackground",this.options.overlayTheme)},_create:function(){var t=this.element,i=this.options.corners?" ui-corner-all":"",n=e("",{role:"dialog","class":"ui-dialog-contain ui-overlay-shadow"+i});t.addClass("ui-dialog ui-overlay-"+this.options.overlayTheme),t.wrapInner(n),t.bind("vclick submit",function(t){var i,n=e(t.target).closest("vclick"===t.type?"a":"form");n.length&&!n.jqmData("transition")&&(i=e.mobile.urlHistory.getActive()||{},n.attr("data-"+e.mobile.ns+"transition",i.transition||e.mobile.defaultDialogTransition).attr("data-"+e.mobile.ns+"direction","reverse"))}),this._on(t,{pagebeforeshow:"_handlePageBeforeShow"}),e.extend(this,{_createComplete:!1}),this._setCloseBtn(this.options.closeBtn)},_setCloseBtn:function(t){var i,n,a=this;this._headerCloseButton&&(this._headerCloseButton.remove(),this._headerCloseButton=null),"none"!==t&&(n="left"===t?"left":"right",i=e(""+this.options.closeBtnText+""),this.element.children().find(":jqmData(role='header')").first().prepend(i),this._createComplete&&e.fn.buttonMarkup&&i.buttonMarkup(),this._createComplete=!0,i.bind("click",function(){a.close()}),this._headerCloseButton=i)},_setOption:function(e,t){"closeBtn"===e&&this._setCloseBtn(t),this._super(e,t)},close:function(){var t,i,n=e.mobile.navigate.history;this._isCloseable&&(this._isCloseable=!1,e.mobile.hashListeningEnabled&&n.activeIndex>0?e.mobile.back():(t=Math.max(0,n.activeIndex-1),i=n.stack[t].pageUrl||n.stack[t].url,n.previousIndex=n.activeIndex,n.activeIndex=t,e.mobile.path.isPath(i)||(i=e.mobile.path.makeUrlAbsolute("#"+i)),e.mobile.changePage(i,{direction:"back",changeHash:!1,fromHashChange:!0})))}}),e.mobile.document.delegate(e.mobile.dialog.prototype.options.initSelector,"pagecreate",function(){e.mobile.dialog.prototype.enhance(this)})}(e,this),function(e){e.mobile.page.prototype.options.backBtnText="Back",e.mobile.page.prototype.options.addBackBtn=!1,e.mobile.page.prototype.options.backBtnTheme=null,e.mobile.page.prototype.options.headerTheme="a",e.mobile.page.prototype.options.footerTheme="a",e.mobile.page.prototype.options.contentTheme=null,e.mobile.document.bind("pagecreate",function(t){var i=e(t.target),n=i.data("mobile-page").options,a=i.jqmData("role"),o=n.theme;e(":jqmData(role='header'), :jqmData(role='footer'), :jqmData(role='content')",i).jqmEnhanceable().each(function(){var t,s,r,l,d=e(this),c=d.jqmData("role"),h=d.jqmData("theme"),u=h||n.contentTheme||"dialog"===a&&o;if(d.addClass("ui-"+c),"header"===c||"footer"===c){var p=h||("header"===c?n.headerTheme:n.footerTheme)||o;d.addClass("ui-bar-"+p).attr("role","header"===c?"banner":"contentinfo"),"header"===c&&(t=d.children("a, button"),s=t.hasClass("ui-btn-left"),r=t.hasClass("ui-btn-right"),s=s||t.eq(0).not(".ui-btn-right").addClass("ui-btn-left").length,r=r||t.eq(1).addClass("ui-btn-right").length),n.addBackBtn&&"header"===c&&e(".ui-page").length>1&&i.jqmData("url")!==e.mobile.path.stripHash(location.hash)&&!s&&(l=e(""+n.backBtnText+"").attr("data-"+e.mobile.ns+"theme",n.backBtnTheme||p).prependTo(d)),d.children("h1, h2, h3, h4, h5, h6").addClass("ui-title").attr({role:"heading","aria-level":"1"})}else"content"===c&&(u&&d.addClass("ui-body-"+u),d.attr("role","main"))})})}(e),function(e,t){function n(e){for(var t;e&&(t="string"==typeof e.className&&e.className+" ",!(t&&t.indexOf("ui-btn ")>-1&&0>t.indexOf("ui-disabled ")));)e=e.parentNode;return e}function a(n,a,o,s,r){var l=e.data(n[0],"buttonElements");n.removeClass(a).addClass(o),l&&(l.bcls=e(i.createElement("div")).addClass(l.bcls+" "+o).removeClass(a).attr("class"),s!==t&&(l.hover=s),l.state=r)}var o=function(e,i){var n=e.getAttribute(i);return"true"===n?!0:"false"===n?!1:null===n?t:n};e.fn.buttonMarkup=function(n){var a,r=this,l="data-"+e.mobile.ns;n=n&&"object"===e.type(n)?n:{};for(var d=0;r.length>d;d++){var c,h,u,p,m,f,g=r.eq(d),b=g[0],v=e.extend({},e.fn.buttonMarkup.defaults,{icon:n.icon!==t?n.icon:o(b,l+"icon"),iconpos:n.iconpos!==t?n.iconpos:o(b,l+"iconpos"),theme:n.theme!==t?n.theme:o(b,l+"theme")||e.mobile.getInheritedTheme(g,"c"),inline:n.inline!==t?n.inline:o(b,l+"inline"),shadow:n.shadow!==t?n.shadow:o(b,l+"shadow"),corners:n.corners!==t?n.corners:o(b,l+"corners"),iconshadow:n.iconshadow!==t?n.iconshadow:o(b,l+"iconshadow"),mini:n.mini!==t?n.mini:o(b,l+"mini")},n),_="ui-btn-inner",C="ui-btn-text",x=!1,y="up";for(a in v)v[a]===t||null===v[a]?g.removeAttr(l+a):b.setAttribute(l+a,v[a]);for("popup"===o(b,l+"rel")&&g.attr("href")&&(b.setAttribute("aria-haspopup",!0),b.setAttribute("aria-owns",g.attr("href"))),f=e.data("INPUT"===b.tagName||"BUTTON"===b.tagName?b.parentNode:b,"buttonElements"),f?(b=f.outer,g=e(b),u=f.inner,p=f.text,e(f.icon).remove(),f.icon=null,x=f.hover,y=f.state):(u=i.createElement(v.wrapperEls),p=i.createElement(v.wrapperEls)),m=v.icon?i.createElement("span"):null,s&&!f&&s(),v.theme||(v.theme=e.mobile.getInheritedTheme(g,"c")),c="ui-btn ",c+=x?"ui-btn-hover-"+v.theme:"",c+=y?" ui-btn-"+y+"-"+v.theme:"",c+=v.shadow?" ui-shadow":"",c+=v.corners?" ui-btn-corner-all":"",v.mini!==t&&(c+=v.mini===!0?" ui-mini":" ui-fullsize"),v.inline!==t&&(c+=v.inline===!0?" ui-btn-inline":" ui-btn-block"),v.icon&&(v.icon="ui-icon-"+v.icon,v.iconpos=v.iconpos||"left",h="ui-icon "+v.icon,v.iconshadow&&(h+=" ui-icon-shadow")),v.iconpos&&(c+=" ui-btn-icon-"+v.iconpos,"notext"!==v.iconpos||g.attr("title")||g.attr("title",g.getEncodedText())),f&&g.removeClass(f.bcls||""),g.removeClass("ui-link").addClass(c),u.className=_,p.className=C,f||u.appendChild(p),m&&(m.className=h,f&&f.icon||(m.innerHTML=" ",u.appendChild(m)));b.firstChild&&!f;)p.appendChild(b.firstChild);f||b.appendChild(u),f={hover:x,state:y,bcls:c,outer:b,inner:u,text:p,icon:m},e.data(b,"buttonElements",f),e.data(u,"buttonElements",f),e.data(p,"buttonElements",f),m&&e.data(m,"buttonElements",f)}return this},e.fn.buttonMarkup.defaults={corners:!0,shadow:!0,iconshadow:!0,wrapperEls:"span"};var s=function(){var i,o,r=e.mobile.buttonMarkup.hoverDelay;e.mobile.document.bind({"vmousedown vmousecancel vmouseup vmouseover vmouseout focus blur scrollstart":function(s){var l,d=e(n(s.target)),c=s.originalEvent&&/^touch/.test(s.originalEvent.type),h=s.type;d.length&&(l=d.attr("data-"+e.mobile.ns+"theme"),"vmousedown"===h?c?i=setTimeout(function(){a(d,"ui-btn-up-"+l,"ui-btn-down-"+l,t,"down")},r):a(d,"ui-btn-up-"+l,"ui-btn-down-"+l,t,"down"):"vmousecancel"===h||"vmouseup"===h?a(d,"ui-btn-down-"+l,"ui-btn-up-"+l,t,"up"):"vmouseover"===h||"focus"===h?c?o=setTimeout(function(){a(d,"ui-btn-up-"+l,"ui-btn-hover-"+l,!0,"")},r):a(d,"ui-btn-up-"+l,"ui-btn-hover-"+l,!0,""):("vmouseout"===h||"blur"===h||"scrollstart"===h)&&(a(d,"ui-btn-hover-"+l+" ui-btn-down-"+l,"ui-btn-up-"+l,!1,"up"),i&&clearTimeout(i),o&&clearTimeout(o)))},"focusin focus":function(t){e(n(t.target)).addClass(e.mobile.focusClass)},"focusout blur":function(t){e(n(t.target)).removeClass(e.mobile.focusClass)}}),s=null};e.mobile.document.bind("pagecreate create",function(t){e(":jqmData(role='button'), .ui-bar > a, .ui-header > a, .ui-footer > a, .ui-bar > :jqmData(role='controlgroup') > a",t.target).jqmEnhanceable().not("button, input, .ui-btn, :jqmData(role='none'), :jqmData(role='nojs')").buttonMarkup()})}(e),function(e,t){e.widget("mobile.collapsible",e.mobile.widget,{options:{expandCueText:" click to expand contents",collapseCueText:" click to collapse contents",collapsed:!0,heading:"h1,h2,h3,h4,h5,h6,legend",collapsedIcon:"plus",expandedIcon:"minus",iconpos:"left",theme:null,contentTheme:null,inset:!0,corners:!0,mini:!1,initSelector:":jqmData(role='collapsible')"},_create:function(){var i=this.element,n=this.options,a=i.addClass("ui-collapsible"),o=i.children(n.heading).first(),s=a.wrapInner("").children(".ui-collapsible-content"),r=i.closest(":jqmData(role='collapsible-set')").addClass("ui-collapsible-set"),l="";o.is("legend")&&(o=e(""+o.html()+"").insertBefore(o),o.next().remove()),r.length?(n.theme||(n.theme=r.jqmData("theme")||e.mobile.getInheritedTheme(r,"c")),n.contentTheme||(n.contentTheme=r.jqmData("content-theme")),n.collapsedIcon=i.jqmData("collapsed-icon")||r.jqmData("collapsed-icon")||n.collapsedIcon,n.expandedIcon=i.jqmData("expanded-icon")||r.jqmData("expanded-icon")||n.expandedIcon,n.iconpos=i.jqmData("iconpos")||r.jqmData("iconpos")||n.iconpos,n.inset=r.jqmData("inset")!==t?r.jqmData("inset"):!0,n.corners=!1,n.mini||(n.mini=r.jqmData("mini"))):n.theme||(n.theme=e.mobile.getInheritedTheme(i,"c")),n.inset&&(l+=" ui-collapsible-inset",n.corners&&(l+=" ui-corner-all")),n.contentTheme&&(l+=" ui-collapsible-themed-content",s.addClass("ui-body-"+n.contentTheme)),""!==l&&a.addClass(l),o.insertBefore(s).addClass("ui-collapsible-heading").append("").wrapInner("").find("a").first().buttonMarkup({shadow:!1,corners:!1,iconpos:n.iconpos,icon:n.collapsedIcon,mini:n.mini,theme:n.theme}),a.bind("expand collapse",function(t){if(!t.isDefaultPrevented()){var i=e(this),a="collapse"===t.type;t.preventDefault(),o.toggleClass("ui-collapsible-heading-collapsed",a).find(".ui-collapsible-heading-status").text(a?n.expandCueText:n.collapseCueText).end().find(".ui-icon").toggleClass("ui-icon-"+n.expandedIcon,!a).toggleClass("ui-icon-"+n.collapsedIcon,a||n.expandedIcon===n.collapsedIcon).end().find("a").first().removeClass(e.mobile.activeBtnClass),i.toggleClass("ui-collapsible-collapsed",a),s.toggleClass("ui-collapsible-content-collapsed",a).attr("aria-hidden",a),s.trigger("updatelayout")}}).trigger(n.collapsed?"collapse":"expand"),o.bind("tap",function(){o.find("a").first().addClass(e.mobile.activeBtnClass)}).bind("click",function(e){var t=o.is(".ui-collapsible-heading-collapsed")?"expand":"collapse";a.trigger(t),e.preventDefault(),e.stopPropagation()})}}),e.mobile.document.bind("pagecreate create",function(t){e.mobile.collapsible.prototype.enhanceWithin(t.target)})}(e),function(e){e.mobile.behaviors.addFirstLastClasses={_getVisibles:function(e,t){var i;return t?i=e.not(".ui-screen-hidden"):(i=e.filter(":visible"),0===i.length&&(i=e.not(".ui-screen-hidden"))),i},_addFirstLastClasses:function(e,t,i){e.removeClass("ui-first-child ui-last-child"),t.eq(0).addClass("ui-first-child").end().last().addClass("ui-last-child"),i||this.element.trigger("updatelayout")}}}(e),function(e,t){e.widget("mobile.collapsibleset",e.mobile.widget,e.extend({options:{initSelector:":jqmData(role='collapsible-set')"},_create:function(){var i=this.element.addClass("ui-collapsible-set"),n=this.options;n.theme||(n.theme=e.mobile.getInheritedTheme(i,"c")),n.contentTheme||(n.contentTheme=i.jqmData("content-theme")),n.corners||(n.corners=i.jqmData("corners")),i.jqmData("inset")!==t&&(n.inset=i.jqmData("inset")),n.inset=n.inset!==t?n.inset:!0,n.corners=n.corners!==t?n.corners:!0,n.corners&&n.inset&&i.addClass("ui-corner-all"),i.jqmData("collapsiblebound")||i.jqmData("collapsiblebound",!0).bind("expand",function(t){var i=e(t.target).closest(".ui-collapsible");i.parent().is(":jqmData(role='collapsible-set')")&&i.siblings(".ui-collapsible").trigger("collapse")})},_init:function(){var e=this.element,t=e.children(":jqmData(role='collapsible')"),i=t.filter(":jqmData(collapsed='false')"); -this._refresh("true"),i.trigger("expand")},_refresh:function(t){var i=this.element.children(":jqmData(role='collapsible')");e.mobile.collapsible.prototype.enhance(i.not(".ui-collapsible")),this._addFirstLastClasses(i,this._getVisibles(i,t),t)},refresh:function(){this._refresh(!1)}},e.mobile.behaviors.addFirstLastClasses)),e.mobile.document.bind("pagecreate create",function(t){e.mobile.collapsibleset.prototype.enhanceWithin(t.target)})}(e),function(e){e.fn.fieldcontain=function(){return this.addClass("ui-field-contain ui-body ui-br").contents().filter(function(){return 3===this.nodeType&&!/\S/.test(this.nodeValue)}).remove()},e(i).bind("pagecreate create",function(t){e(":jqmData(role='fieldcontain')",t.target).jqmEnhanceable().fieldcontain()})}(e),function(e){e.fn.grid=function(t){return this.each(function(){var i,n=e(this),a=e.extend({grid:null},t),o=n.children(),s={solo:1,a:2,b:3,c:4,d:5},r=a.grid;if(!r)if(5>=o.length)for(var l in s)s[l]===o.length&&(r=l);else r="a",n.addClass("ui-grid-duo");i=s[r],n.addClass("ui-grid-"+r),o.filter(":nth-child("+i+"n+1)").addClass("ui-block-a"),i>1&&o.filter(":nth-child("+i+"n+2)").addClass("ui-block-b"),i>2&&o.filter(":nth-child("+i+"n+3)").addClass("ui-block-c"),i>3&&o.filter(":nth-child("+i+"n+4)").addClass("ui-block-d"),i>4&&o.filter(":nth-child("+i+"n+5)").addClass("ui-block-e")})}}(e),function(e,t){e.widget("mobile.navbar",e.mobile.widget,{options:{iconpos:"top",grid:null,initSelector:":jqmData(role='navbar')"},_create:function(){var n=this.element,a=n.find("a"),o=a.filter(":jqmData(icon)").length?this.options.iconpos:t;n.addClass("ui-navbar ui-mini").attr("role","navigation").find("ul").jqmEnhanceable().grid({grid:this.options.grid}),a.buttonMarkup({corners:!1,shadow:!1,inline:!0,iconpos:o}),n.delegate("a","vclick",function(t){var n=e(t.target).is("a")?e(this):e(this).parent("a");if(!n.is(".ui-disabled, .ui-btn-active")){a.removeClass(e.mobile.activeBtnClass),e(this).addClass(e.mobile.activeBtnClass);var o=e(this);e(i).one("pagehide",function(){o.removeClass(e.mobile.activeBtnClass)})}}),n.closest(".ui-page").bind("pagebeforeshow",function(){a.filter(".ui-state-persist").addClass(e.mobile.activeBtnClass)})}}),e.mobile.document.bind("pagecreate create",function(t){e.mobile.navbar.prototype.enhanceWithin(t.target)})}(e),function(e){var t={};e.widget("mobile.listview",e.mobile.widget,e.extend({options:{theme:null,countTheme:"c",headerTheme:"b",dividerTheme:"b",icon:"arrow-r",splitIcon:"arrow-r",splitTheme:"b",corners:!0,shadow:!0,inset:!1,initSelector:":jqmData(role='listview')"},_create:function(){var e=this,t="";t+=e.options.inset?" ui-listview-inset":"",e.options.inset&&(t+=e.options.corners?" ui-corner-all":"",t+=e.options.shadow?" ui-shadow":""),e.element.addClass(function(e,i){return i+" ui-listview"+t}),e.refresh(!0)},_findFirstElementByTagName:function(e,t,i,n){var a={};for(a[i]=a[n]=!0;e;){if(a[e.nodeName])return e;e=e[t]}return null},_getChildrenByTagName:function(t,i,n){var a=[],o={};for(o[i]=o[n]=!0,t=t.firstChild;t;)o[t.nodeName]&&a.push(t),t=t.nextSibling;return e(a)},_addThumbClasses:function(t){var i,n,a=t.length;for(i=0;a>i;i++)n=e(this._findFirstElementByTagName(t[i].firstChild,"nextSibling","img","IMG")),n.length&&(n.addClass("ui-li-thumb"),e(this._findFirstElementByTagName(n[0].parentNode,"parentNode","li","LI")).addClass(n.is(".ui-li-icon")?"ui-li-has-icon":"ui-li-has-thumb"))},refresh:function(t){this.parentPage=this.element.closest(".ui-page"),this._createSubPages();var n,a,o,s,r,l,d,c,h,u,p,m,f=this.options,g=this.element,b=g.jqmData("dividertheme")||f.dividerTheme,v=g.jqmData("splittheme"),_=g.jqmData("spliticon"),C=g.jqmData("icon"),x=this._getChildrenByTagName(g[0],"li","LI"),y=!!e.nodeName(g[0],"ol"),w=!e.support.cssPseudoElement,T=g.attr("start"),D={};y&&w&&g.find(".ui-li-dec").remove(),y&&(T||0===T?w?d=parseInt(T,10):(c=parseInt(T,10)-1,g.css("counter-reset","listnumbering "+c)):w&&(d=1)),f.theme||(f.theme=e.mobile.getInheritedTheme(this.element,"c"));for(var P=0,k=x.length;k>P;P++){if(n=x.eq(P),a="ui-li",t||!n.hasClass("ui-li")){o=n.jqmData("theme")||f.theme,s=this._getChildrenByTagName(n[0],"a","A");var E="list-divider"===n.jqmData("role");s.length&&!E?(p=n.jqmData("icon"),n.buttonMarkup({wrapperEls:"div",shadow:!1,corners:!1,iconpos:"right",icon:s.length>1||p===!1?!1:p||C||f.icon,theme:o}),p!==!1&&1===s.length&&n.addClass("ui-li-has-arrow"),s.first().removeClass("ui-link").addClass("ui-link-inherit"),s.length>1&&(a+=" ui-li-has-alt",r=s.last(),l=v||r.jqmData("theme")||f.splitTheme,m=r.jqmData("icon"),r.appendTo(n).attr("title",e.trim(r.getEncodedText())).addClass("ui-li-link-alt").empty().buttonMarkup({shadow:!1,corners:!1,theme:o,icon:!1,iconpos:"notext"}).find(".ui-btn-inner").append(e(i.createElement("span")).buttonMarkup({shadow:!0,corners:!0,theme:l,iconpos:"notext",icon:m||p||_||f.splitIcon})))):E?(a+=" ui-li-divider ui-bar-"+(n.jqmData("theme")||b),n.attr("role","heading"),y&&(T||0===T?w?d=parseInt(T,10):(h=parseInt(T,10)-1,n.css("counter-reset","listnumbering "+h)):w&&(d=1))):a+=" ui-li-static ui-btn-up-"+o}y&&w&&0>a.indexOf("ui-li-divider")&&(u=a.indexOf("ui-li-static")>0?n:n.find(".ui-link-inherit"),u.addClass("ui-li-jsnumbering").prepend(""+d++ +". ")),D[a]||(D[a]=[]),D[a].push(n[0])}for(a in D)e(D[a]).addClass(a).children(".ui-btn-inner").addClass(a);g.find("h1, h2, h3, h4, h5, h6").addClass("ui-li-heading").end().find("p, dl").addClass("ui-li-desc").end().find(".ui-li-aside").each(function(){var t=e(this);t.prependTo(t.parent())}).end().find(".ui-li-count").each(function(){e(this).closest("li").addClass("ui-li-has-count")}).addClass("ui-btn-up-"+(g.jqmData("counttheme")||this.options.countTheme)+" ui-btn-corner-all"),this._addThumbClasses(x),this._addThumbClasses(g.find(".ui-link-inherit")),this._addFirstLastClasses(x,this._getVisibles(x,t),t),this._trigger("afterrefresh")},_idStringEscape:function(e){return e.replace(/[^a-zA-Z0-9]/g,"-")},_createSubPages:function(){var i,a=this.element,o=a.closest(".ui-page"),s=o.jqmData("url"),r=s||o[0][e.expando],l=a.attr("id"),d=this.options,c="data-"+e.mobile.ns,h=this,u=o.find(":jqmData(role='footer')").jqmData("id");if(t[r]===n&&(t[r]=-1),l=l||++t[r],e(a.find("li>ul, li>ol").toArray().reverse()).each(function(t){var n,o,r=e(this),h=r.attr("id")||l+"-"+t,p=r.parent(),m=e(r.prevAll().toArray().reverse()),f=m.length?m:e(""+e.trim(p.contents()[0].nodeValue)+""),g=f.first().getEncodedText(),b=(s||"")+"&"+e.mobile.subPageUrlKey+"="+h,v=r.jqmData("theme")||d.theme,_=r.jqmData("counttheme")||a.jqmData("counttheme")||d.countTheme;i=!0,n=r.detach().wrap("").parent().before(""+g+"").after(u?e(""):"").parent().appendTo(e.mobile.pageContainer),n.page(),o=p.find("a:first"),o.length||(o=e("").html(f||g).prependTo(p.empty())),o.attr("href","#"+b)}).listview(),i&&o.is(":jqmData(external-page='true')")&&o.data("mobile-page").options.domCache===!1){var p=function(t,i){var n,a=i.nextPage,r=new e.Event("pageremove");i.nextPage&&(n=a.jqmData("url"),0!==n.indexOf(s+"&"+e.mobile.subPageUrlKey)&&(h.childPages().remove(),o.trigger(r),r.isDefaultPrevented()||o.removeWithDependents()))};o.unbind("pagehide.remove").bind("pagehide.remove",p)}},childPages:function(){var t=this.parentPage.jqmData("url");return e(":jqmData(url^='"+t+"&"+e.mobile.subPageUrlKey+"')")}},e.mobile.behaviors.addFirstLastClasses)),e.mobile.document.bind("pagecreate create",function(t){e.mobile.listview.prototype.enhanceWithin(t.target)})}(e),function(e){var t=e("meta[name=viewport]"),i=t.attr("content"),n=i+",maximum-scale=1, user-scalable=no",a=i+",maximum-scale=10, user-scalable=yes",o=/(user-scalable[\s]*=[\s]*no)|(maximum-scale[\s]*=[\s]*1)[$,\s]/.test(i);e.mobile.zoom=e.extend({},{enabled:!o,locked:!1,disable:function(i){o||e.mobile.zoom.locked||(t.attr("content",n),e.mobile.zoom.enabled=!1,e.mobile.zoom.locked=i||!1)},enable:function(i){o||e.mobile.zoom.locked&&i!==!0||(t.attr("content",a),e.mobile.zoom.enabled=!0,e.mobile.zoom.locked=!1)},restore:function(){o||(t.attr("content",i),e.mobile.zoom.enabled=!0)}})}(e),function(e){e.widget("mobile.textinput",e.mobile.widget,{options:{theme:null,mini:!1,preventFocusZoom:/iPhone|iPad|iPod/.test(navigator.platform)&&navigator.userAgent.indexOf("AppleWebKit")>-1,initSelector:"input[type='text'], input[type='search'], :jqmData(type='search'), input[type='number'], :jqmData(type='number'), input[type='password'], input[type='email'], input[type='url'], input[type='tel'], textarea, input[type='time'], input[type='date'], input[type='month'], input[type='week'], input[type='datetime'], input[type='datetime-local'], input[type='color'], input:not([type]), input[type='file']",clearBtn:!1,clearSearchButtonText:null,clearBtnText:"clear text",disabled:!1},_create:function(){function t(){setTimeout(function(){a.toggleClass("ui-input-clear-hidden",!s.val())},0)}var i,a,o=this,s=this.element,r=this.options,l=r.theme||e.mobile.getInheritedTheme(this.element,"c"),d=" ui-body-"+l,c=r.mini?" ui-mini":"",h=s.is("[type='search'], :jqmData(type='search')"),u=r.clearSearchButtonText||r.clearBtnText,p=s.is("textarea, :jqmData(type='range')"),m=!!r.clearBtn&&!p,f=s.is("input")&&!s.is(":jqmData(type='range')");if(e("label[for='"+s.attr("id")+"']").addClass("ui-input-text"),i=s.addClass("ui-input-text ui-body-"+l),s[0].autocorrect===n||e.support.touchOverflow||(s[0].setAttribute("autocorrect","off"),s[0].setAttribute("autocomplete","off")),h?i=s.wrap("").parent():f&&(i=s.wrap("").parent()),m||h?(a=e(""+u+"").bind("click",function(e){s.val("").focus().trigger("change"),a.addClass("ui-input-clear-hidden"),e.preventDefault()}).appendTo(i).buttonMarkup({icon:"delete",iconpos:"notext",corners:!0,shadow:!0,mini:r.mini}),h||i.addClass("ui-input-has-clear"),t(),s.bind("paste cut keyup input focus change blur",t)):f||h||s.addClass("ui-corner-all ui-shadow-inset"+d+c),s.focus(function(){r.preventFocusZoom&&e.mobile.zoom.disable(!0),i.addClass(e.mobile.focusClass)}).blur(function(){i.removeClass(e.mobile.focusClass),r.preventFocusZoom&&e.mobile.zoom.enable(!0)}),s.is("textarea")){var g,b=15,v=100;this._keyup=function(){var e=s[0].scrollHeight,t=s[0].clientHeight;if(e>t){var i=parseFloat(s.css("padding-top")),n=parseFloat(s.css("padding-bottom")),a=i+n;s.height(e-a+b)}},s.on("keyup change input paste",function(){clearTimeout(g),g=setTimeout(o._keyup,v)}),this._on(!0,e.mobile.document,{pagechange:"_keyup"}),e.trim(s.val())&&this._on(!0,e.mobile.window,{load:"_keyup"})}s.attr("disabled")&&this.disable()},disable:function(){var e,t=this.element.is("[type='search'], :jqmData(type='search')"),i=this.element.is("input")&&!this.element.is(":jqmData(type='range')"),n=this.element.attr("disabled",!0)&&(i||t);return e=n?this.element.parent():this.element,e.addClass("ui-disabled"),this._setOption("disabled",!0)},enable:function(){var e,t=this.element.is("[type='search'], :jqmData(type='search')"),i=this.element.is("input")&&!this.element.is(":jqmData(type='range')"),n=this.element.attr("disabled",!1)&&(i||t);return e=n?this.element.parent():this.element,e.removeClass("ui-disabled"),this._setOption("disabled",!1)}}),e.mobile.document.bind("pagecreate create",function(t){e.mobile.textinput.prototype.enhanceWithin(t.target,!0)})}(e),function(e){e.mobile.listview.prototype.options.filter=!1,e.mobile.listview.prototype.options.filterPlaceholder="Filter items...",e.mobile.listview.prototype.options.filterTheme="c",e.mobile.listview.prototype.options.filterReveal=!1;var t=function(e,t){return-1===(""+e).toLowerCase().indexOf(t)};e.mobile.listview.prototype.options.filterCallback=t,e.mobile.document.delegate("ul, ol","listviewcreate",function(){var i=e(this),n=i.data("mobile-listview");if(n&&n.options.filter){n.options.filterReveal&&i.children().addClass("ui-screen-hidden");var a=e("",{"class":"ui-listview-filter ui-bar-"+n.options.filterTheme,role:"search"}).submit(function(e){e.preventDefault(),s.blur()}),o=function(){var a,o=e(this),s=this.value.toLowerCase(),r=null,l=i.children(),d=o.jqmData("lastval")+"",c=!1,h="",u=n.options.filterCallback!==t;if(!d||d!==s){if(n._trigger("beforefilter","beforefilter",{input:this}),o.jqmData("lastval",s),u||s.length=0;p--)a=e(r[p]),h=a.jqmData("filtertext")||a.text(),a.is("li:jqmData(role=list-divider)")?(a.toggleClass("ui-filter-hidequeue",!c),c=!1):n.options.filterCallback(h,s,a)?a.toggleClass("ui-filter-hidequeue",!0):c=!0;r.filter(":not(.ui-filter-hidequeue)").toggleClass("ui-screen-hidden",!1),r.filter(".ui-filter-hidequeue").toggleClass("ui-screen-hidden",!0).toggleClass("ui-filter-hidequeue",!1)}else r.toggleClass("ui-screen-hidden",!!n.options.filterReveal);n._addFirstLastClasses(l,n._getVisibles(l,!1),!1)}},s=e("",{placeholder:n.options.filterPlaceholder}).attr("data-"+e.mobile.ns+"type","search").jqmData("lastval","").bind("keyup change input",o).appendTo(a).textinput();n.options.inset&&a.addClass("ui-listview-filter-inset"),a.bind("submit",function(){return!1}).insertBefore(i)}})}(e),function(e){e.mobile.listview.prototype.options.autodividers=!1,e.mobile.listview.prototype.options.autodividersSelector=function(t){var i=e.trim(t.text())||null;return i?i=i.slice(0,1).toUpperCase():null},e.mobile.document.delegate("ul,ol","listviewcreate",function(){var t=e(this),n=t.data("mobile-listview");if(n&&n.options.autodividers){var a=function(){t.find("li:jqmData(role='list-divider')").remove();for(var a,o,s=t.find("li"),r=null,l=0;s.length>l;l++){if(a=s[l],o=n.options.autodividersSelector(e(a)),o&&r!==o){var d=i.createElement("li");d.appendChild(i.createTextNode(o)),d.setAttribute("data-"+e.mobile.ns+"role","list-divider"),a.parentNode.insertBefore(d,a)}r=o}},o=function(){t.unbind("listviewafterrefresh",o),a(),n.refresh(),t.bind("listviewafterrefresh",o)};o()}})}(e),function(e){e(i).bind("pagecreate create",function(t){e(":jqmData(role='nojs')",t.target).addClass("ui-nojs")})}(e),function(e){e.mobile.behaviors.formReset={_handleFormReset:function(){this._on(this.element.closest("form"),{reset:function(){this._delay("_reset")}})}}}(e),function(e){e.widget("mobile.checkboxradio",e.mobile.widget,e.extend({options:{theme:null,mini:!1,initSelector:"input[type='checkbox'],input[type='radio']"},_create:function(){var t=this,a=this.element,o=this.options,s=function(e,t){return e.jqmData(t)||e.closest("form, fieldset").jqmData(t)},r=e(a).closest("label"),l=r.length?r:e(a).closest("form, fieldset, :jqmData(role='page'), :jqmData(role='dialog')").find("label").filter("[for='"+a[0].id+"']").first(),d=a[0].type,c=s(a,"mini")||o.mini,h=d+"-on",u=d+"-off",p=s(a,"iconpos"),m="ui-"+h,f="ui-"+u;if("checkbox"===d||"radio"===d){e.extend(this,{label:l,inputtype:d,checkedClass:m,uncheckedClass:f,checkedicon:h,uncheckedicon:u}),o.theme||(o.theme=e.mobile.getInheritedTheme(this.element,"c")),l.buttonMarkup({theme:o.theme,icon:u,shadow:!1,mini:c,iconpos:p});var g=i.createElement("div");g.className="ui-"+d,a.add(l).wrapAll(g),l.bind({vmouseover:function(t){e(this).parent().is(".ui-disabled")&&t.stopPropagation()},vclick:function(e){return a.is(":disabled")?(e.preventDefault(),n):(t._cacheVals(),a.prop("checked","radio"===d&&!0||!a.prop("checked")),a.triggerHandler("click"),t._getInputSet().not(a).prop("checked",!1),t._updateAll(),!1)}}),a.bind({vmousedown:function(){t._cacheVals()},vclick:function(){var i=e(this);i.is(":checked")?(i.prop("checked",!0),t._getInputSet().not(i).prop("checked",!1)):i.prop("checked",!1),t._updateAll()},focus:function(){l.addClass(e.mobile.focusClass)},blur:function(){l.removeClass(e.mobile.focusClass)}}),this._handleFormReset(),this.refresh()}},_cacheVals:function(){this._getInputSet().each(function(){e(this).jqmData("cacheVal",this.checked)})},_getInputSet:function(){return"checkbox"===this.inputtype?this.element:this.element.closest("form, :jqmData(role='page'), :jqmData(role='dialog')").find("input[name='"+this.element[0].name+"'][type='"+this.inputtype+"']")},_updateAll:function(){var t=this;this._getInputSet().each(function(){var i=e(this);(this.checked||"checkbox"===t.inputtype)&&i.trigger("change")}).checkboxradio("refresh")},_reset:function(){this.refresh()},refresh:function(){var t=this.element[0],i=" "+e.mobile.activeBtnClass,n=this.checkedClass+(this.element.parents(".ui-controlgroup-horizontal").length?i:""),a=this.label;t.checked?a.removeClass(this.uncheckedClass+i).addClass(n).buttonMarkup({icon:this.checkedicon}):a.removeClass(n).addClass(this.uncheckedClass).buttonMarkup({icon:this.uncheckedicon}),t.disabled?this.disable():this.enable()},disable:function(){this.element.prop("disabled",!0).parent().addClass("ui-disabled")},enable:function(){this.element.prop("disabled",!1).parent().removeClass("ui-disabled")}},e.mobile.behaviors.formReset)),e.mobile.document.bind("pagecreate create",function(t){e.mobile.checkboxradio.prototype.enhanceWithin(t.target,!0)})}(e),function(e){e.widget("mobile.button",e.mobile.widget,{options:{theme:null,icon:null,iconpos:null,corners:!0,shadow:!0,iconshadow:!0,inline:null,mini:null,initSelector:"button, [type='button'], [type='submit'], [type='reset']"},_create:function(){var t,i=this.element,a=function(e){var t,i={};for(t in e)null!==e[t]&&"initSelector"!==t&&(i[t]=e[t]);return i}(this.options),o="";return"A"===i[0].tagName?(i.hasClass("ui-btn")||i.buttonMarkup(),n):(this.options.theme||(this.options.theme=e.mobile.getInheritedTheme(this.element,"c")),~i[0].className.indexOf("ui-btn-left")&&(o="ui-btn-left"),~i[0].className.indexOf("ui-btn-right")&&(o="ui-btn-right"),("submit"===i.attr("type")||"reset"===i.attr("type"))&&(o?o+=" ui-submit":o="ui-submit"),e("label[for='"+i.attr("id")+"']").addClass("ui-submit"),this.button=e("")[i.html()?"html":"text"](i.html()||i.val()).insertBefore(i).buttonMarkup(a).addClass(o).append(i.addClass("ui-btn-hidden")),t=this.button,i.bind({focus:function(){t.addClass(e.mobile.focusClass)},blur:function(){t.removeClass(e.mobile.focusClass)}}),this.refresh(),n)},_setOption:function(t,i){var n={};n[t]=i,"initSelector"!==t&&(this.button.buttonMarkup(n),this.element.attr("data-"+(e.mobile.ns||"")+t.replace(/([A-Z])/,"-$1").toLowerCase(),i)),this._super("_setOption",t,i)},enable:function(){return this.element.attr("disabled",!1),this.button.removeClass("ui-disabled").attr("aria-disabled",!1),this._setOption("disabled",!1)},disable:function(){return this.element.attr("disabled",!0),this.button.addClass("ui-disabled").attr("aria-disabled",!0),this._setOption("disabled",!0)},refresh:function(){var t=this.element;t.prop("disabled")?this.disable():this.enable(),e(this.button.data("buttonElements").text)[t.html()?"html":"text"](t.html()||t.val())}}),e.mobile.document.bind("pagecreate create",function(t){e.mobile.button.prototype.enhanceWithin(t.target,!0)})}(e),function(e,n){e.widget("mobile.slider",e.mobile.widget,e.extend({widgetEventPrefix:"slide",options:{theme:null,trackTheme:null,disabled:!1,initSelector:"input[type='range'], :jqmData(type='range'), :jqmData(role='slider')",mini:!1,highlight:!1},_create:function(){var a,o,s=this,r=this.element,l=e.mobile.getInheritedTheme(r,"c"),d=this.options.theme||l,c=this.options.trackTheme||l,h=r[0].nodeName.toLowerCase(),u=(this.isToggleSwitch="select"===h,r.parent().is(":jqmData(role='rangeslider')")),p=this.isToggleSwitch?"ui-slider-switch":"",m=r.attr("id"),f=e("[for='"+m+"']"),g=f.attr("id")||m+"-label",b=f.attr("id",g),v=this.isToggleSwitch?0:parseFloat(r.attr("min")),_=this.isToggleSwitch?r.find("option").length-1:parseFloat(r.attr("max")),C=t.parseFloat(r.attr("step")||1),x=this.options.mini||r.jqmData("mini")?" ui-mini":"",y=i.createElement("a"),w=e(y),T=i.createElement("div"),D=e(T),P=this.options.highlight&&!this.isToggleSwitch?function(){var t=i.createElement("div");return t.className="ui-slider-bg "+e.mobile.activeBtnClass+" ui-btn-corner-all",e(t).prependTo(D)}():!1;if(y.setAttribute("href","#"),T.setAttribute("role","application"),T.className=[this.isToggleSwitch?"ui-slider ":"ui-slider-track ",p," ui-btn-down-",c," ui-btn-corner-all",x].join(""),y.className="ui-slider-handle",T.appendChild(y),w.buttonMarkup({corners:!0,theme:d,shadow:!0}).attr({role:"slider","aria-valuemin":v,"aria-valuemax":_,"aria-valuenow":this._value(),"aria-valuetext":this._value(),title:this._value(),"aria-labelledby":g}),e.extend(this,{slider:D,handle:w,type:h,step:C,max:_,min:v,valuebg:P,isRangeslider:u,dragging:!1,beforeStart:null,userModified:!1,mouseMoved:!1}),this.isToggleSwitch){o=i.createElement("div"),o.className="ui-slider-inneroffset";for(var k=0,E=T.childNodes.length;E>k;k++)o.appendChild(T.childNodes[k]);T.appendChild(o),w.addClass("ui-slider-handle-snapping"),a=r.find("option");for(var q=0,j=a.length;j>q;q++){var S=q?"a":"b",A=q?" "+e.mobile.activeBtnClass:" ui-btn-down-"+c,N=(i.createElement("div"),i.createElement("span"));N.className=["ui-slider-label ui-slider-label-",S,A," ui-btn-corner-all"].join(""),N.setAttribute("role","img"),N.appendChild(i.createTextNode(a[q].innerHTML)),e(N).prependTo(D)}s._labels=e(".ui-slider-label",D)}b.addClass("ui-slider"),r.addClass(this.isToggleSwitch?"ui-slider-switch":"ui-slider-input"),this._on(r,{change:"_controlChange",keyup:"_controlKeyup",blur:"_controlBlur",vmouseup:"_controlVMouseUp"}),D.bind("vmousedown",e.proxy(this._sliderVMouseDown,this)).bind("vclick",!1),this._on(i,{vmousemove:"_preventDocumentDrag"}),this._on(D.add(i),{vmouseup:"_sliderVMouseUp"}),D.insertAfter(r),this.isToggleSwitch||u||(o=this.options.mini?"":"",r.add(D).wrapAll(o)),this.isToggleSwitch&&this.handle.bind({focus:function(){D.addClass(e.mobile.focusClass)},blur:function(){D.removeClass(e.mobile.focusClass)}}),this._on(this.handle,{vmousedown:"_handleVMouseDown",keydown:"_handleKeydown",keyup:"_handleKeyup"}),this.handle.bind("vclick",!1),this._handleFormReset(),this.refresh(n,n,!0)},_controlChange:function(e){return this._trigger("controlchange",e)===!1?!1:(this.mouseMoved||this.refresh(this._value(),!0),n)},_controlKeyup:function(){this.refresh(this._value(),!0,!0)},_controlBlur:function(){this.refresh(this._value(),!0)},_controlVMouseUp:function(){this._checkedRefresh()},_handleVMouseDown:function(){this.handle.focus()},_handleKeydown:function(t){var i=this._value();if(!this.options.disabled){switch(t.keyCode){case e.mobile.keyCode.HOME:case e.mobile.keyCode.END:case e.mobile.keyCode.PAGE_UP:case e.mobile.keyCode.PAGE_DOWN:case e.mobile.keyCode.UP:case e.mobile.keyCode.RIGHT:case e.mobile.keyCode.DOWN:case e.mobile.keyCode.LEFT:t.preventDefault(),this._keySliding||(this._keySliding=!0,this.handle.addClass("ui-state-active"))}switch(t.keyCode){case e.mobile.keyCode.HOME:this.refresh(this.min);break;case e.mobile.keyCode.END:this.refresh(this.max);break;case e.mobile.keyCode.PAGE_UP:case e.mobile.keyCode.UP:case e.mobile.keyCode.RIGHT:this.refresh(i+this.step);break;case e.mobile.keyCode.PAGE_DOWN:case e.mobile.keyCode.DOWN:case e.mobile.keyCode.LEFT:this.refresh(i-this.step)}}},_handleKeyup:function(){this._keySliding&&(this._keySliding=!1,this.handle.removeClass("ui-state-active"))},_sliderVMouseDown:function(e){return this.options.disabled||1!==e.which&&0!==e.which?!1:this._trigger("beforestart",e)===!1?!1:(this.dragging=!0,this.userModified=!1,this.mouseMoved=!1,this.isToggleSwitch&&(this.beforeStart=this.element[0].selectedIndex),this.refresh(e),this._trigger("start"),!1)},_sliderVMouseUp:function(){return this.dragging?(this.dragging=!1,this.isToggleSwitch&&(this.handle.addClass("ui-slider-handle-snapping"),this.mouseMoved?this.userModified?this.refresh(0===this.beforeStart?1:0):this.refresh(this.beforeStart):this.refresh(0===this.beforeStart?1:0)),this.mouseMoved=!1,this._trigger("stop"),!1):n},_preventDocumentDrag:function(e){return this._trigger("drag",e)===!1?!1:this.dragging&&!this.options.disabled?(this.mouseMoved=!0,this.isToggleSwitch&&this.handle.removeClass("ui-slider-handle-snapping"),this.refresh(e),this.userModified=this.beforeStart!==this.element[0].selectedIndex,!1):n},_checkedRefresh:function(){this.value!==this._value()&&this.refresh(this._value())},_value:function(){return this.isToggleSwitch?this.element[0].selectedIndex:parseFloat(this.element.val())},_reset:function(){this.refresh(n,!1,!0)},refresh:function(t,a,o){var s,r,l,d,c=this,h=e.mobile.getInheritedTheme(this.element,"c"),u=this.options.theme||h,p=this.options.trackTheme||h;c.slider[0].className=[this.isToggleSwitch?"ui-slider ui-slider-switch":"ui-slider-track"," ui-btn-down-"+p," ui-btn-corner-all",this.options.mini?" ui-mini":""].join(""),(this.options.disabled||this.element.attr("disabled"))&&this.disable(),this.value=this._value(),this.options.highlight&&!this.isToggleSwitch&&0===this.slider.find(".ui-slider-bg").length&&(this.valuebg=function(){var t=i.createElement("div");return t.className="ui-slider-bg "+e.mobile.activeBtnClass+" ui-btn-corner-all",e(t).prependTo(c.slider)}()),this.handle.buttonMarkup({corners:!0,theme:u,shadow:!0});var m,f,g=this.element,b=!this.isToggleSwitch,v=b?[]:g.find("option"),_=b?parseFloat(g.attr("min")):0,C=b?parseFloat(g.attr("max")):v.length-1,x=b&&parseFloat(g.attr("step"))>0?parseFloat(g.attr("step")):1;if("object"==typeof t){if(l=t,d=8,s=this.slider.offset().left,r=this.slider.width(),m=r/((C-_)/x),!this.dragging||s-d>l.pageX||l.pageX>s+r+d)return;f=m>1?100*((l.pageX-s)/r):Math.round(100*((l.pageX-s)/r))}else null==t&&(t=b?parseFloat(g.val()||0):g[0].selectedIndex),f=100*((parseFloat(t)-_)/(C-_));if(!isNaN(f)){var y=f/100*(C-_)+_,w=(y-_)%x,T=y-w;2*Math.abs(w)>=x&&(T+=w>0?x:-x);var D=100/((C-_)/x);if(y=parseFloat(T.toFixed(5)),m===n&&(m=r/((C-_)/x)),m>1&&b&&(f=(y-_)*D*(1/x)),0>f&&(f=0),f>100&&(f=100),_>y&&(y=_),y>C&&(y=C),this.handle.css("left",f+"%"),this.handle[0].setAttribute("aria-valuenow",b?y:v.eq(y).attr("value")),this.handle[0].setAttribute("aria-valuetext",b?y:v.eq(y).getEncodedText()),this.handle[0].setAttribute("title",b?y:v.eq(y).getEncodedText()),this.valuebg&&this.valuebg.css("width",f+"%"),this._labels){var P=100*(this.handle.width()/this.slider.width()),k=f&&P+(100-P)*f/100,E=100===f?0:Math.min(P+100-k,100);this._labels.each(function(){var t=e(this).is(".ui-slider-label-a");e(this).width((t?k:E)+"%")})}if(!o){var q=!1;if(b?(q=g.val()!==y,g.val(y)):(q=g[0].selectedIndex!==y,g[0].selectedIndex=y),this._trigger("beforechange",t)===!1)return!1;!a&&q&&g.trigger("change")}}},enable:function(){return this.element.attr("disabled",!1),this.slider.removeClass("ui-disabled").attr("aria-disabled",!1),this._setOption("disabled",!1)},disable:function(){return this.element.attr("disabled",!0),this.slider.addClass("ui-disabled").attr("aria-disabled",!0),this._setOption("disabled",!0)}},e.mobile.behaviors.formReset)),e.mobile.document.bind("pagecreate create",function(t){e.mobile.slider.prototype.enhanceWithin(t.target,!0)})}(e),function(e){e.widget("mobile.rangeslider",e.mobile.widget,{options:{theme:null,trackTheme:null,disabled:!1,initSelector:":jqmData(role='rangeslider')",mini:!1,highlight:!0},_create:function(){var t,i=this.element,n=this.options.mini?"ui-rangeslider ui-mini":"ui-rangeslider",a=i.find("input").first(),o=i.find("input").last(),s=i.find("label").first(),r=e.data(a.get(0),"mobileSlider").slider,l=e.data(o.get(0),"mobileSlider").slider,d=e.data(a.get(0),"mobileSlider").handle,c=e('').appendTo(i);i.find("label").length>1&&(t=i.find("label").last().hide()),a.addClass("ui-rangeslider-first"),o.addClass("ui-rangeslider-last"),i.addClass(n),r.appendTo(c),l.appendTo(c),s.prependTo(i),d.prependTo(l),e.extend(this,{_inputFirst:a,_inputLast:o,_sliderFirst:r,_sliderLast:l,_targetVal:null,_sliderTarget:!1,_sliders:c,_proxy:!1}),this.refresh(),this._on(this.element.find("input.ui-slider-input"),{slidebeforestart:"_slidebeforestart",slidestop:"_slidestop",slidedrag:"_slidedrag",slidebeforechange:"_change",blur:"_change",keyup:"_change"}),this._on({mousedown:"_change"}),this._on(this.element.closest("form"),{reset:"_handleReset"}),this._on(d,{vmousedown:"_dragFirstHandle"})},_handleReset:function(){var e=this;setTimeout(function(){e._updateHighlight()},0)},_dragFirstHandle:function(t){return e.data(this._inputFirst.get(0),"mobileSlider").dragging=!0,e.data(this._inputFirst.get(0),"mobileSlider").refresh(t),!1},_slidedrag:function(t){var i=e(t.target).is(this._inputFirst),a=i?this._inputLast:this._inputFirst;return this._sliderTarget=!1,"first"===this._proxy&&i||"last"===this._proxy&&!i?(e.data(a.get(0),"mobileSlider").dragging=!0,e.data(a.get(0),"mobileSlider").refresh(t),!1):n},_slidestop:function(t){var i=e(t.target).is(this._inputFirst);this._proxy=!1,this.element.find("input").trigger("vmouseup"),this._sliderFirst.css("z-index",i?1:"")},_slidebeforestart:function(t){this._sliderTarget=!1,e(t.originalEvent.target).hasClass("ui-slider-track")&&(this._sliderTarget=!0,this._targetVal=e(t.target).val())},_setOption:function(e){this._superApply(e),this.refresh()},refresh:function(){var e=this.element,t=this.options;e.find("input").slider({theme:t.theme,trackTheme:t.trackTheme,disabled:t.disabled,mini:t.mini,highlight:t.highlight}).slider("refresh"),this._updateHighlight()},_change:function(t){if("keyup"===t.type)return this._updateHighlight(),!1;var i=this,a=parseFloat(this._inputFirst.val(),10),o=parseFloat(this._inputLast.val(),10),s=e(t.target).hasClass("ui-rangeslider-first"),r=s?this._inputFirst:this._inputLast,l=s?this._inputLast:this._inputFirst;if(this._inputFirst.val()>this._inputLast.val()&&"mousedown"===t.type&&!e(t.target).hasClass("ui-slider-handle"))r.blur();else if("mousedown"===t.type)return;return a>o&&!this._sliderTarget?(r.val(s?o:a).slider("refresh"),this._trigger("normalize")):a>o&&(r.val(this._targetVal).slider("refresh"),setTimeout(function(){l.val(s?a:o).slider("refresh"),e.data(l.get(0),"mobileSlider").handle.focus(),i._sliderFirst.css("z-index",s?"":1),i._trigger("normalize")},0),this._proxy=s?"first":"last"),a===o?(e.data(r.get(0),"mobileSlider").handle.css("z-index",1),e.data(l.get(0),"mobileSlider").handle.css("z-index",0)):(e.data(l.get(0),"mobileSlider").handle.css("z-index",""),e.data(r.get(0),"mobileSlider").handle.css("z-index","")),this._updateHighlight(),a>=o?!1:n},_updateHighlight:function(){var t=parseInt(e.data(this._inputFirst.get(0),"mobileSlider").handle.get(0).style.left,10),i=parseInt(e.data(this._inputLast.get(0),"mobileSlider").handle.get(0).style.left,10),n=i-t;this.element.find(".ui-slider-bg").css({"margin-left":t+"%",width:n+"%"})},_destroy:function(){this.element.removeClass("ui-rangeslider ui-mini").find("label").show(),this._inputFirst.after(this._sliderFirst),this._inputLast.after(this._sliderLast),this._sliders.remove(),this.element.find("input").removeClass("ui-rangeslider-first ui-rangeslider-last").slider("destroy")}}),e.widget("mobile.rangeslider",e.mobile.rangeslider,e.mobile.behaviors.formReset),e(i).bind("pagecreate create",function(t){e.mobile.rangeslider.prototype.enhanceWithin(t.target,!0)})}(e),function(e){e.widget("mobile.selectmenu",e.mobile.widget,e.extend({options:{theme:null,disabled:!1,icon:"arrow-d",iconpos:"right",inline:!1,corners:!0,shadow:!0,iconshadow:!0,overlayTheme:"a",dividerTheme:"b",hidePlaceholderMenuItems:!0,closeText:"Close",nativeMenu:!0,preventFocusZoom:/iPhone|iPad|iPod/.test(navigator.platform)&&navigator.userAgent.indexOf("AppleWebKit")>-1,initSelector:"select:not( :jqmData(role='slider') )",mini:!1},_button:function(){return e("") -},_setDisabled:function(e){return this.element.attr("disabled",e),this.button.attr("aria-disabled",e),this._setOption("disabled",e)},_focusButton:function(){var e=this;setTimeout(function(){e.button.focus()},40)},_selectOptions:function(){return this.select.find("option")},_preExtension:function(){var t="";~this.element[0].className.indexOf("ui-btn-left")&&(t=" ui-btn-left"),~this.element[0].className.indexOf("ui-btn-right")&&(t=" ui-btn-right"),this.select=this.element.removeClass("ui-btn-left ui-btn-right").wrap(""),this.selectID=this.select.attr("id"),this.label=e("label[for='"+this.selectID+"']").addClass("ui-select"),this.isMultiple=this.select[0].multiple,this.options.theme||(this.options.theme=e.mobile.getInheritedTheme(this.select,"c"))},_destroy:function(){var e=this.element.parents(".ui-select");e.length>0&&(e.is(".ui-btn-left, .ui-btn-right")&&this.element.addClass(e.is(".ui-btn-left")?"ui-btn-left":"ui-btn-right"),this.element.insertAfter(e),e.remove())},_create:function(){this._preExtension(),this._trigger("beforeCreate"),this.button=this._button();var i=this,n=this.options,a=n.inline||this.select.jqmData("inline"),o=n.mini||this.select.jqmData("mini"),s=n.icon?n.iconpos||this.select.jqmData("iconpos"):!1,r=(-1===this.select[0].selectedIndex?0:this.select[0].selectedIndex,this.button.insertBefore(this.select).buttonMarkup({theme:n.theme,icon:n.icon,iconpos:s,inline:a,corners:n.corners,shadow:n.shadow,iconshadow:n.iconshadow,mini:o}));this.setButtonText(),n.nativeMenu&&t.opera&&t.opera.version&&r.addClass("ui-select-nativeonly"),this.isMultiple&&(this.buttonCount=e("").addClass("ui-li-count ui-btn-up-c ui-btn-corner-all").hide().appendTo(r.addClass("ui-li-has-count"))),(n.disabled||this.element.attr("disabled"))&&this.disable(),this.select.change(function(){i.refresh(),n.nativeMenu&&this.blur()}),this._handleFormReset(),this.build()},build:function(){var t=this;this.select.appendTo(t.button).bind("vmousedown",function(){t.button.addClass(e.mobile.activeBtnClass)}).bind("focus",function(){t.button.addClass(e.mobile.focusClass)}).bind("blur",function(){t.button.removeClass(e.mobile.focusClass)}).bind("focus vmouseover",function(){t.button.trigger("vmouseover")}).bind("vmousemove",function(){t.button.removeClass(e.mobile.activeBtnClass)}).bind("change blur vmouseout",function(){t.button.trigger("vmouseout").removeClass(e.mobile.activeBtnClass)}).bind("change blur",function(){t.button.removeClass("ui-btn-down-"+t.options.theme)}),t.button.bind("vmousedown",function(){t.options.preventFocusZoom&&e.mobile.zoom.disable(!0)}),t.label.bind("click focus",function(){t.options.preventFocusZoom&&e.mobile.zoom.disable(!0)}),t.select.bind("focus",function(){t.options.preventFocusZoom&&e.mobile.zoom.disable(!0)}),t.button.bind("mouseup",function(){t.options.preventFocusZoom&&setTimeout(function(){e.mobile.zoom.enable(!0)},0)}),t.select.bind("blur",function(){t.options.preventFocusZoom&&e.mobile.zoom.enable(!0)})},selected:function(){return this._selectOptions().filter(":selected")},selectedIndices:function(){var e=this;return this.selected().map(function(){return e._selectOptions().index(this)}).get()},setButtonText:function(){var t=this,n=this.selected(),a=this.placeholder,o=e(i.createElement("span"));this.button.find(".ui-btn-text").html(function(){return a=n.length?n.map(function(){return e(this).text()}).get().join(", "):t.placeholder,o.text(a).addClass(t.select.attr("class")).addClass(n.attr("class"))})},setButtonCount:function(){var e=this.selected();this.isMultiple&&this.buttonCount[e.length>1?"show":"hide"]().text(e.length)},_reset:function(){this.refresh()},refresh:function(){this.setButtonText(),this.setButtonCount()},open:e.noop,close:e.noop,disable:function(){this._setDisabled(!0),this.button.addClass("ui-disabled")},enable:function(){this._setDisabled(!1),this.button.removeClass("ui-disabled")}},e.mobile.behaviors.formReset)),e.mobile.document.bind("pagecreate create",function(t){e.mobile.selectmenu.prototype.enhanceWithin(t.target,!0)})}(e),function(e,n){function a(e,t,i,n){var a=n;return a=t>e?i+(e-t)/2:Math.min(Math.max(i,n-t/2),i+e-t)}function o(){var i=e.mobile.window;return{x:i.scrollLeft(),y:i.scrollTop(),cx:t.innerWidth||i.width(),cy:t.innerHeight||i.height()}}e.widget("mobile.popup",e.mobile.widget,{options:{theme:null,overlayTheme:null,shadow:!0,corners:!0,transition:"none",positionTo:"origin",tolerance:null,initSelector:":jqmData(role='popup')",closeLinkSelector:"a:jqmData(rel='back')",closeLinkEvents:"click.popup",navigateEvents:"navigate.popup",closeEvents:"navigate.popup pagebeforechange.popup",dismissible:!0,history:!e.mobile.browser.oldIE},_eatEventAndClose:function(e){return e.preventDefault(),e.stopImmediatePropagation(),this.options.dismissible&&this.close(),!1},_resizeScreen:function(){var e=this._ui.container.outerHeight(!0);this._ui.screen.removeAttr("style"),e>this._ui.screen.height()&&this._ui.screen.height(e)},_handleWindowKeyUp:function(t){return this._isOpen&&t.keyCode===e.mobile.keyCode.ESCAPE?this._eatEventAndClose(t):n},_expectResizeEvent:function(){var t=o();if(this._resizeData){if(t.x===this._resizeData.winCoords.x&&t.y===this._resizeData.winCoords.y&&t.cx===this._resizeData.winCoords.cx&&t.cy===this._resizeData.winCoords.cy)return!1;clearTimeout(this._resizeData.timeoutId)}return this._resizeData={timeoutId:setTimeout(e.proxy(this,"_resizeTimeout"),200),winCoords:t},!0},_resizeTimeout:function(){this._isOpen?this._expectResizeEvent()||(this._ui.container.hasClass("ui-popup-hidden")&&(this._ui.container.removeClass("ui-popup-hidden"),this.reposition({positionTo:"window"}),this._ignoreResizeEvents()),this._resizeScreen(),this._resizeData=null,this._orientationchangeInProgress=!1):(this._resizeData=null,this._orientationchangeInProgress=!1)},_ignoreResizeEvents:function(){var e=this;this._ignoreResizeTo&&clearTimeout(this._ignoreResizeTo),this._ignoreResizeTo=setTimeout(function(){e._ignoreResizeTo=0},1e3)},_handleWindowResize:function(){this._isOpen&&0===this._ignoreResizeTo&&(!this._expectResizeEvent()&&!this._orientationchangeInProgress||this._ui.container.hasClass("ui-popup-hidden")||this._ui.container.addClass("ui-popup-hidden").removeAttr("style"))},_handleWindowOrientationchange:function(){!this._orientationchangeInProgress&&this._isOpen&&0===this._ignoreResizeTo&&(this._expectResizeEvent(),this._orientationchangeInProgress=!0)},_handleDocumentFocusIn:function(t){var n,a=t.target,o=this._ui;if(this._isOpen){if(a!==o.container[0]){if(n=e(t.target),0===n.parents().filter(o.container[0]).length)return e(i.activeElement).one("focus",function(){n.blur()}),o.focusElement.focus(),t.preventDefault(),t.stopImmediatePropagation(),!1;o.focusElement[0]===o.container[0]&&(o.focusElement=n)}this._ignoreResizeEvents()}},_create:function(){var t={screen:e(""),placeholder:e(""),container:e("")},i=this.element.closest(".ui-page"),a=this.element.attr("id"),o=this;this.options.history=this.options.history&&e.mobile.ajaxEnabled&&e.mobile.hashListeningEnabled,0===i.length&&(i=e("body")),this.options.container=this.options.container||e.mobile.pageContainer,i.append(t.screen),t.container.insertAfter(t.screen),t.placeholder.insertAfter(this.element),a&&(t.screen.attr("id",a+"-screen"),t.container.attr("id",a+"-popup"),t.placeholder.html("")),t.container.append(this.element),t.focusElement=t.container,this.element.addClass("ui-popup"),e.extend(this,{_scrollTop:0,_page:i,_ui:t,_fallbackTransition:"",_currentTransition:!1,_prereqs:null,_isOpen:!1,_tolerance:null,_resizeData:null,_ignoreResizeTo:0,_orientationchangeInProgress:!1}),e.each(this.options,function(e,t){o.options[e]=n,o._setOption(e,t,!0)}),t.screen.bind("vclick",e.proxy(this,"_eatEventAndClose")),this._on(e.mobile.window,{orientationchange:e.proxy(this,"_handleWindowOrientationchange"),resize:e.proxy(this,"_handleWindowResize"),keyup:e.proxy(this,"_handleWindowKeyUp")}),this._on(e.mobile.document,{focusin:e.proxy(this,"_handleDocumentFocusIn")})},_applyTheme:function(e,t,i){for(var n,a=(e.attr("class")||"").split(" "),o=null,s=t+"";a.length>0;){if(o=a.pop(),n=RegExp("^ui-"+i+"-([a-z])$").exec(o),n&&n.length>1){o=n[1];break}o=null}t!==o&&(e.removeClass("ui-"+i+"-"+o),null!==t&&"none"!==t&&e.addClass("ui-"+i+"-"+s))},_setTheme:function(e){this._applyTheme(this.element,e,"body")},_setOverlayTheme:function(e){this._applyTheme(this._ui.screen,e,"overlay"),this._isOpen&&this._ui.screen.addClass("in")},_setShadow:function(e){this.element.toggleClass("ui-overlay-shadow",e)},_setCorners:function(e){this.element.toggleClass("ui-corner-all",e)},_applyTransition:function(t){this._ui.container.removeClass(this._fallbackTransition),t&&"none"!==t&&(this._fallbackTransition=e.mobile._maybeDegradeTransition(t),"none"===this._fallbackTransition&&(this._fallbackTransition=""),this._ui.container.addClass(this._fallbackTransition))},_setTransition:function(e){this._currentTransition||this._applyTransition(e)},_setTolerance:function(t){var i={t:30,r:15,b:30,l:15};if(t!==n){var a=(t+"").split(",");switch(e.each(a,function(e,t){a[e]=parseInt(t,10)}),a.length){case 1:isNaN(a[0])||(i.t=i.r=i.b=i.l=a[0]);break;case 2:isNaN(a[0])||(i.t=i.b=a[0]),isNaN(a[1])||(i.l=i.r=a[1]);break;case 4:isNaN(a[0])||(i.t=a[0]),isNaN(a[1])||(i.r=a[1]),isNaN(a[2])||(i.b=a[2]),isNaN(a[3])||(i.l=a[3]);break;default:}}this._tolerance=i},_setOption:function(t,i){var a,o="_set"+t.charAt(0).toUpperCase()+t.slice(1);this[o]!==n&&this[o](i),a=["initSelector","closeLinkSelector","closeLinkEvents","navigateEvents","closeEvents","history","container"],e.mobile.widget.prototype._setOption.apply(this,arguments),-1===e.inArray(t,a)&&this.element.attr("data-"+(e.mobile.ns||"")+t.replace(/([A-Z])/,"-$1").toLowerCase(),i)},_placementCoords:function(e){var t,n,s=o(),r={x:this._tolerance.l,y:s.y+this._tolerance.t,cx:s.cx-this._tolerance.l-this._tolerance.r,cy:s.cy-this._tolerance.t-this._tolerance.b};this._ui.container.css("max-width",r.cx),t={cx:this._ui.container.outerWidth(!0),cy:this._ui.container.outerHeight(!0)},n={x:a(r.cx,t.cx,r.x,e.x),y:a(r.cy,t.cy,r.y,e.y)},n.y=Math.max(0,n.y);var l=i.documentElement,d=i.body,c=Math.max(l.clientHeight,d.scrollHeight,d.offsetHeight,l.scrollHeight,l.offsetHeight);return n.y-=Math.min(n.y,Math.max(0,n.y+t.cy-c)),{left:n.x,top:n.y}},_createPrereqs:function(t,i,n){var a,o=this;a={screen:e.Deferred(),container:e.Deferred()},a.screen.then(function(){a===o._prereqs&&t()}),a.container.then(function(){a===o._prereqs&&i()}),e.when(a.screen,a.container).done(function(){a===o._prereqs&&(o._prereqs=null,n())}),o._prereqs=a},_animate:function(t){return this._ui.screen.removeClass(t.classToRemove).addClass(t.screenClassToAdd),t.prereqs.screen.resolve(),t.transition&&"none"!==t.transition&&(t.applyTransition&&this._applyTransition(t.transition),this._fallbackTransition)?(this._ui.container.animationComplete(e.proxy(t.prereqs.container,"resolve")).addClass(t.containerClassToAdd).removeClass(t.classToRemove),n):(this._ui.container.removeClass(t.classToRemove),t.prereqs.container.resolve(),n)},_desiredCoords:function(t){var i,n=null,a=o(),s=t.x,r=t.y,l=t.positionTo;if(l&&"origin"!==l)if("window"===l)s=a.cx/2+a.x,r=a.cy/2+a.y;else{try{n=e(l)}catch(d){n=null}n&&(n.filter(":visible"),0===n.length&&(n=null))}return n&&(i=n.offset(),s=i.left+n.outerWidth()/2,r=i.top+n.outerHeight()/2),("number"!==e.type(s)||isNaN(s))&&(s=a.cx/2+a.x),("number"!==e.type(r)||isNaN(r))&&(r=a.cy/2+a.y),{x:s,y:r}},_reposition:function(e){e={x:e.x,y:e.y,positionTo:e.positionTo},this._trigger("beforeposition",e),this._ui.container.offset(this._placementCoords(this._desiredCoords(e)))},reposition:function(e){this._isOpen&&this._reposition(e)},_openPrereqsComplete:function(){this._ui.container.addClass("ui-popup-active"),this._isOpen=!0,this._resizeScreen(),this._ui.container.attr("tabindex","0").focus(),this._ignoreResizeEvents(),this._trigger("afteropen")},_open:function(t){var i=e.extend({},this.options,t),n=function(){var e=navigator.userAgent,t=e.match(/AppleWebKit\/([0-9\.]+)/),i=!!t&&t[1],n=e.match(/Android (\d+(?:\.\d+))/),a=!!n&&n[1],o=e.indexOf("Chrome")>-1;return null!==n&&"4.0"===a&&i&&i>534.13&&!o?!0:!1}();this._createPrereqs(e.noop,e.noop,e.proxy(this,"_openPrereqsComplete")),this._currentTransition=i.transition,this._applyTransition(i.transition),this.options.theme||this._setTheme(this._page.jqmData("theme")||e.mobile.getInheritedTheme(this._page,"c")),this._ui.screen.removeClass("ui-screen-hidden"),this._ui.container.removeClass("ui-popup-hidden"),this._reposition(i),this.options.overlayTheme&&n&&this.element.closest(".ui-page").addClass("ui-popup-open"),this._animate({additionalCondition:!0,transition:i.transition,classToRemove:"",screenClassToAdd:"in",containerClassToAdd:"in",applyTransition:!1,prereqs:this._prereqs})},_closePrereqScreen:function(){this._ui.screen.removeClass("out").addClass("ui-screen-hidden")},_closePrereqContainer:function(){this._ui.container.removeClass("reverse out").addClass("ui-popup-hidden").removeAttr("style")},_closePrereqsDone:function(){this.options,this._ui.container.removeAttr("tabindex"),e.mobile.popup.active=n,this._trigger("afterclose")},_close:function(t){this._ui.container.removeClass("ui-popup-active"),this._page.removeClass("ui-popup-open"),this._isOpen=!1,this._createPrereqs(e.proxy(this,"_closePrereqScreen"),e.proxy(this,"_closePrereqContainer"),e.proxy(this,"_closePrereqsDone")),this._animate({additionalCondition:this._ui.screen.hasClass("in"),transition:t?"none":this._currentTransition,classToRemove:"in",screenClassToAdd:"out",containerClassToAdd:"reverse out",applyTransition:!0,prereqs:this._prereqs})},_unenhance:function(){this._setTheme("none"),this.element.detach().insertAfter(this._ui.placeholder).removeClass("ui-popup ui-overlay-shadow ui-corner-all"),this._ui.screen.remove(),this._ui.container.remove(),this._ui.placeholder.remove()},_destroy:function(){e.mobile.popup.active===this?(this.element.one("popupafterclose",e.proxy(this,"_unenhance")),this.close()):this._unenhance()},_closePopup:function(i,n){var a,o,s=this.options,r=!1;t.scrollTo(0,this._scrollTop),i&&"pagebeforechange"===i.type&&n&&(a="string"==typeof n.toPage?n.toPage:n.toPage.jqmData("url"),a=e.mobile.path.parseUrl(a),o=a.pathname+a.search+a.hash,this._myUrl!==e.mobile.path.makeUrlAbsolute(o)?r=!0:i.preventDefault()),s.container.unbind(s.closeEvents),this.element.undelegate(s.closeLinkSelector,s.closeLinkEvents),this._close(r)},_bindContainerClose:function(){this.options.container.one(this.options.closeEvents,e.proxy(this,"_closePopup"))},open:function(i){var a,o,s,r,l,d,c=this,h=this.options;if(!e.mobile.popup.active){if(e.mobile.popup.active=this,this._scrollTop=e.mobile.window.scrollTop(),!h.history)return c._open(i),c._bindContainerClose(),c.element.delegate(h.closeLinkSelector,h.closeLinkEvents,function(e){c.close(),e.preventDefault()}),n;if(d=e.mobile.urlHistory,o=e.mobile.dialogHashKey,s=e.mobile.activePage,r=s.is(".ui-dialog"),this._myUrl=a=d.getActive().url,l=a.indexOf(o)>-1&&!r&&d.activeIndex>0)return c._open(i),c._bindContainerClose(),n;-1!==a.indexOf(o)||r?a=e.mobile.path.parseLocation().hash+o:a+=a.indexOf("#")>-1?o:"#"+o,0===d.activeIndex&&a===d.initialDst&&(a+=o),e(t).one("beforenavigate",function(e){e.preventDefault(),c._open(i),c._bindContainerClose()}),this.urlAltered=!0,e.mobile.navigate(a,{role:"dialog"})}},close:function(){e.mobile.popup.active===this&&(this._scrollTop=e.mobile.window.scrollTop(),this.options.history&&this.urlAltered?(e.mobile.back(),this.urlAltered=!1):this._closePopup())}}),e.mobile.popup.handleLink=function(t){var i,n=t.closest(":jqmData(role='page')"),a=0===n.length?e("body"):n,o=e(e.mobile.path.parseUrl(t.attr("href")).hash,a[0]);o.data("mobile-popup")&&(i=t.offset(),o.popup("open",{x:i.left+t.outerWidth()/2,y:i.top+t.outerHeight()/2,transition:t.jqmData("transition"),positionTo:t.jqmData("position-to")})),setTimeout(function(){var i=t.parent().parent();i.hasClass("ui-li")&&(t=i.parent()),t.removeClass(e.mobile.activeBtnClass)},300)},e.mobile.document.bind("pagebeforechange",function(t,i){"popup"===i.options.role&&(e.mobile.popup.handleLink(i.options.link),t.preventDefault())}),e.mobile.document.bind("pagecreate create",function(t){e.mobile.popup.prototype.enhanceWithin(t.target,!0)})}(e),function(e,t){var n=function(n){var a,o,s,r=(n.select,n._destroy),l=n.selectID,d=l?l:(e.mobile.ns||"")+"uuid-"+n.uuid,c=d+"-listbox",h=d+"-dialog",u=n.label,p=n.select.closest(".ui-page"),m=n._selectOptions(),f=n.isMultiple=n.select[0].multiple,g=l+"-button",b=l+"-menu",v=e(""+""+""+u.getEncodedText()+""+""+""+""),_=e("").insertAfter(n.select).popup({theme:n.options.overlayTheme}),C=e("",{"class":"ui-selectmenu-list",id:b,role:"listbox","aria-labelledby":g}).attr("data-"+e.mobile.ns+"theme",n.options.theme).attr("data-"+e.mobile.ns+"divider-theme",n.options.dividerTheme).appendTo(_),x=e("",{"class":"ui-header ui-bar-"+n.options.theme}).prependTo(_),y=e("",{"class":"ui-title"}).appendTo(x);n.isMultiple&&(s=e("",{text:n.options.closeText,href:"#","class":"ui-btn-left"}).attr("data-"+e.mobile.ns+"iconpos","notext").attr("data-"+e.mobile.ns+"icon","delete").appendTo(x).buttonMarkup()),e.extend(n,{select:n.select,selectID:l,buttonId:g,menuId:b,popupID:c,dialogID:h,thisPage:p,menuPage:v,label:u,selectOptions:m,isMultiple:f,theme:n.options.theme,listbox:_,list:C,header:x,headerTitle:y,headerClose:s,menuPageContent:a,menuPageClose:o,placeholder:"",build:function(){var i=this;i.refresh(),i._origTabIndex===t&&(i._origTabIndex=null===i.select[0].getAttribute("tabindex")?!1:i.select.attr("tabindex")),i.select.attr("tabindex","-1").focus(function(){e(this).blur(),i.button.focus()}),i.button.bind("vclick keydown",function(t){i.options.disabled||i.isOpen||("vclick"===t.type||t.keyCode&&(t.keyCode===e.mobile.keyCode.ENTER||t.keyCode===e.mobile.keyCode.SPACE))&&(i._decideFormat(),"overlay"===i.menuType?i.button.attr("href","#"+i.popupID).attr("data-"+(e.mobile.ns||"")+"rel","popup"):i.button.attr("href","#"+i.dialogID).attr("data-"+(e.mobile.ns||"")+"rel","dialog"),i.isOpen=!0)}),i.list.attr("role","listbox").bind("focusin",function(t){e(t.target).attr("tabindex","0").trigger("vmouseover")}).bind("focusout",function(t){e(t.target).attr("tabindex","-1").trigger("vmouseout")}).delegate("li:not(.ui-disabled, .ui-li-divider)","click",function(t){var a=i.select[0].selectedIndex,o=i.list.find("li:not(.ui-li-divider)").index(this),s=i._selectOptions().eq(o)[0];s.selected=i.isMultiple?!s.selected:!0,i.isMultiple&&e(this).find(".ui-icon").toggleClass("ui-icon-checkbox-on",s.selected).toggleClass("ui-icon-checkbox-off",!s.selected),(i.isMultiple||a!==o)&&i.select.trigger("change"),i.isMultiple?i.list.find("li:not(.ui-li-divider)").eq(o).addClass("ui-btn-down-"+n.options.theme).find("a").first().focus():i.close(),t.preventDefault()}).keydown(function(t){var i,a,o=e(t.target),s=o.closest("li");switch(t.keyCode){case 38:return i=s.prev().not(".ui-selectmenu-placeholder"),i.is(".ui-li-divider")&&(i=i.prev()),i.length&&(o.blur().attr("tabindex","-1"),i.addClass("ui-btn-down-"+n.options.theme).find("a").first().focus()),!1;case 40:return a=s.next(),a.is(".ui-li-divider")&&(a=a.next()),a.length&&(o.blur().attr("tabindex","-1"),a.addClass("ui-btn-down-"+n.options.theme).find("a").first().focus()),!1;case 13:case 32:return o.trigger("click"),!1}}),i.menuPage.bind("pagehide",function(){e.mobile._bindPageRemove.call(i.thisPage)}),i.listbox.bind("popupafterclose",function(){i.close()}),i.isMultiple&&i.headerClose.click(function(){return"overlay"===i.menuType?(i.close(),!1):t}),i.thisPage.addDependents(this.menuPage)},_isRebuildRequired:function(){var e=this.list.find("li"),t=this._selectOptions();return t.text()!==e.text()},selected:function(){return this._selectOptions().filter(":selected:not( :jqmData(placeholder='true') )")},refresh:function(t){var i,n=this;this.element,this.isMultiple,(t||this._isRebuildRequired())&&n._buildList(),i=this.selectedIndices(),n.setButtonText(),n.setButtonCount(),n.list.find("li:not(.ui-li-divider)").removeClass(e.mobile.activeBtnClass).attr("aria-selected",!1).each(function(t){if(e.inArray(t,i)>-1){var a=e(this);a.attr("aria-selected",!0),n.isMultiple?a.find(".ui-icon").removeClass("ui-icon-checkbox-off").addClass("ui-icon-checkbox-on"):a.is(".ui-selectmenu-placeholder")?a.next().addClass(e.mobile.activeBtnClass):a.addClass(e.mobile.activeBtnClass)}})},close:function(){if(!this.options.disabled&&this.isOpen){var e=this;"page"===e.menuType?(e.menuPage.dialog("close"),e.list.appendTo(e.listbox)):e.listbox.popup("close"),e._focusButton(),e.isOpen=!1}},open:function(){this.button.click()},_decideFormat:function(){function t(){var t=i.list.find("."+e.mobile.activeBtnClass+" a");0===t.length&&(t=i.list.find("li.ui-btn:not( :jqmData(placeholder='true') ) a")),t.first().focus().closest("li").addClass("ui-btn-down-"+n.options.theme)}var i=this,a=e.mobile.window,o=i.list.parent(),s=o.outerHeight(),r=(o.outerWidth(),e("."+e.mobile.activePageClass),a.scrollTop()),l=i.button.offset().top,d=a.height();a.width(),s>d-80||!e.support.scrollTop?(i.menuPage.appendTo(e.mobile.pageContainer).page(),i.menuPageContent=v.find(".ui-content"),i.menuPageClose=v.find(".ui-header a"),i.thisPage.unbind("pagehide.remove"),0===r&&l>d&&i.thisPage.one("pagehide",function(){e(this).jqmData("lastScroll",l)}),i.menuPage.one("pageshow",function(){t()}).one("pagehide",function(){i.close()}),i.menuType="page",i.menuPageContent.append(i.list),i.menuPage.find("div .ui-title").text(i.label.text())):(i.menuType="overlay",i.listbox.one("popupafteropen",t))},_buildList:function(){var t=this,n=this.options,a=this.placeholder,o=!0,s=t.isMultiple?"checkbox-off":"false";t.list.empty().filter(".ui-listview").listview("destroy");for(var r,l=t.select.find("option"),d=l.length,c=this.select[0],h="data-"+e.mobile.ns,u=h+"option-index",p=h+"icon",m=h+"role",f=h+"placeholder",g=i.createDocumentFragment(),b=!1,v=0;d>v;v++,b=!1){var _=l[v],C=e(_),x=_.parentNode,y=C.text(),w=i.createElement("a"),T=[];if(w.setAttribute("href","#"),w.appendChild(i.createTextNode(y)),x!==c&&"optgroup"===x.nodeName.toLowerCase()){var D=x.getAttribute("label");if(D!==r){var P=i.createElement("li");P.setAttribute(m,"list-divider"),P.setAttribute("role","option"),P.setAttribute("tabindex","-1"),P.appendChild(i.createTextNode(D)),g.appendChild(P),r=D}}!o||_.getAttribute("value")&&0!==y.length&&!C.jqmData("placeholder")||(o=!1,b=!0,null===_.getAttribute(f)&&(this._removePlaceholderAttr=!0),_.setAttribute(f,!0),n.hidePlaceholderMenuItems&&T.push("ui-selectmenu-placeholder"),a!==y&&(a=t.placeholder=y));var k=i.createElement("li");_.disabled&&(T.push("ui-disabled"),k.setAttribute("aria-disabled",!0)),k.setAttribute(u,v),k.setAttribute(p,s),b&&k.setAttribute(f,!0),k.className=T.join(" "),k.setAttribute("role","option"),w.setAttribute("tabindex","-1"),k.appendChild(w),g.appendChild(k)}t.list[0].appendChild(g),this.isMultiple||a.length?this.headerTitle.text(this.placeholder):this.header.hide(),t.list.listview()},_button:function(){return e("",{href:"#",role:"button",id:this.buttonId,"aria-haspopup":"true","aria-owns":this.menuId})},_destroy:function(){this.close(),this._origTabIndex!==t&&(this._origTabIndex!==!1?this.select.attr("tabindex",this._origTabIndex):this.select.removeAttr("tabindex")),this._removePlaceholderAttr&&this._selectOptions().removeAttr("data-"+e.mobile.ns+"placeholder"),this.listbox.remove(),r.apply(this,arguments)}})};e.mobile.document.bind("selectmenubeforecreate",function(t){var i=e(t.target).data("mobile-selectmenu");i.options.nativeMenu||0!==i.element.parents(":jqmData(role='popup')").length||n(i)})}(e),function(e,t){e.widget("mobile.controlgroup",e.mobile.widget,e.extend({options:{shadow:!1,corners:!0,excludeInvisible:!0,type:"vertical",mini:!1,initSelector:":jqmData(role='controlgroup')"},_create:function(){var i=this.element,n={inner:e(""),legend:e("")},a=i.children("legend"),o=this;i.wrapInner(n.inner),a.length&&n.legend.append(a).insertBefore(i.children(0)),i.addClass("ui-corner-all ui-controlgroup"),e.extend(this,{_initialRefresh:!0}),e.each(this.options,function(e,i){o.options[e]=t,o._setOption(e,i,!0)})},_init:function(){this.refresh()},_setOption:function(i,n){var a="_set"+i.charAt(0).toUpperCase()+i.slice(1);this[a]!==t&&this[a](n),this._super(i,n),this.element.attr("data-"+(e.mobile.ns||"")+i.replace(/([A-Z])/,"-$1").toLowerCase(),n)},_setType:function(e){this.element.removeClass("ui-controlgroup-horizontal ui-controlgroup-vertical").addClass("ui-controlgroup-"+e),this.refresh()},_setCorners:function(e){this.element.toggleClass("ui-corner-all",e)},_setShadow:function(e){this.element.toggleClass("ui-shadow",e)},_setMini:function(e){this.element.toggleClass("ui-mini",e)},container:function(){return this.element.children(".ui-controlgroup-controls")},refresh:function(){var t=this.element.find(".ui-btn").not(".ui-slider-handle"),i=this._initialRefresh;e.mobile.checkboxradio&&this.element.find(":mobile-checkboxradio").checkboxradio("refresh"),this._addFirstLastClasses(t,this.options.excludeInvisible?this._getVisibles(t,i):t,i),this._initialRefresh=!1}},e.mobile.behaviors.addFirstLastClasses)),e(function(){e.mobile.document.bind("pagecreate create",function(t){e.mobile.controlgroup.prototype.enhanceWithin(t.target,!0)})})}(e),function(e){e(i).bind("pagecreate create",function(t){e(t.target).find("a").jqmEnhanceable().not(".ui-btn, .ui-link-inherit, :jqmData(role='none'), :jqmData(role='nojs')").addClass("ui-link")})}(e),function(e,t){e.widget("mobile.fixedtoolbar",e.mobile.widget,{options:{visibleOnPageShow:!0,disablePageZoom:!0,transition:"slide",fullscreen:!1,tapToggle:!0,tapToggleBlacklist:"a, button, input, select, textarea, .ui-header-fixed, .ui-footer-fixed, .ui-popup, .ui-panel, .ui-panel-dismiss-open",hideDuringFocus:"input, textarea, select",updatePagePadding:!0,trackPersistentToolbars:!0,supportBlacklist:function(){return!e.support.fixedPosition},initSelector:":jqmData(position='fixed')"},_create:function(){var i=this,n=i.options,a=i.element,o=a.is(":jqmData(role='header')")?"header":"footer",s=a.closest(".ui-page");return n.supportBlacklist()?(i.destroy(),t):(a.addClass("ui-"+o+"-fixed"),n.fullscreen?(a.addClass("ui-"+o+"-fullscreen"),s.addClass("ui-page-"+o+"-fullscreen")):s.addClass("ui-page-"+o+"-fixed"),e.extend(this,{_thisPage:null}),i._addTransitionClass(),i._bindPageEvents(),i._bindToggleHandlers(),t)},_addTransitionClass:function(){var e=this.options.transition;e&&"none"!==e&&("slide"===e&&(e=this.element.is(".ui-header")?"slidedown":"slideup"),this.element.addClass(e))},_bindPageEvents:function(){this._thisPage=this.element.closest(".ui-page"),this._on(this._thisPage,{pagebeforeshow:"_handlePageBeforeShow",webkitAnimationStart:"_handleAnimationStart",animationstart:"_handleAnimationStart",updatelayout:"_handleAnimationStart",pageshow:"_handlePageShow",pagebeforehide:"_handlePageBeforeHide"})},_handlePageBeforeShow:function(){var t=this.options;t.disablePageZoom&&e.mobile.zoom.disable(!0),t.visibleOnPageShow||this.hide(!0)},_handleAnimationStart:function(){this.options.updatePagePadding&&this.updatePagePadding(this._thisPage)},_handlePageShow:function(){this.updatePagePadding(this._thisPage),this.options.updatePagePadding&&this._on(e.mobile.window,{throttledresize:"updatePagePadding"})},_handlePageBeforeHide:function(t,i){var n=this.options;if(n.disablePageZoom&&e.mobile.zoom.enable(!0),n.updatePagePadding&&this._off(e.mobile.window,"throttledresize"),n.trackPersistentToolbars){var a=e(".ui-footer-fixed:jqmData(id)",this._thisPage),o=e(".ui-header-fixed:jqmData(id)",this._thisPage),s=a.length&&i.nextPage&&e(".ui-footer-fixed:jqmData(id='"+a.jqmData("id")+"')",i.nextPage)||e(),r=o.length&&i.nextPage&&e(".ui-header-fixed:jqmData(id='"+o.jqmData("id")+"')",i.nextPage)||e();(s.length||r.length)&&(s.add(r).appendTo(e.mobile.pageContainer),i.nextPage.one("pageshow",function(){r.prependTo(this),s.appendTo(this)}))}},_visible:!0,updatePagePadding:function(i){var n=this.element,a=n.is(".ui-header"),o=parseFloat(n.css(a?"top":"bottom"));this.options.fullscreen||(i=i&&i.type===t&&i||this._thisPage||n.closest(".ui-page"),e(i).css("padding-"+(a?"top":"bottom"),n.outerHeight()+o))},_useTransition:function(t){var i=e.mobile.window,n=this.element,a=i.scrollTop(),o=n.height(),s=n.closest(".ui-page").height(),r=e.mobile.getScreenHeight(),l=n.is(":jqmData(role='header')")?"header":"footer";return!t&&(this.options.transition&&"none"!==this.options.transition&&("header"===l&&!this.options.fullscreen&&a>o||"footer"===l&&!this.options.fullscreen&&s-o>a+r)||this.options.fullscreen)},show:function(e){var t="ui-fixed-hidden",i=this.element;this._useTransition(e)?i.removeClass("out "+t).addClass("in").animationComplete(function(){i.removeClass("in")}):i.removeClass(t),this._visible=!0},hide:function(e){var t="ui-fixed-hidden",i=this.element,n="out"+("slide"===this.options.transition?" reverse":"");this._useTransition(e)?i.addClass(n).removeClass("in").animationComplete(function(){i.addClass(t).removeClass(n)}):i.addClass(t).removeClass(n),this._visible=!1},toggle:function(){this[this._visible?"hide":"show"]()},_bindToggleHandlers:function(){var t,i,n=this,a=n.options,o=n.element,s=!0;o.closest(".ui-page").bind("vclick",function(t){a.tapToggle&&!e(t.target).closest(a.tapToggleBlacklist).length&&n.toggle()}).bind("focusin focusout",function(o){1025>screen.width&&e(o.target).is(a.hideDuringFocus)&&!e(o.target).closest(".ui-header-fixed, .ui-footer-fixed").length&&("focusout"!==o.type||s?"focusin"===o.type&&s&&(clearTimeout(t),s=!1,i=setTimeout(function(){n.hide()},0)):(s=!0,clearTimeout(i),t=setTimeout(function(){n.show()},0)))})},_destroy:function(){var e=this.element,t=e.is(".ui-header");e.closest(".ui-page").css("padding-"+(t?"top":"bottom"),""),e.removeClass("ui-header-fixed ui-footer-fixed ui-header-fullscreen ui-footer-fullscreen in out fade slidedown slideup ui-fixed-hidden"),e.closest(".ui-page").removeClass("ui-page-header-fixed ui-page-footer-fixed ui-page-header-fullscreen ui-page-footer-fullscreen")}}),e.mobile.document.bind("pagecreate create",function(t){e(t.target).jqmData("fullscreen")&&e(e.mobile.fixedtoolbar.prototype.options.initSelector,t.target).not(":jqmData(fullscreen)").jqmData("fullscreen",!0),e.mobile.fixedtoolbar.prototype.enhanceWithin(t.target)})}(e),function(e){e.widget("mobile.fixedtoolbar",e.mobile.fixedtoolbar,{_create:function(){this._super(),this._workarounds()},_workarounds:function(){var e=navigator.userAgent,t=navigator.platform,i=e.match(/AppleWebKit\/([0-9]+)/),n=!!i&&i[1],a=null,o=this;if(t.indexOf("iPhone")>-1||t.indexOf("iPad")>-1||t.indexOf("iPod")>-1)a="ios";else{if(!(e.indexOf("Android")>-1))return;a="android"}if("ios"===a)o._bindScrollWorkaround();else{if(!("android"===a&&n&&534>n))return;o._bindScrollWorkaround(),o._bindListThumbWorkaround()}},_viewportOffset:function(){var t=this.element,i=t.is(".ui-header"),n=Math.abs(t.offset().top-e.mobile.window.scrollTop());return i||(n=Math.round(n-e.mobile.window.height()+t.outerHeight())-60),n},_bindScrollWorkaround:function(){var t=this;this._on(e.mobile.window,{scrollstop:function(){var e=t._viewportOffset();e>2&&t._visible&&t._triggerRedraw()}})},_bindListThumbWorkaround:function(){this.element.closest(".ui-page").addClass("ui-android-2x-fixed")},_triggerRedraw:function(){var t=parseFloat(e(".ui-page-active").css("padding-bottom")); -e(".ui-page-active").css("padding-bottom",t+1+"px"),setTimeout(function(){e(".ui-page-active").css("padding-bottom",t+"px")},0)},destroy:function(){this._super(),this.element.closest(".ui-page-active").removeClass("ui-android-2x-fix")}})}(e),function(e,n){e.widget("mobile.panel",e.mobile.widget,{options:{classes:{panel:"ui-panel",panelOpen:"ui-panel-open",panelClosed:"ui-panel-closed",panelFixed:"ui-panel-fixed",panelInner:"ui-panel-inner",modal:"ui-panel-dismiss",modalOpen:"ui-panel-dismiss-open",pagePanel:"ui-page-panel",pagePanelOpen:"ui-page-panel-open",contentWrap:"ui-panel-content-wrap",contentWrapOpen:"ui-panel-content-wrap-open",contentWrapClosed:"ui-panel-content-wrap-closed",contentFixedToolbar:"ui-panel-content-fixed-toolbar",contentFixedToolbarOpen:"ui-panel-content-fixed-toolbar-open",contentFixedToolbarClosed:"ui-panel-content-fixed-toolbar-closed",animate:"ui-panel-animate"},animate:!0,theme:"c",position:"left",dismissible:!0,display:"reveal",initSelector:":jqmData(role='panel')",swipeClose:!0,positionFixed:!1},_panelID:null,_closeLink:null,_page:null,_modal:null,_panelInner:null,_wrapper:null,_fixedToolbar:null,_create:function(){var t=this,i=t.element,n=i.closest(":jqmData(role='page')"),a=function(){var t=e.data(n[0],"mobilePage").options.theme,i="ui-body-"+t;return i},o=function(){var e=i.find("."+t.options.classes.panelInner);return 0===e.length&&(e=i.children().wrapAll('').parent()),e},s=function(){var i=n.find("."+t.options.classes.contentWrap);return 0===i.length&&(i=n.children(".ui-header:not(:jqmData(position='fixed')), .ui-content:not(:jqmData(role='popup')), .ui-footer:not(:jqmData(position='fixed'))").wrapAll('').parent(),e.support.cssTransform3d&&t.options.animate&&i.addClass(t.options.classes.animate)),i},r=function(){var i=n.find("."+t.options.classes.contentFixedToolbar);return 0===i.length&&(i=n.find(".ui-header:jqmData(position='fixed'), .ui-footer:jqmData(position='fixed')").addClass(t.options.classes.contentFixedToolbar),e.support.cssTransform3d&&t.options.animate&&i.addClass(t.options.classes.animate)),i};e.extend(this,{_panelID:i.attr("id"),_closeLink:i.find(":jqmData(rel='close')"),_page:i.closest(":jqmData(role='page')"),_pageTheme:a(),_panelInner:o(),_wrapper:s(),_fixedToolbar:r()}),t._addPanelClasses(),t._wrapper.addClass(this.options.classes.contentWrapClosed),t._fixedToolbar.addClass(this.options.classes.contentFixedToolbarClosed),t._page.addClass(t.options.classes.pagePanel),e.support.cssTransform3d&&t.options.animate&&this.element.addClass(t.options.classes.animate),t._bindUpdateLayout(),t._bindCloseEvents(),t._bindLinkListeners(),t._bindPageEvents(),t.options.dismissible&&t._createModal(),t._bindSwipeEvents()},_createModal:function(){var t=this;t._modal=e("").on("mousedown",function(){t.close()}).appendTo(this._page)},_getPosDisplayClasses:function(e){return e+"-position-"+this.options.position+" "+e+"-display-"+this.options.display},_getPanelClasses:function(){var e=this.options.classes.panel+" "+this._getPosDisplayClasses(this.options.classes.panel)+" "+this.options.classes.panelClosed;return this.options.theme&&(e+=" ui-body-"+this.options.theme),this.options.positionFixed&&(e+=" "+this.options.classes.panelFixed),e},_addPanelClasses:function(){this.element.addClass(this._getPanelClasses())},_bindCloseEvents:function(){var e=this;e._closeLink.on("click.panel",function(t){return t.preventDefault(),e.close(),!1}),e.element.on("click.panel","a:jqmData(ajax='false')",function(){e.close()})},_positionPanel:function(){var t=this,i=t._panelInner.outerHeight(),n=i>e.mobile.getScreenHeight();n||!t.options.positionFixed?(n&&(t._unfixPanel(),e.mobile.resetActivePageHeight(i)),t._scrollIntoView(i)):t._fixPanel()},_scrollIntoView:function(i){e(t).scrollTop()>i&&t.scrollTo(0,0)},_bindFixListener:function(){this._on(e(t),{throttledresize:"_positionPanel"})},_unbindFixListener:function(){this._off(e(t),"throttledresize")},_unfixPanel:function(){this.options.positionFixed&&e.support.fixedPosition&&this.element.removeClass(this.options.classes.panelFixed)},_fixPanel:function(){this.options.positionFixed&&e.support.fixedPosition&&this.element.addClass(this.options.classes.panelFixed)},_bindUpdateLayout:function(){var e=this;e.element.on("updatelayout",function(){e._open&&e._positionPanel()})},_bindLinkListeners:function(){var t=this;t._page.on("click.panel","a",function(i){if(this.href.split("#")[1]===t._panelID&&t._panelID!==n){i.preventDefault();var a=e(this);return a.hasClass("ui-link")||(a.addClass(e.mobile.activeBtnClass),t.element.one("panelopen panelclose",function(){a.removeClass(e.mobile.activeBtnClass)})),t.toggle(),!1}})},_bindSwipeEvents:function(){var e=this,t=e._modal?e.element.add(e._modal):e.element;e.options.swipeClose&&("left"===e.options.position?t.on("swipeleft.panel",function(){e.close()}):t.on("swiperight.panel",function(){e.close()}))},_bindPageEvents:function(){var e=this;e._page.on("panelbeforeopen",function(t){e._open&&t.target!==e.element[0]&&e.close()}).on("pagehide",function(){e._open&&e.close(!0)}).on("keyup.panel",function(t){27===t.keyCode&&e._open&&e.close()})},_open:!1,_contentWrapOpenClasses:null,_fixedToolbarOpenClasses:null,_modalOpenClasses:null,open:function(t){if(!this._open){var i=this,n=i.options,a=function(){i._page.off("panelclose"),i._page.jqmData("panel","open"),!t&&e.support.cssTransform3d&&n.animate?i.element.add(i._wrapper).on(i._transitionEndEvents,o):setTimeout(o,0),i.options.theme&&"overlay"!==i.options.display&&i._page.removeClass(i._pageTheme).addClass("ui-body-"+i.options.theme),i.element.removeClass(n.classes.panelClosed).addClass(n.classes.panelOpen),i._positionPanel(),i.options.theme&&"overlay"!==i.options.display&&i._wrapper.css("min-height",i._page.css("min-height")),i._contentWrapOpenClasses=i._getPosDisplayClasses(n.classes.contentWrap),i._wrapper.removeClass(n.classes.contentWrapClosed).addClass(i._contentWrapOpenClasses+" "+n.classes.contentWrapOpen),i._fixedToolbarOpenClasses=i._getPosDisplayClasses(n.classes.contentFixedToolbar),i._fixedToolbar.removeClass(n.classes.contentFixedToolbarClosed).addClass(i._fixedToolbarOpenClasses+" "+n.classes.contentFixedToolbarOpen),i._modalOpenClasses=i._getPosDisplayClasses(n.classes.modal)+" "+n.classes.modalOpen,i._modal&&i._modal.addClass(i._modalOpenClasses)},o=function(){i.element.add(i._wrapper).off(i._transitionEndEvents,o),i._page.addClass(n.classes.pagePanelOpen),i._bindFixListener(),i._trigger("open")};0>this.element.closest(".ui-page-active").length&&(t=!0),i._trigger("beforeopen"),"open"===i._page.jqmData("panel")?i._page.on("panelclose",function(){a()}):a(),i._open=!0}},close:function(t){if(this._open){var i=this.options,n=this,a=function(){!t&&e.support.cssTransform3d&&i.animate?n.element.add(n._wrapper).on(n._transitionEndEvents,o):setTimeout(o,0),n._page.removeClass(i.classes.pagePanelOpen),n.element.removeClass(i.classes.panelOpen),n._wrapper.removeClass(i.classes.contentWrapOpen),n._fixedToolbar.removeClass(i.classes.contentFixedToolbarOpen),n._modal&&n._modal.removeClass(n._modalOpenClasses)},o=function(){n.options.theme&&"overlay"!==n.options.display&&(n._page.removeClass("ui-body-"+n.options.theme).addClass(n._pageTheme),n._wrapper.css("min-height","")),n.element.add(n._wrapper).off(n._transitionEndEvents,o),n.element.addClass(i.classes.panelClosed),n._wrapper.removeClass(n._contentWrapOpenClasses).addClass(i.classes.contentWrapClosed),n._fixedToolbar.removeClass(n._fixedToolbarOpenClasses).addClass(i.classes.contentFixedToolbarClosed),n._fixPanel(),n._unbindFixListener(),e.mobile.resetActivePageHeight(),n._page.jqmRemoveData("panel"),n._trigger("close")};0>this.element.closest(".ui-page-active").length&&(t=!0),n._trigger("beforeclose"),a(),n._open=!1}},toggle:function(){this[this._open?"close":"open"]()},_transitionEndEvents:"webkitTransitionEnd oTransitionEnd otransitionend transitionend msTransitionEnd",_destroy:function(){var t=this.options.classes,i=this.options.theme,n=this.element.siblings("."+t.panel).length;n?this._open&&(this._wrapper.removeClass(t.contentWrapOpen),this._fixedToolbar.removeClass(t.contentFixedToolbarOpen),this._page.jqmRemoveData("panel"),this._page.removeClass(t.pagePanelOpen),i&&this._page.removeClass("ui-body-"+i).addClass(this._pageTheme)):(this._wrapper.children().unwrap(),this._page.find("a").unbind("panelopen panelclose"),this._page.removeClass(t.pagePanel),this._open&&(this._page.jqmRemoveData("panel"),this._page.removeClass(t.pagePanelOpen),i&&this._page.removeClass("ui-body-"+i).addClass(this._pageTheme),e.mobile.resetActivePageHeight())),this._panelInner.children().unwrap(),this.element.removeClass([this._getPanelClasses(),t.panelAnimate].join(" ")).off("swipeleft.panel swiperight.panel").off("panelbeforeopen").off("panelhide").off("keyup.panel").off("updatelayout"),this._closeLink.off("click.panel"),this._modal&&this._modal.remove(),this.element.off(this._transitionEndEvents).removeClass([t.panelUnfixed,t.panelClosed,t.panelOpen].join(" "))}}),e(i).bind("pagecreate create",function(t){e.mobile.panel.prototype.enhanceWithin(t.target)})}(e),function(e,t){e.widget("mobile.table",e.mobile.widget,{options:{classes:{table:"ui-table"},initSelector:":jqmData(role='table')"},_create:function(){var e=this;e.refresh(!0)},refresh:function(i){var n=this,a=this.element.find("thead tr");i&&this.element.addClass(this.options.classes.table),n.headers=this.element.find("tr:eq(0)").children(),n.allHeaders=n.headers.add(a.children()),a.each(function(){var o=0;e(this).children().each(function(){var s=parseInt(e(this).attr("colspan"),10),r=":nth-child("+(o+1)+")";if(e(this).jqmData("colstart",o+1),s)for(var l=0;s-1>l;l++)o++,r+=", :nth-child("+(o+1)+")";i===t&&e(this).jqmData("cells",""),e(this).jqmData("cells",n.element.find("tr").not(a.eq(0)).not(this).children(r)),o++})}),i===t&&this.element.trigger("refresh")}}),e.mobile.document.bind("pagecreate create",function(t){e.mobile.table.prototype.enhanceWithin(t.target)})}(e),function(e,t){e.mobile.table.prototype.options.mode="columntoggle",e.mobile.table.prototype.options.columnBtnTheme=null,e.mobile.table.prototype.options.columnPopupTheme=null,e.mobile.table.prototype.options.columnBtnText="Columns...",e.mobile.table.prototype.options.classes=e.extend(e.mobile.table.prototype.options.classes,{popup:"ui-table-columntoggle-popup",columnBtn:"ui-table-columntoggle-btn",priorityPrefix:"ui-table-priority-",columnToggleTable:"ui-table-columntoggle"}),e.mobile.document.delegate(":jqmData(role='table')","tablecreate refresh",function(i){var n,a,o,s,r=e(this),l=r.data("mobile-table"),d=i.type,c=l.options,h=e.mobile.ns,u=(r.attr("id")||c.classes.popup)+"-popup";"columntoggle"===c.mode&&("refresh"!==d&&(l.element.addClass(c.classes.columnToggleTable),n=e(""+c.columnBtnText+""),a=e(""),o=e("")),l.headers.not("td").each(function(t){var i=e(this).jqmData("priority"),n=e(this).add(e(this).jqmData("cells"));i&&(n.addClass(c.classes.priorityPrefix+i),"refresh"!==d?e(""+e(this).text()+"").appendTo(o).children(0).jqmData("cells",n).checkboxradio({theme:c.columnPopupTheme}):e("#"+u+" fieldset div:eq("+t+")").find("input").jqmData("cells",n))}),"refresh"!==d&&o.appendTo(a),s=o===t?e("#"+u+" fieldset"):o,"refresh"!==d&&(s.on("change","input",function(){this.checked?e(this).jqmData("cells").removeClass("ui-table-cell-hidden").addClass("ui-table-cell-visible"):e(this).jqmData("cells").removeClass("ui-table-cell-visible").addClass("ui-table-cell-hidden")}),n.insertBefore(r).buttonMarkup({theme:c.columnBtnTheme}),a.insertBefore(r).popup()),l.update=function(){s.find("input").each(function(){this.checked?(this.checked="table-cell"===e(this).jqmData("cells").eq(0).css("display"),"refresh"===d&&e(this).jqmData("cells").addClass("ui-table-cell-visible")):e(this).jqmData("cells").addClass("ui-table-cell-hidden"),e(this).checkboxradio("refresh")})},e.mobile.window.on("throttledresize",l.update),l.update())})}(e),function(e){e.mobile.table.prototype.options.mode="reflow",e.mobile.table.prototype.options.classes=e.extend(e.mobile.table.prototype.options.classes,{reflowTable:"ui-table-reflow",cellLabels:"ui-table-cell-label"}),e.mobile.document.delegate(":jqmData(role='table')","tablecreate refresh",function(t){var i=e(this),n=t.type,a=i.data("mobile-table"),o=a.options;if("reflow"===o.mode){"refresh"!==n&&a.element.addClass(o.classes.reflowTable);var s=e(a.allHeaders.get().reverse());s.each(function(){var t=e(this).jqmData("cells"),i=e(this).jqmData("colstart"),n=t.not(this).filter("thead th").length&&" ui-table-cell-label-top",a=e(this).text();if(""!==a)if(n){var s=parseInt(e(this).attr("colspan"),10),r="";s&&(r="td:nth-child("+s+"n + "+i+")"),t.filter(r).prepend(""+a+"")}else t.prepend(""+a+"")})}})}(e),function(e,t){function i(e){o=e.originalEvent,d=o.accelerationIncludingGravity,s=Math.abs(d.x),r=Math.abs(d.y),l=Math.abs(d.z),!t.orientation&&(s>7||(l>6&&8>r||8>l&&r>6)&&s>5)?c.enabled&&c.disable():c.enabled||c.enable()}e.mobile.iosorientationfixEnabled=!0;var a=navigator.userAgent;if(!(/iPhone|iPad|iPod/.test(navigator.platform)&&/OS [1-5]_[0-9_]* like Mac OS X/i.test(a)&&a.indexOf("AppleWebKit")>-1))return e.mobile.iosorientationfixEnabled=!1,n;var o,s,r,l,d,c=e.mobile.zoom;e.mobile.document.on("mobileinit",function(){e.mobile.iosorientationfixEnabled&&e.mobile.window.bind("orientationchange.iosorientationfix",c.enable).bind("devicemotion.iosorientationfix",i)})}(e,this),function(e,t){function n(){a.removeClass("ui-mobile-rendering")}var a=e("html"),o=(e("head"),e.mobile.window);e(t.document).trigger("mobileinit"),e.mobile.gradeA()&&(e.mobile.ajaxBlacklist&&(e.mobile.ajaxEnabled=!1),a.addClass("ui-mobile ui-mobile-rendering"),setTimeout(n,5e3),e.extend(e.mobile,{initializePage:function(){var t=e.mobile.path,a=e(":jqmData(role='page'), :jqmData(role='dialog')"),s=t.stripHash(t.stripQueryParams(t.parseLocation().hash)),r=i.getElementById(s);a.length||(a=e("body").wrapInner("").children(0)),a.each(function(){var t=e(this);t.jqmData("url")||t.attr("data-"+e.mobile.ns+"url",t.attr("id")||location.pathname+location.search)}),e.mobile.firstPage=a.first(),e.mobile.pageContainer=e.mobile.firstPage.parent().addClass("ui-mobile-viewport"),o.trigger("pagecontainercreate"),e.mobile.showPageLoadingMsg(),n(),e.mobile.hashListeningEnabled&&e.mobile.path.isHashValid(location.hash)&&(e(r).is(':jqmData(role="page")')||e.mobile.path.isPath(s)||s===e.mobile.dialogHashKey)?e.event.special.navigate.isPushStateEnabled()?(e.mobile.navigate.history.stack=[],e.mobile.navigate(e.mobile.path.isPath(location.hash)?location.hash:location.href)):o.trigger("hashchange",[!0]):(e.mobile.path.isHashValid(location.hash)&&(e.mobile.urlHistory.initialDst=s.replace("#","")),e.event.special.navigate.isPushStateEnabled()&&e.mobile.navigate.navigator.squash(t.parseLocation().href),e.mobile.changePage(e.mobile.firstPage,{transition:"none",reverse:!0,changeHash:!1,fromHashChange:!0}))}}),e.mobile.navreadyDeferred.resolve(),e(function(){t.scrollTo(0,1),e.mobile.defaultHomeScroll=e.support.scrollTop&&1!==e.mobile.window.scrollTop()?1:0,e.mobile.autoInitializePage&&e.mobile.initializePage(),o.load(e.mobile.silentScroll),e.support.cssPointerEvents||e.mobile.document.delegate(".ui-disabled","vclick",function(e){e.preventDefault(),e.stopImmediatePropagation()})}))}(e,this)}); -//@ sourceMappingURL=jquery.mobile-1.3.1.min.map \ No newline at end of file diff --git a/themes/smartpocket/js/klass.min.js b/themes/smartpocket/js/klass.min.js deleted file mode 100644 index 771a1b764..000000000 --- a/themes/smartpocket/js/klass.min.js +++ /dev/null @@ -1,8 +0,0 @@ -/** - * Klass.js - copyright @dedfat - * version 1.0 - * https://github.com/ded/klass - * Follow our software http://twitter.com/dedfat :) - * MIT License - */ -!function(a,b){function j(a,b){function c(){}c[e]=this[e];var d=this,g=new c,h=f(a),j=h?a:this,k=h?{}:a,l=function(){this.initialize?this.initialize.apply(this,arguments):(b||h&&d.apply(this,arguments),j.apply(this,arguments))};l.methods=function(a){i(g,a,d),l[e]=g;return this},l.methods.call(l,k).prototype.constructor=l,l.extend=arguments.callee,l[e].implement=l.statics=function(a,b){a=typeof a=="string"?function(){var c={};c[a]=b;return c}():a,i(this,a,d);return this};return l}function i(a,b,d){for(var g in b)b.hasOwnProperty(g)&&(a[g]=f(b[g])&&f(d[e][g])&&c.test(b[g])?h(g,b[g],d):b[g])}function h(a,b,c){return function(){var d=this.supr;this.supr=c[e][a];var f=b.apply(this,arguments);this.supr=d;return f}}function g(a){return j.call(f(a)?a:d,a,1)}var c=/xyz/.test(function(){xyz})?/\bsupr\b/:/.*/,d=function(){},e="prototype",f=function(a){return typeof a===b};if(typeof module!="undefined"&&module.exports)module.exports=g;else{var k=a.klass;g.noConflict=function(){a.klass=k;return this},a.klass=g}}(this,"function") diff --git a/themes/smartpocket/js/smartpocket.js b/themes/smartpocket/js/smartpocket.js deleted file mode 100644 index ee87a44d7..000000000 --- a/themes/smartpocket/js/smartpocket.js +++ /dev/null @@ -1,49 +0,0 @@ -(function(window, $, PhotoSwipe){ - $(document).ready(function(){ - var more_link - var options = { - jQueryMobile: true, - loop: var_loop, - captionAndToolbarAutoHideDelay: var_autohide, - imageScaleMethod: "fitNoUpscale", - getToolbar: function(){ -return ''+var_trad+'';}, - getImageMetaData:function(el){ - return { - picture_url: $(el).attr('data-picture-url'), - image_id: $(el).attr('data-image-id'), - };} - }; - var myPhotoSwipe = $(".thumbnails a").photoSwipe(options); - // onShow - store a reference to our "more_link" button - myPhotoSwipe.addEventHandler(PhotoSwipe.EventTypes.onShow, function(e){ - more_link = window.document.querySelectorAll('#more_link')[0]; - }); - // onToolbarTap - listen out for when the toolbar is tapped - myPhotoSwipe.addEventHandler(PhotoSwipe.EventTypes.onToolbarTap, function(e){ - if (e.toolbarAction === PhotoSwipe.Toolbar.ToolbarAction.none){ - if (e.tapTarget === more_link || Util.DOM.isChildOf(e.tapTarget, more_link)){ - var currentImage = myPhotoSwipe.getCurrentImage(); - window.location=currentImage.metaData.picture_url; - } - } - }); - - myPhotoSwipe.addEventHandler(PhotoSwipe.EventTypes.onDisplayImage, function(e) { - var currentImage = myPhotoSwipe.getCurrentImage(); - - jQuery.ajax({ - type: "POST", - url: 'ws.php?format=json&method=smartpocket.images.logHistory', - data: { - image_id:currentImage.metaData.image_id, - cat_id:jQuery("ul.thumbnails").data("cat_id"), - section:jQuery("ul.thumbnails").data("section"), - tags_string:jQuery("ul.thumbnails").data("tags_string"), - } - }); - }); - - var spThumbs = new SPThumbs(SPThumbsOpts); - }); -}(window, window.jQuery, window.Code.PhotoSwipe)); diff --git a/themes/smartpocket/js/thumb.arrange.js b/themes/smartpocket/js/thumb.arrange.js deleted file mode 100644 index f43c5d824..000000000 --- a/themes/smartpocket/js/thumb.arrange.js +++ /dev/null @@ -1,170 +0,0 @@ - -function SPTLine(margin, rowHeight) { - this.elements = new Array; - this.margin = margin; - this.rowHeight = rowHeight; - this.maxHeight = 0; -} - -SPTLine.prototype = { - width: 0, - elementsWidth: 0, - firstThumbIndex: 0, - - add: function($elt, absIndex) { - if (this.elements.length === 0) - this.firstThumbIndex = absIndex; - if (!$elt.data("w")) - { - var w=$elt.width(), h=$elt.height(); - if (h > this.rowHeight) { - w = Math.round(w * this.rowHeight/h); - h = this.rowHeight; - } - $elt.data("w", w) - .data("h", h); - } - - var eltObj = { - $elt: $elt, - w: $elt.data("w"), - h: $elt.data("h") - }; - this.elements.push(eltObj); - - if (eltObj.h > this.maxHeight) - this.maxHeight = eltObj.h; - - this.width += this.margin + eltObj.w; - this.elementsWidth += eltObj.w; - }, - - clear: function() { - if (!this.elements.length) return; - this.width = this.elementsWidth = 0; - this.maxHeight = 0; - this.elements.length = 0; - } -} - - -function SPThumbs(options) { - this.opts = options; - - this.$thumbs = $('.thumbnails'); - if (this.$thumbs.length==0) return; - this.$thumbs.css('text-align', 'left'); - - this.opts.extraRowHeight = 0; - if (window.devicePixelRatio > 1) { - var dpr = window.devicePixelRatio; - this.opts.extraRowHeight = 6; /*loose sharpness but only for small screens when we could "almost" fit with full sharpness*/ - this.opts.rowHeight = Math.round(this.opts.rowHeight / dpr ) + this.opts.extraRowHeight; - } - this.process(); - - var that = this; - $(window).on('resize', function() { - if (Math.abs(that.$thumbs.width() - that.prevContainerWidth)>1) - that.process(); - }) - .on('RVTS_loaded', function(evt, down) { - that.process( down && that.$thumbs.width() == that.prevContainerWidth ? that.prevLastLineFirstThumbIndex : 0); - } ); -} - -SPThumbs.prototype = { - prevContainerWidth:0, - prevLastLineFirstThumbIndex: 0, - - process: function(startIndex) { - startIndex = startIndex ? startIndex : 0; - var containerWidth = this.$thumbs.width() - , maxExtraMarginPerThumb = 1; - this.prevContainerWidth = containerWidth; - - var $elts = $('li.liVisible>a>img', this.$thumbs) - , line = new SPTLine(this.opts.hMargin, this.opts.rowHeight); - - for (var i=startIndex; i<$elts.length; i++) { - var $elt = $( $elts[i] ); - - line.add($elt, i); - if (line.width >= containerWidth - maxExtraMarginPerThumb * line.elements.length) { - this.processLine(line, containerWidth); - line.clear(); - } - }; - - if(line.elements.length) - this.processLine(line, containerWidth, true); - this.prevLastLineFirstThumbIndex = line.firstThumbIndex; - }, - - processLine: function(line, containerWidth, lastLine) { - var toRecover, eltW, eltH - , rowHeight = line.maxHeight ? line.maxHeight : line.elements[0].h; - - if (line.width / containerWidth > 1.01) { - var ratio = line.elementsWidth / (line.elementsWidth + containerWidth - line.width); - var adjustedRowHeight = rowHeight / (1 + (ratio-1) * 0.95 ); - adjustedRowHeight = 6 * Math.round( adjustedRowHeight/6 ); - if (adjustedRowHeight < rowHeight / ratio ) { - adjustedRowHeight = Math.ceil( rowHeight / ratio ); - var missing = this.opts.rowHeight - this.opts.extraRowHeight - adjustedRowHeight; - if (missing>0 && missing<6) - adjustedRowHeight += missing; - } - if (adjustedRowHeight < rowHeight) - rowHeight = adjustedRowHeight; - } - else if (lastLine) - rowHeight = Math.min( rowHeight, this.opts.rowHeight - this.opts.extraRowHeight); - - toRecover = line.width - containerWidth; - if (lastLine) - toRecover = 0; - - for(var i=0; i rowHeight ) { - eltW = Math.round( eltW * rowHeight/eltObj.h ); - eltH = rowHeight; - eltToRecover -= eltObj.w - eltW; - if (lastLine) - eltToRecover = 0; - } - - this.reposition(eltObj.$elt, eltW, eltH, eltW-eltToRecover, rowHeight); - } - }, - - reposition: function($img, imgW, imgH, liW, liH) { - $img.attr("width", imgW) - .attr("height", imgH); - - $img.closest("li").css( { - width: liW+"px", - height: liH+"px" - }); - - $img.parent("a").css( { - left: Math.round((liW-imgW)/2)+"px", - top: Math.round((liH-imgH)/2)+"px" - }); - } - -} - diff --git a/themes/smartpocket/language/ar_SA/index.php b/themes/smartpocket/language/ar_SA/index.php deleted file mode 100644 index ec6605317..000000000 --- a/themes/smartpocket/language/ar_SA/index.php +++ /dev/null @@ -1,7 +0,0 @@ - diff --git a/themes/smartpocket/language/ar_SA/theme.lang.php b/themes/smartpocket/language/ar_SA/theme.lang.php deleted file mode 100644 index 372402ad7..000000000 --- a/themes/smartpocket/language/ar_SA/theme.lang.php +++ /dev/null @@ -1,12 +0,0 @@ - diff --git a/themes/smartpocket/language/bg_BG/theme.lang.php b/themes/smartpocket/language/bg_BG/theme.lang.php deleted file mode 100644 index 205a33d3a..000000000 --- a/themes/smartpocket/language/bg_BG/theme.lang.php +++ /dev/null @@ -1,13 +0,0 @@ - \ No newline at end of file diff --git a/themes/smartpocket/language/br_FR/index.php b/themes/smartpocket/language/br_FR/index.php deleted file mode 100644 index ec6605317..000000000 --- a/themes/smartpocket/language/br_FR/index.php +++ /dev/null @@ -1,7 +0,0 @@ - diff --git a/themes/smartpocket/language/br_FR/theme.lang.php b/themes/smartpocket/language/br_FR/theme.lang.php deleted file mode 100644 index 05eae241e..000000000 --- a/themes/smartpocket/language/br_FR/theme.lang.php +++ /dev/null @@ -1,13 +0,0 @@ - \ No newline at end of file diff --git a/themes/smartpocket/language/ca_ES/index.php b/themes/smartpocket/language/ca_ES/index.php deleted file mode 100644 index ec6605317..000000000 --- a/themes/smartpocket/language/ca_ES/index.php +++ /dev/null @@ -1,7 +0,0 @@ - diff --git a/themes/smartpocket/language/ca_ES/theme.lang.php b/themes/smartpocket/language/ca_ES/theme.lang.php deleted file mode 100644 index db36f9b9f..000000000 --- a/themes/smartpocket/language/ca_ES/theme.lang.php +++ /dev/null @@ -1,13 +0,0 @@ - \ No newline at end of file diff --git a/themes/smartpocket/language/cs_CZ/index.php b/themes/smartpocket/language/cs_CZ/index.php deleted file mode 100644 index c01bbd832..000000000 --- a/themes/smartpocket/language/cs_CZ/index.php +++ /dev/null @@ -1,15 +0,0 @@ - diff --git a/themes/smartpocket/language/cs_CZ/theme.lang.php b/themes/smartpocket/language/cs_CZ/theme.lang.php deleted file mode 100644 index 58f46876a..000000000 --- a/themes/smartpocket/language/cs_CZ/theme.lang.php +++ /dev/null @@ -1,7 +0,0 @@ - \ No newline at end of file diff --git a/themes/smartpocket/language/da_DK/index.php b/themes/smartpocket/language/da_DK/index.php deleted file mode 100644 index ec6605317..000000000 --- a/themes/smartpocket/language/da_DK/index.php +++ /dev/null @@ -1,7 +0,0 @@ - diff --git a/themes/smartpocket/language/da_DK/theme.lang.php b/themes/smartpocket/language/da_DK/theme.lang.php deleted file mode 100644 index 716e0b1c9..000000000 --- a/themes/smartpocket/language/da_DK/theme.lang.php +++ /dev/null @@ -1,13 +0,0 @@ - \ No newline at end of file diff --git a/themes/smartpocket/language/de_DE/index.php b/themes/smartpocket/language/de_DE/index.php deleted file mode 100644 index ec6605317..000000000 --- a/themes/smartpocket/language/de_DE/index.php +++ /dev/null @@ -1,7 +0,0 @@ - diff --git a/themes/smartpocket/language/de_DE/theme.lang.php b/themes/smartpocket/language/de_DE/theme.lang.php deleted file mode 100644 index 182df69a7..000000000 --- a/themes/smartpocket/language/de_DE/theme.lang.php +++ /dev/null @@ -1,12 +0,0 @@ - diff --git a/themes/smartpocket/language/el_GR/theme.lang.php b/themes/smartpocket/language/el_GR/theme.lang.php deleted file mode 100644 index 7d174dcbe..000000000 --- a/themes/smartpocket/language/el_GR/theme.lang.php +++ /dev/null @@ -1,13 +0,0 @@ - \ No newline at end of file diff --git a/themes/smartpocket/language/en_UK/index.php b/themes/smartpocket/language/en_UK/index.php deleted file mode 100644 index c01bbd832..000000000 --- a/themes/smartpocket/language/en_UK/index.php +++ /dev/null @@ -1,15 +0,0 @@ - diff --git a/themes/smartpocket/language/en_UK/theme.lang.php b/themes/smartpocket/language/en_UK/theme.lang.php deleted file mode 100644 index 51aabe3fd..000000000 --- a/themes/smartpocket/language/en_UK/theme.lang.php +++ /dev/null @@ -1,7 +0,0 @@ - \ No newline at end of file diff --git a/themes/smartpocket/language/eo_EO/index.php b/themes/smartpocket/language/eo_EO/index.php deleted file mode 100644 index ec6605317..000000000 --- a/themes/smartpocket/language/eo_EO/index.php +++ /dev/null @@ -1,7 +0,0 @@ - diff --git a/themes/smartpocket/language/eo_EO/theme.lang.php b/themes/smartpocket/language/eo_EO/theme.lang.php deleted file mode 100644 index fa20fc806..000000000 --- a/themes/smartpocket/language/eo_EO/theme.lang.php +++ /dev/null @@ -1,13 +0,0 @@ - \ No newline at end of file diff --git a/themes/smartpocket/language/es_ES/index.php b/themes/smartpocket/language/es_ES/index.php deleted file mode 100644 index ec6605317..000000000 --- a/themes/smartpocket/language/es_ES/index.php +++ /dev/null @@ -1,7 +0,0 @@ - diff --git a/themes/smartpocket/language/es_ES/theme.lang.php b/themes/smartpocket/language/es_ES/theme.lang.php deleted file mode 100644 index bf2ab9e3d..000000000 --- a/themes/smartpocket/language/es_ES/theme.lang.php +++ /dev/null @@ -1,13 +0,0 @@ - \ No newline at end of file diff --git a/themes/smartpocket/language/es_MX/index.php b/themes/smartpocket/language/es_MX/index.php deleted file mode 100644 index ec6605317..000000000 --- a/themes/smartpocket/language/es_MX/index.php +++ /dev/null @@ -1,7 +0,0 @@ - diff --git a/themes/smartpocket/language/es_MX/theme.lang.php b/themes/smartpocket/language/es_MX/theme.lang.php deleted file mode 100644 index ed3c47c50..000000000 --- a/themes/smartpocket/language/es_MX/theme.lang.php +++ /dev/null @@ -1,12 +0,0 @@ - diff --git a/themes/smartpocket/language/et_EE/theme.lang.php b/themes/smartpocket/language/et_EE/theme.lang.php deleted file mode 100644 index 39d9ad72b..000000000 --- a/themes/smartpocket/language/et_EE/theme.lang.php +++ /dev/null @@ -1,13 +0,0 @@ - \ No newline at end of file diff --git a/themes/smartpocket/language/eu_ES/theme.lang.php b/themes/smartpocket/language/eu_ES/theme.lang.php deleted file mode 100644 index ce2b8f727..000000000 --- a/themes/smartpocket/language/eu_ES/theme.lang.php +++ /dev/null @@ -1,12 +0,0 @@ - diff --git a/themes/smartpocket/language/fa_IR/theme.lang.php b/themes/smartpocket/language/fa_IR/theme.lang.php deleted file mode 100644 index 3dc2ce246..000000000 --- a/themes/smartpocket/language/fa_IR/theme.lang.php +++ /dev/null @@ -1,13 +0,0 @@ - \ No newline at end of file diff --git a/themes/smartpocket/language/fi_FI/index.php b/themes/smartpocket/language/fi_FI/index.php deleted file mode 100644 index ec6605317..000000000 --- a/themes/smartpocket/language/fi_FI/index.php +++ /dev/null @@ -1,7 +0,0 @@ - diff --git a/themes/smartpocket/language/fi_FI/theme.lang.php b/themes/smartpocket/language/fi_FI/theme.lang.php deleted file mode 100644 index e44ecce1d..000000000 --- a/themes/smartpocket/language/fi_FI/theme.lang.php +++ /dev/null @@ -1,13 +0,0 @@ - \ No newline at end of file diff --git a/themes/smartpocket/language/fr_CA/index.php b/themes/smartpocket/language/fr_CA/index.php deleted file mode 100644 index c01bbd832..000000000 --- a/themes/smartpocket/language/fr_CA/index.php +++ /dev/null @@ -1,15 +0,0 @@ - diff --git a/themes/smartpocket/language/fr_CA/theme.lang.php b/themes/smartpocket/language/fr_CA/theme.lang.php deleted file mode 100644 index 322ac7714..000000000 --- a/themes/smartpocket/language/fr_CA/theme.lang.php +++ /dev/null @@ -1,7 +0,0 @@ - \ No newline at end of file diff --git a/themes/smartpocket/language/fr_FR/index.php b/themes/smartpocket/language/fr_FR/index.php deleted file mode 100644 index c01bbd832..000000000 --- a/themes/smartpocket/language/fr_FR/index.php +++ /dev/null @@ -1,15 +0,0 @@ - diff --git a/themes/smartpocket/language/fr_FR/theme.lang.php b/themes/smartpocket/language/fr_FR/theme.lang.php deleted file mode 100644 index 322ac7714..000000000 --- a/themes/smartpocket/language/fr_FR/theme.lang.php +++ /dev/null @@ -1,7 +0,0 @@ - \ No newline at end of file diff --git a/themes/smartpocket/language/gl_ES/index.php b/themes/smartpocket/language/gl_ES/index.php deleted file mode 100644 index ec6605317..000000000 --- a/themes/smartpocket/language/gl_ES/index.php +++ /dev/null @@ -1,7 +0,0 @@ - diff --git a/themes/smartpocket/language/gl_ES/theme.lang.php b/themes/smartpocket/language/gl_ES/theme.lang.php deleted file mode 100644 index 927efe911..000000000 --- a/themes/smartpocket/language/gl_ES/theme.lang.php +++ /dev/null @@ -1,12 +0,0 @@ - diff --git a/themes/smartpocket/language/he_IL/theme.lang.php b/themes/smartpocket/language/he_IL/theme.lang.php deleted file mode 100644 index 8a12f899f..000000000 --- a/themes/smartpocket/language/he_IL/theme.lang.php +++ /dev/null @@ -1,13 +0,0 @@ - \ No newline at end of file diff --git a/themes/smartpocket/language/hu_HU/index.php b/themes/smartpocket/language/hu_HU/index.php deleted file mode 100644 index ec6605317..000000000 --- a/themes/smartpocket/language/hu_HU/index.php +++ /dev/null @@ -1,7 +0,0 @@ - diff --git a/themes/smartpocket/language/hu_HU/theme.lang.php b/themes/smartpocket/language/hu_HU/theme.lang.php deleted file mode 100644 index fd29852cd..000000000 --- a/themes/smartpocket/language/hu_HU/theme.lang.php +++ /dev/null @@ -1,12 +0,0 @@ - diff --git a/themes/smartpocket/language/it_IT/theme.lang.php b/themes/smartpocket/language/it_IT/theme.lang.php deleted file mode 100644 index fd6de237e..000000000 --- a/themes/smartpocket/language/it_IT/theme.lang.php +++ /dev/null @@ -1,13 +0,0 @@ - \ No newline at end of file diff --git a/themes/smartpocket/language/ja_JP/index.php b/themes/smartpocket/language/ja_JP/index.php deleted file mode 100644 index ec6605317..000000000 --- a/themes/smartpocket/language/ja_JP/index.php +++ /dev/null @@ -1,7 +0,0 @@ - diff --git a/themes/smartpocket/language/ja_JP/theme.lang.php b/themes/smartpocket/language/ja_JP/theme.lang.php deleted file mode 100644 index 07925a97c..000000000 --- a/themes/smartpocket/language/ja_JP/theme.lang.php +++ /dev/null @@ -1,12 +0,0 @@ - diff --git a/themes/smartpocket/language/km_KH/theme.lang.php b/themes/smartpocket/language/km_KH/theme.lang.php deleted file mode 100644 index 85c1bcc3a..000000000 --- a/themes/smartpocket/language/km_KH/theme.lang.php +++ /dev/null @@ -1,13 +0,0 @@ - \ No newline at end of file diff --git a/themes/smartpocket/language/lt_LT/index.php b/themes/smartpocket/language/lt_LT/index.php deleted file mode 100644 index ec6605317..000000000 --- a/themes/smartpocket/language/lt_LT/index.php +++ /dev/null @@ -1,7 +0,0 @@ - diff --git a/themes/smartpocket/language/lt_LT/theme.lang.php b/themes/smartpocket/language/lt_LT/theme.lang.php deleted file mode 100644 index 4cdf165ee..000000000 --- a/themes/smartpocket/language/lt_LT/theme.lang.php +++ /dev/null @@ -1,13 +0,0 @@ - \ No newline at end of file diff --git a/themes/smartpocket/language/lv_LV/index.php b/themes/smartpocket/language/lv_LV/index.php deleted file mode 100644 index ec6605317..000000000 --- a/themes/smartpocket/language/lv_LV/index.php +++ /dev/null @@ -1,7 +0,0 @@ - diff --git a/themes/smartpocket/language/lv_LV/theme.lang.php b/themes/smartpocket/language/lv_LV/theme.lang.php deleted file mode 100644 index b8a76a206..000000000 --- a/themes/smartpocket/language/lv_LV/theme.lang.php +++ /dev/null @@ -1,13 +0,0 @@ - \ No newline at end of file diff --git a/themes/smartpocket/language/mn_MN/index.php b/themes/smartpocket/language/mn_MN/index.php deleted file mode 100644 index ec6605317..000000000 --- a/themes/smartpocket/language/mn_MN/index.php +++ /dev/null @@ -1,7 +0,0 @@ - diff --git a/themes/smartpocket/language/mn_MN/theme.lang.php b/themes/smartpocket/language/mn_MN/theme.lang.php deleted file mode 100644 index fdfcba58a..000000000 --- a/themes/smartpocket/language/mn_MN/theme.lang.php +++ /dev/null @@ -1,13 +0,0 @@ - \ No newline at end of file diff --git a/themes/smartpocket/language/nb_NO/index.php b/themes/smartpocket/language/nb_NO/index.php deleted file mode 100644 index ec6605317..000000000 --- a/themes/smartpocket/language/nb_NO/index.php +++ /dev/null @@ -1,7 +0,0 @@ - diff --git a/themes/smartpocket/language/nb_NO/theme.lang.php b/themes/smartpocket/language/nb_NO/theme.lang.php deleted file mode 100644 index 118b984fb..000000000 --- a/themes/smartpocket/language/nb_NO/theme.lang.php +++ /dev/null @@ -1,13 +0,0 @@ - \ No newline at end of file diff --git a/themes/smartpocket/language/nl_NL/index.php b/themes/smartpocket/language/nl_NL/index.php deleted file mode 100644 index ec6605317..000000000 --- a/themes/smartpocket/language/nl_NL/index.php +++ /dev/null @@ -1,7 +0,0 @@ - diff --git a/themes/smartpocket/language/nl_NL/theme.lang.php b/themes/smartpocket/language/nl_NL/theme.lang.php deleted file mode 100644 index c14ff5708..000000000 --- a/themes/smartpocket/language/nl_NL/theme.lang.php +++ /dev/null @@ -1,12 +0,0 @@ - diff --git a/themes/smartpocket/language/nn_NO/theme.lang.php b/themes/smartpocket/language/nn_NO/theme.lang.php deleted file mode 100644 index 8e58c2912..000000000 --- a/themes/smartpocket/language/nn_NO/theme.lang.php +++ /dev/null @@ -1,13 +0,0 @@ - \ No newline at end of file diff --git a/themes/smartpocket/language/pl_PL/index.php b/themes/smartpocket/language/pl_PL/index.php deleted file mode 100644 index ec6605317..000000000 --- a/themes/smartpocket/language/pl_PL/index.php +++ /dev/null @@ -1,7 +0,0 @@ - diff --git a/themes/smartpocket/language/pl_PL/theme.lang.php b/themes/smartpocket/language/pl_PL/theme.lang.php deleted file mode 100644 index 932e96448..000000000 --- a/themes/smartpocket/language/pl_PL/theme.lang.php +++ /dev/null @@ -1,12 +0,0 @@ - diff --git a/themes/smartpocket/language/pt_BR/theme.lang.php b/themes/smartpocket/language/pt_BR/theme.lang.php deleted file mode 100644 index 0823ac64d..000000000 --- a/themes/smartpocket/language/pt_BR/theme.lang.php +++ /dev/null @@ -1,13 +0,0 @@ - \ No newline at end of file diff --git a/themes/smartpocket/language/pt_PT/index.php b/themes/smartpocket/language/pt_PT/index.php deleted file mode 100644 index ec6605317..000000000 --- a/themes/smartpocket/language/pt_PT/index.php +++ /dev/null @@ -1,7 +0,0 @@ - diff --git a/themes/smartpocket/language/pt_PT/theme.lang.php b/themes/smartpocket/language/pt_PT/theme.lang.php deleted file mode 100644 index c768a4f37..000000000 --- a/themes/smartpocket/language/pt_PT/theme.lang.php +++ /dev/null @@ -1,13 +0,0 @@ - \ No newline at end of file diff --git a/themes/smartpocket/language/ro_RO/index.php b/themes/smartpocket/language/ro_RO/index.php deleted file mode 100644 index ec6605317..000000000 --- a/themes/smartpocket/language/ro_RO/index.php +++ /dev/null @@ -1,7 +0,0 @@ - diff --git a/themes/smartpocket/language/ro_RO/theme.lang.php b/themes/smartpocket/language/ro_RO/theme.lang.php deleted file mode 100644 index 6526b85ce..000000000 --- a/themes/smartpocket/language/ro_RO/theme.lang.php +++ /dev/null @@ -1,13 +0,0 @@ - \ No newline at end of file diff --git a/themes/smartpocket/language/ru_RU/index.php b/themes/smartpocket/language/ru_RU/index.php deleted file mode 100644 index ec6605317..000000000 --- a/themes/smartpocket/language/ru_RU/index.php +++ /dev/null @@ -1,7 +0,0 @@ - diff --git a/themes/smartpocket/language/ru_RU/theme.lang.php b/themes/smartpocket/language/ru_RU/theme.lang.php deleted file mode 100644 index 61317b0b2..000000000 --- a/themes/smartpocket/language/ru_RU/theme.lang.php +++ /dev/null @@ -1,13 +0,0 @@ - \ No newline at end of file diff --git a/themes/smartpocket/language/sh_RS/index.php b/themes/smartpocket/language/sh_RS/index.php deleted file mode 100644 index ec6605317..000000000 --- a/themes/smartpocket/language/sh_RS/index.php +++ /dev/null @@ -1,7 +0,0 @@ - diff --git a/themes/smartpocket/language/sh_RS/theme.lang.php b/themes/smartpocket/language/sh_RS/theme.lang.php deleted file mode 100644 index e68ba94e9..000000000 --- a/themes/smartpocket/language/sh_RS/theme.lang.php +++ /dev/null @@ -1,12 +0,0 @@ - diff --git a/themes/smartpocket/language/sk_SK/theme.lang.php b/themes/smartpocket/language/sk_SK/theme.lang.php deleted file mode 100644 index 8657d2def..000000000 --- a/themes/smartpocket/language/sk_SK/theme.lang.php +++ /dev/null @@ -1,13 +0,0 @@ - \ No newline at end of file diff --git a/themes/smartpocket/language/sl_SI/index.php b/themes/smartpocket/language/sl_SI/index.php deleted file mode 100644 index ec6605317..000000000 --- a/themes/smartpocket/language/sl_SI/index.php +++ /dev/null @@ -1,7 +0,0 @@ - diff --git a/themes/smartpocket/language/sl_SI/theme.lang.php b/themes/smartpocket/language/sl_SI/theme.lang.php deleted file mode 100644 index 20bec98a7..000000000 --- a/themes/smartpocket/language/sl_SI/theme.lang.php +++ /dev/null @@ -1,13 +0,0 @@ - \ No newline at end of file diff --git a/themes/smartpocket/language/sr_RS/index.php b/themes/smartpocket/language/sr_RS/index.php deleted file mode 100644 index ec6605317..000000000 --- a/themes/smartpocket/language/sr_RS/index.php +++ /dev/null @@ -1,7 +0,0 @@ - diff --git a/themes/smartpocket/language/sr_RS/theme.lang.php b/themes/smartpocket/language/sr_RS/theme.lang.php deleted file mode 100644 index 7727afb3e..000000000 --- a/themes/smartpocket/language/sr_RS/theme.lang.php +++ /dev/null @@ -1,12 +0,0 @@ - diff --git a/themes/smartpocket/language/sv_SE/theme.lang.php b/themes/smartpocket/language/sv_SE/theme.lang.php deleted file mode 100644 index 556aecfcf..000000000 --- a/themes/smartpocket/language/sv_SE/theme.lang.php +++ /dev/null @@ -1,13 +0,0 @@ - \ No newline at end of file diff --git a/themes/smartpocket/language/ta_IN/index.php b/themes/smartpocket/language/ta_IN/index.php deleted file mode 100644 index ec6605317..000000000 --- a/themes/smartpocket/language/ta_IN/index.php +++ /dev/null @@ -1,7 +0,0 @@ - diff --git a/themes/smartpocket/language/ta_IN/theme.lang.php b/themes/smartpocket/language/ta_IN/theme.lang.php deleted file mode 100644 index 441ffc7d2..000000000 --- a/themes/smartpocket/language/ta_IN/theme.lang.php +++ /dev/null @@ -1,13 +0,0 @@ - \ No newline at end of file diff --git a/themes/smartpocket/language/th_TH/index.php b/themes/smartpocket/language/th_TH/index.php deleted file mode 100644 index ec6605317..000000000 --- a/themes/smartpocket/language/th_TH/index.php +++ /dev/null @@ -1,7 +0,0 @@ - diff --git a/themes/smartpocket/language/th_TH/theme.lang.php b/themes/smartpocket/language/th_TH/theme.lang.php deleted file mode 100644 index 19151f285..000000000 --- a/themes/smartpocket/language/th_TH/theme.lang.php +++ /dev/null @@ -1,12 +0,0 @@ - diff --git a/themes/smartpocket/language/tr_TR/theme.lang.php b/themes/smartpocket/language/tr_TR/theme.lang.php deleted file mode 100644 index b746f4589..000000000 --- a/themes/smartpocket/language/tr_TR/theme.lang.php +++ /dev/null @@ -1,13 +0,0 @@ - \ No newline at end of file diff --git a/themes/smartpocket/language/uk_UA/index.php b/themes/smartpocket/language/uk_UA/index.php deleted file mode 100644 index ec6605317..000000000 --- a/themes/smartpocket/language/uk_UA/index.php +++ /dev/null @@ -1,7 +0,0 @@ - diff --git a/themes/smartpocket/language/uk_UA/theme.lang.php b/themes/smartpocket/language/uk_UA/theme.lang.php deleted file mode 100644 index 59fe4b8c6..000000000 --- a/themes/smartpocket/language/uk_UA/theme.lang.php +++ /dev/null @@ -1,13 +0,0 @@ - \ No newline at end of file diff --git a/themes/smartpocket/language/vi_VN/index.php b/themes/smartpocket/language/vi_VN/index.php deleted file mode 100644 index ec6605317..000000000 --- a/themes/smartpocket/language/vi_VN/index.php +++ /dev/null @@ -1,7 +0,0 @@ - diff --git a/themes/smartpocket/language/vi_VN/theme.lang.php b/themes/smartpocket/language/vi_VN/theme.lang.php deleted file mode 100644 index 3328beb28..000000000 --- a/themes/smartpocket/language/vi_VN/theme.lang.php +++ /dev/null @@ -1,13 +0,0 @@ - \ No newline at end of file diff --git a/themes/smartpocket/language/zh_CN/index.php b/themes/smartpocket/language/zh_CN/index.php deleted file mode 100644 index ec6605317..000000000 --- a/themes/smartpocket/language/zh_CN/index.php +++ /dev/null @@ -1,7 +0,0 @@ - diff --git a/themes/smartpocket/language/zh_CN/theme.lang.php b/themes/smartpocket/language/zh_CN/theme.lang.php deleted file mode 100644 index 91ce601ec..000000000 --- a/themes/smartpocket/language/zh_CN/theme.lang.php +++ /dev/null @@ -1,13 +0,0 @@ - \ No newline at end of file diff --git a/themes/smartpocket/language/zh_HK/index.php b/themes/smartpocket/language/zh_HK/index.php deleted file mode 100644 index ec6605317..000000000 --- a/themes/smartpocket/language/zh_HK/index.php +++ /dev/null @@ -1,7 +0,0 @@ - diff --git a/themes/smartpocket/language/zh_HK/theme.lang.php b/themes/smartpocket/language/zh_HK/theme.lang.php deleted file mode 100644 index 7e0b290f7..000000000 --- a/themes/smartpocket/language/zh_HK/theme.lang.php +++ /dev/null @@ -1,13 +0,0 @@ - \ No newline at end of file diff --git a/themes/smartpocket/language/zh_TW/index.php b/themes/smartpocket/language/zh_TW/index.php deleted file mode 100644 index ec6605317..000000000 --- a/themes/smartpocket/language/zh_TW/index.php +++ /dev/null @@ -1,7 +0,0 @@ - diff --git a/themes/smartpocket/language/zh_TW/theme.lang.php b/themes/smartpocket/language/zh_TW/theme.lang.php deleted file mode 100644 index c3c5d5199..000000000 --- a/themes/smartpocket/language/zh_TW/theme.lang.php +++ /dev/null @@ -1,12 +0,0 @@ - - - {'About'|@translate} - {$ABOUT_MESSAGE} - {if isset($THEME_ABOUT) } - {$THEME_ABOUT} - {/if} - {if not empty($about_msgs)} - {foreach from=$about_msgs item=elt} - {$elt} - {/foreach} - {/if} - - diff --git a/themes/smartpocket/template/add_menu_on_public_pages.tpl b/themes/smartpocket/template/add_menu_on_public_pages.tpl deleted file mode 100644 index 7a44575d2..000000000 --- a/themes/smartpocket/template/add_menu_on_public_pages.tpl +++ /dev/null @@ -1,3 +0,0 @@ - - {$MENUBAR} -{assign var='MENUBAR' value=''} \ No newline at end of file diff --git a/themes/smartpocket/template/comment_list.tpl b/themes/smartpocket/template/comment_list.tpl deleted file mode 100644 index 1434939bf..000000000 --- a/themes/smartpocket/template/comment_list.tpl +++ /dev/null @@ -1,12 +0,0 @@ - - {'User comments'|@translate} -{foreach from=$comments item=comment name=comment_loop} - - {if !isset($from) or $from!="picture"} - {/if} - {$comment.AUTHOR} - {$comment.CONTENT} - {if !isset($from) or $from!="comment"}{/if} - -{/foreach} - diff --git a/themes/smartpocket/template/comments.tpl b/themes/smartpocket/template/comments.tpl deleted file mode 100644 index 87328d5ac..000000000 --- a/themes/smartpocket/template/comments.tpl +++ /dev/null @@ -1,9 +0,0 @@ -{include file='infos_errors.tpl'} - - -{if isset($comments)} - {include file='comment_list.tpl' comment_derivative_params=$derivative_params} -{/if} - - - diff --git a/themes/smartpocket/template/footer.tpl b/themes/smartpocket/template/footer.tpl deleted file mode 100644 index 972e8d68b..000000000 --- a/themes/smartpocket/template/footer.tpl +++ /dev/null @@ -1,31 +0,0 @@ -{if !empty($thumb_navbar)} -{include file='navigation_bar.tpl'|@get_extent:'navbar' navbar=$thumb_navbar} -{elseif !empty($navbar) and !isset($ELEMENT_CONTENT)} -{include file='navigation_bar.tpl'|@get_extent:'navbar'} -{else} - -{/if} -{footer_script require='jquery'} -document.cookie = 'screen_size='+jQuery(document).width()+'x'+jQuery(document).height()+';path={$COOKIE_PATH}'; -{/footer_script} -{get_combined_scripts load='footer'} -{if isset($footer_elements)} -{foreach $footer_elements as $v} -{$v} -{/foreach} -{/if} - - - - \ No newline at end of file diff --git a/themes/smartpocket/template/header.tpl b/themes/smartpocket/template/header.tpl deleted file mode 100644 index 8df97c3b3..000000000 --- a/themes/smartpocket/template/header.tpl +++ /dev/null @@ -1,58 +0,0 @@ - - - - - -{if isset($meta_ref) } -{if isset($INFO_AUTHOR)} - -{/if} -{if isset($related_tags)} - -{/if} -{if isset($COMMENT_IMG)} - -{else} - -{/if} -{/if} - - - -{if (isset($REVERSE) and $REVERSE and $PAGE_TITLE == l10n('Home'))} -{$GALLERY_TITLE} | {$PAGE_TITLE}{else} -{$PAGE_TITLE} | {$GALLERY_TITLE}{/if} - - -{get_combined_css} -{foreach from=$themes item=theme} -{if $theme.load_css} -{combine_css path="themes/`$theme.id`/theme.css" order=-10} -{/if} -{if !empty($theme.local_head)}{include file=$theme.local_head load_css=$theme.load_css}{/if} -{/foreach} - -{if isset($U_CANONICAL)}{/if} - -{if not empty($page_refresh) }{/if} - -{get_combined_scripts load='header'} - -{combine_script id='config' path='themes/smartpocket/js/config.js' require='jquery'} -{combine_script id='jquery.mobile' path='themes/smartpocket/js/jquery.mobile.min.js' require='jquery,config'} - - - - - -{if isset($MENUBAR)} - {$MENUBAR} -{/if} - - - - {$GALLERY_TITLE} - Menu - - - diff --git a/themes/smartpocket/template/identification.tpl b/themes/smartpocket/template/identification.tpl deleted file mode 100644 index cf29190da..000000000 --- a/themes/smartpocket/template/identification.tpl +++ /dev/null @@ -1,41 +0,0 @@ -{include file='infos_errors.tpl'} - -{'Identification'|@translate} - - - - {'Username'|@translate} - - - - - - {'Password'|@translate} - - - - {if $authorize_remembering } - - {'Auto login'|@translate} - - - {/if} - - - - - - - - - -{if isset($U_LOST_PASSWORD)} - {'Forgot your password?'|@translate} -{/if} - -{if isset($U_REGISTER)} - {'Register'|@translate} -{/if} - - - diff --git a/themes/smartpocket/template/index.tpl b/themes/smartpocket/template/index.tpl deleted file mode 100644 index 4e3159396..000000000 --- a/themes/smartpocket/template/index.tpl +++ /dev/null @@ -1,11 +0,0 @@ - -{if !empty($CATEGORIES)}{$CATEGORIES}{/if} -{if !empty($THUMBNAILS)}{$THUMBNAILS}{/if} -{if !empty($CONTENT_DESCRIPTION)} - - {$CONTENT_DESCRIPTION} - -{/if} -{if !empty($CONTENT)}{$CONTENT}{/if} - - diff --git a/themes/smartpocket/template/infos_errors.tpl b/themes/smartpocket/template/infos_errors.tpl deleted file mode 100644 index 72ae50f18..000000000 --- a/themes/smartpocket/template/infos_errors.tpl +++ /dev/null @@ -1,23 +0,0 @@ -{if isset($errors)} - - {'Error'|@translate} - Button - {''|@implode:$errors} - -{/if} - -{if not empty($infos)} - - {'Info'|@translate} - Button - {''|@implode:$infos} - -{/if} - -{footer_script}{literal} -$(document).ready(function () { - $('.close-button').click(function() { - $(this).parents('.ui-bar').remove(); - }); -}); -{/literal}{/footer_script} \ No newline at end of file diff --git a/themes/smartpocket/template/mainpage_categories.tpl b/themes/smartpocket/template/mainpage_categories.tpl deleted file mode 100644 index d1cf3cf8b..000000000 --- a/themes/smartpocket/template/mainpage_categories.tpl +++ /dev/null @@ -1,12 +0,0 @@ - -{foreach from=$category_thumbnails item=cat} - - - - {$cat.NAME} - {$cat.CAPTION_NB_IMAGES} - - -{/foreach} - - diff --git a/themes/smartpocket/template/menubar.tpl b/themes/smartpocket/template/menubar.tpl deleted file mode 100644 index dded4611f..000000000 --- a/themes/smartpocket/template/menubar.tpl +++ /dev/null @@ -1,22 +0,0 @@ - - {'Close'|@translate} - -{if !empty($blocks) } - - {foreach from=$blocks key=id item=block} - - {if not empty($block->template)} - {include file=$block->template assign=the_block|@get_extent:$id} - {$the_block|replace:'dt':'h3'|replace:'':''|replace:'':''} - {else} - {$block->raw_content|replace:'dt':'h3'|replace:'':''|replace:'':''} - {/if} - - {/foreach} - -{/if} - - - {'View in'|@translate} - {'Desktop'|@translate} - diff --git a/themes/smartpocket/template/menubar_categories.tpl b/themes/smartpocket/template/menubar_categories.tpl deleted file mode 100644 index 1fc4332f6..000000000 --- a/themes/smartpocket/template/menubar_categories.tpl +++ /dev/null @@ -1,8 +0,0 @@ -{'Albums'|@translate} - -{foreach from=$block->data.MENU_CATEGORIES item=cat} - {$cat.NAME} - {if $cat.count_images > 0}{$cat.count_images}{/if} - -{/foreach} - diff --git a/themes/smartpocket/template/menubar_identification.tpl b/themes/smartpocket/template/menubar_identification.tpl deleted file mode 100644 index 256aa77fc..000000000 --- a/themes/smartpocket/template/menubar_identification.tpl +++ /dev/null @@ -1,8 +0,0 @@ -{'Identification'|@translate} - - {if isset($U_REGISTER)}{'Register'|@translate}{/if} - {if isset($U_LOGIN)}{'Login'|@translate}{/if} - {if isset($U_LOGOUT)}{'Logout'|@translate}{/if} - {if isset($U_PROFILE)}{'Customize'|@translate}{/if} - {if isset($U_ADMIN)}{'Administration'|@translate}{/if} - diff --git a/themes/smartpocket/template/menubar_links.tpl b/themes/smartpocket/template/menubar_links.tpl deleted file mode 100644 index 6bd110032..000000000 --- a/themes/smartpocket/template/menubar_links.tpl +++ /dev/null @@ -1,11 +0,0 @@ -{'Links'|@translate} -{strip} - {foreach from=$block->data item=link} - - - {$link.LABEL} - - - {/foreach} - {/strip} - diff --git a/themes/smartpocket/template/menubar_menu.tpl b/themes/smartpocket/template/menubar_menu.tpl deleted file mode 100644 index a45c5e0c0..000000000 --- a/themes/smartpocket/template/menubar_menu.tpl +++ /dev/null @@ -1,8 +0,0 @@ -{'Menu'|@translate} - - {foreach from=$block->data item=link} - {if is_array($link)} - {$link.NAME}{if isset($link.COUNTER)}{$link.COUNTER}{/if} - {/if} - {/foreach} - \ No newline at end of file diff --git a/themes/smartpocket/template/menubar_specials.tpl b/themes/smartpocket/template/menubar_specials.tpl deleted file mode 100644 index 21bf18a7b..000000000 --- a/themes/smartpocket/template/menubar_specials.tpl +++ /dev/null @@ -1,8 +0,0 @@ -{'Specials'|@translate} - - {foreach $block->data as $key=>$link} - {if in_array($key, array("favorites","most_visited","best_rated","recent_pics","recent_cats","random")) } - {$link.NAME} - {/if} - {/foreach} - diff --git a/themes/smartpocket/template/menubar_tags.tpl b/themes/smartpocket/template/menubar_tags.tpl deleted file mode 100644 index 3f9680054..000000000 --- a/themes/smartpocket/template/menubar_tags.tpl +++ /dev/null @@ -1,12 +0,0 @@ -{'Related tags'|@translate} - - {foreach from=$block->data item=tag} - + - {else} - "{$tag.URL}" title="{'display photos linked to this tag'|@translate}"> - {/if} - {$tag.name} - {/foreach} - diff --git a/themes/smartpocket/template/navigation_bar.tpl b/themes/smartpocket/template/navigation_bar.tpl deleted file mode 100644 index 5347f6847..000000000 --- a/themes/smartpocket/template/navigation_bar.tpl +++ /dev/null @@ -1,14 +0,0 @@ -{capture}{$navbar.pages|@end}{/capture} - - -{strip} - {if isset($navbar.URL_PREV)} - {'Previous'|@translate} - {/if} - {$navbar.CURRENT_PAGE} / {$navbar.pages|@key} - {if isset($navbar.URL_NEXT)} - {'Next'|@translate} - {/if} -{/strip} - - diff --git a/themes/smartpocket/template/notification.tpl b/themes/smartpocket/template/notification.tpl deleted file mode 100644 index b38aac8e6..000000000 --- a/themes/smartpocket/template/notification.tpl +++ /dev/null @@ -1,13 +0,0 @@ -{html_head} - - -{/html_head} -{include file='infos_errors.tpl'} - - - {'Notification'|@translate} - {'The RSS notification feed provides notification on news from this website : new photos, updated albums, new comments. Use a RSS feed reader.'|@translate} - {'Photos only RSS feed'|@translate} - {'Complete RSS feed (photos, comments)'|@translate} - - diff --git a/themes/smartpocket/template/password.tpl b/themes/smartpocket/template/password.tpl deleted file mode 100755 index a45ef819c..000000000 --- a/themes/smartpocket/template/password.tpl +++ /dev/null @@ -1,27 +0,0 @@ -{include file='infos_errors.tpl'} - -{'Forgot your password?'|translate} -{if $action ne 'none'} - - - - {if $action eq 'lost'} - - {'Username or email'|@translate} - - - - - {elseif $action eq 'reset'} - - {'New password'|@translate} - - {'Confirm Password'|@translate} - - - - {/if} - - -{/if} {* $action ne 'none' *} - diff --git a/themes/smartpocket/template/picture.tpl b/themes/smartpocket/template/picture.tpl deleted file mode 100644 index 164aae15e..000000000 --- a/themes/smartpocket/template/picture.tpl +++ /dev/null @@ -1,175 +0,0 @@ -{if isset($errors) or not empty($infos)} -{include file='infos_errors.tpl'} -{/if} - - - {$SECTION_TITLE}{$LEVEL_SEPARATOR}{$current.TITLE} - -{$ELEMENT_CONTENT} - -{include file='picture_nav_buttons.tpl'|@get_extent:'picture_nav_buttons'} - -{if isset($COMMENT_IMG)} -{$COMMENT_IMG} -{/if} - - -{strip} - {if $display_info.author and isset($INFO_AUTHOR)} - - {'Author'|@translate} - {$INFO_AUTHOR} - - {/if} - {if $display_info.created_on and isset($INFO_CREATION_DATE)} - - {'Created on'|@translate} - {$INFO_CREATION_DATE} - - {/if} - {if $display_info.posted_on} - - {'Posted on'|@translate} - {$INFO_POSTED_DATE} - - {/if} - {if $display_info.dimensions and isset($INFO_DIMENSIONS)} - - {'Dimensions'|@translate} - {$INFO_DIMENSIONS} - - {/if} - {if $display_info.file} - - {'File'|@translate} - {$INFO_FILE} - - {/if} - {if $display_info.filesize and isset($INFO_FILESIZE)} - - {'Filesize'|@translate} - {$INFO_FILESIZE} - - {/if} - {if $display_info.tags and isset($related_tags)} - - {'Tags'|@translate} - - {foreach from=$related_tags item=tag name=tag_loop}{if !$smarty.foreach.tag_loop.first}, {/if}{$tag.name}{/foreach} - - - {/if} - {if $display_info.categories and isset($related_categories)} - - {'Albums'|@translate} - - - {foreach from=$related_categories item=cat} - {$cat} - {/foreach} - - - - {/if} - {if $display_info.visits} - - {'Visits'|@translate} - {$INFO_VISITS} - - {/if} - -{if $display_info.rating_score and isset($rate_summary)} - - {'Rating score'|@translate} - - {if $rate_summary.count} - {$rate_summary.score} ({$rate_summary.count|@translate_dec:'%d rate':'%d rates'}) - {else} - {'no rate'|@translate} - {/if} - - -{/if} - -{if isset($rating)} - - - {if isset($rating.USER_RATE)}{'Update your rating'|@translate}{else}{'Rate this photo'|@translate}{/if} - - - - {foreach from=$rating.marks item=mark name=rate_loop} - {if isset($rating.USER_RATE) && $mark==$rating.USER_RATE} - - {else} - - {/if} - {/foreach} - - - -{/if} - - -{if isset($metadata)} - -{foreach from=$metadata item=meta} - {$meta.TITLE} - {foreach from=$meta.lines item=value key=label} - - {$label} - {$value} - - {/foreach} -{/foreach} - -{/if} - - -{if isset($COMMENT_COUNT)} - - {$COMMENT_COUNT|@translate_dec:'%d comment':'%d comments'} - - - {if isset($comment_add)} - - {'Add a comment'|@translate} - - {if $comment_add.SHOW_AUTHOR} - {'Author'|@translate}{if $comment_add.AUTHOR_MANDATORY} ({'mandatory'|@translate}){/if} : - - {/if} - {if $comment_add.SHOW_EMAIL} - {'Email address'|@translate}{if $comment_add.EMAIL_MANDATORY} ({'mandatory'|@translate}){/if} : - - {/if} - {'Website'|@translate} : - - {'Comment'|@translate} ({'mandatory'|@translate}) : - {$comment_add.CONTENT} - - - - - {/if} - {if isset($comments)} - - {if (($COMMENT_COUNT > 2) || !empty($navbar))} - - {if $COMMENT_COUNT > 2} - {$COMMENTS_ORDER_TITLE} - {/if} - {if !empty($navbar) }{include file='navigation_bar.tpl'|@get_extent:'navbar'}{/if} - - {/if} - {include file='comment_list.tpl' from="picture"} - - {/if} - - - -{/if}{*comments*} - -{include file='picture_nav_buttons.tpl'|@get_extent:'picture_nav_buttons'} - - diff --git a/themes/smartpocket/template/picture_content.tpl b/themes/smartpocket/template/picture_content.tpl deleted file mode 100644 index b8dc2277d..000000000 --- a/themes/smartpocket/template/picture_content.tpl +++ /dev/null @@ -1,2 +0,0 @@ - - diff --git a/themes/smartpocket/template/picture_nav_buttons.tpl b/themes/smartpocket/template/picture_nav_buttons.tpl deleted file mode 100644 index c18427f26..000000000 --- a/themes/smartpocket/template/picture_nav_buttons.tpl +++ /dev/null @@ -1,13 +0,0 @@ - -{strip} -{if isset($previous)} - {'Previous'|@translate} -{/if} -{if isset($U_UP) and !isset($slideshow)} - data-iconpos="notext" -{/if} -{if isset($next)} - {'Next'|@translate} -{/if} -{/strip} - diff --git a/themes/smartpocket/template/profile.tpl b/themes/smartpocket/template/profile.tpl deleted file mode 100644 index f4c1b8f25..000000000 --- a/themes/smartpocket/template/profile.tpl +++ /dev/null @@ -1,4 +0,0 @@ -{include file='infos_errors.tpl'} - -{$PROFILE_CONTENT} - diff --git a/themes/smartpocket/template/profile_content.tpl b/themes/smartpocket/template/profile_content.tpl deleted file mode 100644 index 2b6604fa1..000000000 --- a/themes/smartpocket/template/profile_content.tpl +++ /dev/null @@ -1,61 +0,0 @@ - - - - {'Username'|@translate} - - - - {if not $SPECIAL_USER} {* can modify password + email*} - - {'Email address'|@translate} - - - - - {'Password'|@translate} - - - - - {'New password'|@translate} - - - - - {'Confirm Password'|@translate} - - - {/if} - -{if $ALLOW_USER_CUSTOMIZATION} - - {'Number of photos per page'|@translate} - - - - - {'Language'|@translate} - {html_options name=language options=$language_options selected=$language_selection} - -{/if} - - - - {if $ALLOW_USER_CUSTOMIZATION} - - - - - - {/if} - - - - - {if $ALLOW_USER_CUSTOMIZATION} - - {/if} - - - - diff --git a/themes/smartpocket/template/redirect.tpl b/themes/smartpocket/template/redirect.tpl deleted file mode 100644 index 61f88885e..000000000 --- a/themes/smartpocket/template/redirect.tpl +++ /dev/null @@ -1,9 +0,0 @@ - - {$REDIRECT_MSG} - - - - - {'Click here if your browser does not automatically forward you'|@translate} - - diff --git a/themes/smartpocket/template/register.tpl b/themes/smartpocket/template/register.tpl deleted file mode 100644 index ee395f2d4..000000000 --- a/themes/smartpocket/template/register.tpl +++ /dev/null @@ -1,38 +0,0 @@ -{include file='infos_errors.tpl'} - -{'Register'|@translate} - - - - * {'Username'|@translate} - - - - - * {'Password'|@translate} - - - - - * {'Confirm Password'|@translate} - - - - - {if $obligatory_user_mail_address}* {/if}{'Email address'|@translate} - - - - - {'Send my connection settings by email'|@translate} - - - - - - - - - - - diff --git a/themes/smartpocket/template/search.tpl b/themes/smartpocket/template/search.tpl deleted file mode 100644 index 33c3eabb0..000000000 --- a/themes/smartpocket/template/search.tpl +++ /dev/null @@ -1,112 +0,0 @@ -{combine_script id='jquery.selectize' load='footer' path='themes/default/js/plugins/selectize.min.js'} -{combine_css id='jquery.selectize' path="themes/default/js/plugins/selectize.{$themeconf.colorscheme}.css"} - -{footer_script} -jQuery(document).ready(function() { - jQuery("#authors, #tags, #categories").each(function() { - jQuery(this).selectize({ - plugins: ['remove_button'], - maxOptions:jQuery(this).find("option").length - }); - }) -}); -{/footer_script} - -{html_style} -.ui-checkbox, .ui-radio, .ui-btn-text { - z-index:0; -} - -.form-actions { - margin-top:3em; - margin-bottom:3em; -} -{/html_style} - -{include file='infos_errors.tpl'} - - - {'Search'|@translate} - - - - - - {'Search for words'|@translate} - - - - - {'Search for all terms'|@translate} - - - {'Search for any term'|@translate} - - - - {'Apply on properties'|translate} - - - {'Photo title'|translate} - - - {'Photo description'|translate} - - - {'File name'|translate} - -{if isset($TAGS)} - - {'Tags'|translate} -{/if} - - -{if count($AUTHORS)>=1} - - {'Search for Author'|@translate} - -{foreach from=$AUTHORS item=author} - {$author.author|strip_tags:false} ({$author.counter|translate_dec:'%d photo':'%d photos'}) -{/foreach} - - -{/if} - -{if isset($TAGS)} - - {'Search tags'|@translate} - -{foreach from=$TAGS item=tag} - {$tag.name} ({$tag.counter|translate_dec:'%d photo':'%d photos'}) -{/foreach} - - - {'All tags'|@translate} - - - {'Any tag'|@translate} - -{/if} - - - {'Search in albums'|@translate} - - {html_options options=$category_options selected=$category_options_selected} - - - - {'Search in sub-albums'|@translate} - - - - - - - - - - - - diff --git a/themes/smartpocket/template/tags.tpl b/themes/smartpocket/template/tags.tpl deleted file mode 100644 index c0c9f6e5a..000000000 --- a/themes/smartpocket/template/tags.tpl +++ /dev/null @@ -1,15 +0,0 @@ -{include file='infos_errors.tpl'} -{if isset($tags)} - - {'Tags'|@translate} - {foreach from=$tags item=tag} - {$tag.name}{$tag.counter|@translate_dec:'%d photo':'%d photos'} - {/foreach} - -{elseif isset($letters)} - - {foreach from=$letters item=letter}{foreach from=$letter.tags item=tag} - {$tag.name}{$tag.counter|@translate_dec:'%d photo':'%d photos'} - {/foreach}{/foreach} -{/if} - diff --git a/themes/smartpocket/template/thumbnails.tpl b/themes/smartpocket/template/thumbnails.tpl deleted file mode 100644 index d19fc7d4c..000000000 --- a/themes/smartpocket/template/thumbnails.tpl +++ /dev/null @@ -1,45 +0,0 @@ -{if !empty($thumbnails)} -{$row_height=216} -{$hmargin=4} -{$vmargin=5} -{$container_margin=-10} - -{combine_script id='klass' path='themes/smartpocket/js/klass.min.js'} -{combine_script id='photoswipe' path='themes/smartpocket/js/code.photoswipe.jquery.min.js' require='klass,jquery.mobile'} -{combine_script id='smartpocket' path='themes/smartpocket/js/smartpocket.js' require='photoswipe'} -{combine_script id='sp.thumb.arrange' path='themes/smartpocket/js/thumb.arrange.js' require='jquery' load='footer'} -{footer_script} -var var_loop = {if $smartpocket.loop}true{else}false{/if}, var_autohide = {$smartpocket.autohide}, var_trad = "{'More Information'|@translate}"; -var SPThumbsOpts ={ hMargin:{$hmargin},rowHeight:{$row_height}}; -{/footer_script} -{$thumb_picker->init($row_height)} -{html_style} -.thumbnails .liEmpty{ display:none} -.thumbnails LI{ margin-left:{$hmargin}px; margin-bottom:{$vmargin}px} -.thumbnails { margin:0 {$container_margin}px 0 {$container_margin-$hmargin}px} -{/html_style} -{strip} - -{/strip} -{foreach from=$thumbnails item=thumbnail}{strip} -{$derivative=$thumb_picker->pick($thumbnail.src_image)} -{if isset($page_selection[$thumbnail.id])} - -{if !isset($thumbnail.representative_ext)} - -{else} - -{/if} - get_size_htm()} alt="{$thumbnail.TN_ALT}"> -{else} - - -{/if} - -{/strip}{/foreach} - -{/if} diff --git a/themes/smartpocket/theme.css b/themes/smartpocket/theme.css deleted file mode 100644 index 09e6ef899..000000000 --- a/themes/smartpocket/theme.css +++ /dev/null @@ -1,71 +0,0 @@ -@import "jquery.mobile.css"; -@import "photoswipe.css"; - -.title { margin: 10px; text-align: center; } -.title .ui-btn { margin-top: -5px; } -. { float: right; } -.home_button { float: left; } -.pwg_footer h6 { margin: 8px; text-align:right;} - -.errors h3, .infos h3{ float:left; margin-top:8px; } -.errors div, .infos div { float:right; margin-top:4px; } -.errors p, .infos p { clear:both; font-size:85%; margin-bottom:8px; } - -.ui-icon-profil { background-image: url("images/profil.png"); background-color: transparent; } - -.ui-content { overflow: hidden; } -.ui-field-contain, .ui-br { padding: 5px; border: 0 !important; } - -.thumbnails { list-style: none; padding: 0} -.thumbnails:after { clear: both; content: "."; display: block; height: 0; visibility: hidden; } -.thumbnails li { - float: left; - position: relative; - overflow: hidden; - display: inline; -} -.thumbnails li a { - position: absolute; -} - -#more_link { - color: #FFFFFF; - display: table-cell; - font-size: 1.1em; - text-decoration: none; - vertical-align: middle; - cursor: pointer; -} -.ui-panel-inner > .ui-listview { - margin: -15px -15px 0; -} -#menubar .ui-collapsible-heading-toggle.ui-btn-up-a { - background:linear-gradient(#6FACD5, #497BAE) repeat scroll 0 0 #5E87B0; -} - -.ui-li-desc { - text-overflow: clip; - white-space: normal; -} -#PictureInfo { - font-size: 0.8em; -} -#PictureInfo * { - font-size: 1em; -} -#addComment textarea.ui-input-text { - min-height: 100px; -} -#picture_page { - text-align: center; -} - -#colorbox, #cboxOverlay, #cboxWrapper { - display:none; - left: 0; - overflow: hidden; - position: absolute; - top: 0; - z-index:-1; - opacity:0 !important -} diff --git a/themes/smartpocket/themeconf.inc.php b/themes/smartpocket/themeconf.inc.php deleted file mode 100644 index fa43ff03f..000000000 --- a/themes/smartpocket/themeconf.inc.php +++ /dev/null @@ -1,198 +0,0 @@ - true, -); - -// Need upgrade? -global $conf; -include(PHPWG_THEMES_PATH.'smartpocket/admin/upgrade.inc.php'); - -load_language('theme.lang', PHPWG_THEMES_PATH.'smartpocket/'); - - -// Redirect if page is not compatible with mobile theme -/*if (!in_array(script_basename(), array('index', 'register', 'profile', 'identification', 'ws', 'admin'))) - redirect(duplicate_index_url()); -*/ - - -class SPThumbPicker -{ - var $candidates; - var $default; - var $height; - - function init($height) - { - $this->candidates = array(); - foreach( ImageStdParams::get_defined_type_map() as $params) - { - if ($params->max_height() < $height || $params->sizing->max_crop) - continue; - if ($params->max_height() > 3*$height) - break; - $this->candidates[] = $params; - } - $this->default = ImageStdParams::get_custom($height*3, $height, 1, 0, $height ); - $this->height = $height; - } - - function pick($src_image) - { - $ok = false; - foreach($this->candidates as $candidate) - { - $deriv = new DerivativeImage($candidate, $src_image); - $size = $deriv->get_size(); - if ($size[1]>=$row_height-2) - { - $ok = true; - break; - } - } - if (!$ok) - { - $deriv = new DerivativeImage($this->default, $src_image); - } - return $deriv; - } -} - -//Retrive all pictures on thumbnails page -add_event_handler('loc_index_thumbnails_selection', 'sp_select_all_thumbnails'); - -function sp_select_all_thumbnails($selection) -{ - global $page, $template; - - $template->assign('page_selection', array_flip($selection)); - $template->assign('thumb_picker', new SPThumbPicker() ); - return $page['items']; -} - -// Retrive all categories on thumbnails page -add_event_handler('loc_end_index_category_thumbnails', 'sp_select_all_categories'); - -function sp_select_all_categories($selection) -{ - global $tpl_thumbnails_var; - return $tpl_thumbnails_var; -} - -// Get better derive parameters for screen size -$type = IMG_LARGE; -if (!empty($_COOKIE['screen_size'])) -{ - $screen_size = explode('x', $_COOKIE['screen_size']); - foreach (ImageStdParams::get_all_type_map() as $type => $map) - { - if (max($map->sizing->ideal_size) >= max($screen_size) and min($map->sizing->ideal_size) >= min($screen_size)) - break; - } -} - -$this->assign('picture_derivative_params', ImageStdParams::get_by_type($type)); -$this->assign('thumbnail_derivative_params', ImageStdParams::get_by_type(IMG_SQUARE)); - -add_event_handler('loc_end_section_init', 'sp_end_section_init'); -function sp_end_section_init() -{ - global $page, $template; - - // variables to log history - $template->assign( - 'smartpocket_log_history', - array( - 'cat_id' => @$page['category']['id'], - 'section' => @$page['section'], - 'tags_string' => @implode(',', @$page['tag_ids']), - ) - ); -} - -add_event_handler('ws_add_methods', 'sp_add_methods'); -function sp_add_methods($arr) -{ - $service = &$arr[0]; - $service->addMethod( - 'smartpocket.images.logHistory', - 'ws_sp_log_history', - array( - 'image_id' => array('type'=>WS_TYPE_ID), - 'cat_id' => array('type'=>WS_TYPE_ID, 'default'=>null), - 'section' => array('default'=>null), - 'tags_string' => array('default'=>null), - ), - 'Log visit in history' - ); -} - -function ws_sp_log_history($params, &$service) -{ - global $logger, $page; - - if (!empty($params['section']) and in_array($params['section'], get_enums(HISTORY_TABLE, 'section'))) - { - $page['section'] = $params['section']; - } - - if (!empty($params['cat_id'])) - { - $page['category'] = array('id' => $params['cat_id']); - } - - if (!empty($params['tags_string']) and preg_match('/^\d+(,\d+)*$/', $params['tags_string'])) - { - $page['tag_ids'] = explode(',', $params['tags_string']); - } - - pwg_log($params['image_id'], 'picture'); -} -//------------------------------------------------------------- mobile version & theme config -add_event_handler('init', 'mobile_link'); - -function mobile_link() -{ - global $template, $conf; - $config = safe_unserialize( $conf['smartpocket'] ); - $template->assign( 'smartpocket', $config ); - if ( !empty($conf['mobile_theme']) && (get_device() != 'desktop' || mobile_theme())) - { - $template->assign(array( - 'TOGGLE_MOBILE_THEME_URL' => add_url_params(htmlspecialchars($_SERVER['REQUEST_URI']),array('mobile' => mobile_theme() ? 'false' : 'true')), - )); - } -} - - -if ( !function_exists( 'add_menu_on_public_pages' ) ) { - if ( defined('IN_ADMIN') and IN_ADMIN ) return false; - add_event_handler('loc_after_page_header', 'add_menu_on_public_pages', 20); - - function add_menu_on_public_pages() { - if ( function_exists( 'initialize_menu') ) return false; # The current page has already the menu - global $template, $page, $conf; - if ( isset($page['body_id']) and $page['body_id']=="thePicturePage" ) - { - $template->set_filenames(array( - 'add_menu_on_public_pages' => dirname(__FILE__) . '/template/add_menu_on_public_pages.tpl', - )); - include_once(PHPWG_ROOT_PATH.'include/menubar.inc.php'); - $template->parse('add_menu_on_public_pages'); - } - - - } -} - - -?> diff --git a/tools/piwigo_addSimple.pl b/tools/piwigo_addSimple.pl new file mode 100644 index 000000000..2b3aebd48 --- /dev/null +++ b/tools/piwigo_addSimple.pl @@ -0,0 +1,36 @@ +#!/usr/bin/perl + +use LWP::UserAgent; + +my %conf = ( + base_url => 'http://localhost/pwggit', +); + +my $ua = LWP::UserAgent->new; +$ua->cookie_jar({}); + +$ua->post( + $conf{base_url}.'/ws.php', + { + method => 'pwg.session.login', + username => 'plg', + password => 'plg', + } +); + +my $response = $ua->post( + $conf{base_url}.'/ws.php', + { + method => 'pwg.images.addSimple', + image => ['/Users/plg/Documents/IMG_7779.jpg'], + category => 6, + tags => 'tag1, tag2, another tag', + name => 'A nice title', + comment => 'A longer description', + author => 'Paul Nikanon', + level => 0, + }, + 'Content_Type' => 'form-data', +); + +use Data::Dumper; print Dumper($response->message); \ No newline at end of file diff --git a/tools/pwg_rel_create.sh b/tools/pwg_rel_create.sh index 0220534ae..860314107 100755 --- a/tools/pwg_rel_create.sh +++ b/tools/pwg_rel_create.sh @@ -79,11 +79,27 @@ done # | themes | # +--------------------------------------------------------------------------+ -cd /tmp/$version/piwigo/themes -for themefile in $(ls */themeconf.inc.php) +for theme in modus elegant smartpocket do + cd /tmp/$version/piwigo/themes + + git_url=https://github.com/Piwigo/piwigo-${theme}.git + + # clone repo + git clone $git_url $theme + + # enter theme directory for next actions + cd $theme + # change version - perl $scriptdir/replace_version.pl --file=$themefile --version=$version + perl $scriptdir/replace_version.pl --file=themeconf.inc.php --version=$version + + # register metadata in dedicated file + echo $git_url > pem_metadata.txt + git log -n 1 --pretty=format:"%H %ad" --date=iso8601 >> pem_metadata.txt + + # remove Git metadata + rm -rf .git done # +--------------------------------------------------------------------------+ diff --git a/tools/triggers_list.php b/tools/triggers_list.php index 8ac7e20ee..2b3b05035 100644 --- a/tools/triggers_list.php +++ b/tools/triggers_list.php @@ -461,6 +461,13 @@ array( 'files' => array('notification.php'), 'infos' => 'New in 2.5', ), +array( + 'name' => 'loc_end_add_uploaded_file', + 'type' => 'trigger_notify', + 'vars' => array('array', 'image_infos'), + 'files' => array('admin\include\functions_upload.inc.php (add_uploaded_file)'), + 'infos' => 'New in 2.11', +), array( 'name' => 'loc_end_password', 'type' => 'trigger_notify', diff --git a/tools/ws.htm b/tools/ws.htm index a97d16904..a401ffef1 100644 --- a/tools/ws.htm +++ b/tools/ws.htm @@ -242,7 +242,7 @@ diff --git a/upgrade.php b/upgrade.php index 659956b0c..5da742ca8 100644 --- a/upgrade.php +++ b/upgrade.php @@ -165,9 +165,6 @@ else if ('pl_PL' == $language) { else if ('zh_CN' == $language) { define('PHPWG_DOMAIN', 'cn.piwigo.org'); } -else if ('hu_HU' == $language) { - define('PHPWG_DOMAIN', 'hu.piwigo.org'); -} else if ('ru_RU' == $language) { define('PHPWG_DOMAIN', 'ru.piwigo.org'); } @@ -186,7 +183,7 @@ else if ('pt_BR' == $language) { else { define('PHPWG_DOMAIN', 'piwigo.org'); } -define('PHPWG_URL', 'http://'.PHPWG_DOMAIN); +define('PHPWG_URL', 'https://'.PHPWG_DOMAIN); load_language( 'common.lang', '', array('language'=>$language, 'target_charset'=>'utf-8', 'no_fallback' => true) ); load_language( 'admin.lang', '', array('language'=>$language, 'target_charset'=>'utf-8', 'no_fallback' => true) ); @@ -335,6 +332,14 @@ else if (!in_array('auth_key_id', $columns_of[PREFIX_TABLE.'history'])) { $current_release = '2.7.0'; } +else if (!in_array('history_id_to', $columns_of[PREFIX_TABLE.'history_summary'])) +{ + $current_release = '2.8.0'; +} +else if (!in_array(PREFIX_TABLE.'activity', $tables)) +{ + $current_release = '2.9.0'; +} else { // retrieve already applied upgrades @@ -344,9 +349,9 @@ SELECT id ;'; $applied_upgrades = array_from_query($query, 'id'); - if (!in_array(152, $applied_upgrades)) + if (!in_array(159, $applied_upgrades)) { - $current_release = '2.8.0'; + $current_release = '2.10.0'; } else { diff --git a/ws.php b/ws.php index 8e78c1bdf..bceda3a04 100644 --- a/ws.php +++ b/ws.php @@ -320,7 +320,10 @@ function ws_addDefaultMethods( $arr ) $service->addMethod( 'pwg.session.login', 'ws_session_login', - array('username', 'password'), + array( + 'username' => array(), + 'password' => array('default'=>null), + ), 'Tries to login the user.', $ws_functions_root . 'pwg.php', array('post_only'=>true) @@ -482,6 +485,36 @@ function ws_addDefaultMethods( $arr ) $ws_functions_root . 'pwg.images.php', array('admin_only'=>true, 'post_only'=>true) ); + + $service->addMethod( + 'pwg.images.uploadAsync', + 'ws_images_uploadAsync', + array( + 'username' => array(), + 'password' => array('default'=>null), + 'chunk' => array('type'=>WS_TYPE_INT|WS_TYPE_POSITIVE), + 'chunk_sum' => array(), + 'chunks' => array('type'=>WS_TYPE_INT|WS_TYPE_POSITIVE), + 'original_sum' => array(), + 'category' => array('default'=>null, 'flags'=>WS_PARAM_FORCE_ARRAY, 'type'=>WS_TYPE_ID), + 'filename' => array(), + 'name' => array('default'=>null), + 'author' => array('default'=>null), + 'comment' => array('default'=>null), + 'date_creation' => array('default'=>null), + 'level' => array('default'=>0, 'maxValue'=>max($conf['available_permission_levels']), 'type'=>WS_TYPE_INT|WS_TYPE_POSITIVE), + 'tag_ids' => array('default'=>null, 'info'=>'Comma separated ids'), + 'image_id' => array('default'=>null, 'type'=>WS_TYPE_ID), + ), + 'Upload photo by chunks in a random order. +Use the $_FILES[file] field for uploading file. +Start with chunk 0 (zero). +Set the form encoding to "form-data". +You can update an existing photo if you define an existing image_id. +Requires admin credentials.', + $ws_functions_root . 'pwg.images.php', + array('post_only'=>true) + ); $service->addMethod( 'pwg.images.delete', @@ -499,7 +532,7 @@ function ws_addDefaultMethods( $arr ) 'pwg.images.setMd5sum', 'ws_images_setMd5sum', array( - 'block_size' => array('default'=>1000, 'type'=>WS_TYPE_INT|WS_TYPE_POSITIVE), + 'block_size' => array('default'=>$conf['checksum_compute_blocksize'], 'type'=>WS_TYPE_INT|WS_TYPE_POSITIVE), 'pwg_token' => array(), ), 'Set md5sum column, by blocks. Returns how many md5sums were added and how many are remaining.', @@ -637,12 +670,68 @@ function ws_addDefaultMethods( $arr ) $service->addMethod( // TODO: create multiple tags 'pwg.tags.add', 'ws_tags_add', - array('name'), + array( + 'name' => array() + ), 'Adds a new tag.', $ws_functions_root . 'pwg.tags.php', array('admin_only'=>true) ); + $service->addMethod( + 'pwg.tags.delete', + 'ws_tags_delete', + array( + 'tag_id' => array('type'=>WS_TYPE_ID, + 'flags'=>WS_PARAM_FORCE_ARRAY), + 'pwg_token' => array(), + ), + 'Delete tag(s) by ID.', + $ws_functions_root . 'pwg.tags.php', + array('admin_only'=>true) + ); + + $service->addMethod( + 'pwg.tags.rename', + 'ws_tags_rename', + array( + 'tag_id' => array('type'=>WS_TYPE_ID), + 'new_name' => array(), + 'pwg_token' => array(), + ), + 'Rename tag', + $ws_functions_root . 'pwg.tags.php', + array('admin_only'=>true) + ); + + $service->addMethod( + 'pwg.tags.duplicate', + 'ws_tags_duplicate', + array( + 'tag_id' => array('type'=>WS_TYPE_ID), + 'copy_name' => array(), + 'pwg_token' => array(), + ), + 'Create a copy of a tag', + $ws_functions_root . 'pwg.tags.php', + array('admin_only'=>true, 'post_only'=>true) + ); + + $service->addMethod( + 'pwg.tags.merge', + 'ws_tags_merge', + array( + 'destination_tag_id' => array('type'=>WS_TYPE_ID, + 'info'=>'Is not necessarily part of groups to merge'), + 'merge_tag_id' => array('flags'=>WS_PARAM_FORCE_ARRAY, + 'type'=>WS_TYPE_ID), + 'pwg_token' => array(), + ), + 'Merge tags in one other group', + $ws_functions_root . 'pwg.tags.php', + array('admin_only'=>true, 'post_only'=>true) + ); + $service->addMethod( 'pwg.images.exist', 'ws_images_exist', @@ -907,6 +996,34 @@ function ws_addDefaultMethods( $arr ) array('admin_only'=>true, 'post_only'=>true) ); + $service->addMethod( + 'pwg.groups.merge', + 'ws_groups_merge', + array( + 'destination_group_id' => array('type'=>WS_TYPE_ID, + 'info'=>'Is not necessarily part of groups to merge'), + 'merge_group_id' => array('flags'=>WS_PARAM_FORCE_ARRAY, + 'type'=>WS_TYPE_ID), + 'pwg_token' => array(), + ), + 'Merge groups in one other group', + $ws_functions_root . 'pwg.groups.php', + array('admin_only'=>true, 'post_only'=>true) + ); + + $service->addMethod( + 'pwg.groups.duplicate', + 'ws_groups_duplicate', + array( + 'group_id' => array('type'=>WS_TYPE_ID), + 'copy_name' => array(), + 'pwg_token' => array(), + ), + 'Create a copy of a group', + $ws_functions_root . 'pwg.groups.php', + array('admin_only'=>true, 'post_only'=>true) + ); + $service->addMethod( 'pwg.users.getList', 'ws_users_getList', @@ -1076,6 +1193,48 @@ enabled_high, registration_date, registration_date_string, registration_date_sin $ws_functions_root . 'pwg.permissions.php', array('admin_only'=>true, 'post_only'=>true) ); + + $service->addMethod( + 'pwg.users.favorites.add', + 'ws_users_favorites_add', + array( + 'image_id' => array('type'=>WS_TYPE_ID) + ), + 'Adds the indicated image to the current user\'s favorite images.', + $ws_functions_root . 'pwg.users.php' + ); + + $service->addMethod( + 'pwg.users.favorites.remove', + 'ws_users_favorites_remove', + array( + 'image_id' => array('type'=>WS_TYPE_ID) + ), + 'Removes the indicated image from the current user\'s favorite images.', + $ws_functions_root . 'pwg.users.php' + ); + + $service->addMethod( + 'pwg.users.favorites.getList', + 'ws_users_favorites_getList', + array( + 'per_page' => array( + 'default'=>100, + 'maxValue'=>$conf['ws_max_images_per_page'], + 'type'=>WS_TYPE_INT|WS_TYPE_POSITIVE + ), + 'page' => array( + 'default'=>0, + 'type'=>WS_TYPE_INT|WS_TYPE_POSITIVE + ), + 'order' => array( + 'default'=>null, + 'info'=>'id, file, name, hit, rating_score, date_creation, date_available, random' + ) + ), + 'Returns the favorite images of the current user.', + $ws_functions_root . 'pwg.users.php' + ); } ?>
- {'Reset to default values'|translate} + {'Reset to default values'|translate}
{'Drag to re-order'|@translate}
diff --git a/admin/themes/default/template/group_list.tpl b/admin/themes/default/template/group_list.tpl index b14ff1725..e95a53597 100644 --- a/admin/themes/default/template/group_list.tpl +++ b/admin/themes/default/template/group_list.tpl @@ -1,189 +1,254 @@ +{include file='include/colorbox.inc.tpl'} {footer_script} -{literal} -$(document).ready(function() { - /** - * Add group - */ - jQuery("#addGroup").click(function() { - jQuery("#addGroupForm").toggle(); - jQuery("input[name=groupname]").focus(); - return false; - }); +var pwg_token = "{$PWG_TOKEN}"; +var str_member_default = "{'member'|@translate}" +var str_members_default = "{'members'|@translate}" +var str_group_created = "{'Group added'|@translate}" +var str_renaming_done = "{'Group renamed'|@translate}" +var str_name_taken = "{'Name is already taken'|@translate}" +var str_group_deleted = '{'Group "%s" succesfully deleted'|@translate}' +var str_groups_deleted = '{'Groups \{%s\} succesfully deleted'|@translate}' +var str_set_default = "{'Set as group for new users'|@translate}" +var str_unset_default = "{'Unset as group for new users'|@translate}" +var str_delete = '{'Delete group "%s"?'|@translate}' +var str_yes_delete_confirmation = "{'Yes, delete'|@translate}" +var str_no_delete_confirmation = "{"No, I have changed my mind"|@translate}" +var str_user_associated = "{"User associated"|@translate}" +var str_user_dissociated = '{'User "%s" dissociated from this group'|@translate}' +var str_user_list = "{"User List"|@translate}" +var str_merged_into = '{'Group(s) \{%s1\} succesfully merged into "%s2"'|@translate}' +var str_copy = '{' (copy)'|@translate}' +var str_other_copy = '{' (copy %s)'|@translate}' - jQuery("#addGroupClose").click(function() { - jQuery("#addGroupForm").hide(); - return false; - }); +var serverKey = '{$CACHE_KEYS.users}' +var serverId = '{$CACHE_KEYS._hash}' +var rootUrl = '{$ROOT_URL}' - $('.groups input').change(function () { $(this).parent('p').toggleClass('group_select'); }); - $(".grp_action").hide(); - $("input.group_selection").click(function() { - - var nbSelected = 0; - nbSelected = $("input.group_selection").filter(':checked').length; - - if (nbSelected == 0) { - $("#permitAction").hide(); - $("#forbidAction").show(); - } - else { - $("#permitAction").show(); - $("#forbidAction").hide(); - } - $("p[group_id="+$(this).prop("value")+"]").each(function () { - $(this).toggle(); - }); - - if (nbSelected<2) { - $("#two_to_select").show(); - $("#two_atleast").hide(); - } - else { - $("#two_to_select").hide(); - $("#two_atleast").show(); - } - }); - $("[id^=action_]").hide(); - $("select[name=selectAction]").change(function () { - $("[id^=action_]").hide(); - $("#action_"+$(this).prop("value")).show(); - if ($(this).val() != -1 ) { - $("#applyActionBlock").show(); - } - else { - $("#applyActionBlock").hide(); - } - }); +$(document).on('keydown', function (e) { + if ( e.keyCode === 27) { // ESC button + $("#UserList").fadeOut(); + } +}) +$(document).on('click', function (e) { + if ($(e.target).closest(".UserListPopInContainer").length === 0) { + $("#UserList").fadeOut(); + } }); - -{/literal} {/footer_script} +{combine_script id='common' load='footer' path='admin/themes/default/js/common.js'} +{combine_script id='group_list' load='footer' path='admin/themes/default/js/group_list.js'} + +{combine_script id='jquery.selectize' load='footer' path='themes/default/js/plugins/selectize.min.js'} +{combine_css path="themes/default/js/plugins/selectize.{$themeconf.colorscheme}.css"} + +{combine_script id='LocalStorageCache' load='footer' path='admin/themes/default/js/LocalStorageCache.js'} + +{combine_script id='jquery.confirm' load='footer' require='jquery' path='themes/default/js/plugins/jquery-confirm.min.js'} +{combine_css path="themes/default/js/plugins/jquery-confirm.min.css"} +{combine_css path="admin/themes/default/fontello/css/animation.css"} + +{* Define template function for the content of Groups*} +{function name=groupContent} +{function groupContent} + + + + + + + + + + + + + + + + + + {'Duplicate'|@translate} + {'Delete'|@translate} + + + + + + + {$grp_name} + + + + + + + + + + + + + + + Change group name + {'Cancel'|@translate} + + + {$grp_members} + + + Manage users + Manage permissions + +{/function} +{/function} - {'Group management'|@translate} + {'Group management'|@translate} {(empty($groups)) ? 0 :count($groups)} - - {'Add group'|translate} - + + + + + + {'Selection mode'|@translate} + - - - {'Add group'|@translate} + + + {'No groups selected, no actions possible.'|@translate} + + {'Your selection'|@translate} + - - {'Group name'|translate} - - + + + - - - {'Cancel'|@translate} - + + {'Merge'|@translate} + {'Delete'|@translate} + - + + {'Choose which group to merge these groups into'|@translate} + {'The other groups will be removed'|@translate} + + + + + + Confirm merge + Cancel + + - - + + You are about to delete 0 groups, are you sure? + {'Yes, delete'|@translate} + {"No, I have changed my mind"|@translate} + + + + - - + + + + + + + + + {'Add group'|translate} + + + + + {'Group name'|translate} + + + + + {'Add'|translate} + + + {'Cancel'|@translate} + + + + + + + {* Template Group (for js application) *} + {groupContent grp_id="template" grp_name="Template" grp_members=0 grp_is_default=false} + + {assign var='color_tab' value=["icon-red", "icon-blue", "icon-yellow", "icon-purple", "icon-green"]} - {if not empty($groups)} {foreach from=$groups item=group name=group_loop} - - {$group.NAME}{$group.IS_DEFAULT} - {if $group.MEMBERS>0}{$group.MEMBERS}{$group.L_MEMBERS}{else}{$group.MEMBERS}{/if} - {'Permissions'|translate} - + {assign var='color_id' value=$group.ID%5} + {groupContent + grp_id=$group.ID + grp_name=$group.NAME + grp_members=$group.MEMBERS + grp_color=$color_tab[$color_id] + grp_is_default=$group.IS_DEFAULT + } + {/foreach} {/if} - + - - {'Action'|@translate} - {'No group selected, no action possible.'|@translate} - + - - {'Choose an action'|@translate} - ------------------ - {'Rename'|@translate} - {'Delete'|@translate} - {'Merge selected groups'|@translate} - {'Duplicate'|@translate} - {'Toggle \'default group\' property'|@translate} - {if !empty($element_set_groupe_plugins_actions)} - {foreach from=$element_set_groupe_plugins_actions item=action} - {$action.NAME} - {/foreach} - {/if} - + - - - {if not empty($groups)} - {foreach from=$groups item=group} - - - - {/foreach} - {/if} + + + + + + 25 + + + + + Associate User + + + + + + Showing 39 users out of 251 - - - - {'Please select at least two groups'|@translate} - {assign var='mergeDefaultValue' value='Type here the name of the new group'|@translate} - - - + + + + + + - - - {'Are you sure?'|@translate} - + + + + + + + - - - {assign var='duplicateDefaultValue' value='Type here the name of the new group'|@translate} - {if not empty($groups)} - {foreach from=$groups item=group} - - {$group.NAME} > - - {/foreach} - {/if} - + + + + + Manage users with user manager + + + - - - {if not empty($groups)} - {foreach from=$groups item=group} - - {$group.NAME} > {if empty($group.IS_DEFAULT)}{'This group will be set to default'|@translate}{else}{'This group will be unset to default'|@translate}{/if} - - {/foreach} - {/if} - - - - - {if !empty($element_set_groupe_plugins_actions)} - {foreach from=$element_set_groupe_plugins_actions item=action} - - {if !empty($action.CONTENT)}{$action.CONTENT}{/if} - - {/foreach} - {/if} - - - - - - - \ No newline at end of file + + diff --git a/admin/themes/default/template/group_perm.tpl b/admin/themes/default/template/group_perm.tpl index 401012d1e..1c9fe7716 100644 --- a/admin/themes/default/template/group_perm.tpl +++ b/admin/themes/default/template/group_perm.tpl @@ -3,6 +3,7 @@ {$DOUBLE_SELECT} + {'Only private albums are listed'|@translate} diff --git a/admin/themes/default/template/header.tpl b/admin/themes/default/template/header.tpl index 3619ed4d7..dd365bdfd 100644 --- a/admin/themes/default/template/header.tpl +++ b/admin/themes/default/template/header.tpl @@ -5,6 +5,9 @@ +{if $SHOW_MOBILE_APP_BANNER} + +{/if} {$GALLERY_TITLE} :: {$PAGE_TITLE} @@ -57,7 +60,7 @@ {$GALLERY_TITLE} - {$USERNAME} + {$USERNAME} {* {'Visit Gallery'|translate} *} diff --git a/admin/themes/default/template/history.tpl b/admin/themes/default/template/history.tpl index 96701d8bf..a9a9fc6ea 100644 --- a/admin/themes/default/template/history.tpl +++ b/admin/themes/default/template/history.tpl @@ -11,7 +11,7 @@ jQuery(function(){ {* *} - {'Filter'|@translate} + {'Filter'|@translate} {'Date'|@translate} diff --git a/admin/themes/default/template/include/add_album.inc.tpl b/admin/themes/default/template/include/add_album.inc.tpl index 173090db1..55715ddd5 100644 --- a/admin/themes/default/template/include/add_album.inc.tpl +++ b/admin/themes/default/template/include/add_album.inc.tpl @@ -3,7 +3,7 @@ {combine_script id='jquery.selectize' load='footer' path='themes/default/js/plugins/selectize.min.js'} {combine_css id='jquery.selectize' path="themes/default/js/plugins/selectize.{$themeconf.colorscheme}.css"} -{combine_css path="admin/themes/default/fontello/css/animation.css"} +{combine_css path="admin/themes/default/fontello/css/animation.css" order=10} {combine_script id='addAlbum' load=$load_mode path='admin/themes/default/js/addAlbum.js'} diff --git a/admin/themes/default/template/include/dbselect.inc.tpl b/admin/themes/default/template/include/dbselect.inc.tpl deleted file mode 100644 index 4bee81185..000000000 --- a/admin/themes/default/template/include/dbselect.inc.tpl +++ /dev/null @@ -1,16 +0,0 @@ -{* was used in double_select.tpl until Piwigo 2.8, no longer used in Piwigo core *} -{footer_script require='jquery.ui.resizable'}{literal} -jQuery(document).ready(function(){ - // Resize possible for double select list - jQuery(".doubleSelect select.categoryList").resizable({ - handles: "w,e", - animate: true, - animateDuration: "slow", - animateEasing: "swing", - preventDefault: true, - preserveCursor: true, - autoHide: true, - ghost: true - }); -}); -{/literal}{/footer_script} \ No newline at end of file diff --git a/admin/themes/default/template/include/resize.inc.tpl b/admin/themes/default/template/include/resize.inc.tpl deleted file mode 100644 index 152ee61a2..000000000 --- a/admin/themes/default/template/include/resize.inc.tpl +++ /dev/null @@ -1,16 +0,0 @@ -{* Resize possible *} -{footer_script require='jquery.ui.resizable'}{literal} - jQuery().ready(function(){ - // Resize possible for list - jQuery(".categoryList").resizable({ - handles: "all", - animate: true, - animateDuration: "slow", - animateEasing: "swing", - preventDefault: true, - preserveCursor: true, - autoHide: true, - ghost: true - }); - }); -{/literal}{/footer_script} diff --git a/admin/themes/default/template/include/tag_selection.inc.tpl b/admin/themes/default/template/include/tag_selection.inc.tpl deleted file mode 100644 index e84ec2431..000000000 --- a/admin/themes/default/template/include/tag_selection.inc.tpl +++ /dev/null @@ -1,15 +0,0 @@ -{footer_script require='jquery'}{literal} -jQuery(document).ready(function(){ - jQuery(".tagSelection").on("click", "label", function () { - var parent = jQuery(this).parent('li'); - var checkbox = jQuery(this).children("input[type=checkbox]"); - - if (jQuery(checkbox).is(':checked')) { - parent.addClass("tagSelected"); - } - else { - parent.removeClass('tagSelected'); - } - }); -}); -{/literal}{/footer_script} diff --git a/admin/themes/default/template/install.tpl b/admin/themes/default/template/install.tpl index ef9a7720a..3426c1c1a 100644 --- a/admin/themes/default/template/install.tpl +++ b/admin/themes/default/template/install.tpl @@ -282,7 +282,7 @@ jQuery().ready(function(){ldelim} - + {'Send my connection settings by email'|@translate} diff --git a/admin/themes/default/template/intro.tpl b/admin/themes/default/template/intro.tpl index abae8a33a..b6f45e34a 100644 --- a/admin/themes/default/template/intro.tpl +++ b/admin/themes/default/template/intro.tpl @@ -5,7 +5,9 @@ {footer_script require='jquery.cluetip'} var piwigo_need_update_msg = '{'A new version of Piwigo is available.'|@translate|@escape:"javascript"} '; var ext_need_update_msg = '{'Some upgrades are available for extensions.'|@translate|@escape:"javascript"} '; - +const str_gb_used = "{'%s GB used'|translate}"; +const str_mb_used = "{'%s MB used'|translate}"; +const storage_total = {$STORAGE_TOTAL}; {literal} jQuery().ready(function(){ jQuery('.cluetip').cluetip({ @@ -45,8 +47,41 @@ jQuery().ready(function(){ return false; } }); + let size_info = storage_total > 1000000 ? str_gb_used : str_mb_used; + let size_nb = storage_total > 1000000 ? (storage_total / 1000000).toFixed(2) : (storage_total / 1000).toFixed(0); + $(".chart-title-infos").html(size_info.replace("%s", size_nb)); }); + +//Tooltip for the storage chart +$('.storage-chart span').each(function () { + let tooltip = $('.storage-tooltips #'+$(this).data('type')); + let left = $(this).position().left + $(this).width()/2 - tooltip.innerWidth()/2; + tooltip.css('left', left+"px") + $(this).hover(function() { + tooltip.toggle(); + }); +}); + +$(window).on('resize', function(){ + $('.storage-chart span').each(function () { + let tooltip = $('.storage-tooltips #'+$(this).data('type')); + let left = $(this).position().left + $(this).width()/2 - tooltip.innerWidth()/2; + tooltip.css('left', left+"px") + }); +}); +let size = 0; +let str_size_type = "MB"; +let size_nb = 0; +let str_size = ""; {/literal} +{foreach from=$STORAGE_CHART_DATA key=type item=value} + size = {$value}; + str_size_type = size > 1000000 ? "GB" : "MB"; + size_nb = size > 1000000 ? (size / 1000000).toFixed(2) : (size / 1000).toFixed(0); + str_size = " : " + size_nb.toString() + " " + str_size_type; + $("#storage-{$type}").html("" + str_size); + $("#storage-{$type} b").html("{$type}"); +{/foreach} {/footer_script} {html_style} @@ -61,85 +96,164 @@ jQuery().ready(function(){ {'Piwigo Administration'|@translate} + {if $NB_PHOTOS > 1} - - + + {$NB_PHOTOS|number_format}{'Photos'|translate} {/if} {if $NB_ALBUMS > 1} - - + + {$NB_ALBUMS}{'Albums'|translate} {/if} {if $NB_TAGS > 1} - - + + {$NB_TAGS}{'Tags'|translate} {/if} {if $NB_USERS > 2} - - + + {$NB_USERS}{'Users'|translate} {/if} {if $NB_GROUPS > 0} - - + + {$NB_GROUPS}{'Groups'|translate} {/if} {if $NB_COMMENTS > 1} - - + + {$NB_COMMENTS}{'Comments'|translate} {/if} {if $NB_RATES > 0} - - + + {$NB_RATES}{'Rating'|translate} {/if} {if $NB_VIEWS > 0} - - + + {$NB_VIEWS}{'Pages seen'|translate} {/if} {if $NB_PLUGINS > 0} - - + + {$NB_PLUGINS}{'Plugins'|translate} {/if} - - + + {$STORAGE_USED}{'Storage used'|translate} {if $NB_PHOTOS > 1} - - + + {$first_added_age}{'First photo added'|translate} {/if} {* .stat-boxes *} + + + {"Activity peak in the last weeks"|@translate} + + {foreach from=$ACTIVITY_CHART_DATA item=WEEK_ACTIVITY key=WEEK_NUMBER} + {"Week %s"|@translate:$ACTIVITY_WEEK_NUMBER[$WEEK_NUMBER]} + {foreach from=$WEEK_ACTIVITY item=SIZE key=DAY_NUMBER} + + {if $SIZE != 0} + {assign var='SIZE_IN_UNIT' value=$SIZE/$ACTIVITY_CHART_NUMBER_SIZES * 5 + 1} + {assign var='OPACITY_IN_UNIT' value=$SIZE/$ACTIVITY_CHART_NUMBER_SIZES * 0.6 + 0.2} + + {if $ACTIVITY_LAST_WEEKS[$WEEK_NUMBER][$DAY_NUMBER]["number"] != 0} + + + {if $ACTIVITY_LAST_WEEKS[$WEEK_NUMBER][$DAY_NUMBER]["number"] > 1}{"%s Activities"|@translate:$ACTIVITY_LAST_WEEKS[$WEEK_NUMBER][$DAY_NUMBER]["number"]}{else}{"%s Activity"|@translate:$ACTIVITY_LAST_WEEKS[$WEEK_NUMBER][$DAY_NUMBER]["number"]}{/if} + {$ACTIVITY_LAST_WEEKS[$WEEK_NUMBER][$DAY_NUMBER]["date"]} + + + {foreach from=$ACTIVITY_LAST_WEEKS[$WEEK_NUMBER][$DAY_NUMBER]["details"] item=actions key=cat} + + {if $cat == "Group"} {$cat|@translate} + {elseif $cat == "User"} {$cat|@translate} + {elseif $cat == "Album"} {$cat|@translate} + {elseif $cat == "Photo"} {$cat|@translate} + {elseif $cat == "Tag"} {$cat|@translate} + {else} {$cat|@translate} {/if} + + {foreach from=$actions item=number key=action} + {if $action == "Edit"} {$number} + {elseif $action == "Add"} {$number} + {elseif $action == "Delete"} {$number} + {elseif $action == "Login"} {$number} + {elseif $action == "Logout"} {$number} + {elseif $action == "Move"} {$number} + {else} ({$action|@translate}) {$number} + {/if} + {/foreach} + + {/foreach} + + {/if} + {/if} + + {/foreach} + {/foreach} + + {foreach from=array('Mon'|translate, 'Tue'|translate, 'Wed'|translate, 'Thu'|translate, 'Fri'|translate, 'Sat'|translate, 'Sun'|translate) item=day} + {$day} + {/foreach} + + + {"Storage"|@translate} {'%s MB used'|translate:(round($STORAGE_TOTAL/1000, 0))} + + + {foreach from=$STORAGE_CHART_DATA key=type item=value} + + {round($value/$STORAGE_TOTAL*100)}% + + {/foreach} + + + + {foreach from=$STORAGE_CHART_DATA key=type item=value} + {$type} + {/foreach} + + + + {foreach from=$STORAGE_CHART_DATA item=i key=type} + {$type|translate} + {/foreach} + + + {* .intro-chart *} + + {* .intro-page-container *} + {if $ENABLE_SYNCHRONIZATION} {'Quick Local Synchronization'|translate} @@ -149,4 +263,4 @@ jQuery().ready(function(){ {if isset($SUBSCRIBE_BASE_URL)} {'Subscribe %s to Piwigo Announcements Newsletter'|@translate:$EMAIL} {'... or hide this link'|translate} {/if} - + \ No newline at end of file diff --git a/admin/themes/default/template/languages_installed.tpl b/admin/themes/default/template/languages_installed.tpl index 192cfcc61..c7068d441 100644 --- a/admin/themes/default/template/languages_installed.tpl +++ b/admin/themes/default/template/languages_installed.tpl @@ -1,3 +1,20 @@ +{combine_script id='common' load='footer' path='admin/themes/default/js/common.js'} +{combine_script id='jquery.confirm' load='footer' require='jquery' path='themes/default/js/plugins/jquery-confirm.min.js'} +{combine_css path="themes/default/js/plugins/jquery-confirm.min.css"} +{footer_script} +$(".delete-lang-button").each(function() { + let title_msg = '{'Are you sure you want to delete the language "%s"?'|@translate|@escape:'javascript'}'; + const confirm_msg = '{"Yes, I am sure"|@translate}'; + const cancel_msg = '{"No, I have changed my mind"|@translate|@escape:'javascript'}'; + let lang_name = $(this).closest(".languageBox").find('.languageName').html(); + $(this).pwg_jconfirm_follow_href({ + alert_title: title_msg.replace("%s", lang_name), + alert_confirm: confirm_msg, + alert_cancel: cancel_msg + }); +}); +{/footer_script} + {'Installed Languages'|@translate} @@ -34,7 +51,7 @@ {if $language_state == 'inactive'} {'Activate'|@translate} - | {'Delete'|@translate} + | {'Delete'|@translate} {/if} diff --git a/admin/themes/default/template/maintenance.tpl b/admin/themes/default/template/maintenance.tpl index 040653261..1331bb1c9 100644 --- a/admin/themes/default/template/maintenance.tpl +++ b/admin/themes/default/template/maintenance.tpl @@ -1,10 +1,61 @@ +{combine_script id='common' load='footer' path='admin/themes/default/js/common.js'} +{combine_script id='jquery.confirm' load='footer' require='jquery' path='themes/default/js/plugins/jquery-confirm.min.js'} +{combine_css path="themes/default/js/plugins/jquery-confirm.min.css"} +{footer_script} +const confirm_msg = '{"Yes, I am sure"|@translate}'; +const cancel_msg = "{"No, I have changed my mind"|@translate}"; +$(".lock-gallery-button").each(function() { + const gallery_tip = '{"A locked gallery is only visible to administrators"|@translate|@escape:'javascript'}'; + let title = '{"Are you sure you want to lock the gallery?"|@translate}'; + let confirm_msg_gallery = '{"Yes, I want to lock the gallery"|@translate}'; + let cancel_msg_gallery = '{"Keep it unlocked"|@translate}'; + $(this).pwg_jconfirm_follow_href({ + alert_title: title, + alert_confirm: confirm_msg, + alert_cancel: cancel_msg, + alert_content: gallery_tip + }); +}); +$(".purge-history-detail-button").each(function() { + const title = '{"Purge history detail"|@translate|@escape:'javascript'}'; + $(this).pwg_jconfirm_follow_href({ + alert_title: title, + alert_confirm: confirm_msg, + alert_cancel: cancel_msg + }); +}); +$(".purge-history-summary-button").each(function() { + const title = '{"Purge history summary"|@translate|@escape:'javascript'}'; + $(this).pwg_jconfirm_follow_href({ + alert_title: title, + alert_confirm: confirm_msg, + alert_cancel: cancel_msg + }); +}); +$(".purge-search-history-button").each(function() { + const title = '{"Purge search history"|@translate|@escape:'javascript'}'; + $(this).pwg_jconfirm_follow_href({ + alert_title: title, + alert_confirm: confirm_msg, + alert_cancel: cancel_msg + }); +}); +$(".delete-all-sizes-button").each(function() { + const title = '{"Are you sure you want to delete all sizes?"|@translate|@escape:'javascript'}'; + $(this).pwg_jconfirm_follow_href({ + alert_title: title, + alert_confirm: confirm_msg, + alert_cancel: cancel_msg + }); +}); +{/footer_script} {'Maintenance'|@translate} {if (isset($U_MAINT_LOCK_GALLERY))} - {'Lock gallery'|@translate} + {'Lock gallery'|@translate} {else} {'Unlock gallery'|@translate} {/if} @@ -29,14 +80,15 @@ {'Purge user cache'|@translate} {'Delete orphan tags'|@translate} - {'Purge history detail'|@translate} - {'Purge history summary'|@translate} + {'Purge history detail'|@translate} + {'Purge history summary'|@translate} {'Purge sessions'|@translate} {'Purge never used notification feeds'|@translate} - {'Purge search history'|@translate} + {'Purge search history'|@translate} {'Purge compiled templates'|@translate} {'Delete multiple size images'|@translate}: - {foreach from=$purge_derivatives key=name item=url name=loop}{if !$smarty.foreach.loop.first}, {/if}{$name}{/foreach} + {foreach from=$purge_derivatives key=name item=url name=loop} + {$name}{if !$smarty.foreach.loop.last}, {/if}{/foreach} diff --git a/admin/themes/default/template/navigation_bar.tpl b/admin/themes/default/template/navigation_bar.tpl index 82c66bd15..b605da4b2 100644 --- a/admin/themes/default/template/navigation_bar.tpl +++ b/admin/themes/default/template/navigation_bar.tpl @@ -1,28 +1,34 @@ - + {if isset($navbar.URL_FIRST)} - {'First'|@translate} | - {'Previous'|@translate} | + + + {else} - {'First'|@translate} | - {'Previous'|@translate} | + + + {/if} {assign var='prev_page' value=0} + {foreach from=$navbar.pages key=page item=url} - {if $page > $prev_page+1}...{/if} + {if $page > $prev_page+1}...{/if} {if $page == $navbar.CURRENT_PAGE} - {$page} + {$page} {else} {$page} {/if} {assign var='prev_page' value=$page} {/foreach} + {if isset($navbar.URL_NEXT)} - | {'Next'|@translate} - | {'Last'|@translate} + + + {else} - | {'Next'|@translate} - | {'Last'|@translate} + + + {/if} diff --git a/admin/themes/default/template/notification_by_mail.tpl b/admin/themes/default/template/notification_by_mail.tpl index 95506616c..c9c905fc8 100644 --- a/admin/themes/default/template/notification_by_mail.tpl +++ b/admin/themes/default/template/notification_by_mail.tpl @@ -21,6 +21,8 @@ jQuery(document).ready(function(){ + + {if isset($REPOST_SUBMIT_NAME)} @@ -37,7 +39,7 @@ jQuery(document).ready(function(){ {'Send mail on HTML format'|@translate} {'Yes'|@translate} - {'No'|@translate} + {'No'|@translate} @@ -51,7 +53,7 @@ jQuery(document).ready(function(){ {'Add detailed content'|@translate} {'Yes'|@translate} - {'No'|@translate} + {'No'|@translate} @@ -65,7 +67,7 @@ jQuery(document).ready(function(){ {'Yes'|@translate} - {'No'|@translate} + {'No'|@translate} @@ -129,7 +131,7 @@ jQuery(document).ready(function(){ {if isset($auth_key_duration)} - {'Informations'|@translate} + {'Informations'|@translate} {'Each email sent will contain its own automatic authentication key on links, valid for %s.'|translate:$auth_key_duration} {'For security reason, authentication keys do not work for administrators.'|translate} diff --git a/admin/themes/default/template/permalinks.tpl b/admin/themes/default/template/permalinks.tpl index 648048949..a7e9f6a31 100644 --- a/admin/themes/default/template/permalinks.tpl +++ b/admin/themes/default/template/permalinks.tpl @@ -63,7 +63,7 @@ form fieldset p.actionButtons {margin-bottom:0} - {'Permalinks'|@translate} + {'Permalinks'|@translate} Id {$SORT_ID} @@ -81,7 +81,7 @@ form fieldset p.actionButtons {margin-bottom:0} - {'Permalink history'|@translate} + {'Permalink history'|@translate} Id {$SORT_OLD_CAT_ID} diff --git a/admin/themes/default/template/photos_add_applications.tpl b/admin/themes/default/template/photos_add_applications.tpl index cc282fa33..2191e186f 100644 --- a/admin/themes/default/template/photos_add_applications.tpl +++ b/admin/themes/default/template/photos_add_applications.tpl @@ -37,6 +37,16 @@ fieldset p {text-align:left;margin-top:0} + + {'Piwigo for Android'|@translate} + +{'Piwigo for Android application empowers you to connect your Android phone or table to your Piwigo gallery, create some albums and upload several photos at once.'|@translate} + + +{'Available on'|@translate} Google Play + + + Lightroom @@ -128,4 +138,4 @@ fieldset p {text-align:left;margin-top:0} {'Available on'|@translate} Google Play -*} \ No newline at end of file +*} diff --git a/admin/themes/default/template/photos_add_direct.tpl b/admin/themes/default/template/photos_add_direct.tpl index db0782869..52cb21626 100644 --- a/admin/themes/default/template/photos_add_direct.tpl +++ b/admin/themes/default/template/photos_add_direct.tpl @@ -1,11 +1,7 @@ {combine_script id='common' load='footer' path='admin/themes/default/js/common.js'} - -{combine_script id='jquery.jgrowl' load='footer' require='jquery' path='themes/default/js/plugins/jquery.jgrowl_minimized.js'} - {combine_script id='jquery.plupload' load='footer' require='jquery' path='themes/default/js/plugins/plupload/plupload.full.min.js'} {combine_script id='jquery.plupload.queue' load='footer' require='jquery' path='themes/default/js/plugins/plupload/jquery.plupload.queue/jquery.plupload.queue.min.js'} -{combine_css path="themes/default/js/plugins/jquery.jgrowl.css"} {combine_css path="themes/default/js/plugins/plupload/jquery.plupload.queue/css/jquery.plupload.queue.css"} {assign var="plupload_i18n" value="themes/default/js/plugins/plupload/i18n/`$lang_info.plupload_code`.js"} @@ -138,6 +134,7 @@ jQuery(document).ready(function(){ QueueChanged : function(up) { jQuery('#addFiles').addClass("addFilesButtonChanged"); jQuery('#startUpload').prop('disabled', up.files.length == 0); + jQuery("#addFiles").removeClass('buttonGradient').addClass('buttonLike'); if (up.files.length > 0) { jQuery('.plupload_filelist_footer').show(); @@ -146,6 +143,7 @@ jQuery(document).ready(function(){ if (up.files.length == 0) { jQuery('#addFiles').removeClass("addFilesButtonChanged"); + jQuery("#addFiles").removeClass('buttonLike').addClass('buttonGradient'); jQuery('.plupload_filelist_footer').hide(); jQuery('.plupload_filelist').css("overflow-y", "hidden"); } @@ -262,7 +260,7 @@ jQuery(document).ready(function(){ 0} style="display:none;"{/if}> {'Welcome!'|translate} {'Piwigo requires an album to add photos.'|translate} - {'Create a first album'|translate} + {'Create a first album'|translate} @@ -294,8 +292,8 @@ jQuery(document).ready(function(){ - {'Drop into album'|@translate} - {$ADD_TO_ALBUM} + {'Drop into album'|@translate} + {$ADD_TO_ALBUM} @@ -316,9 +314,9 @@ jQuery(document).ready(function(){ *} - {'Select files'|@translate} + {'Select files'|@translate} - {'Add Photos'|translate} + {'Add Photos'|translate} {if isset($original_resize_maxheight)} {'The picture dimensions will be reduced to %dx%d pixels.'|@translate:$original_resize_maxwidth:$original_resize_maxheight} @@ -338,14 +336,13 @@ jQuery(document).ready(function(){ - {'Cancel'|translate} - - + + {'Cancel'|translate} - {'Start Upload'|translate} + {'Start Upload'|translate} diff --git a/admin/themes/default/template/picture_modify.tpl b/admin/themes/default/template/picture_modify.tpl index 7aab2831a..500550a67 100644 --- a/admin/themes/default/template/picture_modify.tpl +++ b/admin/themes/default/template/picture_modify.tpl @@ -7,6 +7,9 @@ {combine_script id='jquery.selectize' load='footer' path='themes/default/js/plugins/selectize.min.js'} {combine_css id='jquery.selectize' path="themes/default/js/plugins/selectize.{$themeconf.colorscheme}.css"} +{combine_script id='jquery.confirm' load='footer' require='jquery' path='themes/default/js/plugins/jquery-confirm.min.js'} +{combine_css path="themes/default/js/plugins/jquery-confirm.min.css"} + {footer_script} (function(){ {* *} @@ -41,53 +44,91 @@ jQuery(function(){ {* *} jQuery("a.preview-box").colorbox({ photo: true }); + +str_are_you_sure = '{'Are you sure?'|translate}'; +str_yes = '{'Yes, delete'|translate}'; +str_no = '{'No, I have changed my mind'|translate|@escape:'javascript'}'; +url_delete = '{$U_DELETE}'; + +{literal} +$('#action-delete-picture').on('click', function() { + $.confirm({ + title: str_are_you_sure, + draggable: false, + titleClass: "groupDeleteConfirm", + theme: "modern", + content: "", + animation: "zoom", + boxWidth: '30%', + useBootstrap: false, + type: 'red', + animateFromElement: false, + backgroundDismiss: true, + typeAnimated: false, + buttons: { + confirm: { + text: str_yes, + btnClass: 'btn-red', + action: function () { + window.location.href = url_delete.replaceAll('amp;', ''); + } + }, + cancel: { + text: str_no + } + } + }); +}) +{/literal} + }()); {/footer_script} -{$TITLE} › {'Edit photo'|@translate} {$TABSHEET_TITLE} +{'Edit photo #%s'|@translate:$INTRO.id} - + + + + {if isset($U_JUMPTO)} + + {else} + + {/if} + + + + + + + + + + + + + + + + {$INTRO.file} + {$INTRO.size} + {$INTRO.formats} + {$INTRO.ext} + + - - {'Informations'|@translate} + + + + + + {$INTRO.date} + {$INTRO.age} + {$INTRO.added_by} + {$INTRO.stats} + + + - - - - - - - - - {$INTRO.file} - {$INTRO.add_date} - {$INTRO.added_by} - {$INTRO.size} - {$INTRO.formats} - {$INTRO.stats} - {$INTRO.id} - - - - - {if isset($U_JUMPTO) } - {'jump to photo'|@translate} → - {/if} - {'Download'|translate} - {if !url_is_remote($PATH)} - {'Synchronize metadata'|@translate} - - {'delete photo'|@translate} - {/if} - - - - - - - - - {'Properties'|@translate} {'Title'|@translate} @@ -105,7 +146,7 @@ jQuery("a.preview-box").colorbox({ {'Creation date'|@translate} - + @@ -117,7 +158,7 @@ jQuery("a.preview-box").colorbox({ + data-default="{$STORAGE_ALBUM}" name="associate[]" multiple style="width:calc(100% + 2px);"> @@ -125,7 +166,7 @@ jQuery("a.preview-box").colorbox({ + name="represent[]" multiple style="width:calc(100% + 2px);"> @@ -133,7 +174,7 @@ jQuery("a.preview-box").colorbox({ + data-create="true" name="tags[]" multiple style="width:calc(100% + 2px);"> @@ -145,15 +186,16 @@ jQuery("a.preview-box").colorbox({ {'Who can see this photo?'|@translate} + {html_options options=$level_options selected=$level_options_selected} - - - - - + + + + + diff --git a/admin/themes/default/template/plugins_installed.tpl b/admin/themes/default/template/plugins_installed.tpl index 9864abd9d..9531f16ac 100644 --- a/admin/themes/default/template/plugins_installed.tpl +++ b/admin/themes/default/template/plugins_installed.tpl @@ -1,13 +1,26 @@ {combine_script id='jquery.ajaxmanager' load='footer' require='jquery' path='themes/default/js/plugins/jquery.ajaxmanager.js' } +{combine_script id='common' load='footer' path='admin/themes/default/js/common.js'} {footer_script require='jquery.ajaxmanager'} /* incompatible message */ var incompatible_msg = '{'WARNING! This plugin does not seem to be compatible with this version of Piwigo.'|@translate|@escape:'javascript'}'; var activate_msg = '\n{'Do you want to activate anyway?'|@translate|@escape:'javascript'}'; +var deactivate_all_msg = '{'Deactivate all'|@translate}'; + +var showInactivePlugins = function() { + jQuery(".showInactivePlugins").fadeOut(complete=function(){ + jQuery(".plugin-inactive").fadeIn(); + }) + } /* group action */ -var pwg_token = '{$PWG_TOKEN}'; -var confirmMsg = '{'Are you sure?'|@translate|@escape:'javascript'}'; +const pwg_token = '{$PWG_TOKEN}'; +const are_you_sure_msg = '{'Are you sure?'|@translate|@escape:'javascript'}'; +const confirm_msg = '{"Yes, I am sure"|@translate}'; +const cancel_msg = "{"No, I have changed my mind"|@translate}"; +let delete_plugin_msg = '{'Are you sure you want to delete the plugin "%s"?'|@translate|@escape:'javascript'}'; +let restore_plugin_msg = '{'Are you sure you want to restore the plugin "%s"?'|@translate|@escape:'javascript'}'; +const restore_tip_msg = "{'Restore default configuration. You will lose your plugin settings!'|@translate}"; {literal} var queuedManager = jQuery.manageAjax.create('queued', { queue: true, @@ -15,18 +28,56 @@ var queuedManager = jQuery.manageAjax.create('queued', { }); var nb_plugins = jQuery('div.active').size(); var done = 0; +/* group action */ jQuery(document).ready(function() { - /* group action */ - jQuery('div.deactivate_all a').click(function() { - if (confirm(confirmMsg)) { - jQuery('div.active').each(function() { - performPluginDeactivate(jQuery(this).attr('id')); - }); - } + $(".delete-plugin-button").each(function() { + let plugin_name = $(this).closest(".pluginContent").find(".pluginMiniBoxNameCell").html().trim(); + $(this).pwg_jconfirm_follow_href({ + alert_title: delete_plugin_msg.replace('%s', plugin_name), + alert_confirm: confirm_msg, + alert_cancel: cancel_msg + }); }); + $(".plugin-restore").each(function() { + let plugin_name = $(this).closest(".pluginContent").find(".pluginMiniBoxNameCell").html().trim(); + $(this).pwg_jconfirm_follow_href({ + alert_title: restore_plugin_msg.replace('%s', plugin_name), + alert_confirm: confirm_msg, + alert_cancel: cancel_msg, + alert_content: restore_tip_msg, + }); + }); + $(".uninstall-plugin-button").each(function() { + $(this).pwg_jconfirm_follow_href({ + alert_title: are_you_sure_msg, + alert_confirm: confirm_msg, + alert_cancel: cancel_msg + }); + }); + jQuery('div.deactivate_all a').click(function() { + $.confirm({ + title: deactivate_all_msg, + buttons: { + confirm: { + text: confirm_msg, + btnClass: 'btn-red', + action: function () { + jQuery('div.active').each(function() { + performPluginDeactivate(jQuery(this).attr('id')); + }) + } + }, + cancel: { + text: cancel_msg + } + }, + ...jConfirm_confirm_options + }); + }); + function performPluginDeactivate(id) { - queuedManager.add({ + queuedManager.add({ type: 'GET', dataType: 'json', url: 'ws.php', @@ -56,7 +107,13 @@ jQuery(document).ready(function() { {/if} {literal} jQuery('#'+data[i]).addClass('incompatible'); - jQuery('#'+data[i]+' .activate').attr('onClick', 'return confirm(incompatible_msg + activate_msg);'); + jQuery('#'+data[i]+' .activate').each(function () { + $(this).pwg_jconfirm_follow_href({ + alert_title: incompatible_msg + activate_msg, + alert_confirm: confirm_msg, + alert_cancel: cancel_msg + }); + }); } jQuery('.warning').tipTip({ 'delay' : 0, @@ -67,61 +124,150 @@ jQuery(document).ready(function() { } }); }); - - /* TipTips */ - jQuery('.plugin-restore').tipTip({ - 'delay' : 0, - 'fadeIn' : 200, - 'fadeOut' : 200 - }); - jQuery('.showInfo').tipTip({ - 'delay' : 0, + jQuery('.fullInfo').tipTip({ + 'delay' : 500, 'fadeIn' : 200, 'fadeOut' : 200, 'maxWidth':'300px', - 'keepAlive':true, - 'activation':'click' + 'keepAlive':false, + }); + + /* Add the '...' for the overflow of the description line*/ + jQuery( document ).ready(function () { + jQuery('.pluginDesc').each(function () { + var el = jQuery(this).context; + var wordArray = el.innerHTML.split(' '); + if (el.scrollHeight > el.offsetHeight) { + jQuery(this).attr('title', jQuery(this).html()) + } + while(el.scrollHeight > el.offsetHeight) { + wordArray.pop(); + el.innerHTML = wordArray.join(' ') + '...'; + } + }) + }); + + /*Add the filter research*/ + jQuery( document ).ready(function () { + jQuery(".pluginFilter input").on("input", function() { + let text = jQuery(this).val().toLowerCase(); + var searchNumber = 0; + jQuery('.pluginBoxes').each(function () { + let searchNumberInBox = 0; + let pluginBoxes = jQuery(this); + pluginBoxes.find(".pluginMiniBox").each(function() { + if (text == "") { + jQuery(this).fadeIn() + searchNumberInBox++; + } else { + let name = jQuery(this).find(".pluginMiniBoxNameCell").text().toLowerCase(); + let description = jQuery(this).find(".pluginDesc").text().toLowerCase(); + if (name.search(text) != -1 || description.search(text) != -1){ + jQuery(this).fadeIn() + searchNumberInBox++; + } else { + jQuery(this).fadeOut() + } + } + }) + if (searchNumberInBox == 0) { + pluginBoxes.fadeOut(); + } else { + if (pluginBoxes.hasClass("plugin-inactive")) { + showInactivePlugins() + } else { + pluginBoxes.fadeIn(); + } + } + searchNumber += searchNumberInBox; + }); + if (searchNumber == 0) { + jQuery(".emptyResearch").fadeIn(); + } else { + jQuery(".emptyResearch").fadeOut(); + } + }); + }); + + /* Show Inactive plugins or button to show them*/ + jQuery( document ).ready(function () { + jQuery(".showInactivePlugins button").on('click', showInactivePlugins) }); }); + +$(document).mouseup(function (e) { + e.stopPropagation(); + $(".pluginMiniBox").each(function() { + if ($(this).find(".showOptions").has(e.target).length === 0) { + $(this).find(".PluginOptionsBlock").hide(); + } + }) +}); + +jQuery(".pluginMiniBox").each(function(index){ + let myplugin = jQuery(this); + myplugin.find(".showOptions").click(function(){ + myplugin.find(".PluginOptionsBlock").toggle(); + }); +}) + {/literal} {/footer_script} +{combine_script id='jquery.confirm' load='footer' require='jquery' path='themes/default/js/plugins/jquery-confirm.min.js'} +{combine_css path="themes/default/js/plugins/jquery-confirm.min.css"} +{combine_script id='tiptip' load='header' path='themes/default/js/plugins/jquery.tipTip.minified.js'} + {'Plugins'|@translate} - - {if $show_details} - {'hide details'|@translate} - {else} - {'show details'|@translate} - {/if} - - {if isset($plugins)} {assign var='field_name' value='null'} {* *} {counter start=0 assign=i} {* *} + + + + + + + + {'No plugins found'|@translate} + {foreach from=$plugins item=plugin name=plugins_loop} {if $field_name != $plugin.STATE} {if $field_name != 'null'} - - {/if} - - - - {if $plugin.STATE == 'active'} - {'Active Plugins'|@translate} - {elseif $plugin.STATE == 'inactive'} - {'Inactive Plugins'|@translate} - {elseif $plugin.STATE == 'missing'} - {'Missing Plugins'|@translate} - {elseif $plugin.STATE == 'merged'} - {'Obsolete Plugins'|@translate} - {/if} - + {* PluginBoxes Container*} + {* PluginBoxes*} + {/if} + + 8}style="display:none"{/if}{/if}> {assign var='field_name' value=$plugin.STATE} + + + + + {if $plugin.STATE == 'active'} + {'Active Plugins'|@translate} + {elseif $plugin.STATE == 'inactive'} + {'Inactive Plugins'|@translate} + {elseif $plugin.STATE == 'missing'} + {'Missing Plugins'|@translate} + {elseif $plugin.STATE == 'merged'} + {'Obsolete Plugins'|@translate} + {/if} + + {$count_types_plugins[$plugin.STATE]} + + + {if $plugin.STATE == 'active'} + {'Deactivate all'|@translate} + {/if} + + + {/if} {if not empty($plugin.AUTHOR)} @@ -131,91 +277,67 @@ jQuery(document).ready(function() { {assign var='author' value=''|cat:$plugin.AUTHOR|cat:''} {/if} {/if} - - {if $show_details} - - - - - {$plugin.NAME} - - {$plugin.DESC} - - - - {if $plugin.STATE == 'active'} - {'Deactivate'|@translate} - | {'Restore'|@translate} - {elseif $plugin.STATE == 'inactive'} - {'Activate'|@translate} - | {'Delete'|@translate} - - {elseif $plugin.STATE == 'missing'} - {'Uninstall'|@translate} - - {elseif $plugin.STATE == 'merged'} - {'Delete'|@translate} - {/if} - - - {'Version'|@translate} {$plugin.VERSION} - - {if not empty($author)} - | {'By %s'|@translate:$author} - {/if} - - {if not empty($plugin.VISIT_URL)} - | {'Visit plugin site'|@translate} - {/if} - - - - {**} - + {if not empty($plugin.VISIT_URL)} + {assign var='version' value=""|cat:$plugin.VERSION|cat:""} {else} - {if not empty($plugin.VISIT_URL)} - {assign var='version' value=""|cat:$plugin.VERSION|cat:""} - {else} - {assign var='version' value=$plugin.VERSION} - {/if} - - + {assign var='version' value=$plugin.VERSION} + {/if} + + + + + {if $plugin.STATE == 'active' || $plugin.STATE == 'inactive'} + + {/if} + + + + {if !empty($author)}{'By %s'|@translate:$author}{/if}{'Version'|@translate} {$version} + {if $plugin.STATE == 'active'} + {'Deactivate'|@translate} + {'Restore'|@translate} + {elseif $plugin.STATE == 'inactive'} + {'Delete'|@translate} + {/if} + {$plugin.NAME} - + + + {$plugin.DESC} - {if $plugin.STATE == 'active'} - {'Deactivate'|@translate} - | {'Restore'|@translate} - + {if $plugin.SETTINGS_URL != ''} + {'Settings'|@translate} + {else} + {'Settings'|@translate} + {/if} {elseif $plugin.STATE == 'inactive'} - {'Activate'|@translate} - | {'Delete'|@translate} - + {'Activate'|@translate} {elseif $plugin.STATE == 'missing'} - {'Uninstall'|@translate} - + {'Uninstall'|@translate} {elseif $plugin.STATE == 'merged'} - {'Delete'|@translate} - {/if} - + {'Delete'|@translate} + {/if} - {**} + - {/if} - -{if $plugin.STATE == 'active'} - {counter} - {if $active_plugins == $i} - {'Deactivate all'|@translate} - {counter} - {/if} -{/if} - -{/foreach} - + {**} + + + + {/foreach} + {* PluginBoxes Container*} + {* PluginBoxes*} + + + + {assign var='badge_inactive' value='%s'|@sprintf:$count_types_plugins["inactive"]} + {'You have %s inactive plugins'|translate:$badge_inactive} + + {'Show inactive plugins'|@translate} + {/if} diff --git a/admin/themes/default/template/plugins_new.tpl b/admin/themes/default/template/plugins_new.tpl index 4d55f9735..1b7be30d7 100644 --- a/admin/themes/default/template/plugins_new.tpl +++ b/admin/themes/default/template/plugins_new.tpl @@ -1,6 +1,15 @@ {combine_script id='jquery.sort' load='footer' path='themes/default/js/plugins/jquery.sort.js'} -{footer_script require='jquery.ui.effect-blind,jquery.sort'}{literal} +{combine_script id='common' load='footer' path='admin/themes/default/js/common.js'} +{combine_script id='jquery.confirm' load='footer' require='jquery' path='themes/default/js/plugins/jquery-confirm.min.js'} +{combine_css path="themes/default/js/plugins/jquery-confirm.min.css"} + +{footer_script require='jquery.ui.effect-blind,jquery.sort'} +const install_title = '{'Are you sure you want to install this plugin?'|@translate|@escape:'javascript'}'; +const confirm_msg = '{"Yes, I am sure"|@translate}'; +const cancel_msg = "{"No, I have changed my mind"|@translate}"; +let title = '{'Are you sure you want to install the plugin "%s"?'|@translate|@escape:'javascript'}'; +{literal} var sortOrder = 'date'; var sortPlugins = (function(a, b) { if (sortOrder == 'downloads' || sortOrder == 'revision' || sortOrder == 'date') @@ -33,32 +42,34 @@ jQuery(document).ready(function(){ }); jQuery('#filter').keyup(function(){ - var filter = $(this).val(); - if (filter.length>2) { - $('.pluginBox').hide(); - $('#availablePlugins .pluginBox input[name="name"]').each(function(){ - if ($(this).val().toUpperCase().indexOf(filter.toUpperCase()) != -1) { - $(this).parents('div').show(); - } + var filter = $(this).val(); + if (filter.length>2) { + $('.pluginBox').hide(); + $('#availablePlugins .pluginBox input[name="name"]').each(function(){ + if ($(this).val().toUpperCase().indexOf(filter.toUpperCase()) != -1) { + $(this).parents('div').show(); + } + }); + } else { + $('.pluginBox').show(); + } + jQuery("#filter").focus(); + }); + $(".install-plugin-button").each(function() { + let plugin_name = $(this).closest(".pluginBox").find("input[name=\"name\"]").val(); + $(this).pwg_jconfirm_follow_href({ + alert_title: title.replace("%s", plugin_name), + alert_confirm: confirm_msg, + alert_cancel: cancel_msg }); - } - else { - $('.pluginBox').show(); - } - }); - jQuery("#filter").focus(); - jQuery(".titrePage input[name='Clear']").click(function(){ - $("#filter").val(''); - $(".pluginBox").show(); - }); + }); }); {/literal}{/footer_script} -{'Filter'|@translate} : - | -{'Sort order'|@translate} : + {'Filter'|@translate} + {'Sort order'|@translate} {html_options name="selectOrder" options=$order_options selected=$order_selected} {'Plugins'|@translate} @@ -93,7 +104,7 @@ jQuery(document).ready(function(){ - {'Install'|@translate} + {'Install'|@translate} | {'Download'|@translate} diff --git a/admin/themes/default/template/rating.tpl b/admin/themes/default/template/rating.tpl index 7be061e16..f78e06319 100644 --- a/admin/themes/default/template/rating.tpl +++ b/admin/themes/default/template/rating.tpl @@ -38,7 +38,7 @@ jQuery("select[name=cat]").change(function(){ - {'Filter'|@translate} + {'Filter'|@translate} {'Sort by'|@translate} diff --git a/admin/themes/default/template/rating_user.tpl b/admin/themes/default/template/rating_user.tpl index 6d93f9610..873882a68 100644 --- a/admin/themes/default/template/rating_user.tpl +++ b/admin/themes/default/template/rating_user.tpl @@ -67,7 +67,9 @@ body .ui-tooltip { - +{combine_script id='common' load='footer' path='admin/themes/default/js/common.js'} +{combine_script id='jquery.confirm' load='footer' require='jquery' path='themes/default/js/plugins/jquery-confirm.min.js'} +{combine_css path="themes/default/js/plugins/jquery-confirm.min.css"} {combine_script id='core.scripts' load='async' path='themes/default/js/scripts.js'} {combine_script id='jquery.geoip' load='async' path='admin/themes/default/js/jquery.geoip.js'} {footer_script} @@ -126,29 +128,43 @@ function uidFromCell(cell){ $(document).ready( function(){ $("#rateTable").on( "click", ".del", function(e) { e.preventDefault(); - if (!confirm('{'Are you sure?'|@translate|@escape:'javascript'}')) - return; - var cell = e.target.parentNode, - tr = cell; - while ( tr.nodeName != "TR") tr = tr.parentNode; - tr = jQuery(tr).fadeTo(1000, 0.4); - - var data=uidFromCell(cell); - - (new PwgWS('{$ROOT_URL|@escape:javascript}')).callService( - 'pwg.rates.delete', { user_id:data.uid, anonymous_id:data.aid}, - { - method: 'POST', - onFailure: function(num, text) { tr.stop(); tr.fadeTo(0,1); alert(num + " " + text); }, - onSuccess: function(result){ - if (result) - oTable.row(tr[0]).remove().draw(); - else - alert(result); + const title_msg = '{'Are you sure you want to delete the ratings of the user "%s"?'|@translate|@escape:'javascript'}'; + const confirm_msg = '{"Yes, I am sure"|@translate}'; + const cancel_msg = "{"No, I have changed my mind"|@translate}"; + let usr_name = $(this).closest("tr").find(".usr").html(); + $.confirm({ + title: title_msg.replace("%s", usr_name), + buttons: { + confirm: { + text: confirm_msg, + btnClass: 'btn-red', + action: function () { + var cell = e.target.parentNode, + tr = cell; + while ( tr.nodeName != "TR") tr = tr.parentNode; + tr = jQuery(tr).fadeTo(1000, 0.4); + var data=uidFromCell(cell); + (new PwgWS('{$ROOT_URL|@escape:javascript}')).callService( + 'pwg.rates.delete', { user_id:data.uid, anonymous_id:data.aid}, + { + method: 'POST', + onFailure: function(num, text) { tr.stop(); tr.fadeTo(0,1); alert(num + " " + text); }, + onSuccess: function(result){ + if (result) + oTable.row(tr[0]).remove().draw(); + else + alert(result); + } + } + ); + } + }, + cancel: { + text: cancel_msg } - } - ); - + }, + ...jConfirm_confirm_options + }); }); }); diff --git a/admin/themes/default/template/site_manager.tpl b/admin/themes/default/template/site_manager.tpl index 242906027..674e25e33 100644 --- a/admin/themes/default/template/site_manager.tpl +++ b/admin/themes/default/template/site_manager.tpl @@ -6,8 +6,21 @@ jQuery(document).ready(function(){ }); }); {/literal}{/footer_script} - - +{combine_script id='common' load='footer' path='admin/themes/default/js/common.js'} +{combine_script id='jquery.confirm' load='footer' require='jquery' path='themes/default/js/plugins/jquery-confirm.min.js'} +{combine_css path="themes/default/js/plugins/jquery-confirm.min.css"} +{footer_script} +const title_msg = '{'Are you sure you want to delete this site?'|@translate|@escape:'javascript'}'; +const confirm_msg = '{"Yes, I am sure"|@translate}'; +const cancel_msg = "{"No, I have changed my mind"|@translate}"; +$(".delete-site-button").each(function() { + $(this).pwg_jconfirm_follow_href({ + alert_title: title_msg, + alert_confirm: confirm_msg, + alert_cancel: cancel_msg + }); +}); +{/footer_script} {'Site manager'|@translate} @@ -34,8 +47,7 @@ jQuery(document).ready(function(){ [{'Synchronize'|@translate}] {if isset($site.U_DELETE)} - [{'delete'|@translate}] + [{'delete'|@translate}] {/if} {if not empty($site.plugin_links)} diff --git a/admin/themes/default/template/site_update.tpl b/admin/themes/default/template/site_update.tpl index 2b2ec3f96..7d4482939 100644 --- a/admin/themes/default/template/site_update.tpl +++ b/admin/themes/default/template/site_update.tpl @@ -1,8 +1,16 @@ +{footer_script} +$('#syncFiles label').click(function () { + if ($("input[value='files']:checked").val()) { + $("input[value='files']").closest("li").find("ul").show(); + } else { + $("input[value='files']").closest("li").find("ul").hide(); + } +}) -{include file='include/resize.inc.tpl'} +{/footer_script} - {'Database synchronization with files'|@translate}: {$SITE_URL} + {'Synchronize'|@translate}{$SITE_URL} {if isset($update_result)} @@ -60,13 +68,13 @@ - {'synchronize files structure with database'|@translate} + {'synchronize files structure with database'|@translate} {'nothing'|@translate} {'only directories'|@translate} {'directories + files'|@translate} - + {'display maximum informations (added albums and photos, deleted albums and photos)'|@translate} {'add new photos to caddie'|@translate} {'Who can see these photos?'|@translate} {html_options options=$introduction.privacy_level_options selected=$introduction.privacy_level_selected} @@ -76,7 +84,7 @@ - {'synchronize files metadata with database photos informations'|@translate} + {'synchronize files metadata with database photos informations'|@translate} {'Synchronize metadata'|@translate} ({$METADATA_LIST}) @@ -89,12 +97,12 @@ - {'Simulation'|@translate} + {'Simulation'|@translate} {'only perform a simulation (no change in database will be made)'|@translate} - {'reduce to single existing albums'|@translate} + {'reduce to single existing albums'|@translate} diff --git a/admin/themes/default/template/stats.tpl b/admin/themes/default/template/stats.tpl index 692a3a6c5..d97e5fe5a 100644 --- a/admin/themes/default/template/stats.tpl +++ b/admin/themes/default/template/stats.tpl @@ -1,25 +1,61 @@ +{footer_script} +var str_number_page_visited = "{'Page Visited'|@translate}"; +var str_number_page_visited_with_year = "{'Page Visited in %s'|@translate}"; +var str_tooltip_format = { + "years":"YYYY", + "months":"MMMM YYYY", + "days":"DD MMM", + "hours":"LT" +}; +var str_unit_format = { + "day":"dddd", + "month":"MMM YYYY" +} +var str_avg = "{'Average last 12 months'|@translate}" +var str_months = ["{'January'|@translate}", "{'February'|@translate}", "{'March'|@translate}", "{'April'|@translate}", "{'May'|@translate}", "{'June'|@translate}", "{'July'|@translate}", "{'August'|@translate}", "{'September'|@translate}", "{'Octobember'|@translate}", "{'November'|@translate}", "{'December'|@translate}"]; +moment.locale("{$langCode}"); +{/footer_script} + +{combine_script id='chart.js' load='footer' path='themes/default/js/plugins/Chart.min.js'} +{combine_css path="themes/default/js/plugins/Chart.min.css"} + +{combine_script id='moment-with-locales.js' path='themes/default/js/plugins/moment-with-locales.min.js'} + +{combine_script id='stats' load='footer' path='admin/themes/default/js/stats.js'} - {'History'|@translate} {$TABSHEET_TITLE} + {'History'|@translate} -{$L_STAT_TITLE} + + + + + + {'Compare mode'|@translate} + - - - {$PERIOD_LABEL} - {'Pages seen'|@translate} - - + + + + + {"Hour"|@translate} + + {"Day"|@translate} + + {"Month"|@translate} + + {"Year"|@translate} + + -{if not empty($statrows)} -{foreach from=$statrows item=row} - - {$row.VALUE} - {$row.PAGES} - - -{/foreach} -{/if} - - + + Your browser does not support the canvas element. + diff --git a/admin/themes/default/template/tags.tpl b/admin/themes/default/template/tags.tpl index 8d22e72f0..c82b6e000 100644 --- a/admin/themes/default/template/tags.tpl +++ b/admin/themes/default/template/tags.tpl @@ -1,336 +1,195 @@ -{combine_script id='common' load='footer' path='admin/themes/default/js/common.js'} -{include file='include/tag_selection.inc.tpl'} - -{html_style} -.showInfo { text-indent:5px; } -form fieldset p { margin-left:0; } -{/html_style} - -{footer_script require='jquery'} -/** - * Add tag - */ -jQuery("#addTag").click(function() { - jQuery("#addTagForm").toggle(); - jQuery("input[name=add_tag]").focus(); - return false; -}); - -jQuery("#addTagClose").click(function() { - jQuery("#addTagForm").hide(); - return false; -}); - -jQuery("#selectionMode").click(function() { - if (jQuery(this).hasClass("icon-check-empty")) { - jQuery("#selectionMode").removeClass("icon-check-empty").addClass("icon-check"); - jQuery('label.font-checkbox span').show(); - jQuery('ul.tagSelection a.showInfo').hide(); - jQuery('fieldset#action').show(); - jQuery('fieldset#selectTags legend').html("{'Tag selection'|translate|escape:javascript}"); - } - else { - jQuery("#selectionMode").removeClass("icon-check").addClass("icon-check-empty"); - jQuery('label.font-checkbox span').hide(); - jQuery('ul.tagSelection a.showInfo').show(); - jQuery('fieldset#action').hide(); - jQuery('fieldset#selectTags legend').html("{'Tags'|translate|escape:javascript}"); - } - return false; -}); - - -jQuery('.showInfo').tipTip({ - 'delay' : 0, - 'fadeIn' : 200, - 'fadeOut' : 200, - 'maxWidth':'300px', - 'keepAlive':true, - 'activation':'click' -}); - -function displayDeletionWarnings() { - jQuery(".warningDeletion").show(); - jQuery("input[name=destination_tag]:checked").parent("label").children(".warningDeletion").hide(); -} - -displayDeletionWarnings(); - -jQuery("#mergeTags label").click(function() { - displayDeletionWarnings(); -}); - -$("#searchInput").on("keydown", function(e) { - var $this = $(this), - timer = $this.data("timer"); - - if (timer) { - clearTimeout(timer); - } - - $this.data("timer", setTimeout(function() { - var val = $this.val(); - if (!val) { - $(".tagSelection>li").show(); - $("#filterIcon").css("visibility","hidden"); - } - else { - $("#filterIcon").css("visibility","visible"); - var regex = new RegExp( val.replace(/[\-\[\]{}()*+?.,\\\^$|#\s]/g, "\\$&"), "i" ); - $(".tagSelection>li").each(function() { - var $li = $(this), - text = $.trim( $("label", $li).text() ); - $li.toggle(regex.test(text)); - }); - } - - }, 300) ); - - if (e.keyCode == 13) { // Enter - e.preventDefault(); - } -}); - -jQuery('input[name="tags[]"]').click(function() { - var nbSelected = 0; - nbSelected = jQuery('input[name="tags[]"]').filter(':checked').length; - - if (nbSelected == 0) { - jQuery("#permitAction").hide(); - jQuery("#forbidAction").show(); - } - else { - jQuery("#permitAction").show(); - jQuery("#forbidAction").hide(); - } -}); - -jQuery("[id^=action_]").hide(); - -jQuery("select[name=selectAction]").change(function () { - jQuery("[id^=action_]").hide(); - - jQuery("#action_"+jQuery(this).prop("value")).show(); - - jQuery("#displayFormBlock").hide(); - jQuery("#applyActionBlock").hide(); - - if (jQuery(this).val() != -1 ) { - if (jQuery(this).val() == 'delete') { - jQuery("#applyActionBlock").show(); - jQuery("#applyAction").attr("name", jQuery(this).val()); - } - else { - jQuery("#displayForm").attr("name", jQuery(this).val()); - jQuery("#displayFormBlock").show(); - } - } - else { - } -}); - -jQuery("form").submit(function() { - if (jQuery("select[name=selectAction]").val() == "delete") { - if (!jQuery("input[name=confirm_deletion]").is(":checked")) { - jQuery("#action_delete .errors").show(); - return false; - } - } - - if (jQuery("select[name=selectAction]").val() == "merge") { - if (jQuery("ul.tagSelection input[type=checkbox]:checked").length < 2) { - alert("{'Select at least two tags for merging'|@translate}"); - return false; - } - } -}); - -jQuery("input[name=confirm_deletion]").change(function() { - jQuery("#action_delete .errors").hide(); -}); +{footer_script} +var pwg_token = "{$PWG_TOKEN}"; +var str_delete = '{'Delete tag "%s"?'|@translate}'; +var str_delete_tags = '{'Delete tags \{%s\}?'|@translate}'; +var str_yes_delete_confirmation = "{'Yes, delete'|@translate}"; +var str_no_delete_confirmation = "{"No, I have changed my mind"|@translate}"; +var str_tag_deleted = '{'Tag "%s" succesfully deleted'|@translate}'; +var str_tags_deleted = '{'Tags \{%s\} succesfully deleted'|@translate}'; +var str_already_exist = '{'Tag "%s" already exists'|@translate}'; +var str_tag_created = '{'Tag "%s" created'|@translate}'; +var str_tag_renamed = '{'Tag "%s1" renamed in "%s2"'|@translate}'; +var str_delete_orphan_tags = '{'Delete orphan tags ?'|@translate}'; +var str_orphan_tags = '{'You have %s1 orphan : %s2'|@translate}'; +var str_delete_them = '{'Delete them'|@translate}'; +var str_keep_them = '{'Keep them'|@translate}'; +var str_copy = '{' (copy)'|@translate}'; +var str_other_copy = '{' (copy %s)'|@translate}'; +var str_merged_into = '{'Tag(s) \{%s1\} succesfully merged into "%s2"'|@translate}'; +var str_and_others_tags = '{'and %s others'|@translate}'; +var str_others_tags_available = '{'%s other tags available...'|@translate}' +var str_number_photos = '{'%d photos'}' +var str_no_photos = '{'no photo'}' +var str_select_all_tag = '{'Select all %d tags'|@translate}'; +var str_clear_selection = '{'Clear Selection'|@translate}'; +var str_selection_done = '{'The %d tags on this page are selected'|@translate}'; +var str_tag_selected = '{'%d tag selected'|@translate}'; +var str_tags_found = '{'%d tags found'|@translate}'; +var str_tag_found = '{'%d tag found'|@translate}'; {/footer_script} +{combine_script id='common' load='footer' path='admin/themes/default/js/common.js'} +{combine_script id='jquery.confirm' load='footer' require='jquery' path='themes/default/js/plugins/jquery-confirm.min.js'} +{combine_css path="themes/default/js/plugins/jquery-confirm.min.css"} +{combine_css path="admin/themes/default/fontello/css/animation.css"} +{combine_script id='tiptip' load='header' path='themes/default/js/plugins/jquery.tipTip.minified.js'} +{combine_script id='tags' load='footer' path='admin/themes/default/js/tags.js'} + + + + + +{function name=tagContent} +{function tagContent} + {$tag_name} + + + + + {$tag_name} + {if !$has_image}{'no photo'|@translate}{else}{'%d photos'|@translate:$tag_count}{/if} + + {'View in gallery'|@translate} + {'Manage photos'|@translate} + {'Edit'|@translate} + {'Duplicate'|@translate} + {'Delete'|@translate} + + + + + + + + + + + + + +{/function} +{/function} - {'Manage tags'|@translate} + {'Tag Manager'|@translate} {$total} -{if !isset($EDIT_TAGS_LIST) and !isset($DUPLIC_TAGS_LIST) and !isset($MERGE_TAGS_LIST)} - - {'Add a tag'|translate} - {'Select tags'|translate} - + + + + + + {'Selection mode'|@translate} + - - + + - - {'Add a tag'|@translate} + {'No tags selected, no actions possible.'|@translate} - - {'New tag'|@translate} - - + + {'Your selection'|@translate} + + + + + {'Merge'|@translate} + {'Delete'|@translate} + - - - {'Cancel'|@translate} - - - -{/if} - - - - - {if isset($EDIT_TAGS_LIST)} - - {'Edit tags'|@translate} - - - - {'Current name'|@translate} - {'New name'|@translate} - - {foreach from=$tags item=tag} - - {$tag.NAME} - - - {/foreach} - - - - - - - - {/if} - - {if isset($DUPLIC_TAGS_LIST)} - - {'Edit tags'|@translate} - - - - {'Source tag'|@translate} - {'Name of the duplicate'|@translate} - - {foreach from=$tags item=tag} - - {$tag.NAME} - - - {/foreach} - - - - - - - - {/if} - - {if isset($MERGE_TAGS_LIST)} - - {'Merge tags'|@translate} - {'Select the destination tag'|@translate} - - - {foreach from=$tags item=tag name=tagloop} - {$tag.NAME} {'(this tag will be deleted)'|@translate} - {/foreach} - - - - - - - - - {/if} - -{if !isset($EDIT_TAGS_LIST) and !isset($DUPLIC_TAGS_LIST) and !isset($MERGE_TAGS_LIST)} - - - {'Tags'|@translate} - - {if count($all_tags)} - {'Search'|@translate} - {/if} - - - {foreach from=$all_tags item=tag} - - {capture name='showInfo'}{strip} - {$tag.name} ({$tag.counter|@translate_dec:'%d photo':'%d photos'}) - {'View in gallery'|@translate} | - {'Manage photos'|@translate} - {if !empty($tag.alt_names)}{$tag.alt_names}{/if} - {/strip}{/capture} - - - - - {$tag.name} - - - {/foreach} - - - - - - {'Action'|@translate} - {'No tag selected, no action possible.'|@translate} - - - - {'Choose an action'|@translate} - ------------------ - {'Edit selected tags'|@translate} - {'Duplicate selected tags'|@translate} - {'Merge selected tags'|@translate} - {'Delete selected tags'|@translate} -{if !empty($tag_manager_plugin_actions)} - {foreach from=$tag_manager_plugin_actions item=action} - {$action.NAME} - {/foreach} -{/if} + + {'Choose which tag to merge these tags into'|@translate} + {'The other tags will be removed'|@translate} + + + + Confirm merge + Cancel + - - - - - - - {'Are you sure?'|@translate} - - we really need you to confirm - - + + -{* plugins *} -{if !empty($tag_manage_plugin_actions)} - {foreach from=$element_set_groupe_plugins_actions item=action} - - {if !empty($action.CONTENT)}{$action.CONTENT}{/if} - + + + + + + + + + + + {'Add a tag'|@translate} + + + + + + + + + {'Select'|@translate} + {'All'|@translate} + {'None'|@translate} + {'Invert'|@translate} + + {if $warning_tags != ""} + {$warning_tags} + {/if} + {$message_tags} + + + + + + + + + + + + {foreach from=$first_tags item=tag} + + {tagContent + tag_name = $tag.name + tag_U_VIEW = 'index.php?/tags/%s-%s'|@sprintf:$tag['id']:$tag['url_name'] + tag_U_EDIT = 'admin.php?page=batch_manager&filter=tag-%s'|@sprintf:$tag['id'] + has_image = ($tag.counter > 0) + tag_count = $tag.counter + } + {/foreach} -{/if} - - {'Display form'|translate} - + + {'No tag found'|@translate} + + + {'Display'|@translate} + 100 + 200 + 500 + 1000 + - - - {'Apply action'|translate} {* icon-trash because the only action is deletion *} - - - - {* #permitAction *} - -{/if} + + + + + + + + + + + - + + {tagContent + tag_name='%name%' + tag_U_VIEW='%U_VIEW%' + tag_U_EDIT='%U_EDIT%' + has_image=false + tag_count='%count%' + } + \ No newline at end of file diff --git a/admin/themes/default/template/themes_installed.tpl b/admin/themes/default/template/themes_installed.tpl index 1c44f63ed..86319ec79 100644 --- a/admin/themes/default/template/themes_installed.tpl +++ b/admin/themes/default/template/themes_installed.tpl @@ -1,18 +1,65 @@ {include file='include/colorbox.inc.tpl'} +{combine_script id='common' load='footer' path='admin/themes/default/js/common.js'} +{combine_script id='jquery.confirm' load='footer' require='jquery' path='themes/default/js/plugins/jquery-confirm.min.js'} +{combine_css path="themes/default/js/plugins/jquery-confirm.min.css"} +{footer_script} +const title_msg = '{'Are you sure you want to delete this theme?'|@translate|@escape:'javascript'}'; +const confirm_msg = '{"Yes, I am sure"|@translate}'; +const cancel_msg = "{"No, I have changed my mind"|@translate}"; +$(".delete-theme-button").each(function() { + let theme_name = $(this).closest(".themeBox").find(".themeName").attr("title"); + let title = '{'Are you sure you want to delete the theme "%s"?'|@translate|@escape:'javascript'}'; + $(this).pwg_jconfirm_follow_href({ + alert_title: title.replace("%s", theme_name), + alert_confirm: confirm_msg, + alert_cancel: cancel_msg + }); +}); +{/footer_script} + {footer_script}{literal} jQuery(document).ready(function() { $("a.preview-box").colorbox(); - jQuery('.showInfo').tipTip({ - 'delay' : 0, - 'fadeIn' : 200, - 'fadeOut' : 200, - 'maxWidth':'300px', - 'keepAlive':true, - 'activation':'click' + $(document).mouseup(function (e) { + e.stopPropagation(); + if (!$(event.target).hasClass('showInfo')) { + $('.showInfo-dropdown').fadeOut(); + } }); + }); + +$(window).bind("load", function() { + $('.themeBox').each(function() { + + let box = $(this); + box.find('.showInfo').on('click', function() { + let dropdown = box.find('.showInfo-dropdown'); + $('.showInfo-dropdown').each(function() { + if ($(this) !== dropdown) { + $(this).fadeOut(); + } + }) + box.find('.showInfo-dropdown').fadeToggle(); + }); + + let screenImage = $(this).find(".preview-box img"); + let imageW = screenImage.innerWidth(); + let imageH = screenImage.innerHeight(); + let size = $(this).find(".preview-box").innerWidth(); + + if (imageW > imageH) { + screenImage.css('height', size+'px'); + screenImage.css('width', (imageW * size / imageH)+'px'); + } else { + screenImage.css('width', size+'px'); + screenImage.css('heigth', (imageH * size / imageW)+'px'); + } + }) +}) + {/literal}{/footer_script} @@ -33,9 +80,9 @@ jQuery(document).ready(function() { {if $theme.STATE == 'active'} - {'Active Themes'|@translate} + {'Active Themes'|@translate} {else} - {'Inactive Themes'|@translate} + {'Inactive Themes'|@translate} {/if} @@ -56,40 +103,49 @@ jQuery(document).ready(function() { {/if} - - {$theme.NAME} {if $theme.IS_DEFAULT}({'default'|@translate}){/if} {if $theme.IS_MOBILE}({'Mobile'|@translate}){/if} - - + + {$theme.NAME} {if $theme.IS_DEFAULT}({'default'|@translate}){/if} {if $theme.IS_MOBILE}({'Mobile'|@translate}){/if} + + + + + {if !empty($author)} + {'By %s'|@translate:$author} | + {/if} + {'Version'|@translate} {$version} + + + {$theme.DESC|@escape:'html'} + + {if $theme.STATE != "active"} + {if $theme.DELETABLE} + {'Delete'|@translate} + {else} + {'Delete'|@translate} + {/if} + {/if} + {if $theme.DEACTIVABLE} + {'Deactivate'|@translate} + {/if} + - {if $theme.STATE == 'active'} - {if $theme.DEACTIVABLE} - {'Deactivate'|@translate} - {else} - {'Deactivate'|@translate} - {/if} - - {if not $theme.IS_DEFAULT} - | {'Default'|@translate} - {/if} {if $theme.ADMIN_URI} - {'Configuration'|@translate} + {'Configuration'|@translate} + {/if} + {if not $theme.IS_DEFAULT} + {'Set as default'|@translate} + {else} + {'Set as default'|@translate} {/if} {else} {if $theme.ACTIVABLE} - {'Activate'|@translate} + {'Activate'|@translate} {else} - {'Activate'|@translate} - {/if} - | - {if $theme.DELETABLE} - {'Delete'|@translate} - {else} - {'Delete'|@translate} + {'Activate'|@translate} {/if} {/if} - diff --git a/admin/themes/default/template/themes_new.tpl b/admin/themes/default/template/themes_new.tpl index d897deabb..b15df45ab 100644 --- a/admin/themes/default/template/themes_new.tpl +++ b/admin/themes/default/template/themes_new.tpl @@ -1,8 +1,23 @@ {include file='include/colorbox.inc.tpl'} {footer_script}{literal} -jQuery(document).ready(function() { - $("a.preview-box").colorbox(); -}); + +$(window).bind("load", function() { + $('.themeBox').each(function() { + + let screenImage = $(this).find(".preview-box img"); + let imageW = screenImage.innerWidth(); + let imageH = screenImage.innerHeight(); + let size = $(this).find(".preview-box").innerWidth(); + + if (imageW > imageH) { + screenImage.css('height', size+'px'); + screenImage.css('width', (imageW * size / imageH)+'px'); + } else { + screenImage.css('width', size+'px'); + screenImage.css('heigth', (imageH * size / imageW)+'px'); + } + }) +}) {/literal}{/footer_script} {'Add New Theme'|@translate} @@ -11,11 +26,11 @@ jQuery(document).ready(function() { {if not empty($new_themes)} {foreach from=$new_themes item=theme name=themes_loop} - - {$theme.name} - - {'Install'|@translate} - + + + {$theme.name} + {'Install'|@translate} + {/foreach} {else} diff --git a/admin/themes/default/template/updates_ext.tpl b/admin/themes/default/template/updates_ext.tpl index 7d65c254a..a4b1cb52a 100644 --- a/admin/themes/default/template/updates_ext.tpl +++ b/admin/themes/default/template/updates_ext.tpl @@ -21,12 +21,10 @@ var queuedManager = $.manageAjax.create('queued', { }); function updateAll() { - if (confirm(confirmMsg)) { - jQuery('.updateExtension').each( function() { - if (jQuery(this).parents('div').css('display') == 'block') - jQuery(this).click(); - }); - } + jQuery('.updateExtension').each( function() { + if (jQuery(this).parents('div').css('display') == 'block') + jQuery(this).click(); + }); }; function ignoreAll() { @@ -129,8 +127,9 @@ function autoupdate_bar_toggle(i) { jQuery(document).ready(function() { jQuery("td[id^='desc_'], p[id^='revdesc_']").click(function() { id = this.id.split('_'); - jQuery("#revdesc_"+id[1]).toggle('blind'); + jQuery("#revdesc_"+id[1]).toggle(); jQuery(".button_"+id[1]).toggle(); + jQuery("#revdesc_"+id[1]).closest('tr').toggle(); return false; }); }); @@ -138,13 +137,41 @@ jQuery(document).ready(function() { checkFieldsets(); {/literal} {/footer_script} +{combine_script id='common' load='footer' path='admin/themes/default/js/common.js'} +{combine_script id='jquery.confirm' load='footer' require='jquery' path='themes/default/js/plugins/jquery-confirm.min.js'} +{combine_css path="themes/default/js/plugins/jquery-confirm.min.css"} +{footer_script} + +const are_you_sure_msg = '{'Are you sure?'|@translate|@escape:'javascript'}'; +const confirm_msg = '{"Yes, I am sure"|@translate}'; +const cancel_msg = "{"No, I have changed my mind"|@translate}"; +$("#update_all").click(function() { + const title_msg = "{'Are you sure you want to update all extensions?'|@translate}"; + $.confirm({ + title: title_msg, + buttons: { + confirm: { + text: confirm_msg, + btnClass: 'btn-red', + action: function () { + updateAll(); + } + }, + cancel: { + text: cancel_msg + } + }, + ...jConfirm_confirm_options + }); +}) +{/footer_script} {'Updates'|@translate} - + @@ -183,7 +210,7 @@ checkFieldsets(); | {'By %s'|@translate:$plugin.AUTHOR} - + {$plugin.REV_DESC|@htmlspecialchars|@nl2br} @@ -213,7 +240,7 @@ checkFieldsets(); | {'Ignore this update'|@translate} - + {'Version'|@translate} {$theme.CURRENT_VERSION} @@ -267,7 +294,7 @@ checkFieldsets(); | {'By %s'|@translate:$language.AUTHOR} - + {$language.REV_DESC|@htmlspecialchars|@nl2br} diff --git a/admin/themes/default/template/updates_pwg.tpl b/admin/themes/default/template/updates_pwg.tpl index 8205d9f25..b62f9b271 100644 --- a/admin/themes/default/template/updates_pwg.tpl +++ b/admin/themes/default/template/updates_pwg.tpl @@ -19,10 +19,44 @@ form { width: 750px; } fieldset { padding-bottom: 30px; } p, form p { text-align: left; margin-left:20px; } li { margin: 5px; } + +.badge-release { + padding:5px 10px; + border-radius: 5px; +} + +a.badge-release:hover { + text-decoration:none; + color: currentColor; +} + +.goto-update-page { + padding:5px 10px; + font-weight:bold; +} + +.goto-update-page:hover { + text-decoration:none; +} + +.update-recommendation { + margin-top:30px; +} + +p.release .errors {margin:0} {/literal} {/html_head} +{if isset($MINOR_RELEASE_PHP_REQUIRED) and isset($MAJOR_RELEASE_PHP_REQUIRED)} + + + + {'Please upgrade your PHP version before any update.'|translate} + + +{/if} + {'Updates'|@translate} @@ -38,29 +72,59 @@ li { margin: 5px; } {/if} {if $STEP == 1} -{'Two updates are available'|@translate}: - - - {'Update to Piwigo %s'|@translate:$MINOR_VERSION}: {'This is a minor update, with only bug corrections.'|@translate} - {'Update to Piwigo %s'|@translate:$MAJOR_VERSION}: {'This is a major update, with new exciting features.'|@translate:$RELEASE_URL} {'Some themes and plugins may be not available yet.'|@translate} - + + {'Two updates are available'|@translate} + + {$MINOR_VERSION} + {'This is a minor update, with only bug corrections.'|@translate} +{if isset($MINOR_RELEASE_PHP_REQUIRED)} + {'Requires PHP %s'|translate:$MINOR_RELEASE_PHP_REQUIRED} +{else} + {'Update to Piwigo %s'|@translate:$MINOR_VERSION} +{/if} -{'You can update to Piwigo %s directly, without upgrading to Piwigo %s (recommended).'|@translate:$MAJOR_VERSION:$MINOR_VERSION} + + + {$MAJOR_VERSION} + {'This is a major update, with new exciting features.'|translate:$MAJOR_RELEASE_URL} + {'Some themes and plugins may be not available yet.'|translate} +{if isset($MAJOR_RELEASE_PHP_REQUIRED)} + {'Requires PHP %s'|translate:$MAJOR_RELEASE_PHP_REQUIRED} +{else} + {'Update to Piwigo %s'|@translate:$MAJOR_VERSION} +{/if} + + + + {'You can update to Piwigo %s directly, without upgrading to Piwigo %s (recommended).'|@translate:$MAJOR_VERSION:$MINOR_VERSION} + + {/if} {if $STEP == 2} + + {$MINOR_VERSION} + {'A new version of Piwigo is available.'|@translate} {'This is a minor update, with only bug corrections.'|@translate} - + + +{if isset($MINOR_RELEASE_PHP_REQUIRED)} + {'Requires PHP %s'|translate:$MINOR_RELEASE_PHP_REQUIRED} +{/if} + {'Update in progress...'|@translate} {/if} {if $STEP == 3} + + {$MAJOR_VERSION} + {'A new version of Piwigo is available.'|@translate} {'This is a major update, with new exciting features.'|@translate:$RELEASE_URL} {'Some themes and plugins may be not available yet.'|@translate} @@ -69,14 +133,17 @@ li { margin: 5px; } {counter assign=i} - {'Dump Database'|@translate} - {'Include history data (Warning: server memory limit may be exceeded)'|@translate} - + {'Backup'|@translate} + + {'Always have a backup of your database and files.'|translate} + {'The best is to have them made automatically on a regular basis.'|translate} + {'If anything bad happens during the update, you would be able to restore a backup.'|translate} + {counter assign=i} - {'Update to Piwigo %s'|@translate:$UPGRADE_TO} + {'Update to Piwigo %s'|@translate:$UPGRADE_TO} {if !empty($missing.plugins)} {'Following plugins may not be compatible with the new version of Piwigo:'|@translate} {foreach from=$missing.plugins item=plugin}{$plugin.name}{/foreach} @@ -89,7 +156,10 @@ li { margin: 5px; } {if !empty($missing.plugins) or !empty($missing.themes)} {'I decide to update anyway'|@translate} {/if} - + +{if isset($MAJOR_RELEASE_PHP_REQUIRED)} + {'Requires PHP %s'|translate:$MAJOR_RELEASE_PHP_REQUIRED} +{/if} {'Update in progress...'|@translate} diff --git a/admin/themes/default/template/user_list.tpl b/admin/themes/default/template/user_list.tpl index 79abbe985..0d5569b5c 100644 --- a/admin/themes/default/template/user_list.tpl +++ b/admin/themes/default/template/user_list.tpl @@ -12,6 +12,9 @@ {combine_script id='jquery.ui.slider' require='jquery.ui' load='footer' path='themes/default/js/ui/minified/jquery.ui.slider.min.js'} {combine_css path="themes/default/js/ui/theme/jquery.ui.slider.css"} +{combine_script id='jquery.confirm' load='footer' require='jquery' path='themes/default/js/plugins/jquery-confirm.min.js'} +{combine_css path="themes/default/js/plugins/jquery-confirm.min.css"} + {footer_script} var selectedMessage_pattern = "{'%d of %d users selected'|translate|escape:javascript}"; var selectedMessage_none = "{'No user selected of %d users'|translate|escape:javascript}"; @@ -22,8 +25,10 @@ var registeredOn_pattern = "{'Registered on %s, %s.'|translate|escape:javascript var lastVisit_pattern = "{'Last visit on %s, %s.'|translate|escape:javascript}"; var missingConfirm = "{'You need to confirm deletion'|translate|escape:javascript}"; var missingUsername = "{'Please, enter a login'|translate|escape:javascript}"; +let title_msg = '{'Are you sure you want to delete the user "%s"?'|@translate|escape:'javascript'}'; -var allUsers = [{$all_users}]; +var filteredUsers = []; +var nb_all_users = 0; var selection = []; var pwg_token = "{$PWG_TOKEN}"; @@ -31,6 +36,11 @@ var protectedUsers = [{$protected_users}]; var passwordProtectedUsers = [{$password_protected_users}]; var guestUser = {$guest_user}; + +const are_you_sure_msg = '{'Are you sure?'|@translate|@escape:'javascript'}'; +const confirm_msg = '{'Yes, I am sure'|@translate|@escape}'; +const cancel_msg = '{'No, I have changed my mind'|@translate|@escape}'; + var truefalse = { 'true':"{'Yes'|translate}", 'false':"{'No'|translate}", @@ -101,7 +111,7 @@ jQuery(document).ready(function() { jQuery("#addUserForm input[type=text], #addUserForm input[type=password]").val(""); var new_user = data.result.users[0]; - allUsers.push(parseInt(new_user.id)); + nb_all_users += 1; jQuery("#showAddUser .infos").html(sprintf(newUser_pattern, new_user.username)).show(); checkSelection(); @@ -190,7 +200,6 @@ jQuery(document).ready(function() { /* Formating function for row details */ function fnFormatDetails(oTable, nTr) { var userId = oTable.api().row(nTr).data()[0]; - console.log("userId = "+userId); var sOut = null; jQuery.ajax({ @@ -287,7 +296,7 @@ jQuery(document).ready(function() { var template = _.template( jQuery("script.userDetails").html() - ); + ); jQuery("#user"+userId).html(template(user)); @@ -479,36 +488,44 @@ jQuery(document).on('click', '.close-user-details', function(e) { }); /* delete user */ - jQuery(document).on('click', '.userDelete a', function() { - if (!confirm("{/literal}{'Are you sure?'|translate|escape:javascript}{literal}")) { - return false; - } - + + $(document).on('click', '.userDelete a', function () { var userId = jQuery(this).data('user_id'); var username = jQuery('#user'+userId+' .username').html(); - - jQuery.ajax({ - url: "ws.php?format=json&method=pwg.users.delete", - type:"POST", - data: { - user_id:userId, - pwg_token:pwg_token + $.confirm({ + title: title_msg.replace('%s', username), + buttons: { + confirm: { + text: confirm_msg, + btnClass: 'btn-red', + action: function () { + jQuery.ajax({ + url: "ws.php?format=json&method=pwg.users.delete", + type:"POST", + data: { + user_id:userId, + pwg_token:pwg_token + }, + beforeSend: function() { + jQuery('#user'+userId+' .userDelete .loading').show(); + }, + success:function(data) { + jQuery('.user_form_popin').colorbox.close(); + jQuery('#showAddUser .infos').html('✔ User '+username+' deleted').show(); + }, + error:function(XMLHttpRequest, textStatus, errorThrows) { + jQuery('#user'+userId+' .userDelete .loading').hide(); + } + }) + } + }, + cancel: { + text: cancel_msg + } }, - beforeSend: function() { - jQuery('#user'+userId+' .userDelete .loading').show(); - }, - success:function(data) { - jQuery('.user_form_popin').colorbox.close(); - jQuery('#showAddUser .infos').html('✔ User '+username+' deleted').show(); - }, - error:function(XMLHttpRequest, textStatus, errorThrows) { - jQuery('#user'+userId+' .userDelete .loading').hide(); - } + ...jConfirm_confirm_options }); - - return false; }); - jQuery(document).on('click', '.userProperties input[type=submit]', function() { var userId = jQuery(this).data('user_id'); @@ -615,8 +632,17 @@ jQuery(document).on('click', '.close-user-details', function(e) { processing: true, serverSide: true, serverMethod: "POST", - ajaxSource: "admin/user_list_backend.php", + ajax: { + url: "admin/user_list_backend.php", + type: "POST", + data: { + pwg_token: pwg_token + } + }, pagingType: "simple", +{/literal}{if (isset($filter_group))}{literal} + "oSearch": {"sSearch": "group:{/literal}{$filter_group}{literal}"}, +{/literal}{/if}{literal} language: { processing: "{/literal}{'Loading...'|translate|escape:'javascript'}{literal}", lengthMenu: sprintf("{/literal}{'Show %s users'|translate|escape:'javascript'}{literal}", '_MENU_'), @@ -634,10 +660,12 @@ jQuery(document).on('click', '.close-user-details', function(e) { } }, "drawCallback": function( oSettings ) { + nb_all_users = parseInt(oTable.api().ajax.json().iTotalRecords); jQuery("#userList input[type=checkbox]").each(function() { var user_id = jQuery(this).data("user_id"); jQuery(this).prop('checked', (selection.indexOf(user_id) != -1)); }); + checkSelection(); }, columns: aoColumns }); @@ -648,7 +676,7 @@ jQuery(document).on('click', '.close-user-details', function(e) { function checkSelection() { if (selection.length > 0) { jQuery("#forbidAction").hide(); - jQuery("#permitAction").show(); + jQuery("#permitActionUserList").show(); jQuery("#applyOnDetails").text( sprintf( @@ -657,11 +685,11 @@ jQuery(document).on('click', '.close-user-details', function(e) { ) ); - if (selection.length == allUsers.length) { + if (selection.length == nb_all_users) { jQuery("#selectedMessage").text( sprintf( selectedMessage_all, - allUsers.length + nb_all_users ) ); } @@ -670,19 +698,19 @@ jQuery(document).on('click', '.close-user-details', function(e) { sprintf( selectedMessage_pattern, selection.length, - allUsers.length + nb_all_users ) ); } } else { jQuery("#forbidAction").show(); - jQuery("#permitAction").hide(); + jQuery("#permitActionUserList").hide(); jQuery("#selectedMessage").text( sprintf( selectedMessage_none, - allUsers.length + nb_all_users ) ); } @@ -701,9 +729,50 @@ jQuery(document).on('click', '.close-user-details', function(e) { checkSelection(); }); + + jQuery("#selectSet").click(function () { + let api = oTable.api(); + let info = api.page.info(); + let search_term = api.search(); + jQuery.ajax({ + url: "admin/user_list_backend.php", + type:"POST", + data: { + search: { + value: search_term, + regex: false + }, + start: info.start, + length: info.length, + get_set_uids: true + }, + beforeSend: function() { + $("#checkActions .loading").show(); + }, + success:function(data) { + data = jQuery.parseJSON(data); + filtered_users = data.filtered_uids.map(x=>+x); + selection = filtered_users; + checkSelection(); + $("#checkActions .loading").hide(); + }, + error:function(XMLHttpRequest, textStatus, errorThrows) { + $("#checkActions .loading").hide(); + } + }); + jQuery("#userList input[type=checkbox]").prop('checked', true); + checkSelection(); + return false; + }); + - jQuery("#selectAll").click(function () { - selection = allUsers; + jQuery("#selectAllPage").click(function () { + let tab = [] + let sel = $("tr td").find("label").each(function() { + let val = $(this).find("input").attr('data-user_id'); + tab.push(parseInt(val)); + }); + selection = tab; jQuery("#userList input[type=checkbox]").prop('checked', true); checkSelection(); return false; @@ -717,20 +786,16 @@ jQuery(document).on('click', '.close-user-details', function(e) { }); jQuery("#selectInvert").click(function () { - var newSelection = []; - for(var i in allUsers) - { - if (selection.indexOf(allUsers[i]) == -1) { - newSelection.push(allUsers[i]); + let tab = [] + let sel = $("tr td").find("label").each(function() { + let val = parseInt($(this).find("input").attr('data-user_id')); + $(this).find("input[type=checkbox]").prop('checked', false); + if (selection.includes(val) == false) { + tab.push(val); + $(this).find("input[type=checkbox]").prop('checked', true); } - } - selection = newSelection; - - jQuery("#userList input[type=checkbox]").each(function() { - var user_id = jQuery(this).data("user_id"); - jQuery(this).prop('checked', (selection.indexOf(user_id) != -1)); }); - + selection = tab; checkSelection(); return false; }); @@ -755,7 +820,7 @@ jQuery(document).on('click', '.close-user-details', function(e) { } }); - jQuery("#permitAction input, #permitAction select").click(function() { + jQuery("#permitActionUserList input, #permitActionUserList select").click(function() { jQuery("#applyActionBlock .infos").hide(); }); @@ -831,15 +896,7 @@ jQuery(document).on('click', '.close-user-details', function(e) { jQuery("#applyActionBlock .infos").show(); if (action == 'delete') { - var allUsers_new = []; - for(var i in allUsers) - { - if (selection.indexOf(allUsers[i]) == -1) { - allUsers_new.push(allUsers[i]); - } - } - allUsers = allUsers_new; - console.log('allUsers_new.length = '+allUsers_new.length); + nb_all_users -= 1; selection = []; checkSelection(); } @@ -851,7 +908,6 @@ jQuery(document).on('click', '.close-user-details', function(e) { return false; }); - }); {/literal}{/footer_script} @@ -883,7 +939,7 @@ span.infos, span.errors {background-image:none; padding:2px 5px; margin:0;border .recent_period_infos {margin-left:10px;} .nb_image_page, .recent_period {width:340px;margin-top:5px;} #action_recent_period .recent_period {display:inline-block;} -.checkActions {padding:0 1em;} +#checkActions {padding:0 1em;} {/literal}{/html_style} @@ -953,20 +1009,23 @@ span.infos, span.errors {background-image:none; padding:2px 5px; margin:0;border - - {'Select:'|@translate} - {'All'|@translate}, - {'None'|@translate}, - {'Invert'|@translate} + + {'Selection'|@translate} + + {'The whole page'|@translate} + {'The whole set'|@translate} + {'None'|@translate} + {'Invert'|@translate} - - + + + {'Action'|@translate} - {'No user selected, no action possible.'|@translate} - + {'No users selected, no actions possible.'|@translate} + {'Choose an action'|@translate} @@ -1075,7 +1134,7 @@ span.infos, span.errors {background-image:none; padding:2px 5px; margin:0;border ✔ {'Users modified'|translate} - {* #permitAction *} + {* #permitActionUserList *} diff --git a/admin/themes/default/template/user_perm.tpl b/admin/themes/default/template/user_perm.tpl index 031ab7000..c7bdc03dd 100644 --- a/admin/themes/default/template/user_perm.tpl +++ b/admin/themes/default/template/user_perm.tpl @@ -18,5 +18,6 @@ {$DOUBLE_SELECT} + diff --git a/admin/themes/default/theme.css b/admin/themes/default/theme.css index 33b270c43..09b68f377 100644 --- a/admin/themes/default/theme.css +++ b/admin/themes/default/theme.css @@ -1,11 +1,10 @@ /* content.css */ [class*="icon-"]:before { text-decoration:none !important; } -.showInfo { font-size:15px;cursor:pointer;line-height:15px; } - +.showInfo { font-size:15px;cursor:pointer;line-height:15px; display: flex; align-items: center;} +.showInfo:hover { text-decoration: none;} /* .Content is on every pages so it is common and it will no longer be a specific css */ .content h2 {margin: 0; padding: 5px 0.5em 5px 0.5em; text-align: right; font-size: 120%;} -.content .navigationBar { margin: 10px 0; text-align: center; } .content form { text-align: left; margin-left: 7px; margin-right: 9px;} .content dt { margin-bottom: 5px; font-style: italic; font-size: 110%; } @@ -90,11 +89,15 @@ UL.thumbnails INPUT { position: absolute; left: 2px; top: 2px; } -UL.thumbnails .levelIndicatorB { -display:block; position:absolute; z-index:100; padding:7px 0 0 2px; color:black; font-weight:bold; font-size:120%; -} UL.thumbnails .levelIndicatorF { -display:block; position:absolute; z-index:101; padding:8px 0 0 3px; color:white; font-weight:bold; font-size:120%; + display:block; + position:absolute; + bottom: 0; + text-shadow: 0px 0px 1px #000; + padding:0 0 2px 5px; + color:white; + font-weight:bold; + z-index: 10; } /* default-layout.css */ @@ -116,8 +119,11 @@ TABLE.table2 TR { TABLE.table2 THEAD TD { padding:7px 10px 3px 10px; } TABLE.table2 TR.throw { text-align: center; } -.sort { display:block; padding:8px 5px 5px 15px; text-align: left;} +.sort { display:block; padding:1em 2em 0 2em; text-align: left;} +.sort .icon-sort-number-up { + margin-left: 25px; +} .hour { white-space: pre; @@ -145,36 +151,176 @@ TABLE.plugins TR TD { padding: 4px 10px; } TABLE.languages TR TD { padding: 7px 20px; } -/* categoryOrdering */ -FORM#categoryOrdering .orderParams { - line-height:30px; - margin-bottom:10px; +/* Category List */ +.categoryContainer { + display: flex; + flex-wrap: wrap; + justify-content: center; } -SELECT.categoryList { - width: 100%; +.categoryBox, .addAlbum { + position: relative; + text-align: left; + height: 300px; + width: 220px; + margin: 15px; + border-radius: 10px; } -FORM#categoryOrdering p { - text-align: left; - /* margin-top: 1em; */ - /* margin-bottom: 1em; */ -} -UL.categoryUl { - list-style: none; - padding: 0; - margin: 1em; +.albumIcon { + height: 80px; + display: flex; + align-items: center; + justify-content: center; } -LI.categoryLi { -/* - width: 100%; -*/ - margin-bottom: 20px; - border-radius:5px; +.albumIcon span{ + font-size: 19px; + width: 27px; + padding: 10px; + border-radius: 30px; } +.albumTitle { + font-size: 16px; + padding: 0px 15px; + font-weight: bold; + overflow: hidden; + white-space: nowrap; + text-overflow: ellipsis; + text-align: center; +} +.albumInfos { + text-align: center; + font-weight: 600; + font-size: 14px; + margin-top: 10px; + display: block; +} + +.albumInfos p { + margin: 0; +} + +.albumActions { + position: absolute; + bottom: 5px; + flex-direction: column; + width: 90%; + overflow: hidden; + margin-left: 20px; + margin-bottom: 10px; + display: none; +} + +.categoryBox:hover .albumActions { + display: flex; +} + +.albumActions a, .albumActions span { + margin: 5px; + font-size: 14px; + text-transform: capitalize; + font-weight: bold; + transition: 0.2s ease; + white-space: nowrap; + text-overflow: ellipsis; + overflow: hidden; +} + +.albumActions a span, .albumActions span span{ + margin: 10px; +} + +.addAlbum { + display: flex; + flex-direction: column; + justify-content: space-around; + cursor: pointer; +} + +.addAlbum.input-mode { + cursor: auto; +} + +.addAlbum label { + margin: 0; + border-radius: 5px 5px 0 0; + padding: 2px; + position: absolute; + left: 16px; + font-size: 14px; + color: #3C3C3C; +} + +.addAlbumHead { + font-size: 16px; + display: flex; + flex-direction: column; + align-items: center; + margin-top: -10px; + transform: translateY(75px); + transition: 0.4s ease; + transition-delay: 0.4s; + padding: 110px 0px; +} + +.addAlbum.input-mode .addAlbumHead { + transition-delay: 0s; + padding: 0px; +} + +.addAlbumHead span { + font-size: 19px; + width: 27px; + height: 27px; + padding: 10px; + border-radius: 30px; + margin: 10px auto; +} + +.addAlbumHead p { + font-weight: 700; + margin: 0; +} + +.addAlbum form { + opacity: 0; + pointer-events: none; + transition: 0.4s ease; + transition-delay: 0s; +} + +.addAlbum form input { + margin: 10px; + padding: 10px; + display: inline-block; + width: 159px; + margin-top: 20px; + font-size: 15px; +} + +.addAlbum form input::placeholder { + color: rgb(206, 206, 206); +} + +.addAlbum button, .addAlbum a { + display: table; + margin: 10px auto; + font-weight: bold; +} + +.addAlbum.input-mode .addAlbumHead{ + transform: translateY(0px); +} + +.addAlbum.input-mode form { + opacity: 1; + pointer-events: all; + transition-delay: 0.4s; +} + /* menuOrdering */ FORM#menuOrdering { padding-left: 1em; @@ -209,46 +355,485 @@ LI.menuLi { padding: 12px 0; margin-bottom: 5px; } -/* */ -#catModify TABLE { width: auto; } +/* Cat modify */ + +#catHeader { + display: grid; + grid-template-columns: 25% 25% 25% 25%; + min-height: 200px; +} + +#catHeader .catThumbnail { + position: relative; + overflow: hidden; +} + +#catHeader .catThumbnail .thumbnailContainer { + width: 100%; + padding-top: 100%; +} + +#catHeader .albumThumbailImage, #catHeader .albumThumbnailRandom, #catHeader .albumThumbnailActions, #catHeader .albumThumbnailActionContainer, #catHeader .albumThumbnailNoPhoto{ + position: absolute; + top: 50%; + left: 50%; + transform: translate(-50%, -50%); +} + +#catHeader .albumThumbnailRandom, #catHeader .albumThumbnailNoPhoto { + height: 100%; + width: 100%; + background-color: #fafafa; + display: flex; + justify-content: center; + align-items: center; +} + +#catHeader .albumThumbnailRandom span, #catHeader .albumThumbnailNoPhoto span { + font-size: 100px; + opacity: 0.4; +} + +#catHeader .albumThumbnailActions { + width: 101%; + height: 100%; + background-color: #00000070; + opacity: 0; +} + +#catHeader .catThumbnail:hover .albumThumbnailActions { + opacity: 1; +} + +#catHeader .albumThumbnailActionContainer { + display: flex; + flex-direction: column; +} + +#catHeader .albumThumbnailActions a { + background-color: #ffffffbd; + margin: 10px; + padding: 10px 20px; + white-space: nowrap; + font-weight: bold; + color: #3C3C3C; + text-align: center; +} + +#catHeader .albumThumbnailActions a:hover { + color: #3C3C3C; + text-decoration: none; + background-color: #ff7700; +} + +#catHeader .catInfo, #catHeader .catAction { + border-right: 1px solid #00000017; +} + +#catHeader .catInfo { + display: flex; + justify-content: center; + padding: 10px +} + +#catHeader .catInfo .container{ + display: flex; + flex-direction: column; + align-items: baseline; + justify-content: space-between; + height: 100%; +} + +#catHeader .catInfo span { + padding: 10px; + border-radius: 20px; + font-weight: bold; +} + +#catHeader .catAction { + display: flex; + position: relative; + justify-content: center; + align-items: center; + overflow: hidden; +} + +#catHeader .catAction .container { + display: flex; + flex-direction: column; + justify-content: space-evenly; + align-items: baseline; + height: 100%; + padding-top: 30px; +} + +#catHeader .catAction strong{ + position: absolute; + top: 0; + color: #3C3C3C; + font-size: 16px; +} + +#catHeader .catAction a { + color: #888; + font-size: 14px; + white-space: nowrap; +} + +#catHeader .catAction a:hover { + color: #ff7700; + text-decoration: none; +} + +#catHeader .catAction a::before { + font-size: 20px; + margin-right: 10px; +} + +#catHeader .catLock { + position: relative; + display: flex; + justify-content: center; + align-items: center; +} + +#catHeader .catLock .container{ + position: relative; + height: 100%; +} + +#catHeader .catLock strong { + color: #3C3C3C; + font-size: 16px; + margin-bottom: 15px; + display: block; +} + +#catHeader .catLock .container > div { + margin-bottom: 40px; +} + +#catHeader .catLock > div .label { + font-size: 14px; +} + +#catHeader label[id=applytoSubAction] { + margin-top: 10px; + display: block; +} + +#catHeader .catLock .switch { + margin: 0 5px; +} + +#catModify input[type="text"], #catModify textarea{ + width: 98%; + background-color: #f8f8f8; + padding: 8px; + border-radius: 4px; + border-color: #DDD; + transition: ease 0.2s; + font-family: "Open Sans", "Lucida Grande",Verdana,Arial,"Bitstream Vera Sans",sans-serif; +} + +#catModify input[type="text"]:focus, #catModify textarea:focus{ + border-color: #888; +} + +#catModify button[type="submit"] { + margin: 13px; + font-size: 12px; + padding: 12px; + margin-left: 0; +} #catModify p { - line-height: 20px; - margin: 0 0 1.5em; - text-align: left; + margin-left: 0; } -#catModify p.albumThumbnailActions { - text-align:center; - white-space:nowrap; +/* Search bar */ + +.search-input{ + padding: 10px; + box-shadow: 0px 2px #00000024; + border: none; + background-color: #fafafa !important; + padding-left: 30px; + width: 200px; + margin: 4px; } -FIELDSET.elementEdit .thumb { - display: block; - float: right; - text-align: center; +.search-input:hover { + background-color: #f0f0f0 !important; } -TABLE.doubleSelect { - text-align: center; - margin: 0 auto; - width: 100%; +.search-info { + position: absolute; + left: -10px; + top: 50%; + transform: translate(-100%,-50%); + font-style: italic; } -TABLE.doubleSelect TD { - padding: 0 3px; - width: 50%; +.search-cancel { + display: none; + right: 5px; + top: 50%; + transform: translateY(-50%); + opacity: 0.4; + cursor: pointer; + position: absolute; + font-size: 18px; } -TABLE.doubleSelect SELECT.categoryList { - width: 100%; max-width: 100%; overflow-x: auto; +.search-cancel:hover { + opacity: 1; } -.statBar { - height: 10px; - background-color: #ff7700; - border: 1px solid #666; +.search-icon { + position: absolute; + top: 50%; + transform: translate(4px, -50%); + font-size: 18px; +} + +/* Dropdown */ + +.dropdown { + z-index: 100; + padding: 5px 0px; + border-radius: 10px; + background: linear-gradient(130deg, #ff7700 0%, #ffa744 100%); + color: white; + -moz-osx-font-smoothing: grayscale; +} + +.dropdown::after { + content: " "; + position: absolute; + bottom: 100%; + left: 51%; + margin-left: -5px; + border-width: 5px; + border-style: solid; + border-color: transparent transparent #ff7700 transparent; +} + +.dropdown-content { + position: relative; +} + +.dropdown-option { + white-space: nowrap; + display: block; + text-align: initial; + padding: 5px 10px; + padding-right: 10px; + font-size: 13px; + padding-right: 15px; + color: white; + font-weight: 600; + cursor: pointer; +} + +.dropdown-option-content { + white-space: nowrap; + display: block; + text-align: initial; + padding: 5px 10px; + padding-right: 10px; + font-size: 13px; + padding-right: 15px; + color: white; + font-weight: 600; + cursor: pointer; +} + +.dropdown-option:hover { + text-decoration: none; + color: white; + background-color: #00000012; +} + +.badge-number { + border-radius: 20px; + background-color: #777; + font-size: 16px; + margin-left: 10px; + font-weight: 700; + position: absolute; + transform: translateY(3px); + text-align: center; + color: #ccc; + padding: 0px 7px; +} + +/* Pagination */ + +.pagination-container { + height: 40px; + display: flex; + align-items: center; + justify-content: center; +} + +.pagination-arrow { + font-size: 14px; + cursor: pointer; + display: flex; + align-items: center; + margin: 5px; +} + +.pagination-arrow.rigth { + -moz-transform: scale(-1, 1); + -webkit-transform: scale(-1, 1); + -o-transform: scale(-1, 1); + -ms-transform: scale(-1, 1); + transform: scale(-1, 1); +} + +.pagination-arrow.unavailable { + opacity: 0.6; + pointer-events: none; + cursor: none; +} + +.pagination-item-container { + display: flex; + align-items: baseline; +} + +.pagination-item-container > *{ + margin: 5px; +} + +.pagination-item-container span { + font-size: 20px; + font-weight: bold; + opacity: 0.8; +} + +.pagination-item-container a { + font-size: 16px; + font-weight: bold; +} + +.pagination-item-container a.actual { + background-color: #FFA646; + border-radius: 15px; + pointer-events: none; + padding: 0px 7px; + color: #333 +} + +.pagination-per-page { + background-color: #f9f9f9; + border-radius: 10px; + display: flex; + font-size: 12px; + overflow: hidden; + font-weight: 700; + font-family: "Open Sans", "Lucida Grande",Verdana,Arial,"Bitstream Vera Sans",sans-serif; + height: min-content; +} + +.pagination-per-page * { + padding: 8px 9px; +} + +.pagination-per-page span { + padding-left: 17px; + color: #BBB; + font-weight: bold; +} + +.pagination-per-page a { + border: none; + color: #3A3A3A; +} + +.pagination-per-page a:hover { + background-color: #ffd2a1; + color: #666; + text-decoration: none; +} + +/* Waiting Message */ + +.waiting-message { + position: fixed; + right: 0px; + top: 0px; + margin: 10px; + z-index: 1000; + background-color: #FFBD4D; + color: white; + padding: 20px; + font-weight: bold; + border-radius: 34px; + transform: translateY(calc(-100% - 10px)); + transition: 0.5s ease; +} + +.waiting-message.visible { + transform: translateY(80%); +} + +/* Statistic Page */ + +.stat-legend-container { + display: inline-block; +} + +.stat-data-selector { + border-radius: 10px; + display: flex; + overflow: hidden; + font-weight: bold; +} + +.stat-data-selector label { + color: black; + padding: 10px; + background-color: #eee; + transition: 0.2s ease; +} + +.stat-data-selector label.unavailable { + color: gray; + background-color: #aaa; + cursor: default; + pointer-events: none; +} + +.stat-data-selector label:hover { + background-color: #ccc +} + +.stat-data-selector input:checked + label { + background-color: #FFA646; + color: white; + pointer-events: none; +} + +.stat-data-selector input{ + display: none; +} + +.stat-graph-container { + margin: auto; + position: relative; + width: calc(100% - 20px); + margin-top: 20px; + margin-bottom: 20px; +} + +.stat-compare-mode { + position: absolute; + right: 10px; + transform: translate(0, 10px); } .over{ @@ -317,7 +902,7 @@ BODY { text-align: left; font-size: 18px; float:left; - width: 50%; + width: calc(100% - 330px); white-space: nowrap; overflow: hidden; text-overflow: ellipsis; @@ -325,6 +910,10 @@ BODY { margin: 0 0 0 220px; } +.admin-head-username { + display: none; +} + #pwgHead A {color:#ccc;} #pwgHead A:hover {color:#fff} @@ -387,7 +976,7 @@ TEXTAREA.description { SELECT.categoryList { height: 20em; - width: auto; + width: 100%; } DIV.comment BLOCKQUOTE { @@ -491,14 +1080,18 @@ FORM.properties SPAN.property { } /* Dashboard */ +.intro-page-container { + display: grid; + grid-template-columns: 48% 48%; +} + .stat-boxes { - text-align:left; - margin:40px 10px; + text-align:center; } .stat-box { display:inline-block; - width:200px; + width:150px; margin:10px 10px 40px 10px; color:#3b3b3b; text-align: center; @@ -510,35 +1103,12 @@ div.stat-box { .stat-box i { display: inline-block; - background-color: #ffcfcf; - color: #ff5252; border-radius: 50%; - font-size: 37px; + font-size: 30px; padding: 20px; margin-bottom: 15px; } -.stat-box-yellow i { - color:#ffa744; - background-color: #ffe9cf; -} -.stat-box-red i { - background-color: #ffcfcf; - color: #ff5252; -} -.stat-box-purple i { - background-color: #e0daf4; - color: #896af3; -} -.stat-box-green i { - background-color: #d6ffcf; - color: #6ece5e; -} -.stat-box-blue i { - background-color: #cfebff; - color: #2883c3; -} - .stat-box .number, .stat-box .caption { display:block; font-size: 16px; @@ -555,13 +1125,281 @@ a.stat-box:hover { color:#777; } +.chart-title { + font-size: 18px; + text-align: left; + font-weight: bold; + margin-bottom: 20px; + color: #3b3b3b; + position: relative; +} + +.chart-title-infos { + font-size: 14px; + position: absolute; + right: 0; + bottom: 0; +} + +.activity-chart { + font-weight: bold; + font-size: 14px; + display: grid; + grid-template-columns: repeat(8, 5vw) ; + grid-template-rows: repeat(4, 5vw); +} + +.activity-chart .row-legend,.activity-chart .col-legend { + position: relative; +} + +.activity-chart .row-legend { + display: flex; +} + +.activity-chart .row-legend div{ + margin: auto; +} + +.activity-chart .col-legend { + line-height: 5vw; +} + +.activity-chart .row-legend:after { + content: ""; + border-top: 2px solid black; + opacity: 0.05; + position: absolute; + width: 700%; + transform: translate(6vw,2.5vw); +} + +.activity-chart .col-legend .line-vertical { + border-left: 2px solid black; + opacity: 0.05; + position: absolute; + height: 250%; + left: 50%; + bottom: 100%; +} + +.activity-chart span { + display: flex; + overflow: visible; + position: relative; +} + +.activity-chart span div{ + height: 0px; + width: 0px; + background-color: #ff5252; + opacity: 0.8; + display: block; + border-radius: 100%; + z-index: 100; + position: absolute; + top: 50%; + left: 50%; + transform: translate(-50%, -50%); + transition: ease 0.2s; +} + +.intro-charts .tooltip { + position: absolute; + display: none; + z-index: 102; + font-size: 12px; + font-weight: normal; + background-color: white; + padding: 10px; + box-shadow: 0px 0px 5px #acacac; + border-radius: 10px; + margin: 0px; + transition: ease 0.2s; +} + +.intro-charts .tooltip .tooltip-header { + margin-bottom: 10px; + display: flex; + justify-content: space-between; + font-size: 14px; +} + +.intro-charts .tooltip .tooltip-header span { + margin: 0px 5px +} + +.intro-charts .tooltip .tooltip-title { + font-weight: bold; + color: #3b3b3b; +} + +.intro-charts .tooltip .tooltip-date { + font-style: italic; +} + +.intro-charts .tooltip span:before { + width: 1.2em; + font-size: 15px; +} + +.intro-charts .tooltip .tooltip-details { + display: flex; + align-items: flex-start; +} + +.intro-charts .tooltip .tooltip-details-cont { + display: flex; + flex-direction: column; + align-items: flex-start; + margin: 0px 3px; +} + +.intro-charts .tooltip .tooltip-details-title { + font-weight: bold; + padding: 0px 5px; + margin-bottom: 8px; + border-radius: 15px; + background: none !important; +} + +.intro-charts .tooltip .tooltip-detail { + margin: 1px; + padding-left: calc(50% - 20px); +} + +.activity-chart .tooltip { + left: 50%; + top:45% +} + +.intro-charts .tooltip span{ + display: inline; + white-space: nowrap; +} + +.intro-charts .tooltip::after { + content: " "; + position: absolute; + bottom: 100%; + left: 51%; + margin-left: -5px; + border-width: 5px; + border-style: solid; + border-color: transparent transparent white transparent; +} + +.activity-chart span div:hover{ + padding: 0.5vw; +} + +.activity-chart span div:hover + .tooltip, .intro-charts .tooltip:hover{ + display: inline-grid; + opacity: 1; +} + +.activity-chart #week-1-legend ~ span div { + background-color: #2883c3; +} + +.activity-chart #week-2-legend ~ span div { + background-color: #896af3 ; +} + +.activity-chart #week-3-legend ~ span div { + background-color: #6ece5e ; +} + +.activity-chart #week-4-legend ~ span div { + background-color: #ffa744 ; +} + +.storage-chart { + border-radius: 5px; + width: 100%; + overflow: hidden; + position: relative; + height: 30px; + display: flex; + background-color: #e8e8e8; +} + +.storage-tooltips { + position: relative; +} + +.storage-chart span{ + opacity: 0.7; + transition: ease 0.2s; +} + +.storage-chart span p{ + font-weight: bold; + font-size: 16px; + color: black; + opacity: 0; + line-height: 0; + transition: ease 0.2s; + white-space: nowrap; +} + +.storage-chart span:hover{ + opacity: 1; +} + +.storage-chart span:hover .tooltip { + opacity: 1; + display: block; +} + +.storage-chart span:hover p{ + opacity: 0.4; +} + +.storage-chart-legend { + display: flex +} + +.storage-chart-legend div{ + padding: 10px; + display: flex; + align-items: center; + font-size: 14px; +} + +.storage-chart-legend div span{ + width: 15px; + height: 15px; + display: block; + margin: 5px; + opacity: 0.7; +} + +.storage-chart span:nth-child(1), .storage-chart-legend div:nth-child(1) span{ + background-color:#ffa744; +} + +.storage-chart span:nth-child(2), .storage-chart-legend div:nth-child(2) span{ + background-color:#6ece5e; +} + +.storage-chart span:nth-child(3), .storage-chart-legend div:nth-child(3) span{ + background-color:#896af3; +} + +.storage-chart span:nth-child(4), .storage-chart-legend div:nth-child(4) span{ + background-color:#2883c3; +} + +.storage-chart span:nth-child(5), .storage-chart-legend div:nth-child(5) span{ + background-color:#ff5252; +} + #configContent fieldset { border:none; padding-left:20px; } -#configContent fieldset:not(.no-border) { - border-top:1px solid #bbb; -} + #configContent legend { padding-left:0; margin-left:-20px; @@ -709,8 +1547,8 @@ html, body {height:100; min-height: 100%; margin:0; padding:0;} margin-left:6px; } -#adminHome A {color:#aaa; display:block; font-size:1.1em; font-weight:bold; text-decoration:none;} -#adminHome A:hover {color:#fff;} +a.admin-main {color:#aaa; display:block; font-size: 13px; font-weight:bold; text-decoration:none;} +a.admin-main:hover {color:#fff;} #piwigoInfos {float:left; margin-left:140px;} #pageInfos {display: none;} @@ -857,7 +1695,7 @@ html, body {height:100; min-height: 100%; margin:0; padding:0;} margin-left:0; } -#menubar ul.scroll { overflow-y:auto; max-height:500px; } +#menubar ul.scroll { overflow-y:auto; max-height:500px; scrollbar-color: #666 #3c3c3c;} #menubar dl { width: 205px; min-height:35px; border:0; margin: 0; padding: 0; display: block; border:0; border-left:none; } #menubar dd { margin: 0; padding: 10px 0; } #menubar dt { @@ -883,6 +1721,27 @@ html, body {height:100; min-height: 100%; margin:0; padding:0;} margin-top: 2px; } +@media all and (max-height: 920px) { + #menubar ul.scroll { + max-height: 400px; + } +} + +@media all and (max-height: 830px) { + #menubar ul.scroll { + max-height: 300px; + } +} + +@media all and (max-height: 700px) { + #menubar ul.scroll { + max-height: 200px; + } + #theAdminPage #footer { + display: none; + } +} + /* tabsheets are often used in admin pages => No specific css files */ #tabsheet { width:auto; @@ -952,15 +1811,31 @@ margin-top:4px; padding-bottom:3px; padding-top:3px; top:1px; #thePopuphelpPage #pwgHead {display:none} #thePopuphelpPage #footer {display:none} -.themeBox {display:inline-table; text-align:center; height:192px; background-color:#eee; margin:5px; border-radius:5px; overflow:hidden; } +.themeBox {display: inline-table;text-align: center;height: 192px;margin: 0px 0px 15px 15px; position: relative;} +.themeShot a {height: 200px; width: 200px; position: relative; overflow: hidden; display: block;} -.themeBox IMG {border:1px solid white; margin:0 15px;} -.themeName {font-size:1em; margin:5px 0; position:relative; } -.themeActions {display: table-row; font-size:12px; height: 43px; } -.themeActions DIV {display: table-cell; vertical-align: middle; line-height:18px; } -.themeActions A {} +.themeBox IMG {margin:0px; position: absolute;top: 50%;left: 50%;transform: translate(-50%, -50%);} +.themeName {font-size:14px; margin:10px; position:relative; text-transform: capitalize; font-weight: bold; text-align: left; white-space: nowrap; max-width: 180px; overflow: hidden; text-overflow: ellipsis;} +.themeName em {font-weight: normal;} +.themeName .showInfo {position: absolute; right: 0; top: 50%; transform: translateY(-50%);} +.themeBox .showInfo-dropdown {position: absolute; right: 0px; transform: translateX(40%); display: none; text-align: left; padding-bottom: 0;} +.themeSelect {box-shadow: 0px 2px 1px #00000024; display: inline-block; text-align: center; padding: 0px 10px 8px 10px; margin-right: 10px; transition: 0.4s ease;} +.showInfo-dropdown-header {padding: 5px 10px; white-space: nowrap; font-weight: bold; font-size: 12px;} +.showInfo-dropdown-header a:hover {color: white;} +.showInfo-dropdown-content {padding: 5px 10px; -moz-osx-font-smoothing: initial;} +.showInfo-dropdown-action {padding: 8px 10px; border-top: 1px solid #ffffff45; color: white; text-decoration: none !important; display: block; margin-top: 5px; border-radius: 0px 0px 10px 10px; font-weight: bold;} +.showInfo-dropdown-action:hover {background-color: rgba(0, 0, 0, 0.192); color: white;} +.themeActions {display: flex;flex-direction: column;} +.themeActions DIV {display: table-cell; vertical-align: middle; line-height:18px;} +.themeActions span, .themeActions a {padding: 10px; margin: 0px 10px 10px 10px; font-weight: bold; font-size: 12px;} +.themeActions span {font-size: 11px; background-color: #ddd; opacity: 0.5; color: ;} + +.themeActions a:nth-child(1) {background-color: #ffc17e; color: #222;} +.themeActions a:nth-child(1):hover {background-color: #ff7700; color: white; text-decoration: none;} + +.themeActions a:nth-child(2) {background-color: #ececec; color: #222;} +.themeActions a:nth-child(2):hover {background-color: #ff9b32; color: #111; text-decoration: none;} -#themesContent .themeBox IMG {width:150px; height:120px;} #themesContent H3 {font-size:16px; text-align:left; border-bottom:1px solid #444; letter-spacing:1px; margin:5px;} .themeBoxes {min-height:0;text-align:left;} @@ -1046,10 +1921,40 @@ h2:lang(en) { text-transform:capitalize; } .infos .submit {margin-left:30px;} .checkActions {text-align:left;padding:0;margin:0;} +#checkActions {text-align:left; margin:0 0 20px 0;} +.ActionUserList #checkActions {margin: 20px 0 20px 0;} .pluginBoxes { + border: none; + padding: 20px; + padding-top: 0; + min-height: 271px; text-align:left; +} + +.pluginBoxesContainer { position:relative; + display: flex; + flex-wrap: wrap; + justify-content: left; + +} + +.pluginBoxesTitle {font-size: 16px;} +.pluginBoxesTitle p {margin-right: 10px;} +.pluginBoxesTitle span {border-radius: 50%; margin-right: 5px; padding: 4px} + +.pluginBoxesTitle {display: flex;align-items: center} +.pluginFilter {justify-content: end;position: absolute;right: 20px; z-index: 2; transform: translateY(6px);} + +.pluginBoxesCount { + background-color: rgb(150, 150, 150); + color: white; + border-radius: 25px; + text-align: center; + padding: 2px 10px; + font-weight: bold; + font-size: 12px; } .pluginBox { @@ -1063,29 +1968,116 @@ h2:lang(en) { text-transform:capitalize; } .pluginBox td {text-align:left;} .pluginBox td.pluginDesc img {vertical-align:middle;} .pluginBoxNameCell {width:180px; vertical-align:top;} -.pluginBoxes .inactive, .pluginBoxes .uninstalled {opacity:0.8;filter:alpha(opacity=80);} +.pluginBoxes .inactive, .pluginBoxes .uninstalled {} +.emptyResearch {opacity: 0.3;text-align: center;left: 45%;font-weight: bold;font-size: 30px; position: absolute; display: none;} .pluginMiniBox { - display:inline-table; - text-align:center; - width:250px; - height:40px; - margin:5px; - border-width:1px; - border-style:solid; + display:flex; + width:260px; + margin:15px 30px; + border-top-right-radius:5px; + border-bottom-right-radius:5px; + margin-left: 0; + box-shadow: 0px 0px 5px #acacac; +} +.PluginOptionsBlock a:hover { color: white ;} +.pluginContent { + width: 100%; + text-align: left; + background-color: #fafafa; + padding: 15px; + position: relative; + border-left: solid 5px #ffc17e; + border-right:solid 5px #fafafa; + border-radius: 5px; +} + +.pluginMiniBoxNameCell { + font-size: 14px; + font-weight: bold; +} + +.pluginDesc { + margin-top: 5px; + font-size: 12px; + color: grey; + line-height: 1.5em; + height: 3em; + position: relative; + overflow: hidden; +} + +.pluginActions a { + margin-top:15px; + font-size:12px; +} + +.pluginActions > * { + padding: 10px 4px; + text-align: center; + display:block; +} +.pluginEmptyInput {width: 90px;} +.pluginUnavailableAction { + opacity: 0.5; + font-size: 12px; + padding: 10px 4px; + margin-top: 15px; + background-color:#ddd; + font-weight:700; +} +.pluginActionLevel1 {background-color: #ffc17e; font-weight: bold;} +.pluginActionLevel1:hover {background-color: #ff7700; color: white; text-decoration: none;} +.pluginActionLevel2 {padding:5px 0;} +.pluginActionLevel3 {/*padding-left: 10px; opacity: 0.9;*/padding:5px 0} +.plugin-inactive .pluginContent{ + border:none; + /*border-radius:10px;*/ +} + +.showOptions { + font-size: 16px; +} + +.plugin-inactive .pluginMiniBox{ border-radius:5px; - -moz-border-radius:5px; - overflow:hidden; - } -.pluginMiniBoxNameCell {font-size:1.05em; margin:5px 0;position:relative;} -.pluginActions {display: table-row; font-size:0.95em; color:#777;} -.pluginActions DIV {display: table-cell; vertical-align: middle; line-height:18px; } -.pluginMiniBox .showInfo, .themeBox .showInfo { display:block;position:absolute;top:0;right:5px;width:15px; } +} + +.plugin-inactive .pluginContent .pluginActionLevel1{ + background-color: #999999; +} +.plugin-inactive .pluginContent .pluginActionLevel1:hover{ + background-color:#ff9b32; +} + +.pluginMiniBox .PluginOptionsIcons, +.themeBox .PluginOptionsIcons{ + display:flex; + position:absolute; + top:0; + right:-6px; + padding: 13px; +} + + + .PluginOptionsBlock{ + display:none; + position:absolute; + right: 0; + top: 40px; + z-index: 2; + transform: translateX(calc(50% - 19px)); + } .warning:before {content:url(icon/warning.png);vertical-align:top;} -.deactivate_all {text-align:right;font-size:0.95em;} +.deactivate_all {font-size: 11px;font-weight: normal; margin-top: -5px; margin-bottom: 5px; font-weight: bold;opacity: 0.6;} .showDetails {text-align:right; margin-bottom:-15px; margin-top:-10px; padding-right:1em;} +.showInactivePlugins {margin-bottom: 40px;} +.showInactivePluginsInfo {display: flex;justify-content: center;align-items: center; font-size: 18px;} +.showInactivePluginsInfo > * {margin: 5px;} +.showInactivePlugins button {font-size: 16px;} + .languageBoxes {min-height:0;text-align:left;} .languageBox {display:inline-table; text-align:center; width:200px; height:40px; margin:5px; -moz-border-radius:5px;border-radius:5px; overflow:hidden; } .languageName {font-size:1.1em; margin:5px 0;} @@ -1101,24 +2093,21 @@ h2:lang(en) { text-transform:capitalize; } float:right; margin:0; padding:0; - padding-top:2px; - padding-left:3px; + margin-right:15px; + margin-top:-10px; } .HelpActions a { border:0; margin:0; } .HelpActions li {list-style-image:none; list-style-position:outside; list-style-type:none; text-align:center; text-indent:0pt; } +.HelpActions .icon-help-circled::before { + font-size: 22px; +} legend {text-align:left;} /* local-layout */ /* You can modify this file */ -/* default-colors */ -/* So that non-links are slightly greyed out */ -.content .navigationBar { - color: #999; -} - /* Tables & forms */ SELECT, TEXTAREA { @@ -1176,44 +2165,158 @@ INPUT[type="radio"], INPUT[type="checkbox"] { LEGEND { font-weight: bold; - padding: 0 10px; + font-size: 14px; + margin: 10px 0; + padding: 0; +} + +LEGEND SPAN { + padding: 4px; + border-radius: 100%; + margin-right: 6px; + font-size: 16px; } /* Batch Manager, global mode */ #batchManagerGlobal #action p {text-align:left;} -#batchManagerGlobal .bulkAction {text-align:left;margin:15px 0;padding:0;} +#batchManagerGlobal .bulkAction {text-align:left; padding:0;} #batchManagerGlobal #action_del_tags ul.tagSelection {margin:0 !important; width:620px;} #batchManagerGlobal #checkActions {text-align:left; margin:0 0 20px 0;} -#batchManagerGlobal ul.thumbnails div.actions {display:none;position:absolute;top:0;right:5px;color:#fff} +#batchManagerGlobal ul.thumbnails div.actions { + display: none; + position: absolute; + top: 0; + color: #fff; + width: 98%; + justify-content: space-between; + background-color: #313234; + padding: 3px 0px; + margin-left: 1px; + z-index: 1; +} + +#batchManagerGlobal fieldset { + margin: 0; + margin-top: 30px; + border: none; +} + +#batchManagerGlobal legend { + font-size: 14px; + color: #444; + margin: 10px 0; + padding: 0; +} + +#batchManagerGlobal legend span { + padding: 3px; + border-radius: 100%; + margin-right: 6px; + font-size: 16px; +} + #batchManagerGlobal ul.thumbnails div.actions a {color:#fff;} -#batchManagerGlobal ul.thumbnails span.wrap1:hover div.actions {display:block;} -#batchManagerGlobal #selectedMessage {padding:5px; border-radius:5px;} -#batchManagerGlobal #applyOnDetails {font-style:italic;} -#batchManagerGlobal .actionButtons {text-align:left;} -#batchManagerGlobal #filterList {padding-left:5px;} -#batchManagerGlobal #filterList li {margin-bottom:5px; list-style-type:none;} -#batchManagerGlobal a.removeFilter {color:#666;} -#batchManagerGlobal a.removeFilter::before {margin-right:0;} +#batchManagerGlobal ul.thumbnails span.wrap1:hover div.actions {display:flex;} +#batchManagerGlobal #selectedMessage {padding:5px; border-radius:5px; float: right;} +#batchManagerGlobal #applyOnDetails {text-align: center; margin-top: 8px; color: #FFA646; font-weight: bold;} +#batchManagerGlobal .actionButtons {text-align:left; display: flex; flex-direction: column;} +#batchManagerGlobal #filterList {padding-left:0px; display: flex; flex-wrap: wrap; align-items: start; margin-top: 0px;} +#batchManagerGlobal #filterList li { + list-style-type:none; + background-color: #fafafa; + padding: 10px; + margin: 0px 10px 10px 0px; + box-shadow: 0px 2px 1px #00000024; + border-radius: 5px; + position: relative; +} +#batchManagerGlobal #filterList li p {font-weight: bold;display: block;margin: 0;margin-bottom: 5px;} +#batchManagerGlobal a.removeFilter {color: #AAA; + position: absolute; + right: 5px; + top: 5px; +} +#batchManagerGlobal a.removeFilter::before {margin-right:0; content: '\e822'; font-size: 11pt; color: #3C3C3C; margin-left: 6px; font-size: 12pt;color: #777;} +#batchManagerGlobal a.removeFilter:hover::before {color: #ffa646;} #batchManagerGlobal a.removeFilter:hover {color:red;} #batchManagerGlobal .removeFilter span {display:none} -#batchManagerGlobal #applyFilterBlock {margin-top:20px;} +#batchManagerGlobal #applyFilterBlock {width: 200px;} #batchManagerGlobal .useFilterCheckbox {display:none;} -#batchManagerGlobal blockquote {margin:5px 0 20px 15px;} -#batchManagerGlobal .ui-slider-horizontal {width:650px;margin:5px 0 10px 0;} +#batchManagerGlobal blockquote {margin:10px 0 0px 0;} +#batchManagerGlobal .ui-slider-horizontal {width:280px; margin:10px 0 10px 9px;} +#batchManagerGlobal #filter_dimension .ui-slider-horizontal {width:580px;} #batchManagerGlobal #duplicates_options label {margin-left:10px;} -#batchManagerGlobal .thumbnails span.icon-check, -#batchManagerGlobal .thumbnails span.icon-check-empty { - position:absolute; - left:5px; - top:3px; - font-size:14px; +#batchManagerGlobal .thumbnails span.icon-check, #batchManagerGlobal .thumbnails span.icon-check-empty { + position: absolute; + left: 84px; + top: 84px; + font-size: 14px; + display: none; } +.batchManager-pagination { + display: flex; + align-items: center; + clear: both; + margin: 0px 20px; + justify-content: space-between; +} + +.noFilter { + text-align: center; + font-weight: 600; + padding: 27px 0; + margin-bottom: 30px; + display: none; +} + +.filterActions { + display: flex; +} + +.filterActions #addFilter { + position: relative; + margin-right: 10px; +} + +.addFilter-dropdown { + z-index: 100; + padding: 5px 0px; + border-radius: 10px 10px 0px 0px; + background: linear-gradient(130deg, #ff7700 0%, #ffa744 100%); + color: white; + position: absolute; + bottom:100%; + overflow: hidden; + width: 100%; + display: none; +} + +.addFilter-dropdown a { + display: block; + text-align: initial; + padding: 5px 10px; + font-size: 12px; + padding-right: 15px; + color: white; + font-weight: 600; + cursor: pointer; +} + +.addFilter-dropdown a:hover { + text-decoration: none; + color: white; + background-color: rgba(0, 0, 0, 0.123) +} + +.addFilter-dropdown a.disabled { + pointer-events: none; + opacity: 0.5; +} -#order_filters a.addFilter {font-weight:normal;margin-left:20px;} #order_filters a.removeFilter {font-weight:normal;} #order_filters span.property span.filter:first-child a.removeFilter {display:none;} /* can't delete the first field */ #order_filters span.filter {display:block;margin-left:20px;} @@ -1284,37 +2387,621 @@ a#showPermissions:hover {text-decoration: none;} #debug { margin-left: 227px; font-size:12px; } -/* Album Properties */ -#albumThumbnail { - width:1%; - padding-right:10px; - text-align:center; +.tag-header { + display: flex; + flex-wrap: nowrap; + align-items: center; + margin-left: 20px; + max-width: calc(100% - 530px); + overflow: hidden; + padding: 10px; } -#albumThumbnail img { - border:2px solid #ddd; +.tag-header #search-tag{ + position: absolute; + right: 240px; } -#albumLinks { - vertical-align:top; - border-left:2px solid #ddd; - padding-left:10px; +.tag-header #add-tag { + position: relative; + margin: 0; } -#albumLinks ul, .photoLinks ul { - padding-left:0; +.tag-header #add-tag.hide { + display: none; } -#albumLinks li, .photoLinks li { - list-style:none; +.tag-header #add-tag .add-tag-label { + position: relative; + padding: 10px; + background-color: #fafafa; + box-shadow: 0px 2px #00000024; + border-radius: 5px; + font-weight: bold; + display: flex; + align-items: baseline; + cursor: pointer; } -.photoLinks { - vertical-align:top; +.tag-header #add-tag.input-mode .add-tag-label { + background: none; + box-shadow: none; + cursor: auto; + padding: 0px } -.photoLinks ul { - margin:0; +.tag-header #add-tag .add-tag-label::before { + margin: auto; + font-size: 16px; + margin-right: 5px; +} + +.tag-header #add-tag.input-mode .add-tag-label::before { + display: none; +} + +.tag-header #add-tag .add-tag-label p{ + margin: 0; + white-space: nowrap; +} + +.tag-header #add-tag .add-tag-container { + display: none; +} + +.tag-header #add-tag.input-mode .add-tag-container { + display: flex; + margin-right: 35px; +} + +.tag-header #add-tag.input-mode .add-tag-container input { + padding: 9px; + margin-left: 10px; + border: solid 2px #ffa744; + background: none; + width: 100px; +} + +.tag-header #add-tag.input-mode .add-tag-container input:hover { + background-color: #f0f0f0 !important; +} + +.tag-header #add-tag span.icon-cancel-circled{ + display: none; + position: absolute; + right: 15px; + top: 50%; + transform: translate(15px, -53%); + z-index: 2; + font-size: 22px !important; + cursor: pointer; +} + +.tag-header #add-tag.input-mode .icon-cancel-circled { + display: block; +} + +.tag-header #add-tag span.icon-cancel-circled:hover { + color: #ff7700; +} + +.tag-header #add-tag.input-mode .icon-validate{ + display: block; + margin: auto 5px; + cursor: pointer; + background-color: #ffa744; + color: #3c3c3c; + font-size: 17px; + font-weight: 700; + padding: 7px 5.5px; +} + +.tag-header #add-tag span.icon-validate:hover { + background-color: #f70; + color: #000; + cursor: pointer; +} + +.tag-header .selection-controller { + display: none; + align-items: baseline; + height: 38px; + color: #777; + font-weight: bold; +} + +.tag-header .selection-controller.show { + display: flex; +} + +.tag-header .selection-controller p { + margin-right: 10px; + color: #555; +} + +.tag-header .selection-controller a { + margin: 0; + background-color: #f0f0f0; + padding: 10px; + color: #777; + font-weight: bold; + margin: 4px; + border-radius: 5px; +} + +.tag-header .selection-controller a:hover { + background-color: #ddd; + color: #3A3A3A; + text-decoration: none; +} + + +.tag-info { + height: 35px; + overflow: hidden; + border-radius: 20px; + display: flex; + padding: 0px 10px 0px 0px; + font-weight: bold; + margin-left: 10px; +} + +.tag-info.hide { + display: none; +} + +.tag-info p { + margin: auto; + white-space: nowrap; + text-overflow: ellipsis; + overflow: hidden; + text-align: initial; +} + +.tag-info::before { + line-height: 35px; + margin: 0px 10px; + font-size: 16px; +} + +.tag-info.tag-warning { + color: #ee8800; + background-color:#ffdd99; +} + +.tag-info.tag-message { + color: #0a0; + background-color:#c2f5c2; + display: none; +} + +.tag-info.tag-error { + color: #f22; + background-color: #ffd5dc; + display: none; + animation-name: tag-error-appear ; + animation-duration: 0.4s; + animation-timing-function: ease; +} + +.tag-info a:hover { + color: white; +} + +@keyframes tag-error-appear { + 25% { transform: translateX(-10px)} + 50% { transform: translateX(10px)} + 75% { transform: translateX(-10px)} + 100% { transform: translateX(0px)} +} + +.tag-container { + display: flex; + padding: 10px 25px; + flex-flow: wrap; + padding-right: 223px; +} + +.tag-container .tag-box{ + display: inline-flex; + align-items: center; + padding: 5px 10px 5px 15px; + background-color: #fafafa; + margin: 7px 5px; + box-shadow: 0px 2px 1px #00000024; + border-radius: 18px; + position: relative; +} + +.tag-container.selection .tag-box { + opacity: 0.8; + cursor: pointer; +} + +.tag-container.selection .tag-box[data-selected='1'] { + opacity: 1; + background-color: #ffd7ad; +} + +.tag-container .tag-box p { + white-space: nowrap; + margin: 0; +} + +.tag-container .tag-box[data-selected='1'] p { + color: #333; +} + +.tag-container .tag-box.edit-name p { + display: none; +} + +.tag-container .tag-box .showOptions { + color: #aaa; +} + +.tag-container .tag-box.edit-name .showOptions { + display: none; +} + + +.tag-container.selection .showOptions { + display: none; +} + +.tag-container .tag-box .tag-dropdown-block { + display:none; + position: absolute; + top: 32px; + right: 0px; + transform: translateX(calc(50% - 23px)); +} + +.tag-container .tag-box .tag-dropdown-block .tag-dropdown-header { + white-space: nowrap; + display: flex; + margin: auto; + justify-content: space-between; + color: white; + border-bottom: solid 1px #ffffff3d; + padding: 5px 10px; + min-width: 150px; +} + +.tag-container .tag-box .tag-dropdown-header b { + font-weight: bold; + margin-right: 2px; + white-space: nowrap; + text-overflow: ellipsis; + overflow: hidden; +} + +.tag-container .tag-box .select-checkbox { + display: none; + width: 15px; + height: 15px; + border-radius: 100%; + margin: 2px 0px; + margin-left: 3.4px; + border: solid #ffa646 2px; +} + +.tag-container.selection .tag-box .select-checkbox { + display: block; +} + +.tag-container .tag-box:hover .select-checkbox, +.tag-container .tag-box[data-selected='1'] .select-checkbox { + background-color: #ffa646; +} + +.tag-container .tag-box .select-checkbox.show { + display: block; +} + +.tag-container .tag-box .select-checkbox i { + display: none; + font-size: 14px; + transform: translate(-10px , -3px); + position: absolute; + color: #fafafa; + animation-name: icon-check-tag-animation; + animation-duration: 0.4s; + animation-timing-function: ease-out; +} + +.tag-container .tag-box[data-selected='1'] .select-checkbox i { + display: inline; +} + +@keyframes icon-check-tag-animation { + 0% { + transform: translate(-10px , -3px) scale(0); + } + 75% { + transform: translate(-10px , -3px) scale(1.3); + } + 100% { + transform: translate(-10px , -3px); + } +} + +.tag-container .tag-box .tag-rename { + display: none; +} + +.tag-container .tag-box.edit-name .tag-rename { + display: flex; +} + +.tag-container .tag-box .tag-rename .tag-name-editable { + text-align: left; + width: 100px; + color: #3c3c3c; + font-family: "Open Sans", "Lucida Grande",Verdana,Arial,"Bitstream Vera Sans",sans-serif; + margin: 0px; + background-color: white; + border: 1px solid #d5d5d5; + padding-left: 6px; +} + +.tag-container .tag-box .tag-rename span:hover { + color: #ffa744; +} + + +.tag-container .tag-box .tag-rename span { + padding: 2px 3px; + margin: auto; + cursor: pointer; + color: #3A3A3A; +} + +.tag-selection .tag-selection-content { + margin-top: 90px; + padding: 5px; +} + +.tag-selection .tag-selection-content .selection-mode-tag{ + display: none; +} + + +.selection-mode-tag .tag-list { + margin: 10px; + text-align: start; + font-weight: 700; + font-size: 15px; + overflow: hidden; + max-height: 160px; +} + +.selection-mode-tag .tag-list p { + width: 85%; + text-overflow: ellipsis; + overflow: hidden; + white-space: nowrap; + color: #a0a0a0; + margin: 0; +} + +.selection-mode-tag .tag-list div { + display: flex; + margin: 10px; + text-align: start; +} + +.selection-mode-tag .selection-other-tags { + color: #ffa646; + font-weight: bold; + font-size: 15px; +} + +.tag-select-message { + background: #bce5f7; + height: 46px; + display: flex; + justify-content: center; + align-items: center; + font-size: 14px; + display: none; + margin: 10px 243px 10px 32px; + color: #0051a5; + font-weight: 600; +} + +.tag-select-message a{ + font-weight: bold; + margin-left: 6px; + background-color: #0051a5; + color: white; + padding: 0px 4px; +} + +.tag-select-message a:hover { + color: white; + text-decoration: none; + background-color: #002e5f; +} + +.tag-pagination { + margin: 0 20px;; + display: flex; + margin-bottom: 20px; + margin-right: 223px; + padding: 0px 15px; + justify-content: space-between; + align-items: center; +} + +.pageLoad { + display: none; + text-align: center; + margin-right: 223px; + position: absolute; + left: 50%; + z-index: 100; + transform: translateY(50px); +} + +.pageLoad i { + font-size: 40px; + color: rgba(29, 29, 29, 0.226); +} + +/* Picture Edit */ +#pictureModify { + display: flex; + margin: 0; + justify-content: space-evenly; + margin-top: 30px +} + +#picture-preview { + width: 35vw; + position: relative; + background-color: #3c3c3c; + height: 35vw; + flex-shrink: 0; + overflow: hidden; + margin-left: 10px; +} + +#picture-preview .preview-box{ + margin: 0; + position: absolute; + top: 50%; + -ms-transform: translate(-50%,-50%); + transform: translate(-50%,-50%); + left: 50%; +} + + +.picture-preview-actions { + position: absolute; + padding: 10px; + right: 0; + top: 0; + font-size: 18px; + z-index: 100; + background-color: #101010A0; +} + +.picture-preview-actions a { + color: #ffffff; + padding: 5px; +} + +.picture-preview-actions a.unavailable { + color: #ffffff48; + cursor: context-menu; +} + +#picture-content { + width: 50%; +} + +#picture-content p { + text-align: left; +} + +#picture-content input[type=text], #picture-content textarea, #picture-content .selectize-input { + width: calc(100% - 15px); + background-color: #f8f8f8; + padding: 8px; + border-radius: 4px; + border-color: #DDD; + transition: ease 0.2s; + font-family: "Open Sans", "Lucida Grande",Verdana,Arial,"Bitstream Vera Sans",sans-serif; +} + +#picture-content .selectize-input { + width: 100%; +} + +#picture-content input[type=text], #picture-content textarea, #picture-content .selectize-control { + margin-top: 5px; +} + +#picture-content .date-input { + position: relative; +} + +#picture-content .date-input input{ + padding-left: 35px; + width: calc(100% - 43px); +} + +#picture-content .date-input i{ + position: absolute; + font-size: 20px; + top: 50%; + transform: translate(6px, -50%); + opacity: 0.6; +} + +#picture-content input:focus { + border-color: #888; +} + +#picture-content select { + background-color: #FFF; + color: #4E4E4E; + border: 2px solid #7070704f !important; + padding: 10px 18px; + -webkit-appearance: none; + font-weight: 700; + width: calc(100% - 15px); + margin: 0 10px; +} + +#picture-content .select-icon { + font-size: 17px; + position: absolute; + color: #6E6E6E; + pointer-events: none; + right: 3%; + transform: translateY(5px); +} + +#picture-infos { + display: grid; + grid-template-columns: 50% 50%; +} + +.picture-infos-category { + display: flex; + border: #EEE solid 2px; + padding: 20px; + border-radius: 5px; + margin: 0px 10px; + align-items: center; +} + +.picture-infos-icon { + font-size: 34px; + margin-right: 20px; + display: flex; + color: #3c3c3c; +} + +.picture-infos-icon span { + margin: auto; +} + +.picture-infos-container { + margin: 0; + display: inline-table; +} + +.picture-infos-container div { + margin: 0; + word-wrap: anywhere; +} + +.picture-infos-title { + color: #3c3c3c; + font-weight: bold; } /* Album Manager */ @@ -1347,7 +3034,6 @@ a#showPermissions:hover {text-decoration: none;} } .commentFilter {text-align:left;margin:5px 1em;} -.commentFilter .navigationBar {float:right; margin:0;} FORM#categoryOrdering p.albumTitle {margin:0; margin-left: 5px; text-overflow: ellipsis; white-space: nowrap; overflow: hidden; margin-bottom: 4px;} FORM#categoryOrdering p.albumTitle a {font-size: 14px; font-weight: 600;} @@ -1363,12 +3049,256 @@ FORM#categoryOrdering p.albumActions a { padding-top: 22px; } -.albumInfos { font-size: 12px; } .actionTitle span {text-transform: capitalize;} FORM#categoryOrdering p.albumActions a:hover {text-decoration: none;} FORM#categoryOrdering p.albumActions .userSeparator {margin:0 5px;} +/* Move Album */ +.cat-move-header { + display: flex; + margin: 0px 30px; + align-items: center; + font-size: 14px; + justify-content: space-between; + margin-top: 20px; +} + +.cat-move-header .order-root::before { + font-size: 16px; +} + +.cat-move-header .cat-move-info { + position: relative; +} + +.cat-move-header .cat-move-info::before { + color: grey; + font-size: 20px; +} + +.cat-move-header .cat-move-info .spinner { + position: absolute; + left: calc(100% + 6px); + font-size: 20px; + display: none; +} + +.tree { + margin: 20px; + padding-top: 1px; +} + +.move-cat-container { + display: flex; + align-items: center; + box-shadow: 0px 2px 3px #00000024; + background-color: #fafafa; + border-radius: 5px; + color: #777; + padding: 5px 10px; + padding-left: 28px; +} + +.move-cat-container .icon-grip-vertical-solid { + font-size: 16px; + opacity: 0.5; + position: absolute; + left: 6px; +} + +.move-cat-container .icon-folder-open, .move-cat-container .icon-sitemap { + display: inline-block; + border-radius: 50%; + font-size: 20px; + padding: 8px; + margin: 5px; +} + +.move-cat-container .icon-lock { + font-size: 16px; + margin-left: 0px; +} + +.move-cat-container .move-cat-title { + font-size: 16px; + margin: 10px; + max-width: 200px; + overflow: hidden; + white-space: nowrap; + text-overflow: ellipsis; + font-weight: 600; +} + +.move-cat-container .move-cat-toogler { + display: flex; + color: #FFBD4D; + margin-left: 15px; + align-items: center; + cursor: pointer; + z-index: 2; + font-weight: 600; +} + +.move-cat-container .move-cat-toogler .icon-left-open{ + transform: rotate(90deg); +} + +.move-cat-action-cont { + display: none; + position: absolute; + right: 50%; + top : 50%; + width: 100%; + height: 100%; + border-radius: 5px; + transform: translate(50%, -50%); + align-items: center; + flex-direction: row-reverse; + overflow: hidden; +} + +.move-cat-container:hover .move-cat-action-cont { + display: flex; +} + +.move-cat-action { + display: flex; + align-items: center; + max-width: 60%; +} + +.move-cat-action a { + padding: 30px 15px; + font-weight: bold; + cursor: pointer; + height: 100%; + border-left: 1px solid #00000012; + background-color: #00000003; + text-align: center; +} + +.move-cat-action a:hover { + color: #444; + text-decoration: none; + background-color: #FFA646; +} + +.cat-move-order-popin { + position: fixed; + z-index: 100; + left: 0; + top: 0; + width: 100%; + height: 100%; + overflow: auto; + background-color: rgba(0,0,0,0.7); + display: none; +} + +.cat-move-order-popin .order-popin-container { + background-color: #f3f3f3; + border-radius: 10px; + display: block; + width: 25%; + position: absolute; + left: 50%; + top: 50%; + transform: translate(-50%, -48%); + text-align: left; + padding: 30px; +} + +.cat-move-order-popin .album-name { + font-size: 14px; + color: #3C3C3C; + font-weight: 600; + text-align: center; +} + +.cat-move-order-popin .choice-container { + display: flex; + flex-direction: column; + padding: 10px 5px; +} + +.cat-move-order-popin label { + position: relative; + padding: 5px; +} + +.cat-move-order-popin input[type=radio] { + opacity: 0; +} + +.cat-move-order-popin input[type=submit] { + width: 100%; + margin: 10px 0px; +} + +.cat-move-order-popin input[name=recursiveAutoOrder] { + background-color: #d9d9d9; +} + +.cat-move-order-popin input[name=recursiveAutoOrder]:hover { + background-color: #ffc17e; +} + +.cat-move-order-popin .close-popin { + position: absolute; + right: -40px; + top: -40px; + font-size: 30px; + color: white; +} + +.cat-move-order-popin .close-popin:hover { color: #ffa646;} + +.popin-title {font-weight: bold; font-size: 15px; margin-bottom: 15px; color: #3C3C3C;} + +.popin-title span { + padding: 7px; + border-radius: 25px; + font-size: 15px; + margin-right: 10px; +} + +/*Overwrite JQtree CSS*/ + +.jqtree_common { + margin: 20px 2px !important; +} + +li.jqtree-ghost { + display: flex !important; + margin: 0 !important; +} + +ul.jqtree-tree ul.jqtree_common { + margin-left: 50px !important; +} + +ul.jqtree-tree span.jqtree-border { + border: solid 2px #FFBD4D !important; + width: 98%; +} + +ul.jqtree-tree li.jqtree-ghost span.jqtree-circle { + border: solid 2px #FFBD4D !important; + margin: 0 !important; +} + +ul.jqtree-tree li.jqtree-ghost span.jqtree-line { + background-color: #FFBD4D !important; + position: relative !important; + height: 2px !important; + margin: 0 !important; +} + +ul.jqtree-tree .jqtree-element { + cursor: move !important; +} + .albumBlock {display: flex; justify-content: space-between; padding: 10px 10px 0 10px;} .albumBlock .albumLineBlock {display: block; padding-left: 7px; max-width: 45%; height: 50px;} .showCreateAlbum {text-align:left; margin:0 1em 25px 20px; line-height:22px;} @@ -1376,7 +3306,6 @@ FORM#categoryOrdering p.albumActions .userSeparator {margin:0 5px;} #addAlbumOpen, #autoOrderOpen {padding: 7px 15px; font-weight: bold; font-size: 11px;} .afterUploadActions {text-align: center; margin-bottom: 30px !important;} .afterUploadActions a {justify-content: center; margin: 35px; font-weight: bold; font-size: 14px; padding: 10px 12px;} -#addAlbumOpen::before ,#autoOrderOpen::before {margin-right: 10px; font-weight: bold; font-size: 15px;} #autoOrder p, #createAlbum p {text-align:left; margin:0 0 1em 0;} #autoOrder p.actionButtons, #createAlbum p.actionButtons {margin-bottom:0;} @@ -1428,41 +3357,993 @@ input[type="text"].dError {border-color:#ff7070; background-color:#FFe5e5;} margin-left:5px; } -.groups { - text-align:center; + .content .groups form{ + margin:0; + margin-top: 115px; } -.groups li { + +.groups { + display: flex; + flex-wrap: wrap; + justify-content: center; +} + +.group-manager{ + margin-right:224px; +} + +.remove-item { + flex: 1; + -webkit-animation: flexShrink 500ms ease forwards; + -o-animation: flexShrink 500ms ease forwards; + animation: flexShrink 500ms ease forwards; +} + +.groups .list_user #text{ + width:100%; +} + +.groups .GroupContainer { vertical-align: middle; position: relative; - display: inline-block; + display: flex; + flex-direction: column; text-align: left; - height: 300px; - width: 250px; - margin: 5px; - border-radius: 5px; + height: 286px; + width: 220px; + margin: 15px; + border-radius: 10px; + align-items: center; + justify-content: space-between; } -.groups p { - text-align:left; + +.groupHeader { + width: 100%; } -.groups label>p { + +.groups .Group-name .Group-name-container p{ + margin: auto; + padding: 2px; + text-align: center; + font-weight:700; + max-width: 170px; + overflow: hidden; + text-overflow: ellipsis; + white-space: nowrap; +} + +.Group-name-container { + position: relative; + display: inline-flex; + transform: translate(10px, 0); +} + +.group-rename { + margin: 0; + position: absolute; + top: 0px; + transform: translate(0,-8px); + display: none; + opacity: 1; +} + +.group-rename span { + padding: 5px; + margin: auto; +} + +.group-rename .validate { + background-color: #ffa744; +} + +.group-rename .icon-ok:hover { + background-color: #ff7700; + color: #3c3c3c; +} + +.group-rename form { + margin: 0 !important; +} + +.Group-name span:hover{ + color: #ffa744; + cursor: pointer; +} + +.group-rename input{ + text-align: left; + width: 130px; + margin: 4px; + font-weight: bold; + color: #3c3c3c; + font-family: "Open Sans", "Lucida Grande",Verdana,Arial,"Bitstream Vera Sans",sans-serif; + margin-left: 9px; +} + +.addGroupLabel { margin: 0; border-radius: 5px 5px 0 0; padding: 2px; + position: absolute; + left: 11px; + top: -11px; + font-size: 14px; +} + +.groups .icon-users-1{ + text-align:center; +} + +.groups .group_number_users{ + text-align: center; + font-weight: 700; + font-size: 1em; + margin:12px; +} + +.groups .addGroupFormTitle{ + font-size:1.2em; + font-weight:700; +} + +.groups input[type="text"]{ + padding:5px; +} + +.groupIcon { + margin:15px auto; +} + +.groups .icon-users-1:first-child{ + font-size: 19px; + width: 27px; + padding: 10px; + border-radius: 30px; + margin: auto; + transition: 0.4s ease; +} + +.groupMessage { + display: none; + position: absolute; + min-height: 20px; + padding: 10px; + border-radius: 30px; + top: -17px; + font-size: 12px; + right: 52px; + width: 110px; + color: #0a0; + background-color:#c2f5c2; text-align: center; } -.groups input { - float: right; +.groupError { + z-index: 2; + display: none; + position: absolute; + color: #f22; + background-color: #ffd5dc; + min-height: 17px; + padding: 10px; + border-radius: 30px; + top: -17px; + font-size: 12px; + right: 29px; + width: 143px; + text-align: center; } -p.list_user { + +.groups .addGroupFormTitle{ + margin:0; +} + + FORM.properties .groups .GroupContainer, + .groups FORM#update .groups UL { + margin-bottom: 15px; +} + +#group-template { + display: none; +} + +/* Selection mode */ +.selection-mode-group-manager{ + position:absolute; + right:15px; + z-index:11; +} + +.switch { + position: relative; + display: inline-block; + width: 60px; + height: 24px; + vertical-align:middle; +} + +.selection-mode-group-manager p{ + display:inline-block; + padding:0 5px; +} + +.switch input { + opacity: 0; + width: 0; + height: 0; +} + +.slider { + position: absolute; + cursor: pointer; + top: 0; + left: 0; + right: 0; + bottom: 0; + -webkit-transition: s; + transition: 1s; +} + +.slider:before { + position: absolute; + content: ""; + height: 16px; + width: 16px; + left: 6px; + bottom: 4px; + -webkit-transition: .4s; + transition: .4s; +} + +input:checked + .slider:before { + -webkit-transform: translateX(33px); + -ms-transform: translateX(33px); + transform: translateX(33px); +} + +.slider.round { + border-radius: 34px; +} + +.slider.round:before { + border-radius: 50%; +} + +#selection-mode-block{ + display:none; + position: absolute; + right: 0; + width: 223px; + min-height:calc(100% - 171px); + top: 169.5px; + z-index: 10; +} + +#selection-mode-block.show{ + display: block; +} + +.Selection-mode-content{ + margin-top:110px; +} + +/*Selection mode content*/ + +#nothing-selected{ + display:block; + margin: 10px; +} + +.SelectionModeGroup{ + display:none; + text-align:center; +} + +.SelectionModeGroupList{ + font-weight:700; + font-size:15px; +} + +.SelectionModeGroupList div{ + margin:10px; + text-align: start; +} + +.SelectionModeGroupList div div{ + display: flex; +} + +.SelectionModeGroupList a, +.SelectionModeGroupList p { + display:inline-block; + margin:0 +} + +.SelectionModeGroupList p { + width: 85%; + text-overflow: ellipsis; + overflow: hidden; + white-space: nowrap; +} + +#selection-mode-block button{ + display:block; + margin:20px auto; + font-size: 12px; + font-weight: 700; + padding: 13px 30px; + background-color:transparent; + width: 180px; +} + +#selection-mode-block button:hover{ + cursor: pointer; +} + +#selection-mode-block button.unavailable{ + opacity: 0.3; + background: none !important; + border: none !important; + cursor: auto; +} + +#ConfirmGroupAction{ + font-size:12px; + font-weight:700; + padding:20px; + display:none; +} + +#ConfirmGroupAction p{ + margin: 20px; + font-weight: 700; + font-size: 13px; +} + +.ConfirmDeleteButton{ + display: block; + margin: 20px auto; + font-size: 12px; + font-weight: 700; + padding: 13px 40px; + background-color: #ffa744; + border:none; + margin-top:40px; + cursor: pointer; +} + +/*Merge Options*/ + +#MergeOptionsBlock{ + display:none; + position:relative; + margin-top:40px; +} + +#MergeOptionsBlock p{ + margin: 20px; + font-weight: 700; + font-size: 13px; +} + +#MergeOptionsBlock .ItalicTextInfo{ + font-weight:400; + font-style:italic; + margin-top:0px; + margin-bottom:40px; +} + +#MergeOptionsBlock a{ + font-size:12px; + font-weight:700; +} + +.MergeOptionsChoice{ + display:block; + font-size:15px; +} + +.MergeOptionsChoice input{ + margin:0 5px; +} + +/*Merge options Radio buttons*/ + +.MergeOptionsContainer { + display: block; + position: relative; +} + +.MergeOptionsContainer input { + position: absolute; + opacity: 0; + cursor: pointer; +} + +.ConfirmMergeButton{ + display: block; + margin: 20px auto; + font-size: 12px; + font-weight: 700; + padding: 13px 40px; + border:none; + margin-top:40px; +} + +.MergeOptionsContainer{ + font-size:15px; +} +.MergeOptionsContainer label, +.MergeOptionsContainer select{ + display:block; + margin:10px auto; +} + +.MergeOptionsContainer select, +.MergeOptionsContainer option{ + width:182px; +} + +.MergeOptionsContainer select{ + padding: 10px 5px; + border: none; + background-color: white; + box-shadow: 0 0 2px #c5c5c5; + border-radius: 5px; +} + +/*Edit group name*/ + +.groups .Group-name{ + position:relative; + text-align: center; +} + +#EditGroupName{ + text-align:center; + display:none; +} + +.groups .Group-name .icon-pencil{ + opacity: 0; +} + +.Group-name:hover .icon-pencil{ + opacity: 1; +} + +/* Options menu*/ + +.group-dropdown-options:before{ + font-size:20px; + position:absolute; + top:10px; + right:0px; + padding:5px; + cursor: pointer; +} + +#GroupOptions{ + display:none; + z-index:1; + position:absolute; + right: -86px; + top: 41px; +} + +.is-default-token { + display: block; + z-index: 1; + position: absolute; + cursor: pointer; + right: 33px; + top: 4px; + padding: 5px 0; + font-size: 20px; + color: #777; + transition: 0.2s ease; +} + +.is-default-token:hover { + transform: scale(1.2,1.2); +} + +.is-default-token.deactivate { + display: none; +} + +.jconfirmDeleteConfirm, .jconfirmAlert { + padding-bottom: 0 !important; + color: #3c3c3c !important; + line-height: 28px !important; +} + +.jconfirmAlert { + margin-bottom: -2px !important; +} + +.jconfirmDeleteConfirm ~ .jconfirm-content-pane, .jconfirmAlert ~ .jconfirm-content-pane { + height: 0px !important; + margin: 0px !important; +} + +.jconfirmDeleteConfirm ~ .jconfirm-buttons button { + text-transform: none !important; +} + +.jconfirmAlert .jconfirm-icon-c i { + color: #0a0 !important; + background-color:#c2f5c2 !important; + border-radius: 20px; + padding: 5px 3px; + border-radius: 60px; + padding: 2px; + font-size: 45px; +} + +.jconfirmAlert .jconfirm-icon-c { + margin-bottom: 25px !important; +} + +.jconfirmAlert .jconfirm-title { + font-size: 20px !important; +} + +.jconfirm-title { + line-height: 1.5em; +} + +.jconfirm-buttons .btn { + text-transform: none !important; +} +/*Group checkbox*/ + +.Group-checkbox{ + display:none; + position: absolute; + top: 0px; + width: 100%; + height: 100%; + z-index: 2; +} + +.Group-checkbox-label { + width: 100%; + height: 100%; + display: block; +} + +.groups .Group-checkbox input { + position: absolute; + opacity: 0; + cursor: pointer; + height: 0; + width: 0; +} + +.groups .group-checkmark { + position: absolute; + top: 0; + right: 0; + margin: 12px; + height: 25px; + width: 25px; + border-radius:15px; + z-index: -1; +} + +.groups .group-checkmark:after { + content: ""; + position: absolute; + display: none; + animation: checkmark-appear 0.3s ease; +} + +@keyframes checkmark-appear { + 0% { + transform: rotate(45deg) scale(0); + } + 75% { + transform: rotate(45deg) scale(1.5); + } + 100% { + transform: rotate(45deg); + } +} + +.groups .Group-checkbox input:checked ~ .group-checkmark:after { + display: block; +} + +.groups .Group-checkbox .group-checkmark:after { + left: 9px; + top: 5px; + width: 5px; + height: 10px; + border: solid white; + border-width: 0 3px 3px 0; + -webkit-transform: rotate(45deg); + -ms-transform: rotate(45deg); + transform: rotate(45deg); +} + +/* Add group */ + +.addGroupBlock{ + position:absolute; + top:50%; + transform:translateY(-50%); + margin: auto; + width: 100%; + padding: 100px 0; +} + +.groups .icon-plus-circled{ + font-size: 19px; + width: 27px; + height: 27px; + padding: 10px; + border-radius: 30px; + margin: 10px auto; +} + +.groups #addGroup{ + font-weight:700; + width: 145px; + margin: auto; + text-align: center; +} + +.groups #addGroupForm{ + cursor: pointer; + position: relative; + order: -10000000000; +} + +.groups #addGroupForm form { + display: none; +} + +.groups fieldset{ + border:none; + margin:0; + padding:0; + text-align:center; +} + +.groups fieldset p{ + text-align:center; +} + +.addGroupFormLabelAndInput{ + margin:10px; + text-align:center; + margin-top:18px; + position: relative; +} + +.groups fieldset INPUT[type="text"]{ + margin:10px; + padding:10px; + display:inline-block; + width:159px; +} + +.groups button.submit{ + font-size:12px; + font-weight:700; + padding:13px 20px; + border:none; + display:inline-block; +} + +.groups #addGroupForm .actionButtons{ + text-align:center; +} + +.groups #addGroupForm .actionButtons a{ + font-size: 12px; + border: none; + padding: 13px 9px; + font-weight: bold; + transition: all 125ms ease-out; +} + +/*Group manager buttons*/ + +.groups .GroupManagerButtons{ + text-align:center; + width: 190px; + height: 50px; + line-height: 50px; +} + +.manage-permissions { + margin-bottom: 15px; +} + +.groups .manage-users, +.groups .manage-permissions{ + font-size: 13px; + display: inline-block; +} + +.groups .manage-users, +.groups .manage-users:hover, +.groups .manage-permissions, +.groups .manage-permissions:hover{ + text-decoration:none; +} + + +@media (hover: hover){ + .GroupContainer .GroupManagerButtons{ + display:none; + } + + .GroupContainer:hover .GroupManagerButtons{ + display:block; + } +} + +/*UserList Pop in*/ + +.CloseUserList{ + position:absolute; + right:-40px; + top:-40px; + font-size:30px; +} + +#UserList{ + display: none; +} + +.UserSearch { + width: 220px; + margin-top: 4px; +} + +.UserListPopIn{ + position: fixed; + z-index: 100; + left: 0; + top: 0; + width: 100%; + height: 100%; + overflow: auto; + background-color: rgba(0,0,0,0.7); +} + +.UserListPopInContainer{ + display:block; + width:1100px; + position:absolute; + left:50%; + top: 50%; + transform:translate(-50%, -48%); + text-align:left; + padding:30px; +} + +.group-name-block{ + margin-bottom:20px; +} + +#UserList .group-name-block span, +#UserList .group-name-block p, +#UserList .group-name-block .UserNumberBadge{ + display:inline-block; +} + +#UserList .group-name-block p{ + color:#3c3c3c; + font-weight:700; + font-size:15px; + margin-left:10px; +} + +#UserList .group-name-block span{ + padding:7px; + color: rgb(44,132,195); + background-color: #CDE9FD; + border-radius:25px; + font-size:15px; +} + +#UserList .group-name-block .UserNumberBadge{ + padding:3px 9px; + border-radius:15px; + background-color: rgb(44,132,195); + color: #CDE9FD; + font-size:10px; + margin-left:10px; + font-weight:700; +} + +#UserList .UserListAddFilterUsers{ + Position:relative; +} + +#UserList .AddUserBlock{ + padding:10px 0; + margin-bottom:30px; + display: flex; + align-items: center; +} + +#UserList .FilterUserBlock{ + position: absolute; + right: 0; + top: 15px; + display: flex; +} + +.FilterUserBlock .search-user{ + position: relative; +} + +#UserList .AddUserBlock p, +#UserList .AddUserBlock select, +#UserList .AddUserBlock button{ + display:inline-block; + margin:0 5px; +} + +#UserList .AddUserBlock select { + padding:11px 10px; +} + +#UserList .AddUserBlock button{ + font-size: 12px; + font-weight: 700; + padding: 16px 10px; + border: none; + margin-top: 1px; +} + +#UserList .AddUserBlock p{ + font-size:15px; + margin-left:0; +} + +#UserList .FilterUserBlock span, +#UserList .FilterUserBlock p, +#UserList .FilterUserBlock input{ + display:inline-block; +} + +#UserList .FilterUserBlock p{ + font-size:15px; + margin-right:5px; +} + +.UsersInGroupList{ + text-align:center; +} + +.UsernameBlock{ + margin:5px 10px; + display:inline-block; + margin-left:0px; + position:relative; + padding:0 10px; + border-radius:25px; +} + + +.UsersInGroupListContainer{ + max-height:315px; +} + +.UsersInGroupList p, +.UsersInGroupList span{ + display:inline-block; +} + + +.UsersInGroupList span{ + border-radius:25px; + padding:3px; + font-size:12px; +} + +.UsersInGroupList .icon-cancel:hover{ + cursor:pointer; +} + +.Tooltip{ + position:relative; + display:inline-block; + +} + +.Tooltip p.TooltipText{ + visibility: hidden; + width: 157px; + background-color:#f3f3f3; + color: #3c3c3c; text-align: left; - max-height: 200px; - overflow: auto; + padding: 5px 10px; + border-radius: 10px; + border:1px solid #3c3c3c; + font-weight:700; + font-size:10px; + position: absolute; + z-index: 4; + top:10px; + left:20px; + transition: opacity 0.3s; + z-index:101; } + +.Tooltip:hover p.TooltipText{ + visibility: visible; +} + +.ValidationUserAssociated{ + display:inline-block; + font-size:12px; + text-align:left; + padding: 4px 6px; + border-top-right-radius:10px; + border-bottom-right-radius:10px; + margin-left:-5px; + margin-right:10px; +} + +.ValidationUserAssociated p{ + margin:0; +} + +.ValidationUserDissociated{ + display:inline-block; + text-align:left; + padding: 6px; + border-radius: 30px; + margin-left: 8px; +} + +.ValidationUserDissociated p{ + margin:0 !important; + font-size:12px !important; + font-weight: 500 !important; +} + + +#UserList .FilterUserBlock .AmountOfUsersShown { + display:inline-block; + font-style:italic; +} + +#UserList .FilterUserBlock .AmountOfUsersShown p{ + font-size:12px; +} + +.LinkUserManager{ + text-align:center; + font-weight:700; + padding-top:20px; +} + +/********/ + +p.list_user { + text-align: center; + max-height: 200px; + overflow: auto; + margin: 0; +} + a.group_perm { position: absolute; - bottom: 5px; - right: 5px; + bottom: 10px; + right: 15px; +} +a.group_users { + position: absolute; + bottom: 10px; + left: 15px; } #userList .openUserDetails {visibility:hidden;} @@ -1489,7 +4370,7 @@ a.group_perm { .user_form_popin { width:750px; - height:430px; + height:450px; padding:20px; } @@ -1506,6 +4387,7 @@ a.group_perm { display:block; position:relative; } + .preview-box.icon-zoom-in:before { opacity:0; position:absolute; @@ -1532,6 +4414,27 @@ a.group_perm { opacity:0.5; } +/* Edit user popin*/ + + +.user_form_popin .ui-slider-horizontal .ui-slider-handle{ + background-color:#FFA646; + border:none; + border-radius:25px; + border: 1px solid #818181; +} + +.user_form_popin .ui-slider-horizontal .ui-slider-range-min{ + background-color:#818181; + border-radius:25px; +} + +.user_form_popin .ui-slider-horizontal{ + background-color:#e3e3e3; + border:none; + border-radius:25px; +} + /* table in help/quick_search.html */ table.qsearch_help_table { border-collapse:collapse; @@ -1583,17 +4486,30 @@ fieldset#environment legend i[class*="icon-"] { #headActions a span { display:inline; } + + #pwgHead .pwgHead-gallery-title { + width: calc(100% - 650px); + } + + .admin-head-username { + display: inline; + } } -.buttonLike, input[type="submit"], input[type="button"], input[type="reset"] { - font-size:12px; - border:none; - padding:13px 20px; - margin-left:0; - font-weight: bold; - transition: all 125ms ease-out; +.buttonLike, .buttonGradient, input[type="submit"], input[type="button"], input[type="reset"] { + font-size:12px; border:none; padding:13px 20px; margin-left:0; font-weight: bold; transition: all 125ms ease-out; } +.buttonGradient { + padding: 8px 10px; margin-left: 5px; + background: linear-gradient(135deg, rgb(255, 119, 0) 0%, rgb(249, 76, 93) 25%, rgb(201, 74, 140) 50%, rgb(249, 76, 93) 100%); transition: 0.3s ease; + cursor: pointer; + color: white !important; + background-size: 200% 100%; +} + +.buttonGradient:hover {background-position-x: 100%;} + #cboxLoadedContent input[type="submit"] {margin-bottom: 20px; float: none;} .selectAlbum, #permissions, .selectFiles {border: 0;} @@ -1601,16 +4517,14 @@ fieldset#environment legend i[class*="icon-"] { #permissions, .selectFiles {margin-top: 35px; margin-bottom: 20px;} .selectAlbumBlock {display: flex; margin-left: 10px; margin-top: 10px;} .icon-plus.cboxElement { - padding: 8px; - box-shadow: 0 1px 2px rgba(0, 0, 0, 0.16); - font-size: 15px; - margin-bottom: 8px; - transition: all 125ms ease-out; + padding: 8px; box-shadow: 0 1px 2px rgba(0, 0, 0, 0.16); font-size: 15px; margin-bottom: 8px; transition: all 125ms ease-out; } .icon-plus.cboxElement:hover {box-shadow: 0 2px 4px rgba(0, 0, 0, 0.16);} #albumSelection {margin-left: 25px;} .selectize-control.single .selectize-input {border-radius: 0; font-weight: bold;font-size: 12px;} .buttonLike {padding: 8px 10px; margin-left: 5px;} +.changeUsername .buttonLike {padding: 1px 10px;} +.changePassword .buttonLike {padding: 1px 10px;} .selectFilesButtonBlock {display: flex; margin-top: 10px;} .selectFilesinfo {margin-left: 15px; font-size: 90%; color: #999; display: flex; flex-direction: column; justify-content: center;} #uploader {margin-top: 25px; font-weight: bold !important;} @@ -1625,7 +4539,6 @@ li.plupload_delete a:hover {background: url("images/cancelhover.svg")!important; .plupload_total_file_size {margin-right: -8px;} .plupload_total_status {color: #707070!important; margin-right: -8px; font-weight: bold;} #photosAddContent .Addedphotos {border: none; margin-top: 35px;} -.plupload_upload_status {} .addAlbumEmpty {text-align: center; position: absolute; top: 45%; left: 50%; transform: translate(-50%, -50%);} .addAlbumEmptyCenter {position: relative; margin: auto; height: calc(100vh - 200px);} @@ -1639,12 +4552,7 @@ li.plupload_delete a:hover {background: url("images/cancelhover.svg")!important; .popinButtons {text-align: right; margin-top: 24px;} .popinButtons input[type="submit"] {margin-right: 0;} #albumCreationLoading { - background-color: #ffa744; - color: #3c3c3c; font-size: 12px; - border: none; - padding: 12.2px 28.4px; - font-weight: bold; - display: none; + background-color: #ffa744; color: #3c3c3c; font-size: 12px; border: none; padding: 12.2px 28.4px; font-weight: bold; display: none; } .popinField {margin-top: 30px; } .popinField.addAlbumFormParent {margin-top: 0;} @@ -1653,7 +4561,6 @@ li.plupload_delete a:hover {background: url("images/cancelhover.svg")!important; .selectedAlbum span { padding: 10px 12px; font-weight: bold; - background-color: #f5f5f5; text-align: center; margin-top: 20px; border-radius: 7px; @@ -1664,10 +4571,301 @@ li.plupload_delete a:hover {background: url("images/cancelhover.svg")!important; #addFiles i::before {margin-left: 13px; font-size: 15px;} .plupload_filelist_footer {display: none;} +.permitActionListButton .actionButtons {display: flex; flex-direction: column;} +.filterBlock {display: flex; flex-direction: column;} +.filterBlock li {width: 300px; height: auto;} +#filter_dimension {width: 600px;} +#filter_dimension .slider-choice, #filter_filesize .slider-choice {border-radius: 4px; padding: 2px 8px; margin: 0 3px;} +#checkActions a {background-color: #f0f0f0;padding: 6px 10px;color: #777;font-weight: bold;margin: 4px;border-radius: 5px;} +#filterList select {display: block; padding: 10px 18px; margin-bottom: 5px; width: 290px;} +#filterList li {margin-left: 25px; margin-bottom: 15px;} +#filter_tags .selectize-input.items.not-full.has-options, #filter_tags .selectize-input.items.not-full {padding: 10px 18px;} +#filter_tags .selectize-input {width: 300px; box-shadow: none; border-radius: inherit;} +#filter_tags .selectize-control.multi.plugin-remove_button {width: 300px !important;} +#filter_category .selectize-input.items.full.has-options.has-items {padding: 10px 18px; width: 610px; margin-bottom: 5px;} +#filterList .selectize-input.items.not-full.has-options {margin-bottom: 5px;} +#applyFilter, .addFilter-button {margin-left: 0;float: left;height: 45.6px;font-size: 1em;border: none;cursor: pointer;transition: ease 0.2s;display: flex;align-items: center;justify-content: center; padding: 0px 10px;} +#applyFilter.activated {background-color: #FFA646; color: #3C3C3C;} +#removeFilters {margin-top: 20px; margin-left: 13px;} +.filter_search_input {padding: 10px 0px; width: 300px;} +#permitAction {display: flex;} +#permitAction select {padding: 12px 10px; width: 280px; -webkit-appearance: none;} +.permitActionItem select { margin-bottom: 25px;} +#applyAction {padding: 10px 18px; margin-left: 0;} +.permitActionItem {margin-left: 30px; width: 225px;} +.permitActionItem .selectize-control.single.plugin-remove_button {width: auto !important;} +.permitActionItem .selectize-input.items.full.has-options.has-items {width: 500px !important; line-height: 23px;} +#action_associate {display: flex;} +#action_associate a:last-child {margin-left: 15px; padding: 10px;} +#applyAction i {margin-right: 15px;} +#action_delete_derivatives, #action_generate_derivatives {display: flex; flex-wrap: wrap; margin-top: 0px;} +.deleteDerivButtons a {border-radius: 4px; padding: 4px 10px; margin: 5px;} +.deleteDerivButtons {margin-bottom: 15px; margin-right: 51px; width: 100%; text-align: center;} +#action_delete_derivatives label, #action_generate_derivatives label {display: flex; margin-top: 4px; width: 50%;} +#action_delete_derivatives input[name="del_derivatives_type[]"], #action_generate_derivatives input[name="generate_derivatives_type[]"] {margin-right: 3px;} +.actionButtons:first-child::after,#filter_prefilter::before,#filter_category::before,#filter_level::before, +.permitActionListButton div::before, #action_level::after, .pictureLevels::before { + content: '\e835'; font-size: 17px; position: absolute; font-family: "fontello"; color: #6E6E6E; pointer-events: none; +} +.permitActionListButton div::before {margin-left: 250px; margin-top: 11px;} +.pictureLevels::before {margin-left: 216px; margin-top: 10px;} +.permitActionListButton div.hidden::after {display: none;} +#filter_prefilter::before {margin-left: 257px; margin-top: 35px;} +#filter_category .selectize-control.single .selectize-input::after {content: none;} +#filter_category {width: 600px;} +#filter_category::before {margin-left: 565px;margin-top: 33px; z-index: 2;} +#filter_level::before {margin-top: 34px; margin-left: 260px;} +#action_level::after {margin-top: -56px; margin-left: 254px;} +#filter_search input {width: 300px; box-sizing: border-box; padding: 11px 18px;} +#applyFilter, #addFilter,#filterList select, #filter_tags .selectize-input.items.not-full.has-options, .pictureLevels select, #permitAction select{ + font-family: "Open Sans", "Lucida Grande",Verdana,Arial,"Bitstream Vera Sans",sans-serif; + -webkit-appearance: none; + font-weight: 700; +} +#action_date_creation input, #action_title input, #action_author input {margin-right: 4px;} +#set_date_creation label {position: relative;} +#set_date_creation i {position: absolute;font-size: 20px;top: 50%;transform: translate(6px, -50%);opacity: 0.6;} +#set_date_creation input {background-color: #f8f8f8;padding: 8px;padding-left: 8px;padding-left: 35px;border-radius: 4px;border-color: #DDD;} +#set_date_creation {margin-top: 5px; margin-left: -2px;} +#action_title .large, #action_author .large {padding: 12px 10px; border: 1px solid #787777a6;margin-bottom: 8px;} +#action_add_tags .selectize-input.items.not-full.has-options, +#action_add_tags .selectize-input.items.not-full.has-options.focus.input-active.dropdown-active, .selectize-input.items.not-full, .selectize-input.items.full { + padding: 12px 10px; box-shadow: none; border-radius: 0px; border: 1px solid #787777a6; +} + +.pageNumberSelected {background-color: #ffaf58 !important; border: none !important; border-radius: 0 !important;} + + +#batchManagerGlobal UL.thumbnails {display: flex; flex-wrap: wrap; justify-content: flex-start; margin-left: 30px;} +#batchManagerGlobal ul.thumbnails .actions .icon-plus.cboxElement { + background-color: transparent; padding: 0; box-shadow: none; font-size: initial; margin-bottom: 0; +} +#batchManagerGlobal UL.thumbnails .wrap2 {width: 110px !important; height: 110px !important;} +#batchManagerGlobal UL.thumbnails IMG {margin-top: 0; width: 110px; height: 110px; border: 1px solid transparent;} +#batchManagerGlobal UL.thumbnails .wrap2 .icon-pencil {font-size: 15px; margin-left: 4px;} +#batchManagerGlobal UL.thumbnails .wrap2 .icon-plus {margin-right: 2px;} +#batchManagerGlobal li .font-checkbox [class*="icon-check"] {height: 20px; width: 20px; border-radius: 100%} +#batchManagerGlobal li.thumbSelected .font-checkbox [class*="icon-check"]::before { + content: '\E819'; + display: none; + animation: icon-check-animation 0.4s ease-out; +} + +@keyframes icon-check-animation { + 0% {transform: translate(-50% , -50%) scale(0);} + 75% {transform: translate(-50% , -50%) scale(1.3);} + 100% {transform: translate(-50% , -50%);} +} + +#batchManagerGlobal li.thumbSelected .font-checkbox [class*="icon-check"] {background-color: #fea744; border: solid 2px #fea744;} +#batchManagerGlobal .thumbSelected span.icon-check {display: block; z-index: 1;} +#batchManagerGlobal .thumbnails .wrap1 .icon-check-empty:before {content: '\E823';} +#batchManagerGlobal .thumbnails .font-checkbox [class*="icon-check"]::before {font-size: 17px; position: absolute; left: 50%; top: 50%; transform: translate(-50%, -50%);} +#batchManagerGlobal UL.thumbnails .wrap2 .icon-pencil:hover, #batchManagerGlobal UL.thumbnails .wrap2 .icon-zoom-square:hover {color: #fea744;} +#batchManagerGlobal .deleteDerivButtons a:hover, #batchManagerGlobal #checkActions a:hover {background-color: #ddd;color: #3A3A3A;text-decoration: none;} + +#batchManagerGlobal .thumbSelected img { filter: brightness(60%);-webkit-filter: brightness(60%);-moz-filter: brightness(60%); + -o-filter: brightness(60%); + -ms-filter: brightness(60%);} +#batchManagerGlobal li.thumbSelected:hover .font-checkbox [class*="icon-check"]::before {display: block;} +#filter_category .selectize-input.items.full.has-options.has-items .item, +#filter_category .selectize-input.items.not-full.has-options .item, +#filter_category .selectize-input.items.not-full .item {width: 561px; text-overflow: ellipsis;} +#filter_category .selectize-input.items.full.has-options.has-items, +#filter_category .selectize-input.items.not-full.has-options, +#filter_category .selectize-input.items.not-full {width: 100%;} +#forbidAction {text-align: center; font-weight: 600; padding: 25px 0; background-color: #f3f3f3;} +.selectionEmptyBlock {text-align: center; font-weight: 600; padding: 90px 0;} +#duplicates_options {display: flex; flex-direction: column;} +#batchManagerGlobal .thumbnails .wrap2 .icon-zoom-square::before {font-size: 15px; margin-top: 2.9px; margin-right: 7px;} +#progressBar_pbImage { + width: 300px !important; border-radius: 15px; height: 8px !important; margin-top: 5px !important; background-size: cover; + background-repeat: no-repeat; background-color: #f5f5f5; + } +#regenerationMsg {width: 360px;} +#progressBar {display: flex;} +#progressBar_pbText {margin-left: 15px;} +#filter_search .icon-help-circled::before {margin-right: 5px; color: #777;} +.dimensionSlidersBlocks {display: flex; flex-direction: column; margin-bottom: 8px;} +.dimensionSlidersTitleButtons, .dimensionSlidersRatioButtons {display: flex; justify-content: space-between;} +.dimensionSlidersTitleButtons {margin-bottom: 5px;} +.dimensionSlidersRatioButtons {margin-bottom: 15px;} +#filter_dimension blockquote div:last-child .ui-slider-horizontal {margin-top: 5px;} +#batchManagerGlobal .ui-slider-horizontal .ui-slider-handle {top: -.7em !important; width: 1.4em; height: 1.4em;} +#batchManagerGlobal .ui-slider-handle.ui-state-default.ui-corner-all {border-radius: 10px;} +#action_delete .errors {display: block; min-height: initial; margin: 10px 0px 0px 0px;} + +#batchManagerGlobal .ui-slider-horizontal .ui-slider-range {height: 2px;} +#batchManagerGlobal .ui-slider-horizontal {height: 2px;} +#batchManagerGlobal .ui-slider-range.ui-widget-header.ui-corner-all {margin-top: -1px;} +#batchManagerGlobal .font-checkbox.selected span:first-child::before {content: '\f192';} +#action_delete_derivatives .font-checkbox span, #action_delete_derivatives .font-checkbox span {margin-right: 5px;} +#action_generate_derivatives, #action_delete_derivatives {width: 320px;} + /* album manager */ .selectedAlbum.cat-list-album-path { - margin: 40px 0 30px 0; + margin: 30px 0 30px 0; } -.selectedAlbum.cat-list-album-path span { - background-color: transparent; -} \ No newline at end of file + +.icon-toggle-off:before{ + font-weight:600; +} + +/* album search */ + +.search-album { + display: flex; + justify-content: center; + align-items: center; + margin: 10px; + margin-bottom: 25px +} + +.search-album-cont { + position: relative; + display: flex; + align-items: center; +} + +.search-album-label { + font-weight: bold; + font-size: 16px; + padding: 10px; +} + +.search-album-num-result { + margin-left: 10px; +} + +.search-album-input-container { + position: relative; + display: inline; +} + +.search-album-input-container .search-icon{ + font-size: 20px; +} + +.search-album-help { + display: none; + cursor: help; + font-size: 20px; +} + +.search-album-help, .search-album-num-result { + position: absolute; + right: 0; + transform: translateX(calc(100% + 10px)); +} + +.search-album-ghost, .search-album-result { + display: flex; + flex-direction: column; +} + +.search-album-elem, .search-album-ghost div { + height: 64px; + border-radius: 5px; + margin: 10px 20px; + overflow: hidden; +} + +.search-album-ghost div { + background: #f3f3f3; + background-image: linear-gradient(0.25turn, #eee, rgb(250, 250, 250)); + background-attachment: fixed; +} + +.search-album-elem { + box-shadow: 0px 2px 3px #00000024; + background-color: #fafafa; + border-radius: 5px; + color: #777; + padding-left: 20px; + display: flex; + align-items: center; + position: relative; +} + +.search-album-elem span{ + font-size: 20px; + padding: 8px; + display: inline-block; + border-radius: 50%; +} + +.search-album-elem p{ + font-size: 16px; + margin: 10px; + white-space: nowrap; + font-weight: 600; +} + +.search-album-action-cont { + display: none; + position: absolute; + right: 0%; + top : 50%; + height: 100%; + transform: translate(0, -50%); + align-items: center; + flex-direction: row-reverse; + overflow: hidden; +} + +.search-album-elem:hover .search-album-action-cont { + display: flex; +} + +.search-album-action { + display: flex; + align-items: center; +} + +.search-album-action a { + padding: 30px 15px; + font-weight: bold; + cursor: pointer; + height: 100%; + border-left: 1px solid #00000012; + background-color: #00000003; + text-align: center; +} + +.search-album-action a:hover { + color: #444; + text-decoration: none; + background-color: #FFA646; +} + +.search-album-noresult { + opacity: 0.3; + text-align: center; + width: calc(100% - 205px); + font-weight: bold; + font-size: 30px; + position: absolute; + top: calc(50% + 200px / 2); + display: none; +} + +.doubleSelect { + width: 100%; +} + +.doubleSelect td { + width: 50%; +} + +#cancelUpload { + margin-left:10px; + background-color: #999999; +} + +#cancelUpload:hover { + background-color: #ff9b32; + color: white; + text-decoration: none; +} + +.doubleSelect p {display:flex; justify-content: center;} \ No newline at end of file diff --git a/admin/themes/roma/images/resizable-e.gif b/admin/themes/roma/images/resizable-e.gif deleted file mode 100644 index 36451a670..000000000 Binary files a/admin/themes/roma/images/resizable-e.gif and /dev/null differ diff --git a/admin/themes/roma/images/resizable-n.gif b/admin/themes/roma/images/resizable-n.gif deleted file mode 100644 index fe11bf420..000000000 Binary files a/admin/themes/roma/images/resizable-n.gif and /dev/null differ diff --git a/admin/themes/roma/images/resizable-ne.gif b/admin/themes/roma/images/resizable-ne.gif deleted file mode 100644 index 4819fdf1c..000000000 Binary files a/admin/themes/roma/images/resizable-ne.gif and /dev/null differ diff --git a/admin/themes/roma/images/resizable-nw.gif b/admin/themes/roma/images/resizable-nw.gif deleted file mode 100644 index 7f128dac2..000000000 Binary files a/admin/themes/roma/images/resizable-nw.gif and /dev/null differ diff --git a/admin/themes/roma/images/resizable-s.gif b/admin/themes/roma/images/resizable-s.gif deleted file mode 100644 index 908576c9b..000000000 Binary files a/admin/themes/roma/images/resizable-s.gif and /dev/null differ diff --git a/admin/themes/roma/images/resizable-se.gif b/admin/themes/roma/images/resizable-se.gif deleted file mode 100644 index 0db439888..000000000 Binary files a/admin/themes/roma/images/resizable-se.gif and /dev/null differ diff --git a/admin/themes/roma/images/resizable-sw.gif b/admin/themes/roma/images/resizable-sw.gif deleted file mode 100644 index e983320f6..000000000 Binary files a/admin/themes/roma/images/resizable-sw.gif and /dev/null differ diff --git a/admin/themes/roma/images/resizable-w.gif b/admin/themes/roma/images/resizable-w.gif deleted file mode 100644 index fe2a79034..000000000 Binary files a/admin/themes/roma/images/resizable-w.gif and /dev/null differ diff --git a/admin/themes/roma/theme.css b/admin/themes/roma/theme.css index fda07a44c..05f1a149d 100644 --- a/admin/themes/roma/theme.css +++ b/admin/themes/roma/theme.css @@ -71,8 +71,6 @@ h1 { .content dl, dd { margin:5px; } - -UL.thumbnails span.wrap2:hover { background-color#7CBA0F; color:#666; } UL.thumbnails span.wrap2 { background-color:#333; } @@ -80,9 +78,9 @@ UL.thumbnails span.wrap2 { /* .throw, */ td h3 { background-image: url(images/fillet.png); background-repeat: repeat-x; } /* borders */ -fieldset { border: 2px solid #333; } +fieldset { border: none; } -.buttonLike, INPUT, SELECT, TEXTAREA { +INPUT, SELECT, TEXTAREA { border: 1px solid #666; } input:focus, select:focus, textarea:focus { @@ -99,7 +97,7 @@ INPUT[type="submit"]:hover , INPUT[type="reset"]:hover { cursor: pointer; } INPUT.bigbutton:hover { background-color: #222; color:#f33; border: 0; } .throw { font-size: 120%; line-height: 26px; padding-top: 10px; font-weight: bold; color: #ff3363; } label { cursor:pointer } -.categoryLi, .menuLi { background: #333 } +.menuLi { background: #333 } .menuLi_hidden { background: #333 !important; } a.Piwigo { font-family: verdana, arial, helvetica, sans-serif !important; @@ -109,23 +107,42 @@ a.Piwigo:hover span.Piwigo { border-bottom: 1px solid #FF3363; } -.categoryUl>li:not(.virtual_cat) { - background:url(images/stripe-cat.png); -} - /* RADU - I comment this because it makes FF form controls activation very slow) *, *:focus, *:active, input:active, a:active, input:focus, a:focus { outline: none; -moz-outline-width: 0px; } */ a { color:#bbb; } a:hover, a:active { color: #f70; cursor: pointer; } -.content .navigationBar {color:#666;} ul.actions, .content form#waiting {text-align:center;} #adminHome A, #menubar li A, #menubar dt { color: #8d8d8d; } +/* Filter */ + +.search-input { + background-color: #333 !important; +} + +.search-input:hover { + background-color: #222 !important; +} + +/* Pagination */ + +.pagination-per-page { + background-color: #555; +} + +.pagination-per-page span { + color: #777; +} + +.pagination-per-page a:hover { + background-color: #888; color: #444; +} + /* jQuery tooltips */ .ui-tooltip { color: #eee; @@ -143,14 +160,6 @@ ul.actions, .content form#waiting {text-align:center;} .ui-resizable .ui-resizable-handle { display: block; } body .ui-resizable-disabled .ui-resizable-handle { display: none; } /* use 'body' to make it more specific (css order) */ body .ui-resizable-autohide .ui-resizable-handle { display: none; } /* use 'body' to make it more specific (css order) */ -.ui-resizable-n { cursor: n-resize; height: 6px; width: 100%; top: 0px; left: 0px; background: transparent url(images/resizable-n.gif) no-repeat scroll center top; } -.ui-resizable-s { cursor: s-resize; height: 6px; width: 100%; bottom: 0px; left: 0px; background: transparent url(images/resizable-s.gif) no-repeat scroll center top; } -.ui-resizable-e { cursor: e-resize; width: 6px; right: 0px; top: 0px; height: 100%; background: transparent url(images/resizable-e.gif) no-repeat scroll right center; } -.ui-resizable-w { cursor: w-resize; width: 6px; left: 0px; top: 0px; height: 100%; background: transparent url(images/resizable-w.gif) no-repeat scroll right center; } -.ui-resizable-se { cursor: se-resize; width: 9px; height: 9px; right: 0px; bottom: 0px; background: transparent url(images/resizable-se.gif); } -.ui-resizable-sw { cursor: sw-resize; width: 9px; height: 9px; left: 0px; bottom: 0px; background: transparent url(images/resizable-sw.gif); } -.ui-resizable-nw { cursor: nw-resize; width: 9px; height: 9px; left: 0px; top: 0px; background: transparent url(images/resizable-nw.gif); } -.ui-resizable-ne { cursor: ne-resize; width: 9px; height: 9px; right: 0px; top: 0px; background: transparent url(images/resizable-ne.gif); } #ui-datepicker-div {background-color: #555; border:2px solid #333;} #ui-datepicker-div .ui-datepicker-title {color:white;} @@ -196,7 +205,7 @@ INPUT[type="text"].large { width: 317px; } } .buttonLike:disabled, input[type="button"]:disabled, input[type="submit"]:disabled, input[type="reset"]:disabled { - color:#555; + color:#555; border-color:#666; cursor:not-allowed; background-color: #666; @@ -221,25 +230,32 @@ a.stat-box:hover { color:#aeaeae; } -.stat-box-yellow i { - color:#9b5200; - background-color: #ffa744; +.stat-data-selector label { + color: #777; + padding: 10px; + background-color: #333; + transition: 0.2s ease; } -.stat-box-red i { - background-color: #c64444; - color: #650101; + +.stat-data-selector label:hover { + background-color: #555 } -.stat-box-purple i { - background-color: #ce4baa; - color: #52003b; + +.chart-title { + color: #777; } -.stat-box-green i { - background-color: #4ac641; - color: #014400; + +.intro-charts .tooltip { + background-color: #333333; + box-shadow: none; } -.stat-box-blue i { - background-color: #379bbc; - color: #003751; + +.intro-charts .tooltip::after { + border-color: transparent transparent #333333 transparent; +} + +.intro-charts .tooltip .tooltip-details-title, .intro-charts .tooltip-title { + color:#aeaeae !important; } /* hacks */ @@ -250,38 +266,46 @@ a.stat-box:hover { * html .bigtext { margin-right: 300px; } .themeBox {background-color:#333;} -.themeBox IMG {border:1px solid #666;} .themeName {color:#ccc;} +.themeSelect {background-color: #333; box-shadow: none;} +.themeSelect.themeDefault {background-color: #f9852c;} +.themeSelect.themeDefault a, .themeSelect.themeDefault span, .themeSelect.themeDefault .themeName{ color:#333;} .themeActions A {border-bottom:none;} -.themeDefault {background-color:#555;} - +.themeActions span {background-color: #888888;color: #666666;} +.showInfo-dropdown-header a {color:#3A3A3A} #pluginsMenuSeparator {border:1px solid #333;} #helpContent, #pLoaderPage, #ftpPage, #ftpPage LEGEND {color:#aaa;} -.pluginBox, .pluginMiniBox, .groups li {background-color:#333;color:#999;border-color:#333;} -.pluginBoxNameCell, .pluginMiniBoxNameCell {color:#ddd;} +.pluginBox, .pluginContent, .pluginMiniBox, .groups li, .groups .GroupContainer {background-color:#333;color:#999;border-color:#333; box-shadow: none;} +.pluginBoxNameCell, .pluginMiniBoxNameCell {color:#aaa;} .pluginBox.incompatible, .pluginMiniBox.incompatible {border-color:#800 !important;} .pluginBoxes .merged, .pluginBoxes .missing {background-color:#422;border:1px solid #800;} +.pluginActionLevel1, .pluginActionLevel2 {color: #333;} +.pluginActionLevel2 {background-color: #bbbbbb;} +.pluginFilter {color: #c1c1c1;} +.pluginFilter input {border-color: #c1c1c1;} .languageBox {background-color:#333;} .languageName {color:#ccc;} .languageDefault {background-color:#555; color:#aaa;} +.groupMessage {color: #c2f5c2 ;background-color: #0a0;} +.groupError {color: #ffd5dc;background-color: #f22;} +.group-rename input {color: #999;} +.GroupBackgroudSelected .Group-name {color: #333 !important;} +.GroupContainer .group_name-editable {background-color: #323232 !important; border: 1px solid #666 !important;} +.GroupContainer .group-rename .icon-ok {color: #222;} + /* Batch Manager */ #batchManagerGlobal .thumbnails .font-checkbox [class*="icon-check"]::before { color:#777; } -#batchManagerGlobal .thumbnails li:hover .font-checkbox [class*="icon-check"]::before { - color:white; -} - #batchManagerGlobal li.thumbSelected .font-checkbox [class*="icon-check"]::before { - color:white; + color: #3C3C3C; display: block; } #batchManagerGlobal UL.thumbnails li:hover .wrap2 { - background-color: #ff3363; color: white; } @@ -292,8 +316,26 @@ a.stat-box:hover { } #batchManagerGlobal #selectedMessage { - background-color: #555; - color:white; + color: #FFA646; + font-weight: bold; +} + +#batchManagerGlobal #applyFilter { + color: #3C3C3C; + background-color: #ececec; +} + +#batchManagerGlobal #applyFilter:hover { + color: white; + background-color: #ffc17e; +} + +#batchManagerGlobal #filterList li { + background-color: #3C3C3C; +} + +#batchManagerGlobal legend { + color: #BFBFBF; } /* TokenInput (with Facebook style for ROMA) */ @@ -308,30 +350,386 @@ div.token-input-dropdown ul li.token-input-selected-dropdown-item {background-co background: #3c3939; } -/* Album Properties */ -#albumThumbnail img, #albumLinks { - border-color:#333; +/* Picture edit */ +#picture-content input[type=text], #picture-content textarea, #picture-content .selectize-input, #picture-content select { + background-color: #444444; + border: 1px solid #666; + color: #c1c1c1; +} + +.picture-infos-title, .picture-infos-icon { + color: #c1c1c1; +} + +.picture-infos-category { + border-color: #333; +} + +/* Album edit */ + +#catModify input[type="text"], #catModify textarea{ + background-color: #444444; + border: 1px solid #666; + color: #c1c1c1; +} + +#catHeader .catAction strong, #catHeader .catLock strong { + color: #c1c1c1; +} + +#catHeader .catAction a:hover { + color: white; } .selectedComment {background-color:#555; color:#fff;} -.groups label>p { +.groups .Group-name>p { color: #ccc; font-size: 1.2em; background-color:#111; } + label>p.group_select { - color: #fff; + color: #d5d5d5; background-color:#555; } +.groups .GroupContainer, +.groups .showCreateGroup, +.groups .addGroupFormBlock{ + font-size: 1.2em; + background-color:#333; +} + +.groups .Group-name>p, +.addGroupForm .addGroupFormTitle{ + color:#3c3c3c; + font-size: 1.2em; +} + +.groups .GroupContainer, +.groups .showCreateGroup, +.groups .addGroupFormBlock{ + box-shadow: -1px 1px 2px #1a1a1a; +} + +.groups .showCreateGroup:hover #addGroup, +.groups .addGroupFormTitle{ + color:#c0c0c0; + text-decoration:none; +} + +.groups #addGroup{ + color:#777; +} + +.groups .group_number_users{ + color:#777; +} + +.addUserButton:hover{ + text-decoration:none; + color:#3c3c3c; + background-color:#f3f3f3; +} + +.groups p.list_user{ + color:#3c3c3c; +} + +label>p.group_select { + color: #000; + background-color:#C2F5C2; +} + +.groups input[type="text"]{ + background-color:#444444; + border:1px solid #d5d5d5; +} + +.groups .AddUser .icon-user-add::before{ + background-color:#f3f3f3; + color:#e0e0e0; +} + +/*Edit group name*/ + +.groups .Group-name{ + color:#777; +} + +.groups .Group-name .Group-name-container p:focus{ + border:1px solid #303030!important; + background-color:#1a1a1a; +} + +/*Add Group */ + +.groups fieldset INPUT[type="text"]::placeholder{ + color:#d5d5d5; +} + +.groups button.submit{ + background-color:#ffa744; + color:#3c3c3c; +} + +.groups button.submit:hover{ + background-color:#ff7700; +} + +/* Group Options*/ + +#GroupOptions{ + background-color:#5c5c5c; + box-shadow: -1px 1px 2px #393939; + color:#c0c0c0; +} + +/*Group manager buttons*/ + +.groups .manage-users, +.groups .manage-permissions{ + border:1px solid #777; + background-color:transparent; +} + + +.groups .manage-users:hover, +.groups .manage-permissions:hover{ + background-color:#ffa744; + border:1px solid #ffa744; + cursor:pointer; +} + +/*UserList Pop in*/ + + +.UserListPopInContainer{ + background-color:#444; + border-radius:10px; + +} + +#UserList .AddUserBlock button{ + background-color:#ffa744; + color:#3c3c3c; +} + +#UserList .AddUserBlock button:hover{ + background-color:#ff7700; +} + +#UserList .AddUserBlock input, +#UserList .FilterUserBlock input{ + background-color:#2c2c2c; +} + +#UserList .AddUserBlock p, +#UserList .FilterUserBlock{ + color:#c0c0c0; +} + +.UsersInGroupList span{ + color:#d5d5d5; +} + +.UsersInGroupList .icon-cancel:hover{ + color:#ff7700; +} + +.LinkUserManager{ + color:#3c3c3c; +} + +/* Selection mode */ + +.slider { + background-color: #333; +} + +.slider:before { + background-color: #151515; +} + +input:checked + .slider { + background-color: #ff8c27; +} + +input:focus + .slider { + box-shadow: 0 0 1px #FFC27F; +} + +#selection-mode-block{ + background-color: #232323; + border-left:1px solid #1a1a1a; +} + +.GroupBackgroudSelected{ + background-color:#f9852c!important; + box-shadow: none !important; +} + +.OrangeIcon{ + background-color:#ae5d1e !important; + color:#faa96b!important; +} + +.OrangeFont{ + color:#fddaba!important; +} + +.BlackFont{ + color:black!important; +} + +/*Selection mode content*/ + +.SelectionModeGroupList{ + color:#c0c0c0; +} + +#selection-mode-block button{ + border: 1px solid #e7e7e7; + color:#c0c0c0; +} + + +#selection-mode-block button:hover{ + background-color: #ffa744; + border: 1px solid #ffa744; + color:#3c3c3c; +} + +#ConfirmGroupAction{ + color:#3c3c3c; +} + +#ConfirmGroupAction p{ + color: #777; +} + +.ConfirmDeleteButton{ + background-color: #ffa744; +} + +/*Merge Options*/ + + +#MergeOptionsBlock p{ + color: #777; +} + +#MergeOptionsBlock a{ + color:#c0c0c0; +} + +/*Merge options Radio buttons*/ + +.ConfirmMergeButton{ + background-color: #ffa744; +} + +.MergeOptionsContainer select{ + background-color: #1a1a1a; + box-shadow: 0 0 2px #c5c5c5; +} + +/*Group checkbox*/ + +.groups .group-checkmark { + border:2px solid #c76a23; +} + +.groups .Group-checkbox:hover input ~ .group-checkmark { + background-color: #c76a23; +} + +.groups .Group-checkbox input:checked ~ .group-checkmark { + background-color: #c76a23; +} + +.groups .Group-checkbox .group-checkmark:after { + border: solid #ebebeb; + border-width: 0 3px 3px 0; +} + +/*Group manager buttons*/ + +.groups .manage-users, +.groups .manage-users:hover, +.groups .manage-permissions, +.groups .manage-permissions:hover{ + color:#c0c0c0; +} + +.groups .manage-users:hover, +.groups .manage-permissions:hover{ + color:#3c3c3c; +} + +/*UserList Pop in*/ + +.CloseUserList{ + color:white; +} + +#UserList .group-name-block p{ + color:#9e9e9e; +} + +.UsernameBlock{ + background-color:#393939; + color:#9e9e9e; +} + +.Tooltip p.TooltipText{ + + color:#f3f3f3; + background-color: #3c3c3c; + border:1px solid #f3f3f3; +} + +.ValidationUserAssociated, .ValidationUserDissociated{ + background-color:#00aa00; +} + +.ValidationUserAssociated p, .ValidationUserDissociated p{ + color:#c2f5c2 !important; +} + +.groups .showCreateGroup .icon-plus-circled, +#UserList .group-name-block span, +.groups .showCreateGroup .icon-plus-circled{ + color:#003751; + background-color: #379bbc; +} + +#UserList .group-name-block .UserNumberBadge{ + background-color:#003751; + color: #379bbc; +} + +/*------*/ + .userSeparator { color:#666; visibility: hidden; } -#configContent fieldset:not(.no-border) { - border-top-color:#444; +/*Edit user popin*/ + +.user_form_popin .ui-slider-horizontal .ui-slider-handle{ + background-color:#FFA646; + border:1px solid #5a5a5a; +} + +.user_form_popin .ui-slider-horizontal .ui-slider-range-min{ + background-color:#5a5a5a; +} +.user_form_popin .ui-slider-horizontal{ + background-color:#151515; + } table.dataTable tr.even { @@ -379,21 +777,12 @@ table.qsearch_help_table td { #wImg {border-color:#555;} -FORM#categoryOrdering p.albumTitle a { color: #c0c0c0; } -FORM#categoryOrdering p.albumActions a { border-left:1px solid #555; } -.albumInfos {color: #808080;} -FORM#categoryOrdering p.albumActions a:hover {background-color: #ffa646; color: #3A3A3A;} -FORM#categoryOrdering p.albumActions .userSeparator {border: 1px solid #d5d5d5;} -#addAlbumOpen, #autoOrderOpen {border: 1px solid #777; color: #c0c0c0;} -#addAlbumOpen:hover, #autoOrderOpen:hover {border: 1px solid #aaa; text-decoration: none;} .afterUploadActions a {color: #3C3C3C; font-weight: bold; background-color: #FFA646;} .afterUploadActions a:hover {text-decoration: none; background-color: #ff7700;} .font-checkbox {color: #898888;} .font-checkbox:hover {color: #ffa646;} .with-border legend, .with-border strong {color: #c0c0c0;} .font-checkbox.selected {color: #ffa646;} -#formCreateAlbum input[name="virtual_name"] {border: 1px solid #7e7e7e; color: #F8F8F8; transition: all 125ms ease-out;} -#formCreateAlbum input[name="virtual_name"]:hover {border-color: #A5A5A5;} LEGEND {color: #c1c1c1;} a#showPermissions {color: #D6D6D6; border: 1px solid #D6D6D6; background-color: #414141;} @@ -409,12 +798,309 @@ li.plupload_delete a {background: url("images/cancel.svg")!important; background li.plupload_delete a:hover {background: url("images/cancelhover.svg")!important; background-size: cover!important;} .addAlbumEmpty {color: #c1c1c1;} -.addAlbumEmpty a {background-color: #FFA646; color: #3C3C3C;} -.addAlbumEmpty a:hover{background-color: #ff7700; color: #3C3C3C;} .buttonSeparator {color: #c1c1c1;} #cboxTitle {color: #7f7f7f !important;} #addAlbumForm {color: #999;} .selectedAlbum span {background-color: #555; color: #999;} #uploadForm li.plupload_droptext {background-color: #343434!important; color: #777 !important;} .addFilesButtonChanged {background-color: #888;} -.addFilesButtonChanged:hover {background-color: #777;} \ No newline at end of file +.addFilesButtonChanged:hover {background-color: #777;} +.categoryBox, .addAlbum {background-color: #333 !important; box-shadow: -1px 1px 2px #1a1a1a;} + +#checkActions a, .deleteDerivButtons a {background-color: #393939;} +#addFilter, #filterList select, .pictureLevels select, #permitAction select {background-color: #444444; color: #BFBFBF} +#filter_category .selectize-input.items.full.has-options.has-items, #filter_tags .selectize-input.items.not-full.has-options, +#filter_tags .selectize-input.items.not-full, #filter_search input, #action_associate .selectize-input.items.full.has-options.has-items, +#action_dissociate .selectize-input.items.full.has-options.has-items { + background-color: #444444; + color: #BFBFBF; + border: 1px solid #666; + box-shadow: none; +} +#permitAction select {background: #3C3C3C; color: #C0C0C0;} +#set_date_creation input { + background: #3C3C3C; + color: #C0C0C0; +} +#action_associate a:last-child {color: #C0C0C0; background-color: #464646;} +#filter_dimension .slider-choice, #filter_filesize .slider-choice {background-color: #393939;} +#filter_dimension .slider-choice:hover, #filter_filesize .slider-choice:hover, .dimension-cancel:hover { + text-decoration: none; background-color: #ffa646 !important; color: initial; +} +#forbidAction, .selectionEmptyBlock, .noFilter {background-color: #5a5757; color: #c1c1c1;} + +.pageNumberSelected {background-color: #b4b4b4;} +#action_title .large, #action_author .large {background-color: #333; color: #fefefe;} +#addFilter optgroup, #batchManagerGlobal option[disabled] {background-color: #555;} +.dimension-cancel {background-color: #555 !important;} +.pageNumberSelected {color: #777 !important; font-weight: bold;} + +#batchManagerGlobal .ui-state-default, #batchManagerGlobal .ui-widget-content .ui-state-default,#batchManagerGlobal .ui-widget-header .ui-state-default { + border: 1px solid #ffaf58; background: #ffaf58; +} +#batchManagerGlobal .ui-state-hover,#batchManagerGlobal .ui-widget-content .ui-state-hover, #batchManagerGlobal .ui-widget-header .ui-state-hover { + background: #ffaf58; +} +#batchManagerGlobal .ui-state-focus, #batchManagerGlobal .ui-widget-content .ui-state-focus,#batchManagerGlobal .ui-widget-header .ui-state-focus { + border: 1px solid #ffaf58; background: #ffaf58; +} +#batchManagerGlobal .ui-state-active, #batchManagerGlobal .ui-widget-content .ui-state-active,#batchManagerGlobal .ui-widget-header .ui-state-active { + background: #ffaf58; +} +#batchManagerGlobal .ui-widget-content {background: #666; border: 1px solid #666;} +#batchManagerGlobal .ui-slider .ui-slider-range {background-color: #aaaaaa;} +#batchManagerGlobal .ui-slider-range.ui-widget-header.ui-corner-all {border: 1px solid #ffaf58; background-color: #ffaf58;} + +#batchManagerGlobal #applyFilter { + color: #BFBFBF; + background-color: #3c3c3c; +} + +#batchManagerGlobal #applyFilter:hover { + background-color: #202020; +} +/*Error message*/ + +.errors { + color: #ffc4bf; + background-color: #d31100; + border-left: 4px solid #ffc4bf; +} + +.errors li{ + color: #ff0303; +} + +.errors a{ + background-color: #ff4838; + padding: 2px 7px; + color: #ffe8e6; +} + +/*Success message*/ + +.infos { + color: #9bff92; + background-color: #10bb00; + border-left: 4px solid #9bff92; +} + +.infos li{ + color: #9bff92; +} + +.infos a{ + background-color: #12e100; + padding: 2px 7px; + color: #e3ffe1; +} + +/*Warning message*/ + +.warnings { + color: #ffc58c; + background-color: #ee6300; + border-left: 4px solid #ffc58c; +} + +.warnings a{ + background-color: #ff8e3d; + padding: 2px 7px; + color: #ffedda; +} + +/*announcement message*/ + +.messages { + color: #45a8ff; + background-color: #003360; + border-left: 4px solid #45a8ff; +} + +.eiw .messages a { + background-color: #00529b; + color: #a7d6ff; + padding: 2px 7px; +} + +/* Popin Jconfirm*/ + +.jconfirm .jconfirm-box { + background-color: #333 !important; +} + +.jconfirm-title { + color: #777 !important; +} + +.jconfirmAlert .jconfirm-icon-c i { + color:#c2f5c2 !important; + background-color:#0a0 !important; +} + +.jconfirm .jconfirm-box .jconfirm-buttons button.btn-default { + color: #777 !important; + background-color: #222 !important; +} + +.jconfirm .jconfirm-box .jconfirm-buttons button.btn-default:hover { + color: #222!important; + background-color: #777 !important; +} + +.jconfirm .jconfirm-box.loading::before { + background: #333 !important; +} + +/* Tag Manager */ + +.tag-box, +.tag-header #add-tag:not(.input-mode) .add-tag-label, +.tag-header .selection-controller a{ + background-color: #333 !important; +} + +.tag-container .tag-box p { + color: #aaa; +} + +.tag-header #add-tag.input-mode .add-tag-container input:hover { + background-color: #222 !important; +} + +.tag-header .selection-controller p { + color: #c1c1c1; +} + +.tag-container.selection .tag-box[data-selected="1"] { + background-color: #f9852c !important; + box-shadow: none; +} + +.tag-container .tag-box[data-selected="1"] .select-checkbox { + background-color: #c76a23; + border-color: #c76a23; +} + +.tag-container .tag-box .tag-rename .tag-name-editable { + background-color: #666; + color: white; + border-color: #333; +} + +.tag-container .tag-box .tag-rename span { + color: #D9D9D9; +} + +.tag-select-message { + background: #0051a57d; + color: #bce5f7; +} + +.tag-select-message a { + background-color: #bce5f7; + color: #0051a5; +} + +.tag-info.tag-warning { + color: #ffdd99; + background-color: #ee8800; +} + +.tag-info.tag-warning a { + color: white; +} + +.tag-info.tag-message { + color: #c2f5c2 ; + background-color:#0a0; +} + +.tag-info.tag-error { + color: #ffd5dc; + background-color:#f22; +} + +/* Album Move (and album search) */ +.move-cat-container, .search-album-elem { + background-color: #333; + box-shadow: none; +} + +.cat-move-order-popin .order-popin-container { + background-color: #444; + color: white; +} + +.cat-move-order-popin .album-name { + color: white; +} + +/* Album search */ +.search-album-ghost div { + background-image: linear-gradient(#333, #444); +} + +/* Icon colors*/ + +.icon-red { + background-color: #c64444; + color: #650101; +} + +.icon-yellow { + color: #9b5200; + background-color: #ffa744; +} + +.icon-purple { + background-color: #ce4baa; + color: #52003b; +} + +.icon-blue { + background-color: #379bbc; + color: #003751; +} + +.icon-green { + background-color: #4ac641; + color: #014400; +} + +.themeBox{ + box-shadow: 0 0 5px #333; +} + +.pluginActionLevel1, +.themeActions a:nth-child(1) { + background-color: #ffa744; +} + +.themeActions a:nth-child(2), +.plugin-inactive .pluginContent .pluginActionLevel1{ + background-color:#999999; +} + +.pluginUnavailableAction{ + background-color:#888; + color:#666; +} + +.addAlbum label{ + color:#aaa; + margin:-5px 0; +} + +.popin-title, +.cat-move-order-popin .album-name{ + color:#999; +} + +.cat-move-order-popin .close-popin{ + color:#ccc; +} + +.move-cat-container .move-cat-toogler{ + color:#ffa744; +} \ No newline at end of file diff --git a/admin/updates_pwg.php b/admin/updates_pwg.php index 46a7635f3..247d6020b 100644 --- a/admin/updates_pwg.php +++ b/admin/updates_pwg.php @@ -1,10 +1,10 @@ -get_piwigo_new_versions(); // +-----------------------------------------------------------------------+ // | Step 0 | // +-----------------------------------------------------------------------+ if ($step == 0) { - $new_versions = $updates->get_piwigo_new_versions(); - if (isset($new_versions['minor']) and isset($new_versions['major'])) { $step = 1; $upgrade_to = $new_versions['major']; - - $template->assign( - array( - 'MINOR_VERSION' => $new_versions['minor'], - 'MAJOR_VERSION' => $new_versions['major'], - ) - ); } elseif (isset($new_versions['minor'])) { @@ -86,11 +78,6 @@ if ($step == 2 and is_webmaster()) // +-----------------------------------------------------------------------+ if ($step == 3 and is_webmaster()) { - if (isset($_POST['dumpDatabase'])) - { - updates::dump_database(isset($_POST['includeHistory'])); - } - if (isset($_POST['submit']) and isset($_POST['upgrade_to'])) { updates::upgrade_to($_POST['upgrade_to'], $step); @@ -101,6 +88,20 @@ if ($step == 3 and is_webmaster()) $template->assign('missing', $updates->missing); } +// +-----------------------------------------------------------------------+ +// | Check for requirements | +// +-----------------------------------------------------------------------+ + +if (isset($new_versions['minor_php']) and version_compare(phpversion(), $new_versions['minor_php'], '<')) +{ + $template->assign('MINOR_RELEASE_PHP_REQUIRED', $new_versions['minor_php']); +} + +if (isset($new_versions['major_php']) and version_compare(phpversion(), $new_versions['major_php'], '<')) +{ + $template->assign('MAJOR_RELEASE_PHP_REQUIRED', $new_versions['major_php']); +} + // +-----------------------------------------------------------------------+ // | Process template | // +-----------------------------------------------------------------------+ @@ -114,10 +115,29 @@ $template->assign(array( 'STEP' => $step, 'PHPWG_VERSION' => PHPWG_VERSION, 'UPGRADE_TO' => $upgrade_to, - 'RELEASE_URL' => PHPWG_URL.'/releases/'.$upgrade_to, ) ); +if (isset($new_versions['minor'])) +{ + $template->assign( + array( + 'MINOR_VERSION' => $new_versions['minor'], + 'MINOR_RELEASE_URL' => PHPWG_URL.'/releases/'.$new_versions['minor'], + ) + ); +} + +if (isset($new_versions['major'])) +{ + $template->assign( + array( + 'MAJOR_VERSION' => $new_versions['major'], + 'MAJOR_RELEASE_URL' => PHPWG_URL.'/releases/'.$new_versions['major'], + ) + ); +} + $template->set_filename('plugin_admin_content', 'updates_pwg.tpl'); $template->assign_var_from_handle('ADMIN_CONTENT', 'plugin_admin_content'); diff --git a/admin/user_list.php b/admin/user_list.php index 1de17cabe..c57d17eba 100644 --- a/admin/user_list.php +++ b/admin/user_list.php @@ -10,6 +10,8 @@ * Add users and manage users list */ +check_input_parameter('group', $_GET, false, PATTERN_ID); + // +-----------------------------------------------------------------------+ // | tabs | // +-----------------------------------------------------------------------+ @@ -44,37 +46,14 @@ while ($row = pwg_db_fetch_assoc($result)) // +-----------------------------------------------------------------------+ // | template | // +-----------------------------------------------------------------------+ - -$template->set_filenames(array('user_list'=>'user_list.tpl')); - -$query = ' -SELECT - DISTINCT u.'.$conf['user_fields']['id'].' AS id, - u.'.$conf['user_fields']['username'].' AS username, - u.'.$conf['user_fields']['email'].' AS email, - ui.status, - ui.enabled_high, - ui.level - FROM '.USERS_TABLE.' AS u - INNER JOIN '.USER_INFOS_TABLE.' AS ui ON u.'.$conf['user_fields']['id'].' = ui.user_id - WHERE u.'.$conf['user_fields']['id'].' > 0 -;'; - -$result = pwg_query($query); -while ($row = pwg_db_fetch_assoc($result)) -{ - $users[] = $row; - $user_ids[] = $row['id']; -} - $template->assign( array( - 'users' => $users, - 'all_users' => join(',', $user_ids), 'ACTIVATE_COMMENTS' => $conf['activate_comments'], 'Double_Password' => $conf['double_password_type_in_admin'] - ) - ); + ) +); + +$template->set_filenames(array('user_list'=>'user_list.tpl')); $default_user = get_default_user_info(true); @@ -117,6 +96,7 @@ $template->assign( 'protected_users' => implode(',', array_unique($protected_users)), 'password_protected_users' => implode(',', array_unique($password_protected_users)), 'guest_user' => $conf['guest_id'], + 'filter_group' => (isset($_GET['group']) ? $_GET['group'] : null), ) ); diff --git a/admin/user_list_backend.php b/admin/user_list_backend.php index a1a0c01c7..c7f76782c 100644 --- a/admin/user_list_backend.php +++ b/admin/user_list_backend.php @@ -13,8 +13,8 @@ include_once(PHPWG_ROOT_PATH.'include/common.inc.php'); check_status(ACCESS_ADMINISTRATOR); -check_input_parameter('iDisplayStart', $_REQUEST, false, PATTERN_ID); -check_input_parameter('iDisplayLength', $_REQUEST, false, PATTERN_ID); +check_input_parameter('start', $_REQUEST, false, PATTERN_ID); +check_input_parameter('length', $_REQUEST, false, PATTERN_ID); /* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * Easy set variables @@ -50,38 +50,32 @@ $sTable = USERS_TABLE.' INNER JOIN '.USER_INFOS_TABLE.' AS ui ON '.$conf['user_f * Paging */ $sLimit = ""; -if ( isset( $_REQUEST['iDisplayStart'] ) && $_REQUEST['iDisplayLength'] != '-1' ) +if ( isset( $_REQUEST['start'] ) && $_REQUEST['length'] != '-1' ) { - $sLimit = "LIMIT ".$_REQUEST['iDisplayStart'].", ".$_REQUEST['iDisplayLength']; + $sLimit = "LIMIT ".$_REQUEST['start'].", ".$_REQUEST['length']; } - + +$sOrder = ""; /* * Ordering */ -if ( isset( $_REQUEST['iSortCol_0'] ) ) +if ( isset( $_REQUEST["order"][0]["column"] ) ) { $sOrder = "ORDER BY "; - for ( $i=0 ; $i intval($_REQUEST['sEcho']), + "sEcho" => $sEcho, "iTotalRecords" => $iTotal, "iTotalDisplayRecords" => $iFilteredTotal, - "aaData" => array() + "aaData" => array(), + "filtered_uids" => array() ); $user_ids = array(); +$filtered_uids = array(); -while ( $aRow = pwg_db_fetch_array( $rResult ) ) -{ - $user_ids[] = $aRow[ $conf['user_fields']['id'] ]; - - $row = array(); - for ( $i=0 ; $i $alias) - { - if ($aColumns[$i] == $real_name) - { - $colname = $alias; - } - } - - $row[] = $aRow[$colname]; - } - + $filtered_uids[] = $aRow[ $conf['user_fields']['id'] ]; + } +} else { + while ( $aRow = pwg_db_fetch_array( $rResult ) ) + { + $user_ids[] = $aRow[ $conf['user_fields']['id'] ]; + + $row = array(); + for ( $i=0 ; $i $alias) + { + if ($aColumns[$i] == $real_name) + { + $colname = $alias; + } + } + $row[] = $aRow[$colname]; + } + } + $output['aaData'][] = $row; } - $output['aaData'][] = $row; } +$output["filtered_uids"] = $filtered_uids; + // replace "recent_period" by the list of groups if (count($user_ids) > 0) { @@ -201,7 +244,7 @@ if (count($user_ids) > 0) $query = ' SELECT user_id, - GROUP_CONCAT(name ORDER BY name SEPARATOR ", ") AS groups + GROUP_CONCAT(name ORDER BY name SEPARATOR ", ") AS `groups` FROM '.USER_GROUP_TABLE.' JOIN `'.GROUPS_TABLE.'` ON id = group_id WHERE user_id IN ('.implode(',', $user_ids).') @@ -224,6 +267,6 @@ SELECT } $output = trigger_change('after_render_user_list', $output); - + echo json_encode( $output ); ?> \ No newline at end of file diff --git a/admin/user_perm.php b/admin/user_perm.php index 98b1aed38..b0384dd0c 100644 --- a/admin/user_perm.php +++ b/admin/user_perm.php @@ -18,6 +18,13 @@ include_once(PHPWG_ROOT_PATH.'admin/include/functions.php'); // +-----------------------------------------------------------------------+ check_status(ACCESS_ADMINISTRATOR); +if (!empty($_POST)) +{ + check_pwg_token(); + check_input_parameter('cat_true', $_POST, true, PATTERN_ID); + check_input_parameter('cat_false', $_POST, true, PATTERN_ID); +} + // +-----------------------------------------------------------------------+ // | variables init | // +-----------------------------------------------------------------------+ @@ -158,6 +165,8 @@ $query_false.= ' ;'; display_select_cat_wrapper($query_false,array(),'category_option_false'); +$template->assign('PWG_TOKEN', get_pwg_token()); + // +-----------------------------------------------------------------------+ // | sending html code | // +-----------------------------------------------------------------------+ diff --git a/docs/CONTRIBUTING.md b/docs/CONTRIBUTING.md index fc910aa39..5b967da8b 100644 --- a/docs/CONTRIBUTING.md +++ b/docs/CONTRIBUTING.md @@ -49,7 +49,7 @@ On GitHub you should see your branch (with commits) that you pushed before like Once you clicked the button "Compare & pull request", you have to give a name to the pull request. - + Example name of a pull request: `Issue 965 manage group deletion` diff --git a/include/calendar_base.class.php b/include/calendar_base.class.php index 0eecdeadb..1b59919a2 100644 --- a/include/calendar_base.class.php +++ b/include/calendar_base.class.php @@ -10,6 +10,14 @@ * @package functions\calendar */ +/** level of year view */ +define('CYEAR', 0); +/** level of week view in weekly view */ +define('CWEEK', 1); +/** level of month view in monthly view */ +define('CMONTH', 1); +/** level of day view */ +define('CDAY', 2); /** * Base class for monthly and weekly calendar styles diff --git a/include/calendar_monthly.class.php b/include/calendar_monthly.class.php index c577fc0ad..3172a56f8 100644 --- a/include/calendar_monthly.class.php +++ b/include/calendar_monthly.class.php @@ -12,14 +12,6 @@ include_once(PHPWG_ROOT_PATH.'include/calendar_base.class.php'); -/** level of year view */ -define('CYEAR', 0); -/** level of month view */ -define('CMONTH', 1); -/** level of day view */ -define('CDAY', 2); - - /** * Monthly calendar style (composed of years/months and days) */ diff --git a/include/calendar_weekly.class.php b/include/calendar_weekly.class.php index cca2f7f91..b9bb9beca 100644 --- a/include/calendar_weekly.class.php +++ b/include/calendar_weekly.class.php @@ -12,14 +12,6 @@ include_once(PHPWG_ROOT_PATH.'include/calendar_base.class.php'); -/** level of year view */ -define('CYEAR', 0); -/** level of week view */ -define('CWEEK', 1); -/** level of day view */ -define('CDAY', 2); - - /** * Weekly calendar style (composed of years/week in years and days in week) */ diff --git a/include/common.inc.php b/include/common.inc.php index b8c137ad6..c3e6cfe12 100644 --- a/include/common.inc.php +++ b/include/common.inc.php @@ -153,7 +153,7 @@ if (isset($conf['order_by_inside_category_custom'])) include(PHPWG_ROOT_PATH.'include/user.inc.php'); -if (in_array( substr($user['language'],0,2), array('fr','it','de','es','pl','hu','ru','nl','tr','da') ) ) +if (in_array( substr($user['language'],0,2), array('fr','it','de','es','pl','ru','nl','tr','da') ) ) { define('PHPWG_DOMAIN', substr($user['language'],0,2).'.piwigo.org'); } @@ -166,7 +166,7 @@ elseif ('pt_BR' == $user['language']) { else { define('PHPWG_DOMAIN', 'piwigo.org'); } -define('PHPWG_URL', 'http://'.PHPWG_DOMAIN); +define('PHPWG_URL', 'https://'.PHPWG_DOMAIN); if(isset($conf['alternative_pem_url']) and $conf['alternative_pem_url']!='') { @@ -174,7 +174,7 @@ if(isset($conf['alternative_pem_url']) and $conf['alternative_pem_url']!='') } else { - define('PEM_URL', 'http://'.PHPWG_DOMAIN.'/ext'); + define('PEM_URL', 'https://'.PHPWG_DOMAIN.'/ext'); } // language files diff --git a/include/config_default.inc.php b/include/config_default.inc.php index 7e8fe0506..cdc2c823a 100644 --- a/include/config_default.inc.php +++ b/include/config_default.inc.php @@ -271,6 +271,9 @@ $conf['update_notify_reminder_period'] = 7*24*60*60; // only the first page (value=false) $conf['album_description_on_all_pages'] = false; +// Number of years displayed in the history compare mode (for the years chart) +$conf['stat_compare_year_displayed'] = 5; + // +-----------------------------------------------------------------------+ // | email | // +-----------------------------------------------------------------------+ @@ -693,6 +696,9 @@ $conf['ws_max_users_per_page'] = 1000; // Display a link to subscribe to Piwigo Announcements Newsletter $conf['show_newsletter_subscription'] = true; +// Number Weeks displayed on activity chart on the dashboard +$conf['dashboard_activity_nb_weeks'] = 4; + // +-----------------------------------------------------------------------+ // | Filter | // +-----------------------------------------------------------------------+ @@ -841,6 +847,15 @@ $conf['batch_manager_images_per_page_global'] = 20; // unit mode. Must be among values {5, 10, 50} $conf['batch_manager_images_per_page_unit'] = 5; +// how many missing md5sum should Piwigo compute at once. +$conf['checksum_compute_blocksize'] = 50; + +// quicksearch engine: include all photos from sub-albums of any matching +// album. For example, if search is "bear", then we display photos from +// "bear/grizzly". When value changed, delete database cache files in +// _data/cache directory +$conf['quick_search_include_sub_albums'] = false; + // +-----------------------------------------------------------------------+ // | log | // +-----------------------------------------------------------------------+ diff --git a/include/constants.php b/include/constants.php index a842f6a6c..211f32c7c 100644 --- a/include/constants.php +++ b/include/constants.php @@ -7,11 +7,12 @@ // +-----------------------------------------------------------------------+ // Default settings -define('PHPWG_VERSION', '2.10.0beta2'); +define('PHPWG_VERSION', '11.0.0beta5'); define('PHPWG_DEFAULT_LANGUAGE', 'en_UK'); -// this constant is actually never used, the true default theme is the theme or user "guest", -// which is initialized with column user_infos.theme default value -// (see file install/piwigo_structure-mysql.sql) + +// this constant is only used in the upgrade process, the true default theme +// is the theme of user "guest", which is initialized with column user_infos.theme +// default value (see file install/piwigo_structure-mysql.sql) define('PHPWG_DEFAULT_TEMPLATE', 'modus'); define('PHPWG_THEMES_PATH', $conf['themes_dir'].'/'); diff --git a/include/dblayer/functions_mysql.inc.php b/include/dblayer/functions_mysql.inc.php index c5cf0df81..1ea188f42 100644 --- a/include/dblayer/functions_mysql.inc.php +++ b/include/dblayer/functions_mysql.inc.php @@ -563,13 +563,13 @@ function do_maintenance_all_tables() function pwg_db_concat($array) { - $string = implode($array, ','); + $string = implode(',', $array); return 'CONCAT('. $string.')'; } function pwg_db_concat_ws($array, $separator) { - $string = implode($array, ','); + $string = implode(',', $array); return 'CONCAT_WS(\''.$separator.'\','. $string.')'; } diff --git a/include/dblayer/functions_mysqli.inc.php b/include/dblayer/functions_mysqli.inc.php index 030a01a3d..ff5b8f229 100644 --- a/include/dblayer/functions_mysqli.inc.php +++ b/include/dblayer/functions_mysqli.inc.php @@ -128,6 +128,23 @@ function pwg_query($query) { global $mysqli, $conf, $page, $debug, $t2; + // starting with MySQL 8, rank becomes a reserved keyword, we need to escape it + if (preg_match('/\brank\b/', $query)) + { + // first we unescape what's already escaped (to avoid double escaping) + $query = preg_replace('/`rank`/', 'rank', $query); + // then we escape the keyword + $query = preg_replace('/\brank\b/', '`rank`', $query); + } + + if (preg_match('/\bgroups\b/', $query)) + { + // first we unescape what's already escaped (to avoid double escaping) + $query = preg_replace('/`groups`/', 'groups', $query); + // then we escape the keyword + $query = preg_replace('/\bgroups\b/', '`groups`', $query); + } + $start = microtime(true); ($result = $mysqli->query($query)) or my_error($query, $conf['die_on_sql_error']); @@ -286,14 +303,8 @@ function mass_updates($tablename, $dbfields, $datas, $flags=0) { $is_first = true; - // escape a reserved word - if ('groups' == $tablename) - { - $tablename = '`'.$tablename.'`'; - } - $query = ' -UPDATE '.$tablename.' +UPDATE '.protect_column_name($tablename).' SET '; foreach ($dbfields['update'] as $key) @@ -302,7 +313,7 @@ UPDATE '.$tablename.' if (isset($data[$key]) and $data[$key] != '') { - $query.= $separator.$key.' = \''.$data[$key].'\''; + $query.= $separator.protect_column_name($key).' = \''.$data[$key].'\''; } else { @@ -310,7 +321,7 @@ UPDATE '.$tablename.' { continue; // next field } - $query.= "$separator$key = NULL"; + $query.= $separator.protect_column_name($key).' = NULL'; } $is_first = false; } @@ -329,11 +340,11 @@ UPDATE '.$tablename.' } if (isset($data[$key])) { - $query.= $key.' = \''.$data[$key].'\''; + $query.= protect_column_name($key).' = \''.$data[$key].'\''; } else { - $query.= $key.' IS NULL'; + $query.= protect_column_name($key).' IS NULL'; } $is_first = false; } @@ -345,7 +356,7 @@ UPDATE '.$tablename.' else { // creation of the temporary table - $result = pwg_query('SHOW FULL COLUMNS FROM '.$tablename); + $result = pwg_query('SHOW FULL COLUMNS FROM '.protect_column_name($tablename)); $columns = array(); $all_fields = array_merge($dbfields['primary'], $dbfields['update']); @@ -353,7 +364,7 @@ UPDATE '.$tablename.' { if (in_array($row['Field'], $all_fields)) { - $column = $row['Field']; + $column = '`'.$row['Field'].'`'; $column.= ' '.$row['Type']; $nullable = true; @@ -397,7 +408,7 @@ CREATE TABLE '.$temporary_tablename.' // update of table by joining with temporary table $query = ' -UPDATE '.$tablename.' AS t1, '.$temporary_tablename.' AS t2 +UPDATE '.protect_column_name($tablename).' AS t1, '.$temporary_tablename.' AS t2 SET '. implode( "\n , ", @@ -434,14 +445,8 @@ function single_update($tablename, $datas, $where, $flags=0) $is_first = true; - // escape a reserved word - if ('groups' == $tablename) - { - $tablename = '`'.$tablename.'`'; - } - $query = ' -UPDATE '.$tablename.' +UPDATE '.protect_column_name($tablename).' SET '; foreach ($datas as $key => $value) @@ -450,7 +455,7 @@ UPDATE '.$tablename.' if (isset($value) and $value !== '') { - $query.= $separator.$key.' = \''.$value.'\''; + $query.= $separator.protect_column_name($key).' = \''.$value.'\''; } else { @@ -458,7 +463,7 @@ UPDATE '.$tablename.' { continue; // next field } - $query.= "$separator$key = NULL"; + $query.= $separator.protect_column_name($key).' = NULL'; } $is_first = false; } @@ -478,11 +483,11 @@ UPDATE '.$tablename.' } if (isset($value)) { - $query.= $key.' = \''.$value.'\''; + $query.= protect_column_name($key).' = \''.$value.'\''; } else { - $query.= $key.' IS NULL'; + $query.= protect_column_name($key).' IS NULL'; } $is_first = false; } @@ -527,15 +532,9 @@ function mass_inserts($table_name, $dbfields, $datas, $options=array()) if ($first) { - // escape a reserved word - if ('groups' == $table_name) - { - $table_name = '`'.$table_name.'`'; - } - $query = ' -INSERT '.$ignore.' INTO '.$table_name.' - ('.implode(',', $dbfields).') +INSERT '.$ignore.' INTO '.protect_column_name($table_name).' + ('.implode(',', array_map('protect_column_name', $dbfields)).') VALUES'; $first = false; } @@ -574,20 +573,22 @@ INSERT '.$ignore.' INTO '.$table_name.' * * @param string $table_name * @param array $data + * @param array $options + * - boolean ignore - use "INSERT IGNORE" */ -function single_insert($table_name, $data) +function single_insert($table_name, $data, $options=array()) { + $ignore = ''; + if (isset($options['ignore']) and $options['ignore']) + { + $ignore = 'IGNORE'; + } + if (count($data) != 0) { - // escape a reserved word - if ('groups' == $table_name) - { - $table_name = '`'.$table_name.'`'; - } - $query = ' -INSERT INTO '.$table_name.' - ('.implode(',', array_keys($data)).') +INSERT '.$ignore.' INTO '.protect_column_name($table_name).' + ('.implode(',', array_map('protect_column_name', array_keys($data))).') VALUES'; $query .= '('; @@ -618,6 +619,15 @@ INSERT INTO '.$table_name.' } } +function protect_column_name($column_name) +{ + if ('`' != $column_name[0]) + { + $column_name = '`'.$column_name.'`'; + } + + return $column_name; +} /** * Do maintenance on all Piwigo tables @@ -677,13 +687,13 @@ function do_maintenance_all_tables() function pwg_db_concat($array) { - $string = implode($array, ','); + $string = implode(',', $array); return 'CONCAT('. $string.')'; } function pwg_db_concat_ws($array, $separator) { - $string = implode($array, ','); + $string = implode(',', $array); return 'CONCAT_WS(\''.$separator.'\','. $string.')'; } diff --git a/include/functions.inc.php b/include/functions.inc.php index 1a2fc2f5e..c9124e70e 100644 --- a/include/functions.inc.php +++ b/include/functions.inc.php @@ -2085,14 +2085,17 @@ function get_privacy_level_options() /** - * return the branch from the version. For example version 2.2.4 is for branch 2.2 + * return the branch from the version. For example version 11.1.2 is on branch 11 * * @param string $version * @return string */ function get_branch_from_version($version) { - return implode('.', array_slice(explode('.', $version), 0, 2)); + // the algorithm is a bit complicated to just retrieve the first digits before + // the first ".". It's because before version 11.0.0, we used to take the 2 first + // digits, ie version 2.2.4 was on branch 2.2 + return implode('.', array_slice(explode('.', $version), 0, 1)); } /** diff --git a/include/functions_category.inc.php b/include/functions_category.inc.php index 22997ee2f..d0124aac9 100644 --- a/include/functions_category.inc.php +++ b/include/functions_category.inc.php @@ -122,8 +122,8 @@ WHERE '.$where.' ), 'URL' => make_index_url(array('category' => $row)), 'LEVEL' => substr_count($row['global_rank'], '.') + 1, - 'SELECTED' => $selected_category['id'] == $row['id'] ? true : false, - 'IS_UPPERCAT' => $selected_category['id_uppercat'] == $row['id'] ? true : false, + 'SELECTED' => ($selected_category!==null && $selected_category['id'] == $row['id']) ? true : false, + 'IS_UPPERCAT' => ($selected_category!==null && $selected_category['id_uppercat'] == $row['id']) ? true : false, ) ); if ($conf['index_new_icon']) @@ -602,4 +602,192 @@ function remove_computed_category(&$cats, $cat) unset($cats[$cat['cat_id']]); } -?> \ No newline at end of file +/** + * Return the list of image ids corresponding to given categories. + * AND & OR mode supported. + * + * @param int[] $cat_ids + * @param string mode + * @param string $extra_images_where_sql - optionally apply a sql where filter to retrieved images + * @param string $order_by - optionally overwrite default photo order + * @param bool $user_permissions + * @return array + */ +function get_image_ids_for_categories($cat_ids, $mode='AND', $extra_images_where_sql='', $order_by='', $use_permissions=true) +{ + global $conf; + + if (empty($cat_ids)) + { + return array(); + } + + $query = ' +SELECT id + FROM '.IMAGES_TABLE.' i + INNER JOIN '.IMAGE_CATEGORY_TABLE.' ic ON id=ic.image_id + WHERE category_id IN ('.implode(',', $cat_ids).')'; + + if ($use_permissions) + { + $query.= get_sql_condition_FandF( + array( + 'forbidden_categories' => 'category_id', + 'visible_categories' => 'category_id', + 'visible_images' => 'id' + ), + "\n AND" + ); + } + + $query.= (empty($extra_images_where_sql) ? '' : " \nAND (".$extra_images_where_sql.')').' + GROUP BY id'; + + if ($mode=='AND' and count($cat_ids)>1) + { + $query .= ' + HAVING COUNT(DISTINCT category_id)='.count($cat_ids); + } + $query .= "\n".(empty($order_by) ? $conf['order_by'] : $order_by); + + return query2array($query, null, 'id'); +} + +/** + * Return a list of categories corresponding to given items. + * + * @param int[] $items + * @param int $max + * @param int[] $excluded_cat_ids + * @return array [id, name, counter, url_name] + */ +function get_common_categories($items, $max=null, $excluded_cat_ids=array()) +{ + if (empty($items)) + { + return array(); + } + + $query = ' +SELECT + c.id, + c.uppercats, + count(*) AS counter + FROM '.IMAGE_CATEGORY_TABLE.' + INNER JOIN '.CATEGORIES_TABLE.' c ON category_id = id + WHERE image_id IN ('.implode(',', $items).')'; + + if (!empty($excluded_cat_ids)) + { + $query.=' + AND category_id NOT IN ('.implode(',', $excluded_cat_ids).')'; + } + + $query .=' + GROUP BY c.id + ORDER BY '; + if (isset($max)) + { + $query .= 'counter DESC + LIMIT '.$max; + } + else + { + $query .= 'NULL'; + } + + $result = pwg_query($query); + $cats = array(); + while ($row = pwg_db_fetch_assoc($result)) + { + $cats[ $row['id'] ] = $row; + } + + return $cats; +} + +function get_related_categories_menu($items, $excluded_cat_ids=array()) +{ + global $page; + + $common_cats = get_common_categories($items, null, $excluded_cat_ids); + // echo ''; print_r($common_cats); echo ''; + + if (count($common_cats) == 0) + { + return array(); + } + + $cat_ids = array(); + // now we add the upper categories and useful values such as depth level and url + foreach ($common_cats as $cat) + { + foreach (explode(',', $cat['uppercats']) as $uppercat) + { + @$cat_ids[$uppercat]++; + } + } + + $query = ' +SELECT + id, + name, + permalink, + id_uppercat, + uppercats, + global_rank + FROM '.CATEGORIES_TABLE.' + WHERE id IN ('.implode(',', array_keys($cat_ids)).') +;'; + $cats = query2array($query); + usort($cats, 'global_rank_compare'); + + $index_of_cat = array(); + + foreach ($cats as $idx => $cat) + { + $index_of_cat[ $cat['id'] ] = $idx; + $cats[$idx]['LEVEL'] = substr_count($cat['global_rank'], '.') + 1; + + // if the category is directly linked to the items, we add an URL + counter + if (isset($common_cats[ $cat['id'] ])) + { + $cats[$idx]['count_images'] = $common_cats[ $cat['id'] ]['counter']; + + $url_params = array(); + if (isset($page['category'])) + { + $url_params['category'] = $page['category']; + + $url_params['combined_categories'] = array($cat); + if (isset($page['combined_categories'])) + { + $url_params['combined_categories'] = array_merge($page['combined_categories'], array($cat)); + } + } + else + { + $url_params['category'] = $cat; + } + + $cats[$idx]['url'] = make_index_url($url_params); + } + + // let's find how many sub-categories we have for each category. 3 options: + // 1. direct sub-albums + // 2. total indirect sub-albums + // 3. number of sub-albums containing photos + // + // Option 3 seems more appropriate here. + if (!empty($cat['id_uppercat']) and @$cats[$idx]['count_images'] > 0) + { + foreach (array_slice(explode(',', $cat['uppercats']), 0, -1) as $uppercat_id) + { + @$cats[ $index_of_cat[ $uppercat_id ] ]['count_categories']++; + } + } + } + + return $cats; +} +?> diff --git a/include/functions_cookie.inc.php b/include/functions_cookie.inc.php index be9853d27..0eb159eb7 100644 --- a/include/functions_cookie.inc.php +++ b/include/functions_cookie.inc.php @@ -54,7 +54,7 @@ function cookie_path() $scr = substr($scr,0,strrpos( $scr,'/')); // add a trailing '/' if needed - if ((strlen($scr) == 0) or ($scr{strlen($scr)-1} !== '/')) + if ((strlen($scr) == 0) or ($scr[strlen($scr)-1] !== '/')) { $scr .= '/'; } diff --git a/include/functions_html.inc.php b/include/functions_html.inc.php index 19fdad512..01c54e79d 100644 --- a/include/functions_html.inc.php +++ b/include/functions_html.inc.php @@ -418,7 +418,7 @@ function get_tags_content_title() .trigger_change('render_tag_name', $page['tags'][$i]['name'], $page['tags'][$i]) .''; - if (count($page['tags']) > 2) + if (count($page['tags']) > 1) { $other_tags = $page['tags']; unset($other_tags[$i]); @@ -429,17 +429,67 @@ function get_tags_content_title() ); $title.= - '' + .'" alt="x" style="vertical-align:bottom;" >' + .'' .''; } } return $title; } +/** + * Returns the breadcrumb to be displayed above thumbnails on combined categories page. + * + * @return string + */ +function get_combined_categories_content_title() +{ + global $page; + + $title = l10n('Albums').' '; + + $is_first = true; + $all_categories = array_merge(array($page['category']), $page['combined_categories']); + foreach ($all_categories as $idx => $category) + { + $title.= $is_first ? '' : ' + '; + $is_first = false; + + $title.= get_cat_display_name(array($category)); + + if (count($all_categories) > 1) // should be always the case + { + $other_cats = $all_categories; + unset($other_cats[$idx]); + + $params = array( + 'category' => array_shift($other_cats), + ); + + if (count($other_cats) > 0) + { + $params['combined_categories'] = $other_cats; + } + $remove_url = make_index_url($params); + + $title.= + '' + .'' + .''; + } + } + + return $title; +} + /** * Sets the http status header (200,401,...) * @param int $code @@ -500,6 +550,7 @@ function register_default_menubar_blocks($menu_ref_arr) $menu->register_block( new RegisteredBlock( 'mbTags', 'Related tags', 'piwigo')); $menu->register_block( new RegisteredBlock( 'mbSpecials', 'Specials', 'piwigo')); $menu->register_block( new RegisteredBlock( 'mbMenu', 'Menu', 'piwigo')); + $menu->register_block( new RegisteredBlock( 'mbRelatedCategories', 'Related albums', 'piwigo') ); // We hide the quick identification menu on the identification page. It // would be confusing. diff --git a/include/functions_search.inc.php b/include/functions_search.inc.php index 379bb93e2..53700b4bc 100644 --- a/include/functions_search.inc.php +++ b/include/functions_search.inc.php @@ -1119,7 +1119,7 @@ SELECT image_id FROM '.IMAGE_TAG_TABLE.' function qsearch_get_categories(QExpression $expr, QResults $qsr) { - global $user; + global $user, $conf; $token_cat_ids = $qsr->cat_iids = array_fill(0, count($expr->stokens), array() ); $all_cats = array(); @@ -1171,6 +1171,18 @@ SELECT if (!empty($cat_ids)) { + if ($conf['quick_search_include_sub_albums']) + { + $query = ' +SELECT + id + FROM '.CATEGORIES_TABLE.' + INNER JOIN '.USER_CACHE_CATEGORIES_TABLE.' ON id = cat_id and user_id = '.$user['id'].' + WHERE id IN ('.implode(',', get_subcat_ids($cat_ids)) .') +;'; + $cat_ids = query2array($query, null, 'id'); + } + $query = ' SELECT image_id FROM '.IMAGE_CATEGORY_TABLE.' WHERE category_id IN ('.implode(',',$cat_ids).') diff --git a/include/functions_tag.inc.php b/include/functions_tag.inc.php index 90734c321..00579f578 100644 --- a/include/functions_tag.inc.php +++ b/include/functions_tag.inc.php @@ -308,4 +308,18 @@ SELECT * return query2array($query); } +function tags_id_compare($a, $b) +{ + return ($a['id'] < $b['id']) ? -1 : 1; +} + +function tags_counter_compare($a, $b) +{ + if ($a['counter'] == $b['counter']) + { + return tags_id_compare($a, $b); + } + + return ($a['counter'] < $b['counter']) ? +1 : -1; +} ?> \ No newline at end of file diff --git a/include/functions_url.inc.php b/include/functions_url.inc.php index a0637f8c3..676651b51 100644 --- a/include/functions_url.inc.php +++ b/include/functions_url.inc.php @@ -348,6 +348,27 @@ function make_section_in_url($params) { $section_string.= $params['category']['permalink']; } + + if (isset($params['combined_categories'])) + { + foreach ($params['combined_categories'] as $category) + { + $section_string.= '/'; + + if ( empty($category['permalink']) ) + { + $section_string.= $category['id']; + if ( $conf['category_url_style']=='id-name' ) + { + $section_string.= '-'.str2url($category['name']); + } + } + else + { + $section_string.= $category['permalink']; + } + } + } } break; @@ -421,13 +442,35 @@ function parse_section_url( $tokens, &$next_token) $page['section'] = 'categories'; $next_token++; - if (isset($tokens[$next_token]) ) + $i = $next_token; + $loop_counter = 0; + + while (isset($tokens[$next_token])) { + if ($loop_counter++ > count($tokens)+10){die('infinite loop?');} + + if ( + strpos($tokens[$next_token], 'created-')===0 + or strpos($tokens[$next_token], 'posted-')===0 + or strpos($tokens[$next_token], 'start-')===0 + ) + { + break; + } + if (preg_match('/^(\d+)(?:-(.+))?$/', $tokens[$next_token], $matches)) { if ( isset($matches[2]) ) $page['hit_by']['cat_url_name'] = $matches[2]; - $page['category'] = $matches[1]; + + if (!isset($page['category'])) + { + $page['category'] = $matches[1]; + } + else + { + $page['combined_categories'][] = $matches[1]; + } $next_token++; } else @@ -460,8 +503,16 @@ function parse_section_url( $tokens, &$next_token) if ( isset($cat_id) ) { $next_token += $perma_index+1; - $page['category'] = $cat_id; - $page['hit_by']['cat_permalink'] = $maybe_permalinks[$perma_index]; + + if (!isset($page['category'])) + { + $page['category'] = $cat_id; + $page['hit_by']['cat_permalink'] = $maybe_permalinks[$perma_index]; + } + else + { + $page['combined_categories'][] = $cat_id; + } } else { @@ -480,6 +531,24 @@ function parse_section_url( $tokens, &$next_token) } $page['category']=$result; } + + if (isset($page['combined_categories'])) + { + $combined_categories = array(); + + foreach ($page['combined_categories'] as $cat_id) + { + $result = get_cat_info($cat_id); + if (empty($result)) + { + page_not_found(l10n('Requested album does not exist')); + } + + $combined_categories[] = $result; + } + + $page['combined_categories'] = $combined_categories; + } } elseif ( 'tags' == @$tokens[$next_token] ) { diff --git a/include/functions_user.inc.php b/include/functions_user.inc.php index 593d17aef..a7b4ac910 100644 --- a/include/functions_user.inc.php +++ b/include/functions_user.inc.php @@ -170,7 +170,7 @@ function register_user($login, $password, $mail_address, $notify_admin=true, &$e ); // if no error until here, registration of the user - if (count($errors) == 0) + if (empty($errors)) { $insert = array( $conf['user_fields']['username'] => pwg_db_real_escape_string($login), @@ -298,10 +298,13 @@ function build_user($user_id, $use_cache=true) $user['internal_status']['guest_must_be_guest'] = true; } - // Check user theme - if (!isset($user['theme_name'])) + // Check user theme. 2 possible problems: + // 1. the user_infos.theme was not found in the themes table, thus themes.name is null + // 2. the theme is not really installed on the filesystem + if (!isset($user['theme_name']) or !check_theme_installed($user['theme'])) { $user['theme'] = get_default_theme(); + $user['theme_name'] = $user['theme']; } return $user; @@ -777,7 +780,7 @@ function get_default_theme() // let's find the first available theme $active_themes = array_keys(get_pwg_themes()); - return $active_themes[0]; + return isset($active_themes[0]) ? $active_themes[0] : 'default'; } /** @@ -935,10 +938,7 @@ function log_user($user_id, $remember_me) if ( session_id()!="" ) { // we regenerate the session for security reasons // see http://www.acros.si/papers/session_fixation.pdf - if (version_compare(PHP_VERSION, '7') <= 0) - { - session_regenerate_id(true); - } + session_regenerate_id(true); } else { @@ -1099,6 +1099,8 @@ function pwg_login($success, $username, $password, $remember_me) pwg_session_gc(); global $conf; + + $user_found = false; // retrieving the encrypted password of the login submitted $query = ' SELECT '.$conf['user_fields']['id'].' AS id, @@ -1106,8 +1108,31 @@ SELECT '.$conf['user_fields']['id'].' AS id, FROM '.USERS_TABLE.' WHERE '.$conf['user_fields']['username'].' = \''.pwg_db_real_escape_string($username).'\' ;'; + $row = pwg_db_fetch_assoc(pwg_query($query)); if (isset($row['id']) and $conf['password_verify']($password, $row['password'], $row['id'])) + { + $user_found = true; + } + + // If we didn't find a matching user name, we search for email address + if (!$user_found) + { + $query = ' + SELECT '.$conf['user_fields']['id'].' AS id, + '.$conf['user_fields']['password'].' AS password + FROM '.USERS_TABLE.' + WHERE '.$conf['user_fields']['email'].' = \''.pwg_db_real_escape_string($username).'\' + ;'; + + $row = pwg_db_fetch_assoc(pwg_query($query)); + if (isset($row['id']) and $conf['password_verify']($password, $row['password'], $row['id'])) + { + $user_found = true; + } + } + + if ($user_found) { log_user($row['id'], $remember_me); trigger_notify('login_success', stripslashes($username)); @@ -1604,6 +1629,25 @@ UPDATE '.USER_AUTH_KEYS_TABLE.' pwg_query($query); } +/** + * Deactivates password reset key + * + * @since 11 + * @param int $user_id + * @return null + */ +function deactivate_password_reset_key($user_id) +{ + single_update( + USER_INFOS_TABLE, + array( + 'activation_key' => null, + 'activation_key_expire' => null, + ), + array('user_id' => $user_id) + ); +} + /** * Gets the last visit (datetime) of a user, based on history table * diff --git a/include/jshrink.class.php b/include/jshrink.class.php index b32807c4a..0229bd8a9 100644 --- a/include/jshrink.class.php +++ b/include/jshrink.class.php @@ -192,7 +192,7 @@ class JShrink_Minifier case "\n": // if the next line is something that can't stand alone // preserve the newline - if(strpos('(-+{[@', $this->b) !== false) + if($this->b !== false && strpos('(-+{[@', $this->b) !== false) { echo $this->a; $this->saveString(); @@ -239,7 +239,7 @@ class JShrink_Minifier if($this->a == '/' && ($this->b == '\'' || $this->b == '"')) { $this->saveRegex(); - continue; + continue 3; } echo $this->a; diff --git a/include/menubar.inc.php b/include/menubar.inc.php index fdb106b45..46fd265bc 100644 --- a/include/menubar.inc.php +++ b/include/menubar.inc.php @@ -101,6 +101,34 @@ function initialize_menu() $block->template = 'menubar_categories.tpl'; } +//------------------------------------------------------------ related categories + $block = $menu->get_block('mbRelatedCategories'); + + if ($block != null and !empty($page['items'])) + { + $exclude_cat_ids = array(); + if (isset($page['category'])) + { + $exclude_cat_ids = array($page['category']['id']); + if (isset($page['combined_categories'])) + { + foreach ($page['combined_categories'] as $cat) + { + $exclude_cat_ids[] = $cat['id']; + } + } + } + + $block->data = array( + 'MENU_CATEGORIES' => get_related_categories_menu($page['items'], $exclude_cat_ids), + ); + + if (!empty($block->data['MENU_CATEGORIES']) ) + { + $block->template = 'menubar_related_categories.tpl'; + } + } + //------------------------------------------------------------------------ tags $block = $menu->get_block('mbTags'); if ( $block!=null and 'picture' != script_basename() ) @@ -138,6 +166,8 @@ function initialize_menu() else if ($conf['menubar_tag_cloud_content'] == 'always_all' or ($conf['menubar_tag_cloud_content'] == 'all_or_current' and empty($page['items'])) ) { $tags = get_available_tags(); + usort($tags, 'tags_counter_compare'); + $tags = array_slice($tags, 0, $conf['menubar_tag_cloud_items_number']); foreach ($tags as $tag) { $block->data[] = array_merge( diff --git a/include/no_photo_yet.inc.php b/include/no_photo_yet.inc.php index 35f302b88..560afc34b 100644 --- a/include/no_photo_yet.inc.php +++ b/include/no_photo_yet.inc.php @@ -13,6 +13,7 @@ if ( !(defined('IN_ADMIN') and IN_ADMIN) // no message inside administration and script_basename() != 'identification' // keep the ability to login + and script_basename() != 'password' // keep the ability to reset password and script_basename() != 'ws' // keep the ability to discuss with web API and script_basename() != 'popuphelp' // keep the ability to display help popups and !isset($_SESSION['no_photo_yet']) // temporary hide diff --git a/include/page_header.php b/include/page_header.php index d007a5961..f39ee9b20 100644 --- a/include/page_header.php +++ b/include/page_header.php @@ -13,6 +13,12 @@ $template->set_filenames(array('header'=>'header.tpl')); trigger_notify('loc_begin_page_header'); +$show_mobile_app_banner = conf_get_param('show_mobile_app_banner_in_gallery', false); +if (defined('IN_ADMIN') and IN_ADMIN) +{ + $show_mobile_app_banner = conf_get_param('show_mobile_app_banner_in_admin', true); +} + $template->assign( array( 'GALLERY_TITLE' => @@ -39,6 +45,8 @@ $template->assign( 'U_HOME' => get_gallery_home_url(), 'LEVEL_SEPARATOR' => $conf['level_separator'], + + 'SHOW_MOBILE_APP_BANNER' => $show_mobile_app_banner, )); diff --git a/include/section_init.inc.php b/include/section_init.inc.php index 586aec7fc..60f439268 100644 --- a/include/section_init.inc.php +++ b/include/section_init.inc.php @@ -211,7 +211,11 @@ $forbidden = get_sql_condition_FandF( // +-----------------------------------------------------------------------+ if ('categories' == $page['section']) { - if (isset($page['category'])) + if (isset($page['combined_categories'])) + { + $page['title'] = get_combined_categories_content_title(); + } + elseif (isset($page['category'])) { $page = array_merge( $page, @@ -231,7 +235,17 @@ if ('categories' == $page['section']) } // GET IMAGES LIST - if + if (isset($page['combined_categories'])) + { + $cat_ids = array($page['category']['id']); + foreach ($page['combined_categories'] as $category) + { + $cat_ids[] = $category['id']; + } + + $page['items'] = get_image_ids_for_categories($cat_ids); + } + elseif ( $page['startcat'] == 0 and (!isset($page['chronology_field'])) and // otherwise the calendar will requery all subitems @@ -600,7 +614,7 @@ if ( $filter['enabled'] ) } // see if we need a redirect because of a permalink -if ( 'categories'==$page['section'] and isset($page['category']) ) +if ( 'categories'==$page['section'] and isset($page['category']) and !isset($page['combined_categories'])) { $need_redirect=false; if ( empty($page['category']['permalink']) ) diff --git a/include/smarty/libs/sysplugins/smarty_internal_runtime_updatescope.php b/include/smarty/libs/sysplugins/smarty_internal_runtime_updatescope.php index 5a125a4a7..6897fb33e 100644 --- a/include/smarty/libs/sysplugins/smarty_internal_runtime_updatescope.php +++ b/include/smarty/libs/sysplugins/smarty_internal_runtime_updatescope.php @@ -47,7 +47,9 @@ class Smarty_Internal_Runtime_UpdateScope while (isset($ptr->parent)) { $ptr = $ptr->parent; } - $ptr->tpl_vars[$varName] = $tpl->tpl_vars[$varName]; + if ($ptr) { + $ptr->tpl_vars[$varName] = $tpl->tpl_vars[$varName]; + } } } } diff --git a/include/ws_functions/pwg.categories.php b/include/ws_functions/pwg.categories.php index 0c96972a9..89c9b3224 100644 --- a/include/ws_functions/pwg.categories.php +++ b/include/ws_functions/pwg.categories.php @@ -870,7 +870,7 @@ SELECT * ;'; $category = pwg_db_fetch_assoc(pwg_query($query)); - return get_category_representant_properties($category['representative_picture_id']); + return get_category_representant_properties($category['representative_picture_id'], IMG_SMALL); } /** diff --git a/include/ws_functions/pwg.groups.php b/include/ws_functions/pwg.groups.php index a64c8df31..c0c664ba1 100644 --- a/include/ws_functions/pwg.groups.php +++ b/include/ws_functions/pwg.groups.php @@ -61,7 +61,7 @@ SELECT */ function ws_groups_add($params, &$service) { - $params['name'] = pwg_db_real_escape_string($params['name']); + $params['name'] = pwg_db_real_escape_string(strip_tags(stripslashes($params['name']))); // is the name not already used ? $query = ' @@ -104,46 +104,9 @@ function ws_groups_delete($params, &$service) return new PwgError(403, 'Invalid security token'); } - $group_id_string = implode(',', $params['group_id']); - - // destruction of the access linked to the group - $query = ' -DELETE - FROM '. GROUP_ACCESS_TABLE .' - WHERE group_id IN('. $group_id_string .') -;'; - pwg_query($query); - - // destruction of the users links for this group - $query = ' -DELETE - FROM '. USER_GROUP_TABLE .' - WHERE group_id IN('. $group_id_string .') -;'; - pwg_query($query); - - $query = ' -SELECT id, name - FROM `'. GROUPS_TABLE .'` - WHERE id IN('. $group_id_string .') -;'; - - $group_list = query2array($query, 'id', 'name'); - $groupnames = array_values($group_list); - $groupids = array_keys($group_list); - - // destruction of the group - $query = ' -DELETE - FROM `'. GROUPS_TABLE .'` - WHERE id IN('. $group_id_string .') -;'; - pwg_query($query); - - trigger_notify('delete_group', $groupids); - pwg_activity('group', $groupids, 'delete'); - include_once(PHPWG_ROOT_PATH.'admin/include/functions.php'); + $groupnames = array_values(delete_groups($params['group_id'])); + invalidate_user_cache(); return new PwgNamedArray($groupnames, 'group_deleted'); @@ -180,13 +143,14 @@ SELECT COUNT(*) if (!empty($params['name'])) { - $params['name'] = pwg_db_real_escape_string($params['name']); + $params['name'] = pwg_db_real_escape_string(strip_tags(stripslashes($params['name']))); // is the name not already used ? $query = ' SELECT COUNT(*) FROM `'. GROUPS_TABLE .'` WHERE name = \''. $params['name'] .'\' + AND id != '.$params['group_id'].' ;'; list($count) = pwg_db_fetch_row(pwg_query($query)); if ($count != 0) @@ -251,8 +215,7 @@ SELECT COUNT(*) mass_inserts( USER_GROUP_TABLE, array('group_id', 'user_id'), - $inserts, - array('ignore'=>true) + $inserts ); include_once(PHPWG_ROOT_PATH.'admin/include/functions.php'); @@ -264,6 +227,187 @@ SELECT COUNT(*) return $service->invoke('pwg.groups.getList', array('group_id' => $params['group_id'])); } +/** + * API method + * Merge groups in one other group + * @param mixed[] $params + * @option int destination_group_id + * @option int[] merge_group_id + */ +function ws_groups_merge($params, &$service) { + + if (get_pwg_token() != $params['pwg_token']) + { + return new PwgError(403, 'Invalid security token'); + } + + $all_groups = $params['merge_group_id']; + array_push($all_groups, $params['destination_group_id']); + + $all_groups = array_unique($all_groups); + $merge_group = array_diff($params['merge_group_id'], array($params['destination_group_id'])); + $merge_group_object = $service->invoke('pwg.groups.getList', array('group_id' => $params['merge_group_id'])); + + $query = ' +SELECT COUNT(*) + FROM `'. GROUPS_TABLE .'` + WHERE id in ('.implode(',', $all_groups) .') +;'; + list($count) = pwg_db_fetch_row(pwg_query($query)); + if ($count != count($all_groups)) + { + return new PwgError(WS_ERR_INVALID_PARAM, 'All groups does not exist.'); + } + + $user_in_merge_groups = array(); + $user_in_dest = array(); + $user_to_add = array(); + + $query = ' +SELECT DISTINCT(user_id) + FROM `'. USER_GROUP_TABLE .'` + WHERE + group_id IN ('.implode(',', $merge_group) .') +;'; + $user_in_merge_groups = query2array($query, null, 'user_id'); + + $query = ' +SELECT user_id + FROM `'. USER_GROUP_TABLE .'` + WHERE group_id = '.$params['destination_group_id'].' +;'; + + $user_in_dest = query2array($query, null, 'user_id');; + + + $user_to_add = array_diff($user_in_merge_groups, $user_in_dest); + + $inserts = array(); + foreach ($user_to_add as $user) + { + $inserts[] = array( + 'group_id' => $params['destination_group_id'], + 'user_id' => $user, + ); + } + + mass_inserts( + USER_GROUP_TABLE, + array('group_id', 'user_id'), + $inserts, + array('ignore'=>true) + ); + + include_once(PHPWG_ROOT_PATH.'admin/include/functions.php'); + invalidate_user_cache(); + + pwg_activity('group', $params['destination_group_id'], 'edit'); + foreach ($user_to_add as $user_id) + { + pwg_activity('user', $user_id, 'edit', array("associated" => $params['destination_group_id'])); + } + + include_once(PHPWG_ROOT_PATH.'admin/include/functions.php'); + + delete_groups($merge_group); + + return array( + "destination_group" => $service->invoke('pwg.groups.getList', array('group_id' => $params['destination_group_id'])), + "deleted_group" => $merge_group_object + ); +} + +/** + * API method + * Create a copy of a group + * @param mixed[] $params + * @option int group_id + * @option string copy_name + */ +function ws_groups_duplicate($params, &$service) { + + if (get_pwg_token() != $params['pwg_token']) + { + return new PwgError(403, 'Invalid security token'); + } + + $query = ' +SELECT COUNT(*) + FROM `'.GROUPS_TABLE.'` + WHERE name = \''.$params['copy_name'].'\' +;'; + list($count) = pwg_db_fetch_row(pwg_query($query)); + if ($count != 0) + { + return new PwgError(WS_ERR_INVALID_PARAM, 'This name is already used by another group.'); + } + + $query = ' +SELECT COUNT(*) + FROM `'. GROUPS_TABLE .'` + WHERE id = '.$params["group_id"].' +;'; + list($count) = pwg_db_fetch_row(pwg_query($query)); + if ($count == 0) + { + return new PwgError(WS_ERR_INVALID_PARAM, 'This group does not exist.'); + } + + $query = ' +SELECT is_default + FROM `'. GROUPS_TABLE .'` + WHERE id = '.$params['group_id'].' +;'; + + $is_default = pwg_db_fetch_row(pwg_query($query))[0]; + + // creating the group + single_insert( + GROUPS_TABLE, + array( + 'name' => $params['copy_name'], + 'is_default' => boolean_to_string($is_default), + ) + ); + $inserted_id = pwg_db_insert_id(); + + pwg_activity('group', $inserted_id, 'add'); + + $query = ' + SELECT user_id + FROM `'. USER_GROUP_TABLE .'` + WHERE group_id = '.$params['group_id'].' + ;'; + + $users = query2array($query, null, 'user_id'); + + $inserts = array(); + foreach ($users as $user) + { + $inserts[] = array( + 'group_id' => $inserted_id, + 'user_id' => $user, + ); + } + + mass_inserts( + USER_GROUP_TABLE, + array('group_id', 'user_id'), + $inserts, + array('ignore'=>true) + ); + + include_once(PHPWG_ROOT_PATH.'admin/include/functions.php'); + invalidate_user_cache(); + + foreach ($users as $user_id) + { + pwg_activity('user', $user_id, 'edit', array("associated" => $params['group_id'])); + } + + return $service->invoke('pwg.groups.getList', array('group_id' => $inserted_id)); +} + /** * API method * Removes user(s) from a group diff --git a/include/ws_functions/pwg.images.php b/include/ws_functions/pwg.images.php index 62a4a9bd6..ef7286b9f 100644 --- a/include/ws_functions/pwg.images.php +++ b/include/ws_functions/pwg.images.php @@ -1348,6 +1348,10 @@ function ws_images_upload($params, $service) $fileName = uniqid("file_"); } + // change the name of the file in the buffer to avoid any unexpected + // extension. Function add_uploaded_file will eventually clean the mess. + $fileName = md5($fileName); + $filePath = $upload_dir.DIRECTORY_SEPARATOR.$fileName; // Chunking might be enabled @@ -1442,6 +1446,294 @@ SELECT } } +/** + * API method + * Adds a chunk of an image. Chunks don't have to be uploaded in the right sort order. When the last chunk is added, they get merged. + * @since 11 + * @param mixed[] $params + * @option string username + * @option string password + * @option chunk int number of the chunk + * @option string chunk_sum MD5 sum of the chunk + * @option chunks int total number of chunks for this image + * @option string original_sum MD5 sum of the final image + * @option int[] category + * @option string filename + * @option string name (optional) + * @option string author (optional) + * @option string comment (optional) + * @option string date_creation (optional) + * @option int level + * @option string tag_ids (optional) - "tag_id,tag_id" + * @option int image_id (optional) + */ +function ws_images_uploadAsync($params, &$service) +{ + global $conf, $user, $logger; + + // additional check for some parameters + if (!preg_match('/^[a-fA-F0-9]{32}$/', $params['original_sum'])) + { + return new PwgError(WS_ERR_INVALID_PARAM, 'Invalid original_sum'); + } + + if (!try_log_user($params['username'], $params['password'], false)) + { + return new PwgError(999, 'Invalid username/password'); + } + + // build $user + // include(PHPWG_ROOT_PATH.'include/user.inc.php'); + $user = build_user($user['id'], false); + + if (!is_admin()) + { + return new PwgError(401, 'Admin status is required.'); + } + + if ($params['image_id'] > 0) + { + $query=' +SELECT COUNT(*) + FROM '. IMAGES_TABLE .' + WHERE id = '. $params['image_id'] .' +;'; + list($count) = pwg_db_fetch_row(pwg_query($query)); + if ($count == 0) + { + return new PwgError(404, __FUNCTION__.' : image_id not found'); + } + } + + // handle upload error as in ws_images_addSimple + // if (isset($_FILES['image']['error']) && $_FILES['image']['error'] != 0) + + $output_filepath_prefix = $conf['upload_dir'].'/buffer/'.$params['original_sum'].'-u'.$user['id']; + $chunkfile_path_pattern = $output_filepath_prefix.'-%03uof%03u.chunk'; + + $chunkfile_path = sprintf($chunkfile_path_pattern, $params['chunk']+1, $params['chunks']); + + // create the upload directory tree if not exists + if (!mkgetdir(dirname($chunkfile_path), MKGETDIR_DEFAULT&~MKGETDIR_DIE_ON_ERROR)) + { + return new PwgError(500, 'error during buffer directory creation'); + } + secure_directory(dirname($chunkfile_path)); + + // move uploaded file + move_uploaded_file($_FILES['file']['tmp_name'], $chunkfile_path); + $logger->debug(__FUNCTION__.' uploaded '.$chunkfile_path); + + // MD5 checksum + $chunk_md5 = md5_file($chunkfile_path); + if ($chunk_md5 != $params['chunk_sum']) + { + unlink($chunkfile_path); + $logger->error(__FUNCTION__.' '.$chunkfile_path.' MD5 checksum mismatched'); + return new PwgError(500, "MD5 checksum chunk file mismatched"); + } + + // are all chunks uploaded? + $chunk_ids_uploaded = array(); + for ($i = 1; $i <= $params['chunks']; $i++) + { + $chunkfile = sprintf($chunkfile_path_pattern, $i, $params['chunks']); + if ( file_exists($chunkfile) && ($fp = fopen($chunkfile, "rb"))!==false ) + { + $chunk_ids_uploaded[] = $i; + fclose($fp); + } + } + + if ($params['chunks'] != count($chunk_ids_uploaded)) + { + // all chunks are not yet available + $logger->debug(__FUNCTION__.' all chunks are not uploaded yet, maybe on next chunk, exit for now'); + return array('message' => 'chunks uploaded = '.implode(',', $chunk_ids_uploaded)); + } + + // all chunks available + $logger->debug(__FUNCTION__.' '.$params['original_sum'].' '.$params['chunks'].' chunks available, try now to get lock for merging'); + $output_filepath = $output_filepath_prefix.'.merged'; + + // chunks already being merged? + if ( file_exists($output_filepath) && ($fp = fopen($output_filepath, "rb"))!==false ) + { + // merge file already exists + fclose($fp); + $logger->error(__FUNCTION__.' '.$output_filepath.' already exists, another merge is under process'); + return array('message' => 'chunks uploaded = '.implode(',', $chunk_ids_uploaded)); + } + + // create merged and open it for writing only + $fp = fopen($output_filepath, "wb"); + if ( !$fp ) + { + // unable to create file and open it for writing only + $logger->error(__FUNCTION__.' '.$chunkfile_path.' unable to create merge file'); + return new PwgError(500, 'error while creating merged '.$chunkfile_path); + } + + // acquire an exclusive lock and keep it until merge completes + // this postpones another uploadAsync task running in another thread + if (!flock($fp, LOCK_EX)) + { + // unable to obtain lock + fclose($fp); + $logger->error(__FUNCTION__.' '.$chunkfile_path.' unable to obtain lock'); + return new PwgError(500, 'error while locking merged '.$chunkfile_path); + } + + $logger->debug(__FUNCTION__.' lock obtained to merge chunks'); + + // loop over all chunks + foreach ($chunk_ids_uploaded as $chunk_id) + { + $chunkfile_path = sprintf($chunkfile_path_pattern, $chunk_id, $params['chunks']); + + // chunk deleted by preceding merge? + if (!file_exists($chunkfile_path)) + { + // cancel merge + $logger->error(__FUNCTION__.' '.$chunkfile_path.' already merged'); + flock($fp, LOCK_UN); + fclose($fp); + return array('message' => 'chunks uploaded = '.implode(',', $chunk_ids_uploaded)); + } + + if (!fwrite($fp, file_get_contents($chunkfile_path))) + { + // could not append chunk + $logger->error(__FUNCTION__.' error merging chunk '.$chunkfile_path); + flock($fp, LOCK_UN); + fclose($fp); + + // delete merge file without returning an error + @unlink($output_filepath); + return new PwgError(500, 'error while merging chunk '.$chunk_id); + } + + $logger->debug(__FUNCTION__.' original_sum='.$params['original_sum'].', chunk '.$chunk_id.'/'.$params['chunks'].' merged'); + + // delete chunk and clear cache + unlink($chunkfile_path); + } + + // flush output before releasing lock + fflush($fp); + flock($fp, LOCK_UN); + fclose($fp); + + $logger->debug(__FUNCTION__.' merged file '.$output_filepath.' saved'); + + // MD5 checksum + $merged_md5 = md5_file($output_filepath); + + if ($merged_md5 != $params['original_sum']) + { + unlink($output_filepath); + $logger->error(__FUNCTION__.' '.$output_filepath.' MD5 checksum mismatched!'); + return new PwgError(500, "MD5 checksum merged file mismatched"); + } + + $logger->debug(__FUNCTION__.' '.$output_filepath.' MD5 checksum OK'); + + include_once(PHPWG_ROOT_PATH.'admin/include/functions_upload.inc.php'); + + $image_id = add_uploaded_file( + $output_filepath, + $params['filename'], + $params['category'], + $params['level'], + $params['image_id'], + $params['original_sum'] + ); + + $logger->debug(__FUNCTION__.' image_id after add_uploaded_file = '.$image_id); + + // and now, let's create tag associations + if (isset($params['tag_ids']) and !empty($params['tag_ids'])) + { + set_tags( + explode(',', $params['tag_ids']), + $image_id + ); + } + + // time to set other infos + $info_columns = array( + 'name', + 'author', + 'comment', + 'date_creation', + ); + + $update = array(); + foreach ($info_columns as $key) + { + if (isset($params[$key])) + { + $update[$key] = $params[$key]; + } + } + + if (count(array_keys($update)) > 0) + { + single_update( + IMAGES_TABLE, + $update, + array('id' => $image_id) + ); + } + + // final step, reset user cache + invalidate_user_cache(); + + // trick to bypass get_sql_condition_FandF + if (!empty($params['level']) and $params['level'] > $user['level']) + { + // this will not persist + $user['level'] = $params['level']; + } + + // delete chunks older than a week + $now = time(); + foreach (glob($conf['upload_dir'].'/buffer/'."*.chunk") as $file) + { + if (is_file($file)) + { + if ($now - filemtime($file) >= 60 * 60 * 24 * 7) // 7 days + { + $logger->info(__FUNCTION__.' delete '.$file); + unlink($file); + } + else + { + $logger->debug(__FUNCTION__.' keep '.$file); + } + } + } + + // delete merged older than a week + foreach (glob($conf['upload_dir'].'/buffer/'."*.merged") as $file) + { + if (is_file($file)) + { + if ($now - filemtime($file) >= 60 * 60 * 24 * 7) // 7 days + { + $logger->info(__FUNCTION__.' delete '.$file); + unlink($file); + } + else + { + $logger->debug(__FUNCTION__.' keep '.$file); + } + } + } + + return $service->invoke('pwg.images.getInfo', array('image_id' => $image_id)); +} + /** * API method * Check if an image exists by it's name or md5 sum @@ -1670,7 +1962,12 @@ SELECT * ); } - $update['file'] = $params['file']; + // prevent XSS, remove HTML tags + $update['file'] = strip_tags($params['file']); + if (empty($update['file'])) + { + unset($update['file']); + } } if (count(array_keys($update)) > 0) diff --git a/include/ws_functions/pwg.tags.php b/include/ws_functions/pwg.tags.php index 1f0b620bf..a3244ea19 100644 --- a/include/ws_functions/pwg.tags.php +++ b/include/ws_functions/pwg.tags.php @@ -224,10 +224,284 @@ function ws_tags_add($params, &$service) if (isset($creation_output['error'])) { - return new PwgError(500, $creation_output['error']); + return new PwgError(WS_ERR_INVALID_PARAM, $creation_output['error']); } - return $creation_output; + pwg_activity('tag', $creation_output['id'], 'add'); + + $query = ' +SELECT name, url_name +FROM `'.TAGS_TABLE.'` +WHERE id = '.$creation_output['id'].';'; + +$new_tag = query2array($query); + + return array( + 'info' => $creation_output['info'], + 'id' => $creation_output['id'], + 'name' => $new_tag[0]['name'], + 'url_name' => $new_tag[0]['url_name'] + ); +} + +function ws_tags_delete($params, &$service) +{ + include_once(PHPWG_ROOT_PATH.'admin/include/functions.php'); + + if (get_pwg_token() != $params['pwg_token']) + { + return new PwgError(403, 'Invalid security token'); + } + +$query = ' +SELECT COUNT(*) + FROM `'. TAGS_TABLE .'` + WHERE id in ('.implode(',', $params['tag_id']) .') +;'; + list($count) = pwg_db_fetch_row(pwg_query($query)); + if ($count != count($params['tag_id'])) + { + return new PwgError(WS_ERR_INVALID_PARAM, 'All tags does not exist.'); + } + + + $tag_ids = $params['tag_id']; + + if (count($tag_ids) > 0) + { + delete_tags($params['tag_id']); + return array('id' => $tag_ids); + } else { + return array('id' => array()); + } +} + +function ws_tags_rename($params, &$service) +{ + include_once(PHPWG_ROOT_PATH.'admin/include/functions.php'); + + if (get_pwg_token() != $params['pwg_token']) + { + return new PwgError(403, 'Invalid security token'); + } + + $tag_id = $params['tag_id']; + $tag_name = $params['new_name']; + + // does the tag exist ? + $query = ' +SELECT COUNT(*) + FROM `'. TAGS_TABLE .'` + WHERE id = '. $tag_id .' +;'; + list($count) = pwg_db_fetch_row(pwg_query($query)); + if ($count == 0) + { + return new PwgError(WS_ERR_INVALID_PARAM, 'This tag does not exist.'); + } + + $query = ' +SELECT name + FROM '.TAGS_TABLE.' + WHERE id != '.$tag_id.' +;'; + $existing_names = array_from_query($query, 'name'); + + $update = array(); + + if (in_array($tag_name, $existing_names)) + { + return new PwgError(WS_ERR_INVALID_PARAM, 'This name is already token'); + } + else if (!empty($tag_name)) + { + $update = array( + 'name' => addslashes($tag_name), + 'url_name' => trigger_change('render_tag_url', $tag_name), + ); + + } + + pwg_activity('tag', $tag_id, 'edit'); + + single_update( + TAGS_TABLE, + $update, + array('id' => $tag_id) + ); + + return array( + 'id' => $tag_id, + 'name' => addslashes($tag_name), + 'url_name' => trigger_change('render_tag_url', $tag_name) + ); +} + + +function ws_tags_duplicate($params, &$service) +{ + + include_once(PHPWG_ROOT_PATH.'admin/include/functions.php'); + + if (get_pwg_token() != $params['pwg_token']) + { + return new PwgError(403, 'Invalid security token'); + } + + $tag_id = $params['tag_id']; + $copy_name = $params['copy_name']; + + // does the tag exist ? + $query = ' +SELECT COUNT(*) + FROM `'. TAGS_TABLE .'` + WHERE id = '. $tag_id .' +;'; + list($count) = pwg_db_fetch_row(pwg_query($query)); + if ($count == 0) + { + return new PwgError(WS_ERR_INVALID_PARAM, 'This tag does not exist.'); + } + + $query = ' +SELECT COUNT(*) + FROM `'. TAGS_TABLE .'` + WHERE name = "'. $copy_name .'" +;'; + list($count) = pwg_db_fetch_row(pwg_query($query)); + if ($count != 0) + { + return new PwgError(WS_ERR_INVALID_PARAM, 'This name is already taken.'); + } + + + single_insert( + TAGS_TABLE, + array( + 'name' => $copy_name, + 'url_name' => trigger_change('render_tag_url', $copy_name), + ) + ); + $destination_tag_id = pwg_db_insert_id(TAGS_TABLE); + + pwg_activity('tag', $destination_tag_id, 'add', array('action'=>'duplicate', 'source_tag'=>$tag_id)); + + $query = ' +SELECT image_id + FROM '.IMAGE_TAG_TABLE.' + WHERE tag_id = '.$tag_id.' +;'; + $destination_tag_image_ids = array_from_query($query, 'image_id'); + + $inserts = array(); + + foreach ($destination_tag_image_ids as $image_id) + { + $inserts[] = array( + 'tag_id' => $destination_tag_id, + 'image_id' => $image_id + ); + pwg_activity('photo', $image_id, 'edit', array("add-tag" => $destination_tag_id)); + } + + if (count($inserts) > 0) + { + mass_inserts( + IMAGE_TAG_TABLE, + array_keys($inserts[0]), + $inserts + ); + } + + return array( + 'id' => $destination_tag_id, + 'name' => $copy_name, + 'url_name' => trigger_change('render_tag_url', $copy_name), + 'count' => count($inserts) + ); +} + +function ws_tags_merge($params, &$service) +{ + + if (get_pwg_token() != $params['pwg_token']) + { + return new PwgError(403, 'Invalid security token'); + } + + $all_tags = $params['merge_tag_id']; + array_push($all_tags, $params['destination_tag_id']); + + $all_tags = array_unique($all_tags); + $merge_tag = array_diff($params['merge_tag_id'], array($params['destination_tag_id'])); + + $query = ' +SELECT COUNT(*) + FROM `'. TAGS_TABLE .'` + WHERE id in ('.implode(',', $all_tags) .') +;'; + list($count) = pwg_db_fetch_row(pwg_query($query)); + if ($count != count($all_tags)) + { + return new PwgError(WS_ERR_INVALID_PARAM, 'All tags does not exist.'); + } + + $image_in_merge_tags = array(); + $image_in_dest = array(); + $image_to_add = array(); + + $query = ' +SELECT DISTINCT(image_id) + FROM `'. IMAGE_TAG_TABLE .'` + WHERE + tag_id IN ('.implode(',', $merge_tag) .') +;'; + $image_in_merge_tags = query2array($query, null, 'image_id'); + + $query = ' +SELECT image_id + FROM `'. IMAGE_TAG_TABLE .'` + WHERE tag_id = '.$params['destination_tag_id'].' +;'; + + $image_in_dest = query2array($query, null, 'image_id');; + + + $image_to_add = array_diff($image_in_merge_tags, $image_in_dest); + + $inserts = array(); + foreach ($image_to_add as $image) + { + $inserts[] = array( + 'tag_id' => $params['destination_tag_id'], + 'image_id' => $image, + ); + } + + mass_inserts( + IMAGE_TAG_TABLE, + array('tag_id', 'image_id'), + $inserts, + array('ignore'=>true) + ); + + pwg_activity('tag', $params['destination_tag_id'], 'edit'); + foreach ($image_to_add as $image_id) + { + pwg_activity('photo', $image_id, 'edit', array("tag-add" => $params['destination_tag_id'])); + } + + include_once(PHPWG_ROOT_PATH.'admin/include/functions.php'); + + delete_tags($merge_tag); + + $image_in_merged = array_merge($image_in_dest, $image_to_add); + + return array( + "destination_tag" => $params['destination_tag_id'], + "deleted_tag" => $params['merge_tag_id'], + "images_in_merged_tag" => $image_in_merged + ); } ?> diff --git a/include/ws_functions/pwg.users.php b/include/ws_functions/pwg.users.php index 3881f3b65..f9f607017 100644 --- a/include/ws_functions/pwg.users.php +++ b/include/ws_functions/pwg.users.php @@ -555,6 +555,11 @@ SELECT deactivate_user_auth_keys($params['user_id'][0]); } + if (isset($updates[ $conf['user_fields']['email'] ])) + { + deactivate_password_reset_key($params['user_id'][0]); + } + if (isset($update_status) and count($params['user_id_for_status']) > 0) { $query = ' @@ -632,4 +637,158 @@ SELECT )); } +/** + * API method + * Adds a favorite image for the current user + * @param mixed[] $params + * @option int image_id + */ +function ws_users_favorites_add($params, &$service) +{ + global $user; + + if (is_a_guest()) + { + return new PwgError(403, 'User must be logged in.'); + } + + // does the image really exist? + $query = ' +SELECT COUNT(*) + FROM '. IMAGES_TABLE .' + WHERE id = '. $params['image_id'] .' +;'; + list($count) = pwg_db_fetch_row(pwg_query($query)); + if ($count == 0) + { + return new PwgError(404, 'image_id not found'); + } + + single_insert( + FAVORITES_TABLE, + array( + 'image_id' => $params['image_id'], + 'user_id' => $user['id'], + ), + array('ignore' => true) + ); + + return true; +} + +/** + * API method + * Removes a favorite image for the current user + * @param mixed[] $params + * @option int image_id + */ +function ws_users_favorites_remove($params, &$service) +{ + global $user; + + if (is_a_guest()) + { + return new PwgError(403, 'User must be logged in.'); + } + + // does the image really exist? + $query = ' +SELECT COUNT(*) + FROM '. IMAGES_TABLE .' + WHERE id = '. $params['image_id'] .' +;'; + list($count) = pwg_db_fetch_row(pwg_query($query)); + if ($count == 0) + { + return new PwgError(404, 'image_id not found'); + } + + $query = ' +DELETE + FROM '.FAVORITES_TABLE.' + WHERE user_id = '.$user['id'].' + AND image_id = '.$params['image_id'].' +;'; + + pwg_query($query); + + return true; +} + +/** + * API method + * Returns the favorite images of the current user + * @param mixed[] $params + * @option int per_page + * @option int page + * @option string order + */ +function ws_users_favorites_getList($params, &$service) +{ + global $conf, $user; + + if (is_a_guest()) + { + return false; + } + + check_user_favorites(); + + $order_by = ws_std_image_sql_order($params, 'i.'); + $order_by = empty($order_by) ? $conf['order_by'] : 'ORDER BY '.$order_by; + + $query = ' +SELECT + i.* + FROM '.FAVORITES_TABLE.' + INNER JOIN '.IMAGES_TABLE.' i ON image_id = i.id + WHERE user_id = '.$user['id'].' +'.get_sql_condition_FandF( + array( + 'visible_images' => 'id' + ), + 'AND' + ).' + '.$order_by.' +;'; + $images = array(); + $result = pwg_query($query); + while ($row = pwg_db_fetch_assoc($result)) + { + $image = array(); + + foreach (array('id', 'width', 'height', 'hit') as $k) + { + if (isset($row[$k])) + { + $image[$k] = (int)$row[$k]; + } + } + + foreach (array('file', 'name', 'comment', 'date_creation', 'date_available') as $k) + { + $image[$k] = $row[$k]; + } + + $images[] = array_merge($image, ws_std_get_urls($row)); + } + + $count = count($images); + $images = array_slice($images, $params['per_page']*$params['page'], $params['per_page']); + + return array( + 'paging' => new PwgNamedStruct( + array( + 'page' => $params['page'], + 'per_page' => $params['per_page'], + 'count' => $count + ) + ), + 'images' => new PwgNamedArray( + $images, 'image', + ws_std_get_image_xml_attributes() + ) + ); +} + ?> diff --git a/install.php b/install.php index bea9d726f..ab825cb7e 100644 --- a/install.php +++ b/install.php @@ -211,9 +211,6 @@ else if ('pl_PL' == $language) { else if ('zh_CN' == $language) { define('PHPWG_DOMAIN', 'cn.piwigo.org'); } -else if ('hu_HU' == $language) { - define('PHPWG_DOMAIN', 'hu.piwigo.org'); -} else if ('ru_RU' == $language) { define('PHPWG_DOMAIN', 'ru.piwigo.org'); } @@ -232,7 +229,7 @@ else if ('pt_BR' == $language) { else { define('PHPWG_DOMAIN', 'piwigo.org'); } -define('PHPWG_URL', 'http://'.PHPWG_DOMAIN); +define('PHPWG_URL', 'https://'.PHPWG_DOMAIN); load_language('common.lang', '', array('language' => $language, 'target_charset'=>'utf-8')); load_language('admin.lang', '', array('language' => $language, 'target_charset'=>'utf-8')); @@ -359,11 +356,8 @@ INSERT INTO '.$prefixeTable.'config (param,value,comment) '%gallery_title%'."\n\n".pwg_db_real_escape_string(l10n('Welcome to my photo gallery')).'' ); - // fill languages table - foreach ($languages->fs_languages as $language_code => $fs_language) - { - $languages->perform_action('activate', $language_code); - } + // fill languages table, only activate the current language + $languages->perform_action('activate', $language); // fill $conf global array load_conf_from_db(); @@ -498,7 +492,7 @@ else log_user($user['id'], false); // email notification - if (isset($_POST['send_password_by_mail'])) + if (isset($_POST['send_credentials_by_mail'])) { include_once(PHPWG_ROOT_PATH.'include/functions_mail.inc.php'); @@ -510,7 +504,7 @@ else get_l10n_args('', ''), get_l10n_args('Link: %s', get_absolute_root_url()), get_l10n_args('Username: %s', $admin_name), - get_l10n_args('Password: %s', $admin_pass1), + get_l10n_args('Password: ********** (no copy by email)', ''), get_l10n_args('Email: %s', $admin_mail), get_l10n_args('', ''), get_l10n_args('Don\'t hesitate to consult our forums for any help: %s', PHPWG_URL), diff --git a/install/config.sql b/install/config.sql index 4bdd9d664..14a68ef33 100644 --- a/install/config.sql +++ b/install/config.sql @@ -73,3 +73,5 @@ INSERT INTO piwigo_config (param,value) VALUES ('display_fromto','false'); INSERT INTO piwigo_config (param,value) VALUES ('picture_edit_icon','true'); INSERT INTO piwigo_config (param,value) VALUES ('picture_caddie_icon','true'); INSERT INTO piwigo_config (param,value) VALUES ('picture_representative_icon','true'); +INSERT INTO piwigo_config (param,value) VALUES ('show_mobile_app_banner_in_admin','true'); +INSERT INTO piwigo_config (param,value) VALUES ('show_mobile_app_banner_in_gallery','false'); diff --git a/themes/Sylvia/icon/mimetypes/index.php b/install/db/157-database.php similarity index 60% rename from themes/Sylvia/icon/mimetypes/index.php rename to install/db/157-database.php index 58ea04e8f..7773c85cd 100644 --- a/themes/Sylvia/icon/mimetypes/index.php +++ b/install/db/157-database.php @@ -6,10 +6,16 @@ // | file that was distributed with this source code. | // +-----------------------------------------------------------------------+ -// Recursive call -$url = '../'; -header( 'Request-URI: '.$url ); -header( 'Content-Location: '.$url ); -header( 'Location: '.$url ); -exit(); +if (!defined('PHPWG_ROOT_PATH')) +{ + die('Hacking attempt!'); +} + +$upgrade_description = 'add config parameters to display smart app banner'; + +conf_update_param('show_mobile_app_banner_in_admin', true); +conf_update_param('show_mobile_app_banner_in_gallery', false); + +echo "\n".$upgrade_description."\n"; + ?> diff --git a/install/db/158-database.php b/install/db/158-database.php new file mode 100644 index 000000000..c63667077 --- /dev/null +++ b/install/db/158-database.php @@ -0,0 +1,33 @@ + diff --git a/themes/Sylvia/index.php b/install/db/159-database.php similarity index 64% rename from themes/Sylvia/index.php rename to install/db/159-database.php index 58ea04e8f..affe973de 100644 --- a/themes/Sylvia/index.php +++ b/install/db/159-database.php @@ -6,10 +6,19 @@ // | file that was distributed with this source code. | // +-----------------------------------------------------------------------+ -// Recursive call -$url = '../'; -header( 'Request-URI: '.$url ); -header( 'Content-Location: '.$url ); -header( 'Location: '.$url ); -exit(); +if (!defined('PHPWG_ROOT_PATH')) +{ + die('Hacking attempt!'); +} + +$upgrade_description = 'add index on images.path'; + +$query = ' +ALTER TABLE '. IMAGES_TABLE .' + ADD INDEX `images_i7` (`path`) +;'; +pwg_query($query); + +echo "\n".$upgrade_description."\n"; + ?> diff --git a/install/upgrade_2.10.0.php b/install/upgrade_2.10.0.php new file mode 100644 index 000000000..1fe1d0b84 --- /dev/null +++ b/install/upgrade_2.10.0.php @@ -0,0 +1,111 @@ += 157) // TODO change on each release (first task to run) + { + break; + } + + array_push( + $inserts, + array( + 'id' => $upgrade_id, + 'applied' => CURRENT_DATE, + 'description' => '[migration from 2.10.0 to '.PHPWG_VERSION.'] not applied', // TODO change on each release + ) + ); +} + +if (!empty($inserts)) +{ + mass_inserts( + '`'.UPGRADE_TABLE.'`', + array_keys($inserts[0]), + $inserts + ); +} + +// +-----------------------------------------------------------------------+ +// | Perform upgrades | +// +-----------------------------------------------------------------------+ + +ob_start(); +echo ''; + +for ($upgrade_id = 157; $upgrade_id <= 159; $upgrade_id++) // TODO change on each release +{ + if (!file_exists(UPGRADES_PATH.'/'.$upgrade_id.'-database.php')) + { + continue; + } + + // maybe the upgrade task has already been applied in a previous and + // incomplete upgrade + if (in_array($upgrade_id, $applied)) + { + continue; + } + + unset($upgrade_description); + + echo "\n\n"; + echo '=== upgrade '.$upgrade_id."\n"; + + // include & execute upgrade script. Each upgrade script must contain + // $upgrade_description variable which describe briefly what the upgrade + // script does. + $up_start = get_moment(); + include(UPGRADES_PATH.'/'.$upgrade_id.'-database.php'); + + // notify upgrade (TODO change on each release) + $query = ' +INSERT INTO `'.PREFIX_TABLE.'upgrade` + (id, applied, description) + VALUES + (\''.$upgrade_id.'\', NOW(), \'[migration from 2.10.0 to '.PHPWG_VERSION.', '.get_elapsed_time($up_start, get_moment()).'] '.$upgrade_description.'\') +;'; + pwg_query($query); +} + +echo ''; +ob_end_clean(); + +// now we upgrade from 11.0.0 +// include_once(PHPWG_ROOT_PATH.'install/upgrade_11.0.0.php'); +?> diff --git a/install/upgrade_2.8.0.php b/install/upgrade_2.8.0.php index 54630ee45..16027aa53 100644 --- a/install/upgrade_2.8.0.php +++ b/install/upgrade_2.8.0.php @@ -107,5 +107,5 @@ echo ''; ob_end_clean(); // now we upgrade from 2.9.0 -// include_once(PHPWG_ROOT_PATH.'install/upgrade_2.9.0.php'); +include_once(PHPWG_ROOT_PATH.'install/upgrade_2.9.0.php'); ?> diff --git a/install/upgrade_2.9.0.php b/install/upgrade_2.9.0.php new file mode 100644 index 000000000..dadab91df --- /dev/null +++ b/install/upgrade_2.9.0.php @@ -0,0 +1,111 @@ += 153) // TODO change on each release (first task to run) + { + break; + } + + array_push( + $inserts, + array( + 'id' => $upgrade_id, + 'applied' => CURRENT_DATE, + 'description' => '[migration from 2.9.0 to '.PHPWG_VERSION.'] not applied', // TODO change on each release + ) + ); +} + +if (!empty($inserts)) +{ + mass_inserts( + '`'.UPGRADE_TABLE.'`', + array_keys($inserts[0]), + $inserts + ); +} + +// +-----------------------------------------------------------------------+ +// | Perform upgrades | +// +-----------------------------------------------------------------------+ + +ob_start(); +echo ''; + +for ($upgrade_id = 153; $upgrade_id <= 156; $upgrade_id++) // TODO change on each release +{ + if (!file_exists(UPGRADES_PATH.'/'.$upgrade_id.'-database.php')) + { + continue; + } + + // maybe the upgrade task has already been applied in a previous and + // incomplete upgrade + if (in_array($upgrade_id, $applied)) + { + continue; + } + + unset($upgrade_description); + + echo "\n\n"; + echo '=== upgrade '.$upgrade_id."\n"; + + // include & execute upgrade script. Each upgrade script must contain + // $upgrade_description variable which describe briefly what the upgrade + // script does. + $up_start = get_moment(); + include(UPGRADES_PATH.'/'.$upgrade_id.'-database.php'); + + // notify upgrade (TODO change on each release) + $query = ' +INSERT INTO `'.PREFIX_TABLE.'upgrade` + (id, applied, description) + VALUES + (\''.$upgrade_id.'\', NOW(), \'[migration from 2.9.0 to '.PHPWG_VERSION.', '.get_elapsed_time($up_start, get_moment()).'] '.$upgrade_description.'\') +;'; + pwg_query($query); +} + +echo ''; +ob_end_clean(); + +// now we upgrade from 2.10.0 +include_once(PHPWG_ROOT_PATH.'install/upgrade_2.10.0.php'); +?> diff --git a/language/af_ZA/admin.lang.php b/language/af_ZA/admin.lang.php index bb5390ef6..41e4ca9aa 100644 --- a/language/af_ZA/admin.lang.php +++ b/language/af_ZA/admin.lang.php @@ -244,6 +244,7 @@ $lang['Notify administrators when a comment is'] = 'Stel administrateurs in kenn $lang['Opacity'] = 'Deursigtigheid'; $lang['Original Size'] = 'Oorspronklike grootte'; $lang['Original file : %s'] = 'Oorspronklike lêer: %s'; +$lang['Piwigo for Android'] = 'Piwigo vir Android'; $lang['Piwigo for iOS (iPhone, iPad, iPod Touch)'] = 'Piwigo vir iOS (iPhone, iPad, iPod Touch)10217569'; $lang['Posted %s on %s'] = 'Gepos %s op %s'; $lang['Select a file'] = 'Kies \'n lêer'; @@ -536,7 +537,7 @@ $lang['none'] = 'geen'; $lang['nothing'] = 'niks'; $lang['Modify information'] = 'Verander inligting'; $lang['No photo selected, %d photos in current set'] = 'Geen foto gekies, %d fotos in huidige stel'; -$lang['No photo selected, no action possible.'] = 'Geen foto gekies, geen aksie moontlik.'; +$lang[' '] = 'Geen foto gekies, geen aksie moontlik.'; $lang['No results'] = 'Geen resultate'; $lang['Notification'] = 'Kennisgewing'; $lang['Obsolete Plugins'] = 'Verouderde invoegsels'; @@ -805,6 +806,7 @@ $lang['Give write access (chmod 777) to "%s" directory at the root of your Piwig $lang['Information data registered in database'] = 'Inligting aangeteken in databasis'; $lang['Invert'] = 'Keer om'; $lang['Language has been successfully installed'] = 'Taal is suksesvol geïnstalleer'; +$lang['Piwigo for Android application empowers you to connect your Android phone or table to your Piwigo gallery, create some albums and upload several photos at once.'] = 'Piwigo vir Android toepassing stel jou in staat om met jou Android foon of tablet aan jou Piwigo gallery te verbind, albums te skep en fotos op te laai.'; $lang['Piwigo for iOS application empowers you to connect to your Piwigo gallery from your iPhone, iPad or iPod Touch, create some albums and upload several photos at once.'] = 'Piwigo vir iOS toepassing stel jou in staat om met jou iPhone, iPad of iPad touch aan jou Piwigo gallery te verbind, albums te skep en fotos op te laai.'; $lang['Adobe Photoshop Lightroom is a photography software designed to manage large quantities of digital images and doing post production work.'] = 'Adobe Photoshop Lightroom is fotografie sagteware wat ontwerp is om groot hoeveelhede digitale beelde te administreer en postproduksie werk te doen.'; $lang['Aperture is a powerful tool to refine images and manage massive libraries on Mac.'] = 'Aperture is \'n kragtige pakket om beelde te verwerk en groot biblioteke op Mac te hanteer.'; @@ -905,7 +907,7 @@ $lang['Manage the members'] = 'Administreer lede'; $lang['Merge selected groups'] = 'Versmelt gekose groepe'; $lang['Minimum height'] = 'Minimum hoogte'; $lang['Minimum width'] = 'Minimum wydte'; -$lang['No group selected, no action possible.'] = 'Geen groep gekies, geen aksies moontlik'; +$lang['No groups selected, no actions possible.'] = 'Geen groep gekies, geen aksies moontlik'; $lang['No members to manage'] = 'Geen lede'; $lang['Number of albums per page'] = 'Aantal albums per blad'; $lang['Panorama'] = 'Panorama'; @@ -944,7 +946,7 @@ $lang['No matching user found'] = 'Geen passende gebruiker gevind'; $lang['No recipient selected'] = 'Geen ontvanger gekies'; $lang['No user is permitted to see this private album'] = 'Geen gebruiker word toegelaat om \'n privaat album te sien nie'; $lang['No user selected of %d users'] = 'Geen gebruiker uit %d gebruikers gekies'; -$lang['No user selected, no action possible.'] = 'Geen gebuiker gekies, geen aksie moontlik.'; +$lang['No users selected, no actions possible.'] = 'Geen gebuiker gekies, geen aksie moontlik.'; $lang['Open user details'] = 'Vertoon gebruikersinligting'; $lang['Orphans'] = 'Wese'; $lang['Password updated'] = 'Wagwoord opgedateer'; @@ -968,4 +970,4 @@ $lang['General'] = 'Algemeen'; $lang['Last visit on %s, %s.'] = 'Laaste besoek op %s, %s.'; $lang['Mail address is mandatory for registration'] = 'Posadres is verpligtend vir registrasie'; $lang['Mail theme'] = 'Postema'; -$lang['%d of %d users selected'] = '%d van %d gebruikers gekies'; \ No newline at end of file +$lang['%d of %d users selected'] = '%d van %d gebruikers gekies'; diff --git a/language/ar_SA/admin.lang.php b/language/ar_SA/admin.lang.php index e4041f17b..7624bee1e 100644 --- a/language/ar_SA/admin.lang.php +++ b/language/ar_SA/admin.lang.php @@ -664,7 +664,7 @@ $lang['Refresh photo set'] = 'ØØ¯Ø« مجموعة الصور'; $lang['The whole page'] = 'ØµÙØØ© كاملة'; $lang['The whole set'] = 'مجموعة كلمة'; $lang['No photo in the current set.'] = 'لا صور ÙÙŠ المجموعة Ø§Ù„ØØ§Ù„ية'; -$lang['No photo selected, no action possible.'] = 'لا توجد صور Ù…ØØ¯Ø¯Ø© ØŒ أي إجراء ممكن'; +$lang['No photos selected, no actions possible.'] = 'لا توجد صور Ù…ØØ¯Ø¯Ø© ØŒ أي إجراء ممكن'; $lang['Choose an action'] = 'اختر اجراء'; $lang['remove author'] = 'Ø§ØØ°Ù الكاتب'; $lang['Type here the author name'] = 'أكتب هنا أسم الكاتب '; @@ -781,6 +781,7 @@ $lang['Not cropped correctly?'] = 'الإقتطاع غير صØÙŠØØŸ'; $lang['Notify administrators when a comment is'] = 'أبلغ المدير عندالتعليق'; $lang['Original Size'] = 'Ø§Ù„ØØ¬Ù… الأصلي'; $lang['pending validation'] = 'ÙÙŠ إنتظار التصريØ'; +$lang['Piwigo for Android'] = 'Piwigo for Android'; $lang['Piwigo for iOS (iPhone, iPad, iPod Touch)'] = 'Piwigo for iOS (iPhone, iPad, iPod Touch)'; $lang['Piwigo Publish plugin for Lightroom'] = 'Piwigo Ø£Ø¶Ø§ÙØ© للنشر بوا سطة برنامج Lightroom'; $lang['Predefined filter'] = 'Ù…ÙØ±Ø´Ø Ù…ÙØØ¯Ø¯ Ù…ÙØ³Ø¨Ù‚اً'; @@ -829,6 +830,7 @@ $lang['Select groups...'] = 'ØªØØ¯ÙŠØ¯ مجموعات ..'; $lang['Select users...'] = 'ØªØØ¯ÙŠØ¯ المستخدمين'; $lang['There is no group in this gallery.'] = 'لا توجد مجموعه لهذا الألبوم'; $lang['visitors need to login and have the appropriate permissions to see this album'] = 'الزوار ÙÙŠ ØØ§Ø¬Ù‡ لتسجيل الدخول او Ø§Ù„ØªØµØ±ÙŠØ ØØªÙ‰ يمكنهم مشاهده هذا الألبوم'; +$lang['Piwigo for Android application empowers you to connect your Android phone or table to your Piwigo gallery, create some albums and upload several photos at once.'] = 'Piwigo for Android تطبيقات للاجهزه اللمسيه التي تعمل علي نظام آندرويذ ØŒ ÙŠØªÙŠØ Ù„Ù‡Ø°Ù‡ الاجهزه Ø±ÙØ¹ الصور Ùˆ انشاء الآلبومات'; $lang['Piwigo for iOS application empowers you to connect to your Piwigo gallery from your iPhone, iPad or iPod Touch, create some albums and upload several photos at once.'] = 'Piwigo for iOS تطبيقات للاجهزه اللمسيه الخاصة بشركه أبل ،آيÙون ØŒ آيباد Ùˆ آيبود ØŒ تطبيق ÙŠØªÙŠØ Ù„Ù‡Ø°Ù‡ الاجهزه الاتصال بمعرضك الخاص Ùˆ Ø±ÙØ¹ الصور Ùˆ انشاء Ùˆ الألبومات '; $lang['Adobe Photoshop Lightroom is a photography software designed to manage large quantities of digital images and doing post production work.'] = 'أدوبي Ùوتوشوب لايتروم هو برنامج التصوير المصممة لإدارة كميات كبيرة من الصور الرقمية والقيام بأعمال ما بعد الإنتاج.'; $lang['Piwigo publish plugin for Shotwell'] = 'Ø§Ø¶Ø§ÙØ© النشر ÙÙŠ Piwigo الخاصه ببرنامج Shotwell'; @@ -915,7 +917,7 @@ $lang['This group will be unset to default'] = 'لم يتم استخدام هذ $lang['Ratio'] = 'نبسة'; $lang['Please select at least two groups'] = 'ÙØ¶Ù„ا Ù‹ لا أمرا ٠أختر Ùيما لا يقل عن مجموعتين '; $lang['No members to manage'] = 'لا يوجد أعضاد لإدارتهم'; -$lang['No group selected, no action possible.'] = 'لم يتم ØªØØ¯ÙŠØ¯ أي مجموعة ØŒ لا تتوقع Ø§Ù„ØªÙØ§Ø¹Ù„'; +$lang['No groups selected, no actions possible.'] = 'لم يتم ØªØØ¯ÙŠØ¯ أي مجموعة ØŒ لا تتوقع Ø§Ù„ØªÙØ§Ø¹Ù„'; $lang['Merge selected groups'] = 'إدارة المجموعة المختارة'; $lang['between %d and %d pixels'] = 'ما بين %d Ùˆ %d بكسل'; $lang['between %.2f and %.2f'] = 'ما بين %.2f Ùˆ %.2f '; @@ -934,7 +936,7 @@ $lang['Registered on %s, %s.'] = 'Ø³ÙØ¬Ù‘ÙÙ„ ÙÙŠ%s, %s'; $lang['Change username'] = 'تغيير اسم المستخدم'; $lang['Loading...'] = 'تØÙ…يل ...'; $lang['No matching user found'] = 'لم يتم العثور على مستخدم مطابق'; -$lang['No user selected, no action possible.'] = 'لم يتم إختيار المستخدم، أي إجراء غير ممكن'; +$lang['No users selected, no actions possible.'] = 'لم يتم إختيار المستخدم، أي إجراء غير ممكن'; $lang['Password updated'] = 'كلمة السر تم ØªØØ¯ÙŠØ«Ù‡Ø§'; $lang['Update user'] = 'ØªØØ¯ÙŠØ« المستعمل'; $lang['Users modified'] = 'المستخدمين تم تعديلهم'; diff --git a/language/bg_BG/admin.lang.php b/language/bg_BG/admin.lang.php index 13b3823bd..bcc1151a9 100644 --- a/language/bg_BG/admin.lang.php +++ b/language/bg_BG/admin.lang.php @@ -402,6 +402,7 @@ $lang['Private'] = 'Личен'; $lang['Position'] = 'ПозициÑ'; $lang['Plugins which need upgrade'] = 'Ð Ð°Ð·ÑˆÐ¸Ñ€ÐµÐ½Ð¸Ñ Ð·Ð° обновÑване'; $lang['Piwigo version'] = 'Piwigo верÑиÑ'; +$lang['Piwigo for Android'] = 'Piwigo за Android'; $lang['Piwigo configuration'] = 'Piwigo конфигурациÑ'; $lang['Piwigo Administration'] = 'Piwigo ÐдминиÑтриране'; $lang['Piwigo Update'] = 'Piwigo ъпдейт'; @@ -571,6 +572,7 @@ $lang['Type here the title'] = 'Въведете заглавието тук'; $lang['Type here the author name'] = 'Въведете името на автора тук'; $lang['This site already exists'] = 'Този Ñайт вече ÑъщеÑтвува'; $lang['leave'] = 'оÑтавÑне'; +$lang['Piwigo for Android application empowers you to connect your Android phone or table to your Piwigo gallery, create some albums and upload several photos at once.'] = 'Piwigo за Android приложение ви позволÑва да Ñвържете Ð²Ð°ÑˆÐ¸Ñ Android телефон или таблет Ñ Ð³Ð°Ð»ÐµÑ€Ð¸Ñта, да Ñъздавате албуми и да качване нÑколко Ñнимки наведнъж.'; $lang['Piwigo for iOS application empowers you to connect to your Piwigo gallery from your iPhone, iPad or iPod Touch, create some albums and upload several photos at once.'] = 'Piwigo за iOS EM> приложение ви дава възможноÑÑ‚ да Ñе Ñвържете към Ð³Ð°Ð»ÐµÑ€Ð¸Ñ Ð¾Ñ‚ Ð²Ð°ÑˆÐ¸Ñ iPhone, iPad или iPod Touch, да Ñъздаване албуми и да качване нÑколко Ñнимки наведнъж.'; $lang['Adobe Photoshop Lightroom is a photography software designed to manage large quantities of digital images and doing post production work.'] = 'Adobe Photoshop Lightroom е фотографÑки Ñофтуер, предназначен за управление на големи количеÑтва цифрови Ð¸Ð·Ð¾Ð±Ñ€Ð°Ð¶ÐµÐ½Ð¸Ñ Ð¸ публикуването им Ñлед редактирането.'; $lang['An error has occured during extract. Please check files permissions of your piwigo installation.Click here to show log error.'] = 'Възникнала е грешка по време на извличането. ÐœÐ¾Ð»Ñ Ð¿Ñ€Ð¾Ð²ÐµÑ€ÐµÑ‚Ðµ правата за файловете в инÑталациÑта.Кликнете тук за да видите грешката.'; @@ -727,9 +729,9 @@ $lang['Metadata synchronized from file'] = 'Метаданните Ñинхро $lang['Hoverbox display'] = 'Показване на каре при поÑочване Ñ Ð¼Ð¸ÑˆÐºÐ°'; $lang['Impossible to activate this theme, the parent theme is missing: %s'] = 'Тази тема не може да бъде активирана, тъй като родителÑката тема липÑва: %s'; $lang['No user to send notifications by mail.'] = 'ÐÑма потребител, който да бъде уведомен Ñ Ð¸Ð¼ÐµÐ¹Ð».'; -$lang['No photo selected, no action possible.'] = 'Ðе е избрана Ñнимка, не може да бъде предприето дейÑтвие'; +$lang['No photos selected, no actions possible.'] = 'Ðе е избрана Ñнимка, не може да бъде предприето дейÑтвие'; $lang['No photo selected, %d photos in current set'] = 'Ðе е избрана Ñнимка, %d Ñнимки в Ñ‚ÐµÐºÑƒÑ‰Ð¸Ñ Ð½Ð°Ð±Ð¾Ñ€'; -$lang['No group selected, no action possible.'] = 'Ðе е избрана група, не може да бъде предприето дейÑтвие.'; +$lang['No groups selected, no actions possible.'] = 'Ðе е избрана група, не може да бъде предприето дейÑтвие.'; $lang['Images manual order was saved'] = 'Ръчно избраниÑÑ‚ ред е запазен'; $lang['New parent album'] = 'Ðов родителÑки албум'; $lang['No destination tag selected'] = 'Ðе е избран етикет'; @@ -937,7 +939,7 @@ $lang['Showing %s to %s of %s users'] = 'Показва %s до %s от %s по $lang['Show %s users'] = 'Показани %s потребители'; $lang['Registered on %s, %s.'] = 'РегиÑтриран на %s, %s.'; $lang['Password updated'] = 'Паролата е обновена'; -$lang['No user selected, no action possible.'] = 'ÐÑма избран потребител, не е възможна операциÑ.'; +$lang['No users selected, no actions possible.'] = 'ÐÑма избран потребител, не е възможна операциÑ.'; $lang['No user selected of %d users'] = 'ÐÑма избран потребител от %d потребители'; $lang['No matching user found'] = 'ÐÑма намерено Ñъвпадение по потребител'; $lang['Loading...'] = 'Зареждане...'; @@ -982,7 +984,7 @@ $lang['Time has come to update your Piwigo with version %s, go to %s'] = 'Вре $lang['Share / Send your photos directly from your Mac Os X (10.10 and following) to Piwigo'] = 'Споделете/Изпратете Ñнимки директно от Ð²Ð°ÑˆÐ¸Ñ macOS (10.10 или по-нова) до Piwigo'; $lang['Running on an up-to-date Piwigo is important for security.'] = 'Ъпдейтване до поÑледната верÑÐ¸Ñ Ð½Ð° Piwigo е нужно Ñ Ñ†ÐµÐ» ÑигурноÑÑ‚.'; $lang['Piwigo %s is available, please update'] = 'Piwigo %s е наличен, Ð¼Ð¾Ð»Ñ ÑŠÐ¿Ð´ÐµÐ¹Ñ‚Ð²Ð°Ð¹Ñ‚Ðµ.'; -$lang['No tag selected, no action possible.'] = 'ÐÑма избран етикет, невъзможно дейÑтвие.'; +$lang['No tags selected, no actions possible.'] = 'ÐÑма избран етикет, невъзможно дейÑтвие.'; $lang['No filter on album. Select one or type to search'] = 'Ðе филтрай по албум. Избери Ñамо вид търÑене'; $lang['It only takes a few clicks.'] = 'Ще отнеме нÑколко клика.'; $lang['delete album and the %d orphan photos'] = 'изтриване на албум и %d Ñнимки без албум'; @@ -994,4 +996,4 @@ $lang['Delete album "%s".'] = 'Изтриване на албум "%s".'; $lang['Confirm deletion'] = 'Потвърдете изтриването'; $lang['Dashboard'] = 'Табло'; $lang['Select tags'] = 'Избор на етикети'; -$lang['checksum'] = 'контролно чиÑло'; \ No newline at end of file +$lang['checksum'] = 'контролно чиÑло'; diff --git a/language/br_FR/admin.lang.php b/language/br_FR/admin.lang.php index baed77c93..2f51ad66e 100644 --- a/language/br_FR/admin.lang.php +++ b/language/br_FR/admin.lang.php @@ -147,6 +147,7 @@ $lang['Add tags'] = 'Lakaat merkerioù ouzhpenn'; $lang['Add to caddie'] = 'Lakaat er baner'; $lang['%s value is not correct file because exif are not supported'] = 'N\'eo ket reizh talvoud %s peogwir n\'eo ket skoret exif'; $lang['Piwigo for iOS application empowers you to connect to your Piwigo gallery from your iPhone, iPad or iPod Touch, create some albums and upload several photos at once.'] = 'Gant arload Piwigo evit iOS e vo posubl deoc\'h kevreañ hoc\'h iPhone, iPad pe iPod Touch ouzh ho palier Piwigo, krouiñ rummadoù hag ezkargañ ur bern luc\'hskeudennoù en ur wech.'; +$lang['Piwigo for Android application empowers you to connect your Android phone or table to your Piwigo gallery, create some albums and upload several photos at once.'] = 'Gant arload Piwigo evit Android e vo posubl deoc\'h kevreañ ho pellgomzer pe tablezenn ouzh ho palier Piwigo, krouiñ rummadoù hag ezkargañ ur bern luc\'hskeudennoù en ur wech.'; $lang['+ Add an upload box'] = '+ Lakaat ur voest-ezkargañ'; $lang[', click on'] = ', klikit war'; $lang['(this tag will be deleted)'] = '(ar merker-mañ a vo dilemet)'; @@ -456,6 +457,7 @@ $lang['Instructions to use Piwigo'] = 'Kemennoù evit implij Piwigo'; $lang['Piwigo Uploader'] = 'Ezkarger Piwigo'; $lang['Piwigo export plugin for Aperture'] = 'Lugant ezporzhiañ Piwigo evit Aperture'; $lang['Piwigo export plugin for iPhoto'] = 'Lugant ezporzhiañ Piwigo evit iPhoto'; +$lang['Piwigo for Android'] = 'Piwigo evit Android'; $lang['Piwigo for iOS (iPhone, iPad, iPod Touch)'] = 'Piwigo evit iOS (iPhone, iPad, iPod Touch)'; $lang['Piwigo publish plugin for Shotwell'] = 'Lugant embann Piwigo evit Shotwell'; $lang['Piwigo publish plugin for digiKam'] = 'Lugant embann Piwigo evit digiKam'; @@ -709,9 +711,9 @@ $lang['No group is permitted to see this private album'] = 'Ne c\'hell strollad $lang['No user is permitted to see this private album'] = 'Ne c\'hell implijer ebet gwelet ar rummad prevez-se.'; $lang['No file was uploaded'] = 'Restr ebet pellkarget'; $lang['Upload in progress'] = 'Oc\'h ezkargañ'; -$lang['No group selected, no action possible.'] = 'Strollad ebet diuzet, obererezh ebet d\'ober.'; -$lang['No photo selected, no action possible.'] = 'Luc\'hskeudenn ebet diuzet, obererezh ebet d\'ober.'; -$lang['No user selected, no action possible.'] = 'Implijer ebet diuzet, obererezh ebet d\'ober.'; +$lang['No groups selected, no actions possible.'] = 'Strollad ebet diuzet, obererezh ebet d\'ober.'; +$lang['No photos selected, no actions possible.'] = 'Luc\'hskeudenn ebet diuzet, obererezh ebet d\'ober.'; +$lang['No users selected, no actions possible.'] = 'Implijer ebet diuzet, obererezh ebet d\'ober.'; $lang['No destination tag selected'] = 'Merker pal ebet diuzet'; $lang['No and unlock sub-albums'] = 'Ket ha dibrennañ iz-rummadoù'; $lang['Unlocked'] = 'Dibrennet'; @@ -980,7 +982,7 @@ $lang['Running on an up-to-date Piwigo is important for security.'] = 'Pouezus e $lang['(determined from photos)'] = '(resisaet eus luc\'hskeudennoù)'; $lang['Time has come to update your Piwigo with version %s, go to %s'] = 'Poent eo hizivaat ho Piwigo gant stumm %s, kit da %s'; $lang['Piwigo %s is available, please update'] = 'Piwigo %s a zo hegerzh, hizivait mar plij'; -$lang['No tag selected, no action possible.'] = 'Merker ebet diuzet, obererezh ebet d\'ober.'; +$lang['No tags selected, no actions possible.'] = 'Merker ebet diuzet, obererezh ebet d\'ober.'; $lang['Select tags'] = 'Diuzit ar merkerioù'; $lang['No filter on album. Select one or type to search'] = 'Sil ebet war ar rummad, diuzit unan pe skrivit evit klask'; $lang['checksum'] = 'sammad kontroll'; @@ -1003,4 +1005,4 @@ $lang['Welcome!'] = 'Degemer mat!'; $lang['or'] = 'pe'; $lang['Display album date period'] = 'Diskouez paderezh an deiziadoù e pep rummad, dre skouer « eus an 12 betek ar 15 a viz Gouere 2018 »'; $lang['Piwigo requires an album to add photos.'] = 'Ur rummad en deus ezhom Piwigo da lakaat luc\'hskeudennoù ouzhpenn.'; -$lang['Display category date'] = 'Diskouez deiziat ar rummad'; \ No newline at end of file +$lang['Display category date'] = 'Diskouez deiziat ar rummad'; diff --git a/language/ca_ES/admin.lang.php b/language/ca_ES/admin.lang.php index 85df50b28..441d3f6b0 100644 --- a/language/ca_ES/admin.lang.php +++ b/language/ca_ES/admin.lang.php @@ -653,7 +653,7 @@ $lang['Refresh photo set'] = 'Actualitza les fotos del conjunt'; $lang['The whole page'] = 'La pà gina sencera'; $lang['The whole set'] = 'Tot el conjunt'; $lang['No photo in the current set.'] = 'No hi ha fotos en aquest conjunt.'; -$lang['No photo selected, no action possible.'] = 'No es pot realitzar cap acció ja que no hi ha cap foto seleccionada.'; +$lang['No photos selected, no actions possible.'] = 'No es pot realitzar cap acció ja que no hi ha cap foto seleccionada.'; $lang['Choose an action'] = 'Seleccioneu una acció'; $lang['remove author'] = 'elimina l\'autor'; $lang['Type here the author name'] = 'Escriviu aquà el nom de l\'autor'; @@ -783,6 +783,7 @@ $lang['Original Size'] = 'Mida original'; $lang['Permission granted for groups'] = 'Permisos atorgats a grups'; $lang['Permission granted for users'] = 'PermÃs atorgat a usuaris'; $lang['Photo name'] = 'Nom de la foto'; +$lang['Piwigo for Android'] = 'Piwigo per Android'; $lang['Piwigo for iOS (iPhone, iPad, iPod Touch)'] = 'Piwigo per iOS (iPhone, iPad, iPod Touch)'; $lang['Predefined filter'] = 'Filtre predeterminat'; $lang['Resize after upload'] = 'Redimensionar després de penjar la foto al servidor'; @@ -815,6 +816,7 @@ $lang['registered users'] = 'usuaris registrats'; $lang['%d group'] = '%d grup'; $lang['%d groups'] = '%d grups'; $lang['%u users have automatic permission because they belong to a granted group.'] = '%u usuaris han obtingut permisos automà ticament perquè pertanyen a un grup que li han atorgat el permÃs.'; +$lang['Piwigo for Android application empowers you to connect your Android phone or table to your Piwigo gallery, create some albums and upload several photos at once.'] = 'Piwigo per Android Aquesta aplicació us permet connectar a la vostra galeria Piwigo des d\'un dispositiu Android, crear nous à lbums i penjar và ries fotos a la vegada.'; $lang['Piwigo for iOS application empowers you to connect to your Piwigo gallery from your iPhone, iPad or iPod Touch, create some albums and upload several photos at once.'] = 'Piwigo per iOS Aquesta aplicació us permet connectar a la vostra galeria Piwigo des d\'un iPhone, iPad o iPod Touch, crear à lbums i penjar và ries fotos a la vegada.'; $lang['Add group'] = 'Afegeix grup'; $lang['Adobe Photoshop Lightroom is a photography software designed to manage large quantities of digital images and doing post production work.'] = 'Adobe Photoshop Lightroom és un programari de fotografia dissenyat per a gestionar grans quantitats d\'imatges digitals i realitzar tasques de postproducció.'; @@ -923,7 +925,7 @@ $lang['between %.2f and %.2f'] = 'entre %.2f i %.2f'; $lang['between %d and %d pixels'] = 'entre %d i %d pÃxels'; $lang['Duplicate'] = 'Duplica'; $lang['Merge selected groups'] = 'Fusiona els grups seleccionats'; -$lang['No group selected, no action possible.'] = 'No hi ha cap grup seleccionat, l\'acció no s\'ha pogut dur a terme.'; +$lang['No groups selected, no actions possible.'] = 'No hi ha cap grup seleccionat, l\'acció no s\'ha pogut dur a terme.'; $lang['No members to manage'] = 'No existeixen membres per a gestionar'; $lang['Please select at least two groups'] = 'Heu de selecciona almenys dos grups'; $lang['Rename'] = 'Canvia de nom'; @@ -936,7 +938,7 @@ $lang['The picture dimensions will be reduced to %dx%d pixels.'] = 'Es reduiran $lang['Resize after upload disabled due to the use of GD as graphic library'] = 'Redimensionar després de penjar la foto al servidor deshabilitat degut a l\'ús de la llibreria grà fica GD'; $lang['Select at least one tag'] = 'Seleccioneu almenys una etiqueta'; $lang['Last visit on %s, %s.'] = 'L\'última visita el %s, %s.'; -$lang['No user selected, no action possible.'] = 'No hi ha usuaris seleccionats, l\'acció no ha estat possible'; +$lang['No users selected, no actions possible.'] = 'No hi ha usuaris seleccionats, l\'acció no ha estat possible'; $lang['Registered on %s, %s.'] = 'Registrat el %s, %s'; $lang['Show %s users'] = 'Mostra %s usuaris'; $lang['Users modified'] = 'Usuaris que s\'han modificat'; @@ -1001,7 +1003,7 @@ $lang['delete album and all %d photos, even the %d associated to other albums'] $lang['Dashboard'] = 'Consola'; $lang['Delete album "%s" and its %d sub-albums.'] = 'Elimina l\'à lbum "%s" i els seus %d sub-à lbums'; $lang['No filter on album. Select one or type to search'] = 'No hi ha cap filtre a l\'à lbum, Seleccioneu-ne un o escriviu per cercar-ne'; -$lang['No tag selected, no action possible.'] = 'No s\'ha seleccionat cap etiqueta i no es pot realitzar cap acció'; +$lang['No tags selected, no actions possible.'] = 'No s\'ha seleccionat cap etiqueta i no es pot realitzar cap acció'; $lang['Storage used'] = 'Emmagatzemament utilitzat'; $lang['checksum'] = 'suma de verificació'; $lang['%d checksums were added'] = 's\'han afegit %d checksums'; @@ -1018,4 +1020,4 @@ $lang['Visit'] = 'Visiteu'; $lang['Welcome!'] = 'Benvinguts!'; $lang['With no checksum'] = 'Sense checksum'; $lang['checksums to add'] = 'Checksums per afegir'; -$lang['or'] = 'o'; \ No newline at end of file +$lang['or'] = 'o'; diff --git a/language/cs_CZ/admin.lang.php b/language/cs_CZ/admin.lang.php index dd95cd2c1..3aa2a1a9e 100644 --- a/language/cs_CZ/admin.lang.php +++ b/language/cs_CZ/admin.lang.php @@ -669,7 +669,7 @@ $lang['Refresh photo set'] = 'Obnovit množinu fotografiÃ'; $lang['The whole page'] = 'Celou stránku'; $lang['The whole set'] = 'Celou množinu'; $lang['No photo in the current set.'] = 'Žádná fotografie v aktuálnà množinÄ›.'; -$lang['No photo selected, no action possible.'] = 'Žádná fotografie nenà vybrána, žádná akce nenà možná.'; +$lang['No photos selected, no actions possible.'] = 'Žádná fotografie nenà vybrána, žádná akce nenà možná.'; $lang['Choose an action'] = 'Vyberte akci'; $lang['remove author'] = 'smazat autora'; $lang['Type here the author name'] = 'NapiÅ¡te zde jmého autora'; @@ -819,6 +819,8 @@ $lang['Applications'] = 'Aplikace'; $lang['Available on'] = 'K dispozici na'; $lang['Piwigo for iOS (iPhone, iPad, iPod Touch)'] = 'Piwigo pro iOS (iPhone, iPad, iPod Touch)'; $lang['Piwigo for iOS application empowers you to connect to your Piwigo gallery from your iPhone, iPad or iPod Touch, create some albums and upload several photos at once.'] = 'Piwigo pro iOS aplikace vám dává možnost se pÅ™ipojit do galerie Piwigo z vaÅ¡eho iPhone, iPad nebo iPod Touch, vytvoÅ™it nÄ›jaké alba a nahrávat vÃce fotografià najednou.'; +$lang['Piwigo for Android'] = 'Piwigo pro Android'; +$lang['Piwigo for Android application empowers you to connect your Android phone or table to your Piwigo gallery, create some albums and upload several photos at once.'] = 'Piwigo pro Android aplikace vám dává možnost se pÅ™ipojit do galerie Piwigo z vaÅ¡eho Android telefonu nebo tabletu, vytvoÅ™it nÄ›jaké alba a nahrávat vÃce fotografià najednou.'; $lang['Piwigo Publish plugin for Lightroom'] = 'Piwigo PublikaÄnà plugin pro Lightroom'; $lang['Adobe Photoshop Lightroom is a photography software designed to manage large quantities of digital images and doing post production work.'] = 'Adobe Photoshop Lightroom je fotografický software urÄený ke správÄ› velkého množstvà digitálnÃch fotografià a postprodukÄnÃch pracÃ.'; $lang['The Piwigo publish Plug-in allows you to export and synchronize photos from Lightroom directly to your Piwigo photo gallery.'] = 'Piwigo publikaÄnà Plug-in umožňuje export a synchronizaci fotek z Lightroom pÅ™Ãmo do vašà Piwigo fotogalerie.'; @@ -916,7 +918,7 @@ $lang['between %d and %d pixels'] = 'mezi %d a %d pixely'; $lang['Duplicate'] = 'Duplikovat'; $lang['Manage the members'] = 'Organizovat Äleny'; $lang['Merge selected groups'] = 'Spojit vybrané skupiny'; -$lang['No group selected, no action possible.'] = 'Nenà vybrána žádná skupina, nenà možná řádná akce'; +$lang['No groups selected, no actions possible.'] = 'Nenà vybrána žádná skupina, nenà možná řádná akce'; $lang['No members to manage'] = 'Žádnà Älenové k organizovánÃ'; $lang['Please select at least two groups'] = 'ProsÃm vyberte nejménÄ› dvÄ› skupiny'; $lang['Rename'] = 'PÅ™ejmenovat'; @@ -940,7 +942,7 @@ $lang['General'] = 'VÅ¡eobecné'; $lang['Last visit on %s, %s.'] = 'Poslednà návÅ¡tÄ›va v %s, %s.'; $lang['Loading...'] = 'Nahrává se...'; $lang['No matching user found'] = 'Uživatel odpovÃdajÃcà dotazu hledánà nenalezen'; -$lang['No user selected, no action possible.'] = 'Nebyl zvolen uživatel, akce nenà možná.'; +$lang['No users selected, no actions possible.'] = 'Nebyl zvolen uživatel, akce nenà možná.'; $lang['Password updated'] = 'Heslo aktualizováno'; $lang['Registered on %s, %s.'] = 'Zaregistrován v %s, %s.'; $lang['Show %s users'] = 'Zobraz %s uživatele'; @@ -989,7 +991,7 @@ $lang['checksum'] = 'kontrolnà souÄet'; $lang['Storage used'] = 'Využità úložiÅ¡tÄ›'; $lang['Select tags'] = 'Vyberte Å¡tÃtky'; $lang['Piwigo %s is available, please update'] = 'Piwigo %s je k dispozici, prosÃm aktualizujte'; -$lang['No tag selected, no action possible.'] = 'Nenà vybrán žádný Å¡tÃtek, nenà možná žádná akce.'; +$lang['No tags selected, no actions possible.'] = 'Nenà vybrán žádný Å¡tÃtek, nenà možná žádná akce.'; $lang['It only takes a few clicks.'] = 'Trvá to jen nÄ›kolik kliknutÃ.'; $lang['First photo added'] = 'Prvnà fotka pÅ™idána'; $lang['Delete album "%s".'] = 'Smazat album "%s".'; @@ -1010,4 +1012,4 @@ $lang['With no checksum'] = 'Bez kontroly'; $lang['or'] = 'nebo '; $lang['Deletion in progress'] = 'Odstraňuji...'; $lang['Create a first album'] = 'VytvoÅ™it prvnà album'; -$lang['... or hide this link'] = '... nebo skrýt tento odkaz'; \ No newline at end of file +$lang['... or hide this link'] = '... nebo skrýt tento odkaz'; diff --git a/language/da_DK/admin.lang.php b/language/da_DK/admin.lang.php index 7745c33b7..34bd3bc27 100644 --- a/language/da_DK/admin.lang.php +++ b/language/da_DK/admin.lang.php @@ -636,7 +636,7 @@ $lang['new'] = 'ny'; $lang['No file was uploaded'] = 'Ingen filer blev uploadet'; $lang['No photo in the current set.'] = 'Ingen fotografier i det aktuelle sæt.'; $lang['No photo selected, %d photos in current set'] = 'Ingen fotografier valgt, %d fotografier i nuværende sæt'; -$lang['No photo selected, no action possible.'] = 'Ingen fotografier valgt, ingen mulige handlinger.'; +$lang['No photos selected, no actions possible.'] = 'Ingen fotografier valgt, ingen mulige handlinger.'; $lang['No results'] = 'Ingen resultater'; $lang['on the %d selected photos'] = 'pÃ¥ de %d valgte fotografier'; $lang['Predefined filter'] = 'Foruddefineret filter'; @@ -828,6 +828,7 @@ $lang['Automatic sort order'] = 'Automatisk sorteringsrækkefølge'; $lang['List'] = 'Liste'; $lang['Piwigo export plugin for Aperture'] = 'Piwigo-eksportplugin til Aperture'; $lang['Piwigo export plugin for iPhoto'] = 'Piwigo-eksportplugin til iPhoto'; +$lang['Piwigo for Android'] = 'Piwigo for Android'; $lang['You can activate only one mobile theme.'] = 'Du kan kun aktivere et mobiltema'; $lang['apply automatic sort order'] = 'Aktiver automatisk sorteringsrækkefølge'; $lang['cancel manual order'] = 'afbryd manuel rækkefølge'; @@ -843,6 +844,7 @@ $lang['visitors need to login and have the appropriate permissions to see this a $lang['The uploaded file exceeds the MAX_FILE_SIZE directive that was specified in the HTML form'] = 'Filstørrelsen pÃ¥ den uploadede fil overstiger MAX_FILE_SIZE-definitionen, som er angivet i HTML-formularen'; $lang['Multiple Size'] = 'Flere størrelser'; $lang['%u users have automatic permission because they belong to a granted group.'] = '%u brugere har automatisk tilladelse, fordi de tilhører en gruppe med tilladelser.'; +$lang['Piwigo for Android application empowers you to connect your Android phone or table to your Piwigo gallery, create some albums and upload several photos at once.'] = 'App\'en Piwigo for Android giver dig mulighed for at forbinde en Android-mobiltelelfon eller -tablet med dit Piwigo-galleri, oprette albummer og uploade flere fotografier pÃ¥ én gang.'; $lang['Adobe Photoshop Lightroom is a photography software designed to manage large quantities of digital images and doing post production work.'] = 'Adobe Photoshop Lightroom er et fotografiprogram beregnet til at hÃ¥ndtere store mængder digitale billeder og foretage efterbehandling.'; $lang['Aperture is a powerful tool to refine images and manage massive libraries on Mac.'] = 'Aperture er et ydedygtigt værktøj til at forfine billeder og administrere store biblioteker pÃ¥ en Mac.'; $lang['Aperture is designed for professional photographers with iPhoto simplicity.'] = 'Aperture er udviklet til professionelle fotografer med iPhoto-enkelhed.'; @@ -917,7 +919,7 @@ $lang['between %d and %d pixels'] = 'mellem %d og %d pixels'; $lang['Duplicate'] = 'Kopier'; $lang['Manage the members'] = 'MedlemshÃ¥ndtering'; $lang['Merge selected groups'] = 'Læg valgte grupper sammen'; -$lang['No group selected, no action possible.'] = 'Ingen grupper valgt, handling ikke mulig.'; +$lang['No groups selected, no actions possible.'] = 'Ingen grupper valgt, handling ikke mulig.'; $lang['No members to manage'] = 'Der er ingen medlemmer at hÃ¥ndtere'; $lang['Please select at least two groups'] = 'Vælg mindst to grupper'; $lang['Rename'] = 'Omdøb'; @@ -940,7 +942,7 @@ $lang['Last visit on %s, %s.'] = 'Seneste besøg kl. %s den %s.'; $lang['Loading...'] = 'Indlæser ...'; $lang['No matching user found'] = 'Ingen brugere fundet som opfylder kriteriet'; $lang['No user selected of %d users'] = 'Ingen bruger valgt ud af %d brugere'; -$lang['No user selected, no action possible.'] = 'Ingen bruger valgt, ingen handling er mulig.'; +$lang['No users selected, no actions possible.'] = 'Ingen bruger valgt, ingen handling er mulig.'; $lang['Password updated'] = 'Adgangskoden er opdateret'; $lang['Registered on %s, %s.'] = 'Registreret kl. %s den %s.'; $lang['Show %s users'] = 'Vis %s brugere'; @@ -980,7 +982,7 @@ $lang['Running on an up-to-date Piwigo is important for security.'] = 'Det er af $lang['Select tags'] = 'Vælg tags'; $lang['Share / Send your photos directly from your Mac Os X (10.10 and following) to Piwigo'] = 'Del/send dine fotografier direkte fra macOS (10.10 og nyere) til Piwigo'; $lang['delete album and all %d photos, even the %d associated to other albums'] = 'slet album og alle %d fotografier, selv de %d tilknyttet andre albummer'; -$lang['No tag selected, no action possible.'] = 'Intet tag valgt, ingen handling mulig.'; +$lang['No tags selected, no actions possible.'] = 'Intet tag valgt, ingen handling mulig.'; $lang['Dashboard'] = 'Instrumentbræt'; $lang['delete only album, not photos'] = 'slet kun album, ikke fotografier'; $lang['orphans to delete'] = 'forældreløse der skal slettes'; @@ -1011,4 +1013,4 @@ $lang['Welcome!'] = 'Velkommen!'; $lang['With no checksum'] = 'Uden kontrolsum'; $lang['checksums to add'] = 'kontrolsummer at tilføje'; $lang['or'] = 'eller'; -$lang['%d checksums were added'] = '%d kontrolsummer blev tilføjet'; \ No newline at end of file +$lang['%d checksums were added'] = '%d kontrolsummer blev tilføjet'; diff --git a/language/de_DE/admin.lang.php b/language/de_DE/admin.lang.php index 9cd5cb449..3cb887b33 100644 --- a/language/de_DE/admin.lang.php +++ b/language/de_DE/admin.lang.php @@ -670,7 +670,7 @@ $lang['Refresh photo set'] = 'Fotoset aktualisieren'; $lang['The whole page'] = 'Die ganze Seite'; $lang['The whole set'] = 'Das ganze Set'; $lang['No photo in the current set.'] = 'Keine Fotos im gegenwärtigen Set.'; -$lang['No photo selected, no action possible.'] = 'Kein Foto ausgewählt, keine Aktion möglich.'; +$lang['No photos selected, no actions possible.'] = 'Kein Foto ausgewählt, keine Aktion möglich.'; $lang['Choose an action'] = 'Eine Aktion auswählen'; $lang['remove author'] = 'Autor entfernen'; $lang['Type here the author name'] = 'Geben Sie hier den Name des Autors ein'; @@ -816,9 +816,11 @@ $lang['Web Form'] = 'Webformular'; $lang['With no album'] = 'Ohne Album'; $lang['With no tag'] = 'Ohne Schlagwort'; $lang['With no virtual album'] = 'Ohne virtuelles Album'; +$lang['Piwigo for Android application empowers you to connect your Android phone or table to your Piwigo gallery, create some albums and upload several photos at once.'] = 'Das App Piwigo für Android ermöglicht es Ihnen, sich mit Ihrer Piwigo-Galerie zu verbinden, Alben zu erstellen und mehrere Fotos gleichzeitig hochzuladen.'; $lang['Piwigo for iOS application empowers you to connect to your Piwigo gallery from your iPhone, iPad or iPod Touch, create some albums and upload several photos at once.'] = 'Das App Piwigo für iOS ermöglicht es Ihnen, sich mit Ihrer Piwigo-Galerie zu verbinden, Alben zu erstellen und mehrere Fotos gleichzeitig hochzuladen.'; $lang['Adobe Photoshop Lightroom is a photography software designed to manage large quantities of digital images and doing post production work.'] = 'Adobe Photoshop Lightroom ist eine Bildbearbeitungssoftware, die entwickelt wurde, um eine grosse Anzahl von Bildern zu verwalten und zu bearbeiten.'; $lang['Available on'] = 'Erhältlich bei '; +$lang['Piwigo for Android'] = 'Piwigo für Android'; $lang['Piwigo for iOS (iPhone, iPad, iPod Touch)'] = 'Piwigo für iOS (iPhone, iPad, iPod Touch)'; $lang['Piwigo Publish plugin for Lightroom'] = 'Piwigo-Publish-Plugin für Lightroom'; $lang['The Piwigo publish Plug-in allows you to export and synchronize photos from Lightroom directly to your Piwigo photo gallery.'] = 'Das Piwigo-Publish-Plugin erlaubt es Ihnen, Bilder aus Lightroom zu exportieren und mit Ihrer Piwigo-Fotogalerie zu synchronisieren.'; @@ -917,7 +919,7 @@ $lang['between %d and %d pixels'] = 'zwischen %d und %d Pixel'; $lang['Duplicate'] = 'Duplikat'; $lang['Manage the members'] = 'Benutzer verwalten'; $lang['Merge selected groups'] = 'Gewählte Gruppen zusammenführen'; -$lang['No group selected, no action possible.'] = 'Keine Gruppen ausgewählt, Aktion kann nicht durgeführt werden'; +$lang['No groups selected, no actions possible.'] = 'Keine Gruppen ausgewählt, Aktion kann nicht durgeführt werden'; $lang['No members to manage'] = 'Keine Benutzer zu verwalten'; $lang['Please select at least two groups'] = 'Bitte mindestens zwei Gruppen auswählen'; $lang['Rename'] = 'Umbenennen'; @@ -940,7 +942,7 @@ $lang['Last visit on %s, %s.'] = 'Letzter Besuch am %s, %s.'; $lang['Loading...'] = 'Laden...'; $lang['No matching user found'] = 'Kein übereinstimmender Benutzer gefunden'; $lang['No user selected of %d users'] = 'Kein Benutzer von %d Benutzern ausgewählt'; -$lang['No user selected, no action possible.'] = 'Kein Benutzer ausgewählt, keine Aktion möglich.'; +$lang['No users selected, no actions possible.'] = 'Kein Benutzer ausgewählt, keine Aktion möglich.'; $lang['Password updated'] = 'Passwort geändert'; $lang['Registered on %s, %s.'] = 'Registriert am %s, %s.'; $lang['Show %s users'] = '%s Benutzer anzeigen'; @@ -984,7 +986,7 @@ $lang['Display form'] = 'Zeige Formblatt'; $lang['First photo added'] = 'Erstes hinzugefügtes Foto'; $lang['It only takes a few clicks.'] = 'Es braucht nur ein paar Klicks'; $lang['No filter on album. Select one or type to search'] = 'Kein Filter auf dem Album. Wähle einen oder benutze die Suche'; -$lang['No tag selected, no action possible.'] = 'Kein TAG gewählt, keine Aktion möglich.'; +$lang['No tags selected, no actions possible.'] = 'Kein TAG gewählt, keine Aktion möglich.'; $lang['Piwigo %s is available, please update'] = 'Piwigo %s ist verfügbar, bitte updaten.'; $lang['Piwigo Remote Sync is able to upload a whole folder hierarchy. If you run it again, only new photos will be uploaded.'] = 'Piwigo Remote Sync kann eine ganze Ordnerhierarchie hochladen. Wenn Sie es wieder ausführen, werden nur neue Fotos hochgeladen.'; $lang['Running on an up-to-date Piwigo is important for security.'] = 'Das Ausführen eines up-to-date Piwigo ist wichtig für die Sicherheit.'; @@ -1011,4 +1013,4 @@ $lang['Visit'] = 'Galerie'; $lang['Welcome!'] = 'Willkommen!'; $lang['With no checksum'] = 'Ohne Checksumme'; $lang['or'] = 'oder'; -$lang['Display category date'] = 'Kategorie-Datum anzeigen'; \ No newline at end of file +$lang['Display category date'] = 'Kategorie-Datum anzeigen'; diff --git a/language/el_GR/admin.lang.php b/language/el_GR/admin.lang.php index f8865343b..147a5278f 100644 --- a/language/el_GR/admin.lang.php +++ b/language/el_GR/admin.lang.php @@ -476,7 +476,7 @@ $lang['No photo in the current set.'] = 'Καμιά φωτογÏαφία στο $lang['No photo in this album'] = 'Καμιά φωτογÏαφία σ\' αυτό το λεÏκωμα'; $lang['new'] = 'νÎο'; $lang['No photo selected, %d photos in current set'] = 'Δεν Îχει επιλεγεί φωτογÏαφία , %d φωτογÏαφίες στο Ï„ÏÎχον σÏνολο'; -$lang['No photo selected, no action possible.'] = 'Δεν Îχει επιλεγεί φωτογÏαφία , δεν είναι δυνατή ενÎÏγεια'; +$lang['No photos selected, no actions possible.'] = 'Δεν Îχει επιλεγεί φωτογÏαφία , δεν είναι δυνατή ενÎÏγεια'; $lang['No results'] = 'Δεν υπάÏχουν αποτελÎσματα'; $lang['No user to send notifications by mail.'] = 'ΚανÎνας χÏήστης δεν θα ειδοποιηθεί μÎσω ταχυδÏομείου.'; $lang['None'] = 'ΚανÎνα'; @@ -673,6 +673,7 @@ $lang['%d years'] = '%d χÏόνια'; $lang['%s ago'] = '%s Ï€Ïιν'; $lang['%s in the future'] = '%s στο μÎλλον'; $lang['%u users have automatic permission because they belong to a granted group.'] = '%u χÏήστες Îχουν αυτόματη άδεια επειδή ανήκουν σε μια ομάδα που της Îχει χοÏηγηθεί.'; +$lang['Piwigo for Android application empowers you to connect your Android phone or table to your Piwigo gallery, create some albums and upload several photos at once.'] = 'Η εφαÏμογή Piwigo για το Android που παÏÎχει τη δυνατότητα να συνδεθείτε με τη γκαλεÏί Piwigo σας από το κινητό σας Android ή τη ταμπλÎτα σας και δημιουÏγοÏν μεÏικά άλμπουμ και ανεβάζουν πολλÎÏ‚ φωτογÏαφίες ταυτόχÏονα.'; $lang['Piwigo for iOS application empowers you to connect to your Piwigo gallery from your iPhone, iPad or iPod Touch, create some albums and upload several photos at once.'] = 'Η εφαÏμογή Piwigo για το iOS που παÏÎχει τη δυνατότητα να συνδεθείτε με τη γκαλεÏί Piwigo σας από το iPhone, iPad ή το iPod Touch, δημιουÏγοÏν μεÏικά άλμπουμ και ανεβάζουν πολλÎÏ‚ φωτογÏαφίες ταυτόχÏονα.'; $lang['A locked gallery is only visible to administrators'] = 'Μια κλειδωμÎνη γκαλεÏί είναι οÏατή μόνο στους διαχειÏιστÎÏ‚'; $lang['Added by %s'] = 'Î ÏοστÎθηκε από %s'; @@ -711,6 +712,7 @@ $lang['Photo sizes with crop'] = 'ΜÎγεθος φωτογÏαφίας με Ï„ $lang['Piwigo Publish plugin for Lightroom'] = 'Ï€Ïόσθετο Piwigo για Δημοσίευση από το Lightroom'; $lang['Piwigo export plugin for Aperture'] = 'Piwigo export plugin για το Aperture'; $lang['Piwigo export plugin for iPhoto'] = 'Piwigo export plugin για το iPhoto'; +$lang['Piwigo for Android'] = 'Piwigo για Android'; $lang['Piwigo for iOS (iPhone, iPad, iPod Touch)'] = 'Piwigo για το iOS (iPhone, iPad, iPod Touch)'; $lang['Piwigo publish plugin for Shotwell'] = 'Piwigo publish plugin για το Shotwell'; $lang['Piwigo publish plugin for digiKam'] = 'Piwigo publish plugin για το digiKam'; @@ -916,7 +918,7 @@ $lang['This group will be set to default'] = 'Η ομάδα αυτή θα οÏι $lang['Rename'] = 'Μετονομασία'; $lang['Please select at least two groups'] = 'ΠαÏακαλώ επιλÎξτε τουλάχιστον δÏο ομάδες'; $lang['No members to manage'] = 'ΚανÎνα μÎλος για διαχείÏιση'; -$lang['No group selected, no action possible.'] = 'Καμία ομάδα δεν επιλÎχτηκε, δεν είναι δυνατή η συνÎχεια.'; +$lang['No groups selected, no actions possible.'] = 'Καμία ομάδα δεν επιλÎχτηκε, δεν είναι δυνατή η συνÎχεια.'; $lang['Merge selected groups'] = 'Συγχώνευση επιλεγμÎνων ομάδων'; $lang['Duplicate'] = 'Διπλότυπο'; $lang['Manage the members'] = 'ΔιαχειÏιστείτε τα μÎλη'; @@ -936,7 +938,7 @@ $lang['Showing %s to %s of %s users'] = 'Εμφάνιση από %s ως %s τω $lang['Show %s users'] = 'Εμφάνιση %s χÏηστών'; $lang['Registered on %s, %s.'] = 'ΕγγεγÏαμμÎνοι στις %s, %s.'; $lang['Password updated'] = 'Ο κωδικό Ï€Ïόσβασης ενημεÏώθηκε'; -$lang['No user selected, no action possible.'] = 'ΚανÎνας χÏήστης δεν επιλÎχτηκε, καμία ενÎÏγεια δεν είναι δυνατή.'; +$lang['No users selected, no actions possible.'] = 'ΚανÎνας χÏήστης δεν επιλÎχτηκε, καμία ενÎÏγεια δεν είναι δυνατή.'; $lang['No user selected of %d users'] = 'ΚανÎνας χÏήστης δεν επιλÎχτηκε από %d χÏήστες'; $lang['No matching user found'] = 'Δεν βÏÎθηκε χÏήστης'; $lang['Loading...'] = 'ΦόÏτωση ...'; @@ -981,7 +983,7 @@ $lang['Storage used'] = 'χώÏος αποθήκευσης που χÏησιμο $lang['Share / Send your photos directly from your Mac Os X (10.10 and following) to Piwigo'] = 'ΜοιÏαστείτε / Στείλτε τις φωτογÏαφίες σας απευθείας από το MacOS σας (10.10 και μετά) στο Piwigo'; $lang['Select tags'] = 'ΕπιλÎξτε ετικÎτες'; $lang['Running on an up-to-date Piwigo is important for security.'] = 'ΤÏÎχοντας σε Îνα ενημεÏωμÎνο Piwigo είναι σημαντικό για την ασφάλεια.'; -$lang['No tag selected, no action possible.'] = 'Δεν Îχει επιλεγεί ετικÎτα, καμία ενÎÏγεια δεν είναι δυνατή.'; +$lang['No tags selected, no actions possible.'] = 'Δεν Îχει επιλεγεί ετικÎτα, καμία ενÎÏγεια δεν είναι δυνατή.'; $lang['Piwigo Remote Sync is able to upload a whole folder hierarchy. If you run it again, only new photos will be uploaded.'] = 'Το Piwigo Remote Sync είναι σε θÎση να μεταφοÏτόσει μια ολόκληÏη ιεÏαÏχία φακÎλων. Αν το εκτελÎσετε ξανά, μόνο νÎες φωτογÏαφίες θα μεταφοÏτοθοÏν.'; $lang['Piwigo %s is available, please update'] = 'Το Piwigo %s είναι διαθÎσιμο, παÏακαλώ ενημεÏώστε'; $lang['No filter on album. Select one or type to search'] = 'ΧωÏίς φίλτÏο για λευκώματα. ΕπιλÎξτε Îνα ή πληκτÏολογήστε για αναζήτηση'; @@ -1007,4 +1009,4 @@ $lang['Deletion in progress'] = 'Η διαγÏαφή βÏίσκεται σε ε $lang['Create a first album'] = 'ΔημιουÏγήστε Îνα Ï€Ïώτο λεÏκωμα.'; $lang['Compute %d missing checksums'] = 'Υπολογισμός %d αθÏοίσματα ελÎγχου που λείπουν'; $lang['... or hide this link'] = '...ή να αποκÏÏψει αυτόν τον σÏνδεσμο'; -$lang['%d checksums were added'] = 'Έχουν Ï€Ïοστεθεί %d αθÏοίσματα ελÎγχου'; \ No newline at end of file +$lang['%d checksums were added'] = 'Έχουν Ï€Ïοστεθεί %d αθÏοίσματα ελÎγχου'; diff --git a/language/en_UK/admin.lang.php b/language/en_UK/admin.lang.php index 35f0a6910..6eff4b05a 100644 --- a/language/en_UK/admin.lang.php +++ b/language/en_UK/admin.lang.php @@ -86,6 +86,7 @@ $lang['+ Add an upload box'] = '+ Add an upload box'; $lang[', click on'] = ", click on"; $lang['... or '] = '... or '; $lang['... or hide this link'] = '... or hide this link'; +$lang['Piwigo for Android application empowers you to connect your Android phone or table to your Piwigo gallery, create some albums and upload several photos at once.'] = 'Piwigo for Android application empowers you to connect your Android phone or tablet to your Piwigo gallery, create some albums and upload several photos at once.'; $lang['Piwigo for iOS application empowers you to connect to your Piwigo gallery from your iPhone, iPad or iPod Touch, create some albums and upload several photos at once.'] = 'Piwigo for iOS application empowers you to connect to your Piwigo gallery from your iPhone, iPad or iPod Touch, create some albums and upload several photos at once.'; $lang['A locked gallery is only visible to administrators'] = 'A locked gallery is only visible to administrators'; $lang['A new version of Piwigo is available.'] = "A new version of Piwigo is available."; @@ -294,7 +295,6 @@ $lang['Download,'] = 'Download,'; $lang['Downloads'] = "Downloads"; $lang['Drag to re-order'] = "Click-and-drag to re-order"; $lang['Drop into album'] = 'Select an album'; -$lang['Dump Database'] = 'Dump Database'; $lang['Duplicate selected tags'] = 'Duplicate selected tags'; $lang['Duplicate'] = 'Duplicate'; $lang['Duplicates'] = 'Duplicates'; @@ -408,7 +408,6 @@ $lang['Inactive Plugins'] = 'Inactive Plugins'; $lang['Inactive Themes'] = 'Inactive themes'; $lang['include child albums'] = 'include child albums'; $lang['Include display of recent photos grouped by dates'] = "Include display of recent photos grouped by dates"; -$lang['Include history data (Warning: server memory limit may be exceeded)'] = 'Include history data (Warning: server memory limit may be exceeded)'; $lang['include photos with lower privacy level'] = 'include photos with lower privacy level'; $lang['Information data registered in database'] = "Information data registered in database"; $lang['Informations'] = "Information"; @@ -511,15 +510,15 @@ $lang['No destination tag selected'] = 'No destination tag selected'; $lang['No display'] = "No display"; $lang['No file was uploaded'] = 'No file was uploaded'; $lang['No group is permitted to see this private album'] = 'No group is permitted to see this private album'; -$lang['No group selected, no action possible.'] = 'No group selected, no action possible.'; +$lang['No groups selected, no actions possible.'] = 'No groups selected, no actions possible.'; $lang['No mail to send.'] = "No mail to be sent."; $lang['No members to manage'] = "No members to manage"; $lang['No order field selected'] = 'No order field selected'; $lang['No photo can be deleted'] = "No photo can be deleted"; -$lang['No photo in the current set.'] = 'No photo in the current set.'; +$lang['No photo in the current set.'] = 'No photos in the current set.'; $lang['No photo in this album'] = "No photo in this album"; -$lang['No photo selected, %d photos in current set'] = 'No photo selected, %d photos in current set'; -$lang['No photo selected, no action possible.'] = 'No photo selected, no action possible.'; +$lang['No photo selected, %d photos in current set'] = 'No photos selected, %d photos in current set'; +$lang['No photos selected, no actions possible.'] = 'No photos selected, no actions possible.'; $lang['No results'] = "No results"; $lang['No user to send notifications by mail.'] = "No user to be notified by mail."; $lang['no write access'] = "no write access"; @@ -603,6 +602,7 @@ $lang['Piwigo cannot retrieve upgrade file from server'] = 'Piwigo cannot retrie $lang['Piwigo configuration'] = "Piwigo configuration"; $lang['Piwigo export plugin for Aperture'] = 'Piwigo export plugin for Aperture'; $lang['Piwigo export plugin for iPhoto'] = 'Piwigo export plugin for iPhoto'; +$lang['Piwigo for Android'] = 'Piwigo for Android'; $lang['Piwigo for iOS (iPhone, iPad, iPod Touch)'] = 'Piwigo for iOS (iPhone, iPad, iPod Touch)'; $lang['Piwigo publish plugin for digiKam'] = 'Piwigo publish plugin for digiKam'; $lang['Piwigo Publish plugin for Lightroom'] = 'Piwigo Publish plugin for Lightroom'; @@ -834,7 +834,6 @@ $lang['Type here the title'] = 'Type the title here'; $lang['Type here the name of the new group'] = 'Type the name of the new group here'; $lang['Type in a search term'] = "Type in a search term"; $lang['Unable to check for upgrade.'] = "Unable to check for upgrade."; -$lang['Unable to dump database.'] = 'Unable to dump database.'; $lang['Uncheck all'] = "Uncheck all"; $lang['Uninstall'] = "Uninstall"; $lang['Uninstalled Plugins'] = 'Uninstalled Plugins'; @@ -941,7 +940,7 @@ $lang['Show %s users'] = 'Show %s users'; $lang['No matching user found'] = 'No matching user found'; $lang['Showing %s to %s of %s users'] = 'Showing %s to %s of %s users'; $lang['(filtered from %s total users)'] = '(filtered from %s total users)'; -$lang['No user selected, no action possible.'] = 'No user selected, no action possible.'; +$lang['No users selected, no actions possible.'] = 'No users selected, no actions possible.'; $lang['%d of %d users selected'] = '%d of %d users selected'; $lang['No user selected of %d users'] = 'No user selected of %d users'; $lang['All %d users are selected'] = 'All %d users are selected'; @@ -974,7 +973,7 @@ $lang['No user is permitted to see this private album'] = 'No user is permitted $lang['Each email sent will contain its own automatic authentication key on links, valid for %s.'] = 'Each email sent will contain its own automatic authentication key on links, valid for %s.'; $lang['For security reason, authentication keys do not work for administrators.'] = 'For security reason, authentication keys do not work for administrators.'; $lang['Select tags'] = 'Select tags'; -$lang['No tag selected, no action possible.'] = 'No tag selected, no action possible.'; +$lang['No tags selected, no actions possible.'] = 'No tags selected, no actions possible.'; $lang['Display form'] = 'Display form'; $lang['Delete album "%s".'] = 'Delete album "%s".'; $lang['Delete album "%s" and its %d sub-albums.'] = 'Delete album "%s" and its %d sub-albums.'; @@ -1007,4 +1006,73 @@ $lang['Display album date period'] = 'Show the date period associated with each $lang['Welcome!'] = 'Welcome!'; $lang['Piwigo requires an album to add photos.'] = 'Piwigo requires an album to add photos.'; $lang['Create a first album'] = 'Create a first album'; +$lang['Search tips'] = 'Search tips'; +$lang['Posted %s'] = 'Posted %s'; +$lang['File type: %s'] = 'File type: %s'; $lang['or'] = 'or'; +$lang['Open in gallery'] = "Open in gallery"; +$lang['Promote mobile app on mobile devices'] = 'Promote mobile app on mobile devices'; +$lang['in gallery'] = 'in gallery'; +$lang['in administration'] = 'in administration'; +$lang['Displays a banner to install or open the official Piwigo app'] = 'Displays a banner to install or open the official Piwigo app'; +$lang['Search albums'] = 'Search albums'; +$lang['Portraits'] = 'Portraits'; +$lang['You have %d orphan tags %s'] = 'You have %d orphan tags %s'; +$lang['Review'] = 'Review'; +$lang['You have %s1 orphan : %s2'] = 'You have %s1 orphan : %s2'; +$lang['Delete tag "%s"?'] = 'Delete tag "%s"?'; +$lang['Delete tags \{%s\}?'] = 'Delete tags \{%s\}?'; +$lang['Yes, delete'] = 'Yes, delete'; +$lang['No, I have changed my mind'] = 'No, I have changed my mind'; +$lang['Tag "%s" succesfully deleted'] = 'Tag \"%s\" succesfully deleted'; +$lang['Tags \{%s\} succesfully deleted'] = 'Tags \{%s\} succesfully deleted'; +$lang['Tag "%s" created'] = 'Tag "%s" created'; +$lang['Tag "%s1" renamed in "%s2"'] = 'Tag \"%s1\" renamed in \"%s2\"'; +$lang['Delete orphan tags ?'] = 'Delete orphan tags ?'; +$lang['Delete them'] = 'Delete them'; +$lang['Keep them'] = 'Keep them'; +$lang[' (copy)'] = ' (copy)'; +$lang[' (copy %s)'] = ' (copy %s)'; +$lang['Tag(s) \{%s1\} succesfully merged into "%s2"'] = 'Tag(s) \{%s1\} succesfully merged into "%s2"'; +$lang['and %s others'] = 'and %s others'; +$lang['%s other tags available..'] = '%s other tags available..'; +$lang['%d photos'] = '%d photos'; +$lang['no photo'] = 'no photo'; +$lang['Select all %d tags'] = 'Select all %d tags'; +$lang['Clear Selection'] = 'Clear Selection'; +$lang['The %d tags on this page are selected'] = 'The %d tags on this page are selected'; +$lang['%d tag selected'] = '%d tag selected'; +$lang['%d tags found'] = '%d tags found'; +$lang['%d tag found'] = '%d tag found'; +$lang['Selection mode'] = 'Selection mode'; +$lang['At least 2 selected tags are needed to merge'] = 'At least 2 selected tags are needed to merge'; +$lang['Merge'] = 'Merge'; +$lang['Choose which tag to merge these tags into'] = 'Choose which tag to merge these tags into'; +$lang['The other tags will be removed'] = 'The other tags will be removed'; +$lang['Display'] = 'Display'; +$lang['Select'] = 'Select'; +$lang['Tag Manager'] = 'Tag Manager'; +$lang['No tag found'] = 'No tag found'; +$lang['Manage album photos'] = 'Manage album photos'; +$lang['Manage sub-albums'] = 'Manage sub-albums'; +$lang['Delete album'] = 'Delete album'; +$lang['Are you sure you want to delete this site?'] = 'Are you sure you want to delete this site?'; +$lang['Yes, I am sure'] = 'Yes, I am sure'; +$lang['Are you sure you want to delete this theme?'] = 'Are you sure you want to delete this theme?'; +$lang['Are you sure you want to restore this plugin?'] = 'Are you sure you want to restore this plugin?'; +$lang['Are you sure you want to delete this?'] = 'Are you sure you want to delete this?'; +$lang['Are you sure you want to restore to default settings?'] = 'Are you sure you want to restore to default settings?'; +$lang['Are you sure you want to delete the ratings of the user "%s"?'] = 'Are you sure you want to delete the ratings of the user "%s"?'; +$lang['Are you sure you want to install the plugin "%s"?'] = 'Are you sure you want to install the plugin "%s"?'; +$lang['Are you sure you want to delete the plugin "%s"?'] = 'Are you sure you want to delete the plugin "%s"?'; +$lang['Are you sure you want to restore the plugin "%s"?'] = 'Are you sure you want to restore the plugin "%s"?'; +$lang['Are you sure you want to delete all sizes?'] = 'Are you sure you want to delete all sizes?'; +$lang['Are you sure you want to lock the gallery?'] = 'Are you sure you want to lock the gallery?'; +$lang['Are you sure you want to delete the language "%s"?'] = 'Are you sure you want to delete the language "%s"?'; +$lang['Are you sure you want to delete the theme "%s"?'] = 'Are you sure you want to delete the theme "%s"?'; +$lang['Are you sure you want to update all extensions?'] = 'Are you sure you want to update all extensions?'; +$lang['Are you sure you want to delete the user "%s"?'] = 'Are you sure you want to delete the user "%s"?'; +$lang['Please upgrade your PHP version before any update.'] = 'Please upgrade your PHP version before any update.'; +$lang['Requires PHP %s'] = 'Requires PHP %s'; +$lang['%s MB used'] = '%s MB used'; +$lang['%s GB used'] = '%s GB used'; diff --git a/language/en_UK/common.lang.php b/language/en_UK/common.lang.php index c07b04d6f..649387757 100644 --- a/language/en_UK/common.lang.php +++ b/language/en_UK/common.lang.php @@ -252,6 +252,7 @@ $lang['Password Reset'] = 'Password Reset'; $lang['password updated'] = "password updated"; $lang['Password'] = "Password"; $lang['Password: %s'] = 'Password: %s'; +$lang['Password: ********** (no copy by email)'] = 'Password: ********** (no copy by email)'; $lang['Pause of slideshow'] = "Pause slideshow"; $lang['Permalink for album not found'] = 'Permalink for album not found'; $lang['Photo sizes'] = 'Photo sizes'; @@ -413,4 +414,5 @@ $lang['Link: %s'] = 'Link: %s'; $lang['Your authentication key is no longer valid.'] = 'Your authentication key is no longer valid.'; $lang['Invalid username or password!'] = 'Invalid username or password!'; $lang['generate random password'] = 'generate random password'; +$lang['Related albums'] = 'Related albums'; ?> diff --git a/language/eo_EO/admin.lang.php b/language/eo_EO/admin.lang.php index 3d5a6406a..5e95211ed 100644 --- a/language/eo_EO/admin.lang.php +++ b/language/eo_EO/admin.lang.php @@ -362,6 +362,7 @@ $lang['Album "%s" has been added'] = 'Fotaro "%s" aldoniÄis'; $lang['Adobe Photoshop Lightroom is a photography software designed to manage large quantities of digital images and doing post production work.'] = 'Adobe Photoshop Lightroom estas fota programaro desegnita por administri grandajn kvantojn de ciferecaj bildoj kaj post-trakti ilin.'; $lang['Add write access to the "%s" directory'] = 'Aldonu skribaliron al la dosierujo "%s"'; $lang['Piwigo for iOS application empowers you to connect to your Piwigo gallery from your iPhone, iPad or iPod Touch, create some albums and upload several photos at once.'] = 'La aplikaĵo Piwigo por iOS ebligas vin konektiÄi al via galerio Piwigo, por krei fotarojn kaj elÅuti plurajn fotojn unufoje el via iPhone, iPas aÅ iPod Touch.'; +$lang['Piwigo for Android application empowers you to connect your Android phone or table to your Piwigo gallery, create some albums and upload several photos at once.'] = 'La aplikaĵo Piwigo por Android ebligas vin konektiÄi al via galerio Piwigo, por krei fotarojn kaj elÅuti plurajn fotojn unufoje el via telefono aÅ tabuleto Android.'; $lang['Advanced features'] = 'Specialaj funkcioj'; $lang['Access type'] = 'Tipo de atingo'; $lang['Allow user customization'] = 'Permesi al uzantoj tajloradon'; @@ -462,7 +463,7 @@ $lang['New photos added'] = 'Novaj fotoj aldonitaj'; $lang['New photos were added'] = 'Novaj fotoj aldoniÄis'; $lang['New tag'] = 'Nova etikedo'; $lang['No file was uploaded'] = 'Neniu dosiero alÅutiÄis'; -$lang['No group selected, no action possible.'] = 'Neniu grupo estis selektita, neniu ago eblas.'; +$lang['No groups selected, no actions possible.'] = 'Neniu grupo estis selektita, neniu ago eblas.'; $lang['No mail to send.'] = 'Neniu mesaÄo sendenda.'; $lang['No members to manage'] = 'Neniu membro administrenda '; $lang['Maximum width'] = 'Maksimuma larÄo'; @@ -473,7 +474,7 @@ $lang['Merge selected tags'] = 'Kunfandi la selektitajn etikedojn'; $lang['Merge tags'] = 'Kunfandi etikedojn'; $lang['No photo can be deleted'] = 'Eblas forigi neniun foton '; $lang['No photo in this album'] = 'Neniu foto en tiu fotaro'; -$lang['No photo selected, no action possible.'] = 'Sen foto selektita, neniu ago eblas.'; +$lang['No photos selected, no actions possible.'] = 'Sen foto selektita, neniu ago eblas.'; $lang['No results'] = 'Neniu rezulto'; $lang['No user to send notifications by mail.'] = 'Neniun uzanton oni sciigos retmesaÄe.'; $lang['None'] = 'Nenio'; @@ -797,6 +798,7 @@ $lang['Piwigo Publish plugin for Lightroom'] = 'publikigokromaĵo de Piwigo por $lang['Piwigo configuration'] = 'Agordo de Piwigo'; $lang['Piwigo export plugin for Aperture'] = 'eksportokromaĵo por Aperture'; $lang['Piwigo export plugin for iPhoto'] = 'eksportokromaĵo por iPhoto'; +$lang['Piwigo for Android'] = 'Piwigo por Android'; $lang['Piwigo for iOS (iPhone, iPad, iPod Touch)'] = 'Piwigo por iOS (iPhone, iPad, iPod Touch)'; $lang['Piwigo publish plugin for Shotwell'] = 'publikigokromaĵo de Piwigo por Shotwell'; $lang['Piwigo publish plugin for digiKam'] = 'publikigokromaĵo de Piwigo por digiKam'; @@ -913,7 +915,7 @@ $lang['Change username'] = 'ÅœanÄi salutnomon'; $lang['Loading...'] = 'Åœutante...'; $lang['No matching user found'] = 'Neniu kongruanta uzanto troviÄis'; $lang['No user selected of %d users'] = 'Neniu uzanto selektita el %d uzantoj'; -$lang['No user selected, no action possible.'] = 'Sen uzanto selektita, neniu ago eblas.'; +$lang['No users selected, no actions possible.'] = 'Sen uzanto selektita, neniu ago eblas.'; $lang['Password updated'] = 'Pasvorto ÄisdatiÄis'; $lang['Show %s users'] = 'Montri %s uzantojn'; $lang['Showing %s to %s of %s users'] = 'Montrante %s Äis %s el %s uzantoj'; @@ -962,7 +964,7 @@ $lang['date & time'] = 'dato & horo'; $lang['file name'] = 'dosieronomo'; $lang['width & height'] = 'larÄeco & alteco'; $lang['Upload in progress'] = 'AlÅutanta'; -$lang['No tag selected, no action possible.'] = 'Neniu marko elektita, neniu ago eblas'; +$lang['No tags selected, no actions possible.'] = 'Neniu marko elektita, neniu ago eblas'; $lang['(determined from photos)'] = '(determinita el la fotoj)'; $lang['Display form'] = 'Montri formularon'; $lang['delete only album, not photos'] = 'Forigi nur fortarojn, NE fotojn'; @@ -983,8 +985,8 @@ $lang['Select tags'] = 'Elekti markojn'; $lang['Storage used'] = 'Konservado uzata'; $lang['checksum'] = 'kontrolsumo'; $lang['For security reason, authentication keys do not work for administrators.'] = 'Pro sekurecaj kialoj, aÅtentiga Ålosilo ne funkcias por administrantoj'; -$lang['No user is permitted to see this private album'] = 'Neniu uzanto rajtas vidi tiun privatan fotaron'; -$lang['delete album and the %d orphan photos'] = 'Forigu fotaron kaj la %d orfajn fotojn'; +$lang['No user is permitted to see this private album'] = 'Neniu uzanto rajtas vidi tiun privatan albumon'; +$lang['delete album and the %d orphan photos'] = 'Forigu albumon kaj la %d orfajn fotojn'; $lang['Y Repeat'] = 'Y ripetiÄas'; $lang['Time has come to update your Piwigo with version %s, go to %s'] = 'Tempo venis por Äisdatigi vian Piwigo per verio %s, iru al %s'; $lang['Share / Send your photos directly from your Mac Os X (10.10 and following) to Piwigo'] = 'Kunhavigi/Sendi fotojn rekte el via macOS (10.10 kaj poste) al Piwigo'; @@ -1007,4 +1009,4 @@ $lang['Create a first album'] = 'Krei unuan fotaron'; $lang['Deletion in progress'] = 'Foriganta'; $lang['Piwigo requires an album to add photos.'] = 'Piwigo bezonas fotaron por aldoni fotojn.'; $lang['Welcome!'] = 'Bonvenon!'; -$lang['or'] = 'aÅ'; \ No newline at end of file +$lang['or'] = 'aÅ'; diff --git a/language/es_ES/admin.lang.php b/language/es_ES/admin.lang.php index 2e35a7ffe..27c541f59 100644 --- a/language/es_ES/admin.lang.php +++ b/language/es_ES/admin.lang.php @@ -660,7 +660,7 @@ $lang['Refresh photo set'] = 'Actualizar el lote de fotos'; $lang['The whole page'] = 'Página entera'; $lang['The whole set'] = 'La totalidad del lote'; $lang['No photo in the current set.'] = 'No hay fotos en este lote.'; -$lang['No photo selected, no action possible.'] = 'Selecciona al menos una foto para ejecutar cualquier acción.'; +$lang['No photos selected, no actions possible.'] = 'Selecciona al menos una foto para ejecutar cualquier acción.'; $lang['Choose an action'] = 'Seleccionar una acción'; $lang['remove author'] = 'eliminar el autor'; $lang['Type here the author name'] = 'Escriba el nombre del autor'; @@ -811,6 +811,7 @@ $lang['Not cropped correctly?'] = '¿No se ha recortado correctamente?'; $lang['Save manual order'] = 'Guardar orden manual'; $lang['Web Form'] = 'Formulario web'; $lang['You can activate only one mobile theme.'] = 'Sólo se puede activar un tema para dispositivos móviles.'; +$lang['Piwigo for Android application empowers you to connect your Android phone or table to your Piwigo gallery, create some albums and upload several photos at once.'] = 'La aplicación Piwigo para Android te permite conectarte a tu galerÃa Piwigo desde tu teléfono o tablet Android, crear álbumes y subir varias fotos a la vez.'; $lang['Piwigo for iOS application empowers you to connect to your Piwigo gallery from your iPhone, iPad or iPod Touch, create some albums and upload several photos at once.'] = 'Las aplicación Piwigo para iOS te permite conectarte a tu galerÃa Piwigo desde tu iPhone, iPad o iPod Touch, crear álbumes y subir varias fotos a la vez.'; $lang['Adobe Photoshop Lightroom is a photography software designed to manage large quantities of digital images and doing post production work.'] = 'Adobe Lightroom es un software fotográfico diseñado para administrar grandes cantidades de imágenes y realizar el procesado de las mismas.'; $lang['Aperture is a powerful tool to refine images and manage massive libraries on Mac.'] = 'Aperture es una potente herramienta para editar imágenes y administrar grandes colecciones en Mac.'; @@ -826,6 +827,7 @@ $lang['iPhoto is the default photo manager on MacOSX. The Piwigo export plugin l $lang['On your Linux, simply install Shotwell with your package manager and the activate Piwigo publishing option.'] = 'Para Linux, simplemente instala Shotwell con el gestor de paquetes y activa la opción de publicación en Piwigo.'; $lang['Piwigo export plugin for Aperture'] = 'Plugin de Piwigo para Aperture'; $lang['Piwigo export plugin for iPhoto'] = 'Plugin de Piwigo para iPhoto'; +$lang['Piwigo for Android'] = 'Piwigo para Android'; $lang['Piwigo for iOS (iPhone, iPad, iPod Touch)'] = 'Piwigo para iOS (iPhone, iPad, iPod Touch)'; $lang['Piwigo publish plugin for digiKam'] = 'Plugin de Piwigo para digiKam'; $lang['Piwigo Publish plugin for Lightroom'] = 'Plugin de publicación de Piwigo para Lightroom'; @@ -912,7 +914,7 @@ $lang['between %d and %d pixels'] = 'entre %d y %d pixels'; $lang['Duplicate'] = 'Duplicar'; $lang['Manage the members'] = 'Gestionar los miembros'; $lang['Merge selected groups'] = 'Combinar grupos seleccionados'; -$lang['No group selected, no action possible.'] = 'Ningún grupo seleccionado, no hay acción posible.'; +$lang['No groups selected, no actions possible.'] = 'Ningún grupo seleccionado, no hay acción posible.'; $lang['No members to manage'] = 'Ningún miembro para gestionar'; $lang['Please select at least two groups'] = 'Por favor, seleccione por lo menos dos grupos'; $lang['Rename'] = 'Renombrar'; @@ -936,7 +938,7 @@ $lang['Last visit on %s, %s.'] = 'Ultima visita el %s, %s'; $lang['Loading...'] = 'Cargando...'; $lang['No matching user found'] = 'Ningún miembro coincidentes encontrados'; $lang['No user selected of %d users'] = 'Ninguno de los %d usuarios seleccionados'; -$lang['No user selected, no action possible.'] = 'Ningún usuario seleccionado, ninguna acción posible. '; +$lang['No users selected, no actions possible.'] = 'Ningún usuario seleccionado, ninguna acción posible. '; $lang['Password updated'] = 'Contraseña actualizado'; $lang['Registered on %s, %s.'] = 'Registrado el %s, %s'; $lang['Show %s users'] = 'Mostrar %s usuarios'; @@ -982,7 +984,7 @@ $lang['Display form'] = 'Mostrar desde'; $lang['First photo added'] = 'Primera foto añadida'; $lang['It only takes a few clicks.'] = 'Solo hacen falta unos pocos clicks.'; $lang['No filter on album. Select one or type to search'] = 'Sin filtro en el álbum. Selecciona uno o teclea para buscar.'; -$lang['No tag selected, no action possible.'] = 'No se han seleccionado etiquetas, no hay ninguna acción posible.'; +$lang['No tags selected, no actions possible.'] = 'No se han seleccionado etiquetas, no hay ninguna acción posible.'; $lang['Piwigo %s is available, please update'] = 'Piwigo %s está disponible, por favor actualiza.'; $lang['Piwigo Remote Sync is able to upload a whole folder hierarchy. If you run it again, only new photos will be uploaded.'] = 'Piwigo Remote Sync puede subir toda la jerarquÃa de una carpeta. Si lo ejecutas de nuevo, solo las fotos nuevas se subirán.'; $lang['Running on an up-to-date Piwigo is important for security.'] = 'Ejecutar una versión actualizada de Piwigo es importante por seguridad.'; @@ -1007,4 +1009,4 @@ $lang['Visit'] = 'Visitar'; $lang['Welcome!'] = '¡Bienvenidos!'; $lang['With no checksum'] = 'Sin checksum'; $lang['checksums to add'] = 'Checksums que añadir'; -$lang['or'] = 'o'; \ No newline at end of file +$lang['or'] = 'o'; diff --git a/language/et_EE/admin.lang.php b/language/et_EE/admin.lang.php index f89a806c0..7115d26e8 100644 --- a/language/et_EE/admin.lang.php +++ b/language/et_EE/admin.lang.php @@ -106,6 +106,7 @@ $lang['%s must be to set to false in your local/config/config.inc.php file'] = ' $lang['%s value is not correct file because exif are not supported'] = '%s väärtus on vale, kuna Exif metaandmeid ei toetata'; $lang['%u users have automatic permission because they belong to a granted group.'] = '%u kasutajatel on automaatselt luba, kuna nad kuuluvad loaga gruppi.'; $lang['(this tag will be deleted)'] = '(see märksõna kustutakse)'; +$lang['Piwigo for Android application empowers you to connect your Android phone or table to your Piwigo gallery, create some albums and upload several photos at once.'] = 'Piwigo for Android on programm mis võimaldab sul ühenduda Android telefoni või tahvelarvutiga su Piwigo galleriisse, toimetada albumeid ja laadida üles fotosid.'; $lang['Piwigo for iOS application empowers you to connect to your Piwigo gallery from your iPhone, iPad or iPod Touch, create some albums and upload several photos at once.'] = 'Piwigo for iOS on programm mis võimaldab sul ühenduda iPhone, iPad või iPod Touch-iga su Piwigo galleriisse, toimetada albumeid ja laadida üles fotosid.'; $lang['A locked gallery is only visible to administrators'] = 'Lukustatud galleriid on ainult nähtavad administraatoritele'; $lang['A new version of Piwigo is available.'] = 'Piwigo uus versioon on saadaval.'; @@ -446,7 +447,7 @@ $lang['No photo can be deleted'] = 'Ühtki fotot ei saa kustutada'; $lang['No photo in the current set.'] = 'Fotod puuduvad valitud kogumikus.'; $lang['No photo in this album'] = 'Selles albumis pole ühtki fotot'; $lang['No photo selected, %d photos in current set'] = 'Ühtki fotot pole valitud, selles kogumikus on %d fotot.'; -$lang['No photo selected, no action possible.'] = 'Ühtki fotot pole valitud, ükski tegevus pole võimalik'; +$lang['No photos selected, no actions possible.'] = 'Ühtki fotot pole valitud, ükski tegevus pole võimalik'; $lang['No results'] = 'Ei leidnud vasteid'; $lang['No user to send notifications by mail.'] = 'Ühtki kasutajat pole, keda teavitada epostiga.'; $lang['None'] = 'Mitte ükski'; @@ -509,6 +510,7 @@ $lang['Piwigo cannot retrieve upgrade file from server'] = 'Piwigo ei suutnud sa $lang['Piwigo configuration'] = 'Piwigo seadistused'; $lang['Piwigo export plugin for Aperture'] = 'Piwigo eksportimisplugin Aperturele'; $lang['Piwigo export plugin for iPhoto'] = 'Piwigo eksportimisplugin iPhotole'; +$lang['Piwigo for Android'] = 'Piwigo Androidile'; $lang['Piwigo for iOS (iPhone, iPad, iPod Touch)'] = 'Piwigo iOS-ile (iPhone, iPad, iPod Touch)'; $lang['Piwigo publish plugin for Shotwell'] = 'Piwigo avaldamisplugin rakendusele Shotwell'; $lang['Piwigo publish plugin for digiKam'] = 'Piwigo avaldamisplugin rakendusele digiKam'; @@ -915,7 +917,7 @@ $lang['between %d and %d pixels'] = '%d ja %d pikslite vahel'; $lang['This group will be unset to default'] = 'Seda rühma ei kasutata edaspidi vaikerühmana'; $lang['Type here the name of the new group'] = 'Nimeta uus rühm'; $lang['Merge selected groups'] = 'Liida valitud rühmad'; -$lang['No group selected, no action possible.'] = 'Ühtegi rühma pole valitud, seega ei saa midagi teha.'; +$lang['No groups selected, no actions possible.'] = 'Ühtegi rühma pole valitud, seega ei saa midagi teha.'; $lang['No members to manage'] = 'Puudub liikmeid keda hallata'; $lang['Please select at least two groups'] = 'Vali vähemalt kaks rühma'; $lang['Rename'] = 'Nimeta ümber'; @@ -944,7 +946,7 @@ $lang['Last visit on %s, %s.'] = 'Viimane külastus %s, %s.'; $lang['Loading...'] = 'Laadimine...'; $lang['No matching user found'] = 'Vastet ei leitud'; $lang['No user selected of %d users'] = 'Kasutajat ei valitud etteantud %d kasutajatest'; -$lang['No user selected, no action possible.'] = 'Kasutajaid pole valitud, ei saa midagi teha'; +$lang['No users selected, no actions possible.'] = 'Kasutajaid pole valitud, ei saa midagi teha'; $lang['Password updated'] = 'Parool uuendatud'; $lang['Registered on %s, %s.'] = 'Registreeritud %s, %s.'; $lang['Show %s users'] = 'Näita %s kasutajaid'; @@ -990,7 +992,7 @@ $lang['Piwigo %s is available, please update'] = 'Piwigo %s on saadaval, palun u $lang['Piwigo Remote Sync is able to upload a whole folder hierarchy. If you run it again, only new photos will be uploaded.'] = 'Piwigo Remote Sync saab üles laadida kogu kausta hierarhia. Kui käivitad selle uuesti, siis laetakse ainult uued fotod'; $lang['Recipients'] = 'Saajad'; $lang['Running on an up-to-date Piwigo is important for security.'] = 'Värske Piwigo versiooni kasutamine on turvalisuse huvides oluline'; -$lang['No tag selected, no action possible.'] = 'Silti ei ole valitud, toiming ei ole võimalik'; +$lang['No tags selected, no actions possible.'] = 'Silti ei ole valitud, toiming ei ole võimalik'; $lang['Select tags'] = 'Vali sildid'; $lang['For security reason, authentication keys do not work for administrators.'] = 'Turvalisuse huvides autenteerimise võti administraatorite puhul ei toimi.'; $lang['(determined from photos)'] = '(määratud fotode järgi)'; @@ -1001,4 +1003,4 @@ $lang['Piwigo requires an album to add photos.'] = 'Fotode lisamiseks on vaja lu $lang['Display category date'] = 'Näita kategooria kuupäeva'; $lang['Deletion in progress'] = 'Toimub kustutamine'; $lang['Create a first album'] = 'Loo esimene album'; -$lang['... or hide this link'] = '... või peida see link'; \ No newline at end of file +$lang['... or hide this link'] = '... või peida see link'; diff --git a/language/eu_ES/admin.lang.php b/language/eu_ES/admin.lang.php index 158a07893..87528c86f 100755 --- a/language/eu_ES/admin.lang.php +++ b/language/eu_ES/admin.lang.php @@ -389,12 +389,12 @@ $lang['No user is permitted to see this private album'] = 'Ez da erabiltzailerik $lang['No results'] = 'Ez dago emaitzarik'; $lang['No recipient selected'] = 'Ez da hartzailerik hautatu'; $lang['No matching user found'] = 'Ez da aurkitu ba datorren erabiltzailerik'; -$lang['No photo selected, no action possible.'] = 'Ez da argazkirik hautatu, ez dago burutu daiteken ekintzarik.'; +$lang['No photos selected, no actions possible.'] = 'Ez da argazkirik hautatu, ez dago burutu daiteken ekintzarik.'; $lang['No photo selected, %d photos in current set'] = 'Ez da argazkirik hautatu, %d argazki uneko multzoan'; $lang['No photo in this album'] = 'Ez dago argazkirik albumean'; $lang['No photo in the current set.'] = 'Ez dago argazkirik uneko multzoan.'; $lang['No photo can be deleted'] = 'Ezin daiteke argazkirik ezabatu'; -$lang['No group selected, no action possible.'] = 'Ez da talderik hautatu, ez dago burutu daiteken ekintzarik.'; +$lang['No groups selected, no actions possible.'] = 'Ez da talderik hautatu, ez dago burutu daiteken ekintzarik.'; $lang['No order field selected'] = 'Ez da hautatu ordena-eremurik '; $lang['No members to manage'] = 'Ez dago kudeatu beharreko kiderik'; $lang['No mail to send.'] = 'Ez dago bidali beharreko posta elektronikorik.'; @@ -624,7 +624,7 @@ $lang['Notification'] = 'Jakinarazpena'; $lang['Not cropped correctly?'] = 'Ez al da behar bezala moztu?'; $lang['None'] = 'Bat ere ez'; $lang['No user to send notifications by mail.'] = 'Ez dago erabiltzailerik posta elektroniko bidez jakinarazteko.'; -$lang['No user selected, no action possible.'] = 'Ez da erabiltzailerik hautatu, ez dago burutu daiteken ekintzarik.'; +$lang['No users selected, no actions possible.'] = 'Ez da erabiltzailerik hautatu, ez dago burutu daiteken ekintzarik.'; $lang['Support'] = 'Laguntza'; $lang['Summary'] = 'Laburpena'; $lang['Sum of rates'] = 'Balorazioen batuketa'; @@ -980,7 +980,7 @@ $lang['Select tags'] = 'Hautatu etiketak'; $lang['Running on an up-to-date Piwigo is important for security.'] = 'Eguneratutako Piwigo bertsioa exekutatzea garrantzitsua da segurtasun kontuekaitik.'; $lang['Piwigo Remote Sync is able to upload a whole folder hierarchy. If you run it again, only new photos will be uploaded.'] = 'Piwigo Remote Sync karpeta-hierarki osoa kargatzeko ahalmena du. Berriro exekutatzen baduzu, argazki berriak baino ez dira kargatuko.'; $lang['Piwigo %s is available, please update'] = 'Piwigo %s eskuragarri, eguneratu mesedez'; -$lang['No tag selected, no action possible.'] = 'Ez da etiketarik hautatu, ezin da ekintzarik aurrera eraman.'; +$lang['No tags selected, no actions possible.'] = 'Ez da etiketarik hautatu, ezin da ekintzarik aurrera eraman.'; $lang['No filter on album. Select one or type to search'] = 'Ez dago iragazkirik albumerako. Hautatu edo bilatu bat'; $lang['It only takes a few clicks.'] = 'Klik gutxi batzu baino ez da.'; $lang['First photo added'] = 'Lehenengo argazkia gehitu egin da'; @@ -1004,4 +1004,4 @@ $lang['Deletion in progress'] = 'Ezabatzen'; $lang['Create a first album'] = 'Sortu Lehenengo Album bat'; $lang['Compute %d missing checksums'] = 'Kalkulatu galdutako %d kontroleko batura(k)'; $lang['... or hide this link'] = '... edo ezkutatu esteka'; -$lang['%d checksums were added'] = '%d kontroleko batura gehitu d(ir)a'; \ No newline at end of file +$lang['%d checksums were added'] = '%d kontroleko batura gehitu d(ir)a'; diff --git a/language/fa_IR/admin.lang.php b/language/fa_IR/admin.lang.php index 9eb8713da..e9886d647 100644 --- a/language/fa_IR/admin.lang.php +++ b/language/fa_IR/admin.lang.php @@ -665,7 +665,7 @@ $lang['Refresh photo set'] = 'تازه کردن (Refresh) Ø³ÙØª عکس ها'; $lang['The whole page'] = 'تمام ØµÙØÙ‡'; $lang['The whole set'] = 'تمامی عکس ها (Ú©Ù„ Ø³ÙØª)'; $lang['No photo in the current set.'] = 'هیچ عکسی در این Ø³ÙØª نیست.'; -$lang['No photo selected, no action possible.'] = 'هیچ عکسی انتخاب نشده است، هیچ کاری ممکن نیست.'; +$lang['No photos selected, no actions possible.'] = 'هیچ عکسی انتخاب نشده است، هیچ کاری ممکن نیست.'; $lang['Choose an action'] = 'یک کار را انتخاب کنید'; $lang['remove author'] = 'پاک کردن نویسنده'; $lang['Type here the author name'] = 'نام نویسنده را اینجا تایپ نمایید'; @@ -842,6 +842,7 @@ $lang['Multiple Size'] = 'چند سایزه'; $lang['Not cropped correctly?'] = 'درست بریده نشد؟'; $lang['Numeric identifier : %d'] = 'شناسه‌ی عددی: %d'; $lang['Permission management'] = 'مدیریت دسترسی‌ها'; +$lang['Piwigo for Android'] = 'Ø¯Ø±ÛŒØ§ÙØª Piwigo برای Android'; $lang['Rated %d times, score : %.2f'] = 'به تعداد %d بار رأی داده شده، امتیاز : %.2f'; $lang['Save manual order'] = 'ذخیره ÛŒ ترتیب دستی'; $lang['Sharpen'] = 'ØØ§Ù„ت تیز (Sharpen)'; @@ -859,6 +860,7 @@ $lang['cancel manual order'] = 'لغو تغییرات ترتیب دستی'; $lang['middle'] = 'وسط'; $lang['top left corner'] = 'گوشه ÛŒ بالا سمت Ú†Ù¾'; $lang['top right corner'] = 'گوشه ÛŒ بالا سمت راست'; +$lang['Piwigo for Android application empowers you to connect your Android phone or table to your Piwigo gallery, create some albums and upload several photos at once.'] = 'Ù†Ø±Ù…â€ŒØ§ÙØ²Ø§Ø± Piwigo برای Android به شما قدرت وصل شدن به گالری، ساخت آلبوم Ùˆ آپلود عکس به Ú©Ù…Ú© موبایل یا تبلت آندرویدتان را می‌دهد.'; $lang['Piwigo for iOS application empowers you to connect to your Piwigo gallery from your iPhone, iPad or iPod Touch, create some albums and upload several photos at once.'] = 'Ù†Ø±Ù…â€ŒØ§ÙØ²Ø§Ø± Piwigo برای iOS به شما قدرت وصل شدن به گالری، ساخت آلبوم Ùˆ آپلود عکس به Ú©Ù…Ú© iPhoneØŒ iPad یا iPod Touch ـتان را می‌دهد.'; $lang['Adobe Photoshop Lightroom is a photography software designed to manage large quantities of digital images and doing post production work.'] = 'Adobe Photoshop Lightroom یک Ù†Ø±Ù…â€ŒØ§ÙØ²Ø§Ø± عکاسی می‌باشد Ú©Ù‡ برای مدیریت عکس‌های دیجیتالی بزرگ طراØÛŒ شده است.'; $lang['Center of interest'] = 'نقطه‌ی طلایی (Center of Interest)'; @@ -913,7 +915,7 @@ $lang['View in gallery'] = 'نمایش در گالری'; $lang['Duplicate'] = 'دوتایی کردن'; $lang['Manage the members'] = 'مدیریت کاربران'; $lang['Merge selected groups'] = 'ترکیب گروه‌های انتخاب شده'; -$lang['No group selected, no action possible.'] = 'گروهی انتخاب نشده است، هیچ کاری انجام نخواهد شد.'; +$lang['No groups selected, no actions possible.'] = 'گروهی انتخاب نشده است، هیچ کاری انجام نخواهد شد.'; $lang['No members to manage'] = 'کاربری برای ترکیب وجود ندارد'; $lang['Please select at least two groups'] = 'دست Ú©Ù… باید دو گروه را انتخاب کنید'; $lang['Ratio'] = 'نسبت'; @@ -943,7 +945,7 @@ $lang['Showing %s to %s of %s users'] = 'نمايش از %s تا %s از بين $lang['Show %s users'] = 'نمايش %s كاربر'; $lang['Registered on %s, %s.'] = 'ثبت شده در %s, %s.'; $lang['Open user details'] = 'باز كردن مشخصات كاربر'; -$lang['No user selected, no action possible.'] = 'هيچ كاربري انتخاب نشده است، هيچ كاري ممكن نيست.'; +$lang['No users selected, no actions possible.'] = 'هيچ كاربري انتخاب نشده است، هيچ كاري ممكن نيست.'; $lang['No user selected of %d users'] = 'هيچ كاربري از بين %d كاربر انتخاب نشده است.'; $lang['Last visit on %s, %s.'] = 'آخرين بازديد در %s, %s.'; $lang['Close user details'] = 'بستن مشخصات كاربر'; @@ -993,7 +995,7 @@ $lang['(determined from photos)'] = '(تعیین شده از روی عکس‌ه $lang['Confirm deletion'] = 'تایید پاک کردن'; $lang['Delete album "%s" and its %d sub-albums.'] = 'آلبوم "%s" Ùˆ همه‌ی %d زیرآلبوم آن پاک شوند.'; $lang['No filter on album. Select one or type to search'] = 'Ùیلتری روی آلبوم اعمال نشده است. یک Ùیلتر انتخاب کرده Ùˆ یا واژه‌ی مورد نظر خود را تایپ کنید'; -$lang['No tag selected, no action possible.'] = 'هیچ برچسبی انتخاب نشده، کاری قابل انجام نیست'; +$lang['No tags selected, no actions possible.'] = 'هیچ برچسبی انتخاب نشده، کاری قابل انجام نیست'; $lang['Piwigo %s is available, please update'] = 'ورژن %s از Piwigo آماده‌ی آپدیت کردن است '; $lang['Piwigo Remote Sync is able to upload a whole folder hierarchy. If you run it again, only new photos will be uploaded.'] = 'Piwigo Remote Sync قابلیت این را دارد Ú©Ù‡ یک پوشه(Ùولدر) را با تمام زیر مجموعه هایش آپلود کند. اگر مجدد این عملیات را انجام دهید Ùقط موارد جدید آپلود میشود.'; diff --git a/language/fi_FI/admin.lang.php b/language/fi_FI/admin.lang.php index bd267d869..153ed79be 100644 --- a/language/fi_FI/admin.lang.php +++ b/language/fi_FI/admin.lang.php @@ -482,6 +482,7 @@ $lang['Automatic sort order'] = 'Automaattinen järjestys'; $lang['Available on'] = 'Saatavilla'; $lang['Average rate'] = 'Pisteiden keskiarvo'; $lang['Batch Manager'] = 'Massahallintatyökalu'; +$lang['Piwigo for Android application empowers you to connect your Android phone or table to your Piwigo gallery, create some albums and upload several photos at once.'] = 'Piwigo Androidille applikaatio mahdollistaa yhdistämisen Android laitteestasi Piwigo galleriaan albumeiden luontia ja kuvien lisäämistä varten.'; $lang['Options'] = 'Valinnat'; $lang['Original Size'] = 'Alkuperäinen koko'; $lang['No photo in the current set.'] = 'Ei kuvaa tässä setissä'; @@ -557,7 +558,7 @@ $lang['Search for new images in the directories'] = 'Etsi uusia kuvia hakemistoi $lang['Searching...'] = 'Etsii...'; $lang['Type in a search term'] = 'Kirjoita hakusana'; $lang['Permissions'] = 'Oikeudet'; -$lang['No photo selected, no action possible.'] = 'Ei valittua valokuvaa, ei mahdollisia toimintoja.'; +$lang['No photos selected, no actions possible.'] = 'Ei valittua valokuvaa, ei mahdollisia toimintoja.'; $lang['Select:'] = 'Valitse:'; $lang['Selection'] = 'Valinta'; $lang['Delete %d orphan photos'] = 'Poista %d orpoa valokuvaa'; @@ -597,4 +598,4 @@ $lang['Properties'] = 'Ominaisuudet'; $lang['Manage this set of %d photos'] = 'Hallitse tätä %d:n kuvan sarjaa.'; $lang['Empty caddie'] = 'Tyhjennä caddie'; $lang['Remove from caddie'] = 'Poista caddiesta'; -$lang['add new photos to caddie'] = 'Lisää uusia kuvia caddiesta'; \ No newline at end of file +$lang['add new photos to caddie'] = 'Lisää uusia kuvia caddiesta'; diff --git a/language/fr_CA/admin.lang.php b/language/fr_CA/admin.lang.php index 768e3c875..890af82e1 100644 --- a/language/fr_CA/admin.lang.php +++ b/language/fr_CA/admin.lang.php @@ -665,7 +665,7 @@ $lang['Missing a temporary folder'] = 'Impossible de trouver le répertoire temp $lang['No file was uploaded'] = 'Aucun fichier n\'a été transféré'; $lang['No photo in the current set.'] = 'Aucune photo dans le lot.'; $lang['No photo selected, %d photos in current set'] = 'Aucune photo sélectionnée parmi les %d photos du lot'; -$lang['No photo selected, no action possible.'] = 'Aucune photo sélectionnée, aucune action possible.'; +$lang['No photos selected, no actions possible.'] = 'Aucune photo sélectionnée, aucune action possible.'; $lang['on the %d selected photos'] = 'sur les %d photos sélectionnées'; $lang['Orphan tags deleted'] = 'Mots clés orphelins supprimés'; $lang['Refresh photo set'] = 'Rafraîchir le lot de photos'; @@ -826,6 +826,8 @@ $lang['Applications'] = 'Applications'; $lang['Available on'] = 'Disponible sur'; $lang['Piwigo for iOS (iPhone, iPad, iPod Touch)'] = 'Piwigo pour iOS (iPhone, iPad, iPod Touch)'; $lang['Piwigo for iOS application empowers you to connect to your Piwigo gallery from your iPhone, iPad or iPod Touch, create some albums and upload several photos at once.'] = 'L\'application Piwigo pour iOS vous permet de connecter votre iPhone, iPad ou iPod Touch à votre galerie Piwigo pour y créer des albums et envoyer plusieurs photos à la fois.'; +$lang['Piwigo for Android'] = 'Piwigo pour Android'; +$lang['Piwigo for Android application empowers you to connect your Android phone or table to your Piwigo gallery, create some albums and upload several photos at once.'] = 'L\'application Piwigo pour Android vous permet de connecter votre smartphone ou votre tablette Android à votre galerie Piwigo pour y créer des albums et envoyer plusieurs photos à la fois.'; $lang['Piwigo Publish plugin for Lightroom'] = 'Plugin de publication Piwigo pour Lightroom'; $lang['Adobe Photoshop Lightroom is a photography software designed to manage large quantities of digital images and doing post production work.'] = 'Adobe Photoshop Lightroom est un logiciel de photographie conçu pour gérer d\'importantes collections de photos numériques et les post-traiter.'; $lang['The Piwigo publish Plug-in allows you to export and synchronize photos from Lightroom directly to your Piwigo photo gallery.'] = 'Le plugin de publication Piwigo pour Lightroom vous permet d\'exporter et synchroniser vos photos de Lightroom vers votre galerie Piwigo.'; @@ -911,7 +913,7 @@ $lang['Source tag'] = 'Source du mot clé'; $lang['Tag "%s" is now a duplicate of "%s"'] = 'Le mot clé "%s" est désormais une copie de "%s"'; $lang['Manage the members'] = 'Gérer les membres'; $lang['Type here the name of the new group'] = 'Inscrivez ici le nom du nouveau groupe'; -$lang['No group selected, no action possible.'] = 'Pas de groupes sélectionnés, pas d\'actions possibles.'; +$lang['No groups selected, no actions possible.'] = 'Pas de groupes sélectionnés, pas d\'actions possibles.'; $lang['Please select at least two groups'] = 'Merci de sélectionner au moins deux groupes'; $lang['Duplicate'] = 'Dupliquer'; $lang['Merge selected groups'] = 'Fusionner les groupes sélectionnés'; @@ -946,7 +948,7 @@ $lang['Last visit on %s, %s.'] = 'Dernière visite le %s, %s.'; $lang['Loading...'] = 'Chargement...'; $lang['No matching user found'] = 'Aucun utilisateur à afficher'; $lang['No user selected of %d users'] = 'Aucun utilisateur sélectionné sur les %d'; -$lang['No user selected, no action possible.'] = 'Aucun utilisateur sélectionné, aucune action possible.'; +$lang['No users selected, no actions possible.'] = 'Aucun utilisateur sélectionné, aucune action possible.'; $lang['Password updated'] = 'Mot de passe mis à jour'; $lang['Registered on %s, %s.'] = 'Enregistré depuis le %s, %s.'; $lang['Show %s users'] = 'Afficher %s utilisateurs'; @@ -974,9 +976,9 @@ $lang['file name'] = 'nom de fichier'; $lang['width & height'] = 'largeur et hauteur'; $lang['Select tags'] = 'Sélectionner des mots clés'; $lang['Each email sent will contain its own automatic authentication key on links, valid for %s.'] = 'Chaque courriel envoyé contiendra sa propre clef d\'identification automatique sur les liens, valide %s.'; -$lang['No tag selected, no action possible.'] = 'Aucun mot clé sélectionné, aucune action possible.'; +$lang['No tags selected, no actions possible.'] = 'Aucun mot clé sélectionné, aucune action possible.'; $lang['checksums to add'] = 'Checksums à ajouter'; $lang['With no checksum'] = 'Sans checksums'; $lang['Some checksums are missing.'] = 'Des checksums sont manquants'; $lang['Compute %d missing checksums'] = 'Calcule %d des checksums manquants'; -$lang['%d checksums were added'] = '%d des checksums ont été ajoutés'; \ No newline at end of file +$lang['%d checksums were added'] = '%d des checksums ont été ajoutés'; diff --git a/language/fr_CA/common.lang.php b/language/fr_CA/common.lang.php index 50d10915e..2a4a9c6b2 100644 --- a/language/fr_CA/common.lang.php +++ b/language/fr_CA/common.lang.php @@ -417,4 +417,4 @@ $lang['Photo description'] = 'Description de la photo'; $lang['Photo title'] = 'Titre de la photo'; $lang['generate random password'] = 'générer un mot de passe aléatoire'; $lang['Your authentication key is no longer valid.'] = 'Voter clef d\'identification n\'est plus valide'; -$lang['Invalid username or password!'] = 'Nom d\'utilisateur ou mot de passe invalide !'; \ No newline at end of file +$lang['Invalid username or password!'] = 'Nom d\'utilisateur ou mot de passe invalide !'; diff --git a/language/fr_FR/admin.lang.php b/language/fr_FR/admin.lang.php index 87fce89ec..0f51a8e8c 100644 --- a/language/fr_FR/admin.lang.php +++ b/language/fr_FR/admin.lang.php @@ -204,8 +204,8 @@ $lang['jump to photo'] = 'Voir la photo'; $lang['leave'] = "laisser"; $lang['Lock'] = "Verrouiller"; $lang['Locked'] = "Verrouillées"; -$lang['manage album photos'] = 'Gérer les photos de l\'album'; -$lang['manage sub-albums'] = 'Gérer les sous-albums'; +$lang['manage album photos'] = 'gérer les photos de l\'album'; +$lang['manage sub-albums'] = 'gérer les sous-albums'; $lang['Manage'] = "Gérer"; $lang['Execution time is out, treatment must be continue [Estimated time: %d second].'] = "Le temps d'exécution étant dépassé, le traitement doit continuer [Temps estimé: %d second]."; $lang['Execution time is out, treatment must be continue [Estimated time: %d seconds].'] = "Le temps d'exécution étant dépassé, le traitement doit continuer [Temps estimé: %d secondes]."; @@ -458,9 +458,9 @@ $lang['Plugin list'] = "Liste des plugins"; $lang['Check for updates'] = "Rechercher les mises à jour"; $lang['Other plugins'] = "Autres plugins disponibles"; $lang['Last revisions'] = "Dernières révisions"; -$lang['Are you sure you want to delete this plugin?'] = "Etes-vous sûr de vouloir supprimer ce plugin?"; -$lang['Are you sure you want to install this plugin?'] = "Etes-vous sûr de vouloir installer ce plugin?"; -$lang['Are you sure to install this upgrade? You must verify if this version does not need uninstallation.'] = "Etes-vous sur de vouloir installer cette mise à jour? Vous devez vérifiez que cette mise à jour ne nécessite pas de désinstallation préalable."; +$lang['Are you sure you want to delete this plugin?'] = "Êtes-vous sûr de vouloir supprimer ce plugin?"; +$lang['Are you sure you want to install this plugin?'] = "Êtes-vous sûr de vouloir installer ce plugin?"; +$lang['Are you sure to install this upgrade? You must verify if this version does not need uninstallation.'] = "Êtes-vous sur de vouloir installer cette mise à jour? Vous devez vérifiez que cette mise à jour ne nécessite pas de désinstallation préalable."; $lang['Plugin has been successfully copied'] = "Le plugin a été copié avec succès."; $lang['Can\'t create temporary file.'] = "Impossible de créer un fichier temporaire."; $lang['Can\'t download archive.'] = "Impossible de télécharger l'archive."; @@ -674,7 +674,7 @@ $lang['Refresh photo set'] = 'Rafraîchir le lot de photos'; $lang['The whole page'] = 'Toute la page'; $lang['The whole set'] = 'Tout le lot'; $lang['No photo in the current set.'] = 'Aucune photo dans le lot.'; -$lang['No photo selected, no action possible.'] = 'Aucune photo sélectionnée, aucune action possible.'; +$lang['No photos selected, no actions possible.'] = 'Aucune photo sélectionnée, aucune action possible.'; $lang['Choose an action'] = 'Choisir une action'; $lang['remove author'] = 'supprimer l\'auteur'; $lang['Type here the author name'] = 'Entrez ici le nom de l\'auteur'; @@ -701,7 +701,7 @@ $lang['THIS PLUGIN IS NOW PART OF PIWIGO CORE! DELETE IT NOW.'] = 'CE PLUGIN FAI $lang['ERROR: THIS PLUGIN IS MISSING BUT IT IS INSTALLED! UNINSTALL IT NOW.'] = 'ERREUR: CE PLUGIN EST MANQUANT MAIS TOUJOURS INSTALLÉ! DÉSINSTALLEZ-LE.'; $lang['display'] = 'Afficher'; $lang['Restore'] = "Restaurer"; -$lang['Restore default configuration. You will lose your plugin settings!'] = "Restaurer la configuration par défaut? Vous perdrez vos réglages personnels !"; +$lang['Restore default configuration. You will lose your plugin settings!'] = "Restaurer la configuration par défaut ? Vous perdrez vos réglages personnels !"; $lang['Thumbnails generation in progress...'] = 'Génération des miniatures en cours...'; $lang['Photos generation in progress...'] = 'Génération des photos en cours...'; $lang['%s photos have been regenerated'] = '%s photos ont été régénérées'; @@ -823,6 +823,8 @@ $lang['Applications'] = 'Applications'; $lang['Available on'] = 'Disponible sur'; $lang['Piwigo for iOS (iPhone, iPad, iPod Touch)'] = 'Piwigo pour iOS (iPhone, iPad, iPod Touch)'; $lang['Piwigo for iOS application empowers you to connect to your Piwigo gallery from your iPhone, iPad or iPod Touch, create some albums and upload several photos at once.'] = 'L\'application Piwigo pour iOS vous permet de connecter votre iPhone, iPad ou iPod Touch à votre galerie Piwigo pour y créer des albums et envoyer plusieurs photos à la fois.'; +$lang['Piwigo for Android'] = 'Piwigo pour Android'; +$lang['Piwigo for Android application empowers you to connect your Android phone or table to your Piwigo gallery, create some albums and upload several photos at once.'] = 'L\'application Piwigo pour Android vous permet de connecter votre smartphone ou votre tablette Android à votre galerie Piwigo pour y créer des albums et envoyer plusieurs photos à la fois.'; $lang['Piwigo Publish plugin for Lightroom'] = 'Plugin de publication Piwigo pour Lightroom'; $lang['Adobe Photoshop Lightroom is a photography software designed to manage large quantities of digital images and doing post production work.'] = 'Adobe Photoshop Lightroom est un logiciel de photographie conçu pour gérer d\'importantes collections de photos numériques et les post-traiter.'; $lang['The Piwigo publish Plug-in allows you to export and synchronize photos from Lightroom directly to your Piwigo photo gallery.'] = 'Le plugin de publication Piwigo pour Lightroom vous permet d\'exporter et synchroniser vos photos de Lightroom vers votre galerie Piwigo.'; @@ -877,7 +879,7 @@ $lang['Y Position'] = 'Position Y'; $lang['Multiple Size'] = 'Tailles multiples'; $lang['Watermark'] = 'Filigrane'; $lang['Original file : %s'] = 'Fichier original : %s'; -$lang['Posted %s on %s'] = 'Postée %s le %s'; +$lang['Posted the %s'] = 'Postée le %s'; $lang['Added by %s'] = 'Ajouté par %s'; $lang['Visited %d times'] = 'Visitée %d fois'; $lang['Numeric identifier : %d'] = 'Identifiant numérique : %d'; @@ -899,7 +901,7 @@ $lang['%d minutes'] = '%d minutes'; $lang['%d second'] = '%d seconde'; $lang['%d seconds'] = '%d secondes'; $lang['Sharpen'] = 'Renforcer la netteté'; -$lang['Edit photo'] = 'Éditer la photo'; +$lang['Edit photo #%s'] = 'Éditer la photo #%s'; $lang['create a new site'] = 'créer un nouveau site'; $lang['No order field selected'] = 'Aucun critère de tri sélectionné'; $lang['Name of the duplicate'] = "Nom du duplicata"; @@ -919,7 +921,7 @@ $lang['between %d and %d pixels'] = 'entre %d et %d pixels'; $lang['between %.2f and %.2f'] = 'entre %.2f et %.2f'; $lang['Manage the members'] = 'Gérer les membres'; $lang['Type here the name of the new group'] = 'Inscrivez ici le nom du nouveau groupe'; -$lang['No group selected, no action possible.'] = 'Pas de groupes sélectionnés, pas d\'actions possibles.'; +$lang['No groups selected, no actions possible.'] = 'Pas de groupes sélectionnés, pas d\'actions possibles.'; $lang['Please select at least two groups'] = 'Merci de sélectionner au moins deux groupes'; $lang['Duplicate'] = 'Dupliquer'; $lang['Merge selected groups'] = 'Fusionner les groupes sélectionnés'; @@ -937,7 +939,7 @@ $lang['Show %s users'] = 'Afficher %s utilisateurs'; $lang['No matching user found'] = 'Aucun utilisateur à afficher'; $lang['Showing %s to %s of %s users'] = 'Affichage des utilisateurs %s à %s sur %s'; $lang['(filtered from %s total users)'] = '(filtré de %s utilisateurs au total)'; -$lang['No user selected, no action possible.'] = 'Aucun utilisateur sélectionné, aucune action possible.'; +$lang['No users selected, no actions possible.'] = 'Aucun utilisateur sélectionné, aucune action possible.'; $lang['%d of %d users selected'] = '%d des %d utilisateurs sélectionnés.'; $lang['No user selected of %d users'] = 'Aucun utilisateur sélectionné sur les %d'; $lang['All %d users are selected'] = 'Tous les %d utilisateurs sont sélectionnés'; @@ -976,7 +978,7 @@ $lang['Each email sent will contain its own automatic authentication key on link $lang['For security reason, authentication keys do not work for administrators.'] = 'Par mesure de sécurité les clefs d\'identification ne fonctionnent pas pour les administrateurs.'; $lang['Y Repeat'] = 'Répétition Y'; $lang['Select tags'] = 'Sélectionner des tags'; -$lang['No tag selected, no action possible.'] = 'Aucun tag sélectionné, aucune action possible.'; +$lang['No tags selected, no actions possible.'] = 'Aucun tag sélectionné, aucune action possible.'; $lang['Display form'] = 'Afficher le formulaire'; $lang['Delete album "%s".'] = 'Supprimer l\'album "%s".'; $lang['Delete album "%s" and its %d sub-albums.'] = 'Supprimer l\'album "%s" et ses %d sous-albums.'; @@ -1000,6 +1002,9 @@ $lang['Time has come to update your Piwigo with version %s, go to %s'] = 'Il est $lang['Welcome!'] = 'Bienvenue !'; $lang['Piwigo requires an album to add photos.'] = 'Piwigo a besoin d\'un album pour y ajouter des photos.'; $lang['Create a first album'] = 'Créer un premier album'; +$lang['Search tips'] = 'Conseils de recherche'; +$lang['Posted %s'] = 'Postée %s'; +$lang['File type: %s'] = 'Type du fichier : %s'; $lang['or'] = 'ou'; $lang['%d checksums were added'] = '%d sommes de contrôle ont été ajoutées'; $lang['Compute %d missing checksums'] = 'Calcule %d sommes de contrôle manquantes'; @@ -1009,4 +1014,68 @@ $lang['checksums to add'] = 'sommes de contrôle à ajouter'; $lang['Synchronization in progress'] = 'Synchronisation en cours'; $lang['Some checksums are missing.'] = 'Il manque des sommes de contrôle'; $lang['Display category date'] = 'Afficher la date de la catégorie'; -$lang['Deletion in progress'] = 'Suppression en cours'; \ No newline at end of file +$lang['Deletion in progress'] = 'Suppression en cours'; +$lang['Open in gallery'] = "Ouvrir dans la galerie"; +$lang['Promote mobile app on mobile devices'] = 'Promouvoir l\'application mobile sur les smartphones et tablettes'; +$lang['in gallery'] = 'dans la galerie'; +$lang['in administration'] = 'dans l\'administration'; +$lang['Displays a banner to install or open the official Piwigo app'] = 'Affiche une bannière pour installer et/ou ouvrir l\'application mobile officielle Piwigo'; +$lang['Search albums'] = 'Rechercher des albums'; +$lang['You have %d orphan tags %s'] = 'Vous avez %d tag(s) orphelin(s) %s'; +$lang['Review'] = 'Examiner'; +$lang['You have %s1 orphan : %s2'] = 'Vous avez %s1 orphelin(s) : %s2'; +$lang['Delete tags \{%s\}?'] = 'Supprimer les tags \{%s\}?'; +$lang['Yes, delete'] = 'Oui, je veux supprimer'; +$lang['No, I have changed my mind'] = 'Non, j\'ai changé d\'avis'; +$lang['Tag "%s" succesfully deleted'] = 'Le tag \"%s\" a été supprimé'; +$lang['Tags \{%s\} succesfully deleted'] = 'Les tags \{%s\} ont été supprimés'; +$lang['Tag "%s" created'] = 'Le tag \"%s\" a été créé'; +$lang['Tag "%s1" renamed in "%s2"'] = 'Le tag \"%s1\" a été renommé en \"%s2\"'; +$lang['Delete orphan tags ?'] = 'Supprimer les tags orphelins?'; +$lang['Delete them'] = 'Les supprimer'; +$lang['Keep them'] = 'Les garder'; +$lang[' (copy)'] = ' (copie)'; +$lang[' (copy %s)'] = ' (copie %s)'; +$lang['Tag(s) \{%s1\} succesfully merged into "%s2"'] = 'Les tags \{%s1\} ont été fusionnés dans "%s2"'; +$lang['and %s others'] = 'et %s autres'; +$lang['%s other tags available..'] = '%s autres tags disponibles..'; +$lang['%d photos'] = '%d photos'; +$lang['no photo'] = 'pas de photos'; +$lang['Select all %d tags'] = 'Selectionner tout des %d tags'; +$lang['Clear Selection'] = 'Vider la sélection'; +$lang['The %d tags on this page are selected'] = 'Les %d tags sur cette page sont sélectionnés'; +$lang['%d tag selected'] = '%d tag sélectionné'; +$lang['%d tags found'] = '%d tags trouvés'; +$lang['%d tag found'] = '%d tag trouvé'; +$lang['Selection mode'] = 'Mode sélection'; +$lang['At least 2 selected tags are needed to merge'] = 'Au moins 2 tags doivent être sélectionnés pour fusionner'; +$lang['Merge'] = 'Fusionner'; +$lang['Choose which tag to merge these tags into'] = 'Choisissez dans quel tag vont être fusionné les tags'; +$lang['The other tags will be removed'] = 'Les autres tags seront supprimés'; +$lang['Select'] = 'Sélectionner'; +$lang['Tag Manager'] = 'Gestionnaire de tags'; +$lang['No tag found'] = 'Pas de tag trouvé'; +$lang['Manage album photos'] = 'Gérer les photos de l\'album'; +$lang['Manage sub-albums'] = 'Gérer les sous-albums'; +$lang['Delete album'] = 'Supprimer l\'album'; +$lang['Are you sure you want to delete this site?'] = 'Êtes-vous sûr de supprimer ce site ?'; +$lang['Yes, I am sure'] = 'Oui, je suis sûr'; +$lang['Are you sure you want to delete this theme?'] = 'Êtes-vous sûr de supprimer ce thème ?'; +$lang['Are you sure you want to restore this plugin?'] = 'Êtes-vous sûr de restaurer ce plugin ?'; +$lang['Are you sure you want to delete this?'] = 'Êtes-vous sûr de supprimer cela ?'; +$lang['Are you sure you want to restore to default settings?'] = 'Êtes-vous sûr de vouloir rétablir les valeurs par défaut ?'; +$lang['Are you sure you want to delete the ratings of the user "%s"?'] = 'Êtes-vous sûr de vouloir supprimer les notations de l\'utilisateur "%s" ?'; +$lang['Are you sure you want to install the plugin "%s"?'] = 'Êtes-vous sûr de vouloir installer le plugin "%s" ?'; +$lang['Are you sure you want to delete the plugin "%s"?'] = 'Êtes-vous sûr de vouloir supprimer le plugin "%s" ?'; +$lang['Are you sure you want to restore the plugin "%s"?'] = 'Êtes-vous sûr de vouloir restaurer le plugin "%s" ?'; +$lang['Are you sure you want to delete all sizes?'] = 'Êtes-vous sûr de vouloir supprimer toutes les tailles ?'; +$lang['Are you sure you want to lock the gallery?'] = 'Êtes-vous sûr de vouloir verrouiller la galerie ?'; +$lang['Are you sure you want to delete the language "%s"?'] = 'Êtes-vous sûr de vouloir supprimer la langue "%s" ?'; +$lang['Are you sure you want to delete the theme "%s"?'] = 'Êtes-vous sûr de vouloir supprimer le thème "%s" ?'; +$lang['Are you sure you want to update all extensions?'] = 'Êtes-vous sûr de vouloir mettre à jour toutes les extensions ?'; +$lang['Are you sure you want to delete the user "%s"?'] = 'Êtes-vous sûr de vouloir supprimer l\'utilisateur "%s" ?'; +$lang['Please upgrade your PHP version before any update.'] = 'Il faudra mettre à jour votre PHP avant de pouvoir mettre à jour Piwigo.'; +$lang['Requires PHP %s'] = 'Requiert PHP %s'; +$lang['%s MB used'] = '%s MB utilisés'; +$lang['%s GB used'] = '%s GB utilisés'; + diff --git a/language/fr_FR/common.lang.php b/language/fr_FR/common.lang.php index 082d80b2e..96e4861cf 100644 --- a/language/fr_FR/common.lang.php +++ b/language/fr_FR/common.lang.php @@ -412,4 +412,5 @@ $lang['Album name, Z → A'] = 'Nom de l\'album, Z → A'; $lang['Link: %s'] = 'Lien: %s'; $lang['Your authentication key is no longer valid.'] = 'Votre clef d\'identification n\'est plus valide.'; $lang['Invalid username or password!'] = 'Nom d\'utilisateur ou mot de passe invalide !'; -$lang['generate random password'] = 'générer un mot de passe aléatoire'; \ No newline at end of file +$lang['generate random password'] = 'générer un mot de passe aléatoire'; +$lang['Related albums'] = 'Albums liés'; \ No newline at end of file diff --git a/language/gl_ES/admin.lang.php b/language/gl_ES/admin.lang.php index 2dc20ef68..e38cdf5a7 100644 --- a/language/gl_ES/admin.lang.php +++ b/language/gl_ES/admin.lang.php @@ -113,6 +113,7 @@ $lang['ACCESS_5'] = 'Sen acceso'; $lang['Access type'] = 'Tipo de acceso'; $lang['Action'] = 'Acción'; $lang['Actions'] = 'Accións'; +$lang['Piwigo for Android application empowers you to connect your Android phone or table to your Piwigo gallery, create some albums and upload several photos at once.'] = 'O aplicativo Piwigo para Android permÃteche conectar o teu móbil ou tableta Android á túa galerÃa Piwigo, creando álbums e enviando fotos ó mesmo tempo.'; $lang['Piwigo for iOS application empowers you to connect to your Piwigo gallery from your iPhone, iPad or iPod Touch, create some albums and upload several photos at once.'] = 'O aplicativo Piwigo para iOS permÃteche conectar o teu iPhone, iPad ou iPod Touch á túa galerÃa Piwigo, creando álbums e enviando fotos ó mesmo tempo.'; $lang['A locked gallery is only visible to administrators'] = 'Unha galerÃa bloqueada só pode ser vista polos administradores'; $lang['... or '] = '... ou'; @@ -291,6 +292,7 @@ $lang['Piwigo cannot retrieve upgrade file from server'] = 'Piwigo non pode recu $lang['Piwigo configuration'] = 'Configuración de Piwigo'; $lang['Piwigo export plugin for Aperture'] = 'Engadido de exportación Piwigo para Aperture'; $lang['Piwigo export plugin for iPhoto'] = 'Engadido de exportación Piwigo para iPhoto'; +$lang['Piwigo for Android'] = 'Piwigo para Android'; $lang['Piwigo for iOS (iPhone, iPad, iPod Touch)'] = 'Piwigo para iOS (iPhone, iPad, iPod Touch)'; $lang['Piwigo publish plugin for Shotwell'] = 'Engadido de publicación Piwigo para Shotwell'; $lang['Piwigo publish plugin for digiKam'] = 'Engadido de publicación Piwigo para digiKam'; @@ -360,7 +362,7 @@ $lang['No results'] = 'Non hai resultados'; $lang['No user to send notifications by mail.'] = 'Non hai usuario para ser notificado por correo.'; $lang['No photo in this album'] = 'Non hai fotos neste álbum'; $lang['No photo selected, %d photos in current set'] = 'Non hai fotos seleccionadas, hai %d fotos no actual conxunto'; -$lang['No photo selected, no action possible.'] = 'Non hai fotos seleccionadas, non hai acción posible.'; +$lang['No photos selected, no actions possible.'] = 'Non hai fotos seleccionadas, non hai acción posible.'; $lang['No mail to send.'] = 'Non hai ningún correo para ser enviado.'; $lang['No members to manage'] = 'Non hai ningún membro para ser xestionado'; $lang['No order field selected'] = 'Non hai seleccionado ningún campo a ordenar'; @@ -368,7 +370,7 @@ $lang['No photo can be deleted'] = 'Non pode ser borrada ningunha foto'; $lang['No photo in the current set.'] = 'Non hai ningunha foto no actual conxunto.'; $lang['New photos were added'] = 'Foron engadidas novas fotos'; $lang['No file was uploaded'] = 'Non se enviou ningún ficheiro'; -$lang['No group selected, no action possible.'] = 'Non hai ningún grupo seleccionado. Non hai acción posible.'; +$lang['No groups selected, no actions possible.'] = 'Non hai ningún grupo seleccionado. Non hai acción posible.'; $lang['No group is permitted to see this private album'] = 'Ningún grupo ten permiso para ver este álbum privado'; $lang['New photos added'] = 'Novas fotos engadidas'; $lang['Move to album'] = 'Mover ó álbum'; @@ -923,7 +925,7 @@ $lang['All %d users are selected'] = 'Seleccionados %d usuarios (todos)'; $lang['No matching user found'] = 'Non se atopou ningún usuario que coincida'; $lang['No user selected of %d users'] = 'Non está seleccinado nugún dos %d usuarios'; $lang['Showing %s to %s of %s users'] = 'Amosando de %s a %s de %s usuarios'; -$lang['No user selected, no action possible.'] = 'Sen usuario seleccionado non hai acción posible.'; +$lang['No users selected, no actions possible.'] = 'Sen usuario seleccionado non hai acción posible.'; $lang['Resize after upload disabled due to the use of GD as graphic library'] = 'Mudar tamaño despois de enviar está desactivado debido ó uso da biblioteca gráfica GD.'; $lang['Show %s users'] = 'Amosar %s usuarios'; $lang['Last visit on %s, %s.'] = 'Última visita o %s, %s.'; @@ -966,4 +968,4 @@ $lang['No recipient selected'] = 'Non hai ningún destinatario seleccionado'; $lang['No user is permitted to see this private album'] = 'O usuario non ten permitido ver este álbum privado'; $lang['Orphans'] = 'Orfos'; $lang['Recipients'] = 'Destinatarios'; -$lang['Y Repeat'] = 'Repetir Y'; \ No newline at end of file +$lang['Y Repeat'] = 'Repetir Y'; diff --git a/language/he_IL/admin.lang.php b/language/he_IL/admin.lang.php index 177121e32..0452e70cd 100644 --- a/language/he_IL/admin.lang.php +++ b/language/he_IL/admin.lang.php @@ -663,7 +663,7 @@ $lang['Refresh photo set'] = '×¨×¢× ×Ÿ ×ת סט ×”×ª×ž×•× ×•×ª'; $lang['The whole page'] = 'העמוד המל×'; $lang['The whole set'] = 'הסט המל×'; $lang['No photo in the current set.'] = '×ין ×ª×ž×•× ×•×ª בסט ×”× ×•×›×—×™.'; -$lang['No photo selected, no action possible.'] = '××£ ×ª×ž×•× ×” ×œ× × ×‘×—×¨×”, ×ין פעולות ×פשריות.'; +$lang['No photos selected, no actions possible.'] = '××£ ×ª×ž×•× ×” ×œ× × ×‘×—×¨×”, ×ין פעולות ×פשריות.'; $lang['Choose an action'] = 'בחר פעולה'; $lang['remove author'] = 'הסר יוצר'; $lang['Type here the author name'] = 'כתוב ×›×ן ×ת ×©× ×”×™×•×¦×¨'; @@ -795,6 +795,7 @@ $lang['Apply watermark if width is bigger than'] = 'הוסף חותמת מי×(w $lang['Automatic sort order'] = 'מיון ×וטומטי'; $lang['Available on'] = 'זמין על'; $lang['%d physicals'] = '%d פיזי'; +$lang['Piwigo for Android'] = 'piwigo ל×× ×“×¨×•×יד'; $lang['Piwigo for iOS (iPhone, iPad, iPod Touch)'] = 'piwigo לios (×יפון, ×יפד, ×יפוד ו×יפוד ט×צ)'; $lang['Posted %s on %s'] = '×¤×•×¨×¡× %s ב %s'; $lang['Resize after upload'] = '×©× ×” גודל ×חרי ×˜×¢×™× ×”'; @@ -894,7 +895,7 @@ $lang['Rename'] = '×©× ×” ש×'; $lang['Duplicate'] = 'שכפל'; $lang['Manage the members'] = '× ×”×œ ×ת החברי×'; $lang['Merge selected groups'] = 'מזג ×ת הקבוצות ×©× ×‘×—×¨×•'; -$lang['No group selected, no action possible.'] = '××£ קבוצה ×œ× × ×‘×—×¨×”, ×ין פעולות ×פשריות.'; +$lang['No groups selected, no actions possible.'] = '××£ קבוצה ×œ× × ×‘×—×¨×”, ×ין פעולות ×פשריות.'; $lang['No members to manage'] = '×ין ×—×‘×¨×™× ×œ× ×”×œ'; $lang['Notify administrators when a comment is'] = 'עדכן ××“×ž×™× ×™× ×›×שר תגובה ×”×™×'; $lang['Piwigo cannot retrieve upgrade file from server'] = 'Piwigo ×œ× ×™×›×•×œ×” לטעון ×ת קבצי השדרוג מהשרת'; @@ -930,7 +931,8 @@ $lang['Open user details'] = 'פתח פרטי משתמש'; $lang['Numeric identifier : %d'] = 'מזהה מספרי: %d'; $lang['On your Linux, simply install Shotwell with your package manager and the activate Piwigo publishing option.'] = 'במערכת ×”×œ×™× ×•×§×¡ שלך, פשוט התקן Shotwell ×¢× ×ž× ×”×œ החבילות ו××– ×ת הפעל ×ת ×פשרות ×”×¤×¨×¡×•× ×©×œ Piwigo.'; $lang['No user selected of %d users'] = '×œ× × ×‘×—×¨ משתמש מתוך %d משתמשי×'; -$lang['No user selected, no action possible.'] = '×œ× × ×‘×—×¨ משתמש, ×ין ×פשרות לבצע ××£ פעולה.'; +$lang['No users selected, no actions possible.'] = '×œ× × ×‘×—×¨ משתמש, ×ין ×פשרות לבצע ××£ פעולה.'; +$lang['Piwigo for Android application empowers you to connect your Android phone or table to your Piwigo gallery, create some albums and upload several photos at once.'] = ' ×פליקציית Piwigo עבור ×× ×“×¨×•×יד מ×פשרת לך להתחבר מטלפון ×”×× ×“×¨×•×יד ×ו הט×בלט שלך לגלריית Piwigo, ליצור ××œ×‘×•×ž×™× ×•×œ×”×¢×œ×•×ª מספר ×ª×ž×•× ×•×ª בו ×–×ž× ×™×ª '; $lang['Last visit on %s, %s.'] = 'ביקור ×חרון ב- %s, %s.'; $lang['Mail theme'] = 'ערכת × ×•×©× ×“×•×ר'; $lang['No matching user found'] = '×œ× × ×ž×¦× ×ž×©×ª×ž×© מת××™×'; @@ -994,7 +996,7 @@ $lang['First photo added'] = '×ª×ž×•× ×” ר××©×•× ×” × ×•×¡×¤×”'; $lang['For security reason, authentication keys do not work for administrators.'] = 'מפתחות ×ימות ×œ× ×¢×•×‘×“×™× ×¢×‘×•×¨ ××“×ž×™× ×™× ×ž×¡×™×‘×•×ª ×בטחה.'; $lang['It only takes a few clicks.'] = '×–×” רק מצריך מספר לחיצות.'; $lang['No filter on album. Select one or type to search'] = '×ין ×¡×™× ×•×Ÿ על ×”×לבו×. בחר ×חד ×ו הקלד לחיפוש'; -$lang['No tag selected, no action possible.'] = '×œ× × ×‘×—×¨×” תגית, ×œ× × ×™×ª×Ÿ לבצע ×©×•× ×¤×¢×•×œ×”.'; +$lang['No tags selected, no actions possible.'] = '×œ× × ×‘×—×¨×” תגית, ×œ× × ×™×ª×Ÿ לבצע ×©×•× ×¤×¢×•×œ×”.'; $lang['No user is permitted to see this private album'] = 'ל××£ משתמש ×ין הרש××” לצפות ב××œ×‘×•× ×¤×¨×˜×™ ×–×”'; $lang['Orphans'] = 'יתומי×'; $lang['Piwigo %s is available, please update'] = 'פיוויגו %s זמין, ×× × ×¢×“×›×Ÿ'; @@ -1012,4 +1014,4 @@ $lang['Visit'] = 'ביקור'; $lang['Welcome!'] = '×‘×¨×•×›×™× ×”×‘××™×!'; $lang['With no checksum'] = '×œ×œ× ×¦\'קס××'; $lang['checksums to add'] = 'צ\'קס××ž×™× ×œ×”×•×¡×¤×”'; -$lang['or'] = '×ו'; \ No newline at end of file +$lang['or'] = '×ו'; diff --git a/language/hr_HR/admin.lang.php b/language/hr_HR/admin.lang.php index 9947135c3..0f9410906 100644 --- a/language/hr_HR/admin.lang.php +++ b/language/hr_HR/admin.lang.php @@ -653,7 +653,7 @@ $lang['new'] = 'novo'; $lang['No file was uploaded'] = 'Datoteka nije poslana'; $lang['No photo in the current set.'] = 'U trenutnoj grupi nema fotografija.'; $lang['No photo selected, %d photos in current set'] = 'Fotografije nisu oznaÄene, %d fotografija u trenutnoj grupi'; -$lang['No photo selected, no action possible.'] = 'Nijedna fotografija nije oznaÄena.'; +$lang['No photos selected, no actions possible.'] = 'Nijedna fotografija nije oznaÄena.'; $lang['No results'] = 'Nema rezultata'; $lang['on the %d selected photos'] = 'na %d oznaÄenih fotografija'; $lang['Orphan tags deleted'] = 'NekoriÅ¡tene oznake su izbrisane'; @@ -739,6 +739,7 @@ $lang['%d years'] = '%d godina'; $lang['%s ago'] = '%s prije'; $lang['%s in the future'] = '%s u budućnosti'; $lang['%u users have automatic permission because they belong to a granted group.'] = '%u korisnici su u grupi koja ima pristup'; +$lang['Piwigo for Android application empowers you to connect your Android phone or table to your Piwigo gallery, create some albums and upload several photos at once.'] = 'Piwigo za Android je aplikacija koja vam omogućava spajanje vaÅ¡eg tableta ili mobilnog telefona na vaÅ¡u Piwigo galeriju. Kreirajte albume i postavite fotografije.'; $lang['Piwigo for iOS application empowers you to connect to your Piwigo gallery from your iPhone, iPad or iPod Touch, create some albums and upload several photos at once.'] = 'Piwigo za iOS je aplikacija koja vam omogućava spajanje vaÅ¡eg iPhone-a, iPada-a ili iPod Touch-a na vaÅ¡u Piwigo galeriju. Kreirajte albume i postavite fotografije.'; $lang['show details'] = 'prikaži pojedinosti'; $lang['top left corner'] = 'gornji lijevi ugao'; @@ -752,6 +753,7 @@ $lang['Watermark'] = 'Vodeni žig'; $lang['Week starts on'] = 'Tjedan poÄinje od'; $lang['Width'] = 'Å irina'; $lang['Select an album'] = 'Odaberi album'; +$lang['Piwigo for Android'] = 'Piwigo za Android'; $lang['Piwigo for iOS (iPhone, iPad, iPod Touch)'] = 'Piwigo za iOS (iPhone, iPad, iPod Touch)'; $lang['Portrait'] = 'Portret'; $lang['Ratio'] = 'Omjer'; diff --git a/language/hu_HU/admin.lang.php b/language/hu_HU/admin.lang.php index 3fca0e0cc..269fae010 100644 --- a/language/hu_HU/admin.lang.php +++ b/language/hu_HU/admin.lang.php @@ -664,7 +664,7 @@ $lang['Refresh photo set'] = 'Képek frissÃtése'; $lang['The whole page'] = 'Összes kép az oldalon'; $lang['The whole set'] = 'A teljes képkészlet'; $lang['No photo in the current set.'] = 'Nem található a feltételnek megfelelÅ‘ kép.'; -$lang['No photo selected, no action possible.'] = 'Nincs kép kiválasztva, nem lehet műveletet végezni.'; +$lang['No photos selected, no actions possible.'] = 'Nincs kép kiválasztva, nem lehet műveletet végezni.'; $lang['Choose an action'] = 'Művelet kiválasztása'; $lang['remove author'] = 'szerzÅ‘ törlése'; $lang['Type here the author name'] = 'Ãrja be a szerzÅ‘ nevét'; @@ -836,6 +836,7 @@ $lang['X Repeat'] = 'X ismétlÅ‘dés'; $lang['Y Position'] = 'Y pozÃció'; $lang['Available on'] = 'ElérhetÅ‘'; $lang['add a new watermark'] = 'új vÃzjel hozzáadása'; +$lang['Piwigo for Android application empowers you to connect your Android phone or table to your Piwigo gallery, create some albums and upload several photos at once.'] = 'A Piwigo for Android alkalmazás segÃtségével csatlakozhat Piwigo galériájához telefonjával vagy táblagépével, létrehozhat új albumokat, feltölthet képeket (egyszerre akár többet is) képgalériájába.'; $lang['Piwigo for iOS application empowers you to connect to your Piwigo gallery from your iPhone, iPad or iPod Touch, create some albums and upload several photos at once.'] = 'A Piwigo for iOS alkalmazás segÃtségével csatlakozhat Piwigo galériájához iPhone, iPad vagy iPod Touch eszközével, létrehozhat új albumokat, feltölthet képeket (egyszerre akár többet is) képgalériájába.'; $lang['Adobe Photoshop Lightroom is a photography software designed to manage large quantities of digital images and doing post production work.'] = 'Az Adobe Photoshop Lightroom egy képkezelÅ‘ program, melyet nagy mennyiségű digitális kép utómunkálataihoz és kezeléséhez terveztek.'; $lang['Features include gallery browsing, album creation and photo upload.'] = 'JellemzÅ‘i: galéria böngészés, album létrehozás, képek feltöltése.'; @@ -844,6 +845,7 @@ $lang['No group is permitted to see this private album'] = 'Nincs engedélyezett $lang['On your Linux, simply install Shotwell with your package manager and the activate Piwigo publishing option.'] = 'Egyszerűen telepÃtheti a Linux csomagkezelÅ‘je segÃtségével, majd könnyedén beállÃthatja Piwigo galériájának eléréséhez.'; $lang['Piwigo Publish plugin for Lightroom'] = 'Piwigo Lightroom feltöltÅ‘'; $lang['Piwigo export plugin for iPhoto'] = 'Piwigo iPhoto feltöltÅ‘'; +$lang['Piwigo for Android'] = 'Piwigo Androidon'; $lang['Piwigo for iOS (iPhone, iPad, iPod Touch)'] = 'Piwigo iOS-en (iPhone, iPad, iPod Touch)'; $lang['Piwigo publish plugin for Shotwell'] = 'Piwigo Shotwell feltöltÅ‘'; $lang['Piwigo publish plugin for digiKam'] = 'Piwigo digiKam feltöltÅ‘'; @@ -916,7 +918,7 @@ $lang['between %d and %d pixels'] = '%d és %d pixel között'; $lang['Duplicate'] = 'Másolat'; $lang['Manage the members'] = 'Tagok kezelése'; $lang['Merge selected groups'] = 'Kiválasztott csoportok egyesÃtése'; -$lang['No group selected, no action possible.'] = 'Nincs kiválasztott csoport, művelet nem lehetséges.'; +$lang['No groups selected, no actions possible.'] = 'Nincs kiválasztott csoport, művelet nem lehetséges.'; $lang['No members to manage'] = 'Nem tagok kezelése'; $lang['Please select at least two groups'] = 'Jelöljön ki legalább két csoport'; $lang['Rename'] = 'Ãtnevezés'; @@ -938,7 +940,7 @@ $lang['Change password'] = 'Jelszó módosÃtása'; $lang['Change username'] = 'Felhasználónév módosÃtása'; $lang['Loading...'] = 'Töltés...'; $lang['No matching user found'] = 'Felhasználó nem található'; -$lang['No user selected, no action possible.'] = 'Választott felhasználó nem található, művelet nem lehetséges'; +$lang['No users selected, no actions possible.'] = 'Választott felhasználó nem található, művelet nem lehetséges'; $lang['Password updated'] = 'Jelszó frissÃtve'; $lang['Update user'] = 'Felhasználó frissÃtése'; $lang['User %s added'] = '%s felhasználó hozzáadva'; @@ -994,7 +996,7 @@ $lang['Display form'] = 'kérdÅ‘Ãv megjelenÃtése'; $lang['First photo added'] = 'Az elsÅ‘ fotó hozzáadva'; $lang['It only takes a few clicks.'] = 'Csak néhány kattintás.'; $lang['No filter on album. Select one or type to search'] = 'Nincs az albumon szűrÅ‘. Válassz egyet, vagy Ãrj be valamit, a kereséshez'; -$lang['No tag selected, no action possible.'] = 'Nincs cimke választva, nincs mit tenni.'; +$lang['No tags selected, no actions possible.'] = 'Nincs cimke választva, nincs mit tenni.'; $lang['Piwigo %s is available, please update'] = 'Piwigo %s már elérhetÅ‘, kérlek, frissÃts'; $lang['Running on an up-to-date Piwigo is important for security.'] = 'A legfrisebb Piwigo-t futtatni biztonsági okok miatt fontos.'; $lang['Select tags'] = 'Válassz cimkéket'; @@ -1012,4 +1014,4 @@ $lang['Deletion in progress'] = 'A törlés folyamatban van'; $lang['Display album date period'] = 'Mutasd minden albumnál a hozzá tartozó dátumokat, pl. "2018 július 12-tÅ‘l 15-ig"'; $lang['Display category date'] = 'Mutasd a kategória dátumát'; $lang['Piwigo requires an album to add photos.'] = 'Piwigo-nak szükséges van egy albumra, hogy képeket lehessen hozzáadni.'; -$lang['Some checksums are missing.'] = 'Néhány ellenÅ‘rzÅ‘szám hiányzik.'; \ No newline at end of file +$lang['Some checksums are missing.'] = 'Néhány ellenÅ‘rzÅ‘szám hiányzik.'; diff --git a/language/it_IT/admin.lang.php b/language/it_IT/admin.lang.php index f1641270c..56c0cf11f 100644 --- a/language/it_IT/admin.lang.php +++ b/language/it_IT/admin.lang.php @@ -673,7 +673,7 @@ $lang['Refresh photo set'] = 'Aggiornare il set di foto'; $lang['The whole page'] = 'Tutta la pagina'; $lang['The whole set'] = 'L\'intero set'; $lang['No photo in the current set.'] = 'Nessuna foto nel set corrente.'; -$lang['No photo selected, no action possible.'] = 'Nessuna foto selezionata, nessuna azione possibile.'; +$lang['No photos selected, no actions possible.'] = 'Nessuna foto selezionata, nessuna azione possibile.'; $lang['Choose an action'] = 'Scegliere un\'azione'; $lang['remove author'] = 'cancellare l\'autore'; $lang['Type here the author name'] = 'Inserire qui il nome dell\'autore'; @@ -821,6 +821,8 @@ $lang['Applications'] = 'Applicazioni'; $lang['Available on'] = 'Disponibile su'; $lang['Piwigo for iOS (iPhone, iPad, iPod Touch)'] = 'Piwigo per iOS (iPhone, iPad, iPod Touch)'; $lang['Piwigo for iOS application empowers you to connect to your Piwigo gallery from your iPhone, iPad or iPod Touch, create some albums and upload several photos at once.'] = 'L\'applicazione Piwigo per iOS permette di collegarti alla tua galleria Piwigo dal tuo iPhone, iPad o iPod Touch, creando degli album e caricando le immagini.'; +$lang['Piwigo for Android'] = 'Piwigo per Android'; +$lang['Piwigo for Android application empowers you to connect your Android phone or table to your Piwigo gallery, create some albums and upload several photos at once.'] = 'L\'applicazione Piwigo per Android permette di collegarti alla tua galleria di Piwigo dal tuo cellulare o tablet Android, creando degli album e caricando le immagini.'; $lang['Piwigo Publish plugin for Lightroom'] = 'Plugin Piwigo per Lightroom'; $lang['Adobe Photoshop Lightroom is a photography software designed to manage large quantities of digital images and doing post production work.'] = 'Adobe Photoshop Lightroom è un software fotografico specializzato per gestire grandi quantità di immagini ed eseguirne la post-produzione.'; $lang['The Piwigo publish Plug-in allows you to export and synchronize photos from Lightroom directly to your Piwigo photo gallery.'] = 'Il plugin di Piwigo permette di esportare e sincronizzare le immagini da Lightroom direttamente alla tua galleria di Piwigo.'; @@ -917,7 +919,7 @@ $lang['between %d and %d pixels'] = 'tra %d e %d pixels'; $lang['between %.2f and %.2f'] = 'tra %.2f e %.2f'; $lang['Manage the members'] = 'Gestire membri'; $lang['Type here the name of the new group'] = 'Digita quì il nome del nuovo gruppo'; -$lang['No group selected, no action possible.'] = 'Nessun gruppo selezionato, nessuna azione possibile.'; +$lang['No groups selected, no actions possible.'] = 'Nessun gruppo selezionato, nessuna azione possibile.'; $lang['Please select at least two groups'] = 'Seleziona almeno due gruppi'; $lang['Duplicate'] = 'Duplicare'; $lang['Merge selected groups'] = 'Unire i gruppi selezionati'; @@ -935,7 +937,7 @@ $lang['Show %s users'] = 'Mostra %s utenti'; $lang['No matching user found'] = 'Nessun utente corrispondente trovato'; $lang['Showing %s to %s of %s users'] = 'Mostra %s a %s di %s utenti'; $lang['(filtered from %s total users)'] = '(filtrato da %s utenti totali)'; -$lang['No user selected, no action possible.'] = 'Nessun utente selezionato, nessuna azione è possibile.'; +$lang['No users selected, no actions possible.'] = 'Nessun utente selezionato, nessuna azione è possibile.'; $lang['%d of %d users selected'] = '%d di %d utenti selezionati'; $lang['No user selected of %d users'] = 'Nessun utente selezionato di %d utenti'; $lang['All %d users are selected'] = 'Tutti %d utenti sono selezionati'; @@ -993,7 +995,7 @@ $lang['Delete album "%s".'] = 'Cancellare l\'album "%s"'; $lang['Display form'] = 'Visualizzare il modulo'; $lang['First photo added'] = 'Prima foto'; $lang['No filter on album. Select one or type to search'] = 'Nessun filtro. Toccare qui per cercare un album.'; -$lang['No tag selected, no action possible.'] = 'Nessun tag selezionato, nessuna azione possibile.'; +$lang['No tags selected, no actions possible.'] = 'Nessun tag selezionato, nessuna azione possibile.'; $lang['Confirm deletion'] = 'Confermare l\'eliminazione'; $lang['(determined from photos)'] = '(Determinata dalle foto)'; $lang['Some checksums are missing.'] = 'Checkums mancanti'; @@ -1010,4 +1012,4 @@ $lang['Create a first album'] = 'Crea un primo album'; $lang['Deletion in progress'] = 'Cancellazione in corso'; $lang['Display album date period'] = 'Visualizza la data del periodo associato a ciascun album, ad es. "dal 12 al 15 luglio 2018"'; $lang['Display category date'] = 'Visualizza la data della categoria'; -$lang['Piwigo requires an album to add photos.'] = 'Piwigo ha bisogno di un album per aggiungere delle foto.'; \ No newline at end of file +$lang['Piwigo requires an album to add photos.'] = 'Piwigo ha bisogno di un album per aggiungere delle foto.'; diff --git a/language/ja_JP/admin.lang.php b/language/ja_JP/admin.lang.php index 0d9568e0c..a3f7b3ee7 100644 --- a/language/ja_JP/admin.lang.php +++ b/language/ja_JP/admin.lang.php @@ -791,6 +791,7 @@ $lang['Multiple Size'] = '複数ã®ã‚µã‚¤ã‚º'; $lang['Piwigo Publish plugin for Lightroom'] = 'Lightroom 用 Piwigo エクスãƒãƒ¼ãƒˆãƒ—ラグイン'; $lang['Piwigo export plugin for Aperture'] = 'Aperture 用 Piwigo エクスãƒãƒ¼ãƒˆãƒ—ラグイン'; $lang['Piwigo export plugin for iPhoto'] = 'iPhoto 用 Piwigo エクスãƒãƒ¼ãƒˆãƒ—ラグイン'; +$lang['Piwigo for Android'] = 'Android用Piwigo'; $lang['Piwigo for iOS (iPhone, iPad, iPod Touch)'] = 'iOS用Piwigo(iPhone, iPad, iPod Touch)'; $lang['Piwigo publish plugin for Shotwell'] = 'Shotwell 用 Piwigo 公開プラグイン'; $lang['Piwigo publish plugin for digiKam'] = 'digiKam 用 Piwigo 公開プラグイン'; @@ -843,11 +844,11 @@ $lang['simple visitors'] = 'å˜ãƒ¦ãƒ¼ã‚¶ãƒ¼'; $lang['Obsolete Plugins'] = 'サãƒãƒ¼ãƒˆã•れãªã„プラグイン'; $lang['Opacity'] = 'ä¸é€æ˜Žåº¦'; $lang['No results'] = 'çµæžœãªã—'; -$lang['No photo selected, no action possible.'] = '写真ãŒé¸æŠžã•れã¦ã„ãªã„ã®ã§ã€ä½•も実行ã§ãã¾ã›ã‚“。'; +$lang['No photos selected, no actions possible.'] = '写真ãŒé¸æŠžã•れã¦ã„ãªã„ã®ã§ã€ãªã«ã‚‚ã§ãã¾ã›ã‚“。'; $lang['Not cropped correctly?'] = 'æ£ã—ãトリミングã§ãã¾ã›ã‚“ã§ã—ãŸã‹?'; $lang['Notify administrators when a comment is'] = 'コメントã•れãŸéš›ã«ç®¡ç†è€…ã¸çŸ¥ã‚‰ã›ã‚‹'; $lang['Name of the duplicate'] = 'é‡è¤‡ã®åå‰'; -$lang['No group selected, no action possible.'] = 'グループãŒé¸æŠžã•れã¦ã„ãªã„ã®ã§ã€ä½•も実行ã§ãã¾ã›ã‚“。'; +$lang['No groups selected, no actions possible.'] = 'グループãŒé¸æŠžã•れã¦ã„ãªã„ã®ã§ã€ä½•ã‚‚ã§ãã¾ã›ã‚“。'; $lang['No members to manage'] = '管ç†ã™ã¹ãメンãƒãƒ¼ãŒã„ã¾ã›ã‚“'; $lang['No order field selected'] = 'é †åºãƒ•ィールドãŒé¸æŠžã•れã¦ã„ã¾ã›ã‚“'; $lang['Merge selected groups'] = 'é¸æŠžã•れãŸã‚°ãƒ«ãƒ¼ãƒ—ã‚’çµ±åˆã™ã‚‹'; @@ -886,6 +887,7 @@ $lang['All %d users are selected'] = 'å…¨ã¦ã® %d ユーザãŒé¸æŠžã•れ㾠$lang['Piwigo for iOS application empowers you to connect to your Piwigo gallery from your iPhone, iPad or iPod Touch, create some albums and upload several photos at once.'] = 'Piwigo for iOSアプリã¯ã€iPhoneã€iPadã€iPod Touchã‹ã‚‰ã€Piwigoã‚®ãƒ£ãƒ©ãƒªãƒ¼ã«æŽ¥ç¶šã—ã€ã‚¢ãƒ«ãƒãƒ を作æˆã—ãŸã‚Šã€è¤‡æ•°ã®å†™çœŸã‚’一括ã§ã‚¢ãƒƒãƒ—ãƒãƒ¼ãƒ‰ã—ãŸã‚Šã§ãã¾ã™ã€‚'; $lang['Activate it now'] = '今ã™ã有効ã«ã™ã‚‹'; $lang['(filtered from %s total users)'] = '(%s ユーザã‹ã‚‰ã€ãƒ•ィルタリングã•れã¾ã—ãŸ)'; +$lang['Piwigo for Android application empowers you to connect your Android phone or table to your Piwigo gallery, create some albums and upload several photos at once.'] = 'Piwigo for Androidアプリã¯ã€Androidスマートフォンやタブレットã‹ã‚‰ã€Piwigoã‚®ãƒ£ãƒ©ãƒªãƒ¼ã«æŽ¥ç¶šã—ã€ã‚¢ãƒ«ãƒãƒ を作æˆã—ãŸã‚Šã€è¤‡æ•°ã®å†™çœŸã‚’一括ã§ã‚¢ãƒƒãƒ—ãƒãƒ¼ãƒ‰ã—ãŸã‚Šã§ãã¾ã™ã€‚'; $lang['%d of %d users selected'] = '%d 人(%d人ä¸)ã®ãƒ¦ãƒ¼ã‚¶ãŒé¸æŠžã•れã¾ã—ãŸã€‚'; $lang['You are using the Browser uploader. Try the Flash uploader instead.'] = 'ç¾åœ¨ã€Browser アップãƒãƒ¼ãƒ€ã‚’使ã£ã¦ã„ã¾ã™ã€‚代ã‚りã«ã€ Flash アップãƒãƒ¼ãƒ€ã‚’ãŠè©¦ã—下ã•ã„。'; $lang['You are using the Flash uploader. Problems? Try the Browser uploader instead.'] = 'Flash アップãƒãƒ¼ãƒ€ã§å•題ãŒãŠãã¾ã—ãŸã‹? 代ã‚り㫠Browser アップãƒãƒ¼ãƒ€ã‚’ãŠè©¦ã—下ã•ã„。'; @@ -959,7 +961,7 @@ $lang['Recipients'] = 'å—信者'; $lang['No recipient selected'] = 'å—信者ãŒé¸ã°ã‚Œã¦ã„ã¾ã›ã‚“'; $lang['No user is permitted to see this private album'] = 'ã“ã®ãƒ—ライベートアルãƒãƒ を見るã“ã¨ã®ã§ãるユーザーã¯ã„ã¾ã›ã‚“'; $lang['No user selected of %d users'] = '%dã®ãƒ¦ãƒ¼ã‚¶ãƒ¼ã‹ã‚‰ãƒ¦ãƒ¼ã‚¶ãƒ¼ãŒé¸ã°ã‚Œã¦ã„ã¾ã›ã‚“'; -$lang['No user selected, no action possible.'] = 'ユーザーãŒé¸æŠžã•れã¦ã„ãªã„ã®ã§ã€æ“作ã§ãã¾ã›ã‚“'; +$lang['No users selected, no actions possible.'] = 'ユーザーãŒé¸æŠžã•れã¦ã„ãªã„ã®ã§ã€æ“作ã§ãã¾ã›ã‚“'; $lang['On your Linux, simply install Shotwell with your package manager and the activate Piwigo publishing option.'] = 'Linuxã§ã¯ã€Shotwellをパッケージ管ç†ã‚½ãƒ•トウェアã‹ã‚‰ã‚¤ãƒ³ã‚¹ãƒˆãƒ¼ãƒ«ã™ã‚‹ã“ã¨ã§ã€Piwigoã«å…¬é–‹ã™ã‚‹ã‚ªãƒ—ションを使ã†ã“ã¨ãŒã§ãã¾ã™'; $lang['No and unlock sub-albums'] = 'ã„ã„ãˆã€‚サブアルãƒãƒ ã®ãƒãƒƒã‚¯ã‚’解除ã—ã¾ã™'; $lang['Last visit on %s, %s.'] = '最新ã®è¨ªå•æ—¥: %s, %s'; @@ -1009,4 +1011,4 @@ $lang['Visit'] = '訪å•ã™ã‚‹'; $lang['Welcome!'] = 'よã†ã“ãï¼'; $lang['With no checksum'] = 'ãƒã‚§ãƒƒã‚¯ã‚µãƒ ãªã—'; $lang['checksums to add'] = 'è¿½åŠ ã™ã¹ããƒã‚§ãƒƒã‚¯ã‚µãƒ '; -$lang['or'] = 'ã¾ãŸã¯'; \ No newline at end of file +$lang['or'] = 'ã¾ãŸã¯'; diff --git a/language/ja_JP/common.lang.php b/language/ja_JP/common.lang.php index 9b76456d6..9da63926a 100644 --- a/language/ja_JP/common.lang.php +++ b/language/ja_JP/common.lang.php @@ -412,4 +412,4 @@ $lang['Photo description'] = '写真ã®èª¬æ˜Ž'; $lang['Photo title'] = '写真ã®ã‚¿ã‚¤ãƒˆãƒ«'; $lang['Your authentication key is no longer valid.'] = 'ã‚ãªãŸã®èªè¨¼ã‚ãƒ¼ã¯æ—¢ã«ç„¡åйã«ãªã£ã¦ã„ã¾ã™ã€‚'; $lang['generate random password'] = 'ランダムãªãƒ‘スワードを生æˆã—ã¾ã™'; -$lang['Invalid username or password!'] = 'ユーザåã‹ãƒ‘スワードãŒé•ã„ã¾ã™!'; \ No newline at end of file +$lang['Invalid username or password!'] = 'ユーザåã‹ãƒ‘スワードãŒé•ã„ã¾ã™!'; diff --git a/language/ka_GE/admin.lang.php b/language/ka_GE/admin.lang.php index 5dc96aae2..50b31237a 100644 --- a/language/ka_GE/admin.lang.php +++ b/language/ka_GE/admin.lang.php @@ -684,7 +684,7 @@ $lang['Refresh photo set'] = 'გáƒáƒœáƒ•áƒáƒáƒ®áƒšáƒáƒ— ფáƒáƒ¢áƒáƒ”ბ $lang['The whole page'] = 'მთელი გვერდი'; $lang['The whole set'] = 'მთელი რიგი'; $lang['No photo in the current set.'] = 'áƒáƒ áƒáƒ ის სურáƒáƒ—ი მიმდინáƒáƒ ე ნáƒáƒ™áƒ ებში.'; -$lang['No photo selected, no action possible.'] = 'áƒáƒ áƒáƒ ის áƒáƒ ჩეული áƒáƒ ც ერთი ფáƒáƒ¢áƒ, მáƒáƒ¥áƒ›áƒ”დებრშეუძლებელიáƒ.'; +$lang['No photos selected, no actions possible.'] = 'áƒáƒ áƒáƒ ის áƒáƒ ჩეული áƒáƒ ც ერთი ფáƒáƒ¢áƒ, მáƒáƒ¥áƒ›áƒ”დებრშეუძლებელიáƒ.'; $lang['Choose an action'] = 'áƒáƒ˜áƒ ჩიეთ მáƒáƒ¥áƒ›áƒ”დებáƒ'; $lang['remove author'] = 'წáƒáƒ•შáƒáƒšáƒáƒ— áƒáƒ•ტáƒáƒ ი'; $lang['Type here the author name'] = 'ჩáƒáƒ¬áƒ”რეთ áƒáƒ¥ áƒáƒ•ტáƒáƒ ის სáƒáƒ®áƒ”ლი'; diff --git a/language/km_KH/admin.lang.php b/language/km_KH/admin.lang.php index 8fefedeee..94c8fe0a4 100644 --- a/language/km_KH/admin.lang.php +++ b/language/km_KH/admin.lang.php @@ -175,6 +175,7 @@ $lang['Apply action'] = 'ដំណើរ​ការ​សកម្មភាព $lang['Apply selected corrections'] = 'ដំណើរ​ការ​កំណែរ​ប្រែ​ដែល​បាន​ជ្រើស​រើស​'; $lang['Apply to sub-albums'] = 'ដំណើរ​​ការ​ទៅ​កាន់​សៀវ​ភៅ​រូប​ážážâ€‹ážšáž„​'; +$lang['Piwigo for Android application empowers you to connect your Android phone or table to your Piwigo gallery, create some albums and upload several photos at once.'] = 'Piwigo សំរាប់​ Android ធ្វើ​ឲ្យលោក​អ្នក​អាច​ភ្ជាប់​ទូរសáŸáž–្វ​ Android របស់​អ្នក ឬ​ក០Table ទៅកាន់​ Piwigo gallery របស់​អ្នក​​ ដែលលោក​​អ្នក​អាច​បង្កើážâ€‹ážŸáŸ€ážœáž—ៅ​រូប​ážáž ហើយ​ ដាក់បញ្ចូល​នូវ​រូប​ážážâ€‹áž‡áž¶â€‹áž…្រើន​ក្នុង​ពáŸáž›â€‹ážáŸ‚​មួយ។'; $lang['Piwigo for iOS application empowers you to connect to your Piwigo gallery from your iPhone, iPad or iPod Touch, create some albums and upload several photos at once.'] = 'Piwigo សំរាប់​ iOS ធ្វើ​ឲ្យលោក​​អ្នក​អាច​ភ្ជាប់ទៅកាន់​ Piwigo gallery របស់​អ្នក​ពី​ទូរសáŸáž–្វ iPhone, iPad ឬ iPod Touch របស់​អ្នក ដែលលោក​អ្នក​អាច​បង្កើážâ€‹ážŸáŸ€ážœáž—ៅ​រូប​ážáž ហើយ​ ដាក់បញ្ចូល​នូវ​រូប​ážážâ€‹áž‡áž¶â€‹áž…្រើន​ក្នុង​ពáŸáž›â€‹ážáŸ‚​មួយ។'; $lang['%d day'] = '%d ážáŸ’ងៃ'; $lang['%d days'] = '%d ážáŸ’ងៃ'; diff --git a/language/ko_KR/admin.lang.php b/language/ko_KR/admin.lang.php index dc78ce781..19f409c77 100644 --- a/language/ko_KR/admin.lang.php +++ b/language/ko_KR/admin.lang.php @@ -75,7 +75,7 @@ $lang['Password is missing. Please enter the password.'] = 'ë¹„ë°€ë²ˆí˜¸ëž€ì´ $lang['Password updated'] = '비밀번호가 변경ë¨'; $lang['User "%s" created with "%s" like password'] = '"%s" 비밀번호를 사용하는 "%s" 사용ìžê°€ ìƒì„±ë¨'; $lang['No user selected of %d users'] = '%d ì‚¬ìš©ìž ì¤‘ ì„ íƒëœ 사용ìžê°€ ì—†ìŒ'; -$lang['No user selected, no action possible.'] = 'ì„ íƒëœ 사용ìžê°€ 없어서 사용 가능한 ë™ìž‘ì´ ì—†ìŠµë‹ˆë‹¤.'; +$lang['No users selected, no actions possible.'] = 'ì„ íƒëœ 사용ìžê°€ 없어서 사용 가능한 ë™ìž‘ì´ ì—†ìŠµë‹ˆë‹¤.'; $lang['%d members'] = '%d 구성ì›'; $lang['Members'] = '구성ì›'; $lang['No members to manage'] = 'ê´€ë¦¬í• êµ¬ì„±ì›ì´ 없습니다'; @@ -213,6 +213,8 @@ $lang['Piwigo export plugin for Aperture'] = 'Apertureìš© Piwigo ìµìФí¬íЏ $lang['Piwigo publish plugin for digiKam'] = 'dikiKamìš© Piwigo ë°°í¬ í”ŒëŸ¬ê·¸ì¸'; $lang['To export your photos from digiKam to Piwigo, simply install digiKam and the Kipi-plugins.'] = 'digiKamì—서 Piwigo로 ì‚¬ì§„ì„ ë‚´ë³´ë‚´ë ¤ë©´, digiKam ë° Kipi 플러그ì¸ì„ 설치하면 ë©ë‹ˆë‹¤.'; $lang['Piwigo for iOS application empowers you to connect to your Piwigo gallery from your iPhone, iPad or iPod Touch, create some albums and upload several photos at once.'] = 'iOSìš© Piwigo ì•±ì€ iPhone, iPad ë˜ëŠ” iPod Touchì—서 Piwigo ê°¤ëŸ¬ë¦¬ì— ì—°ê²°í•˜ê³ ì•¨ë²”ì„ ìƒì„±í•˜ê³ í•œë²ˆì— ì—¬ëŸ¬ ì‚¬ì§„ì„ ì—…ë¡œë“œ í• ìˆ˜ 있ë„ë¡ í•©ë‹ˆë‹¤.'; +$lang['Piwigo for Android application empowers you to connect your Android phone or table to your Piwigo gallery, create some albums and upload several photos at once.'] = '안드로ì´ë“œìš© Piwigo ì•±ì€ ì•ˆë“œë¡œì´ë“œ í°ê³¼ 태블릿ì—서 Piwigo ê°¤ëŸ¬ë¦¬ì— ì—°ê²°í•˜ê³ ì•¨ë²”ì„ ìƒì„±í•˜ê³ í•œë²ˆì— ì—¬ëŸ¬ ì‚¬ì§„ì„ ì—…ë¡œë“œ í• ìˆ˜ 있ë„ë¡ í•©ë‹ˆë‹¤.'; +$lang['Piwigo for Android'] = '안드로ì´ë“œìš© Piwigo'; $lang['Piwigo for iOS (iPhone, iPad, iPod Touch)'] = 'iOSìš© Piwigo (iPhone, iPad, iPod Touch)'; $lang['Piwigo Uploader'] = 'Piwigo 업로ë”'; $lang['Allowed file types: %s.'] = '가능한 íŒŒì¼ ì¢…ë¥˜: %s.'; @@ -357,7 +359,7 @@ $lang['Save visits in history for'] = 'ë°©ë¬¸ê¸°ë¡ ì €ìž¥: '; $lang['Week starts on'] = '한 ì£¼ì˜ ì‹œìž‘'; $lang['Miscellaneous'] = '기타'; $lang['simple visitors'] = '단순 방문ìž'; -$lang['No photo selected, no action possible.'] = 'ì„ íƒëœ ì‚¬ì§„ì´ ì—†ì–´ì„œ 사용 가능한 ë™ìž‘ì´ ì—†ìŠµë‹ˆë‹¤.'; +$lang['No photos selected, no actions possible.'] = 'ì„ íƒëœ ì‚¬ì§„ì´ ì—†ì–´ì„œ 사용 가능한 ë™ìž‘ì´ ì—†ìŠµë‹ˆë‹¤.'; $lang['Apply action'] = 'ë™ìž‘ ì ìš©'; $lang['Tools'] = 'ë„구'; $lang['Searching...'] = '검색중...'; @@ -441,7 +443,7 @@ $lang['%d parameter was updated.'] = '%d 파ë¼ë¯¸í„°ê°€ 변경ë¨.'; $lang['%d parameters were updated.'] = '%d 파ë¼ë¯¸í„°ê°€ 변경ë¨.'; $lang['Parameters'] = '파ë¼ë¯¸í„°'; $lang['There is no available subscribers to mail.'] = 'ë©”ì¼ë¡œ 공지를 받는 사용ìžê°€ 없습니다.'; -$lang['No group selected, no action possible.'] = 'ì„ íƒëœ ê·¸ë£¹ì´ ì—†ì–´ì„œ 사용 가능한 ë™ìž‘ì´ ì—†ìŠµë‹ˆë‹¤.'; +$lang['No groups selected, no actions possible.'] = 'ì„ íƒëœ ê·¸ë£¹ì´ ì—†ì–´ì„œ 사용 가능한 ë™ìž‘ì´ ì—†ìŠµë‹ˆë‹¤.'; $lang['Group'] = '그룹'; $lang['Group name'] = '그룹 ì´ë¦„'; $lang['Groups'] = '그룹'; diff --git a/language/ko_KR/common.lang.php b/language/ko_KR/common.lang.php index 5b230bbeb..66c964a06 100644 --- a/language/ko_KR/common.lang.php +++ b/language/ko_KR/common.lang.php @@ -412,4 +412,4 @@ $lang['Photo title'] = '사진 ì œëª©'; $lang['No results for'] = '다ìŒì˜ 검색 결과가 ì—†ìŒ'; $lang['Invalid username or password!'] = 'ì‹œìš©ìž ì´ë¦„ ë˜ëŠ” 비밀번호가 올바르지 않습니다.'; $lang['Your authentication key is no longer valid.'] = 'ì¸ì¦í‚¤ê°€ ìœ íš¨í•˜ì§€ 않습니다.'; -$lang['generate random password'] = 'ëžœë¤ ë¹„ë°€ë²ˆí˜¸ ìƒì„±'; \ No newline at end of file +$lang['generate random password'] = 'ëžœë¤ ë¹„ë°€ë²ˆí˜¸ ìƒì„±'; diff --git a/language/lt_LT/admin.lang.php b/language/lt_LT/admin.lang.php index 0d22e74d6..ce395283c 100644 --- a/language/lt_LT/admin.lang.php +++ b/language/lt_LT/admin.lang.php @@ -174,6 +174,7 @@ $lang['%s value is not correct file because exif are not supported'] = '%s reik $lang['(this tag will be deleted)'] = '(Å¡i žyma bus iÅ¡trinta)'; $lang[', click on'] = ', paspausk ant'; $lang['... or '] = '... arba '; +$lang['Piwigo for Android application empowers you to connect your Android phone or table to your Piwigo gallery, create some albums and upload several photos at once.'] = 'Piwigo Android\'ui programÄ—lÄ— suteikia galimybÄ™ sujungti jÅ«sų Android telefonÄ… ar planÅ¡etÄ™ su jÅ«sų Piwigo galerija, kurti kelis albumus ir įkelti kelias nuotraukas iÅ¡kart.'; $lang['Piwigo for iOS application empowers you to connect to your Piwigo gallery from your iPhone, iPad or iPod Touch, create some albums and upload several photos at once.'] = 'Piwigo iOS\'ui programÄ—lÄ— suteikia galimybÄ™ sujungti jÅ«sų iPhone, iPad ar iPod Touch su jÅ«sų Piwigo galerija, kurti kelis albumus ir įkelti kelias nuotraukas iÅ¡kart.'; $lang['A locked gallery is only visible to administrators'] = 'Užrakinta galerija prieinama tik administratoriams'; $lang['A new version of Piwigo is available.'] = 'Yra nauja Piwigo versija.'; @@ -378,6 +379,7 @@ $lang['Piwigo cannot retrieve upgrade file from server'] = 'Piwigo negali atsisi $lang['Piwigo configuration'] = 'Piwigo konfigÅ«racija'; $lang['Piwigo export plugin for Aperture'] = 'Piwigo eksportavimo priedas, skirtas Aperture'; $lang['Piwigo export plugin for iPhoto'] = 'Piwigo eksportavimo priedas, skirtas iPhoto'; +$lang['Piwigo for Android'] = 'Piwigo Android\'ui'; $lang['Piwigo for iOS (iPhone, iPad, iPod Touch)'] = 'Piwigo iOS\'ui (iPhone, iPad, iPod Touch)'; $lang['Piwigo publish plugin for Shotwell'] = 'Piwigo skelbimo priedas, skirtas Shotwell'; $lang['Piwigo publish plugin for digiKam'] = 'Piwigo skelbimo priedas, skirtas digiKam'; @@ -450,14 +452,14 @@ $lang['New photos added'] = 'Naujos nuotraukos įkeltos'; $lang['New tag'] = 'Nauja žyma'; $lang['No file was uploaded'] = 'Nebuvo įkeltas joks failas'; $lang['No group is permitted to see this private album'] = 'Jokiai grupei neleidžiama žiÅ«rÄ—ti Å¡io privataus albumo'; -$lang['No group selected, no action possible.'] = 'Nepasirinkta jokia grupÄ—, todÄ—l jokių veiksmų vykdyti neįmanoma.'; +$lang['No groups selected, no actions possible.'] = 'Nepasirinkta jokia grupÄ—, todÄ—l jokių veiksmų vykdyti neįmanoma.'; $lang['No mail to send.'] = 'Nebus siunÄiamas joks laiÅ¡kas'; $lang['No members to manage'] = 'NÄ—ra jokių narių, kuriuos galima bÅ«tų tvarkyti'; $lang['No photo can be deleted'] = 'Jokios nuotraukos negali bÅ«ti iÅ¡trintos'; $lang['No photo in the current set.'] = 'Å iuo metu rinkinyje nÄ—ra nuotraukų.'; $lang['No photo in this album'] = 'Å iame albume nÄ—ra nuotraukų'; $lang['No photo selected, %d photos in current set'] = 'Nepasirinkta jokia nuotrauka, Å¡iame rinkinyje nuotraukų: %d'; -$lang['No photo selected, no action possible.'] = 'Nepasirinkta jokia nuotrauka, neįmanomas joks veiksmas.'; +$lang['No photos selected, no actions possible.'] = 'Nepasirinkta jokia nuotrauka, neįmanomas joks veiksmas.'; $lang['No results'] = 'NÄ—ra rezultatų'; $lang['No user to send notifications by mail.'] = 'NÄ—ra vartotojų, kurie galÄ—tų bÅ«ti informuoti paÅ¡tu.'; $lang['None'] = 'NÄ—ra'; @@ -936,7 +938,7 @@ $lang['Change username'] = 'Keisti username'; $lang['Loading...'] = 'Kraunasi...'; $lang['No matching user found'] = 'Narių, atitinkanÄių kriterijus, nerasta'; $lang['No user selected of %d users'] = 'Nepasirinktas nÄ— vienas iÅ¡ %d narių'; -$lang['No user selected, no action possible.'] = 'Nepasirinktas narys, negaliu tÄ™sti veiksmų.'; +$lang['No users selected, no actions possible.'] = 'Nepasirinktas narys, negaliu tÄ™sti veiksmų.'; $lang['Password updated'] = 'Slaptažodis atnaujintas'; $lang['Show %s users'] = 'Rodyti %s vartotojus'; $lang['User %s added'] = 'Vartotojas %s pridÄ—tas'; @@ -984,7 +986,7 @@ $lang['For security reason, authentication keys do not work for administrators.' $lang['It only takes a few clicks.'] = 'Tai bus tik keli spragtelÄ—jimai.'; $lang['No filter on album. Select one or type to search'] = 'Albumas neturi filtrų. Pasirinkite vienÄ… arba paraÅ¡ykite kÄ… nors paieÅ¡kai'; $lang['No recipient selected'] = 'GavÄ—jas nepasirinktas'; -$lang['No tag selected, no action possible.'] = 'Nepasirinkta jokia žyma, negalimas joks veiksmas.'; +$lang['No tags selected, no actions possible.'] = 'Nepasirinkta jokia žyma, negalimas joks veiksmas.'; $lang['No user is permitted to see this private album'] = 'Joks lankytojas negali matyti Å¡io privataus albumo'; $lang['Piwigo %s is available, please update'] = 'Piwigo %s prieinama, praÅ¡ome atnaujinti'; $lang['Piwigo Remote Sync is able to upload a whole folder hierarchy. If you run it again, only new photos will be uploaded.'] = 'Piwigo Remote Sync gali įkelti visÄ… katalogų hierarchijÄ…. Jei paleisite jį vÄ—l, tai bus įkeltos tik naujos nuotraukos.'; diff --git a/language/lv_LV/admin.lang.php b/language/lv_LV/admin.lang.php index c12f7e342..e6f02e963 100644 --- a/language/lv_LV/admin.lang.php +++ b/language/lv_LV/admin.lang.php @@ -663,7 +663,7 @@ $lang['Refresh photo set'] = 'AtjauninÄt foto sÄ“riju'; $lang['The whole page'] = 'Visa lapa'; $lang['The whole set'] = 'Visa sÄ“rija'; $lang['No photo in the current set.'] = 'Nav fotoattÄ“lu esoÅ¡ajÄ sÄ“rijÄ.'; -$lang['No photo selected, no action possible.'] = 'Nav atlasÄ«tu fotoattÄ“lu, nekÄdas darbÄ«bas nav iespÄ“jamas.'; +$lang['No photos selected, no actions possible.'] = 'Nav atlasÄ«tu fotoattÄ“lu, nekÄdas darbÄ«bas nav iespÄ“jamas.'; $lang['Choose an action'] = 'IzvÄ“lÄ“ties darbÄ«bu'; $lang['remove author'] = 'izdzÄ“st autoru'; $lang['Type here the author name'] = 'IevadÄ«t autora vÄrdu Å¡eit'; @@ -813,6 +813,8 @@ $lang['Applications'] = 'AplikÄcijas'; $lang['Available on'] = 'Pieejams uz'; $lang['Piwigo for iOS (iPhone, iPad, iPod Touch)'] = 'Piwigo priekÅ¡ iOS (iPhone, iPad, iPod Touch)'; $lang['Piwigo for iOS application empowers you to connect to your Piwigo gallery from your iPhone, iPad or iPod Touch, create some albums and upload several photos at once.'] = 'Piwigo priekÅ¡ iOS aplikÄcijas, kas ļauj piekļūt jÅ«su Piwigo galerijai no iPhone, iPad vai iPod Touch, un bez pÅ«lÄ“m izveidot jaunus albÅ«mus un ielÄdÄ“t jaunas fotogrÄfijas.'; +$lang['Piwigo for Android'] = 'Piwigo priekÅ¡ Android'; +$lang['Piwigo for Android application empowers you to connect your Android phone or table to your Piwigo gallery, create some albums and upload several photos at once.'] = 'Piwigo priekÅ¡ Android aplikÄcija dod jums iespÄ“ju savienot savu Android telefonu vai iekÄrtu ar jÅ«su Piwigo galeriju, bez pÅ«lÄ“m izveidot jaunus albÅ«mus un ielÄdÄ“t jaunas fotogrÄfijas.'; $lang['Piwigo Publish plugin for Lightroom'] = 'Piwigo Publicēšanas spraudnis priekÅ¡ Lightroom'; $lang['Adobe Photoshop Lightroom is a photography software designed to manage large quantities of digital images and doing post production work.'] = 'Adobe Photoshop Lightroom ir fotoredaktora programmatÅ«ra, kas domÄta liela apjoma digitÄlu attÄ“lu pÄrvaldīšanai un pirmsproducēšanas darbu veikÅ¡anai.'; $lang['The Piwigo publish Plug-in allows you to export and synchronize photos from Lightroom directly to your Piwigo photo gallery.'] = 'Piwigo publicēšanas spraudnis ļauj jums eksportÄ“t un sinhronizÄ“t attÄ“lus Lightroom aplikÄcijÄ ar jÅ«su Piwigo foto galeriju.'; @@ -913,7 +915,7 @@ $lang['This group will be set to default'] = 'Å Ä« grupa tiks izmantots pÄ“c nok $lang['Rename'] = 'PÄrdÄ“vÄ“t'; $lang['Please select at least two groups'] = 'LÅ«dzu atlasiet vismaz divas grupas'; $lang['No members to manage'] = 'Nav biedru, ko pÄrvaldÄ«t'; -$lang['No group selected, no action possible.'] = 'Nav izvÄ“lÄ“ta neviena grupa, nekÄdas darbÄ«bas nav iespÄ“jamas.'; +$lang['No groups selected, no actions possible.'] = 'Nav izvÄ“lÄ“ta neviena grupa, nekÄdas darbÄ«bas nav iespÄ“jamas.'; $lang['Manage the members'] = 'PÄrvaldÄ«t biedrus'; $lang['Merge selected groups'] = 'SapludinÄt atlasÄ«tÄs grupas'; $lang['Duplicate'] = 'DublikÄts'; @@ -930,7 +932,7 @@ $lang['Registered on %s, %s.'] = 'ReÄ£istrÄ“ts %s, %s.'; $lang['User %s updated'] = '%s lietotÄjs atjauninÄts'; $lang['Update user'] = 'AtjauninÄt lietotÄju'; $lang['Show %s users'] = 'ParÄdÄ«t %s lietotÄjus'; -$lang['No user selected, no action possible.'] = 'Neviens lietotÄja nav atlasÄ«ts, darbÄ«ba nav iespÄ“jama.'; +$lang['No users selected, no actions possible.'] = 'Neviens lietotÄja nav atlasÄ«ts, darbÄ«ba nav iespÄ“jama.'; $lang['No user selected of %d users'] = 'Neviens no %d lietotÄjiem nav atlasÄ«ts'; $lang['No matching user found'] = 'Nav atrasti atbilstoÅ¡i lietotÄji'; $lang['Users modified'] = 'LietotÄji modoficÄ“ti'; @@ -969,7 +971,7 @@ $lang['No recipient selected'] = 'Nav izvÄ“lÄ“ts neviens saņēmÄ“js'; $lang['Edit user'] = 'Rediģēt lietotÄju'; $lang['Delete %d orphan photos'] = 'DzÄ“st %d nezinÄmos foto '; $lang['orphans to delete'] = 'nepiesaistÄ«tie dzēšanai'; -$lang['No tag selected, no action possible.'] = 'Nav izvÄ“lÄ“tu tegu, nekÄdas darbÄ«bas nav iespÄ“jamas.'; +$lang['No tags selected, no actions possible.'] = 'Nav izvÄ“lÄ“tu tegu, nekÄdas darbÄ«bas nav iespÄ“jamas.'; $lang['Select tags'] = 'IzvÄ“lieties tegus'; $lang['Piwigo %s is available, please update'] = 'Piwigo %s ir pieejams, lÅ«dzu atjauniniet'; $lang['Storage used'] = 'IzmantotÄ krÄtuve'; @@ -1004,4 +1006,4 @@ $lang['Display category date'] = 'Atainot kategorijas datumu'; $lang['Deletion in progress'] = 'Notiek dzēšana'; $lang['Create a first album'] = 'Izveidot pirmo albÅ«mu'; $lang['%d checksums were added'] = '%d kontrolsumma ir pievienota'; -$lang['... or hide this link'] = '... vai paslÄ“pt Å¡o saiti'; \ No newline at end of file +$lang['... or hide this link'] = '... vai paslÄ“pt Å¡o saiti'; diff --git a/language/mn_MN/admin.lang.php b/language/mn_MN/admin.lang.php index d94322676..c179f1eef 100644 --- a/language/mn_MN/admin.lang.php +++ b/language/mn_MN/admin.lang.php @@ -317,6 +317,7 @@ $lang['Save order'] = 'ÐÑ€Ñмбийг хадгалах'; $lang['Restore'] = 'СÑргÑÑÑ…'; $lang['Restore default configuration. You will lose your plugin settings!'] = 'ҮндÑÑн тохиргоог ÑÑргÑÑÑ…. Тохиргоонууд алдагдах болно.'; $lang['Repair and optimize database'] = 'МÑдÑÑллийн Ñанг заÑаж, цÑгцÑлÑÑ…'; +$lang['Piwigo for Android'] = 'Android-д зориулÑан Piwigo'; $lang['Piwigo for iOS (iPhone, iPad, iPod Touch)'] = 'iOS (iPhone, iPad, iPod Touch)-д зориулÑан Piwigo'; $lang['Permalink'] = 'Ð¥Ð¾Ð»Ð±Ð¾Ð¾Ñ Ñ…Ð°Ñг (permalink)'; $lang['Permalinks'] = 'Ð¥Ð¾Ð»Ð±Ð¾Ð¾Ñ Ñ…Ð°Ñг (permalink)'; @@ -426,8 +427,8 @@ $lang['global mode'] = 'ерөнхий Ñ…ÑÑÑг'; $lang['Support'] = 'ТуÑламж дÑмжлÑг'; $lang['Choose an action'] = 'ҮйлдÑлÑÑ Ñонгоно уу'; $lang['Action'] = 'ҮйлдÑл'; -$lang['No user selected, no action possible.'] = 'Ð¥ÑÑ€ÑглÑгч Ñонгоогүй байна'; -$lang['No photo selected, no action possible.'] = 'Зураг огт Ñонгоогүй байна'; +$lang['No users selected, no actions possible.'] = 'Ð¥ÑÑ€ÑглÑгч Ñонгоогүй байна'; +$lang['No photos selected, no actions possible.'] = 'Зураг огт Ñонгоогүй байна'; $lang['Remove all filters'] = 'Бүх Ñонголтыг цуцлах'; $lang['Refresh photo set'] = 'СÑргÑÑÑ…'; $lang['No photo selected, %d photos in current set'] = 'Зураг огт Ñонгоогүй байна, ÑÐ½Ñ Ñ…ÑÑÑгт нийт %d зураг байна.'; @@ -449,7 +450,7 @@ $lang['on the %d selected photos'] = '(ÑонгоÑон %d зурагт Ñ…ÑÑ€Ñ $lang['Apply action'] = 'ГүйцÑтгÑÑ…'; $lang['Actions'] = 'ҮйлдÑл'; $lang['An error occured during extraction (%s).'] = 'Файлыг (%s) задлах үед алдаа гарлаа.'; -$lang['No group selected, no action possible.'] = 'ÐÑг ч бүлÑг Ñонгоогүй байна'; +$lang['No groups selected, no actions possible.'] = 'ÐÑг ч бүлÑг Ñонгоогүй байна'; $lang['Pages seen'] = 'ҮзÑÑн хуудаÑ'; $lang['hide details'] = 'товч мÑдÑÑлÑл'; $lang['Impossible to deactivate this language, first set another language as default.'] = 'Уучлаарай, Тухайн Ñ…Ñлийг идÑвхгүй болгохын тулд Ó©Ó©Ñ€ Ñ…Ñлийг үндÑÑн Ñ…ÑлÑÑÑ€ Ñонгоно уу'; diff --git a/language/nb_NO/admin.lang.php b/language/nb_NO/admin.lang.php index 89ebf5792..83029f6bc 100644 --- a/language/nb_NO/admin.lang.php +++ b/language/nb_NO/admin.lang.php @@ -665,7 +665,7 @@ $lang['Refresh photo set'] = 'Oppdater bilde sesjonen'; $lang['The whole page'] = 'Hele siden'; $lang['The whole set'] = 'Hele sesjonen'; $lang['No photo in the current set.'] = 'Ingen foto i gjeldende sesjon.'; -$lang['No photo selected, no action possible.'] = 'Ingne bilder valgt, ingen tilltak mulig.'; +$lang['No photos selected, no actions possible.'] = 'Ingne bilder valgt, ingen tilltak mulig.'; $lang['Choose an action'] = 'Velg et tilltak'; $lang['remove author'] = 'fjern forfatter'; $lang['Type here the author name'] = 'Skriv forfatter navn her'; @@ -799,6 +799,7 @@ $lang['Available on'] = 'Tilgjengelig pÃ¥'; $lang['List'] = 'Vis'; $lang['Not cropped correctly?'] = 'Ikke beskÃ¥ret riktig?'; $lang['Notify administrators when a comment is'] = 'Gi beskjed til administrator nÃ¥r en kommentar er'; +$lang['Piwigo for Android'] = 'Piwigo for Android'; $lang['Piwigo for iOS (iPhone, iPad, iPod Touch)'] = 'Piwigo for iOS (iPhone, iPad, iPod Touch)'; $lang['Save visits in history for'] = 'Lagre besøkshistorie for '; $lang['Unable to dump database.'] = 'Kan ikke dumpe databasen'; @@ -806,6 +807,7 @@ $lang['You can activate only one mobile theme.'] = 'Du kan kun aktivere et mobil $lang['You can\'t define a default photo order because you have a custom setting in your local configuration.'] = 'Du kan ikke definere standard bilderekkefølge, fordi du har eget oppsett i din lokale konfigurasjon.'; $lang['simple visitors'] = 'vanlig besøkende'; $lang['%u users have automatic permission because they belong to a granted group.'] = '%u brukere har automatisk rettigheter fordi de tilhører en gruppe som allerede har rettigheter.'; +$lang['Piwigo for Android application empowers you to connect your Android phone or table to your Piwigo gallery, create some albums and upload several photos at once.'] = 'Piwigo for Android applikasjonen gjør at du kan koble til ditt Piwigo-galleri fra din Android-telefon, opprette album og laste opp flere bilder samtidig.'; $lang['Piwigo for iOS application empowers you to connect to your Piwigo gallery from your iPhone, iPad or iPod Touch, create some albums and upload several photos at once.'] = 'Piwigo for iOS applikasjonen gjør at du kan koble til ditt Piwigo-galleri fra din iPhone, iPad eller iPod Touch, opprette album og laste opp flere bilder samtidig.'; $lang['Adobe Photoshop Lightroom is a photography software designed to manage large quantities of digital images and doing post production work.'] = 'Adobe Photoshop Lightroom et et bildebehandlingsprogram, lagd for Ã¥ Ã¥ organisere svært mange bilder, samt etterbehandling av bilder.'; $lang['Aperture is a powerful tool to refine images and manage massive libraries on Mac.'] = 'Aperture er et kraftig verktøy for Ã¥ avgrense bilder, og for Ã¥ behandle store bildebibliotek pÃ¥ Mac.'; @@ -909,7 +911,7 @@ $lang['Ratio'] = 'Ratio'; $lang['Duplicate'] = 'Duplikat'; $lang['Manage the members'] = 'Administrer medlemmer'; $lang['Merge selected groups'] = 'Flett markerte grupper'; -$lang['No group selected, no action possible.'] = 'Ingen gruppe markert, kan ikke gjøre noe.'; +$lang['No groups selected, no actions possible.'] = 'Ingen gruppe markert, kan ikke gjøre noe.'; $lang['No members to manage'] = 'Ingen medlemmer Ã¥ behandle'; $lang['Please select at least two groups'] = 'Vennligst marker minst to grupper'; $lang['Rename'] = 'Gi nytt navn'; @@ -934,7 +936,7 @@ $lang['Change username'] = 'Bytt brukernavn'; $lang['Loading...'] = 'Laster...'; $lang['No matching user found'] = 'Ingen treff'; $lang['No user selected of %d users'] = 'Ingen av %d brukere valgt'; -$lang['No user selected, no action possible.'] = 'Ingen bruker valgt, kan ikke gjøre noe.'; +$lang['No users selected, no actions possible.'] = 'Ingen bruker valgt, kan ikke gjøre noe.'; $lang['Password updated'] = 'Passord oppdatert'; $lang['Registered on %s, %s.'] = 'Registrert den %s, %s.'; $lang['Show %s users'] = 'Vis %s brukere'; @@ -970,7 +972,7 @@ $lang['Orphans'] = 'Eierløs'; $lang['Recipients'] = 'Mottakere'; $lang['Y Repeat'] = 'Y Gjenta'; $lang['Display form'] = 'Visningstype'; -$lang['No tag selected, no action possible.'] = 'Ikke noe merke valgt, ingen aksjon mulig'; +$lang['No tags selected, no actions possible.'] = 'Ikke noe merke valgt, ingen aksjon mulig'; $lang['Piwigo Remote Sync is able to upload a whole folder hierarchy. If you run it again, only new photos will be uploaded.'] = 'Piwigo fjernsynkronisering kan laste opp en hel katalogstruktur. Kjøres den igjen, blir bare ny bilder lastet opp'; $lang['Running on an up-to-date Piwigo is important for security.'] = 'En oppdatert versjon av Piwigo er viktig for sikkerheten'; $lang['Select tags'] = 'Velg merker'; @@ -1005,4 +1007,4 @@ $lang['Visit'] = 'Besøk'; $lang['Welcome!'] = 'Velkommen!'; $lang['With no checksum'] = 'Uten sjekksum'; $lang['checksums to add'] = 'sjekksum som skal legges til'; -$lang['or'] = 'eller'; \ No newline at end of file +$lang['or'] = 'eller'; diff --git a/language/nl_NL/admin.lang.php b/language/nl_NL/admin.lang.php index dde753e8f..82200fcbd 100644 --- a/language/nl_NL/admin.lang.php +++ b/language/nl_NL/admin.lang.php @@ -662,7 +662,7 @@ $lang['Refresh photo set'] = 'Vernieuwen foto set'; $lang['The whole page'] = 'De hele pagina'; $lang['The whole set'] = 'De hele set'; $lang['No photo in the current set.'] = 'Geen foto in de huidige reeks.'; -$lang['No photo selected, no action possible.'] = 'Geen foto geselecteerd. Geen actie mogelijk.'; +$lang['No photos selected, no actions possible.'] = 'Geen foto geselecteerd. Geen actie mogelijk.'; $lang['Choose an action'] = 'Kies een actie'; $lang['remove author'] = 'Verwijder auteur'; $lang['Type here the author name'] = 'Type hier de naam van de fotograaf/maker'; @@ -805,6 +805,7 @@ $lang['Center of interest'] = 'Middelpunt van belangstelling'; $lang['Move to album'] = 'Verplaats naar album'; $lang['You can activate only one mobile theme.'] = 'Je kunt slechts een mobiel thema activeren.'; $lang['Piwigo for iOS application empowers you to connect to your Piwigo gallery from your iPhone, iPad or iPod Touch, create some albums and upload several photos at once.'] = 'Piwigo voor IOS applicatie stelt je in staat jouw Piwigo galerie te openen vanaf je iPhone, iPad of iPod Touch, een aantal albums aan te maken en meerdere foto\'s tegelijk te uploaden.'; +$lang['Piwigo for Android application empowers you to connect your Android phone or table to your Piwigo gallery, create some albums and upload several photos at once.'] = 'De Piwigo voor Android applicatie stelt u in staat uw Piwigo galerie te openen vanaf uw Android-telefoon of tablet, een aantal albums aan te maken en meerdere foto\'s tegelijk te uploaden.'; $lang['Adobe Photoshop Lightroom is a photography software designed to manage large quantities of digital images and doing post production work.'] = 'Adobe Photoshop Lightroom is fotografie-software ontworpen om grote hoeveelheden digitale foto\'s te verwerken en voor het verrichten van post-productie werk.'; $lang['Applications'] = 'Toepassingen'; $lang['apply automatic sort order'] = 'Automatische sorteervolgorde toepassen'; @@ -813,6 +814,7 @@ $lang['Available on'] = 'Beschikbaar voor'; $lang['cancel manual order'] = 'Annuleer handmatige volgorde'; $lang['Cancel'] = 'Annuleer'; $lang['List'] = 'Lijst'; +$lang['Piwigo for Android'] = 'Piwigo voor Android'; $lang['Piwigo for iOS (iPhone, iPad, iPod Touch)'] = 'Piwigo voor iOS (iPhone, iPad, iPod Touch)'; $lang['Piwigo Publish plugin for Lightroom'] = 'Piwigo Publish plugin voor Lightroom'; $lang['Piwigo publish plugin for Shotwell'] = 'Piwigo Publish plugin voor Shotwell'; @@ -915,7 +917,7 @@ $lang['between %d and %d pixels'] = 'tussen %d en %d pixels'; $lang['Duplicate'] = 'Kopieer'; $lang['Manage the members'] = 'Beheer de gebruikers'; $lang['Merge selected groups'] = 'Voeg de geselecteerde groepen samen'; -$lang['No group selected, no action possible.'] = 'Geen groep geselecteerd. Handeling niet mogelijk'; +$lang['No groups selected, no actions possible.'] = 'Geen groep geselecteerd. Handeling niet mogelijk'; $lang['No members to manage'] = 'Geen gebruikers te beheren'; $lang['Please select at least two groups'] = 'Selecteer minstens 2 groepen'; $lang['Rename'] = 'Hernoem'; @@ -939,7 +941,7 @@ $lang['Showing %s to %s of %s users'] = 'Toon %s aan %s van de %s gebruikers'; $lang['Update user'] = 'Werk de gebruiker bij'; $lang['No matching user found'] = 'Geen overeenkomende gebruikers gevonden'; $lang['No user selected of %d users'] = 'Geen gebruiker geselecteerd van de %d gebruikers'; -$lang['No user selected, no action possible.'] = 'Geen gebruiker geselecteerd. Geen actie mogelijk'; +$lang['No users selected, no actions possible.'] = 'Geen gebruiker geselecteerd. Geen actie mogelijk'; $lang['Registered on %s, %s.'] = 'Geregistreerd op %s, %s.'; $lang['Show %s users'] = 'Toon %s gebruikers'; $lang['Change username'] = 'Verander gebruikersnaam'; @@ -978,8 +980,8 @@ $lang['delete only album, not photos'] = 'Verwijder alleen het album, niet de fo $lang['Delete album "%s".'] = 'Verwijder album %s.'; $lang['First photo added'] = 'Eerste toegevoegde afbeelding'; $lang['It only takes a few clicks.'] = 'Het duurt slechts een paar klikken.'; -$lang['No tag selected, no action possible.'] = 'Geen label geselecteerd. Geen actie mogelijk'; -$lang['Piwigo %s is available, please update'] = 'Piwigo %s is beschikbaar, update a.u.b.'; +$lang['No tags selected, no actions possible.'] = 'Geen label geselecteerd. Geen actie mogelijk'; +$lang['Piwigo %s is available, please update'] = 'Piwigo %s is beschikbaar, bijwerke a.u.b.'; $lang['Select tags'] = 'Selecteer labels'; $lang['Storage used'] = 'Opslag gebruikt'; $lang['(determined from photos)'] = '(Bepaald op basis van foto\'s)'; @@ -1009,4 +1011,4 @@ $lang['Visit'] = 'Bezoek'; $lang['Welcome!'] = 'Welkom!'; $lang['With no checksum'] = 'Zonder checksum'; $lang['checksums to add'] = 'checksums toe te voegen'; -$lang['or'] = 'of'; \ No newline at end of file +$lang['or'] = 'of'; diff --git a/language/nn_NO/admin.lang.php b/language/nn_NO/admin.lang.php index f35d07164..26ebfc6d7 100644 --- a/language/nn_NO/admin.lang.php +++ b/language/nn_NO/admin.lang.php @@ -217,6 +217,7 @@ $lang['width must be a number superior to'] = 'breidde mÃ¥ vera eit tal større $lang['Anomaly'] = 'Feil'; $lang['Are you sure you want to delete this plugin?'] = 'Er du sikker pÃ¥ at du vil fjerne dette tilleggsprogrammet'; $lang['Are you sure you want to install this plugin?'] = 'Er du sikker pÃ¥ at du vil installere dette tilleggsprogrammet'; +$lang['Piwigo for Android application empowers you to connect your Android phone or table to your Piwigo gallery, create some albums and upload several photos at once.'] = 'Piwigo for Android appen gjer det mogleg Ã¥ kople ein Android telefon eller nettbrett til ditt Piwigo galleri. Du kan lage album og laste opp fleire bilete pÃ¥ ein gong.'; $lang['Piwigo for iOS application empowers you to connect to your Piwigo gallery from your iPhone, iPad or iPod Touch, create some albums and upload several photos at once.'] = 'Piwigo for iOS appen gjer det mogleg Ã¥ kople ein iPhone, iPad eller iPod Touch til ditt Piwigo galleri. Du kan lage album og laste opp fleire bilete pÃ¥ ein gong.'; $lang['Add write access to the "%s" directory'] = 'Legg til skriverettar til "%s" katalogen'; $lang['Adobe Photoshop Lightroom is a photography software designed to manage large quantities of digital images and doing post production work.'] = 'Adobe Photoshop Lightroom er programvare laga for Ã¥ handtere store mengder digitale foto og gjera biletbehandling.'; @@ -288,7 +289,7 @@ $lang['Week starts on'] = 'Veka startar pÃ¥'; $lang['Who can see these photos?'] = 'Kven kan sjÃ¥ desse bileta?'; $lang['New parent album'] = 'Nytt foreldrealbum'; $lang['No display'] = 'Ingen vising'; -$lang['No group selected, no action possible.'] = 'Ingen gruppe er vald, ingen handling mogleg.'; +$lang['No groups selected, no actions possible.'] = 'Ingen gruppe er vald, ingen handling mogleg.'; $lang['Not cropped correctly?'] = 'Ikkje kutta rett?'; $lang['Notification'] = 'Melding'; $lang['Notify administrators when a comment is'] = 'Send melding til administratorar nÃ¥r ein kommentar er'; @@ -484,7 +485,7 @@ $lang['No photo can be deleted'] = 'Ingen bilete kan slettast'; $lang['No photo in the current set.'] = 'Ingen bilete i gjeldande samling'; $lang['No photo in this album'] = 'Ingen bilete i dette albumet'; $lang['No photo selected, %d photos in current set'] = 'Ingen bilete vald, %d bilete i gjeldande samling'; -$lang['No photo selected, no action possible.'] = 'Ingen bilete vald, ingen handling er mogleg.'; +$lang['No photos selected, no actions possible.'] = 'Ingen bilete vald, ingen handling er mogleg.'; $lang['No results'] = 'Ingen resultat'; $lang['No user to send notifications by mail.'] = 'Ingen brukar som kan informerast via e-post.'; $lang['None'] = 'Ingen'; @@ -516,6 +517,7 @@ $lang['Pending Comments'] = 'Ventande kommentarar'; $lang['Permalink'] = 'Permalenke'; $lang['Permalink %s is already used by album %s'] = 'Permalenke %s er allereie i bruk av album %s'; $lang['Permalink history'] = 'Permalenke-historikk'; +$lang['Piwigo for Android'] = 'Piwigo for Android'; $lang['Piwigo for iOS (iPhone, iPad, iPod Touch)'] = 'Piwigo for iOS (iPhone, iPad, iPod Touch)'; $lang['Posted %s on %s'] = 'Lagt til %s %s'; $lang['Permalinks'] = 'Permalenker'; @@ -937,7 +939,7 @@ $lang['No matching user found'] = 'Ingen brukarar vart funne'; $lang['Password updated'] = 'Passordet er endra'; $lang['Show %s users'] = 'Vis %s brukarar'; $lang['No user selected of %d users'] = 'Ingen brukarar valde (totalt %d brukarar)'; -$lang['No user selected, no action possible.'] = 'Ingen brukarar valde - ingen aksjon mogleg'; +$lang['No users selected, no actions possible.'] = 'Ingen brukarar valde - ingen aksjon mogleg'; $lang['Registered on %s, %s.'] = 'Registrera %s, %s.'; $lang['Showing %s to %s of %s users'] = 'Viser %s til %s av %s brukarar'; $lang['Update user'] = 'Endre brukar'; diff --git a/language/pl_PL/admin.lang.php b/language/pl_PL/admin.lang.php index 3c2204fbd..49cebf348 100644 --- a/language/pl_PL/admin.lang.php +++ b/language/pl_PL/admin.lang.php @@ -663,7 +663,7 @@ $lang['Refresh photo set'] = 'OdÅ›wież zestaw zdjęć'; $lang['The whole page'] = 'Całą strona'; $lang['The whole set'] = 'CaÅ‚y zestaw'; $lang['No photo in the current set.'] = 'Brak zdjęć w wybranym zestawie.'; -$lang['No photo selected, no action possible.'] = 'Brak wybranych zdjęć, niedostÄ™pna jest żadna akcja.'; +$lang['No photos selected, no actions possible.'] = 'Brak wybranych zdjęć, niedostÄ™pna jest żadna akcja.'; $lang['Choose an action'] = 'Wybierz akcjÄ™'; $lang['remove author'] = 'usuÅ„ autora'; $lang['Type here the author name'] = 'Wpisz tutaj nazwÄ™ autora'; @@ -802,10 +802,12 @@ $lang['Not cropped correctly?'] = 'Rozmiar nie zmieniony poprawnie?'; $lang['Center of interest'] = 'Centrum zainteresowania'; $lang['Move to album'] = 'PrzenieÅ› do albumu'; +$lang['Piwigo for Android application empowers you to connect your Android phone or table to your Piwigo gallery, create some albums and upload several photos at once.'] = 'Piwigo na Androida aplikacja daje możliwość połączenia Twojej galerii Piwigo z Twoim telefonem lub tabletem opartym na Androidzie. Możesz tworzyć albumy i wysyÅ‚ać wiele zdjęć jednoczeÅ›nie.'; $lang['Piwigo for iOS application empowers you to connect to your Piwigo gallery from your iPhone, iPad or iPod Touch, create some albums and upload several photos at once.'] = 'Piwigo na iOS aplikacja daje możliwość połączenia Twojej galerii Piwigo z Twoim iPhonem, iPadem lub iPodem. Możesz tworzyć albumy i wysyÅ‚ać wiele zdjęć jednoczeÅ›nie.'; $lang['Applications'] = 'Aplikacje'; $lang['Available on'] = 'DostÄ™pne na'; $lang['Cancel'] = 'Anuluj'; +$lang['Piwigo for Android'] = 'Piwigo na Androida'; $lang['Piwigo for iOS (iPhone, iPad, iPod Touch)'] = 'Piwigo na iOS (iPhone, iPad, iPod Touch)'; $lang['any visitor can see this album'] = 'wszyscy odwiedzajÄ…cy galeriÄ™ zobaczÄ… ten album'; $lang['apply automatic sort order'] = 'Zastosuj automatycznÄ… kolejność sortowania'; @@ -913,7 +915,7 @@ $lang['between %.2f and %.2f'] = 'pomiÄ™dzy %.2f i %.2f'; $lang['Duplicate'] = 'Duplikuj'; $lang['Manage the members'] = 'ZarzÄ…dzaj czÅ‚onkami'; $lang['Merge selected groups'] = 'Połącz wybrane grupy'; -$lang['No group selected, no action possible.'] = 'Nie wybrano grup, nie można wykonywać żadnych akcji'; +$lang['No groups selected, no actions possible.'] = 'Nie wybrano grup, nie można wykonywać żadnych akcji'; $lang['No members to manage'] = 'Nie ma czÅ‚onków do zarzÄ…dzania'; $lang['Please select at least two groups'] = 'Wybierz conajmniej dwie grupy'; $lang['Rename'] = 'ZmieÅ„ nazwÄ™'; @@ -935,7 +937,7 @@ $lang['%d of %d users selected'] = 'wybrano %d z %d użytkowników'; $lang['All %d users are selected'] = 'Każdy z %d użytkowników zostaÅ‚ wybrany'; $lang['No matching user found'] = 'Nie odnaleziono pasujÄ…cego użytkownika'; $lang['No user selected of %d users'] = 'Nie wybrano żadnego z %d użytkowników'; -$lang['No user selected, no action possible.'] = 'Nie wybrano żadnego użytkownika, żadna akcja nie jest możliwa.'; +$lang['No users selected, no actions possible.'] = 'Nie wybrano żadnego użytkownika, żadna akcja nie jest możliwa.'; $lang['Update user'] = 'Zaktualizuj użytkownika'; $lang['User %s added'] = 'Dodano użytkownika %s'; $lang['User %s updated'] = 'Użytkownik %s zostaÅ‚ zaktualizowany'; @@ -985,7 +987,7 @@ $lang['(determined from photos)'] = '(pobrane ze zdjÄ™cia)'; $lang['Delete album "%s" and its %d sub-albums.'] = 'Skasuj album "%s" ze wszystkimi %d pod albumami.'; $lang['Recipients'] = 'Odbiorcy'; $lang['No recipient selected'] = 'Nie wybrano odbiorców'; -$lang['No tag selected, no action possible.'] = 'Nie wybrano znaczników, brak możliwych akcji.'; +$lang['No tags selected, no actions possible.'] = 'Nie wybrano znaczników, brak możliwych akcji.'; $lang['First photo added'] = 'Dodano pierwsze zdjÄ™cie'; $lang['Edit user'] = 'Edytuj użytkownika'; $lang['Display form'] = 'Pokaż formularz'; @@ -1007,4 +1009,4 @@ $lang['Synchronization in progress'] = 'Trwa synchronizacja'; $lang['Welcome!'] = 'Witamy!'; $lang['With no checksum'] = 'Bez sum kontrolnych'; $lang['checksums to add'] = 'sumy kontrolne do dodania'; -$lang['or'] = 'lub'; \ No newline at end of file +$lang['or'] = 'lub'; diff --git a/language/pt_BR/admin.lang.php b/language/pt_BR/admin.lang.php index 913f57b61..06f2f6810 100644 --- a/language/pt_BR/admin.lang.php +++ b/language/pt_BR/admin.lang.php @@ -652,6 +652,7 @@ $lang['%d years'] = '%d anos'; $lang['%s ago'] = '%s atrás'; $lang['%s in the future'] = '%s no futuro'; $lang['%u users have automatic permission because they belong to a granted group.'] = 'usuários %u tem permissão automática porque pertencem a um grupo que possui essa permissão'; +$lang['Piwigo for Android application empowers you to connect your Android phone or table to your Piwigo gallery, create some albums and upload several photos at once.'] = 'O aplicativo Piwigo para Android capacita você a conectar o seu celular ou tablet Android à sua galeria Piwigo, criando álbuns e colocando várias fotos ao mesmo tempo.'; $lang['A locked gallery is only visible to administrators'] = 'Uma galeria trancada é somente visÃvel pelos administradores'; $lang['Added by %s'] = 'Adicionado por %s'; $lang['Adobe Photoshop Lightroom is a photography software designed to manage large quantities of digital images and doing post production work.'] = 'O Adobe Photoshop Lightroom é um software de fotografia feito para gerenciar grandes quantidades de imagens digitais e fazer o trabalho de pós-produção'; @@ -709,7 +710,7 @@ $lang['No group is permitted to see this private album'] = 'Nenhum grupo tem per $lang['No order field selected'] = 'Nenhum campo de ordenação selecionado'; $lang['No photo in the current set.'] = 'Nenhuma foto no set atual'; $lang['No photo selected, %d photos in current set'] = 'Nenhuma foto selecionada, %d fotos no set atual'; -$lang['No photo selected, no action possible.'] = 'Nenhuma fotos selecionada, nenhuma ação possÃvel.'; +$lang['No photos selected, no actions possible.'] = 'Nenhuma fotos selecionada, nenhuma ação possÃvel.'; $lang['No results'] = 'Sem Resultados'; $lang['None'] = 'Nenhum'; $lang['Not cropped correctly?'] = 'Não recortado corretamente?'; @@ -743,6 +744,7 @@ $lang['Piwigo Uploader'] = 'Envio de Fotos do Piwigo'; $lang['Piwigo cannot retrieve upgrade file from server'] = 'Piwigo não pode receber arquivos de atualização do servidor'; $lang['Piwigo export plugin for Aperture'] = 'Plugin de Exportação do Piwigo para Aperture'; $lang['Piwigo export plugin for iPhoto'] = 'Plugin de Exportação do Piwigo para iPhoto'; +$lang['Piwigo for Android'] = 'Piwigo para Android'; $lang['Piwigo for iOS (iPhone, iPad, iPod Touch)'] = 'Piwigo para iOS (iPhone, iPad, iPod Touch)'; $lang['Piwigo publish plugin for Shotwell'] = 'Plugin de publicação do Piwigo para Shortwell'; $lang['Piwigo publish plugin for digiKam'] = 'Plugin de publicação do Piwigo para digiKam'; @@ -914,7 +916,7 @@ $lang['between %d and %d pixels'] = 'Entre %d e %d pixels'; $lang['Duplicate'] = 'Duplicado'; $lang['Manage the members'] = 'Gerencie os membros'; $lang['Merge selected groups'] = 'Junte os grupos selecionados'; -$lang['No group selected, no action possible.'] = 'Nenhum grupo selecionado. Nenhuma açao é possÃvel.'; +$lang['No groups selected, no actions possible.'] = 'Nenhum grupo selecionado. Nenhuma açao é possÃvel.'; $lang['No members to manage'] = 'Sem membros para gerenciar'; $lang['Please select at least two groups'] = 'Por favor, selecione ao menos dois grupos'; $lang['Rename'] = 'Renomear'; @@ -936,7 +938,7 @@ $lang['Last visit on %s, %s.'] = 'Última visita em %s, %s.'; $lang['Loading...'] = 'Carregando...'; $lang['No matching user found'] = 'Nenhum usuário encontrado'; $lang['No user selected of %d users'] = 'Nenhum usuário selecionado do total de %d usuários'; -$lang['No user selected, no action possible.'] = 'Nenhum usuário selecionado, nenhuma ação possÃvel.'; +$lang['No users selected, no actions possible.'] = 'Nenhum usuário selecionado, nenhuma ação possÃvel.'; $lang['Password updated'] = 'Senha atualizada'; $lang['Registered on %s, %s.'] = 'Registrado em %s, %s.'; $lang['Show %s users'] = 'Mostra %s usuários'; @@ -985,7 +987,7 @@ $lang['Select tags'] = 'Selecionar etiquetas'; $lang['Running on an up-to-date Piwigo is important for security.'] = 'Executar um Piwigo atualizado é importante para a segurança.'; $lang['Piwigo Remote Sync is able to upload a whole folder hierarchy. If you run it again, only new photos will be uploaded.'] = 'Piwigo Remote Sync é capaz de enviar uma seleção inteira de pastas. Se você executá-lo novamente, apenas novas fotos serão enviadas.'; $lang['Piwigo %s is available, please update'] = 'Piwigo %s está disponÃvel, atualize'; -$lang['No tag selected, no action possible.'] = 'Nenhuma etiqueta selecionada, nenhuma ação possÃvel.'; +$lang['No tags selected, no actions possible.'] = 'Nenhuma etiqueta selecionada, nenhuma ação possÃvel.'; $lang['No filter on album. Select one or type to search'] = 'Nenhum filtro no álbum. Selecione um ou digite para pesquisar'; $lang['It only takes a few clicks.'] = 'Demora apenas alguns cliques.'; $lang['First photo added'] = 'Primeira foto adicionada'; @@ -1009,4 +1011,4 @@ $lang['Visit'] = 'Visita'; $lang['Welcome!'] = 'Bem vindo!'; $lang['With no checksum'] = 'Sem soma de verificação'; $lang['checksums to add'] = 'somas de verificação para adicionar'; -$lang['or'] = 'ou'; \ No newline at end of file +$lang['or'] = 'ou'; diff --git a/language/pt_PT/admin.lang.php b/language/pt_PT/admin.lang.php index d683730c5..6e13b66d6 100644 --- a/language/pt_PT/admin.lang.php +++ b/language/pt_PT/admin.lang.php @@ -609,7 +609,7 @@ $lang['Missing Plugins'] = 'Extenções em Falta'; $lang['No file was uploaded'] = 'Nenhum carregado qualquer arquivo'; $lang['No photo in the current set.'] = 'Nenhuma foto no conjunto actual.'; $lang['No photo selected, %d photos in current set'] = 'Nenhuma foto seleccionada, %d fotos no conjunto actual'; -$lang['No photo selected, no action possible.'] = 'Nenhuma foto seleccionada, ImpossÃvel realizar acção.'; +$lang['No photos selected, no actions possible.'] = 'Nenhuma foto seleccionada, ImpossÃvel realizar acção.'; $lang['None'] = 'Nenhuma'; $lang['on the %d selected photos'] = 'Nas %d fotos seleccionadas'; $lang['Operation in progress'] = 'Operação em progresso.'; @@ -812,6 +812,7 @@ $lang['Cancel'] = 'Cancelar'; $lang['List'] = 'Lista'; $lang['Web Form'] = 'Formulário web'; $lang['Applications'] = 'Aplicações'; +$lang['Piwigo for Android application empowers you to connect your Android phone or table to your Piwigo gallery, create some albums and upload several photos at once.'] = 'A aplicação Piwigo for Android permite-lhe ligar do seu telefone Android ou Tablet à galeria Piwigo, criar albuns e carregar diversas fotos simultâneamente.'; $lang['Piwigo for iOS application empowers you to connect to your Piwigo gallery from your iPhone, iPad or iPod Touch, create some albums and upload several photos at once.'] = 'A aplicação Piwigo for iOS permite-lhe, ligação à sua galeria Piwigo a partir do seu IPhone,IPad ou IPod táctil, criar albuns e carregar fotos simultâneamente.'; $lang['Adobe Photoshop Lightroom is a photography software designed to manage large quantities of digital images and doing post production work.'] = 'Adobe Photoshop Lightroom é um software para fotografia desenhado para manusear larga quantidade de fotos digitais e para transferência depois de produzidas.'; $lang['Aperture is a powerful tool to refine images and manage massive libraries on Mac.'] = 'Abertura é uma potente ferramenta destinada a refinar imagens e gerenciar massivas livrarias em Mac.'; @@ -822,6 +823,7 @@ $lang['iPhoto is the default photo manager on MacOSX. The Piwigo export plugin l $lang['On your Linux, simply install Shotwell with your package manager and the activate Piwigo publishing option.'] = 'Em Linux, instale o Shotwell com o pacote base e, depois terá de ativar a opção ativar publicação Piwigo.'; $lang['Piwigo export plugin for Aperture'] = 'Exportar Extenção Piwigo para Aperture.'; $lang['Piwigo export plugin for iPhoto'] = 'Extenção Piwigo de exportação para Iphoto.'; +$lang['Piwigo for Android'] = 'Piwigo para Android'; $lang['Piwigo for iOS (iPhone, iPad, iPod Touch)'] = 'Piwigo para iOS (iPhone, iPad, iPod táctil)'; $lang['Piwigo publish plugin for digiKam'] = 'Extenção de publicação Piwigo para DigiKam.'; $lang['Piwigo Publish plugin for Lightroom'] = 'Extenção de publicação Piwigo para Lightroom.'; @@ -912,7 +914,7 @@ $lang['between %d and %d pixels'] = 'entre %d e %d pixels'; $lang['Duplicate'] = 'Duplicar'; $lang['Manage the members'] = 'Gerir os membros'; $lang['Merge selected groups'] = 'Omitir os grupos selecionados'; -$lang['No group selected, no action possible.'] = 'Não existe grupo selecionado, não é possivel qualquer ação'; +$lang['No groups selected, no actions possible.'] = 'Não existe grupo selecionado, não é possivel qualquer ação'; $lang['No members to manage'] = 'Sem membros para gerir'; $lang['Please select at least two groups'] = 'Selecione, por favor, pelo menos dois grupo.'; $lang['Rename'] = 'Renomear'; @@ -936,7 +938,7 @@ $lang['Last visit on %s, %s.'] = 'Última visita em %s, %s.'; $lang['Loading...'] = 'Carregando'; $lang['No matching user found'] = 'Não foram encontrados utilizadores que correspondam'; $lang['No user selected of %d users'] = 'Em %d utilizadores não foi nenhum selecionado'; -$lang['No user selected, no action possible.'] = 'Sem utilizador selecionado não é possivel qualquer ação'; +$lang['No users selected, no actions possible.'] = 'Sem utilizador selecionado não é possivel qualquer ação'; $lang['Password updated'] = 'Senha atualizada'; $lang['Registered on %s, %s.'] = 'Registado em %s, %s.'; $lang['Showing %s to %s of %s users'] = 'Mostrando %s para %s de %s utilizadores'; @@ -986,7 +988,7 @@ $lang['Display form'] = 'Formulário de exibição'; $lang['First photo added'] = 'Primeira foto adicionada'; $lang['It only takes a few clicks.'] = 'Demora apenas alguns cliques'; $lang['No filter on album. Select one or type to search'] = 'Nenhum filtro no álbum. Selecione um ou digite para pesquisar'; -$lang['No tag selected, no action possible.'] = 'Nenhuma tag selecionada, nenhuma ação possÃvel.'; +$lang['No tags selected, no actions possible.'] = 'Nenhuma tag selecionada, nenhuma ação possÃvel.'; $lang['Piwigo Remote Sync is able to upload a whole folder hierarchy. If you run it again, only new photos will be uploaded.'] = 'Piwigo Remote Sync é capaz de carregar uma hierarquia de pasta inteira. Se você executá-lo novamente, apenas novas fotos serão enviadas'; $lang['Running on an up-to-date Piwigo is important for security.'] = 'Trabalhar em um Piwigo atualizado é importante para a segurança.'; $lang['Select tags'] = 'Selecionar tags'; diff --git a/language/ro_RO/admin.lang.php b/language/ro_RO/admin.lang.php index f7dc925be..a0a490201 100644 --- a/language/ro_RO/admin.lang.php +++ b/language/ro_RO/admin.lang.php @@ -608,6 +608,7 @@ $lang['Aperture is designed for professional photographers with iPhoto simplicit $lang['Aperture is a powerful tool to refine images and manage massive libraries on Mac.'] = 'Aperture este un instrument puternic proiectat pentru redefinirea imaginilor È™i pentru gestiunea de biblioteci mari pe un sistem Mac.'; $lang['Adobe Photoshop Lightroom is a photography software designed to manage large quantities of digital images and doing post production work.'] = 'Adobe Photoshop Lightroom este un program pentru fotografii proiectat pentru a gestiona È™i a prelucra mari cantități de imagini digitale.'; $lang['Piwigo for iOS application empowers you to connect to your Piwigo gallery from your iPhone, iPad or iPod Touch, create some albums and upload several photos at once.'] = 'Piwigo pentru iOS programul vă permite să vă conectaÈ›i iPhone-ul, iPad-ul sau iPad-ul Touch la galeria dvs. Piwigo, să creaÈ›i unele albume È™i să transmiteÈ›i mai multe fotografii în acelaÈ™i timp.'; +$lang['Piwigo for Android application empowers you to connect your Android phone or table to your Piwigo gallery, create some albums and upload several photos at once.'] = 'Piwigo pentru Android programul vă permite să vă conectaÈ›i telefonul sau tableta dvs. Android la galeria dvs. Piwigo, să creaÈ›i unele albume È™i să transmiteÈ›i mai multe fotografii în acelaÈ™i timp.'; $lang['%u users have automatic permission because they belong to a granted group.'] = 'u% de utilizatori au permisiunea automată, deoarece aceÈ™tia aparÈ›in unui grup cu permisii.'; $lang['View in gallery'] = 'Vezi în galerie'; $lang['Used metadata'] = 'Metadate utilizate'; @@ -672,6 +673,7 @@ $lang['Piwigo version'] = 'Versiune Piwigo'; $lang['Please select at least two groups'] = 'Te rog alege cel puÅ£in două grupuri'; $lang['Permission granted for users'] = 'Permisiuni acordate pentru utilizator'; $lang['Permission management'] = 'Management de permisiuni'; +$lang['Piwigo for Android'] = 'Piwigo pentru Android'; $lang['Piwigo for iOS (iPhone, iPad, iPod Touch)'] = 'Piwigo pentru iOS (iPhone, iPad, iPod Touch='; $lang['The name of a group must not contain " or \' or be empty.'] = 'Numele unui grup trebuie să nu conÅ£ină " sau \' sau sa fie gol.'; $lang['The name of an album must not be empty'] = 'Numele unui album trebuie să nu fie gol'; @@ -735,7 +737,7 @@ $lang['Restore'] = 'Restaurează'; $lang['Save manual order'] = 'Salvează ordinea manuală'; $lang['Save visits in history for'] = 'Salvează vizitele în istoric pentru'; $lang['Search for new images in the directories'] = 'Caută imagini noi în dosarele'; -$lang['No group selected, no action possible.'] = 'Niciun grup ales, nicio acÅ£iune posibilă.'; +$lang['No groups selected, no actions possible.'] = 'Niciun grup ales, nicio acÅ£iune posibilă.'; $lang['No mail to send.'] = 'Niciun mesaj electronic de trimis.'; $lang['No members to manage'] = 'Niciun membru de administrat'; $lang['Merge selected groups'] = 'ÃŽmbină grupurile alese'; @@ -920,7 +922,7 @@ $lang['Hoverbox display'] = 'AfiÈ™aj în fereastră flotantă'; $lang['No display'] = 'Niciu'; $lang['No order field selected'] = 'Nicio ordine a cămpurilor aleasă'; $lang['No photo selected, %d photos in current set'] = 'Nicio fotografie aleasă, %d fotografii în setul curent'; -$lang['No photo selected, no action possible.'] = 'Nicio fotografie aleasă, nicio acÈ›iune posibilă.'; +$lang['No photos selected, no actions possible.'] = 'Nicio fotografie aleasă, nicio acÈ›iune posibilă.'; $lang['No user to send notifications by mail.'] = 'Niciun utilizator petnru a fi înÈ™tiinÈ›at prin e-mail.'; $lang['Piwigo cannot retrieve upgrade file from server'] = 'Pwigo nu poate aduce fotografiile de pe server'; $lang['Webmaster status is required.'] = 'Este necesar statutul de webmaster.'; @@ -931,7 +933,7 @@ $lang['The webmaster has unsubscribed you from receiving notifications by mail.' $lang['Basic settings'] = 'Setări de bază'; $lang['No matching user found'] = 'Niciun utilizator nu corespunde'; $lang['No user selected of %d users'] = 'Niciun utilizator selectat din %d utilizatori'; -$lang['No user selected, no action possible.'] = 'Niciun utilizator selectat, nicio acÈ›iune posibilă'; +$lang['No users selected, no actions possible.'] = 'Niciun utilizator selectat, nicio acÈ›iune posibilă'; $lang['Password updated'] = 'Parolă adusă la zi'; $lang['Showing %s to %s of %s users'] = 'Arăt de la %s la %s din %s utilizatori'; $lang['Update user'] = 'Adu la zi utilizator'; @@ -993,7 +995,7 @@ $lang['delete only album, not photos'] = 'sterge doar albumul, nu si fotografiil $lang['Piwigo %s is available, please update'] = 'Piwigo %s este disponibil, te rugăm să actualizezi'; $lang['First photo added'] = 'Prima fotografie adaugată'; $lang['No filter on album. Select one or type to search'] = 'Niciun filtru pe album. Selectează unul sau tastează pentru a căuta'; -$lang['No tag selected, no action possible.'] = 'Nicio eticheta selectată, nicio acÅ£iune posibilă'; +$lang['No tags selected, no actions possible.'] = 'Nicio eticheta selectată, nicio acÅ£iune posibilă'; $lang['Confirm deletion'] = 'Confirma stergerea'; $lang['Dashboard'] = 'Panou de control'; $lang['Delete album "%s" and its %d sub-albums.'] = 'Åžterge albumul "%s" ÅŸi %d subalbumele ale sale'; @@ -1012,4 +1014,4 @@ $lang['Visit'] = 'Vizita'; $lang['Welcome!'] = 'Bine ai venit!'; $lang['With no checksum'] = 'Fara suma de control'; $lang['checksums to add'] = 'Sume de control de adaugat'; -$lang['or'] = 'sau'; \ No newline at end of file +$lang['or'] = 'sau'; diff --git a/language/ru_RU/admin.lang.php b/language/ru_RU/admin.lang.php index c1fa66482..c8e3e7f91 100644 --- a/language/ru_RU/admin.lang.php +++ b/language/ru_RU/admin.lang.php @@ -665,7 +665,7 @@ $lang['Refresh photo set'] = 'Обновить набор изображений $lang['The whole page'] = 'Ð’Ñе на Ñтранице'; $lang['The whole set'] = 'Ð’Ñе в наборе'; $lang['No photo in the current set.'] = 'Ðет изображений в текущем наборе.'; -$lang['No photo selected, no action possible.'] = 'Ðичего не выбрано, дейÑтвие невозможно.'; +$lang['No photos selected, no actions possible.'] = 'Ðичего не выбрано, дейÑтвие невозможно.'; $lang['Choose an action'] = 'Выберите дейÑтвие'; $lang['remove author'] = 'удалить автора'; $lang['Type here the author name'] = 'напечатайте Ð¸Ð¼Ñ Ð°Ð²Ñ‚Ð¾Ñ€Ð° здеÑÑŒ'; @@ -797,6 +797,7 @@ $lang['With no album'] = 'Без альбома'; $lang['With no tag'] = 'Без меток'; $lang['With no virtual album'] = 'Без виртуальных альбомов'; $lang['%u users have automatic permission because they belong to a granted group.'] = 'Пользователи %u автоматичеÑки получили разрешение, так как входÑÑ‚ в группу, которой дано разрешение.'; +$lang['Piwigo for Android application empowers you to connect your Android phone or table to your Piwigo gallery, create some albums and upload several photos at once.'] = 'Приложение Piwigo Ð´Ð»Ñ Android позволÑет Вам ÑоединÑтьÑÑ Ñ Ð’Ð°ÑˆÐµÐ¹ галереей Piwigo Ñ Ð’Ð°ÑˆÐµÐ³Ð¾ Android телефона, Ñоздавать альбомы и загружать неÑколько фотографий Ñразу.'; $lang['add a new watermark'] = 'добавить новый водÑной знак'; $lang['administrators'] = 'админиÑтраторов'; $lang['Adobe Photoshop Lightroom is a photography software designed to manage large quantities of digital images and doing post production work.'] = 'Adobe Photoshop Lightroom - Ñто Ñофт Ð´Ð»Ñ Ñ„Ð¾Ñ‚Ð¾Ð³Ñ€Ð°Ñ„Ð¾Ð², Ñозданный Ð´Ð»Ñ ÑиÑтематизации большого количеÑтва изображений, их обработки и поÑледующего иÑпользованиÑ.'; @@ -838,11 +839,12 @@ $lang['Permission granted for groups'] = 'Разрешение предоÑта $lang['Permission granted for users'] = 'Разрешение предоÑтавлено Ð´Ð»Ñ Ð¿Ð¾Ð»ÑŒÐ·Ð¾Ð²Ð°Ñ‚ÐµÐ»ÐµÐ¹'; $lang['Permission management'] = 'Управление доÑтупом'; $lang['Photo sizes with crop'] = 'Размеры изображений Ñ ÐºÑ€Ð¾Ð¿Ð¾Ð¼'; -$lang['Piwigo export plugin for Aperture'] = 'Плагин публикации изображений Ð´Ð»Ñ Aperture'; -$lang['Piwigo export plugin for iPhoto'] = 'Плагин публикации избражений Ð´Ð»Ñ iPhoto'; -$lang['Piwigo publish plugin for digiKam'] = 'Плагин публикации изображений Ð´Ð»Ñ digiKam'; -$lang['Piwigo Publish plugin for Lightroom'] = 'Плагин публикации изображений в Piwigo из Lightroom'; -$lang['Piwigo publish plugin for Shotwell'] = 'Плагин публикации изображений Ð´Ð»Ñ Shotwell'; +$lang['Piwigo export plugin for Aperture'] = 'Плагин публикации фотографий Ð´Ð»Ñ Aperture'; +$lang['Piwigo export plugin for iPhoto'] = 'Плагин публикации фотографий Ð´Ð»Ñ iPhoto'; +$lang['Piwigo for Android'] = 'Piwigo Ð´Ð»Ñ Android'; +$lang['Piwigo publish plugin for digiKam'] = 'Плагин публикации фотографий Ð´Ð»Ñ digiKam'; +$lang['Piwigo Publish plugin for Lightroom'] = 'Плагин публикации фотографий в Piwigo из Lightroom'; +$lang['Piwigo publish plugin for Shotwell'] = 'Плагин публикации фотографий Ð´Ð»Ñ Shotwell'; $lang['ReGalAndroid (RemoteGallery client for Android) is an open source (GPL v3) Piwigo client for the Android platform.'] = 'ReGalAndroid (клиент RemoteGallery Ð´Ð»Ñ Android) - Ñто клиент Ð´Ð»Ñ Piwigo Ñ Ð¾Ñ‚ÐºÑ€Ñ‹Ñ‚Ñ‹Ð¼ кодом (GPL v3) Ð´Ð»Ñ Ð¿Ð»Ð°Ñ‚Ñ„Ð¾Ñ€Ð¼Ñ‹ Android.'; $lang['registered users'] = 'зарегиÑтрированных пользователей'; $lang['Save manual order'] = 'Сохранить ручную Ñортировку'; @@ -916,7 +918,7 @@ $lang['between %d and %d pixels'] = 'между %d и %d пикÑелÑми'; $lang['Duplicate'] = 'Дубликат'; $lang['Manage the members'] = 'Управление учаÑтниками'; $lang['Merge selected groups'] = 'Объединить выбранные группы'; -$lang['No group selected, no action possible.'] = 'Группы не выбраны, поÑтому Ñделать ничего нельзÑ'; +$lang['No groups selected, no actions possible.'] = 'Группы не выбраны, поÑтому Ñделать ничего нельзÑ'; $lang['No members to manage'] = 'Ðе выбраны пользователи Ð´Ð»Ñ ÑƒÐ¿Ñ€Ð°Ð²Ð»ÐµÐ½Ð¸Ñ'; $lang['Please select at least two groups'] = 'ПожалуйÑта, выберите Ñ…Ð¾Ñ‚Ñ Ð±Ñ‹ две группы'; $lang['Rename'] = 'Переименовать'; @@ -935,7 +937,7 @@ $lang['(filtered from %s total users)'] = '(отобрано из %s - обще $lang['All %d users are selected'] = '%d - вÑе пользователи выбраны'; $lang['No matching user found'] = 'СоответÑтвующих пользователей не найдено'; $lang['No user selected of %d users'] = 'Ðе выбраны из %d пользователей'; -$lang['No user selected, no action possible.'] = 'Пользователи не выбраны; дейÑтвие невозможно.'; +$lang['No users selected, no actions possible.'] = 'Пользователи не выбраны; дейÑтвие невозможно.'; $lang['Registered on %s, %s.'] = 'ЗарегиÑтрировано %s, %s.'; $lang['Show %s users'] = '%s пользователей показывать'; $lang['Showing %s to %s of %s users'] = 'Показаны пользователи Ñ %s по %s из %s'; @@ -979,7 +981,7 @@ $lang['No filter on album. Select one or type to search'] = 'Ðе фильтра $lang['Share / Send your photos directly from your Mac Os X (10.10 and following) to Piwigo'] = 'ДелитеÑÑŒ или отправлÑйте Ваши Ð¸Ð·Ð¾Ð±Ñ€Ð°Ð¶ÐµÐ½Ð¸Ñ Ð¸Ð· Mac Os X (10.10 выше) прÑмо в Piwigo'; $lang['Time has come to update your Piwigo with version %s, go to %s'] = 'Пришло Ð²Ñ€ÐµÐ¼Ñ Ð¾Ð±Ð½Ð¾Ð²Ð¸Ñ‚ÑŒ Piwigo Ñ Ð²ÐµÑ€Ñии %s до %s'; $lang['delete album and all %d photos, even the %d associated to other albums'] = 'удаление альбома, в котором %d изображений, в том чиÑле %d ÑвÑзанные Ñ Ð´Ñ€ÑƒÐ³Ð¸Ð¼Ð¸ альбомами'; -$lang['No tag selected, no action possible.'] = 'ТÑг не выбран, дейÑтвие невозможно.'; +$lang['No tags selected, no actions possible.'] = 'ТÑг не выбран, дейÑтвие невозможно.'; $lang['Piwigo %s is available, please update'] = 'ДоÑтупна верÑÐ¸Ñ Piwigo %s. ПожалуйÑта, обновитеÑÑŒ.'; $lang['Running on an up-to-date Piwigo is important for security.'] = 'Своевременное обновление и работа только на Ñвежей верÑии Piwigo имеет важное значение Ð´Ð»Ñ Ð±ÐµÐ·Ð¾Ð¿Ð°ÑноÑти.'; $lang['delete album and the %d orphan photos'] = 'удаление альбома и %d неÑвÑзанных изображений'; @@ -1010,4 +1012,4 @@ $lang['Synchronization in progress'] = 'Идет ÑинхронизациÑ'; $lang['Welcome!'] = 'Добро пожаловать!'; $lang['With no checksum'] = 'Без контрольной Ñуммы'; $lang['checksums to add'] = 'добавить коннтрольную Ñумму'; -$lang['or'] = 'или '; \ No newline at end of file +$lang['or'] = 'или '; diff --git a/language/sh_RS/admin.lang.php b/language/sh_RS/admin.lang.php index 10853f3ea..0bbfcfb5c 100644 --- a/language/sh_RS/admin.lang.php +++ b/language/sh_RS/admin.lang.php @@ -653,7 +653,7 @@ $lang['All languages are up to date.'] = 'Svi jezici su ažurni.'; $lang['All plugins are up to date.'] = 'Svi plaginovi su ažurni.'; $lang['All themes are up to date.'] = 'Sve teme su ažurne.'; $lang['Allowed file types: %s.'] = 'Dozvoljeni tipovi fajlova: %s'; -$lang['An error has occured during extract. Please check files permissions of your piwigo installation.Click here to show log error.'] = 'Dogodila se greÅ¡ka u toku raspakivanja. Molimo proverite dozvole na fajlovima VaÅ¡e piwigo instalacije. +$lang['An error has occured during extract. Please check files permissions of your piwigo installation.Click here to show log error.'] = 'Dogodila se greÅ¡ka u toku raspakivanja. Molimo proverite dozvole na fajlovima VaÅ¡e piwigo instalacije. Kliknite ovde da biste videli zapis greÅ¡ke.'; $lang['An error has occured during upgrade.'] = 'Dogodila se greÅ¡ka u toku nadgradnje.'; $lang['Apply action'] = 'Primeni akciju'; @@ -725,7 +725,7 @@ $lang['No destination tag selected'] = 'Nije odabrana odrediÅ¡na oznaka'; $lang['No file was uploaded'] = 'Nije poslat ni jedan fajl'; $lang['No photo in the current set.'] = 'Nema fotografija u trenutnom skupu'; $lang['No photo selected, %d photos in current set'] = 'Nema odabranih fotografija, %d fotografija u trenutnom skupu'; -$lang['No photo selected, no action possible.'] = 'Nema odabranih fotografija, nema dozvoljenih akcija'; +$lang['No photos selected, no actions possible.'] = 'Nema odabranih fotografija, nema dozvoljenih akcija'; $lang['No results'] = 'Nema rezultata'; $lang['Not cropped correctly?'] = 'PogreÅ¡no iseÄeno?'; $lang['Notify administrators when a comment is'] = 'Obavesti administratore kada je komentar'; @@ -822,10 +822,12 @@ $lang['You have %d orphan tags: %s.'] = 'Imate %d napuÅ¡tenih oznaka: %s.'; $lang['You have specified $conf[\'order_by\'] in your local configuration file, this parameter in deprecated, please remove it or rename it into $conf[\'order_by_custom\'] !'] = 'OznaÄili ste $conf[\'order_by\'] u svom lokalnom podeÅ¡avanju, ovaj parametar je zastareo, molimo uklonite ga ili ga preimenujte u $conf[\'order_by_custom\']!'; $lang['Zoom'] = 'Uvećaj'; $lang['Delete selected tags'] = 'ObriÅ¡i odabrane oznake'; +$lang['Piwigo for Android application empowers you to connect your Android phone or table to your Piwigo gallery, create some albums and upload several photos at once.'] = 'Piwigo for Android aplikacija omogućava Vam da se povežete sa VaÅ¡om Piwigo galerijom preko Adroid telefona ili tablet raÄunara, možete da kreirate albume i poÅ¡aljete nekoliko slika odjednom.'; $lang['Piwigo for iOS application empowers you to connect to your Piwigo gallery from your iPhone, iPad or iPod Touch, create some albums and upload several photos at once.'] = 'Piwigo za iOS aplikacija omogućava Vam da se povežete sa VaÅ¡om Piwigo galerijom preko iPhone, iPad ili iPod Touch ureÄ‘aja, možete da kreirate albume i poÅ¡aljete nekoliko slika odjednom.'; $lang['Adobe Photoshop Lightroom is a photography software designed to manage large quantities of digital images and doing post production work.'] = 'Adobe Photoshop Lightroom je softver za fotografije dizajniran da upravlja velikom koliÄinom digitalnih slika i za postprodukciju.'; $lang['Available on'] = 'Dostupno na'; $lang['Delete selected users'] = 'ObriÅ¡i odabrane korisnike'; +$lang['Piwigo for Android'] = 'Piwigo za Android'; $lang['Piwigo for iOS (iPhone, iPad, iPod Touch)'] = 'Piwigo za iOs (iPhone, iPad, iPod Touch)'; $lang['Piwigo Publish plugin for Lightroom'] = 'Piwigo Publish plagin za Ligtroom'; $lang['Piwigo publish plugin for Shotwell'] = 'Piwigo publish plagin za Shotwell'; diff --git a/language/sk_SK/admin.lang.php b/language/sk_SK/admin.lang.php index 4a337eb0c..52a565009 100644 --- a/language/sk_SK/admin.lang.php +++ b/language/sk_SK/admin.lang.php @@ -663,7 +663,7 @@ $lang['Refresh photo set'] = 'ObnoviÅ¥ foto súbor'; $lang['The whole page'] = 'Celá stránka'; $lang['The whole set'] = 'Celý súbor'; $lang['No photo in the current set.'] = 'Žiadna fotografia v súÄasnom súbore.'; -$lang['No photo selected, no action possible.'] = 'Nie je oznaÄená žiadna fotografia, nie je možné pokraÄovaÅ¥ v akcii.'; +$lang['No photos selected, no actions possible.'] = 'Nie je oznaÄená žiadna fotografia, nie je možné pokraÄovaÅ¥ v akcii.'; $lang['Choose an action'] = 'Zvoľ akciu'; $lang['remove author'] = 'odstrániÅ¥ autora'; $lang['Type here the author name'] = 'Sem napÃÅ¡te meno autora'; @@ -814,6 +814,8 @@ $lang['Applications'] = 'Aplikácie'; $lang['Available on'] = 'K dispozÃcii'; $lang['Piwigo for iOS (iPhone, iPad, iPod Touch)'] = 'Piwigo pre iOS (iPhone, iPad, iPod Touch)'; $lang['Piwigo for iOS application empowers you to connect to your Piwigo gallery from your iPhone, iPad or iPod Touch, create some albums and upload several photos at once.'] = 'Piwigo pre iOS aplikácie umožňujúcej spojenie na VaÅ¡u Piwigo galériu pre Váš iPhone, iPad alebo iPod Touch, vytváranie albumov a nahrávanie fotografiÃ.'; +$lang['Piwigo for Android'] = 'Piwigo pre Android'; +$lang['Piwigo for Android application empowers you to connect your Android phone or table to your Piwigo gallery, create some albums and upload several photos at once.'] = 'Piwigo pre Android aplikácie umožňujúcej spojenie na VaÅ¡u Piwigo galériu pre Váš iPhone, iPad alebo iPod Touch, vytváranie albumov a nahrávanie fotografiÃ.'; $lang['Piwigo Publish plugin for Lightroom'] = 'Piwigo publikaÄný doplnok pre Lightroom'; $lang['Adobe Photoshop Lightroom is a photography software designed to manage large quantities of digital images and doing post production work.'] = 'Adobe Photoshop Lightroom je fotografický softvér urÄený na správu väÄÅ¡ieho poÄtu digitálnych fotografià a postprodukÄnú prácu.'; $lang['The Piwigo publish Plug-in allows you to export and synchronize photos from Lightroom directly to your Piwigo photo gallery.'] = 'Piwigo publikaÄný doplnok umožňuje export a synchronizáciu fotografià z Lightroomu priamo do VaÅ¡ej Piwigo foto galérie.'; @@ -915,7 +917,7 @@ $lang['This group will be unset to default'] = 'Táto skupina už viac nebude po $lang['This group will be set to default'] = 'Táto skupina bude použitá ako predvolená'; $lang['Rename'] = 'PremenovaÅ¥'; $lang['Please select at least two groups'] = 'ProsÃm oznaÄte aspoň dve skupiny'; -$lang['No group selected, no action possible.'] = 'Žiadna skupina nie je oznaÄená, žiadna akcia nie je možná.'; +$lang['No groups selected, no actions possible.'] = 'Žiadna skupina nie je oznaÄená, žiadna akcia nie je možná.'; $lang['No members to manage'] = 'Žiadni použÃvatelia na spravovanie'; $lang['Manage the members'] = 'SpravovaÅ¥ použÃvateľov'; $lang['Merge selected groups'] = 'PridaÅ¥ oznaÄené skupiny'; @@ -936,7 +938,7 @@ $lang['Showing %s to %s of %s users'] = 'Zobrazených %s až %s z %s použÃvate $lang['Show %s users'] = 'Zobrazených %s použÃvateľov'; $lang['Registered on %s, %s.'] = 'Registrované na %s, %s.'; $lang['Password updated'] = 'Heslo aktualizované'; -$lang['No user selected, no action possible.'] = 'Žiaden použÃvateľ oznaÄený, žiadna akcia možná.'; +$lang['No users selected, no actions possible.'] = 'Žiaden použÃvateľ oznaÄený, žiadna akcia možná.'; $lang['No user selected of %d users'] = 'Žiaden použÃvateľ z %d použÃvateľov oznaÄený'; $lang['No matching user found'] = 'Nenájdený požÃvateľ'; $lang['Loading...'] = 'Nahrávam...'; @@ -983,7 +985,7 @@ $lang['Select tags'] = 'Vyberte kľúÄové slová'; $lang['Running on an up-to-date Piwigo is important for security.'] = 'Spustenie na aktuálnom Piwigo je dôležité pre bezpeÄnosÅ¥.'; $lang['Piwigo Remote Sync is able to upload a whole folder hierarchy. If you run it again, only new photos will be uploaded.'] = 'Piwigo Remote Sync dokáže nahraÅ¥ celú hierarchiu prieÄinkov. Ak ho znovu spustite, nahrajú sa iba nové fotky.'; $lang['Piwigo %s is available, please update'] = 'Piwigo %s je k dispozÃcii, prosÃm aktualizujte'; -$lang['No tag selected, no action possible.'] = 'Nie je vybrané žiadne kľúÄové slovo, nie je možná žiadna akcia.'; +$lang['No tags selected, no actions possible.'] = 'Nie je vybrané žiadne kľúÄové slovo, nie je možná žiadna akcia.'; $lang['No filter on album. Select one or type to search'] = 'Na albume nie je filter. Vyberte jeden alebo typ pre vyhľadávanie'; $lang['It only takes a few clicks.'] = 'StaÄà len niekoľko kliknutÃ.'; $lang['First photo added'] = 'Prvá fotografia bola pridaná'; @@ -1007,4 +1009,4 @@ $lang['Visit'] = 'NávÅ¡teva'; $lang['Welcome!'] = 'Vitajte!'; $lang['With no checksum'] = 'Bez kontrolného súÄtu'; $lang['checksums to add'] = 'kontrolné súÄty, ktoré sa majú pridaÅ¥'; -$lang['or'] = 'alebo'; \ No newline at end of file +$lang['or'] = 'alebo'; diff --git a/language/sl_SI/admin.lang.php b/language/sl_SI/admin.lang.php index 5433d1572..08273323f 100644 --- a/language/sl_SI/admin.lang.php +++ b/language/sl_SI/admin.lang.php @@ -255,6 +255,7 @@ $lang['%s in the future'] = '%s naprej'; $lang['%u users have automatic permission because they belong to a granted group.'] = '%u uporabniki imajo samodejno dovoljenje ker pripadajo odobreni skupini'; $lang['A locked gallery is only visible to administrators'] = 'Zaklenjeno galerijo lahko vidijo le Administratorji'; $lang['Piwigo for iOS application empowers you to connect to your Piwigo gallery from your iPhone, iPad or iPod Touch, create some albums and upload several photos at once.'] = 'Piwigo za iOS je aplikacija, ki vam omogoÄi povezavo z vaÅ¡o Piwigo galerijo preko iOS naprave (iPhone, iPad ali iPod Touch) . Ustvarite nove albume in naložite veÄ fotografij hkrati.'; +$lang['Piwigo for Android application empowers you to connect your Android phone or table to your Piwigo gallery, create some albums and upload several photos at once.'] = 'Piwigo za Android je aplikacija, ki vam omogoÄi povezavo z vaÅ¡o Piwigo galerijo preko Andriod naprave. Ustvarite nove albume in naložite veÄ fotografij hkrati.'; $lang['%d physicals'] = ' %d fiziÄen'; $lang['%d month'] = '%d mesec'; $lang['%d months'] = '%d mesecev'; @@ -401,7 +402,7 @@ $lang['No photo selected, %d photos in current set'] = 'OznaÄene ni nobene foto $lang['No photo can be deleted'] = 'Ni fotografij, ki bi jih bilo mogoÄe izbrisati'; $lang['No photo in the current set.'] = 'V tem nizu ni fotografij'; $lang['No mail to send.'] = 'Ni maila, ki bi ga lahko poslali'; -$lang['No group selected, no action possible.'] = 'OznaÄena ni nobena skupina, izvesti ni mogoÄe nobenega ukaza'; +$lang['No groups selected, no actions possible.'] = 'OznaÄena ni nobena skupina, izvesti ni mogoÄe nobenega ukaza'; $lang['No group is permitted to see this private album'] = 'Nobena skupina nima dovoljenja za ogled tega privatnega albuma'; $lang['No members to manage'] = 'Ni Älanov za upravljanje'; $lang['No order field selected'] = 'Ni oznaÄenega vrstnega reda polj'; @@ -846,6 +847,7 @@ $lang['Piwigo cannot retrieve upgrade file from server'] = 'Piwigo ne more prene $lang['Piwigo configuration'] = 'Piwigo nastavitve'; $lang['Piwigo export plugin for Aperture'] = 'Piwigo izvoz vtiÄnika za Aperture'; $lang['Piwigo export plugin for iPhoto'] = 'Piwigo izvoz vtiÄnika za iPhoto'; +$lang['Piwigo for Android'] = 'Piwigo za Android'; $lang['Piwigo for iOS (iPhone, iPad, iPod Touch)'] = 'Pivigo za iOS (iPhone, iPad, iPod Touch)'; $lang['Piwigo publish plugin for Shotwell'] = 'Piwigo objavni vtiÄnik za Shotwell'; $lang['Piwigo publish plugin for digiKam'] = 'Piwigo objavni vtiÄnik za digiKam'; @@ -917,7 +919,7 @@ $lang['Optimizations have been completed with some errors.'] = 'Optimizacija se $lang['Optional URL keyword'] = 'Opcijska URL kljuÄna beseda'; $lang['Options'] = 'Možnosti'; $lang['Order of menubar items has been updated successfully.'] = 'Razvrstitev elementov menijske vrstice je bila uspeÅ¡no posodobljena'; -$lang['No photo selected, no action possible.'] = 'Ker ni izbrana nobena slika, ni možno nobeno dejanje.'; +$lang['No photos selected, no actions possible.'] = 'Ker ni izbrana nobena slika, ni možno nobeno dejanje.'; $lang['No results'] = 'Ni rezultatov'; $lang['No user to send notifications by mail.'] = 'Noben uporabnik ne bo obveÅ¡Äen preko e-poÅ¡te.'; $lang['Resize after upload disabled due to the use of GD as graphic library'] = 'Stiskanje fotografij pred nalaganjem je onemogoÄeno zaradi uporabe GD grafiÄne knjižnice.'; @@ -934,7 +936,7 @@ $lang['Last visit on %s, %s.'] = 'Zadnji obisk %s, %s.'; $lang['Loading...'] = 'Nalaganje...'; $lang['No matching user found'] = 'Ne najdem ustreznih uporabnikov'; $lang['No user selected of %d users'] = 'Izbran ni noben uporabnik od %d uporabnikov'; -$lang['No user selected, no action possible.'] = 'Izbran ni noben uporabnik, nobeno dejanje ni mogoÄe'; +$lang['No users selected, no actions possible.'] = 'Izbran ni noben uporabnik, nobeno dejanje ni mogoÄe'; $lang['Password updated'] = 'Geslo posodobljeno'; $lang['Registered on %s, %s.'] = 'Registrirani %s, %s.'; $lang['Show %s users'] = 'Prikaži %s uporabnikov'; @@ -980,7 +982,7 @@ $lang['Display form'] = 'Prikazna oblika'; $lang['First photo added'] = 'Prva slika dodana'; $lang['It only takes a few clicks.'] = 'Potrebno je le nekaj klikov'; $lang['No filter on album. Select one or type to search'] = 'Ni filtra za album. Izberite enega ali tipkajte za izbiro'; -$lang['No tag selected, no action possible.'] = 'Ni izbranih oznak, nobena akcija ni možna.'; +$lang['No tags selected, no actions possible.'] = 'Ni izbranih oznak, nobena akcija ni možna.'; $lang['Piwigo %s is available, please update'] = 'Piwigo %s je na voljo, prosimo posodobite namestitev'; $lang['Piwigo Remote Sync is able to upload a whole folder hierarchy. If you run it again, only new photos will be uploaded.'] = 'Piwigo Oddaljena Sinhronizacija je sposobna prenesti celotno hirearhijo folderjev. ÄŒe jo izvedete ponovno se prenesejo le nove fotografije.'; $lang['Running on an up-to-date Piwigo is important for security.'] = 'Uporaba posodobljene Piwigo namestitve je pomembna zaradi varnosti.'; @@ -1005,4 +1007,4 @@ $lang['Visit'] = 'ObiÅ¡Äi'; $lang['Welcome!'] = 'DobrodoÅ¡li'; $lang['With no checksum'] = 'Brez kontrolne vsote'; $lang['checksums to add'] = 'kontrolne vsote za dodati'; -$lang['or'] = 'ali'; \ No newline at end of file +$lang['or'] = 'ali'; diff --git a/language/sr_RS/admin.lang.php b/language/sr_RS/admin.lang.php index 368d13850..95e990331 100644 --- a/language/sr_RS/admin.lang.php +++ b/language/sr_RS/admin.lang.php @@ -660,7 +660,7 @@ $lang['include child albums'] = 'укључи подалбуме'; $lang['manual order'] = 'ручно уређивање'; $lang['No photo in the current set.'] = 'Ðема фотографија у одабраном Ñкупу.'; $lang['No photo selected, %d photos in current set'] = 'Ðиједна одабрана фотографија, број фотографија у одабраном Ñкупу: %d'; -$lang['No photo selected, no action possible.'] = 'Ðиједна одабрана фотографија, нема могућих операција.'; +$lang['No photos selected, no actions possible.'] = 'Ðиједна одабрана фотографија, нема могућих операција.'; $lang['on the %d selected photos'] = 'on the %d одабране Ñлике'; $lang['Orphan tags deleted'] = 'Orphan ознака обриÑана'; $lang['Refresh photo set'] = 'Обнови Ñкуп Ñлика'; @@ -795,6 +795,7 @@ $lang['Move to album'] = 'Пребаци у албум'; $lang['Minimum width'] = 'Минимална ширина'; $lang['Minimum height'] = 'Минимална виÑина'; $lang['Landscape'] = 'Положено'; +$lang['Piwigo for Android'] = 'ПиВиГо за Ðндроид'; $lang['Panorama'] = 'Панорама'; $lang['Select groups...'] = 'Одабери групе ...'; $lang['Select users...'] = 'Одабери кориÑнике ...'; @@ -879,6 +880,7 @@ $lang['X Repeat'] = 'X понављања'; $lang['pending validation'] = 'чека на потврду'; $lang['visitors need to login and have the appropriate permissions to see this album'] = 'поÑетиоци морају бити пријављени и да поÑедују одговарајуће дозволе како би видели овај албум'; $lang['(filtered from %s total users)'] = '(изфилтрирано од %s кориÑника)'; +$lang['Piwigo for Android application empowers you to connect your Android phone or table to your Piwigo gallery, create some albums and upload several photos at once.'] = 'Ðпликација Piwigo за Ðндроид вам омогућава да повежете телефон или таблет Ñа Piwigo галеријом, правите албуме и шаљете по неколико Ñлика одједном.'; $lang['Piwigo for iOS application empowers you to connect to your Piwigo gallery from your iPhone, iPad or iPod Touch, create some albums and upload several photos at once.'] = 'Ðпликација Piwigo за iOS бам омогућава да повежете Piwigo галерију Ñа iPhone, iPad или iPod Touch уређајима, правите албуме и шаљете по неколико Ñлика одједном.'; $lang['Activate it now'] = 'Ðктивирај Ñада'; $lang['Center of interest'] = 'Центар интереÑа'; @@ -925,7 +927,7 @@ $lang['Piwigo publish plugin for digiKam'] = 'Piwigo објављивање за $lang['Please select at least two groups'] = 'Изаберите најмање две групе'; $lang['No order field selected'] = 'Ðије изабрано поље за редоÑлед'; $lang['No user selected of %d users'] = 'Ðије изабран ни један од %d кориÑника'; -$lang['No user selected, no action possible.'] = 'Ðије изабран кориÑник, није могућа ни једна радња.'; +$lang['No users selected, no actions possible.'] = 'Ðије изабран кориÑник, није могућа ни једна радња.'; $lang['Notify administrators when a comment is'] = 'ОбавеÑти админиÑтраторе када је коментар'; $lang['Numeric identifier : %d'] = 'Број Ñлике: %d'; $lang['Select at least one tag'] = 'Изаберите бар једну ознаку'; @@ -936,7 +938,7 @@ $lang['Features include gallery browsing, album creation and photo upload.'] = ' $lang['For photo sizes with crop, such as "Square", Piwigo will do its best to include the center of interest.'] = 'Уколико треба иÑећи део Ñлике, као код коцкаÑтог приказа, Piwigo ће Ñе потрудити да иÑечак Ñадржи интереÑни центар.'; $lang['If no HD is available and if the current websize is bigger than resize dimensions, Piwigo will move it as HD and create a downsized websize photo from it.'] = 'Уколико велике, HD Ñлике ниÑу доÑтупне и уколико је изабрана величина за приказ на вебу већа од умањене Ñлике'; $lang['Mail theme'] = 'Мејл тема'; -$lang['No group selected, no action possible.'] = 'Ðије изабрана група, па није могућа операција.'; +$lang['No groups selected, no actions possible.'] = 'Ðије изабрана група, па није могућа операција.'; $lang['No matching user found'] = 'Ðије пронађен кориÑник'; $lang['No members to manage'] = 'Ðема кориÑника за управљање'; $lang['Open user details'] = 'Јавни подави о кориÑнику'; @@ -992,7 +994,7 @@ $lang['Display form'] = 'Форма приказа'; $lang['First photo added'] = 'Додата прва фотографија'; $lang['It only takes a few clicks.'] = 'Потребно је Ñамо неколико клика.'; $lang['No filter on album. Select one or type to search'] = 'Ðема филтера или албума. Изаберите један или унеÑите у претрагу.'; -$lang['No tag selected, no action possible.'] = 'Ðије изабрана ознака, није могућа ни једна радња.'; +$lang['No tags selected, no actions possible.'] = 'Ðије изабрана ознака, није могућа ни једна радња.'; $lang['Piwigo %s is available, please update'] = 'ДоÑтупан је Пивиго %s, ажурирајте вашу верзију.'; $lang['Display album date period'] = 'Прикажи опÑег датума из Ñваког албума, нпр. „од 12. до 15. јула 2018.“'; $lang['Display category date'] = 'Прикажи датум за категорију'; @@ -1008,4 +1010,4 @@ $lang['%d checksums were added'] = 'Додато је %d Ñума за пров $lang['... or hide this link'] = '… или Ñакриј ову везу'; $lang['Compute %d missing checksums'] = 'Прорачунај %d недоÑтајућих Ñума за проверу'; $lang['Create a first album'] = 'Ðаправите први албум'; -$lang['Deletion in progress'] = 'БриÑање је у току'; \ No newline at end of file +$lang['Deletion in progress'] = 'БриÑање је у току'; diff --git a/language/sv_SE/admin.lang.php b/language/sv_SE/admin.lang.php index 93162c24c..0740cfa97 100644 --- a/language/sv_SE/admin.lang.php +++ b/language/sv_SE/admin.lang.php @@ -664,7 +664,7 @@ $lang['Refresh photo set'] = 'Uppdatera bilder'; $lang['The whole page'] = 'Hela sidan'; $lang['The whole set'] = 'Hela markeringen'; $lang['No photo in the current set.'] = 'inga bilder i den aktuella markeringen..'; -$lang['No photo selected, no action possible.'] = 'Inga foton är valda, inga Ã¥tgärder är möjlig.'; +$lang['No photos selected, no actions possible.'] = 'Inga foton är valda, inga Ã¥tgärder är möjlig.'; $lang['Choose an action'] = 'Välj en Ã¥tgärd'; $lang['remove author'] = 'ta bort författaren'; $lang['Type here the author name'] = 'Skriv författarens namn här'; @@ -814,6 +814,8 @@ $lang['Applications'] = 'Applikationer'; $lang['Available on'] = 'Tillgängliga pÃ¥'; $lang['Piwigo for iOS (iPhone, iPad, iPod Touch)'] = 'Piwigo för iOS (iPhone, iPad, iPod Touch)'; $lang['Piwigo for iOS application empowers you to connect to your Piwigo gallery from your iPhone, iPad or iPod Touch, create some albums and upload several photos at once.'] = 'Piwigo för iOS applikationer tillÃ¥ter dig ansluta till ditt Piwigo galleri frÃ¥n din iPhone, iPad eller iPod Touch, skapa nÃ¥gra album och ladda upp flera bilder pÃ¥ en gÃ¥ng.'; +$lang['Piwigo for Android'] = 'Piwigo för Android'; +$lang['Piwigo for Android application empowers you to connect your Android phone or table to your Piwigo gallery, create some albums and upload several photos at once.'] = 'Piwigo för Android applikationer tillÃ¥ter dig ansluta till ditt Piwigo galleri frÃ¥n din Android telefon eller tablet, skapa nÃ¥gra album och ladda upp flera bilder pÃ¥ en gÃ¥ng.'; $lang['Piwigo Publish plugin for Lightroom'] = 'Piwigo Publish insticksmodul för Lightroom'; $lang['Adobe Photoshop Lightroom is a photography software designed to manage large quantities of digital images and doing post production work.'] = 'Adobe Photoshop Lightroom är en fotoredigeringsmjukvara designad för att hantera stora mängder bilder och göra efterredigering.'; $lang['The Piwigo publish Plug-in allows you to export and synchronize photos from Lightroom directly to your Piwigo photo gallery.'] = 'Insticksmodulen för Piwigo publicering möjliggör export och synkronisering av bilder mellan Lightroom och ditt bildgalleri.'; @@ -916,7 +918,7 @@ $lang['Please select at least two groups'] = 'Vänligen välj minst tvÃ¥ grupper $lang['Panorama'] = 'Panorama'; $lang['Number of albums per page'] = 'Antal album per sida'; $lang['No members to manage'] = 'Inga medlemmar att hantera'; -$lang['No group selected, no action possible.'] = 'Ingen grupp vald, ingen Ã¥tgärd möjlig'; +$lang['No groups selected, no actions possible.'] = 'Ingen grupp vald, ingen Ã¥tgärd möjlig'; $lang['Name of the duplicate'] = 'Namn pÃ¥ kopia'; $lang['Minimum width'] = 'Minsta bredd'; $lang['Minimum height'] = 'Minsta höjd'; @@ -926,7 +928,7 @@ $lang['Resize after upload disabled due to the use of GD as graphic library'] = $lang['The picture dimensions will be reduced to %dx%d pixels.'] = 'Bildens dimension kommer att reduceras till %dx%d pixlar.'; $lang['Select at least one tag'] = 'Välj minst en etikett'; $lang['(filtered from %s total users)'] = '(filtrerat frÃ¥n totalt %s användare)'; -$lang['No user selected, no action possible.'] = 'Ingen användare vald, ingen Ã¥tgärd möjlig.'; +$lang['No users selected, no actions possible.'] = 'Ingen användare vald, ingen Ã¥tgärd möjlig.'; $lang['No matching user found'] = 'Ingen matchande användare funnen'; $lang['Registered on %s, %s.'] = 'Registrerad %s, %s.'; $lang['Users modified'] = 'Användare modifierade'; @@ -979,7 +981,7 @@ $lang['(determined from photos)'] = '(bestäms frÃ¥n foton)'; $lang['Display form'] = 'Visningsforumlär'; $lang['Piwigo Remote Sync is able to upload a whole folder hierarchy. If you run it again, only new photos will be uploaded.'] = 'Piwigi Fjärrsynk kan ladda upp en hel folderhierarki. Om du kör den igen, kommer bara nya foton att laddas upp.'; $lang['Piwigo %s is available, please update'] = 'Piwigo %s är tillgänglig, vänligen uppdatera'; -$lang['No tag selected, no action possible.'] = 'Ingen tagg vald, ingen Ã¥tgärd är möjlig'; +$lang['No tags selected, no actions possible.'] = 'Ingen tagg vald, ingen Ã¥tgärd är möjlig'; $lang['No filter on album. Select one or type to search'] = 'Inga filter pÃ¥ foldrarna. Välj en eller skriv för att söka'; $lang['delete only album, not photos'] = 'Radera bara folder, inte foton'; $lang['delete album and all %d photos, even the %d associated to other albums'] = 'Radera folder och alla %d foton, även %d associerade med andra foldrar'; @@ -1008,4 +1010,4 @@ $lang['Deletion in progress'] = 'Borttagning pÃ¥gÃ¥r'; $lang['Create a first album'] = 'Skapa ett första album'; $lang['Compute %d missing checksums'] = 'Fullborda %d saknade checksummor'; $lang['... or hide this link'] = '... eller göm denna länk'; -$lang['%d checksums were added'] = '%d checksummor lades till'; \ No newline at end of file +$lang['%d checksums were added'] = '%d checksummor lades till'; diff --git a/language/ta_IN/admin.lang.php b/language/ta_IN/admin.lang.php index 71826e3de..2f4a75147 100644 --- a/language/ta_IN/admin.lang.php +++ b/language/ta_IN/admin.lang.php @@ -85,6 +85,7 @@ $lang['(this tag will be deleted)'] = '(இநà¯à®¤ கà¯à®±à®¿ நீக௠$lang['+ Add an upload box'] = '+ ஒர௠பதிவேறà¯à®± பெடà¯à®Ÿà®¿à®¯à¯ˆ சேரà¯à®•à¯à®•வà¯à®®à¯'; $lang[', click on'] = 'சொடà¯à®•à¯à®•வà¯à®®à¯ மீதà¯'; $lang['... or '] = '... அலà¯à®²à®¤à¯'; +$lang['Piwigo for Android application empowers you to connect your Android phone or table to your Piwigo gallery, create some albums and upload several photos at once.'] = ' Android கà¯à®•ான Piwigo em> பயனà¯à®ªà®¾à®Ÿà¯à®Ÿà¯ உஙà¯à®•ள௠Piwigo கேலரியில௠உஙà¯à®•ள௠Android தொலைபேசி அலà¯à®²à®¤à¯ வரைபடà¯à®Ÿà®¿à®•ை இணைகà¯à®• அனà¯à®®à®¤à®¿à®•à¯à®•à¯à®®à¯, சில ஆலà¯à®ªà®™à¯à®•ளை உரà¯à®µà®¾à®•à¯à®• மறà¯à®±à¯à®®à¯ ஒரே நேரதà¯à®¤à®¿à®²à¯ பல பà¯à®•ைபà¯à®ªà®Ÿà®™à¯à®•ளை பதிவேறà¯à®±à®²à®¾à®®à¯.'; $lang['Piwigo for iOS application empowers you to connect to your Piwigo gallery from your iPhone, iPad or iPod Touch, create some albums and upload several photos at once.'] = ' Piwigo iOS கà¯à®•௠em> பயனà¯à®ªà®¾à®Ÿà¯à®Ÿà¯ சில ஆலà¯à®ªà®™à¯à®•ளை உரà¯à®µà®¾à®•à¯à®•ி ஒரே நேரதà¯à®¤à®¿à®²à¯ பல பà¯à®•ைபà¯à®ªà®Ÿà®™à¯à®•ளை பதிவேறà¯à®±, உஙà¯à®•ள௠à®à®ªà¯‡à®¾à®©à¯, à®à®ªà®¾à®Ÿà¯ அலà¯à®²à®¤à¯ à®à®ªà®¾à®Ÿà¯ டச௠உஙà¯à®•ள௠Piwigo கேலரி இணைகà¯à®• நீஙà¯à®•ள௠அதிகாரமளிகà¯à®•ிகிறதà¯.'; $lang['ACCESS_3'] = 'நிரà¯à®µà®¾à®•ிகள௠அணà¯à®•லà¯'; $lang['ACCESS_4'] = 'வலை மேலாளரà¯à®•ள௠அணà¯à®•லà¯'; diff --git a/language/th_TH/admin.lang.php b/language/th_TH/admin.lang.php index 75097c58f..abfb84be8 100644 --- a/language/th_TH/admin.lang.php +++ b/language/th_TH/admin.lang.php @@ -391,7 +391,7 @@ $lang['No photo can be deleted'] = "ไม่มีรูปที่สาม $lang['No photo in the current set.'] = 'ไม่มีรูปภาพในชุดปัจจุบันนี้.'; $lang['No photo in this album'] = "ไม่มีรูปภาพในà¸à¸±à¸¥à¸šà¸±à¹‰à¸¡à¸™à¸µà¹‰"; $lang['No photo selected, %d photos in current set'] = 'ไม่มีรูปที่ได้เลืà¸à¸à¹„ว้,มีรูปทั้งหมด %d รูปในเซตนี้'; -$lang['No photo selected, no action possible.'] = 'ไม่มีรูปภาพที่ได้เลืà¸à¸à¹„ว้.'; +$lang['No photos selected, no actions possible.'] = 'ไม่มีรูปภาพที่ได้เลืà¸à¸à¹„ว้.'; $lang['No results'] = "ไม่มี ผลลัพธ์"; $lang['No user to send notifications by mail.'] = "ไม่มีผู้ใช้งานที่ได้ติดต่à¸à¸—างเมล."; $lang['no write access'] = "ไม่มีà¸à¸²à¸£à¹€à¸‚ียนà¸à¸²à¸£à¹€à¸‚้าถึงข้à¸à¸¡à¸¹à¸¥"; @@ -786,6 +786,7 @@ $lang['%s ago'] = '%d ที่à¹à¸¥à¹‰à¸§'; $lang['%s has been successfully updated.'] = '%s ได้à¸à¸±à¸žà¹€à¸”ตข้à¸à¸¡à¸¹à¸¥à¸¡à¸¹à¸¥à¹€à¸£à¸µà¸¢à¸šà¸£à¹‰à¸à¸¢à¹à¸¥à¹‰à¸§.'; $lang['%s in the future'] = '%s ในà¸à¸™à¸²à¸„ต'; $lang['%u users have automatic permission because they belong to a granted group.'] = 'à¸à¸³à¸«à¸™à¸”ให้ผู้ใช้ได้รับà¸à¸™à¸¸à¸à¸²à¸•โดยà¸à¸±à¸•โนมัติ เนื่à¸à¸‡à¸ˆà¸²à¸à¸žà¸§à¸à¹€à¸‚าà¸à¸¢à¸¹à¹ˆà¹ƒà¸™à¸à¸¥à¸¸à¹ˆà¸¡à¸—ี่ได้รับà¸à¸™à¸¸à¸à¸²à¸•à¸à¸¢à¸¹à¹ˆà¹à¸¥à¹‰à¸§'; +$lang['Piwigo for Android application empowers you to connect your Android phone or table to your Piwigo gallery, create some albums and upload several photos at once.'] = 'Piwigo สำหรับ à¹à¸à¸™à¸”รà¸à¸¢à¸”์ à¹à¸à¸žà¸žà¸¥à¸´à¹€à¸„ชั่นที่จะช่วยให้คุณสามารถเชื่à¸à¸¡à¸•่à¸à¹‚ทรศัพท์ à¹à¸à¸™à¸”รà¸à¸¢à¸”์ หรืà¸à¹à¸—็บเลต ไปยังà¸à¸±à¸¥à¸šà¸±à¹‰à¸¡à¸£à¸¹à¸›, เพื่à¸à¸ªà¸£à¹‰à¸²à¸‡à¸à¸±à¸¥à¸šà¸±à¹‰à¸¡ à¹à¸¥à¸°à¸à¸±à¸žà¹‚หลดรูปขà¸à¸‡à¸„ุณ.'; $lang['Piwigo for iOS application empowers you to connect to your Piwigo gallery from your iPhone, iPad or iPod Touch, create some albums and upload several photos at once.'] = 'Piwigo สำหรับ ไà¸à¹‚à¸à¹€à¸à¸ª à¹à¸à¸žà¸žà¸¥à¸´à¹€à¸„ชั่นที่จะช่วยให้คุณสามารถเชื่à¸à¸¡à¸•่à¸à¹‚ทรศัพท์ ไปยังà¸à¸±à¸¥à¸šà¸±à¹‰à¸¡à¸£à¸¹à¸› จาภไà¸à¹‚ฟน หรืà¸à¹„à¸à¹à¸žà¸”ทัช, เพื่à¸à¸ªà¸£à¹‰à¸²à¸‡à¸à¸±à¸¥à¸šà¸±à¹‰à¸¡ à¹à¸¥à¸°à¸à¸±à¸žà¹‚หลดรูปขà¸à¸‡à¸„ุณ.'; $lang['A locked gallery is only visible to administrators'] = 'à¹à¸à¸¥à¸¥à¸à¸£à¸µà¹ˆà¸–ูà¸à¸¥à¹‡à¸à¸ สามารถใช้งานได้เฉพาะผู้ดูà¹à¸¥à¸£à¸°à¸šà¸š'; $lang['Activate comments'] = 'เปิดใช้งานคà¸à¸¡à¹€à¸¡à¹‰à¸™à¸•์'; @@ -824,6 +825,7 @@ $lang['Original file : %s'] = 'ไฟล์ต้นฉบับ : %s'; $lang['Permission management'] = 'à¸à¸²à¸£à¸ˆà¸±à¸”à¸à¸²à¸£à¸à¸²à¸£à¸à¸™à¸¸à¸à¸²à¸•'; $lang['Photo name'] = 'ชื่à¸à¸£à¸¹à¸›à¸ าพ'; $lang['Photo sizes with crop'] = 'ขนาดรูปถ่ายที่มีตัด'; +$lang['Piwigo for Android'] = 'Piwigo สำหรับ Android'; $lang['Piwigo for iOS (iPhone, iPad, iPod Touch)'] = 'Piwigo สำหรับ iOS (iPhone, iPad, iPod Touch)'; $lang['Predefined filter'] = 'ตัวà¸à¸£à¸à¸‡à¸—ี่à¸à¸³à¸«à¸™à¸”ไว้ล่วงหน้า'; $lang['Source tag'] = 'à¹à¸«à¸¥à¹ˆà¸‡à¸—ี่มาขà¸à¸‡à¸›à¹‰à¸²à¸¢à¸Šà¸·à¹ˆà¸'; @@ -915,7 +917,7 @@ $lang['between %d and %d pixels'] = 'ระหว่าง %d à¹à¸¥à¸° %d พ $lang['Duplicate'] = 'สำเนา'; $lang['Manage the members'] = 'จัดà¸à¸²à¸£à¸ªà¸¡à¸²à¸Šà¸´à¸'; $lang['Merge selected groups'] = 'รวมà¸à¸¥à¸¸à¹ˆà¸¡à¸—ี่เลืà¸à¸'; -$lang['No group selected, no action possible.'] = 'ยังไม่ได้เลืà¸à¸à¸à¸¥à¸¸à¹ˆà¸¡, ไม่สามารถรวมà¸à¸¥à¸¸à¹ˆà¸¡à¹„ด้'; +$lang['No groups selected, no actions possible.'] = 'ยังไม่ได้เลืà¸à¸à¸à¸¥à¸¸à¹ˆà¸¡, ไม่สามารถรวมà¸à¸¥à¸¸à¹ˆà¸¡à¹„ด้'; $lang['No members to manage'] = 'ไม่มีสมาชิà¸à¸—ี่จะจัดà¸à¸²à¸£'; $lang['Please select at least two groups'] = 'โปรดเลืà¸à¸à¸à¸¥à¸¸à¹ˆà¸¡à¸à¸¢à¹ˆà¸²à¸‡à¸™à¹‰à¸à¸¢à¸ªà¸à¸‡à¸à¸¥à¸¸à¹ˆà¸¡'; $lang['Rename'] = 'เปลี่ยนชื่à¸'; @@ -945,7 +947,7 @@ $lang['Impossible to deactivate the default theme.'] = 'เป็นไปไม $lang['Mail address is mandatory for registration'] = 'à¸à¸µà¹€à¸¡à¸¥à¸™à¸µà¹‰à¸¡à¸µà¸œà¸¥à¸šà¸±à¸‡à¸„ับใช้สำหรับà¸à¸²à¸£à¸¥à¸‡à¸—ะเบียน'; $lang['No and unlock sub-albums'] = 'ไม่มีà¹à¸¥à¸°à¸›à¸¥à¸”ล็à¸à¸„à¸à¸±à¸¥à¸šà¸±à¹‰à¸¡à¸¢à¹ˆà¸à¸¢'; $lang['No user selected of %d users'] = 'ไม่มีผู้ใช้งานที่ถูà¸à¹€à¸¥à¸·à¸à¸ %d ผู้ใช้งาน'; -$lang['No user selected, no action possible.'] = 'ไม่มีผู้ใช้งานที่ถูà¸à¹€à¸¥à¸·à¸à¸, ไม่มีà¸à¸²à¸£à¸”ำเนินà¸à¸²à¸£à¹ƒà¸”ที่เป็นไปได้'; +$lang['No users selected, no actions possible.'] = 'ไม่มีผู้ใช้งานที่ถูà¸à¹€à¸¥à¸·à¸à¸, ไม่มีà¸à¸²à¸£à¸”ำเนินà¸à¸²à¸£à¹ƒà¸”ที่เป็นไปได้'; $lang['Registered on %s, %s.'] = 'ลงทะเบียนเมื่ภon %s, %s.'; $lang['Select at least one tag'] = 'เลืà¸à¸à¸à¸¢à¹ˆà¸²à¸‡à¸™à¹‰à¸ 1 à¹à¸—็à¸'; $lang['The settings for the guest are from the %s user'] = 'à¸à¸²à¸£à¸•ั้งค่าสำหรับผู้มาเยี่ยมชม %s ผู้ใช้งาน'; @@ -984,7 +986,7 @@ $lang['Dashboard'] = 'à¹à¸œà¸‡à¸„วบคุม'; $lang['Running on an up-to-date Piwigo is important for security.'] = 'ใช้งาน Piwigo เวà¸à¸£à¹Œà¸Šà¸±à¹ˆà¸™à¸—ี่เป็นปัจจุบัน มันสำคัà¸à¸¡à¸²à¸à¸ªà¸³à¸«à¸£à¸±à¸šà¹€à¸£à¸·à¹ˆà¸à¸‡à¸„วาม'; $lang['delete only album, not photos'] = 'ลบเฉพาะà¸à¸±à¸¥à¸šà¸±à¹‰à¸¡à¹€à¸—่านั้น, (ไม่ลบรูปภาพ)'; $lang['Piwigo %s is available, please update'] = 'Piwigo %s พร้à¸à¸¡à¹ƒà¸Šà¹‰à¸‡à¸²à¸™à¹à¸¥à¹‰à¸§, à¸à¸£à¸¸à¸“าà¸à¸±à¸›à¹€à¸”ต'; -$lang['No tag selected, no action possible.'] = 'ไม่มีà¹à¸—็à¸à¸—ี่ถูà¸à¹€à¸¥à¸·à¸à¸, ไม่มีà¸à¸²à¸£à¸”ำเนินà¸à¸²à¸£à¹ƒà¸”ๆ'; +$lang['No tags selected, no actions possible.'] = 'ไม่มีà¹à¸—็à¸à¸—ี่ถูà¸à¹€à¸¥à¸·à¸à¸, ไม่มีà¸à¸²à¸£à¸”ำเนินà¸à¸²à¸£à¹ƒà¸”ๆ'; $lang['It only takes a few clicks.'] = 'เพียงไม่à¸à¸µà¹ˆà¸„ลิà¸'; $lang['No filter on album. Select one or type to search'] = 'ไม่มีตัวà¸à¸£à¸à¸‡à¹ƒà¸™à¸à¸±à¸¥à¸šà¸±à¹‰à¸¡. โปรดเลืà¸à¸à¸›à¸£à¸°à¹€à¸ ทà¸à¸²à¸£à¸„้นหา'; $lang['Delete album "%s" and its %d sub-albums.'] = 'ลบà¸à¸±à¸¥à¸šà¸±à¹‰à¸¡ "%s" à¹à¸¥à¸° à¸à¸±à¸¥à¸šà¸±à¹‰à¸¡à¸¢à¹ˆà¸à¸¢ %d .'; diff --git a/language/tr_TR/admin.lang.php b/language/tr_TR/admin.lang.php index 99c5adab8..c3edf8535 100644 --- a/language/tr_TR/admin.lang.php +++ b/language/tr_TR/admin.lang.php @@ -435,7 +435,7 @@ $lang['No photo can be deleted'] = 'FotoÄŸraf silinemez'; $lang['No photo in the current set.'] = 'Bu yığınde fotoÄŸraf bulunmuyor'; $lang['No photo in this album'] = 'Bu albümde fotoÄŸraf yok'; $lang['No photo selected, %d photos in current set'] = 'Yığındeki %d fotoÄŸraftan hiçbiri seçilmedi'; -$lang['No photo selected, no action possible.'] = 'FotoÄŸraf seçilmedi, iÅŸlem yapılamaz.'; +$lang['No photos selected, no actions possible.'] = 'FotoÄŸraf seçilmedi, iÅŸlem yapılamaz.'; $lang['No results'] = 'Sonuç yok'; $lang['No user to send notifications by mail.'] = 'e-Posta yoluyla bilgilendirilecek hiç kullanıcı bulunmuyor.'; $lang['no write access'] = 'Yazma yetkisi yok'; @@ -776,6 +776,7 @@ $lang['You need to upgrade your system to take full advantage of the application $lang['Your configuration settings are saved'] = 'Yapılandırma ayarları kaydedildi'; $lang['Zoom'] = 'YakınlaÅŸtırma'; $lang['%u users have automatic permission because they belong to a granted group.'] = 'izin verilmiÅŸ bir gruba ait oldukları için %u kullanıcı otomatik izine sahip.'; +$lang['Piwigo for Android application empowers you to connect your Android phone or table to your Piwigo gallery, create some albums and upload several photos at once.'] = 'Android için Piwigo uygulaması ile Android telefon veya tablet\'inizden Piwigo galerinize baÄŸlanmaya, albümler yaratmanıza ve birden fazla fotoÄŸraf birden aktarmanıza izin verir.'; $lang['Piwigo for iOS application empowers you to connect to your Piwigo gallery from your iPhone, iPad or iPod Touch, create some albums and upload several photos at once.'] = 'Piwigo for iOS uygulaması ile iPhone, iPad veya iPod Touch\'ınızdan Piwigo galerinize baÄŸlanmaya, albümler yaratmanıza ve birden fazla fotoÄŸraf birden aktarmanıza izin verir. '; $lang['A locked gallery is only visible to administrators'] = 'Kilitli bir galeri sadece yöneticiler tarafından görülebilir'; $lang['Activate comments'] = 'Yorumları etkinleÅŸtir'; @@ -812,6 +813,7 @@ $lang['Photo sizes with crop'] = 'Kırparak fotoÄŸrafı boyutlandır'; $lang['Piwigo Publish plugin for Lightroom'] = 'Lightroom için Piwigo Publish eklentisi '; $lang['Piwigo export plugin for Aperture'] = 'Aperture için Piwigo aktarım eklentisi'; $lang['Piwigo export plugin for iPhoto'] = 'iPhoto için Piwigo aktarım eklentisi'; +$lang['Piwigo for Android'] = 'Android için Piwigo'; $lang['Piwigo for iOS (iPhone, iPad, iPod Touch)'] = 'iOS (iPhone, iPad, iPod Touch) için Piwigo'; $lang['Piwigo publish plugin for Shotwell'] = 'Shotwell için Piwigo publish eklentisi'; $lang['Piwigo publish plugin for digiKam'] = 'digiKam için Piwigo publish eklentisi'; @@ -913,7 +915,7 @@ $lang['Type here the name of the new group'] = 'Buraya yeni grubun ismini yazın $lang['Duplicate'] = 'Kopyasını al'; $lang['Manage the members'] = 'Üyeleri yönet'; $lang['Merge selected groups'] = 'Seçilen grupları birleÅŸtir'; -$lang['No group selected, no action possible.'] = 'Hiç bir grup seçili deÄŸil, herhangi bir iÅŸlem yapılamaz'; +$lang['No groups selected, no actions possible.'] = 'Hiç bir grup seçili deÄŸil, herhangi bir iÅŸlem yapılamaz'; $lang['No members to manage'] = 'Yönetecek üye yok'; $lang['Please select at least two groups'] = 'En azından iki grup seçin'; $lang['Rename'] = 'Yeniden adlandır'; @@ -931,7 +933,7 @@ $lang['No user selected of %d users'] = '%d kullanıcıdan hiçbiri seçilmedi'; $lang['User %s added'] = 'Kullanıcı %s eklendi'; $lang['Update user'] = 'Kullanıcıyı güncelle'; $lang['Show %s users'] = '%s kullanıcıyı göster'; -$lang['No user selected, no action possible.'] = 'Hiç bir kullanıcı seçilmedi, iÅŸlem yapılamaz.'; +$lang['No users selected, no actions possible.'] = 'Hiç bir kullanıcı seçilmedi, iÅŸlem yapılamaz.'; $lang['Last visit on %s, %s.'] = '%s \'ye son ziyaretiniz, %s.'; $lang['on the %d selected users'] = 'seçilen %d kullanıcıda'; $lang['Users modified'] = 'Kullanıcılarda deÄŸiÅŸiklik yapıldı'; @@ -970,7 +972,7 @@ $lang['Orphans'] = 'Sahipsizler'; $lang['Recipients'] = 'Alıcılar'; $lang['Y Repeat'] = 'Y Tekrarla'; $lang['It only takes a few clicks.'] = 'sadece bir kaç tıklama yeterli.'; -$lang['No tag selected, no action possible.'] = 'Etiket seçilmedi'; +$lang['No tags selected, no actions possible.'] = 'Etiket seçilmedi'; $lang['Piwigo %s is available, please update'] = 'Piwigo %s mevcut, lütfen güncelleyiniz'; $lang['delete only album, not photos'] = 'resimler hariç, sadece albümü sil'; $lang['Confirm deletion'] = 'Silmeyi onayla'; @@ -1005,4 +1007,4 @@ $lang['Some checksums are missing.'] = 'Bazı kontrol toplamları eksik.'; $lang['Display category date'] = 'Kategori tarihini görüntüle'; $lang['Compute %d missing checksums'] = '%d eksik kontrol toplamı hesapla'; $lang['... or hide this link'] = '... yada bu baÄŸlantıyı gizle'; -$lang['%d checksums were added'] = '%d kontrol toplamları ilave edildi'; \ No newline at end of file +$lang['%d checksums were added'] = '%d kontrol toplamları ilave edildi'; diff --git a/language/uk_UA/admin.lang.php b/language/uk_UA/admin.lang.php index 8b54d07be..9b8aca740 100644 --- a/language/uk_UA/admin.lang.php +++ b/language/uk_UA/admin.lang.php @@ -321,7 +321,7 @@ $lang['Deactivate all'] = 'Деактивувати вÑе'; $lang['No file was uploaded'] = 'Файл не був завантажений'; $lang['No mail to send.'] = 'Ðемає пошти Ð´Ð»Ñ Ð²Ñ–Ð´Ð¿Ñ€Ð°Ð²ÐºÐ¸.'; $lang['No photo selected, %d photos in current set'] = 'Ðемає виділених зображень, %d Ð·Ð¾Ð±Ñ€Ð°Ð¶ÐµÐ½Ð½Ñ Ð² поточному наборі'; -$lang['No photo selected, no action possible.'] = 'Ðемає виділених фотографій, немає можливих дій.'; +$lang['No photos selected, no actions possible.'] = 'Ðемає виділених фотографій, немає можливих дій.'; $lang['No results'] = 'Ðемає результату'; $lang['No user to send notifications by mail.'] = 'Ðемає кориÑтувачів Ð´Ð»Ñ Ð¾Ð¿Ð¾Ð²Ñ–Ñ‰ÐµÐ½Ð½Ñ Ð¿Ð¾ÑˆÑ‚Ð¾ÑŽ.'; $lang['Notification'] = 'ОповіщеннÑ'; @@ -812,8 +812,10 @@ $lang['Web Form'] = 'Веб-форми'; $lang['Available on'] = 'ДоÑтупні на'; $lang['Delete multiple size images'] = 'Ð’Ð¸Ð´Ð°Ð»ÐµÐ½Ð½Ñ Ð´ÐµÐºÑ–Ð»ÑŒÐºÐ¾Ñ… зображень розміром'; $lang['Generate multiple size images'] = 'Ð¡Ñ‚Ð²Ð¾Ñ€ÐµÐ½Ð½Ñ Ð´ÐµÐºÑ–Ð»ÑŒÐºÐ¾Ñ… зображень розміром'; +$lang['Piwigo for Android'] = 'Piwigo Ð´Ð»Ñ Android'; $lang['Piwigo for iOS (iPhone, iPad, iPod Touch)'] = 'Piwigo Ð´Ð»Ñ iOS(iPhone, iPad, iPod Touch)'; $lang['%u users have automatic permission because they belong to a granted group.'] = '%u кориÑтувачі мають автоматичний дозвіл, тому що вони належать до наданої групи.'; +$lang['Piwigo for Android application empowers you to connect your Android phone or table to your Piwigo gallery, create some albums and upload several photos at once.'] = 'Piwigo Ð´Ð»Ñ Android додаток дозволÑÑ” вам підключити ваш телефон або планшет в галерею Piwigo, Ñтворити кілька альбомів Ñ– завантажити декілька зображень одночаÑно.'; $lang['Piwigo for iOS application empowers you to connect to your Piwigo gallery from your iPhone, iPad or iPod Touch, create some albums and upload several photos at once.'] = 'Piwigo Ð´Ð»Ñ iOS додаток дає можливіÑть підключатиÑÑŒ до вашої галереї Piwigo з вашого ÑенÑорного iPhone, iPad та iPod, Ñтворити кілька альбомів Ñ– завантажити декілька зображень одночаÑно.'; $lang['Adobe Photoshop Lightroom is a photography software designed to manage large quantities of digital images and doing post production work.'] = 'Adobe Photoshop Lightroom ÑвлÑÑ” Ñобою програмне Ð·Ð°Ð±ÐµÐ·Ð¿ÐµÑ‡ÐµÐ½Ð½Ñ Ñ„Ð¾Ñ‚Ð¾Ð³Ñ€Ð°Ñ„Ð°, призначене Ð´Ð»Ñ ÑƒÐ¿Ñ€Ð°Ð²Ð»Ñ–Ð½Ð½Ñ Ð²ÐµÐ»Ð¸ÐºÐ¾ÑŽ кількіÑтю цифрових зображень Ñ– робить роботу поÑтпродакшн.'; $lang['any visitor can see this album'] = 'будь-Ñкий відвідувач може бачити цей альбом'; @@ -911,7 +913,7 @@ $lang['between %d and %d pixels'] = 'між %d Ñ– %d пікÑелÑми'; $lang['Duplicate'] = 'Дублювати'; $lang['Manage the members'] = 'ÐšÐµÑ€ÑƒÐ²Ð°Ð½Ð½Ñ ÑƒÑ‡Ð°Ñниками'; $lang['Merge selected groups'] = 'Ð—Ð»Ð¸Ñ‚Ñ‚Ñ Ð²Ð¸Ð±Ñ€Ð°Ð½Ð¸Ñ… груп'; -$lang['No group selected, no action possible.'] = 'Жодна група не вибрана, не можливі ніÑкі дії.'; +$lang['No groups selected, no actions possible.'] = 'Жодна група не вибрана, не можливі ніÑкі дії.'; $lang['No members to manage'] = 'Ðемає учаÑників Ð´Ð»Ñ ÑƒÐ¿Ñ€Ð°Ð²Ð»Ñ–Ð½Ð½Ñ'; $lang['Please select at least two groups'] = 'Виберіть щонайменше дві групи'; $lang['Rename'] = 'Перейменувати'; @@ -935,7 +937,7 @@ $lang['Last visit on %s, %s.'] = 'Був на Ñайті %s, %s.'; $lang['Loading...'] = 'ЗавантаженнÑ...'; $lang['No matching user found'] = 'Відповідних кориÑтувачі не знайдено'; $lang['No user selected of %d users'] = 'Ðе вибраний жоден з %d кориÑтувачів '; -$lang['No user selected, no action possible.'] = 'Жоден кориÑтувач не обраний, ніÑкі дії можливі.'; +$lang['No users selected, no actions possible.'] = 'Жоден кориÑтувач не обраний, ніÑкі дії можливі.'; $lang['Password updated'] = 'Пароль оновлений'; $lang['Registered on %s, %s.'] = 'ЗареєÑтрований %s, %s.'; $lang['Show %s users'] = 'Відображати %s кориÑтувачів'; @@ -975,7 +977,7 @@ $lang['Time has come to update your Piwigo with version %s, go to %s'] = 'ÐÐ°Ñ $lang['delete album and all %d photos, even the %d associated to other albums'] = 'видалити альбом Ñ– вÑÑ– %d фотографії, навіть, %d пов\'Ñзані з іншими альбомами'; $lang['Piwigo %s is available, please update'] = 'Piwigo %s доÑтупний до оновленнÑ, будь лаÑка, оновітьÑÑ'; $lang['No filter on album. Select one or type to search'] = 'Ðемає фільтрів на альбомі. Виберіть один або введіть Ð´Ð»Ñ Ð¿Ð¾ÑˆÑƒÐºÑƒ'; -$lang['No tag selected, no action possible.'] = 'Теґи не вибрано, ніÑкі дії неможливі.'; +$lang['No tags selected, no actions possible.'] = 'Теґи не вибрано, ніÑкі дії неможливі.'; $lang['Running on an up-to-date Piwigo is important for security.'] = 'Робота на ÑучаÑній Piwigo важлива Ð´Ð»Ñ Ð±ÐµÐ·Ð¿ÐµÐºÐ¸.'; $lang['Select tags'] = 'Виберіть теги'; $lang['Storage used'] = 'ВикориÑтано пам\'Ñті'; @@ -1005,4 +1007,4 @@ $lang['With no checksum'] = 'Без контрольної Ñуми'; $lang['checksums to add'] = 'контрольні Ñуми Ð´Ð»Ñ Ð´Ð¾Ð´Ð°Ð²Ð°Ð½Ð½Ñ'; $lang['or'] = 'чи'; $lang['Deletion in progress'] = 'ВиконуєтьÑÑ Ð²Ð¸Ð´Ð°Ð»ÐµÐ½Ð½Ñ'; -$lang['Create a first album'] = 'Створіть перший альбом'; \ No newline at end of file +$lang['Create a first album'] = 'Створіть перший альбом'; diff --git a/language/vi_VN/admin.lang.php b/language/vi_VN/admin.lang.php index 367c2c746..1624e6a07 100644 --- a/language/vi_VN/admin.lang.php +++ b/language/vi_VN/admin.lang.php @@ -663,7 +663,7 @@ $lang['Refresh photo set'] = 'Cáºp nháºt bá»™ hình'; $lang['The whole page'] = 'Nguyên cả trang'; $lang['The whole set'] = 'Nguyên cả bá»™'; $lang['No photo in the current set.'] = 'Không có hình nà o trong bá»™ hiện tại.'; -$lang['No photo selected, no action possible.'] = 'Không có hình nà o được chá»n, không tác vụ nà o được thá»±c hiện.'; +$lang['No photos selected, no actions possible.'] = 'Không có hình nà o được chá»n, không tác vụ nà o được thá»±c hiện.'; $lang['Choose an action'] = 'Chá»n má»™t tác vụ'; $lang['remove author'] = 'bá» tác giả'; $lang['Type here the author name'] = 'Nháºp tên tác giả và o đây'; @@ -813,6 +813,8 @@ $lang['Applications'] = 'Các ứng dụng'; $lang['Available on'] = 'Có thể dùng được và o'; $lang['Piwigo for iOS (iPhone, iPad, iPod Touch)'] = 'Phiên bản Piwigo cho iOS (iPhone, iPad, iPod Touch)'; $lang['Piwigo for iOS application empowers you to connect to your Piwigo gallery from your iPhone, iPad or iPod Touch, create some albums and upload several photos at once.'] = 'Phiên bản Piwigo cho iOS ứng dụng cho phép bạn kết nối Piwigo cá»§a mình từ iPhone, iPad hoặc iPod Touch, tạo albums ảnh và tải lên máy chá»§ lưu trữ ảnh ngay láºp tức.'; +$lang['Piwigo for Android'] = 'Phiên bản Piwigo cho Android'; +$lang['Piwigo for Android application empowers you to connect your Android phone or table to your Piwigo gallery, create some albums and upload several photos at once.'] = 'Phiên bản Piwigo cho Android ứng dụng cho phép bạn kết nối Piwigo cá»§a mình từ Ä‘iện thoại chạy Android hoặc máy tÃnh bảng, tạo albums ảnh và tải lên máy chá»§ lưu trữ ảnh ngay láºp tức.'; $lang['Piwigo Publish plugin for Lightroom'] = 'Plugin Publish cá»§a Piwigo cho Lightroom'; $lang['%d day'] = '%d ngà y'; $lang['%d days'] = '%d ngà y'; @@ -870,7 +872,7 @@ $lang['Minimum height'] = 'Chiá»u cao tối thiểu'; $lang['Multiple Size'] = 'Äa kÃch thước'; $lang['Name of the duplicate'] = 'Tên cá»§a phần trùng lặp'; $lang['No group is permitted to see this private album'] = 'Không nhóm nà o được phép xem album loại riêng tư'; -$lang['No group selected, no action possible.'] = 'Không nhóm nà o được chá»n, không thể thá»±c thi được tác vụ nà o.'; +$lang['No groups selected, no actions possible.'] = 'Không nhóm nà o được chá»n, không thể thá»±c thi được tác vụ nà o.'; $lang['No members to manage'] = 'Không có thà nh viên nà o để quản lý'; $lang['No order field selected'] = 'Không có tham số vị trà nà o được chá»n'; $lang['Number of albums per page'] = 'Số album ảnh trên má»™t trang'; @@ -936,7 +938,7 @@ $lang['Last visit on %s, %s.'] = 'Xem lần cuối và o lúc %s, %s.'; $lang['Loading...'] = 'Äang tải...'; $lang['No matching user found'] = 'Không tìm thấy ngưá»i dùng nà o phù hợp'; $lang['No user selected of %d users'] = 'Không có ngưá»i dùng nà o được chá»n trong số %d ngưá»i dùng'; -$lang['No user selected, no action possible.'] = 'Không có ngưá»i dùng nà o được chá»n nên không thể là m tiếp'; +$lang['No users selected, no actions possible.'] = 'Không có ngưá»i dùng nà o được chá»n nên không thể là m tiếp'; $lang['Password updated'] = 'Máºt khẩu đã được cáºp nháºt'; $lang['Registered on %s, %s.'] = 'Äã đăng ký và o lúc %s, %s.'; $lang['Show %s users'] = 'Hiển thị %s ngưá»i dùng'; @@ -988,8 +990,8 @@ $lang['First photo added'] = 'Anhr đầu tiên đã được thêm'; $lang['It only takes a few clicks.'] = 'Chỉ tốn và i cú click chuá»™t.'; $lang['No filter on album. Select one or type to search'] = 'Khong có bá»™ lá»c bá»™ ảnh. Chá»n má»™t hoặc nháºp để tìm kiếm'; $lang['No recipient selected'] = 'Chưa chá»n ngưá»i nháºn'; -$lang['No tag selected, no action possible.'] = 'Chưa chá»n từ khóa nên không thể tiến hà nh'; +$lang['No tags selected, no actions possible.'] = 'Chưa chá»n từ khóa nên không thể tiến hà nh'; $lang['No user is permitted to see this private album'] = 'Không có ngưá»i dùng nà o được phép xem bá»™ ảnh riêng tư nà y'; $lang['Orphans'] = 'Các ảnh mồ côi'; $lang['Piwigo %s is available, please update'] = 'Piwigo %s đã có, vui lòng cáºp nháºt'; -$lang['Recipients'] = 'Các ngưá»i nháºn'; \ No newline at end of file +$lang['Recipients'] = 'Các ngưá»i nháºn'; diff --git a/language/zh_CN/admin.lang.php b/language/zh_CN/admin.lang.php index 1420177bf..8d496ce43 100644 --- a/language/zh_CN/admin.lang.php +++ b/language/zh_CN/admin.lang.php @@ -660,8 +660,8 @@ $lang['include child albums'] = '包å«å相册'; $lang['manual order'] = '手动排åº'; $lang['No photo in the current set.'] = '当å‰é›†åˆæ²¡æœ‰å›¾ç‰‡ã€‚'; $lang['No photo selected, %d photos in current set'] = '没有图片被选ä¸ï¼Œå½“å‰é›†åˆä¸æœ‰ %d å¼ å›¾ç‰‡'; -$lang['No photo selected, no action possible.'] = '没有图片被选ä¸ï¼Œä¸èƒ½æ‰§è¡Œä»»ä½•æ“作。'; -$lang['on the %d selected photos'] = '于所选的 %d å¼ å›¾ç‰‡'; +$lang['No photos selected, no actions possible.'] = '没有图片被选ä¸ï¼Œä¸èƒ½æ‰§è¡Œä»»ä½•æ“作。'; +$lang['on the %d selected photos'] = 'äºŽæ¤ %d å¼ æ‰€é€‰å›¾ç‰‡'; $lang['Orphan tags deleted'] = '未关è”ä»»ä½•å›¾ç‰‡çš„æ ‡ç¾å·²è¢«åˆ 除'; $lang['Refresh photo set'] = '刷新图片集'; $lang['Remove all filters'] = 'åˆ é™¤æ‰€æœ‰è¿‡æ»¤å™¨'; @@ -810,7 +810,8 @@ $lang['This album contains %d photos, added between %s and %s.'] = 'æ¤ç›¸å†ŒåŒ… $lang['This album contains %d photos, added on %s.'] = 'æ¤ç›¸å†ŒåŒ…å«%då¼ å›¾ç‰‡ï¼Œæ·»åŠ äºŽ%s。'; $lang['This album contains no photo.'] = 'æ¤ç›¸å†Œä¸æ²¡æœ‰å›¾ç‰‡ã€‚'; $lang['Unlock gallery'] = 'è§£é”图库'; -$lang['Piwigo for iOS application empowers you to connect to your Piwigo gallery from your iPhone, iPad or iPod Touch, create some albums and upload several photos at once.'] = '您å¯ä»¥åœ¨iPhoneã€iPad或iPod Touch上安装Piwigo iOSç‰ˆï¼Œä»¥ä¾¿éšæ—¶éšåœ°è¿žæŽ¥åˆ°æ‚¨çš„Piwigoå›¾åº“ï¼Œåˆ›å»ºç›¸å†Œå’Œä¸Šä¼ å›¾ç‰‡ã€‚'; +$lang['Piwigo for Android application empowers you to connect your Android phone or table to your Piwigo gallery, create some albums and upload several photos at once.'] = 'Piwigo Android版 使您能够从Android手机或平æ¿ç”µè„‘连接到您的Piwigoå›¾åº“ï¼Œæ–¹ä¾¿æ‚¨éšæ—¶éšåœ°åˆ›å»ºç›¸å†Œå’Œä¸Šä¼ 图片。'; +$lang['Piwigo for iOS application empowers you to connect to your Piwigo gallery from your iPhone, iPad or iPod Touch, create some albums and upload several photos at once.'] = 'Piwigo iOS版 使您能够从iPhoneã€iPad或iPod Touch连接到您的Piwigoå›¾åº“ï¼Œæ–¹ä¾¿æ‚¨éšæ—¶éšåœ°åˆ›å»ºç›¸å†Œå’Œä¸Šä¼ 图片。'; $lang['Applications'] = '应用程åº'; $lang['apply automatic sort order'] = '应用自动排åº'; $lang['Automatic sort order'] = '自动排åº'; @@ -818,6 +819,7 @@ $lang['Available on'] = 'å¯ç”¨åœ¨'; $lang['cancel manual order'] = 'å–æ¶ˆæ‰‹åŠ¨æŽ’åº'; $lang['Cancel'] = 'å–æ¶ˆ'; $lang['List'] = '列表'; +$lang['Piwigo for Android'] = 'Piwigo Android版'; $lang['Piwigo for iOS (iPhone, iPad, iPod Touch)'] = 'Piwigo iOS版 (iPhone, iPad, iPod Touch)'; $lang['Save manual order'] = 'ä¿å˜æ‰‹åŠ¨æŽ’åº'; $lang['Web Form'] = 'æµè§ˆå™¨'; @@ -926,7 +928,7 @@ $lang['Type here the name of the new group'] = '在æ¤è¾“入新组的åç§°'; $lang['Duplicate'] = 'å¤åˆ¶'; $lang['Manage the members'] = '管ç†ç”¨æˆ·'; $lang['Merge selected groups'] = 'åˆå¹¶æ‰€é€‰ç»„'; -$lang['No group selected, no action possible.'] = '没有组被选ä¸ï¼Œä¸èƒ½æ‰§è¡Œä»»ä½•æ“作。'; +$lang['No groups selected, no actions possible.'] = '没有组被选ä¸ï¼Œä¸èƒ½æ‰§è¡Œä»»ä½•æ“作。'; $lang['Purge user cache'] = '清除用户缓å˜'; $lang['The picture dimensions will be reduced to %dx%d pixels.'] = '相片的分辨率将会被å‡å°‘到 %dx%d è±¡ç´ .'; $lang['Resize after upload disabled due to the use of GD as graphic library'] = '由于使用 GD å›¾å½¢åº“ï¼Œå› æ¤ç¦ç”¨ä¸Šä¼ åŽè°ƒæ•´å¤§å°'; @@ -935,7 +937,7 @@ $lang['Basic settings'] = '基本设置'; $lang['General'] = '总体'; $lang['Mail theme'] = '邮件主题'; $lang['No user selected of %d users'] = '%d ä¸ªç”¨æˆ·ä¸æ— 用户被选ä¸'; -$lang['No user selected, no action possible.'] = 'æ— ç”¨æˆ·è¢«é€‰ä¸ï¼Œæ— 法执行。'; +$lang['No users selected, no actions possible.'] = 'æ— ç”¨æˆ·è¢«é€‰ä¸ï¼Œæ— 法执行。'; $lang['Password updated'] = '密ç 已更新'; $lang['Registered on %s, %s.'] = '注册于 %s, %s。'; $lang['Show %s users'] = '显示 %s 个用户'; @@ -987,7 +989,7 @@ $lang['Select tags'] = 'é€‰æ‹©æ ‡ç¾'; $lang['Running on an up-to-date Piwigo is important for security.'] = '使用最新版的 Piwigo 对于安全是很é‡è¦çš„。'; $lang['Piwigo Remote Sync is able to upload a whole folder hierarchy. If you run it again, only new photos will be uploaded.'] = 'Piwigo è¿œç¨‹åŒæ¥èƒ½å¤Ÿä¸Šä¼ æ•´ä¸ªç›®å½•å±‚çº§ã€‚å¦‚æžœæ‚¨å†æ¬¡è¿è¡Œï¼Œåªæœ‰æ–°çš„å›¾ç‰‡ä¼šè¢«ä¸Šä¼ ã€‚'; $lang['Piwigo %s is available, please update'] = 'Piwigo %s 已准备就绪,请å‡çº§'; -$lang['No tag selected, no action possible.'] = 'æœªé€‰æ‹©æ ‡ç¾ï¼Œæ— 法执行æ“作。'; +$lang['No tags selected, no actions possible.'] = 'æœªé€‰æ‹©æ ‡ç¾ï¼Œæ— 法执行æ“作。'; $lang['No filter on album. Select one or type to search'] = '没有相册过滤器。选择一个或输入以进行æœç´¢'; $lang['It only takes a few clicks.'] = '这仅需数次点击。'; $lang['First photo added'] = 'é¦–å¼ å›¾ç‰‡å·²æ·»åŠ '; @@ -1014,4 +1016,4 @@ $lang['Welcome!'] = '欢迎ï¼'; $lang['With no checksum'] = 'æ— æ ¡éªŒç '; $lang['checksums to add'] = 'è¦æ·»åŠ çš„æ ¡éªŒç '; $lang['or'] = '或者'; -$lang['... or hide this link'] = '... 或éšè—本链接'; \ No newline at end of file +$lang['... or hide this link'] = '... 或éšè—本链接'; diff --git a/language/zh_HK/admin.lang.php b/language/zh_HK/admin.lang.php index 43731e0db..44ae09d98 100644 --- a/language/zh_HK/admin.lang.php +++ b/language/zh_HK/admin.lang.php @@ -373,6 +373,7 @@ $lang['Are you sure to install this upgrade? You must verify if this version doe $lang['Are you sure you want to delete this plugin?'] = '確定è¦åˆªé™¤æ¤æ’ä»¶å—Ž?'; $lang['%d of %d users selected'] = '%d到%dä½ç”¨æˆ¶é¸æ“‡'; $lang['(filtered from %s total users)'] = '(å…±%sç”¨æˆ¶è¢«éŽæ¿¾ï¼‰'; +$lang['Piwigo for Android application empowers you to connect your Android phone or table to your Piwigo gallery, create some albums and upload several photos at once.'] = 'Android 版的Piwigoå…許從 Android 手機或平版連接到您的Piwigo畫廊,建立多個相冊並一次上傳多張相片。'; $lang['Piwigo for iOS application empowers you to connect to your Piwigo gallery from your iPhone, iPad or iPod Touch, create some albums and upload several photos at once.'] = 'iOS 版的Piwigoå…許您從iPhone, iPad 或 iPod Touch 連接到您的Piwigo畫廊,建立多個相冊並一次上傳多張相片。'; $lang['Add a criteria'] = 'å¢žåŠ å‡†å‰‡'; $lang['Add a filter'] = 'å¢žåŠ ç¯©é¸'; @@ -751,6 +752,7 @@ $lang['Piwigo cannot retrieve upgrade file from server'] = 'Piwigo 無法從伺 $lang['Piwigo configuration'] = 'Piwigoçš„è¨å®š'; $lang['Piwigo export plugin for Aperture'] = 'Apertureçš„Piwigo匯出æ’ä»¶'; $lang['Piwigo export plugin for iPhoto'] = 'iPhotoçš„Piwigo匯出æ’ä»¶'; +$lang['Piwigo for Android'] = 'Android 版的Piwigo'; $lang['Piwigo for iOS (iPhone, iPad, iPod Touch)'] = 'iOS (iPhone, iPad, iPod Touch) 版的 Piwigo '; $lang['Piwigo publish plugin for Shotwell'] = 'Piwigo çš„ Shotwell 照片發布æ’ä»¶ '; $lang['Piwigo publish plugin for digiKam'] = 'Piwigo çš„ ddgiKam 照片發布æ’ä»¶'; @@ -826,7 +828,7 @@ $lang['Original templates'] = '原模æ¿'; $lang['No display'] = 'ä¸é¡¯ç¤º'; $lang['No file was uploaded'] = '沒有文件被上傳'; $lang['No group is permitted to see this private album'] = '沒有群組別有權é™è§€çœ‹æ¤ç§äººç›¸å†Š'; -$lang['No group selected, no action possible.'] = '尚未é¸å–群組別,無法動作'; +$lang['No groups selected, no actions possible.'] = '尚未é¸å–群組別,無法動作'; $lang['No mail to send.'] = '沒有郵件è¦ç™¼é€.'; $lang['No matching user found'] = '沒有發ç¾åŒ¹é…的用戶'; $lang['No members to manage'] = '沒有會員å¯ä»¥ç®¡ç†'; @@ -835,10 +837,10 @@ $lang['No photo can be deleted'] = '沒有圖片å¯ä»¥åˆªé™¤'; $lang['No photo in the current set.'] = 'ç•¶å‰é›†åˆæ²’有相片.'; $lang['No photo in this album'] = '沒有相片在æ¤ç›¸å†Šè£¡'; $lang['No photo selected, %d photos in current set'] = 'æ²’æœ‰é¸æ“‡ç›¸ç‰‡, ç•¶å‰é›†åˆæœ‰%d張相片'; -$lang['No photo selected, no action possible.'] = 'æ²’æœ‰é¸æ“‡ç›¸ç‰‡ï¼Œä¸æœƒæœ‰å‹•作執行'; +$lang['No photos selected, no actions possible.'] = 'æ²’æœ‰é¸æ“‡ç›¸ç‰‡ï¼Œä¸æœƒæœ‰å‹•作執行'; $lang['No results'] = 'æ²’æœ‰çµæžœ'; $lang['No user selected of %d users'] = '%då€‹ç”¨æˆ¶æ²’æœ‰ç”¨æˆ¶é¸æ“‡'; -$lang['No user selected, no action possible.'] = 'æ²’æœ‰ç”¨æˆ¶é¸æ“‡ï¼Œæ²’有行動的å¯èƒ½ã€‚'; +$lang['No users selected, no actions possible.'] = 'æ²’æœ‰ç”¨æˆ¶é¸æ“‡ï¼Œæ²’有行動的å¯èƒ½ã€‚'; $lang['No user to send notifications by mail.'] = '沒有郵件通知用戶.'; $lang['None'] = '沒有'; $lang['Not cropped correctly?'] = '䏿£ç¢ºçš„è£å‰ª?'; diff --git a/language/zh_TW/admin.lang.php b/language/zh_TW/admin.lang.php index 6fc5ea178..a9039cdc0 100644 --- a/language/zh_TW/admin.lang.php +++ b/language/zh_TW/admin.lang.php @@ -658,7 +658,7 @@ $lang['include child albums'] = '包å«å相冊'; $lang['manual order'] = '手工排åº'; $lang['No photo in the current set.'] = 'ç•¶å‰é›†åˆæ²’有相片.'; $lang['No photo selected, %d photos in current set'] = 'æ²’æœ‰é¸æ“‡ç›¸ç‰‡, ç•¶å‰é›†åˆæœ‰ %d 張相片'; -$lang['No photo selected, no action possible.'] = 'æ²’æœ‰é¸æ“‡ç›¸ç‰‡ï¼Œä¸æœƒæœ‰å‹•作執行.'; +$lang['No photos selected, no actions possible.'] = 'æ²’æœ‰é¸æ“‡ç›¸ç‰‡ï¼Œä¸æœƒæœ‰å‹•作執行.'; $lang['on the %d selected photos'] = '在 %d 張已é¸ç›¸ç‰‡ä¸Š'; $lang['Orphan tags deleted'] = 'ç„¡é—œè¯æ¨™ç±¤å·²è¢«åˆªé™¤'; $lang['Refresh photo set'] = '刷新相片集'; @@ -814,6 +814,8 @@ $lang['Applications'] = '申請'; $lang['Available on'] = 'å¯ç”¨çš„'; $lang['Piwigo for iOS (iPhone, iPad, iPod Touch)'] = 'iOS (iPhone, iPad, iPod Touch) 版的 Piwigo '; $lang['Piwigo for iOS application empowers you to connect to your Piwigo gallery from your iPhone, iPad or iPod Touch, create some albums and upload several photos at once.'] = 'iOS 版的Piwigoå…許您從iPhone, iPad 或 iPod Touch 連接到您的Piwigo畫廊,建立多個相冊並一次上傳多張相片。'; +$lang['Piwigo for Android'] = 'Android 版的Piwigo'; +$lang['Piwigo for Android application empowers you to connect your Android phone or table to your Piwigo gallery, create some albums and upload several photos at once.'] = 'Android 版的Piwigoå…許從 Android 手機或平版連接到您的Piwigo畫廊,建立多個相冊並一次上傳多張相片。'; $lang['Piwigo Publish plugin for Lightroom'] = 'Piwigo çš„ Lightroom 照片發布æ’ä»¶'; $lang['Adobe Photoshop Lightroom is a photography software designed to manage large quantities of digital images and doing post production work.'] = 'Adobe çš„ Photoshop Lightroom 是一套æ”影軟件,å¯ç®¡ç†å¤§é‡æ•¸ä½å½±åƒå’Œé€²è¡Œå¾Œè£½å·¥ä½œã€‚'; $lang['The Piwigo publish Plug-in allows you to export and synchronize photos from Lightroom directly to your Piwigo photo gallery.'] = 'Piwigo的發布æ’ä»¶å…è¨±ä½ å¾žLightroomåŒ¯å‡ºç…§ç‰‡ï¼Œä½¿ä½ çš„Lightroom照片與您的Piwigoç›¸å†ŠåŒæ¥ã€‚'; @@ -906,7 +908,7 @@ $lang['Manage the members'] = '會員管ç†'; $lang['Merge selected groups'] = 'åˆä½µé¸æ“‡ç¾¤çµ„'; $lang['Minimum width'] = '最å°å¯¬åº¦'; $lang['Minimum height'] = '最å°é«˜åº¦'; -$lang['No group selected, no action possible.'] = '尚未é¸å–群組別,無法動作'; +$lang['No groups selected, no actions possible.'] = '尚未é¸å–群組別,無法動作'; $lang['No members to manage'] = '沒有會員å¯ä»¥ç®¡ç†'; $lang['Number of albums per page'] = 'æ¯é 相本數é‡'; $lang['Panorama'] = '全景'; @@ -934,7 +936,7 @@ $lang['Last visit on %s, %s.'] = '最後的訪å•在%s, %s。'; $lang['Loading...'] = 'åŠ è¼‰ä¸...'; $lang['No matching user found'] = '沒有發ç¾åŒ¹é…的用戶'; $lang['No user selected of %d users'] = '%då€‹ç”¨æˆ¶æ²’æœ‰ç”¨æˆ¶é¸æ“‡'; -$lang['No user selected, no action possible.'] = 'æ²’æœ‰ç”¨æˆ¶é¸æ“‡ï¼Œæ²’有行動的å¯èƒ½ã€‚'; +$lang['No users selected, no actions possible.'] = 'æ²’æœ‰ç”¨æˆ¶é¸æ“‡ï¼Œæ²’有行動的å¯èƒ½ã€‚'; $lang['Password updated'] = '更新密碼'; $lang['Registered on %s, %s.'] = '註冊在%s, %s。'; $lang['Show %s users'] = '顯示%s用戶'; diff --git a/password.php b/password.php index b19bfabad..286f0a8d7 100644 --- a/password.php +++ b/password.php @@ -238,15 +238,7 @@ function reset_password() array($conf['user_fields']['id'] => $user_id) ); - single_update( - USER_INFOS_TABLE, - array( - 'activation_key' => null, - 'activation_key_expire' => null, - ), - array('user_id' => $user_id) - ); - + deactivate_password_reset_key($user_id); deactivate_user_auth_keys($user_id); $page['infos'][] = l10n('Your password has been reset'); diff --git a/profile.php b/profile.php index cb7873cd1..f2b9a2ccd 100644 --- a/profile.php +++ b/profile.php @@ -243,6 +243,11 @@ function save_profile_from_post($userdata, &$errors) ), array($data)); + if ($_POST['mail_address'] != $userdata['email']) + { + deactivate_password_reset_key($userdata['id']); + } + $activity_details_tables[] = 'users'; } diff --git a/tags.php b/tags.php index 93f7150f4..4ae3885e0 100644 --- a/tags.php +++ b/tags.php @@ -6,25 +6,6 @@ // | file that was distributed with this source code. | // +-----------------------------------------------------------------------+ -// +-----------------------------------------------------------------------+ -// | functions | -// +-----------------------------------------------------------------------+ - -function counter_compare($a, $b) -{ - if ($a['counter'] == $b['counter']) - { - return id_compare($a, $b); - } - - return ($a['counter'] < $b['counter']) ? +1 : -1; -} - -function id_compare($a, $b) -{ - return ($a['id'] < $b['id']) ? -1 : 1; -} - // +-----------------------------------------------------------------------+ // | initialization | // +-----------------------------------------------------------------------+ @@ -145,7 +126,7 @@ else // we want only the first most represented tags, so we sort them by counter // and take the first tags - usort($tags, 'counter_compare'); + usort($tags, 'tags_counter_compare'); $tags = array_slice($tags, 0, $conf['full_tag_cloud_items_number']); // depending on its counter and the other tags counter, each tag has a level diff --git a/themes/Sylvia/icon/datepicker.png b/themes/Sylvia/icon/datepicker.png deleted file mode 100644 index 3d0e015f6..000000000 Binary files a/themes/Sylvia/icon/datepicker.png and /dev/null differ diff --git a/themes/Sylvia/icon/delete.png b/themes/Sylvia/icon/delete.png deleted file mode 100644 index 285e53e19..000000000 Binary files a/themes/Sylvia/icon/delete.png and /dev/null differ diff --git a/themes/Sylvia/icon/edit.png b/themes/Sylvia/icon/edit.png deleted file mode 100644 index 9c755cda1..000000000 Binary files a/themes/Sylvia/icon/edit.png and /dev/null differ diff --git a/themes/Sylvia/icon/errors.png b/themes/Sylvia/icon/errors.png deleted file mode 100644 index e26d8c6e5..000000000 Binary files a/themes/Sylvia/icon/errors.png and /dev/null differ diff --git a/themes/Sylvia/icon/errors_small.png b/themes/Sylvia/icon/errors_small.png deleted file mode 100644 index 724cc659c..000000000 Binary files a/themes/Sylvia/icon/errors_small.png and /dev/null differ diff --git a/themes/Sylvia/icon/favicon.ico b/themes/Sylvia/icon/favicon.ico deleted file mode 100644 index f25fffe2a..000000000 Binary files a/themes/Sylvia/icon/favicon.ico and /dev/null differ diff --git a/themes/Sylvia/icon/img_small.png b/themes/Sylvia/icon/img_small.png deleted file mode 100644 index dbfcc9a00..000000000 Binary files a/themes/Sylvia/icon/img_small.png and /dev/null differ diff --git a/themes/Sylvia/icon/index.php b/themes/Sylvia/icon/index.php deleted file mode 100644 index 58ea04e8f..000000000 --- a/themes/Sylvia/icon/index.php +++ /dev/null @@ -1,15 +0,0 @@ - diff --git a/themes/Sylvia/icon/infos.png b/themes/Sylvia/icon/infos.png deleted file mode 100644 index 00695cb8f..000000000 Binary files a/themes/Sylvia/icon/infos.png and /dev/null differ diff --git a/themes/Sylvia/icon/mimetypes/avi.png b/themes/Sylvia/icon/mimetypes/avi.png deleted file mode 100644 index b5dde0869..000000000 Binary files a/themes/Sylvia/icon/mimetypes/avi.png and /dev/null differ diff --git a/themes/Sylvia/icon/mimetypes/mp3.png b/themes/Sylvia/icon/mimetypes/mp3.png deleted file mode 100644 index cb1288596..000000000 Binary files a/themes/Sylvia/icon/mimetypes/mp3.png and /dev/null differ diff --git a/themes/Sylvia/icon/mimetypes/mpg.png b/themes/Sylvia/icon/mimetypes/mpg.png deleted file mode 100644 index 4dc09c28b..000000000 Binary files a/themes/Sylvia/icon/mimetypes/mpg.png and /dev/null differ diff --git a/themes/Sylvia/icon/mimetypes/ogg.png b/themes/Sylvia/icon/mimetypes/ogg.png deleted file mode 100644 index 978b235f9..000000000 Binary files a/themes/Sylvia/icon/mimetypes/ogg.png and /dev/null differ diff --git a/themes/Sylvia/icon/mimetypes/zip.png b/themes/Sylvia/icon/mimetypes/zip.png deleted file mode 100644 index 7d76f9a60..000000000 Binary files a/themes/Sylvia/icon/mimetypes/zip.png and /dev/null differ diff --git a/themes/Sylvia/icon/note.png b/themes/Sylvia/icon/note.png deleted file mode 100644 index 9ef1af537..000000000 Binary files a/themes/Sylvia/icon/note.png and /dev/null differ diff --git a/themes/Sylvia/icon/rating-stars.gif b/themes/Sylvia/icon/rating-stars.gif deleted file mode 100644 index 4059e0329..000000000 Binary files a/themes/Sylvia/icon/rating-stars.gif and /dev/null differ diff --git a/themes/Sylvia/icon/rating-stars.png b/themes/Sylvia/icon/rating-stars.png deleted file mode 100644 index dba59ef00..000000000 Binary files a/themes/Sylvia/icon/rating-stars.png and /dev/null differ diff --git a/themes/Sylvia/icon/recent.png b/themes/Sylvia/icon/recent.png deleted file mode 100644 index 75567d689..000000000 Binary files a/themes/Sylvia/icon/recent.png and /dev/null differ diff --git a/themes/Sylvia/icon/recent_by_child.png b/themes/Sylvia/icon/recent_by_child.png deleted file mode 100644 index faf5c4d5c..000000000 Binary files a/themes/Sylvia/icon/recent_by_child.png and /dev/null differ diff --git a/themes/Sylvia/icon/recent_s.png b/themes/Sylvia/icon/recent_s.png deleted file mode 100644 index 90b190523..000000000 Binary files a/themes/Sylvia/icon/recent_s.png and /dev/null differ diff --git a/themes/Sylvia/icon/recent_s_by_child.png b/themes/Sylvia/icon/recent_s_by_child.png deleted file mode 100644 index 842a513c4..000000000 Binary files a/themes/Sylvia/icon/recent_s_by_child.png and /dev/null differ diff --git a/themes/Sylvia/icon/remove_s.png b/themes/Sylvia/icon/remove_s.png deleted file mode 100644 index 012efc1ad..000000000 Binary files a/themes/Sylvia/icon/remove_s.png and /dev/null differ diff --git a/themes/Sylvia/icon/start_filter.png b/themes/Sylvia/icon/start_filter.png deleted file mode 100644 index f8611cd83..000000000 Binary files a/themes/Sylvia/icon/start_filter.png and /dev/null differ diff --git a/themes/Sylvia/icon/stop_filter.png b/themes/Sylvia/icon/stop_filter.png deleted file mode 100644 index 145e64cc8..000000000 Binary files a/themes/Sylvia/icon/stop_filter.png and /dev/null differ diff --git a/themes/Sylvia/icon/validate_s.png b/themes/Sylvia/icon/validate_s.png deleted file mode 100644 index adea3d580..000000000 Binary files a/themes/Sylvia/icon/validate_s.png and /dev/null differ diff --git a/themes/Sylvia/images/ajax_loader.gif b/themes/Sylvia/images/ajax_loader.gif deleted file mode 100644 index d84f65378..000000000 Binary files a/themes/Sylvia/images/ajax_loader.gif and /dev/null differ diff --git a/themes/Sylvia/images/bottom-left-bg.jpg b/themes/Sylvia/images/bottom-left-bg.jpg deleted file mode 100644 index 3d8a5eed2..000000000 Binary files a/themes/Sylvia/images/bottom-left-bg.jpg and /dev/null differ diff --git a/themes/Sylvia/images/cat_bottom-left.gif b/themes/Sylvia/images/cat_bottom-left.gif deleted file mode 100644 index 2a042897d..000000000 Binary files a/themes/Sylvia/images/cat_bottom-left.gif and /dev/null differ diff --git a/themes/Sylvia/images/cat_bottom-right.gif b/themes/Sylvia/images/cat_bottom-right.gif deleted file mode 100644 index 901f31d52..000000000 Binary files a/themes/Sylvia/images/cat_bottom-right.gif and /dev/null differ diff --git a/themes/Sylvia/images/cat_top-left.gif b/themes/Sylvia/images/cat_top-left.gif deleted file mode 100644 index 1ea57346e..000000000 Binary files a/themes/Sylvia/images/cat_top-left.gif and /dev/null differ diff --git a/themes/Sylvia/images/cat_top-right.gif b/themes/Sylvia/images/cat_top-right.gif deleted file mode 100644 index 7eb5c491e..000000000 Binary files a/themes/Sylvia/images/cat_top-right.gif and /dev/null differ diff --git a/themes/Sylvia/images/fillet.gif b/themes/Sylvia/images/fillet.gif deleted file mode 100644 index 6da64117b..000000000 Binary files a/themes/Sylvia/images/fillet.gif and /dev/null differ diff --git a/themes/Sylvia/images/header_msgs-bg.gif b/themes/Sylvia/images/header_msgs-bg.gif deleted file mode 100644 index 0879e1b79..000000000 Binary files a/themes/Sylvia/images/header_msgs-bg.gif and /dev/null differ diff --git a/themes/Sylvia/images/menuBox_bottom.gif b/themes/Sylvia/images/menuBox_bottom.gif deleted file mode 100644 index 72c91b117..000000000 Binary files a/themes/Sylvia/images/menuBox_bottom.gif and /dev/null differ diff --git a/themes/Sylvia/images/menuBox_sides.gif b/themes/Sylvia/images/menuBox_sides.gif deleted file mode 100644 index 853772da3..000000000 Binary files a/themes/Sylvia/images/menuBox_sides.gif and /dev/null differ diff --git a/themes/Sylvia/images/menuBox_top.gif b/themes/Sylvia/images/menuBox_top.gif deleted file mode 100644 index 3c80b3cf9..000000000 Binary files a/themes/Sylvia/images/menuBox_top.gif and /dev/null differ diff --git a/themes/Sylvia/images/menuId_bottom.gif b/themes/Sylvia/images/menuId_bottom.gif deleted file mode 100644 index e6d1faa1d..000000000 Binary files a/themes/Sylvia/images/menuId_bottom.gif and /dev/null differ diff --git a/themes/Sylvia/images/menuId_sides.gif b/themes/Sylvia/images/menuId_sides.gif deleted file mode 100644 index 68923cba2..000000000 Binary files a/themes/Sylvia/images/menuId_sides.gif and /dev/null differ diff --git a/themes/Sylvia/images/menuId_top.gif b/themes/Sylvia/images/menuId_top.gif deleted file mode 100644 index 5243a4097..000000000 Binary files a/themes/Sylvia/images/menuId_top.gif and /dev/null differ diff --git a/themes/Sylvia/images/top-left-bg.jpg b/themes/Sylvia/images/top-left-bg.jpg deleted file mode 100644 index 98aa1d6a5..000000000 Binary files a/themes/Sylvia/images/top-left-bg.jpg and /dev/null differ diff --git a/themes/Sylvia/images/transparent.gif b/themes/Sylvia/images/transparent.gif deleted file mode 100644 index 2fb4189a1..000000000 Binary files a/themes/Sylvia/images/transparent.gif and /dev/null differ diff --git a/themes/Sylvia/local_head.tpl b/themes/Sylvia/local_head.tpl deleted file mode 100644 index 932b5d2da..000000000 --- a/themes/Sylvia/local_head.tpl +++ /dev/null @@ -1,3 +0,0 @@ - diff --git a/themes/Sylvia/screenshot.png b/themes/Sylvia/screenshot.png deleted file mode 100644 index ee3637c88..000000000 Binary files a/themes/Sylvia/screenshot.png and /dev/null differ diff --git a/themes/Sylvia/theme-ie.css b/themes/Sylvia/theme-ie.css deleted file mode 100644 index fe2a58a79..000000000 --- a/themes/Sylvia/theme-ie.css +++ /dev/null @@ -1,12 +0,0 @@ -#content .thumbnailCategory .description .text { - scrollbar-face-color:#222; - scrollbar-shadow-color:#444; - scrollbar-highlight-color:#000; - scrollbar-darkshadow-color:#333; - scrollbar-track-color:#111; - scrollbar-arrow-color:#f70; -} - -#debug { word-wrap:break-word; } -/* IE6... Hacks: */ -/*\*/ * html #menubar #mbIdentification .button { margin-right:25px; } /* */ \ No newline at end of file diff --git a/themes/Sylvia/theme.css b/themes/Sylvia/theme.css deleted file mode 100644 index 7abbebe71..000000000 --- a/themes/Sylvia/theme.css +++ /dev/null @@ -1,483 +0,0 @@ -/* thumbnail wrap size */ -.thumbnailCategory .illustration { - min-width:165px !important; /* Usable range 162px-360px , optimal : Thumbnail width + 40px */ -} - .commentElement .illustration { - min-width:220px !important; /* Usable range 219px-360px , optimal : Thumbnail width + 95px */ -} - -/** - * Menubar - */ -#menubar DL { - background:transparent url(images/menuBox_top.gif) no-repeat scroll left top; - margin:0 0 5px 40px; - padding:0; - width: 231px; - min-width: 231px; - border: 0; - min-height: 32px; - overflow-x: hidden; -} -#menubar DT { - background-color:#111; - border:0; - display:inline; - margin-left:8px; - text-align:left; -} -#menubar DD { - background:transparent url(images/menuBox_bottom.gif) no-repeat scroll left bottom; - margin:14px 0 0 0; - padding:0 0 22px; - width: 231px; - min-width: 231px; - border: 0; - overflow-x: hidden; -} -#menubar DD P { - background:transparent url(images/menuBox_sides.gif) repeat-y scroll left bottom; - padding: 2px 16px 0; - margin: 0; -} -#menubar UL, #menubar #mbCategories p, #menubar .illustration { - background:transparent url(images/menuBox_sides.gif) repeat-y scroll left bottom; - margin:0; -} -#menubar DT A { - font-size: 100%; -} -#menubar UL { - color:#333; - font-size: 16px; - line-height: 15px; -} -#menubar UL SPAN.menuInfoCat { - color:#666; -} -#menubar LI { - padding-left: 12px; -} -#menubar LI UL { - background: transparent url(images/transparent.gif); -} -#menubar A, .menuInfoCat { - font-size: 13px; -} -#menubar form { - background:transparent url(images/menuBox_sides.gif) repeat-y scroll left bottom; - margin:0; -} -#menubar p { - padding: 16px 16px 0; -} - -.menubarFilter { - position: relative; - right: 8px; - top: 16px; -} - -#menubar #mbIdentification { - background:transparent url(images/menuId_top.gif) no-repeat scroll left top !important; -} -#menubar #mbIdentification DD { - background:transparent url(images/menuId_bottom.gif) no-repeat scroll left bottom; -} -#menubar #mbIdentification UL, #menubar #mbIdentification p, #menubar #mbIdentification .illustration { - background:transparent url(images/menuId_sides.gif) repeat-y scroll left bottom; -} -#menubar #mbIdentification form { - background:transparent url(images/menuId_sides.gif) repeat-y scroll left bottom; -} -#menubar #mbIdentification form p { - background:transparent none repeat-y scroll left bottom; -} -#menubar #mbIdentification p { - padding: 2px 16px 0; - margin: 0; -} -#menubar #mbIdentification fieldset div input[type="text"] { - margin: 0 0 3px; - width: 174px; - display: inline; -} -#menubar #mbIdentification .button { - height:24px; - width:24px; - right:0px; - top:-40px; -} -#menubar #mbIdentification fieldset { - border:0; - margin:0 24px 0 23px; -} -#menubar #mbIdentification legend { - display: none; -} -#mbIdentification p, .totalImages { - color:#666; -} - -#menubar #menuTagCloud { - background:transparent url(images/menuBox_sides.gif) repeat-y scroll left bottom; - margin:0; - padding: 0 12px; -} - -#qsearchInput:focus, input:focus, select:focus, textarea:focus, input.focus, form .focus { - background-color:#444; - color:#999; -} -#qsearchInput { - color:#999; -} - - -/** - * Content - */ -.content { - background:#222 url(images/fillet.gif) repeat-x scroll left top; - min-height:466px; - border: 1px solid #000; - border-top: 0; - margin:21px 7px 0 290px !important; - padding-top:7px; -} - -#the_page { - background:transparent url(images/top-left-bg.jpg) no-repeat scroll left top; - left:0; - margin:0; - padding:0; - position:absolute; - top:0; - z-index:0; - width: 100%; - min-width: 100%; -} - -.content h2 { - padding:0px 10px 15px 15px; - border:0; -} -.content .navigationBar { - color:#666; -} -/* contentWithMenu */ -.contentWithMenu { - margin-left: 290px; -} -.contentWithMenu #comments { - padding: 0 0 5px 0; -} -.contentWithMenu #imageToolBar { - padding-left: 0; -} -.contentWithMenu #imageHeaderBar .browsePath { - margin-left: 0; -} - -/* Category thumbnails on main page */ -.thumbnailCategories li { - background:#222 url(images/cat_bottom-right.gif) no-repeat scroll right bottom; - width:49%; - margin: 0; - padding:0; -} -.thumbnailCategory { - background:transparent url(images/cat_bottom-left.gif) no-repeat scroll left bottom; - padding: 0 0 2px; - margin:0; -} -.thumbnailCategory .illustration { - background:transparent url(images/cat_top-left.gif) no-repeat scroll left top; - padding: 0 5px 0 10px; - margin: 0 !important; - text-align: center; -} -.thumbnailCategory .illustration a { - display: block; - margin: 0 auto; - padding: 20px 4px 0; - border:0; -} -.thumbnailCategory .description { - background:transparent url(images/cat_top-right.gif) no-repeat scroll right top; - margin: 0; - padding:15px 10px 3px 0; - overflow: hidden !important; - height:158px; -} -.thumbnailCategory .description .text { - display:block; - margin:10px 2px 0 0; - overflow: auto; - overflow-x:hidden; - padding:0 0 5px; -} -.thumbnailCategory .description p.dates { - margin: 0 15px 0 15px; - text-align: right; -} -.thumbnailCategory .description H3 { - display: block; -} -.thumbnailCategories li:hover { - background-color:#111; -} - -/* header */ -#theHeader { - min-height:110px; - height:110px; -} - -.header_msgs { - background:transparent url(images/header_msgs-bg.gif) repeat scroll left top; - border:0; - color:#333; - font-size:24px; - left:0; - margin:0; - padding:10px 0 6px 0; - text-align:center; - top:0; - width:100%; - z-index:99; -} -.header_notes { - background:transparent url(images/header_msgs-bg.gif) repeat scroll left top; - border:0 none; - color:#333; - font-size:16px; - margin:0; - padding:0; - position:absolute; - top:0; - width:100%; - z-index:99; -} -.infos { - color:#f70; - border:0; - background:transparent url(icon/infos.png) no-repeat center right; - margin-left:40px; - text-align:left; -} -.errors { - color:#f33; - border:0; - background:transparent url(icon/errors.png) no-repeat center right; - margin-left:40px; - text-align:left; - font-weight:bold; -} -.infos li, .errors li { - list-style-type:none; -} - -/* User comments */ -#comments { - margin: 0 10px 5px 10px; -} -.content .commentElement { - border: 1px solid #666; -} -.content .commentElement.odd { - background-color: #222; -} -.content .commentElement.even { - background-color: #111; -} -.content .commentElement .illustration { - margin: 2px; - text-align: center; -} -.content .commentElement .description { - padding:15px 10px 3px 0; - overflow-x: hidden !important; -} - -#comments .commentsList hr {display:none;} -#comments .filter input[type="submit"] { margin-top:1.8em; } - -/* Thumbnails */ -.thumbnails .wrap2 { - border: 1px solid #666; /* thumbnails border color and style */ - border-radius: 4px 4px; /* round corners with CSS3 compliant browsers */ -} -.thumbnails .wrap2:hover { - color:#666; - background-color:#111; - border:1px solid #ff3363; /* thumbnails border color when mouse cursor is over it */ -} -.calItem { - border:1px solid #666; - margin:0 5px; - padding:2px 5px 0 8px; -} -SPAN.calItem, td.calDayCellEmpty, td.calDayCellFull { - border:1px solid #666; -} - - -/** - * Picture - */ -#imageToolBar { - padding:0 7%; -} -#imageHeaderBar .imageNumber { - margin-right:7%; -} -#imageHeaderBar .browsePath { - margin-left:7%; -} -#imageHeaderBar, #imageToolBar A:hover { - background-color: transparent; -} -#imageHeaderBar H2 { - border: 0; -} - -#theImage A, .illustration A, A.navThumb, A.navThumb { - border-bottom-width: 0; -} -.rateButtonStarFull, .rateButtonStarEmpty { - background-image: url('icon/rating-stars.gif'); -} - -#thePicturePage .commentElement { - padding: 15px 2px 6px 12px; - border: 1px solid #666; -} -#thePicturePage .commentsList { - padding-left: 12px; - padding-right: 12px; - overflow: visible; - width: auto; -} -#thePicturePage .odd { - background-color: #222; -} - -.pictureContent { - margin:0 7px 7px 290px; -} - -#addComment fieldset { - color: #f70; - border-color: #f70; -} -#addComment fieldset label { - color: #666; -} - - -/** - * Default Layout - */ -*, *:focus, *:active, input:active, a:active, input:focus, a:focus { - outline: none; -} -BODY { - background:#111 url(images/bottom-left-bg.jpg) no-repeat fixed left bottom; - margin:0; - min-height: 100%; - height: 100%; - padding:0; -} -BODY, H1, H3, DT, INPUT.rateButtonSelected, H2, #menubar DT { - color:#666; -} - -/* forms */ -FIELDSET, INPUT, SELECT, TEXTAREA { - border: 1px solid #666; -} -input[type="text"], input[type="password"], input[type="button"], input[type="submit"], input[type="reset"], input[type="file"] { - background-color:#444; - color:#999; -} /* stupid Line but needed due to inpact on other themes and deadline of Piwigo 2.0 */ -input[type="file"] { - background-color:#222; - border: 1px solid #666; -} -INPUT, select, textarea { - color:#999; - background-color:#444; -} -input[type="radio"], input[type="checkbox"], input[type="button"].rateButtonStarEmpty, input[type="button"].rateButtonStarFull { - background-color: transparent; -} -input[type="button"], input[type="submit"], input[type="reset"] { - color:#ff3363; - background-color:#222; - border-color:#ff3363; -} -input[type="button"]:hover, input[type="submit"]:hover, input[type="reset"]:hover { - color:#999; - border-color:#666; -} - -/* links */ -A, .rateButton { - color:#f70; - border-width: 0; -} -A:hover, A:active { - color:#f33; - border-bottom: 1px solid #ff3363; - cursor: pointer; -} -a.external { - color:#ff3363; - border:0; - text-decoration: none; -} -a.external:hover { - color:#ff7700; - border:0; -} -a.Piwigo { - font-family: verdana, arial, helvetica, sans-serif !important; - font-size: 11px; font-weight: normal; letter-spacing: 0; - color : #F33; text-decoration: none; border: 0; } -a.Piwigo:hover { - border-bottom: 1px solid #ff3363; -} - -.titrePage img.button[alt="x"] { margin: 0 3px 3px; } -tr.tagLine, fieldset.tagLetter, legend.tagLetterLegend { - border-color: #666; -} -#debug { - margin: 15px 15px 5px 248px; - font-size:12px; - clear: both; -} - -/* sprites */ -.pwg-icon { - background-image: url(../default/s26/outline_ff3363.png); -} -A:hover .pwg-icon { - background-image: url(../default/s26/outline_ff7700.png); -} - -.message { - color:white; - background-color:#666; -} - -.switchBox { - background-color: #222222; - border: 1px solid #FF3363; - border-radius: 0 15px 0 15px; -} - -.switchBoxTitle { - border-color:#666; -} diff --git a/themes/Sylvia/themeconf.inc.php b/themes/Sylvia/themeconf.inc.php deleted file mode 100644 index 8c007f620..000000000 --- a/themes/Sylvia/themeconf.inc.php +++ /dev/null @@ -1,38 +0,0 @@ - 'Sylvia', - 'parent' => 'default', - 'icon_dir' => 'themes/Sylvia/icon', - 'mime_icon_dir' => 'themes/Sylvia/icon/mimetypes/', -); -/************************************ mainpage_categories.tpl ************************************/ -add_event_handler('loc_end_index_category_thumbnails', 'Sylvia_album'); -function Sylvia_album($tpl_thumbnails_var) -{ - global $template; - $template->set_prefilter('index_category_thumbnails', 'Sylvia_album_prefilter'); - return $tpl_thumbnails_var; -} -function Sylvia_album_prefilter($content, &$smarty) -{ - $search = '#\{html_style\}#'; - $replacement = '{html_style} -.thumbnailCategory .description .text{ldelim} - height: {$derivative_params->max_height()-30}px; -}'; - $content = preg_replace($search, $replacement, $content); - $search = '#\.thumbnailCategory[\t ]*.description\{ldelim\}[\s]*height:[\t ]*\{\$derivative_params->max_height\(\)\+5#'; - $replacement = '.thumbnailCategory .description{ldelim} - height: {$derivative_params->max_height()+15'; - $content = preg_replace($search, $replacement, $content); - return $content; -} -?> diff --git a/themes/clear/index.php b/themes/clear/index.php deleted file mode 100644 index 58ea04e8f..000000000 --- a/themes/clear/index.php +++ /dev/null @@ -1,15 +0,0 @@ - diff --git a/themes/clear/screenshot.png b/themes/clear/screenshot.png deleted file mode 100644 index 6ae1a6a4d..000000000 Binary files a/themes/clear/screenshot.png and /dev/null differ diff --git a/themes/clear/theme.css b/themes/clear/theme.css deleted file mode 100644 index a7c64fa51..000000000 --- a/themes/clear/theme.css +++ /dev/null @@ -1,89 +0,0 @@ - -/* text color */ -BODY, H1, H2, DT, -INPUT.rateButtonSelected /* <= why IE doesn't inherit this ? */ { - color:#696969; /* dimgray */ -} - -/* backgrounds */ -BODY { - background-color: #ffffff; /* white */ -} - -H2, #menubar DT, #imageHeaderBar, #imageToolBar A:hover { - background-color: #d3d3d3; -} - -#menubar DL, .content, #imageToolBar, .switchBox, .header_notes { - background-color: #eeeeee; -} - -/* borders */ -#menubar DL, .content, #imageToolBar, .switchBox { - border: 1px solid #d3d3d3; -} - -#theImage IMG { - border: 3px solid #d3d3d3; -} - -/*I think this rule is never used*/ -.content UL.thumbnail IMG { - border: 1px solid #a0a0a0; -} - -FIELDSET, INPUT, SELECT, TEXTAREA, -.content .thumbnailCategory, -.content .commentElement { - border: 1px solid gray; -} - -.thumbnails .wrap2 { - border: 1px solid #aaaaaa; /* thumbnails border color and style */ -} - -.thumbnails .wrap2:hover, -.content .thumbnailCategories .thumbnailCategory:hover, -.content .thumbnailCategories .thumbnailCategory:hover A, -.content .commentsList .commentElement:hover, -.content .commentsList .commentElement:hover A { - background-color: #faebd7; - border-color: yellow; /* thumbnails border color when mouse cursor is over it */ - color: black; -} - -/* links */ -A, INPUT.rateButton { - color: #005e89; - background: transparent; - border-bottom: 1px dotted #005e89; -} - -A:hover, INPUT.rateButton:hover { - color: #808060; -} - -A.pwg-state-default { - border: 0; -} - -A.navThumb, A.navThumb:hover { - border-bottom: none; -} - -/*calendar elements*/ -.calItem -{ - border: 1px solid silver; -} - -#qsearchInput { color: #005e89; } - -.pwg-icon { - background-image: url(../default/s26/outline_005e89.png); -} - -A:hover .pwg-icon { - background-image: url(../default/s26/outline_808060.png); -} - diff --git a/themes/clear/themeconf.inc.php b/themes/clear/themeconf.inc.php deleted file mode 100644 index 7603b1e41..000000000 --- a/themes/clear/themeconf.inc.php +++ /dev/null @@ -1,15 +0,0 @@ - 'clear', - 'parent' => 'default', - 'colorscheme' => 'clear', -); -?> diff --git a/themes/dark/images/index.php b/themes/dark/images/index.php deleted file mode 100644 index 58ea04e8f..000000000 --- a/themes/dark/images/index.php +++ /dev/null @@ -1,15 +0,0 @@ - diff --git a/themes/dark/images/tableh1_bg.png b/themes/dark/images/tableh1_bg.png deleted file mode 100644 index fb3c51854..000000000 Binary files a/themes/dark/images/tableh1_bg.png and /dev/null differ diff --git a/themes/dark/index.php b/themes/dark/index.php deleted file mode 100644 index 58ea04e8f..000000000 --- a/themes/dark/index.php +++ /dev/null @@ -1,15 +0,0 @@ - diff --git a/themes/dark/screenshot.png b/themes/dark/screenshot.png deleted file mode 100644 index 8886060b1..000000000 Binary files a/themes/dark/screenshot.png and /dev/null differ diff --git a/themes/dark/theme.css b/themes/dark/theme.css deleted file mode 100644 index 04360e00a..000000000 --- a/themes/dark/theme.css +++ /dev/null @@ -1,76 +0,0 @@ - -/* text color */ -BODY, H1, -INPUT.rateButtonSelected /* <= why IE doesn't inherit this ? */ { - color:#d0d0d0; -} - -H2, #menubar DT { - color: #ffff80; - background-image: url(images/tableh1_bg.png); -} - - -/* backgrounds */ - -BODY, #imageToolBar A:hover { - background-color: #2f2f2f; -} - -#menubar DL, .content, #imageToolBar, #imageHeaderBar, .switchBox, .header_notes { - background-color: #505050; -} - -#imageHeaderBar H2 { - background-image: none; -} - -#imageHeaderBar { - border-top: 1px solid #000; -} - -/* borders */ -#menubar DL, .content, .switchBox { - border: 1px solid #000; -} - -#menubar DT, #imageToolBar { - border-bottom: 1px solid #000; -} - -FIELDSET, INPUT, SELECT, TEXTAREA, -.thumbnailCategory , -.content .commentElement , -.thumbnails .wrap2 { - border: 1px solid gray; -} - - -.thumbnails .wrap2:hover, -.thumbnailCategory:hover, -.content .commentElement:hover{ - border-color: yellow; /* thumbnails border color when mouse cursor is over it */ -} - - -/* links */ -A, INPUT.rateButton { - color: #fff; -} - -A:hover { - color: #ffff80; -} - -.pwg-icon { - background-image: url(../default/s26/outline_ffffff.png); -} - -A:hover .pwg-icon { - background-image: url(../default/s26/outline_ffff80.png); -} - -.message { - color:white; - background-color:#666; -} \ No newline at end of file diff --git a/themes/dark/themeconf.inc.php b/themes/dark/themeconf.inc.php deleted file mode 100644 index 7e692996c..000000000 --- a/themes/dark/themeconf.inc.php +++ /dev/null @@ -1,14 +0,0 @@ - 'dark', - 'parent' => 'default', -); -?> diff --git a/themes/default/js/plugins/Chart.min.css b/themes/default/js/plugins/Chart.min.css new file mode 100644 index 000000000..9dc5ac2e5 --- /dev/null +++ b/themes/default/js/plugins/Chart.min.css @@ -0,0 +1 @@ +@keyframes chartjs-render-animation{from{opacity:.99}to{opacity:1}}.chartjs-render-monitor{animation:chartjs-render-animation 1ms}.chartjs-size-monitor,.chartjs-size-monitor-expand,.chartjs-size-monitor-shrink{position:absolute;direction:ltr;left:0;top:0;right:0;bottom:0;overflow:hidden;pointer-events:none;visibility:hidden;z-index:-1}.chartjs-size-monitor-expand>div{position:absolute;width:1000000px;height:1000000px;left:0;top:0}.chartjs-size-monitor-shrink>div{position:absolute;width:200%;height:200%;left:0;top:0} \ No newline at end of file diff --git a/themes/default/js/plugins/Chart.min.js b/themes/default/js/plugins/Chart.min.js new file mode 100644 index 000000000..7c16b0d12 --- /dev/null +++ b/themes/default/js/plugins/Chart.min.js @@ -0,0 +1,7 @@ +/*! + * Chart.js v2.9.3 + * https://www.chartjs.org + * (c) 2019 Chart.js Contributors + * Released under the MIT License + */ +!function(t,e){"object"==typeof exports&&"undefined"!=typeof module?module.exports=e(function(){try{return require("moment")}catch(t){}}()):"function"==typeof define&&define.amd?define(["require"],(function(t){return e(function(){try{return t("moment")}catch(t){}}())})):(t=t||self).Chart=e(t.moment)}(this,(function(t){"use strict";t=t&&t.hasOwnProperty("default")?t.default:t;var e={aliceblue:[240,248,255],antiquewhite:[250,235,215],aqua:[0,255,255],aquamarine:[127,255,212],azure:[240,255,255],beige:[245,245,220],bisque:[255,228,196],black:[0,0,0],blanchedalmond:[255,235,205],blue:[0,0,255],blueviolet:[138,43,226],brown:[165,42,42],burlywood:[222,184,135],cadetblue:[95,158,160],chartreuse:[127,255,0],chocolate:[210,105,30],coral:[255,127,80],cornflowerblue:[100,149,237],cornsilk:[255,248,220],crimson:[220,20,60],cyan:[0,255,255],darkblue:[0,0,139],darkcyan:[0,139,139],darkgoldenrod:[184,134,11],darkgray:[169,169,169],darkgreen:[0,100,0],darkgrey:[169,169,169],darkkhaki:[189,183,107],darkmagenta:[139,0,139],darkolivegreen:[85,107,47],darkorange:[255,140,0],darkorchid:[153,50,204],darkred:[139,0,0],darksalmon:[233,150,122],darkseagreen:[143,188,143],darkslateblue:[72,61,139],darkslategray:[47,79,79],darkslategrey:[47,79,79],darkturquoise:[0,206,209],darkviolet:[148,0,211],deeppink:[255,20,147],deepskyblue:[0,191,255],dimgray:[105,105,105],dimgrey:[105,105,105],dodgerblue:[30,144,255],firebrick:[178,34,34],floralwhite:[255,250,240],forestgreen:[34,139,34],fuchsia:[255,0,255],gainsboro:[220,220,220],ghostwhite:[248,248,255],gold:[255,215,0],goldenrod:[218,165,32],gray:[128,128,128],green:[0,128,0],greenyellow:[173,255,47],grey:[128,128,128],honeydew:[240,255,240],hotpink:[255,105,180],indianred:[205,92,92],indigo:[75,0,130],ivory:[255,255,240],khaki:[240,230,140],lavender:[230,230,250],lavenderblush:[255,240,245],lawngreen:[124,252,0],lemonchiffon:[255,250,205],lightblue:[173,216,230],lightcoral:[240,128,128],lightcyan:[224,255,255],lightgoldenrodyellow:[250,250,210],lightgray:[211,211,211],lightgreen:[144,238,144],lightgrey:[211,211,211],lightpink:[255,182,193],lightsalmon:[255,160,122],lightseagreen:[32,178,170],lightskyblue:[135,206,250],lightslategray:[119,136,153],lightslategrey:[119,136,153],lightsteelblue:[176,196,222],lightyellow:[255,255,224],lime:[0,255,0],limegreen:[50,205,50],linen:[250,240,230],magenta:[255,0,255],maroon:[128,0,0],mediumaquamarine:[102,205,170],mediumblue:[0,0,205],mediumorchid:[186,85,211],mediumpurple:[147,112,219],mediumseagreen:[60,179,113],mediumslateblue:[123,104,238],mediumspringgreen:[0,250,154],mediumturquoise:[72,209,204],mediumvioletred:[199,21,133],midnightblue:[25,25,112],mintcream:[245,255,250],mistyrose:[255,228,225],moccasin:[255,228,181],navajowhite:[255,222,173],navy:[0,0,128],oldlace:[253,245,230],olive:[128,128,0],olivedrab:[107,142,35],orange:[255,165,0],orangered:[255,69,0],orchid:[218,112,214],palegoldenrod:[238,232,170],palegreen:[152,251,152],paleturquoise:[175,238,238],palevioletred:[219,112,147],papayawhip:[255,239,213],peachpuff:[255,218,185],peru:[205,133,63],pink:[255,192,203],plum:[221,160,221],powderblue:[176,224,230],purple:[128,0,128],rebeccapurple:[102,51,153],red:[255,0,0],rosybrown:[188,143,143],royalblue:[65,105,225],saddlebrown:[139,69,19],salmon:[250,128,114],sandybrown:[244,164,96],seagreen:[46,139,87],seashell:[255,245,238],sienna:[160,82,45],silver:[192,192,192],skyblue:[135,206,235],slateblue:[106,90,205],slategray:[112,128,144],slategrey:[112,128,144],snow:[255,250,250],springgreen:[0,255,127],steelblue:[70,130,180],tan:[210,180,140],teal:[0,128,128],thistle:[216,191,216],tomato:[255,99,71],turquoise:[64,224,208],violet:[238,130,238],wheat:[245,222,179],white:[255,255,255],whitesmoke:[245,245,245],yellow:[255,255,0],yellowgreen:[154,205,50]},n=function(t,e){return t(e={exports:{}},e.exports),e.exports}((function(t){var n={};for(var i in e)e.hasOwnProperty(i)&&(n[e[i]]=i);var a=t.exports={rgb:{channels:3,labels:"rgb"},hsl:{channels:3,labels:"hsl"},hsv:{channels:3,labels:"hsv"},hwb:{channels:3,labels:"hwb"},cmyk:{channels:4,labels:"cmyk"},xyz:{channels:3,labels:"xyz"},lab:{channels:3,labels:"lab"},lch:{channels:3,labels:"lch"},hex:{channels:1,labels:["hex"]},keyword:{channels:1,labels:["keyword"]},ansi16:{channels:1,labels:["ansi16"]},ansi256:{channels:1,labels:["ansi256"]},hcg:{channels:3,labels:["h","c","g"]},apple:{channels:3,labels:["r16","g16","b16"]},gray:{channels:1,labels:["gray"]}};for(var r in a)if(a.hasOwnProperty(r)){if(!("channels"in a[r]))throw new Error("missing channels property: "+r);if(!("labels"in a[r]))throw new Error("missing channel labels property: "+r);if(a[r].labels.length!==a[r].channels)throw new Error("channel and label counts mismatch: "+r);var o=a[r].channels,s=a[r].labels;delete a[r].channels,delete a[r].labels,Object.defineProperty(a[r],"channels",{value:o}),Object.defineProperty(a[r],"labels",{value:s})}a.rgb.hsl=function(t){var e,n,i=t[0]/255,a=t[1]/255,r=t[2]/255,o=Math.min(i,a,r),s=Math.max(i,a,r),l=s-o;return s===o?e=0:i===s?e=(a-r)/l:a===s?e=2+(r-i)/l:r===s&&(e=4+(i-a)/l),(e=Math.min(60*e,360))<0&&(e+=360),n=(o+s)/2,[e,100*(s===o?0:n<=.5?l/(s+o):l/(2-s-o)),100*n]},a.rgb.hsv=function(t){var e,n,i,a,r,o=t[0]/255,s=t[1]/255,l=t[2]/255,u=Math.max(o,s,l),d=u-Math.min(o,s,l),h=function(t){return(u-t)/6/d+.5};return 0===d?a=r=0:(r=d/u,e=h(o),n=h(s),i=h(l),o===u?a=i-n:s===u?a=1/3+e-i:l===u&&(a=2/3+n-e),a<0?a+=1:a>1&&(a-=1)),[360*a,100*r,100*u]},a.rgb.hwb=function(t){var e=t[0],n=t[1],i=t[2];return[a.rgb.hsl(t)[0],100*(1/255*Math.min(e,Math.min(n,i))),100*(i=1-1/255*Math.max(e,Math.max(n,i)))]},a.rgb.cmyk=function(t){var e,n=t[0]/255,i=t[1]/255,a=t[2]/255;return[100*((1-n-(e=Math.min(1-n,1-i,1-a)))/(1-e)||0),100*((1-i-e)/(1-e)||0),100*((1-a-e)/(1-e)||0),100*e]},a.rgb.keyword=function(t){var i=n[t];if(i)return i;var a,r,o,s=1/0;for(var l in e)if(e.hasOwnProperty(l)){var u=e[l],d=(r=t,o=u,Math.pow(r[0]-o[0],2)+Math.pow(r[1]-o[1],2)+Math.pow(r[2]-o[2],2));d.04045?Math.pow((e+.055)/1.055,2.4):e/12.92)+.3576*(n=n>.04045?Math.pow((n+.055)/1.055,2.4):n/12.92)+.1805*(i=i>.04045?Math.pow((i+.055)/1.055,2.4):i/12.92)),100*(.2126*e+.7152*n+.0722*i),100*(.0193*e+.1192*n+.9505*i)]},a.rgb.lab=function(t){var e=a.rgb.xyz(t),n=e[0],i=e[1],r=e[2];return i/=100,r/=108.883,n=(n/=95.047)>.008856?Math.pow(n,1/3):7.787*n+16/116,[116*(i=i>.008856?Math.pow(i,1/3):7.787*i+16/116)-16,500*(n-i),200*(i-(r=r>.008856?Math.pow(r,1/3):7.787*r+16/116))]},a.hsl.rgb=function(t){var e,n,i,a,r,o=t[0]/360,s=t[1]/100,l=t[2]/100;if(0===s)return[r=255*l,r,r];e=2*l-(n=l<.5?l*(1+s):l+s-l*s),a=[0,0,0];for(var u=0;u<3;u++)(i=o+1/3*-(u-1))<0&&i++,i>1&&i--,r=6*i<1?e+6*(n-e)*i:2*i<1?n:3*i<2?e+(n-e)*(2/3-i)*6:e,a[u]=255*r;return a},a.hsl.hsv=function(t){var e=t[0],n=t[1]/100,i=t[2]/100,a=n,r=Math.max(i,.01);return n*=(i*=2)<=1?i:2-i,a*=r<=1?r:2-r,[e,100*(0===i?2*a/(r+a):2*n/(i+n)),100*((i+n)/2)]},a.hsv.rgb=function(t){var e=t[0]/60,n=t[1]/100,i=t[2]/100,a=Math.floor(e)%6,r=e-Math.floor(e),o=255*i*(1-n),s=255*i*(1-n*r),l=255*i*(1-n*(1-r));switch(i*=255,a){case 0:return[i,l,o];case 1:return[s,i,o];case 2:return[o,i,l];case 3:return[o,s,i];case 4:return[l,o,i];case 5:return[i,o,s]}},a.hsv.hsl=function(t){var e,n,i,a=t[0],r=t[1]/100,o=t[2]/100,s=Math.max(o,.01);return i=(2-r)*o,n=r*s,[a,100*(n=(n/=(e=(2-r)*s)<=1?e:2-e)||0),100*(i/=2)]},a.hwb.rgb=function(t){var e,n,i,a,r,o,s,l=t[0]/360,u=t[1]/100,d=t[2]/100,h=u+d;switch(h>1&&(u/=h,d/=h),i=6*l-(e=Math.floor(6*l)),0!=(1&e)&&(i=1-i),a=u+i*((n=1-d)-u),e){default:case 6:case 0:r=n,o=a,s=u;break;case 1:r=a,o=n,s=u;break;case 2:r=u,o=n,s=a;break;case 3:r=u,o=a,s=n;break;case 4:r=a,o=u,s=n;break;case 5:r=n,o=u,s=a}return[255*r,255*o,255*s]},a.cmyk.rgb=function(t){var e=t[0]/100,n=t[1]/100,i=t[2]/100,a=t[3]/100;return[255*(1-Math.min(1,e*(1-a)+a)),255*(1-Math.min(1,n*(1-a)+a)),255*(1-Math.min(1,i*(1-a)+a))]},a.xyz.rgb=function(t){var e,n,i,a=t[0]/100,r=t[1]/100,o=t[2]/100;return n=-.9689*a+1.8758*r+.0415*o,i=.0557*a+-.204*r+1.057*o,e=(e=3.2406*a+-1.5372*r+-.4986*o)>.0031308?1.055*Math.pow(e,1/2.4)-.055:12.92*e,n=n>.0031308?1.055*Math.pow(n,1/2.4)-.055:12.92*n,i=i>.0031308?1.055*Math.pow(i,1/2.4)-.055:12.92*i,[255*(e=Math.min(Math.max(0,e),1)),255*(n=Math.min(Math.max(0,n),1)),255*(i=Math.min(Math.max(0,i),1))]},a.xyz.lab=function(t){var e=t[0],n=t[1],i=t[2];return n/=100,i/=108.883,e=(e/=95.047)>.008856?Math.pow(e,1/3):7.787*e+16/116,[116*(n=n>.008856?Math.pow(n,1/3):7.787*n+16/116)-16,500*(e-n),200*(n-(i=i>.008856?Math.pow(i,1/3):7.787*i+16/116))]},a.lab.xyz=function(t){var e,n,i,a=t[0];e=t[1]/500+(n=(a+16)/116),i=n-t[2]/200;var r=Math.pow(n,3),o=Math.pow(e,3),s=Math.pow(i,3);return n=r>.008856?r:(n-16/116)/7.787,e=o>.008856?o:(e-16/116)/7.787,i=s>.008856?s:(i-16/116)/7.787,[e*=95.047,n*=100,i*=108.883]},a.lab.lch=function(t){var e,n=t[0],i=t[1],a=t[2];return(e=360*Math.atan2(a,i)/2/Math.PI)<0&&(e+=360),[n,Math.sqrt(i*i+a*a),e]},a.lch.lab=function(t){var e,n=t[0],i=t[1];return e=t[2]/360*2*Math.PI,[n,i*Math.cos(e),i*Math.sin(e)]},a.rgb.ansi16=function(t){var e=t[0],n=t[1],i=t[2],r=1 in arguments?arguments[1]:a.rgb.hsv(t)[2];if(0===(r=Math.round(r/50)))return 30;var o=30+(Math.round(i/255)<<2|Math.round(n/255)<<1|Math.round(e/255));return 2===r&&(o+=60),o},a.hsv.ansi16=function(t){return a.rgb.ansi16(a.hsv.rgb(t),t[2])},a.rgb.ansi256=function(t){var e=t[0],n=t[1],i=t[2];return e===n&&n===i?e<8?16:e>248?231:Math.round((e-8)/247*24)+232:16+36*Math.round(e/255*5)+6*Math.round(n/255*5)+Math.round(i/255*5)},a.ansi16.rgb=function(t){var e=t%10;if(0===e||7===e)return t>50&&(e+=3.5),[e=e/10.5*255,e,e];var n=.5*(1+~~(t>50));return[(1&e)*n*255,(e>>1&1)*n*255,(e>>2&1)*n*255]},a.ansi256.rgb=function(t){if(t>=232){var e=10*(t-232)+8;return[e,e,e]}var n;return t-=16,[Math.floor(t/36)/5*255,Math.floor((n=t%36)/6)/5*255,n%6/5*255]},a.rgb.hex=function(t){var e=(((255&Math.round(t[0]))<<16)+((255&Math.round(t[1]))<<8)+(255&Math.round(t[2]))).toString(16).toUpperCase();return"000000".substring(e.length)+e},a.hex.rgb=function(t){var e=t.toString(16).match(/[a-f0-9]{6}|[a-f0-9]{3}/i);if(!e)return[0,0,0];var n=e[0];3===e[0].length&&(n=n.split("").map((function(t){return t+t})).join(""));var i=parseInt(n,16);return[i>>16&255,i>>8&255,255&i]},a.rgb.hcg=function(t){var e,n=t[0]/255,i=t[1]/255,a=t[2]/255,r=Math.max(Math.max(n,i),a),o=Math.min(Math.min(n,i),a),s=r-o;return e=s<=0?0:r===n?(i-a)/s%6:r===i?2+(a-n)/s:4+(n-i)/s+4,e/=6,[360*(e%=1),100*s,100*(s<1?o/(1-s):0)]},a.hsl.hcg=function(t){var e=t[1]/100,n=t[2]/100,i=1,a=0;return(i=n<.5?2*e*n:2*e*(1-n))<1&&(a=(n-.5*i)/(1-i)),[t[0],100*i,100*a]},a.hsv.hcg=function(t){var e=t[1]/100,n=t[2]/100,i=e*n,a=0;return i<1&&(a=(n-i)/(1-i)),[t[0],100*i,100*a]},a.hcg.rgb=function(t){var e=t[0]/360,n=t[1]/100,i=t[2]/100;if(0===n)return[255*i,255*i,255*i];var a,r=[0,0,0],o=e%1*6,s=o%1,l=1-s;switch(Math.floor(o)){case 0:r[0]=1,r[1]=s,r[2]=0;break;case 1:r[0]=l,r[1]=1,r[2]=0;break;case 2:r[0]=0,r[1]=1,r[2]=s;break;case 3:r[0]=0,r[1]=l,r[2]=1;break;case 4:r[0]=s,r[1]=0,r[2]=1;break;default:r[0]=1,r[1]=0,r[2]=l}return a=(1-n)*i,[255*(n*r[0]+a),255*(n*r[1]+a),255*(n*r[2]+a)]},a.hcg.hsv=function(t){var e=t[1]/100,n=e+t[2]/100*(1-e),i=0;return n>0&&(i=e/n),[t[0],100*i,100*n]},a.hcg.hsl=function(t){var e=t[1]/100,n=t[2]/100*(1-e)+.5*e,i=0;return n>0&&n<.5?i=e/(2*n):n>=.5&&n<1&&(i=e/(2*(1-n))),[t[0],100*i,100*n]},a.hcg.hwb=function(t){var e=t[1]/100,n=e+t[2]/100*(1-e);return[t[0],100*(n-e),100*(1-n)]},a.hwb.hcg=function(t){var e=t[1]/100,n=1-t[2]/100,i=n-e,a=0;return i<1&&(a=(n-i)/(1-i)),[t[0],100*i,100*a]},a.apple.rgb=function(t){return[t[0]/65535*255,t[1]/65535*255,t[2]/65535*255]},a.rgb.apple=function(t){return[t[0]/255*65535,t[1]/255*65535,t[2]/255*65535]},a.gray.rgb=function(t){return[t[0]/100*255,t[0]/100*255,t[0]/100*255]},a.gray.hsl=a.gray.hsv=function(t){return[0,0,t[0]]},a.gray.hwb=function(t){return[0,100,t[0]]},a.gray.cmyk=function(t){return[0,0,0,t[0]]},a.gray.lab=function(t){return[t[0],0,0]},a.gray.hex=function(t){var e=255&Math.round(t[0]/100*255),n=((e<<16)+(e<<8)+e).toString(16).toUpperCase();return"000000".substring(n.length)+n},a.rgb.gray=function(t){return[(t[0]+t[1]+t[2])/3/255*100]}}));n.rgb,n.hsl,n.hsv,n.hwb,n.cmyk,n.xyz,n.lab,n.lch,n.hex,n.keyword,n.ansi16,n.ansi256,n.hcg,n.apple,n.gray;function i(t){var e=function(){for(var t={},e=Object.keys(n),i=e.length,a=0;a1&&(e=Array.prototype.slice.call(arguments));var n=t(e);if("object"==typeof n)for(var i=n.length,a=0;a1&&(e=Array.prototype.slice.call(arguments)),t(e))};return"conversion"in t&&(e.conversion=t.conversion),e}(i)}))}));var s=o,l={aliceblue:[240,248,255],antiquewhite:[250,235,215],aqua:[0,255,255],aquamarine:[127,255,212],azure:[240,255,255],beige:[245,245,220],bisque:[255,228,196],black:[0,0,0],blanchedalmond:[255,235,205],blue:[0,0,255],blueviolet:[138,43,226],brown:[165,42,42],burlywood:[222,184,135],cadetblue:[95,158,160],chartreuse:[127,255,0],chocolate:[210,105,30],coral:[255,127,80],cornflowerblue:[100,149,237],cornsilk:[255,248,220],crimson:[220,20,60],cyan:[0,255,255],darkblue:[0,0,139],darkcyan:[0,139,139],darkgoldenrod:[184,134,11],darkgray:[169,169,169],darkgreen:[0,100,0],darkgrey:[169,169,169],darkkhaki:[189,183,107],darkmagenta:[139,0,139],darkolivegreen:[85,107,47],darkorange:[255,140,0],darkorchid:[153,50,204],darkred:[139,0,0],darksalmon:[233,150,122],darkseagreen:[143,188,143],darkslateblue:[72,61,139],darkslategray:[47,79,79],darkslategrey:[47,79,79],darkturquoise:[0,206,209],darkviolet:[148,0,211],deeppink:[255,20,147],deepskyblue:[0,191,255],dimgray:[105,105,105],dimgrey:[105,105,105],dodgerblue:[30,144,255],firebrick:[178,34,34],floralwhite:[255,250,240],forestgreen:[34,139,34],fuchsia:[255,0,255],gainsboro:[220,220,220],ghostwhite:[248,248,255],gold:[255,215,0],goldenrod:[218,165,32],gray:[128,128,128],green:[0,128,0],greenyellow:[173,255,47],grey:[128,128,128],honeydew:[240,255,240],hotpink:[255,105,180],indianred:[205,92,92],indigo:[75,0,130],ivory:[255,255,240],khaki:[240,230,140],lavender:[230,230,250],lavenderblush:[255,240,245],lawngreen:[124,252,0],lemonchiffon:[255,250,205],lightblue:[173,216,230],lightcoral:[240,128,128],lightcyan:[224,255,255],lightgoldenrodyellow:[250,250,210],lightgray:[211,211,211],lightgreen:[144,238,144],lightgrey:[211,211,211],lightpink:[255,182,193],lightsalmon:[255,160,122],lightseagreen:[32,178,170],lightskyblue:[135,206,250],lightslategray:[119,136,153],lightslategrey:[119,136,153],lightsteelblue:[176,196,222],lightyellow:[255,255,224],lime:[0,255,0],limegreen:[50,205,50],linen:[250,240,230],magenta:[255,0,255],maroon:[128,0,0],mediumaquamarine:[102,205,170],mediumblue:[0,0,205],mediumorchid:[186,85,211],mediumpurple:[147,112,219],mediumseagreen:[60,179,113],mediumslateblue:[123,104,238],mediumspringgreen:[0,250,154],mediumturquoise:[72,209,204],mediumvioletred:[199,21,133],midnightblue:[25,25,112],mintcream:[245,255,250],mistyrose:[255,228,225],moccasin:[255,228,181],navajowhite:[255,222,173],navy:[0,0,128],oldlace:[253,245,230],olive:[128,128,0],olivedrab:[107,142,35],orange:[255,165,0],orangered:[255,69,0],orchid:[218,112,214],palegoldenrod:[238,232,170],palegreen:[152,251,152],paleturquoise:[175,238,238],palevioletred:[219,112,147],papayawhip:[255,239,213],peachpuff:[255,218,185],peru:[205,133,63],pink:[255,192,203],plum:[221,160,221],powderblue:[176,224,230],purple:[128,0,128],rebeccapurple:[102,51,153],red:[255,0,0],rosybrown:[188,143,143],royalblue:[65,105,225],saddlebrown:[139,69,19],salmon:[250,128,114],sandybrown:[244,164,96],seagreen:[46,139,87],seashell:[255,245,238],sienna:[160,82,45],silver:[192,192,192],skyblue:[135,206,235],slateblue:[106,90,205],slategray:[112,128,144],slategrey:[112,128,144],snow:[255,250,250],springgreen:[0,255,127],steelblue:[70,130,180],tan:[210,180,140],teal:[0,128,128],thistle:[216,191,216],tomato:[255,99,71],turquoise:[64,224,208],violet:[238,130,238],wheat:[245,222,179],white:[255,255,255],whitesmoke:[245,245,245],yellow:[255,255,0],yellowgreen:[154,205,50]},u={getRgba:d,getHsla:h,getRgb:function(t){var e=d(t);return e&&e.slice(0,3)},getHsl:function(t){var e=h(t);return e&&e.slice(0,3)},getHwb:c,getAlpha:function(t){var e=d(t);if(e)return e[3];if(e=h(t))return e[3];if(e=c(t))return e[3]},hexString:function(t,e){e=void 0!==e&&3===t.length?e:t[3];return"#"+v(t[0])+v(t[1])+v(t[2])+(e>=0&&e<1?v(Math.round(255*e)):"")},rgbString:function(t,e){if(e<1||t[3]&&t[3]<1)return f(t,e);return"rgb("+t[0]+", "+t[1]+", "+t[2]+")"},rgbaString:f,percentString:function(t,e){if(e<1||t[3]&&t[3]<1)return g(t,e);var n=Math.round(t[0]/255*100),i=Math.round(t[1]/255*100),a=Math.round(t[2]/255*100);return"rgb("+n+"%, "+i+"%, "+a+"%)"},percentaString:g,hslString:function(t,e){if(e<1||t[3]&&t[3]<1)return p(t,e);return"hsl("+t[0]+", "+t[1]+"%, "+t[2]+"%)"},hslaString:p,hwbString:function(t,e){void 0===e&&(e=void 0!==t[3]?t[3]:1);return"hwb("+t[0]+", "+t[1]+"%, "+t[2]+"%"+(void 0!==e&&1!==e?", "+e:"")+")"},keyword:function(t){return b[t.slice(0,3)]}};function d(t){if(t){var e=[0,0,0],n=1,i=t.match(/^#([a-fA-F0-9]{3,4})$/i),a="";if(i){a=(i=i[1])[3];for(var r=0;rn?(e+.05)/(n+.05):(n+.05)/(e+.05)},level:function(t){var e=this.contrast(t);return e>=7.1?"AAA":e>=4.5?"AA":""},dark:function(){var t=this.values.rgb;return(299*t[0]+587*t[1]+114*t[2])/1e3<128},light:function(){return!this.dark()},negate:function(){for(var t=[],e=0;e<3;e++)t[e]=255-this.values.rgb[e];return this.setValues("rgb",t),this},lighten:function(t){var e=this.values.hsl;return e[2]+=e[2]*t,this.setValues("hsl",e),this},darken:function(t){var e=this.values.hsl;return e[2]-=e[2]*t,this.setValues("hsl",e),this},saturate:function(t){var e=this.values.hsl;return e[1]+=e[1]*t,this.setValues("hsl",e),this},desaturate:function(t){var e=this.values.hsl;return e[1]-=e[1]*t,this.setValues("hsl",e),this},whiten:function(t){var e=this.values.hwb;return e[1]+=e[1]*t,this.setValues("hwb",e),this},blacken:function(t){var e=this.values.hwb;return e[2]+=e[2]*t,this.setValues("hwb",e),this},greyscale:function(){var t=this.values.rgb,e=.3*t[0]+.59*t[1]+.11*t[2];return this.setValues("rgb",[e,e,e]),this},clearer:function(t){var e=this.values.alpha;return this.setValues("alpha",e-e*t),this},opaquer:function(t){var e=this.values.alpha;return this.setValues("alpha",e+e*t),this},rotate:function(t){var e=this.values.hsl,n=(e[0]+t)%360;return e[0]=n<0?360+n:n,this.setValues("hsl",e),this},mix:function(t,e){var n=t,i=void 0===e?.5:e,a=2*i-1,r=this.alpha()-n.alpha(),o=((a*r==-1?a:(a+r)/(1+a*r))+1)/2,s=1-o;return this.rgb(o*this.red()+s*n.red(),o*this.green()+s*n.green(),o*this.blue()+s*n.blue()).alpha(this.alpha()*i+n.alpha()*(1-i))},toJSON:function(){return this.rgb()},clone:function(){var t,e,n=new y,i=this.values,a=n.values;for(var r in i)i.hasOwnProperty(r)&&(t=i[r],"[object Array]"===(e={}.toString.call(t))?a[r]=t.slice(0):"[object Number]"===e?a[r]=t:console.error("unexpected color value:",t));return n}},y.prototype.spaces={rgb:["red","green","blue"],hsl:["hue","saturation","lightness"],hsv:["hue","saturation","value"],hwb:["hue","whiteness","blackness"],cmyk:["cyan","magenta","yellow","black"]},y.prototype.maxes={rgb:[255,255,255],hsl:[360,100,100],hsv:[360,100,100],hwb:[360,100,100],cmyk:[100,100,100,100]},y.prototype.getValues=function(t){for(var e=this.values,n={},i=0;i=0;a--)e.call(n,t[a],a);else for(a=0;a=1?t:-(Math.sqrt(1-t*t)-1)},easeOutCirc:function(t){return Math.sqrt(1-(t-=1)*t)},easeInOutCirc:function(t){return(t/=.5)<1?-.5*(Math.sqrt(1-t*t)-1):.5*(Math.sqrt(1-(t-=2)*t)+1)},easeInElastic:function(t){var e=1.70158,n=0,i=1;return 0===t?0:1===t?1:(n||(n=.3),i<1?(i=1,e=n/4):e=n/(2*Math.PI)*Math.asin(1/i),-i*Math.pow(2,10*(t-=1))*Math.sin((t-e)*(2*Math.PI)/n))},easeOutElastic:function(t){var e=1.70158,n=0,i=1;return 0===t?0:1===t?1:(n||(n=.3),i<1?(i=1,e=n/4):e=n/(2*Math.PI)*Math.asin(1/i),i*Math.pow(2,-10*t)*Math.sin((t-e)*(2*Math.PI)/n)+1)},easeInOutElastic:function(t){var e=1.70158,n=0,i=1;return 0===t?0:2==(t/=.5)?1:(n||(n=.45),i<1?(i=1,e=n/4):e=n/(2*Math.PI)*Math.asin(1/i),t<1?i*Math.pow(2,10*(t-=1))*Math.sin((t-e)*(2*Math.PI)/n)*-.5:i*Math.pow(2,-10*(t-=1))*Math.sin((t-e)*(2*Math.PI)/n)*.5+1)},easeInBack:function(t){var e=1.70158;return t*t*((e+1)*t-e)},easeOutBack:function(t){var e=1.70158;return(t-=1)*t*((e+1)*t+e)+1},easeInOutBack:function(t){var e=1.70158;return(t/=.5)<1?t*t*((1+(e*=1.525))*t-e)*.5:.5*((t-=2)*t*((1+(e*=1.525))*t+e)+2)},easeInBounce:function(t){return 1-S.easeOutBounce(1-t)},easeOutBounce:function(t){return t<1/2.75?7.5625*t*t:t<2/2.75?7.5625*(t-=1.5/2.75)*t+.75:t<2.5/2.75?7.5625*(t-=2.25/2.75)*t+.9375:7.5625*(t-=2.625/2.75)*t+.984375},easeInOutBounce:function(t){return t<.5?.5*S.easeInBounce(2*t):.5*S.easeOutBounce(2*t-1)+.5}},C={effects:S};M.easingEffects=S;var P=Math.PI,A=P/180,D=2*P,T=P/2,I=P/4,F=2*P/3,L={clear:function(t){t.ctx.clearRect(0,0,t.width,t.height)},roundedRect:function(t,e,n,i,a,r){if(r){var o=Math.min(r,a/2,i/2),s=e+o,l=n+o,u=e+i-o,d=n+a-o;t.moveTo(e,l),se.left-1e-6&&t.xe.top-1e-6&&t.y0&&this.requestAnimationFrame()},advance:function(){for(var t,e,n,i,a=this.animations,r=0;r=n?(V.callback(t.onAnimationComplete,[t],e),e.animating=!1,a.splice(r,1)):++r}},J=V.options.resolve,Q=["push","pop","shift","splice","unshift"];function tt(t,e){var n=t._chartjs;if(n){var i=n.listeners,a=i.indexOf(e);-1!==a&&i.splice(a,1),i.length>0||(Q.forEach((function(e){delete t[e]})),delete t._chartjs)}}var et=function(t,e){this.initialize(t,e)};V.extend(et.prototype,{datasetElementType:null,dataElementType:null,_datasetElementOptions:["backgroundColor","borderCapStyle","borderColor","borderDash","borderDashOffset","borderJoinStyle","borderWidth"],_dataElementOptions:["backgroundColor","borderColor","borderWidth","pointStyle"],initialize:function(t,e){var n=this;n.chart=t,n.index=e,n.linkScales(),n.addElements(),n._type=n.getMeta().type},updateIndex:function(t){this.index=t},linkScales:function(){var t=this.getMeta(),e=this.chart,n=e.scales,i=this.getDataset(),a=e.options.scales;null!==t.xAxisID&&t.xAxisID in n&&!i.xAxisID||(t.xAxisID=i.xAxisID||a.xAxes[0].id),null!==t.yAxisID&&t.yAxisID in n&&!i.yAxisID||(t.yAxisID=i.yAxisID||a.yAxes[0].id)},getDataset:function(){return this.chart.data.datasets[this.index]},getMeta:function(){return this.chart.getDatasetMeta(this.index)},getScaleForId:function(t){return this.chart.scales[t]},_getValueScaleId:function(){return this.getMeta().yAxisID},_getIndexScaleId:function(){return this.getMeta().xAxisID},_getValueScale:function(){return this.getScaleForId(this._getValueScaleId())},_getIndexScale:function(){return this.getScaleForId(this._getIndexScaleId())},reset:function(){this._update(!0)},destroy:function(){this._data&&tt(this._data,this)},createMetaDataset:function(){var t=this.datasetElementType;return t&&new t({_chart:this.chart,_datasetIndex:this.index})},createMetaData:function(t){var e=this.dataElementType;return e&&new e({_chart:this.chart,_datasetIndex:this.index,_index:t})},addElements:function(){var t,e,n=this.getMeta(),i=this.getDataset().data||[],a=n.data;for(t=0,e=i.length;tn&&this.insertElements(n,i-n)},insertElements:function(t,e){for(var n=0;na?(r=a/e.innerRadius,t.arc(o,s,e.innerRadius-a,i+r,n-r,!0)):t.arc(o,s,a,i+Math.PI/2,n-Math.PI/2),t.closePath(),t.clip()}function rt(t,e,n){var i="inner"===e.borderAlign;i?(t.lineWidth=2*e.borderWidth,t.lineJoin="round"):(t.lineWidth=e.borderWidth,t.lineJoin="bevel"),n.fullCircles&&function(t,e,n,i){var a,r=n.endAngle;for(i&&(n.endAngle=n.startAngle+it,at(t,n),n.endAngle=r,n.endAngle===n.startAngle&&n.fullCircles&&(n.endAngle+=it,n.fullCircles--)),t.beginPath(),t.arc(n.x,n.y,n.innerRadius,n.startAngle+it,n.startAngle,!0),a=0;as;)a-=it;for(;a=o&&a<=s,u=r>=n.innerRadius&&r<=n.outerRadius;return l&&u}return!1},getCenterPoint:function(){var t=this._view,e=(t.startAngle+t.endAngle)/2,n=(t.innerRadius+t.outerRadius)/2;return{x:t.x+Math.cos(e)*n,y:t.y+Math.sin(e)*n}},getArea:function(){var t=this._view;return Math.PI*((t.endAngle-t.startAngle)/(2*Math.PI))*(Math.pow(t.outerRadius,2)-Math.pow(t.innerRadius,2))},tooltipPosition:function(){var t=this._view,e=t.startAngle+(t.endAngle-t.startAngle)/2,n=(t.outerRadius-t.innerRadius)/2+t.innerRadius;return{x:t.x+Math.cos(e)*n,y:t.y+Math.sin(e)*n}},draw:function(){var t,e=this._chart.ctx,n=this._view,i="inner"===n.borderAlign?.33:0,a={x:n.x,y:n.y,innerRadius:n.innerRadius,outerRadius:Math.max(n.outerRadius-i,0),pixelMargin:i,startAngle:n.startAngle,endAngle:n.endAngle,fullCircles:Math.floor(n.circumference/it)};if(e.save(),e.fillStyle=n.backgroundColor,e.strokeStyle=n.borderColor,a.fullCircles){for(a.endAngle=a.startAngle+it,e.beginPath(),e.arc(a.x,a.y,a.outerRadius,a.startAngle,a.endAngle),e.arc(a.x,a.y,a.innerRadius,a.endAngle,a.startAngle,!0),e.closePath(),t=0;tt.x&&(e=vt(e,"left","right")):t.basen?n:i,r:l.right||a<0?0:a>e?e:a,b:l.bottom||r<0?0:r>n?n:r,l:l.left||o<0?0:o>e?e:o}}function xt(t,e,n){var i=null===e,a=null===n,r=!(!t||i&&a)&&mt(t);return r&&(i||e>=r.left&&e<=r.right)&&(a||n>=r.top&&n<=r.bottom)}z._set("global",{elements:{rectangle:{backgroundColor:gt,borderColor:gt,borderSkipped:"bottom",borderWidth:0}}});var yt=X.extend({_type:"rectangle",draw:function(){var t=this._chart.ctx,e=this._view,n=function(t){var e=mt(t),n=e.right-e.left,i=e.bottom-e.top,a=bt(t,n/2,i/2);return{outer:{x:e.left,y:e.top,w:n,h:i},inner:{x:e.left+a.l,y:e.top+a.t,w:n-a.l-a.r,h:i-a.t-a.b}}}(e),i=n.outer,a=n.inner;t.fillStyle=e.backgroundColor,t.fillRect(i.x,i.y,i.w,i.h),i.w===a.w&&i.h===a.h||(t.save(),t.beginPath(),t.rect(i.x,i.y,i.w,i.h),t.clip(),t.fillStyle=e.borderColor,t.rect(a.x,a.y,a.w,a.h),t.fill("evenodd"),t.restore())},height:function(){var t=this._view;return t.base-t.y},inRange:function(t,e){return xt(this._view,t,e)},inLabelRange:function(t,e){var n=this._view;return pt(n)?xt(n,t,null):xt(n,null,e)},inXRange:function(t){return xt(this._view,t,null)},inYRange:function(t){return xt(this._view,null,t)},getCenterPoint:function(){var t,e,n=this._view;return pt(n)?(t=n.x,e=(n.y+n.base)/2):(t=(n.x+n.base)/2,e=n.y),{x:t,y:e}},getArea:function(){var t=this._view;return pt(t)?t.width*Math.abs(t.y-t.base):t.height*Math.abs(t.x-t.base)},tooltipPosition:function(){var t=this._view;return{x:t.x,y:t.y}}}),_t={},kt=ot,wt=ut,Mt=ft,St=yt;_t.Arc=kt,_t.Line=wt,_t.Point=Mt,_t.Rectangle=St;var Ct=V._deprecated,Pt=V.valueOrDefault;function At(t,e,n){var i,a,r=n.barThickness,o=e.stackCount,s=e.pixels[t],l=V.isNullOrUndef(r)?function(t,e){var n,i,a,r,o=t._length;for(a=1,r=e.length;a0?Math.min(o,Math.abs(i-n)):o,n=i;return o}(e.scale,e.pixels):-1;return V.isNullOrUndef(r)?(i=l*n.categoryPercentage,a=n.barPercentage):(i=r*o,a=1),{chunk:i/o,ratio:a,start:s-i/2}}z._set("bar",{hover:{mode:"label"},scales:{xAxes:[{type:"category",offset:!0,gridLines:{offsetGridLines:!0}}],yAxes:[{type:"linear"}]}}),z._set("global",{datasets:{bar:{categoryPercentage:.8,barPercentage:.9}}});var Dt=nt.extend({dataElementType:_t.Rectangle,_dataElementOptions:["backgroundColor","borderColor","borderSkipped","borderWidth","barPercentage","barThickness","categoryPercentage","maxBarThickness","minBarLength"],initialize:function(){var t,e,n=this;nt.prototype.initialize.apply(n,arguments),(t=n.getMeta()).stack=n.getDataset().stack,t.bar=!0,e=n._getIndexScale().options,Ct("bar chart",e.barPercentage,"scales.[x/y]Axes.barPercentage","dataset.barPercentage"),Ct("bar chart",e.barThickness,"scales.[x/y]Axes.barThickness","dataset.barThickness"),Ct("bar chart",e.categoryPercentage,"scales.[x/y]Axes.categoryPercentage","dataset.categoryPercentage"),Ct("bar chart",n._getValueScale().options.minBarLength,"scales.[x/y]Axes.minBarLength","dataset.minBarLength"),Ct("bar chart",e.maxBarThickness,"scales.[x/y]Axes.maxBarThickness","dataset.maxBarThickness")},update:function(t){var e,n,i=this.getMeta().data;for(this._ruler=this.getRuler(),e=0,n=i.length;e=0&&p.min>=0?p.min:p.max,y=void 0===p.start?p.end:p.max>=0&&p.min>=0?p.max-p.min:p.min-p.max,_=g.length;if(v||void 0===v&&void 0!==b)for(i=0;i<_&&(a=g[i]).index!==t;++i)a.stack===b&&(r=void 0===(u=h._parseValue(f[a.index].data[e])).start?u.end:u.min>=0&&u.max>=0?u.max:u.min,(p.min<0&&r<0||p.max>=0&&r>0)&&(x+=r));return o=h.getPixelForValue(x),l=(s=h.getPixelForValue(x+y))-o,void 0!==m&&Math.abs(l)=0&&!c||y<0&&c?o-m:o+m),{size:l,base:o,head:s,center:s+l/2}},calculateBarIndexPixels:function(t,e,n,i){var a="flex"===i.barThickness?function(t,e,n){var i,a=e.pixels,r=a[t],o=t>0?a[t-1]:null,s=t=Ot?-Rt:b<-Ot?Rt:0)+m,y=Math.cos(b),_=Math.sin(b),k=Math.cos(x),w=Math.sin(x),M=b<=0&&x>=0||x>=Rt,S=b<=zt&&x>=zt||x>=Rt+zt,C=b<=-zt&&x>=-zt||x>=Ot+zt,P=b===-Ot||x>=Ot?-1:Math.min(y,y*p,k,k*p),A=C?-1:Math.min(_,_*p,w,w*p),D=M?1:Math.max(y,y*p,k,k*p),T=S?1:Math.max(_,_*p,w,w*p);u=(D-P)/2,d=(T-A)/2,h=-(D+P)/2,c=-(T+A)/2}for(i=0,a=g.length;i0&&!isNaN(t)?Rt*(Math.abs(t)/e):0},getMaxBorderWidth:function(t){var e,n,i,a,r,o,s,l,u=0,d=this.chart;if(!t)for(e=0,n=d.data.datasets.length;e(u=s>u?s:u)?l:u);return u},setHoverStyle:function(t){var e=t._model,n=t._options,i=V.getHoverColor;t.$previousStyle={backgroundColor:e.backgroundColor,borderColor:e.borderColor,borderWidth:e.borderWidth},e.backgroundColor=Lt(n.hoverBackgroundColor,i(n.backgroundColor)),e.borderColor=Lt(n.hoverBorderColor,i(n.borderColor)),e.borderWidth=Lt(n.hoverBorderWidth,n.borderWidth)},_getRingWeightOffset:function(t){for(var e=0,n=0;n0&&Vt(l[t-1]._model,s)&&(n.controlPointPreviousX=u(n.controlPointPreviousX,s.left,s.right),n.controlPointPreviousY=u(n.controlPointPreviousY,s.top,s.bottom)),t0&&(r=t.getDatasetMeta(r[0]._datasetIndex).data),r},"x-axis":function(t,e){return ie(t,e,{intersect:!1})},point:function(t,e){return te(t,Jt(e,t))},nearest:function(t,e,n){var i=Jt(e,t);n.axis=n.axis||"xy";var a=ne(n.axis);return ee(t,i,n.intersect,a)},x:function(t,e,n){var i=Jt(e,t),a=[],r=!1;return Qt(t,(function(t){t.inXRange(i.x)&&a.push(t),t.inRange(i.x,i.y)&&(r=!0)})),n.intersect&&!r&&(a=[]),a},y:function(t,e,n){var i=Jt(e,t),a=[],r=!1;return Qt(t,(function(t){t.inYRange(i.y)&&a.push(t),t.inRange(i.x,i.y)&&(r=!0)})),n.intersect&&!r&&(a=[]),a}}},re=V.extend;function oe(t,e){return V.where(t,(function(t){return t.pos===e}))}function se(t,e){return t.sort((function(t,n){var i=e?n:t,a=e?t:n;return i.weight===a.weight?i.index-a.index:i.weight-a.weight}))}function le(t,e,n,i){return Math.max(t[n],e[n])+Math.max(t[i],e[i])}function ue(t,e,n){var i,a,r=n.box,o=t.maxPadding;if(n.size&&(t[n.pos]-=n.size),n.size=n.horizontal?r.height:r.width,t[n.pos]+=n.size,r.getPadding){var s=r.getPadding();o.top=Math.max(o.top,s.top),o.left=Math.max(o.left,s.left),o.bottom=Math.max(o.bottom,s.bottom),o.right=Math.max(o.right,s.right)}if(i=e.outerWidth-le(o,t,"left","right"),a=e.outerHeight-le(o,t,"top","bottom"),i!==t.w||a!==t.h)return t.w=i,t.h=a,n.horizontal?i!==t.w:a!==t.h}function de(t,e){var n=e.maxPadding;function i(t){var i={left:0,top:0,right:0,bottom:0};return t.forEach((function(t){i[t]=Math.max(e[t],n[t])})),i}return i(t?["left","right"]:["top","bottom"])}function he(t,e,n){var i,a,r,o,s,l,u=[];for(i=0,a=t.length;idiv{position:absolute;width:1000000px;height:1000000px;left:0;top:0}.chartjs-size-monitor-shrink>div{position:absolute;width:200%;height:200%;left:0;top:0}"}))&&fe.default||fe,me="$chartjs",ve="chartjs-size-monitor",be="chartjs-render-monitor",xe="chartjs-render-animation",ye=["animationstart","webkitAnimationStart"],_e={touchstart:"mousedown",touchmove:"mousemove",touchend:"mouseup",pointerenter:"mouseenter",pointerdown:"mousedown",pointermove:"mousemove",pointerup:"mouseup",pointerleave:"mouseout",pointerout:"mouseout"};function ke(t,e){var n=V.getStyle(t,e),i=n&&n.match(/^(\d+)(\.\d+)?px$/);return i?Number(i[1]):void 0}var we=!!function(){var t=!1;try{var e=Object.defineProperty({},"passive",{get:function(){t=!0}});window.addEventListener("e",null,e)}catch(t){}return t}()&&{passive:!0};function Me(t,e,n){t.addEventListener(e,n,we)}function Se(t,e,n){t.removeEventListener(e,n,we)}function Ce(t,e,n,i,a){return{type:t,chart:e,native:a||null,x:void 0!==n?n:null,y:void 0!==i?i:null}}function Pe(t){var e=document.createElement("div");return e.className=t||"",e}function Ae(t,e,n){var i,a,r,o,s=t[me]||(t[me]={}),l=s.resizer=function(t){var e=Pe(ve),n=Pe(ve+"-expand"),i=Pe(ve+"-shrink");n.appendChild(Pe()),i.appendChild(Pe()),e.appendChild(n),e.appendChild(i),e._reset=function(){n.scrollLeft=1e6,n.scrollTop=1e6,i.scrollLeft=1e6,i.scrollTop=1e6};var a=function(){e._reset(),t()};return Me(n,"scroll",a.bind(n,"expand")),Me(i,"scroll",a.bind(i,"shrink")),e}((i=function(){if(s.resizer){var i=n.options.maintainAspectRatio&&t.parentNode,a=i?i.clientWidth:0;e(Ce("resize",n)),i&&i.clientWidth0){var r=t[0];r.label?n=r.label:r.xLabel?n=r.xLabel:a>0&&r.index-1?t.split("\n"):t}function We(t){var e=z.global;return{xPadding:t.xPadding,yPadding:t.yPadding,xAlign:t.xAlign,yAlign:t.yAlign,rtl:t.rtl,textDirection:t.textDirection,bodyFontColor:t.bodyFontColor,_bodyFontFamily:Re(t.bodyFontFamily,e.defaultFontFamily),_bodyFontStyle:Re(t.bodyFontStyle,e.defaultFontStyle),_bodyAlign:t.bodyAlign,bodyFontSize:Re(t.bodyFontSize,e.defaultFontSize),bodySpacing:t.bodySpacing,titleFontColor:t.titleFontColor,_titleFontFamily:Re(t.titleFontFamily,e.defaultFontFamily),_titleFontStyle:Re(t.titleFontStyle,e.defaultFontStyle),titleFontSize:Re(t.titleFontSize,e.defaultFontSize),_titleAlign:t.titleAlign,titleSpacing:t.titleSpacing,titleMarginBottom:t.titleMarginBottom,footerFontColor:t.footerFontColor,_footerFontFamily:Re(t.footerFontFamily,e.defaultFontFamily),_footerFontStyle:Re(t.footerFontStyle,e.defaultFontStyle),footerFontSize:Re(t.footerFontSize,e.defaultFontSize),_footerAlign:t.footerAlign,footerSpacing:t.footerSpacing,footerMarginTop:t.footerMarginTop,caretSize:t.caretSize,cornerRadius:t.cornerRadius,backgroundColor:t.backgroundColor,opacity:0,legendColorBackground:t.multiKeyBackground,displayColors:t.displayColors,borderColor:t.borderColor,borderWidth:t.borderWidth}}function Ve(t,e){return"center"===e?t.x+t.width/2:"right"===e?t.x+t.width-t.xPadding:t.x+t.xPadding}function He(t){return Be([],Ee(t))}var je=X.extend({initialize:function(){this._model=We(this._options),this._lastActive=[]},getTitle:function(){var t=this,e=t._options,n=e.callbacks,i=n.beforeTitle.apply(t,arguments),a=n.title.apply(t,arguments),r=n.afterTitle.apply(t,arguments),o=[];return o=Be(o,Ee(i)),o=Be(o,Ee(a)),o=Be(o,Ee(r))},getBeforeBody:function(){return He(this._options.callbacks.beforeBody.apply(this,arguments))},getBody:function(t,e){var n=this,i=n._options.callbacks,a=[];return V.each(t,(function(t){var r={before:[],lines:[],after:[]};Be(r.before,Ee(i.beforeLabel.call(n,t,e))),Be(r.lines,i.label.call(n,t,e)),Be(r.after,Ee(i.afterLabel.call(n,t,e))),a.push(r)})),a},getAfterBody:function(){return He(this._options.callbacks.afterBody.apply(this,arguments))},getFooter:function(){var t=this,e=t._options.callbacks,n=e.beforeFooter.apply(t,arguments),i=e.footer.apply(t,arguments),a=e.afterFooter.apply(t,arguments),r=[];return r=Be(r,Ee(n)),r=Be(r,Ee(i)),r=Be(r,Ee(a))},update:function(t){var e,n,i,a,r,o,s,l,u,d,h=this,c=h._options,f=h._model,g=h._model=We(c),p=h._active,m=h._data,v={xAlign:f.xAlign,yAlign:f.yAlign},b={x:f.x,y:f.y},x={width:f.width,height:f.height},y={x:f.caretX,y:f.caretY};if(p.length){g.opacity=1;var _=[],k=[];y=Ne[c.position].call(h,p,h._eventPosition);var w=[];for(e=0,n=p.length;ei.width&&(a=i.width-e.width),a<0&&(a=0)),"top"===d?r+=h:r-="bottom"===d?e.height+h:e.height/2,"center"===d?"left"===u?a+=h:"right"===u&&(a-=h):"left"===u?a-=c:"right"===u&&(a+=c),{x:a,y:r}}(g,x,v=function(t,e){var n,i,a,r,o,s=t._model,l=t._chart,u=t._chart.chartArea,d="center",h="center";s.yl.height-e.height&&(h="bottom");var c=(u.left+u.right)/2,f=(u.top+u.bottom)/2;"center"===h?(n=function(t){return t<=c},i=function(t){return t>c}):(n=function(t){return t<=e.width/2},i=function(t){return t>=l.width-e.width/2}),a=function(t){return t+e.width+s.caretSize+s.caretPadding>l.width},r=function(t){return t-e.width-s.caretSize-s.caretPadding<0},o=function(t){return t<=f?"top":"bottom"},n(s.x)?(d="left",a(s.x)&&(d="center",h=o(s.y))):i(s.x)&&(d="right",r(s.x)&&(d="center",h=o(s.y)));var g=t._options;return{xAlign:g.xAlign?g.xAlign:d,yAlign:g.yAlign?g.yAlign:h}}(this,x),h._chart)}else g.opacity=0;return g.xAlign=v.xAlign,g.yAlign=v.yAlign,g.x=b.x,g.y=b.y,g.width=x.width,g.height=x.height,g.caretX=y.x,g.caretY=y.y,h._model=g,t&&c.custom&&c.custom.call(h,g),h},drawCaret:function(t,e){var n=this._chart.ctx,i=this._view,a=this.getCaretPosition(t,e,i);n.lineTo(a.x1,a.y1),n.lineTo(a.x2,a.y2),n.lineTo(a.x3,a.y3)},getCaretPosition:function(t,e,n){var i,a,r,o,s,l,u=n.caretSize,d=n.cornerRadius,h=n.xAlign,c=n.yAlign,f=t.x,g=t.y,p=e.width,m=e.height;if("center"===c)s=g+m/2,"left"===h?(a=(i=f)-u,r=i,o=s+u,l=s-u):(a=(i=f+p)+u,r=i,o=s-u,l=s+u);else if("left"===h?(i=(a=f+d+u)-u,r=a+u):"right"===h?(i=(a=f+p-d-u)-u,r=a+u):(i=(a=n.caretX)-u,r=a+u),"top"===c)s=(o=g)-u,l=o;else{s=(o=g+m)+u,l=o;var v=r;r=i,i=v}return{x1:i,x2:a,x3:r,y1:o,y2:s,y3:l}},drawTitle:function(t,e,n){var i,a,r,o=e.title,s=o.length;if(s){var l=ze(e.rtl,e.x,e.width);for(t.x=Ve(e,e._titleAlign),n.textAlign=l.textAlign(e._titleAlign),n.textBaseline="middle",i=e.titleFontSize,a=e.titleSpacing,n.fillStyle=e.titleFontColor,n.font=V.fontString(i,e._titleFontStyle,e._titleFontFamily),r=0;r0&&n.stroke()},draw:function(){var t=this._chart.ctx,e=this._view;if(0!==e.opacity){var n={width:e.width,height:e.height},i={x:e.x,y:e.y},a=Math.abs(e.opacity<.001)?0:e.opacity,r=e.title.length||e.beforeBody.length||e.body.length||e.afterBody.length||e.footer.length;this._options.enabled&&r&&(t.save(),t.globalAlpha=a,this.drawBackground(i,e,t,n),i.y+=e.yPadding,V.rtl.overrideTextDirection(t,e.textDirection),this.drawTitle(i,e,t),this.drawBody(i,e,t),this.drawFooter(i,e,t),V.rtl.restoreTextDirection(t,e.textDirection),t.restore())}},handleEvent:function(t){var e,n=this,i=n._options;return n._lastActive=n._lastActive||[],"mouseout"===t.type?n._active=[]:(n._active=n._chart.getElementsAtEventForMode(t,i.mode,i),i.reverse&&n._active.reverse()),(e=!V.arrayEquals(n._active,n._lastActive))&&(n._lastActive=n._active,(i.enabled||i.custom)&&(n._eventPosition={x:t.x,y:t.y},n.update(!0),n.pivot())),e}}),qe=Ne,Ue=je;Ue.positioners=qe;var Ye=V.valueOrDefault;function Ge(){return V.merge({},[].slice.call(arguments),{merger:function(t,e,n,i){if("xAxes"===t||"yAxes"===t){var a,r,o,s=n[t].length;for(e[t]||(e[t]=[]),a=0;a=e[t].length&&e[t].push({}),!e[t][a].type||o.type&&o.type!==e[t][a].type?V.merge(e[t][a],[Oe.getScaleDefaults(r),o]):V.merge(e[t][a],o)}else V._merger(t,e,n,i)}})}function Xe(){return V.merge({},[].slice.call(arguments),{merger:function(t,e,n,i){var a=e[t]||{},r=n[t];"scales"===t?e[t]=Ge(a,r):"scale"===t?e[t]=V.merge(a,[Oe.getScaleDefaults(r.type),r]):V._merger(t,e,n,i)}})}function Ke(t){var e=t.options;V.each(t.scales,(function(e){ge.removeBox(t,e)})),e=Xe(z.global,z[t.config.type],e),t.options=t.config.options=e,t.ensureScalesHaveIDs(),t.buildOrUpdateScales(),t.tooltip._options=e.tooltips,t.tooltip.initialize()}function Ze(t,e,n){var i,a=function(t){return t.id===i};do{i=e+n++}while(V.findIndex(t,a)>=0);return i}function $e(t){return"top"===t||"bottom"===t}function Je(t,e){return function(n,i){return n[t]===i[t]?n[e]-i[e]:n[t]-i[t]}}z._set("global",{elements:{},events:["mousemove","mouseout","click","touchstart","touchmove"],hover:{onHover:null,mode:"nearest",intersect:!0,animationDuration:400},onClick:null,maintainAspectRatio:!0,responsive:!0,responsiveAnimationDuration:0});var Qe=function(t,e){return this.construct(t,e),this};V.extend(Qe.prototype,{construct:function(t,e){var n=this;e=function(t){var e=(t=t||{}).data=t.data||{};return e.datasets=e.datasets||[],e.labels=e.labels||[],t.options=Xe(z.global,z[t.type],t.options||{}),t}(e);var i=Fe.acquireContext(t,e),a=i&&i.canvas,r=a&&a.height,o=a&&a.width;n.id=V.uid(),n.ctx=i,n.canvas=a,n.config=e,n.width=o,n.height=r,n.aspectRatio=r?o/r:null,n.options=e.options,n._bufferedRender=!1,n._layers=[],n.chart=n,n.controller=n,Qe.instances[n.id]=n,Object.defineProperty(n,"data",{get:function(){return n.config.data},set:function(t){n.config.data=t}}),i&&a?(n.initialize(),n.update()):console.error("Failed to create chart: can't acquire context from the given item")},initialize:function(){var t=this;return Le.notify(t,"beforeInit"),V.retinaScale(t,t.options.devicePixelRatio),t.bindEvents(),t.options.responsive&&t.resize(!0),t.initToolTip(),Le.notify(t,"afterInit"),t},clear:function(){return V.canvas.clear(this),this},stop:function(){return $.cancelAnimation(this),this},resize:function(t){var e=this,n=e.options,i=e.canvas,a=n.maintainAspectRatio&&e.aspectRatio||null,r=Math.max(0,Math.floor(V.getMaximumWidth(i))),o=Math.max(0,Math.floor(a?r/a:V.getMaximumHeight(i)));if((e.width!==r||e.height!==o)&&(i.width=e.width=r,i.height=e.height=o,i.style.width=r+"px",i.style.height=o+"px",V.retinaScale(e,n.devicePixelRatio),!t)){var s={width:r,height:o};Le.notify(e,"resize",[s]),n.onResize&&n.onResize(e,s),e.stop(),e.update({duration:n.responsiveAnimationDuration})}},ensureScalesHaveIDs:function(){var t=this.options,e=t.scales||{},n=t.scale;V.each(e.xAxes,(function(t,n){t.id||(t.id=Ze(e.xAxes,"x-axis-",n))})),V.each(e.yAxes,(function(t,n){t.id||(t.id=Ze(e.yAxes,"y-axis-",n))})),n&&(n.id=n.id||"scale")},buildOrUpdateScales:function(){var t=this,e=t.options,n=t.scales||{},i=[],a=Object.keys(n).reduce((function(t,e){return t[e]=!1,t}),{});e.scales&&(i=i.concat((e.scales.xAxes||[]).map((function(t){return{options:t,dtype:"category",dposition:"bottom"}})),(e.scales.yAxes||[]).map((function(t){return{options:t,dtype:"linear",dposition:"left"}})))),e.scale&&i.push({options:e.scale,dtype:"radialLinear",isDefault:!0,dposition:"chartArea"}),V.each(i,(function(e){var i=e.options,r=i.id,o=Ye(i.type,e.dtype);$e(i.position)!==$e(e.dposition)&&(i.position=e.dposition),a[r]=!0;var s=null;if(r in n&&n[r].type===o)(s=n[r]).options=i,s.ctx=t.ctx,s.chart=t;else{var l=Oe.getScaleConstructor(o);if(!l)return;s=new l({id:r,type:o,options:i,ctx:t.ctx,chart:t}),n[s.id]=s}s.mergeTicksOptions(),e.isDefault&&(t.scale=s)})),V.each(a,(function(t,e){t||delete n[e]})),t.scales=n,Oe.addScalesToLayout(this)},buildOrUpdateControllers:function(){var t,e,n=this,i=[],a=n.data.datasets;for(t=0,e=a.length;t=0;--n)this.drawDataset(e[n],t);Le.notify(this,"afterDatasetsDraw",[t])}},drawDataset:function(t,e){var n={meta:t,index:t.index,easingValue:e};!1!==Le.notify(this,"beforeDatasetDraw",[n])&&(t.controller.draw(e),Le.notify(this,"afterDatasetDraw",[n]))},_drawTooltip:function(t){var e=this.tooltip,n={tooltip:e,easingValue:t};!1!==Le.notify(this,"beforeTooltipDraw",[n])&&(e.draw(),Le.notify(this,"afterTooltipDraw",[n]))},getElementAtEvent:function(t){return ae.modes.single(this,t)},getElementsAtEvent:function(t){return ae.modes.label(this,t,{intersect:!0})},getElementsAtXAxis:function(t){return ae.modes["x-axis"](this,t,{intersect:!0})},getElementsAtEventForMode:function(t,e,n){var i=ae.modes[e];return"function"==typeof i?i(this,t,n):[]},getDatasetAtEvent:function(t){return ae.modes.dataset(this,t,{intersect:!0})},getDatasetMeta:function(t){var e=this.data.datasets[t];e._meta||(e._meta={});var n=e._meta[this.id];return n||(n=e._meta[this.id]={type:null,data:[],dataset:null,controller:null,hidden:null,xAxisID:null,yAxisID:null,order:e.order||0,index:t}),n},getVisibleDatasetCount:function(){for(var t=0,e=0,n=this.data.datasets.length;e3?n[2]-n[1]:n[1]-n[0];Math.abs(i)>1&&t!==Math.floor(t)&&(i=t-Math.floor(t));var a=V.log10(Math.abs(i)),r="";if(0!==t)if(Math.max(Math.abs(n[0]),Math.abs(n[n.length-1]))<1e-4){var o=V.log10(Math.abs(t)),s=Math.floor(o)-Math.floor(a);s=Math.max(Math.min(s,20),0),r=t.toExponential(s)}else{var l=-1*Math.floor(a);l=Math.max(Math.min(l,20),0),r=t.toFixed(l)}else r="0";return r},logarithmic:function(t,e,n){var i=t/Math.pow(10,Math.floor(V.log10(t)));return 0===t?"0":1===i||2===i||5===i||0===e||e===n.length-1?t.toExponential():""}}},on=V.isArray,sn=V.isNullOrUndef,ln=V.valueOrDefault,un=V.valueAtIndexOrDefault;function dn(t,e,n){var i,a=t.getTicks().length,r=Math.min(e,a-1),o=t.getPixelForTick(r),s=t._startPixel,l=t._endPixel;if(!(n&&(i=1===a?Math.max(o-s,l-o):0===e?(t.getPixelForTick(1)-o)/2:(o-t.getPixelForTick(r-1))/2,(o+=rl+1e-6)))return o}function hn(t,e,n,i){var a,r,o,s,l,u,d,h,c,f,g,p,m,v=n.length,b=[],x=[],y=[];for(a=0;ae){for(n=0;n=c||d<=1||!s.isHorizontal()?s.labelRotation=h:(e=(t=s._getLabelSizes()).widest.width,n=t.highest.height-t.highest.offset,i=Math.min(s.maxWidth,s.chart.width-e),e+6>(a=l.offset?s.maxWidth/d:i/(d-1))&&(a=i/(d-(l.offset?.5:1)),r=s.maxHeight-cn(l.gridLines)-u.padding-fn(l.scaleLabel),o=Math.sqrt(e*e+n*n),f=V.toDegrees(Math.min(Math.asin(Math.min((t.highest.height+6)/a,1)),Math.asin(Math.min(r/o,1))-Math.asin(n/o))),f=Math.max(h,Math.min(c,f))),s.labelRotation=f)},afterCalculateTickRotation:function(){V.callback(this.options.afterCalculateTickRotation,[this])},beforeFit:function(){V.callback(this.options.beforeFit,[this])},fit:function(){var t=this,e=t.minSize={width:0,height:0},n=t.chart,i=t.options,a=i.ticks,r=i.scaleLabel,o=i.gridLines,s=t._isVisible(),l="bottom"===i.position,u=t.isHorizontal();if(u?e.width=t.maxWidth:s&&(e.width=cn(o)+fn(r)),u?s&&(e.height=cn(o)+fn(r)):e.height=t.maxHeight,a.display&&s){var d=pn(a),h=t._getLabelSizes(),c=h.first,f=h.last,g=h.widest,p=h.highest,m=.4*d.minor.lineHeight,v=a.padding;if(u){var b=0!==t.labelRotation,x=V.toRadians(t.labelRotation),y=Math.cos(x),_=Math.sin(x),k=_*g.width+y*(p.height-(b?p.offset:0))+(b?0:m);e.height=Math.min(t.maxHeight,e.height+k+v);var w,M,S=t.getPixelForTick(0)-t.left,C=t.right-t.getPixelForTick(t.getTicks().length-1);b?(w=l?y*c.width+_*c.offset:_*(c.height-c.offset),M=l?_*(f.height-f.offset):y*f.width+_*f.offset):(w=c.width/2,M=f.width/2),t.paddingLeft=Math.max((w-S)*t.width/(t.width-S),0)+3,t.paddingRight=Math.max((M-C)*t.width/(t.width-C),0)+3}else{var P=a.mirror?0:g.width+v+m;e.width=Math.min(t.maxWidth,e.width+P),t.paddingTop=c.height/2,t.paddingBottom=f.height/2}}t.handleMargins(),u?(t.width=t._length=n.width-t.margins.left-t.margins.right,t.height=e.height):(t.width=e.width,t.height=t._length=n.height-t.margins.top-t.margins.bottom)},handleMargins:function(){var t=this;t.margins&&(t.margins.left=Math.max(t.paddingLeft,t.margins.left),t.margins.top=Math.max(t.paddingTop,t.margins.top),t.margins.right=Math.max(t.paddingRight,t.margins.right),t.margins.bottom=Math.max(t.paddingBottom,t.margins.bottom))},afterFit:function(){V.callback(this.options.afterFit,[this])},isHorizontal:function(){var t=this.options.position;return"top"===t||"bottom"===t},isFullWidth:function(){return this.options.fullWidth},getRightValue:function(t){if(sn(t))return NaN;if(("number"==typeof t||t instanceof Number)&&!isFinite(t))return NaN;if(t)if(this.isHorizontal()){if(void 0!==t.x)return this.getRightValue(t.x)}else if(void 0!==t.y)return this.getRightValue(t.y);return t},_convertTicksToLabels:function(t){var e,n,i,a=this;for(a.ticks=t.map((function(t){return t.value})),a.beforeTickToLabelConversion(),e=a.convertTicksToLabels(t)||a.ticks,a.afterTickToLabelConversion(),n=0,i=t.length;nn-1?null:this.getPixelForDecimal(t*i+(e?i/2:0))},getPixelForDecimal:function(t){return this._reversePixels&&(t=1-t),this._startPixel+t*this._length},getDecimalForPixel:function(t){var e=(t-this._startPixel)/this._length;return this._reversePixels?1-e:e},getBasePixel:function(){return this.getPixelForValue(this.getBaseValue())},getBaseValue:function(){var t=this.min,e=this.max;return this.beginAtZero?0:t<0&&e<0?e:t>0&&e>0?t:0},_autoSkip:function(t){var e,n,i,a,r=this.options.ticks,o=this._length,s=r.maxTicksLimit||o/this._tickSize()+1,l=r.major.enabled?function(t){var e,n,i=[];for(e=0,n=t.length;es)return function(t,e,n){var i,a,r=0,o=e[0];for(n=Math.ceil(n),i=0;iu)return r;return Math.max(u,1)}(l,t,0,s),u>0){for(e=0,n=u-1;e1?(h-d)/(u-1):null,vn(t,i,V.isNullOrUndef(a)?0:d-a,d),vn(t,i,h,V.isNullOrUndef(a)?t.length:h+a),mn(t)}return vn(t,i),mn(t)},_tickSize:function(){var t=this.options.ticks,e=V.toRadians(this.labelRotation),n=Math.abs(Math.cos(e)),i=Math.abs(Math.sin(e)),a=this._getLabelSizes(),r=t.autoSkipPadding||0,o=a?a.widest.width+r:0,s=a?a.highest.height+r:0;return this.isHorizontal()?s*n>o*i?o/n:s/i:s*i=0&&(o=t),void 0!==r&&(t=n.indexOf(r))>=0&&(s=t),e.minIndex=o,e.maxIndex=s,e.min=n[o],e.max=n[s]},buildTicks:function(){var t=this._getLabels(),e=this.minIndex,n=this.maxIndex;this.ticks=0===e&&n===t.length-1?t:t.slice(e,n+1)},getLabelForIndex:function(t,e){var n=this.chart;return n.getDatasetMeta(e).controller._getValueScaleId()===this.id?this.getRightValue(n.data.datasets[e].data[t]):this._getLabels()[t]},_configure:function(){var t=this,e=t.options.offset,n=t.ticks;xn.prototype._configure.call(t),t.isHorizontal()||(t._reversePixels=!t._reversePixels),n&&(t._startValue=t.minIndex-(e?.5:0),t._valueRange=Math.max(n.length-(e?0:1),1))},getPixelForValue:function(t,e,n){var i,a,r,o=this;return yn(e)||yn(n)||(t=o.chart.data.datasets[n].data[e]),yn(t)||(i=o.isHorizontal()?t.x:t.y),(void 0!==i||void 0!==t&&isNaN(e))&&(a=o._getLabels(),t=V.valueOrDefault(i,t),e=-1!==(r=a.indexOf(t))?r:e,isNaN(e)&&(e=t)),o.getPixelForDecimal((e-o._startValue)/o._valueRange)},getPixelForTick:function(t){var e=this.ticks;return t<0||t>e.length-1?null:this.getPixelForValue(e[t],t+this.minIndex)},getValueForPixel:function(t){var e=Math.round(this._startValue+this.getDecimalForPixel(t)*this._valueRange);return Math.min(Math.max(e,0),this.ticks.length-1)},getBasePixel:function(){return this.bottom}}),kn={position:"bottom"};_n._defaults=kn;var wn=V.noop,Mn=V.isNullOrUndef;var Sn=xn.extend({getRightValue:function(t){return"string"==typeof t?+t:xn.prototype.getRightValue.call(this,t)},handleTickRangeOptions:function(){var t=this,e=t.options.ticks;if(e.beginAtZero){var n=V.sign(t.min),i=V.sign(t.max);n<0&&i<0?t.max=0:n>0&&i>0&&(t.min=0)}var a=void 0!==e.min||void 0!==e.suggestedMin,r=void 0!==e.max||void 0!==e.suggestedMax;void 0!==e.min?t.min=e.min:void 0!==e.suggestedMin&&(null===t.min?t.min=e.suggestedMin:t.min=Math.min(t.min,e.suggestedMin)),void 0!==e.max?t.max=e.max:void 0!==e.suggestedMax&&(null===t.max?t.max=e.suggestedMax:t.max=Math.max(t.max,e.suggestedMax)),a!==r&&t.min>=t.max&&(a?t.max=t.min+1:t.min=t.max-1),t.min===t.max&&(t.max++,e.beginAtZero||t.min--)},getTickLimit:function(){var t,e=this.options.ticks,n=e.stepSize,i=e.maxTicksLimit;return n?t=Math.ceil(this.max/n)-Math.floor(this.min/n)+1:(t=this._computeTickLimit(),i=i||11),i&&(t=Math.min(i,t)),t},_computeTickLimit:function(){return Number.POSITIVE_INFINITY},handleDirectionalChanges:wn,buildTicks:function(){var t=this,e=t.options.ticks,n=t.getTickLimit(),i={maxTicks:n=Math.max(2,n),min:e.min,max:e.max,precision:e.precision,stepSize:V.valueOrDefault(e.fixedStepSize,e.stepSize)},a=t.ticks=function(t,e){var n,i,a,r,o=[],s=t.stepSize,l=s||1,u=t.maxTicks-1,d=t.min,h=t.max,c=t.precision,f=e.min,g=e.max,p=V.niceNum((g-f)/u/l)*l;if(p<1e-14&&Mn(d)&&Mn(h))return[f,g];(r=Math.ceil(g/p)-Math.floor(f/p))>u&&(p=V.niceNum(r*p/u/l)*l),s||Mn(c)?n=Math.pow(10,V._decimalPlaces(p)):(n=Math.pow(10,c),p=Math.ceil(p*n)/n),i=Math.floor(f/p)*p,a=Math.ceil(g/p)*p,s&&(!Mn(d)&&V.almostWhole(d/p,p/1e3)&&(i=d),!Mn(h)&&V.almostWhole(h/p,p/1e3)&&(a=h)),r=(a-i)/p,r=V.almostEquals(r,Math.round(r),p/1e3)?Math.round(r):Math.ceil(r),i=Math.round(i*n)/n,a=Math.round(a*n)/n,o.push(Mn(d)?i:d);for(var m=1;me.length-1?null:this.getPixelForValue(e[t])}}),Tn=Cn;Dn._defaults=Tn;var In=V.valueOrDefault,Fn=V.math.log10;var Ln={position:"left",ticks:{callback:rn.formatters.logarithmic}};function On(t,e){return V.isFinite(t)&&t>=0?t:e}var Rn=xn.extend({determineDataLimits:function(){var t,e,n,i,a,r,o=this,s=o.options,l=o.chart,u=l.data.datasets,d=o.isHorizontal();function h(t){return d?t.xAxisID===o.id:t.yAxisID===o.id}o.min=Number.POSITIVE_INFINITY,o.max=Number.NEGATIVE_INFINITY,o.minNotZero=Number.POSITIVE_INFINITY;var c=s.stacked;if(void 0===c)for(t=0;t0){var e=V.min(t),n=V.max(t);o.min=Math.min(o.min,e),o.max=Math.max(o.max,n)}}))}else for(t=0;t0?t.minNotZero=t.min:t.max<1?t.minNotZero=Math.pow(10,Math.floor(Fn(t.max))):t.minNotZero=1)},buildTicks:function(){var t=this,e=t.options.ticks,n=!t.isHorizontal(),i={min:On(e.min),max:On(e.max)},a=t.ticks=function(t,e){var n,i,a=[],r=In(t.min,Math.pow(10,Math.floor(Fn(e.min)))),o=Math.floor(Fn(e.max)),s=Math.ceil(e.max/Math.pow(10,o));0===r?(n=Math.floor(Fn(e.minNotZero)),i=Math.floor(e.minNotZero/Math.pow(10,n)),a.push(r),r=i*Math.pow(10,n)):(n=Math.floor(Fn(r)),i=Math.floor(r/Math.pow(10,n)));var l=n<0?Math.pow(10,Math.abs(n)):1;do{a.push(r),10===++i&&(i=1,l=++n>=0?1:l),r=Math.round(i*Math.pow(10,n)*l)/l}while(ne.length-1?null:this.getPixelForValue(e[t])},_getFirstTickValue:function(t){var e=Math.floor(Fn(t));return Math.floor(t/Math.pow(10,e))*Math.pow(10,e)},_configure:function(){var t=this,e=t.min,n=0;xn.prototype._configure.call(t),0===e&&(e=t._getFirstTickValue(t.minNotZero),n=In(t.options.ticks.fontSize,z.global.defaultFontSize)/t._length),t._startValue=Fn(e),t._valueOffset=n,t._valueRange=(Fn(t.max)-Fn(e))/(1-n)},getPixelForValue:function(t){var e=this,n=0;return(t=+e.getRightValue(t))>e.min&&t>0&&(n=(Fn(t)-e._startValue)/e._valueRange+e._valueOffset),e.getPixelForDecimal(n)},getValueForPixel:function(t){var e=this,n=e.getDecimalForPixel(t);return 0===n&&0===e.min?0:Math.pow(10,e._startValue+(n-e._valueOffset)*e._valueRange)}}),zn=Ln;Rn._defaults=zn;var Nn=V.valueOrDefault,Bn=V.valueAtIndexOrDefault,En=V.options.resolve,Wn={display:!0,animate:!0,position:"chartArea",angleLines:{display:!0,color:"rgba(0,0,0,0.1)",lineWidth:1,borderDash:[],borderDashOffset:0},gridLines:{circular:!1},ticks:{showLabelBackdrop:!0,backdropColor:"rgba(255,255,255,0.75)",backdropPaddingY:2,backdropPaddingX:2,callback:rn.formatters.linear},pointLabels:{display:!0,fontSize:10,callback:function(t){return t}}};function Vn(t){var e=t.ticks;return e.display&&t.display?Nn(e.fontSize,z.global.defaultFontSize)+2*e.backdropPaddingY:0}function Hn(t,e,n,i,a){return t===i||t===a?{start:e-n/2,end:e+n/2}:ta?{start:e-n,end:e}:{start:e,end:e+n}}function jn(t){return 0===t||180===t?"center":t<180?"left":"right"}function qn(t,e,n,i){var a,r,o=n.y+i/2;if(V.isArray(e))for(a=0,r=e.length;a270||t<90)&&(n.y-=e.h)}function Yn(t){return V.isNumber(t)?t:0}var Gn=Sn.extend({setDimensions:function(){var t=this;t.width=t.maxWidth,t.height=t.maxHeight,t.paddingTop=Vn(t.options)/2,t.xCenter=Math.floor(t.width/2),t.yCenter=Math.floor((t.height-t.paddingTop)/2),t.drawingArea=Math.min(t.height-t.paddingTop,t.width)/2},determineDataLimits:function(){var t=this,e=t.chart,n=Number.POSITIVE_INFINITY,i=Number.NEGATIVE_INFINITY;V.each(e.data.datasets,(function(a,r){if(e.isDatasetVisible(r)){var o=e.getDatasetMeta(r);V.each(a.data,(function(e,a){var r=+t.getRightValue(e);isNaN(r)||o.data[a].hidden||(n=Math.min(r,n),i=Math.max(r,i))}))}})),t.min=n===Number.POSITIVE_INFINITY?0:n,t.max=i===Number.NEGATIVE_INFINITY?0:i,t.handleTickRangeOptions()},_computeTickLimit:function(){return Math.ceil(this.drawingArea/Vn(this.options))},convertTicksToLabels:function(){var t=this;Sn.prototype.convertTicksToLabels.call(t),t.pointLabels=t.chart.data.labels.map((function(){var e=V.callback(t.options.pointLabels.callback,arguments,t);return e||0===e?e:""}))},getLabelForIndex:function(t,e){return+this.getRightValue(this.chart.data.datasets[e].data[t])},fit:function(){var t=this.options;t.display&&t.pointLabels.display?function(t){var e,n,i,a=V.options._parseFont(t.options.pointLabels),r={l:0,r:t.width,t:0,b:t.height-t.paddingTop},o={};t.ctx.font=a.string,t._pointLabelSizes=[];var s,l,u,d=t.chart.data.labels.length;for(e=0;er.r&&(r.r=f.end,o.r=h),g.startr.b&&(r.b=g.end,o.b=h)}t.setReductions(t.drawingArea,r,o)}(this):this.setCenterPoint(0,0,0,0)},setReductions:function(t,e,n){var i=this,a=e.l/Math.sin(n.l),r=Math.max(e.r-i.width,0)/Math.sin(n.r),o=-e.t/Math.cos(n.t),s=-Math.max(e.b-(i.height-i.paddingTop),0)/Math.cos(n.b);a=Yn(a),r=Yn(r),o=Yn(o),s=Yn(s),i.drawingArea=Math.min(Math.floor(t-(a+r)/2),Math.floor(t-(o+s)/2)),i.setCenterPoint(a,r,o,s)},setCenterPoint:function(t,e,n,i){var a=this,r=a.width-e-a.drawingArea,o=t+a.drawingArea,s=n+a.drawingArea,l=a.height-a.paddingTop-i-a.drawingArea;a.xCenter=Math.floor((o+r)/2+a.left),a.yCenter=Math.floor((s+l)/2+a.top+a.paddingTop)},getIndexAngle:function(t){var e=this.chart,n=(t*(360/e.data.labels.length)+((e.options||{}).startAngle||0))%360;return(n<0?n+360:n)*Math.PI*2/360},getDistanceFromCenterForValue:function(t){var e=this;if(V.isNullOrUndef(t))return NaN;var n=e.drawingArea/(e.max-e.min);return e.options.ticks.reverse?(e.max-t)*n:(t-e.min)*n},getPointPosition:function(t,e){var n=this.getIndexAngle(t)-Math.PI/2;return{x:Math.cos(n)*e+this.xCenter,y:Math.sin(n)*e+this.yCenter}},getPointPositionForValue:function(t,e){return this.getPointPosition(t,this.getDistanceFromCenterForValue(e))},getBasePosition:function(t){var e=this.min,n=this.max;return this.getPointPositionForValue(t||0,this.beginAtZero?0:e<0&&n<0?n:e>0&&n>0?e:0)},_drawGrid:function(){var t,e,n,i=this,a=i.ctx,r=i.options,o=r.gridLines,s=r.angleLines,l=Nn(s.lineWidth,o.lineWidth),u=Nn(s.color,o.color);if(r.pointLabels.display&&function(t){var e=t.ctx,n=t.options,i=n.pointLabels,a=Vn(n),r=t.getDistanceFromCenterForValue(n.ticks.reverse?t.min:t.max),o=V.options._parseFont(i);e.save(),e.font=o.string,e.textBaseline="middle";for(var s=t.chart.data.labels.length-1;s>=0;s--){var l=0===s?a/2:0,u=t.getPointPosition(s,r+l+5),d=Bn(i.fontColor,s,z.global.defaultFontColor);e.fillStyle=d;var h=t.getIndexAngle(s),c=V.toDegrees(h);e.textAlign=jn(c),Un(c,t._pointLabelSizes[s],u),qn(e,t.pointLabels[s],u,o.lineHeight)}e.restore()}(i),o.display&&V.each(i.ticks,(function(t,n){0!==n&&(e=i.getDistanceFromCenterForValue(i.ticksAsNumbers[n]),function(t,e,n,i){var a,r=t.ctx,o=e.circular,s=t.chart.data.labels.length,l=Bn(e.color,i-1),u=Bn(e.lineWidth,i-1);if((o||s)&&l&&u){if(r.save(),r.strokeStyle=l,r.lineWidth=u,r.setLineDash&&(r.setLineDash(e.borderDash||[]),r.lineDashOffset=e.borderDashOffset||0),r.beginPath(),o)r.arc(t.xCenter,t.yCenter,n,0,2*Math.PI);else{a=t.getPointPosition(0,n),r.moveTo(a.x,a.y);for(var d=1;d=0;t--)e=i.getDistanceFromCenterForValue(r.ticks.reverse?i.min:i.max),n=i.getPointPosition(t,e),a.beginPath(),a.moveTo(i.xCenter,i.yCenter),a.lineTo(n.x,n.y),a.stroke();a.restore()}},_drawLabels:function(){var t=this,e=t.ctx,n=t.options.ticks;if(n.display){var i,a,r=t.getIndexAngle(0),o=V.options._parseFont(n),s=Nn(n.fontColor,z.global.defaultFontColor);e.save(),e.font=o.string,e.translate(t.xCenter,t.yCenter),e.rotate(r),e.textAlign="center",e.textBaseline="middle",V.each(t.ticks,(function(r,l){(0!==l||n.reverse)&&(i=t.getDistanceFromCenterForValue(t.ticksAsNumbers[l]),n.showLabelBackdrop&&(a=e.measureText(r).width,e.fillStyle=n.backdropColor,e.fillRect(-a/2-n.backdropPaddingX,-i-o.size/2-n.backdropPaddingY,a+2*n.backdropPaddingX,o.size+2*n.backdropPaddingY)),e.fillStyle=s,e.fillText(r,0,-i))})),e.restore()}},_drawTitle:V.noop}),Xn=Wn;Gn._defaults=Xn;var Kn=V._deprecated,Zn=V.options.resolve,$n=V.valueOrDefault,Jn=Number.MIN_SAFE_INTEGER||-9007199254740991,Qn=Number.MAX_SAFE_INTEGER||9007199254740991,ti={millisecond:{common:!0,size:1,steps:1e3},second:{common:!0,size:1e3,steps:60},minute:{common:!0,size:6e4,steps:60},hour:{common:!0,size:36e5,steps:24},day:{common:!0,size:864e5,steps:30},week:{common:!1,size:6048e5,steps:4},month:{common:!0,size:2628e6,steps:12},quarter:{common:!1,size:7884e6,steps:4},year:{common:!0,size:3154e7}},ei=Object.keys(ti);function ni(t,e){return t-e}function ii(t){return V.valueOrDefault(t.time.min,t.ticks.min)}function ai(t){return V.valueOrDefault(t.time.max,t.ticks.max)}function ri(t,e,n,i){var a=function(t,e,n){for(var i,a,r,o=0,s=t.length-1;o>=0&&o<=s;){if(a=t[(i=o+s>>1)-1]||null,r=t[i],!a)return{lo:null,hi:r};if(r[e]n))return{lo:a,hi:r};s=i-1}}return{lo:r,hi:null}}(t,e,n),r=a.lo?a.hi?a.lo:t[t.length-2]:t[0],o=a.lo?a.hi?a.hi:t[t.length-1]:t[1],s=o[e]-r[e],l=s?(n-r[e])/s:0,u=(o[i]-r[i])*l;return r[i]+u}function oi(t,e){var n=t._adapter,i=t.options.time,a=i.parser,r=a||i.format,o=e;return"function"==typeof a&&(o=a(o)),V.isFinite(o)||(o="string"==typeof r?n.parse(o,r):n.parse(o)),null!==o?+o:(a||"function"!=typeof r||(o=r(e),V.isFinite(o)||(o=n.parse(o))),o)}function si(t,e){if(V.isNullOrUndef(e))return null;var n=t.options.time,i=oi(t,t.getRightValue(e));return null===i?i:(n.round&&(i=+t._adapter.startOf(i,n.round)),i)}function li(t,e,n,i){var a,r,o,s=ei.length;for(a=ei.indexOf(t);a=0&&(e[r].major=!0);return e}(t,r,o,n):r}var di=xn.extend({initialize:function(){this.mergeTicksOptions(),xn.prototype.initialize.call(this)},update:function(){var t=this,e=t.options,n=e.time||(e.time={}),i=t._adapter=new an._date(e.adapters.date);return Kn("time scale",n.format,"time.format","time.parser"),Kn("time scale",n.min,"time.min","ticks.min"),Kn("time scale",n.max,"time.max","ticks.max"),V.mergeIf(n.displayFormats,i.formats()),xn.prototype.update.apply(t,arguments)},getRightValue:function(t){return t&&void 0!==t.t&&(t=t.t),xn.prototype.getRightValue.call(this,t)},determineDataLimits:function(){var t,e,n,i,a,r,o,s=this,l=s.chart,u=s._adapter,d=s.options,h=d.time.unit||"day",c=Qn,f=Jn,g=[],p=[],m=[],v=s._getLabels();for(t=0,n=v.length;t1?function(t){var e,n,i,a={},r=[];for(e=0,n=t.length;e1e5*u)throw e+" and "+n+" are too far apart with stepSize of "+u+" "+l;for(a=h;a=a&&n<=r&&d.push(n);return i.min=a,i.max=r,i._unit=l.unit||(s.autoSkip?li(l.minUnit,i.min,i.max,h):function(t,e,n,i,a){var r,o;for(r=ei.length-1;r>=ei.indexOf(n);r--)if(o=ei[r],ti[o].common&&t._adapter.diff(a,i,o)>=e-1)return o;return ei[n?ei.indexOf(n):0]}(i,d.length,l.minUnit,i.min,i.max)),i._majorUnit=s.major.enabled&&"year"!==i._unit?function(t){for(var e=ei.indexOf(t)+1,n=ei.length;ee&&s=0&&t0?s:1}}),hi={position:"bottom",distribution:"linear",bounds:"data",adapters:{},time:{parser:!1,unit:!1,round:!1,displayFormat:!1,isoWeekday:!1,minUnit:"millisecond",displayFormats:{}},ticks:{autoSkip:!1,source:"auto",major:{enabled:!1}}};di._defaults=hi;var ci={category:_n,linear:Dn,logarithmic:Rn,radialLinear:Gn,time:di},fi={datetime:"MMM D, YYYY, h:mm:ss a",millisecond:"h:mm:ss.SSS a",second:"h:mm:ss a",minute:"h:mm a",hour:"hA",day:"MMM D",week:"ll",month:"MMM YYYY",quarter:"[Q]Q - YYYY",year:"YYYY"};an._date.override("function"==typeof t?{_id:"moment",formats:function(){return fi},parse:function(e,n){return"string"==typeof e&&"string"==typeof n?e=t(e,n):e instanceof t||(e=t(e)),e.isValid()?e.valueOf():null},format:function(e,n){return t(e).format(n)},add:function(e,n,i){return t(e).add(n,i).valueOf()},diff:function(e,n,i){return t(e).diff(t(n),i)},startOf:function(e,n,i){return e=t(e),"isoWeek"===n?e.isoWeekday(i).valueOf():e.startOf(n).valueOf()},endOf:function(e,n){return t(e).endOf(n).valueOf()},_create:function(e){return t(e)}}:{}),z._set("global",{plugins:{filler:{propagate:!0}}});var gi={dataset:function(t){var e=t.fill,n=t.chart,i=n.getDatasetMeta(e),a=i&&n.isDatasetVisible(e)&&i.dataset._children||[],r=a.length||0;return r?function(t,e){return e=n)&&i;switch(r){case"bottom":return"start";case"top":return"end";case"zero":return"origin";case"origin":case"start":case"end":return r;default:return!1}}function mi(t){return(t.el._scale||{}).getPointPositionForValue?function(t){var e,n,i,a,r,o=t.el._scale,s=o.options,l=o.chart.data.labels.length,u=t.fill,d=[];if(!l)return null;for(e=s.ticks.reverse?o.max:o.min,n=s.ticks.reverse?o.min:o.max,i=o.getPointPositionForValue(0,e),a=0;a0;--r)V.canvas.lineTo(t,n[r],n[r-1],!0);else for(o=n[0].cx,s=n[0].cy,l=Math.sqrt(Math.pow(n[0].x-o,2)+Math.pow(n[0].y-s,2)),r=a-1;r>0;--r)t.arc(o,s,l,n[r].angle,n[r-1].angle,!0)}}function _i(t,e,n,i,a,r){var o,s,l,u,d,h,c,f,g=e.length,p=i.spanGaps,m=[],v=[],b=0,x=0;for(t.beginPath(),o=0,s=g;o=0;--n)(e=l[n].$filler)&&e.visible&&(a=(i=e.el)._view,r=i._children||[],o=e.mapper,s=a.backgroundColor||z.global.defaultColor,o&&s&&r.length&&(V.canvas.clipArea(u,t.chartArea),_i(u,r,o,a,s,i._loop),V.canvas.unclipArea(u)))}},wi=V.rtl.getRtlAdapter,Mi=V.noop,Si=V.valueOrDefault;function Ci(t,e){return t.usePointStyle&&t.boxWidth>e?e:t.boxWidth}z._set("global",{legend:{display:!0,position:"top",align:"center",fullWidth:!0,reverse:!1,weight:1e3,onClick:function(t,e){var n=e.datasetIndex,i=this.chart,a=i.getDatasetMeta(n);a.hidden=null===a.hidden?!i.data.datasets[n].hidden:null,i.update()},onHover:null,onLeave:null,labels:{boxWidth:40,padding:10,generateLabels:function(t){var e=t.data.datasets,n=t.options.legend||{},i=n.labels&&n.labels.usePointStyle;return t._getSortedDatasetMetas().map((function(n){var a=n.controller.getStyle(i?0:void 0);return{text:e[n.index].label,fillStyle:a.backgroundColor,hidden:!t.isDatasetVisible(n.index),lineCap:a.borderCapStyle,lineDash:a.borderDash,lineDashOffset:a.borderDashOffset,lineJoin:a.borderJoinStyle,lineWidth:a.borderWidth,strokeStyle:a.borderColor,pointStyle:a.pointStyle,rotation:a.rotation,datasetIndex:n.index}}),this)}}},legendCallback:function(t){var e,n,i,a=document.createElement("ul"),r=t.data.datasets;for(a.setAttribute("class",t.id+"-legend"),e=0,n=r.length;el.width)&&(h+=o+n.padding,d[d.length-(e>0?0:1)]=0),s[e]={left:0,top:0,width:i,height:o},d[d.length-1]+=i+n.padding})),l.height+=h}else{var c=n.padding,f=t.columnWidths=[],g=t.columnHeights=[],p=n.padding,m=0,v=0;V.each(t.legendItems,(function(t,e){var i=Ci(n,o)+o/2+a.measureText(t.text).width;e>0&&v+o+2*c>l.height&&(p+=m+n.padding,f.push(m),g.push(v),m=0,v=0),m=Math.max(m,i),v+=o+c,s[e]={left:0,top:0,width:i,height:o}})),p+=m,f.push(m),g.push(v),l.width+=p}t.width=l.width,t.height=l.height}else t.width=l.width=t.height=l.height=0},afterFit:Mi,isHorizontal:function(){return"top"===this.options.position||"bottom"===this.options.position},draw:function(){var t=this,e=t.options,n=e.labels,i=z.global,a=i.defaultColor,r=i.elements.line,o=t.height,s=t.columnHeights,l=t.width,u=t.lineWidths;if(e.display){var d,h=wi(e.rtl,t.left,t.minSize.width),c=t.ctx,f=Si(n.fontColor,i.defaultFontColor),g=V.options._parseFont(n),p=g.size;c.textAlign=h.textAlign("left"),c.textBaseline="middle",c.lineWidth=.5,c.strokeStyle=f,c.fillStyle=f,c.font=g.string;var m=Ci(n,p),v=t.legendHitBoxes,b=function(t,i){switch(e.align){case"start":return n.padding;case"end":return t-i;default:return(t-i+n.padding)/2}},x=t.isHorizontal();d=x?{x:t.left+b(l,u[0]),y:t.top+n.padding,line:0}:{x:t.left+n.padding,y:t.top+b(o,s[0]),line:0},V.rtl.overrideTextDirection(t.ctx,e.textDirection);var y=p+n.padding;V.each(t.legendItems,(function(e,i){var f=c.measureText(e.text).width,g=m+p/2+f,_=d.x,k=d.y;h.setWidth(t.minSize.width),x?i>0&&_+g+n.padding>t.left+t.minSize.width&&(k=d.y+=y,d.line++,_=d.x=t.left+b(l,u[d.line])):i>0&&k+y>t.top+t.minSize.height&&(_=d.x=_+t.columnWidths[d.line]+n.padding,d.line++,k=d.y=t.top+b(o,s[d.line]));var w=h.x(_);!function(t,e,i){if(!(isNaN(m)||m<=0)){c.save();var o=Si(i.lineWidth,r.borderWidth);if(c.fillStyle=Si(i.fillStyle,a),c.lineCap=Si(i.lineCap,r.borderCapStyle),c.lineDashOffset=Si(i.lineDashOffset,r.borderDashOffset),c.lineJoin=Si(i.lineJoin,r.borderJoinStyle),c.lineWidth=o,c.strokeStyle=Si(i.strokeStyle,a),c.setLineDash&&c.setLineDash(Si(i.lineDash,r.borderDash)),n&&n.usePointStyle){var s=m*Math.SQRT2/2,l=h.xPlus(t,m/2),u=e+p/2;V.canvas.drawPoint(c,i.pointStyle,s,l,u,i.rotation)}else c.fillRect(h.leftForLtr(t,m),e,m,p),0!==o&&c.strokeRect(h.leftForLtr(t,m),e,m,p);c.restore()}}(w,k,e),v[i].left=h.leftForLtr(w,v[i].width),v[i].top=k,function(t,e,n,i){var a=p/2,r=h.xPlus(t,m+a),o=e+a;c.fillText(n.text,r,o),n.hidden&&(c.beginPath(),c.lineWidth=2,c.moveTo(r,o),c.lineTo(h.xPlus(r,i),o),c.stroke())}(w,k,e,f),x?d.x+=g+n.padding:d.y+=y})),V.rtl.restoreTextDirection(t.ctx,e.textDirection)}},_getLegendItemAt:function(t,e){var n,i,a,r=this;if(t>=r.left&&t<=r.right&&e>=r.top&&e<=r.bottom)for(a=r.legendHitBoxes,n=0;n=(i=a[n]).left&&t<=i.left+i.width&&e>=i.top&&e<=i.top+i.height)return r.legendItems[n];return null},handleEvent:function(t){var e,n=this,i=n.options,a="mouseup"===t.type?"click":t.type;if("mousemove"===a){if(!i.onHover&&!i.onLeave)return}else{if("click"!==a)return;if(!i.onClick)return}e=n._getLegendItemAt(t.x,t.y),"click"===a?e&&i.onClick&&i.onClick.call(n,t.native,e):(i.onLeave&&e!==n._hoveredItem&&(n._hoveredItem&&i.onLeave.call(n,t.native,n._hoveredItem),n._hoveredItem=e),i.onHover&&e&&i.onHover.call(n,t.native,e))}});function Ai(t,e){var n=new Pi({ctx:t.ctx,options:e,chart:t});ge.configure(t,n,e),ge.addBox(t,n),t.legend=n}var Di={id:"legend",_element:Pi,beforeInit:function(t){var e=t.options.legend;e&&Ai(t,e)},beforeUpdate:function(t){var e=t.options.legend,n=t.legend;e?(V.mergeIf(e,z.global.legend),n?(ge.configure(t,n,e),n.options=e):Ai(t,e)):n&&(ge.removeBox(t,n),delete t.legend)},afterEvent:function(t,e){var n=t.legend;n&&n.handleEvent(e)}},Ti=V.noop;z._set("global",{title:{display:!1,fontStyle:"bold",fullWidth:!0,padding:10,position:"top",text:"",weight:2e3}});var Ii=X.extend({initialize:function(t){V.extend(this,t),this.legendHitBoxes=[]},beforeUpdate:Ti,update:function(t,e,n){var i=this;return i.beforeUpdate(),i.maxWidth=t,i.maxHeight=e,i.margins=n,i.beforeSetDimensions(),i.setDimensions(),i.afterSetDimensions(),i.beforeBuildLabels(),i.buildLabels(),i.afterBuildLabels(),i.beforeFit(),i.fit(),i.afterFit(),i.afterUpdate(),i.minSize},afterUpdate:Ti,beforeSetDimensions:Ti,setDimensions:function(){var t=this;t.isHorizontal()?(t.width=t.maxWidth,t.left=0,t.right=t.width):(t.height=t.maxHeight,t.top=0,t.bottom=t.height),t.paddingLeft=0,t.paddingTop=0,t.paddingRight=0,t.paddingBottom=0,t.minSize={width:0,height:0}},afterSetDimensions:Ti,beforeBuildLabels:Ti,buildLabels:Ti,afterBuildLabels:Ti,beforeFit:Ti,fit:function(){var t,e=this,n=e.options,i=e.minSize={},a=e.isHorizontal();n.display?(t=(V.isArray(n.text)?n.text.length:1)*V.options._parseFont(n).lineHeight+2*n.padding,e.width=i.width=a?e.maxWidth:t,e.height=i.height=a?t:e.maxHeight):e.width=i.width=e.height=i.height=0},afterFit:Ti,isHorizontal:function(){var t=this.options.position;return"top"===t||"bottom"===t},draw:function(){var t=this,e=t.ctx,n=t.options;if(n.display){var i,a,r,o=V.options._parseFont(n),s=o.lineHeight,l=s/2+n.padding,u=0,d=t.top,h=t.left,c=t.bottom,f=t.right;e.fillStyle=V.valueOrDefault(n.fontColor,z.global.defaultFontColor),e.font=o.string,t.isHorizontal()?(a=h+(f-h)/2,r=d+l,i=f-h):(a="left"===n.position?h+l:f-l,r=d+(c-d)/2,i=c-d,u=Math.PI*("left"===n.position?-.5:.5)),e.save(),e.translate(a,r),e.rotate(u),e.textAlign="center",e.textBaseline="middle";var g=n.text;if(V.isArray(g))for(var p=0,m=0;m=0;i--){var a=t[i];if(e(a))return a}},V.isNumber=function(t){return!isNaN(parseFloat(t))&&isFinite(t)},V.almostEquals=function(t,e,n){return Math.abs(t-e)=t},V.max=function(t){return t.reduce((function(t,e){return isNaN(e)?t:Math.max(t,e)}),Number.NEGATIVE_INFINITY)},V.min=function(t){return t.reduce((function(t,e){return isNaN(e)?t:Math.min(t,e)}),Number.POSITIVE_INFINITY)},V.sign=Math.sign?function(t){return Math.sign(t)}:function(t){return 0===(t=+t)||isNaN(t)?t:t>0?1:-1},V.toRadians=function(t){return t*(Math.PI/180)},V.toDegrees=function(t){return t*(180/Math.PI)},V._decimalPlaces=function(t){if(V.isFinite(t)){for(var e=1,n=0;Math.round(t*e)/e!==t;)e*=10,n++;return n}},V.getAngleFromPoint=function(t,e){var n=e.x-t.x,i=e.y-t.y,a=Math.sqrt(n*n+i*i),r=Math.atan2(i,n);return r<-.5*Math.PI&&(r+=2*Math.PI),{angle:r,distance:a}},V.distanceBetweenPoints=function(t,e){return Math.sqrt(Math.pow(e.x-t.x,2)+Math.pow(e.y-t.y,2))},V.aliasPixel=function(t){return t%2==0?0:.5},V._alignPixel=function(t,e,n){var i=t.currentDevicePixelRatio,a=n/2;return Math.round((e-a)*i)/i+a},V.splineCurve=function(t,e,n,i){var a=t.skip?e:t,r=e,o=n.skip?e:n,s=Math.sqrt(Math.pow(r.x-a.x,2)+Math.pow(r.y-a.y,2)),l=Math.sqrt(Math.pow(o.x-r.x,2)+Math.pow(o.y-r.y,2)),u=s/(s+l),d=l/(s+l),h=i*(u=isNaN(u)?0:u),c=i*(d=isNaN(d)?0:d);return{previous:{x:r.x-h*(o.x-a.x),y:r.y-h*(o.y-a.y)},next:{x:r.x+c*(o.x-a.x),y:r.y+c*(o.y-a.y)}}},V.EPSILON=Number.EPSILON||1e-14,V.splineCurveMonotone=function(t){var e,n,i,a,r,o,s,l,u,d=(t||[]).map((function(t){return{model:t._model,deltaK:0,mK:0}})),h=d.length;for(e=0;e0?d[e-1]:null,(a=e0?d[e-1]:null,a=e=t.length-1?t[0]:t[e+1]:e>=t.length-1?t[t.length-1]:t[e+1]},V.previousItem=function(t,e,n){return n?e<=0?t[t.length-1]:t[e-1]:e<=0?t[0]:t[e-1]},V.niceNum=function(t,e){var n=Math.floor(V.log10(t)),i=t/Math.pow(10,n);return(e?i<1.5?1:i<3?2:i<7?5:10:i<=1?1:i<=2?2:i<=5?5:10)*Math.pow(10,n)},V.requestAnimFrame="undefined"==typeof window?function(t){t()}:window.requestAnimationFrame||window.webkitRequestAnimationFrame||window.mozRequestAnimationFrame||window.oRequestAnimationFrame||window.msRequestAnimationFrame||function(t){return window.setTimeout(t,1e3/60)},V.getRelativePosition=function(t,e){var n,i,a=t.originalEvent||t,r=t.target||t.srcElement,o=r.getBoundingClientRect(),s=a.touches;s&&s.length>0?(n=s[0].clientX,i=s[0].clientY):(n=a.clientX,i=a.clientY);var l=parseFloat(V.getStyle(r,"padding-left")),u=parseFloat(V.getStyle(r,"padding-top")),d=parseFloat(V.getStyle(r,"padding-right")),h=parseFloat(V.getStyle(r,"padding-bottom")),c=o.right-o.left-l-d,f=o.bottom-o.top-u-h;return{x:n=Math.round((n-o.left-l)/c*r.width/e.currentDevicePixelRatio),y:i=Math.round((i-o.top-u)/f*r.height/e.currentDevicePixelRatio)}},V.getConstraintWidth=function(t){return n(t,"max-width","clientWidth")},V.getConstraintHeight=function(t){return n(t,"max-height","clientHeight")},V._calculatePadding=function(t,e,n){return(e=V.getStyle(t,e)).indexOf("%")>-1?n*parseInt(e,10)/100:parseInt(e,10)},V._getParentNode=function(t){var e=t.parentNode;return e&&"[object ShadowRoot]"===e.toString()&&(e=e.host),e},V.getMaximumWidth=function(t){var e=V._getParentNode(t);if(!e)return t.clientWidth;var n=e.clientWidth,i=n-V._calculatePadding(e,"padding-left",n)-V._calculatePadding(e,"padding-right",n),a=V.getConstraintWidth(t);return isNaN(a)?i:Math.min(i,a)},V.getMaximumHeight=function(t){var e=V._getParentNode(t);if(!e)return t.clientHeight;var n=e.clientHeight,i=n-V._calculatePadding(e,"padding-top",n)-V._calculatePadding(e,"padding-bottom",n),a=V.getConstraintHeight(t);return isNaN(a)?i:Math.min(i,a)},V.getStyle=function(t,e){return t.currentStyle?t.currentStyle[e]:document.defaultView.getComputedStyle(t,null).getPropertyValue(e)},V.retinaScale=function(t,e){var n=t.currentDevicePixelRatio=e||"undefined"!=typeof window&&window.devicePixelRatio||1;if(1!==n){var i=t.canvas,a=t.height,r=t.width;i.height=a*n,i.width=r*n,t.ctx.scale(n,n),i.style.height||i.style.width||(i.style.height=a+"px",i.style.width=r+"px")}},V.fontString=function(t,e,n){return e+" "+t+"px "+n},V.longestText=function(t,e,n,i){var a=(i=i||{}).data=i.data||{},r=i.garbageCollect=i.garbageCollect||[];i.font!==e&&(a=i.data={},r=i.garbageCollect=[],i.font=e),t.font=e;var o,s,l,u,d,h=0,c=n.length;for(o=0;on.length){for(o=0;oi&&(i=r),i},V.numberOfLabelLines=function(t){var e=1;return V.each(t,(function(t){V.isArray(t)&&t.length>e&&(e=t.length)})),e},V.color=k?function(t){return t instanceof CanvasGradient&&(t=z.global.defaultColor),k(t)}:function(t){return console.error("Color.js not found!"),t},V.getHoverColor=function(t){return t instanceof CanvasPattern||t instanceof CanvasGradient?t:V.color(t).saturate(.5).darken(.1).rgbString()}}(),tn._adapters=an,tn.Animation=Z,tn.animationService=$,tn.controllers=$t,tn.DatasetController=nt,tn.defaults=z,tn.Element=X,tn.elements=_t,tn.Interaction=ae,tn.layouts=ge,tn.platform=Fe,tn.plugins=Le,tn.Scale=xn,tn.scaleService=Oe,tn.Ticks=rn,tn.Tooltip=Ue,tn.helpers.each(ci,(function(t,e){tn.scaleService.registerScaleType(e,t,t._defaults)})),Li)Li.hasOwnProperty(Ni)&&tn.plugins.register(Li[Ni]);tn.platform.initialize();var Bi=tn;return"undefined"!=typeof window&&(window.Chart=tn),tn.Chart=tn,tn.Legend=Li.legend._element,tn.Title=Li.title._element,tn.pluginService=tn.plugins,tn.PluginBase=tn.Element.extend({}),tn.canvasHelpers=tn.helpers.canvas,tn.layoutService=tn.layouts,tn.LinearScaleBase=Sn,tn.helpers.each(["Bar","Bubble","Doughnut","Line","PolarArea","Radar","Scatter"],(function(t){tn[t]=function(e,n){return new tn(e,tn.helpers.merge(n||{},{type:t.charAt(0).toLowerCase()+t.slice(1)}))}})),Bi})); diff --git a/themes/default/js/plugins/jqtree.css b/themes/default/js/plugins/jqtree.css new file mode 100644 index 000000000..1e97f6c22 --- /dev/null +++ b/themes/default/js/plugins/jqtree.css @@ -0,0 +1,184 @@ +ul.jqtree-tree { + list-style: none outside; + margin-left: 0; + margin-bottom: 0; + padding: 0; +} + + ul.jqtree-tree ul.jqtree_common { + list-style: none outside; + margin-left: 12px; + margin-right: 0; + margin-bottom: 0; + padding: 0; + display: block; + } + + ul.jqtree-tree li.jqtree-closed > ul.jqtree_common { + display: none; + } + + ul.jqtree-tree li.jqtree_common { + clear: both; + list-style-type: none; + } + + ul.jqtree-tree .jqtree-toggler { + border-bottom: none; + color: #333; + text-decoration: none; + vertical-align: middle; + } + + ul.jqtree-tree .jqtree-toggler:hover { + color: #000; + text-decoration: none; + } + + ul.jqtree-tree .jqtree-toggler.jqtree-closed { + background-position: 0 0; + } + + ul.jqtree-tree .jqtree-toggler.jqtree-toggler-left { + margin-right: 0.5em; + } + + ul.jqtree-tree .jqtree-toggler.jqtree-toggler-right { + margin-left: 0.5em; + } + + ul.jqtree-tree .jqtree-element { + cursor: pointer; + position: relative; + display: -webkit-box; + display: flex; + } + + ul.jqtree-tree .jqtree-title { + color: #1C4257; + vertical-align: middle; + margin-left: 1.5em; + } + + ul.jqtree-tree .jqtree-title.jqtree-title-folder { + margin-left: 0; + } + + ul.jqtree-tree li.jqtree-folder { + margin-bottom: 4px; + } + + ul.jqtree-tree li.jqtree-folder.jqtree-closed { + margin-bottom: 1px; + } + + ul.jqtree-tree li.jqtree-ghost { + position: relative; + z-index: 10; + margin-right: 10px; + } + + ul.jqtree-tree li.jqtree-ghost span { + display: block; + } + + ul.jqtree-tree li.jqtree-ghost span.jqtree-circle { + border: solid 2px #0000ff; + border-radius: 100px; + height: 8px; + width: 8px; + position: absolute; + top: -4px; + left: -6px; + box-sizing: border-box; + } + + ul.jqtree-tree li.jqtree-ghost span.jqtree-line { + background-color: #0000ff; + height: 2px; + padding: 0; + position: absolute; + top: -1px; + left: 2px; + width: 100%; + } + + ul.jqtree-tree li.jqtree-ghost.jqtree-inside { + margin-left: 48px; + } + + ul.jqtree-tree span.jqtree-border { + position: absolute; + display: block; + left: -2px; + top: 0; + border: solid 2px #0000ff; + border-radius: 6px; + margin: 0; + box-sizing: content-box; + } + + ul.jqtree-tree li.jqtree-selected > .jqtree-element, + ul.jqtree-tree li.jqtree-selected > .jqtree-element:hover { + background-color: #97BDD6; + background: -webkit-gradient(linear, left top, left bottom, from(#BEE0F5), to(#89AFCA)); + background: linear-gradient(#BEE0F5, #89AFCA); + text-shadow: 0 1px 0 rgba(255, 255, 255, 0.7); + } + + ul.jqtree-tree .jqtree-moving > .jqtree-element .jqtree-title { + outline: dashed 1px #0000ff; + } + +ul.jqtree-tree.jqtree-rtl { + direction: rtl; +} + +ul.jqtree-tree.jqtree-rtl ul.jqtree_common { + margin-left: 0; + margin-right: 12px; + } + +ul.jqtree-tree.jqtree-rtl .jqtree-toggler { + margin-left: 0.5em; + margin-right: 0; + } + +ul.jqtree-tree.jqtree-rtl .jqtree-title { + margin-left: 0; + margin-right: 1.5em; + } + +ul.jqtree-tree.jqtree-rtl .jqtree-title.jqtree-title-folder { + margin-right: 0; + } + +ul.jqtree-tree.jqtree-rtl li.jqtree-ghost { + margin-right: 0; + margin-left: 10px; + } + +ul.jqtree-tree.jqtree-rtl li.jqtree-ghost span.jqtree-circle { + right: -6px; + } + +ul.jqtree-tree.jqtree-rtl li.jqtree-ghost span.jqtree-line { + right: 2px; + } + +ul.jqtree-tree.jqtree-rtl li.jqtree-ghost.jqtree-inside { + margin-left: 0; + margin-right: 48px; + } + +ul.jqtree-tree.jqtree-rtl span.jqtree-border { + right: -2px; + } + +span.jqtree-dragging { + color: #fff; + background: #000; + opacity: 0.6; + cursor: pointer; + padding: 2px 8px; +} diff --git a/themes/default/js/plugins/jquery-confirm.min.css b/themes/default/js/plugins/jquery-confirm.min.css new file mode 100644 index 000000000..bd1bc7590 --- /dev/null +++ b/themes/default/js/plugins/jquery-confirm.min.css @@ -0,0 +1,9 @@ +/*! + * jquery-confirm v3.3.4 (http://craftpip.github.io/jquery-confirm/) + * Author: boniface pereira + * Website: www.craftpip.com + * Contact: hey@craftpip.com + * + * Copyright 2013-2019 jquery-confirm + * Licensed under MIT (https://github.com/craftpip/jquery-confirm/blob/master/LICENSE) + */@-webkit-keyframes jconfirm-spin{from{-webkit-transform:rotate(0deg);transform:rotate(0deg)}to{-webkit-transform:rotate(360deg);transform:rotate(360deg)}}@keyframes jconfirm-spin{from{-webkit-transform:rotate(0deg);transform:rotate(0deg)}to{-webkit-transform:rotate(360deg);transform:rotate(360deg)}}body[class*=jconfirm-no-scroll-]{overflow:hidden!important}.jconfirm{position:fixed;top:0;left:0;right:0;bottom:0;z-index:99999999;font-family:inherit;overflow:hidden}.jconfirm .jconfirm-bg{position:fixed;top:0;left:0;right:0;bottom:0;-webkit-transition:opacity .4s;transition:opacity .4s}.jconfirm .jconfirm-bg.jconfirm-bg-h{opacity:0!important}.jconfirm .jconfirm-scrollpane{-webkit-perspective:500px;perspective:500px;-webkit-perspective-origin:center;perspective-origin:center;display:table;width:100%;height:100%}.jconfirm .jconfirm-row{display:table-row;width:100%}.jconfirm .jconfirm-cell{display:table-cell;vertical-align:middle}.jconfirm .jconfirm-holder{max-height:100%;padding:50px 0}.jconfirm .jconfirm-box-container{-webkit-transition:-webkit-transform;transition:-webkit-transform;transition:transform;transition:transform,-webkit-transform}.jconfirm .jconfirm-box-container.jconfirm-no-transition{-webkit-transition:none!important;transition:none!important}.jconfirm .jconfirm-box{background:white;border-radius:4px;position:relative;outline:0;padding:15px 15px 0;overflow:hidden;margin-left:auto;margin-right:auto}@-webkit-keyframes type-blue{1%,100%{border-color:#3498db}50%{border-color:#5faee3}}@keyframes type-blue{1%,100%{border-color:#3498db}50%{border-color:#5faee3}}@-webkit-keyframes type-green{1%,100%{border-color:#2ecc71}50%{border-color:#54d98c}}@keyframes type-green{1%,100%{border-color:#2ecc71}50%{border-color:#54d98c}}@-webkit-keyframes type-red{1%,100%{border-color:#e74c3c}50%{border-color:#ed7669}}@keyframes type-red{1%,100%{border-color:#e74c3c}50%{border-color:#ed7669}}@-webkit-keyframes type-orange{1%,100%{border-color:#f1c40f}50%{border-color:#f4d03f}}@keyframes type-orange{1%,100%{border-color:#f1c40f}50%{border-color:#f4d03f}}@-webkit-keyframes type-purple{1%,100%{border-color:#9b59b6}50%{border-color:#b07cc6}}@keyframes type-purple{1%,100%{border-color:#9b59b6}50%{border-color:#b07cc6}}@-webkit-keyframes type-dark{1%,100%{border-color:#34495e}50%{border-color:#46627f}}@keyframes type-dark{1%,100%{border-color:#34495e}50%{border-color:#46627f}}.jconfirm .jconfirm-box.jconfirm-type-animated{-webkit-animation-duration:2s;animation-duration:2s;-webkit-animation-iteration-count:infinite;animation-iteration-count:infinite}.jconfirm .jconfirm-box.jconfirm-type-blue{border-top:solid 7px #3498db;-webkit-animation-name:type-blue;animation-name:type-blue}.jconfirm .jconfirm-box.jconfirm-type-green{border-top:solid 7px #2ecc71;-webkit-animation-name:type-green;animation-name:type-green}.jconfirm .jconfirm-box.jconfirm-type-red{border-top:solid 7px #e74c3c;-webkit-animation-name:type-red;animation-name:type-red}.jconfirm .jconfirm-box.jconfirm-type-orange{border-top:solid 7px #f1c40f;-webkit-animation-name:type-orange;animation-name:type-orange}.jconfirm .jconfirm-box.jconfirm-type-purple{border-top:solid 7px #9b59b6;-webkit-animation-name:type-purple;animation-name:type-purple}.jconfirm .jconfirm-box.jconfirm-type-dark{border-top:solid 7px #34495e;-webkit-animation-name:type-dark;animation-name:type-dark}.jconfirm .jconfirm-box.loading{height:120px}.jconfirm .jconfirm-box.loading:before{content:'';position:absolute;left:0;background:white;right:0;top:0;bottom:0;border-radius:10px;z-index:1}.jconfirm .jconfirm-box.loading:after{opacity:.6;content:'';height:30px;width:30px;border:solid 3px transparent;position:absolute;left:50%;margin-left:-15px;border-radius:50%;-webkit-animation:jconfirm-spin 1s infinite linear;animation:jconfirm-spin 1s infinite linear;border-bottom-color:dodgerblue;top:50%;margin-top:-15px;z-index:2}.jconfirm .jconfirm-box div.jconfirm-closeIcon{height:20px;width:20px;position:absolute;top:10px;right:10px;cursor:pointer;opacity:.6;text-align:center;font-size:27px!important;line-height:14px!important;display:none;z-index:1}.jconfirm .jconfirm-box div.jconfirm-closeIcon:empty{display:none}.jconfirm .jconfirm-box div.jconfirm-closeIcon .fa{font-size:16px}.jconfirm .jconfirm-box div.jconfirm-closeIcon .glyphicon{font-size:16px}.jconfirm .jconfirm-box div.jconfirm-closeIcon .zmdi{font-size:16px}.jconfirm .jconfirm-box div.jconfirm-closeIcon:hover{opacity:1}.jconfirm .jconfirm-box div.jconfirm-title-c{display:block;font-size:22px;line-height:20px;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none;cursor:default;padding-bottom:15px}.jconfirm .jconfirm-box div.jconfirm-title-c.jconfirm-hand{cursor:move}.jconfirm .jconfirm-box div.jconfirm-title-c .jconfirm-icon-c{font-size:inherit;display:inline-block;vertical-align:middle}.jconfirm .jconfirm-box div.jconfirm-title-c .jconfirm-icon-c i{vertical-align:middle}.jconfirm .jconfirm-box div.jconfirm-title-c .jconfirm-icon-c:empty{display:none}.jconfirm .jconfirm-box div.jconfirm-title-c .jconfirm-title{-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none;font-size:inherit;font-family:inherit;display:inline-block;vertical-align:middle}.jconfirm .jconfirm-box div.jconfirm-title-c .jconfirm-title:empty{display:none}.jconfirm .jconfirm-box div.jconfirm-content-pane{margin-bottom:15px;height:auto;-webkit-transition:height .4s ease-in;transition:height .4s ease-in;display:inline-block;width:100%;position:relative;overflow-x:hidden;overflow-y:auto}.jconfirm .jconfirm-box div.jconfirm-content-pane.no-scroll{overflow-y:hidden}.jconfirm .jconfirm-box div.jconfirm-content-pane::-webkit-scrollbar{width:3px}.jconfirm .jconfirm-box div.jconfirm-content-pane::-webkit-scrollbar-track{background:rgba(0,0,0,0.1)}.jconfirm .jconfirm-box div.jconfirm-content-pane::-webkit-scrollbar-thumb{background:#666;border-radius:3px}.jconfirm .jconfirm-box div.jconfirm-content-pane .jconfirm-content{overflow:auto}.jconfirm .jconfirm-box div.jconfirm-content-pane .jconfirm-content img{max-width:100%;height:auto}.jconfirm .jconfirm-box div.jconfirm-content-pane .jconfirm-content:empty{display:none}.jconfirm .jconfirm-box .jconfirm-buttons{padding-bottom:11px}.jconfirm .jconfirm-box .jconfirm-buttons>button{margin-bottom:4px;margin-left:2px;margin-right:2px}.jconfirm .jconfirm-box .jconfirm-buttons button{display:inline-block;padding:6px 12px;font-size:14px;font-weight:400;line-height:1.42857143;text-align:center;white-space:nowrap;vertical-align:middle;-ms-touch-action:manipulation;touch-action:manipulation;cursor:pointer;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none;border-radius:4px;min-height:1em;-webkit-transition:opacity .1s ease,background-color .1s ease,color .1s ease,background .1s ease,-webkit-box-shadow .1s ease;transition:opacity .1s ease,background-color .1s ease,color .1s ease,background .1s ease,-webkit-box-shadow .1s ease;transition:opacity .1s ease,background-color .1s ease,color .1s ease,box-shadow .1s ease,background .1s ease;transition:opacity .1s ease,background-color .1s ease,color .1s ease,box-shadow .1s ease,background .1s ease,-webkit-box-shadow .1s ease;-webkit-tap-highlight-color:transparent;border:0;background-image:none}.jconfirm .jconfirm-box .jconfirm-buttons button.btn-blue{background-color:#3498db;color:#FFF;text-shadow:none;-webkit-transition:background .2s;transition:background .2s}.jconfirm .jconfirm-box .jconfirm-buttons button.btn-blue:hover{background-color:#2980b9;color:#FFF}.jconfirm .jconfirm-box .jconfirm-buttons button.btn-green{background-color:#2ecc71;color:#FFF;text-shadow:none;-webkit-transition:background .2s;transition:background .2s}.jconfirm .jconfirm-box .jconfirm-buttons button.btn-green:hover{background-color:#27ae60;color:#FFF}.jconfirm .jconfirm-box .jconfirm-buttons button.btn-red{background-color:#e74c3c;color:#FFF;text-shadow:none;-webkit-transition:background .2s;transition:background .2s}.jconfirm .jconfirm-box .jconfirm-buttons button.btn-red:hover{background-color:#c0392b;color:#FFF}.jconfirm .jconfirm-box .jconfirm-buttons button.btn-orange{background-color:#f1c40f;color:#FFF;text-shadow:none;-webkit-transition:background .2s;transition:background .2s}.jconfirm .jconfirm-box .jconfirm-buttons button.btn-orange:hover{background-color:#f39c12;color:#FFF}.jconfirm .jconfirm-box .jconfirm-buttons button.btn-default{background-color:#ecf0f1;color:#000;text-shadow:none;-webkit-transition:background .2s;transition:background .2s}.jconfirm .jconfirm-box .jconfirm-buttons button.btn-default:hover{background-color:#bdc3c7;color:#000}.jconfirm .jconfirm-box .jconfirm-buttons button.btn-purple{background-color:#9b59b6;color:#FFF;text-shadow:none;-webkit-transition:background .2s;transition:background .2s}.jconfirm .jconfirm-box .jconfirm-buttons button.btn-purple:hover{background-color:#8e44ad;color:#FFF}.jconfirm .jconfirm-box .jconfirm-buttons button.btn-dark{background-color:#34495e;color:#FFF;text-shadow:none;-webkit-transition:background .2s;transition:background .2s}.jconfirm .jconfirm-box .jconfirm-buttons button.btn-dark:hover{background-color:#2c3e50;color:#FFF}.jconfirm .jconfirm-box.jconfirm-type-red .jconfirm-title-c .jconfirm-icon-c{color:#e74c3c!important}.jconfirm .jconfirm-box.jconfirm-type-blue .jconfirm-title-c .jconfirm-icon-c{color:#3498db!important}.jconfirm .jconfirm-box.jconfirm-type-green .jconfirm-title-c .jconfirm-icon-c{color:#2ecc71!important}.jconfirm .jconfirm-box.jconfirm-type-purple .jconfirm-title-c .jconfirm-icon-c{color:#9b59b6!important}.jconfirm .jconfirm-box.jconfirm-type-orange .jconfirm-title-c .jconfirm-icon-c{color:#f1c40f!important}.jconfirm .jconfirm-box.jconfirm-type-dark .jconfirm-title-c .jconfirm-icon-c{color:#34495e!important}.jconfirm .jconfirm-clear{clear:both}.jconfirm.jconfirm-rtl{direction:rtl}.jconfirm.jconfirm-rtl div.jconfirm-closeIcon{left:5px;right:auto}.jconfirm.jconfirm-white .jconfirm-bg,.jconfirm.jconfirm-light .jconfirm-bg{background-color:#444;opacity:.2}.jconfirm.jconfirm-white .jconfirm-box,.jconfirm.jconfirm-light .jconfirm-box{-webkit-box-shadow:0 2px 6px rgba(0,0,0,0.2);box-shadow:0 2px 6px rgba(0,0,0,0.2);border-radius:5px}.jconfirm.jconfirm-white .jconfirm-box .jconfirm-title-c .jconfirm-icon-c,.jconfirm.jconfirm-light .jconfirm-box .jconfirm-title-c .jconfirm-icon-c{margin-right:8px;margin-left:0}.jconfirm.jconfirm-white .jconfirm-box .jconfirm-buttons,.jconfirm.jconfirm-light .jconfirm-box .jconfirm-buttons{float:right}.jconfirm.jconfirm-white .jconfirm-box .jconfirm-buttons button,.jconfirm.jconfirm-light .jconfirm-box .jconfirm-buttons button{text-transform:uppercase;font-size:14px;font-weight:bold;text-shadow:none}.jconfirm.jconfirm-white .jconfirm-box .jconfirm-buttons button.btn-default,.jconfirm.jconfirm-light .jconfirm-box .jconfirm-buttons button.btn-default{-webkit-box-shadow:none;box-shadow:none;color:#333}.jconfirm.jconfirm-white .jconfirm-box .jconfirm-buttons button.btn-default:hover,.jconfirm.jconfirm-light .jconfirm-box .jconfirm-buttons button.btn-default:hover{background:#ddd}.jconfirm.jconfirm-white.jconfirm-rtl .jconfirm-title-c .jconfirm-icon-c,.jconfirm.jconfirm-light.jconfirm-rtl .jconfirm-title-c .jconfirm-icon-c{margin-left:8px;margin-right:0}.jconfirm.jconfirm-black .jconfirm-bg,.jconfirm.jconfirm-dark .jconfirm-bg{background-color:darkslategray;opacity:.4}.jconfirm.jconfirm-black .jconfirm-box,.jconfirm.jconfirm-dark .jconfirm-box{-webkit-box-shadow:0 2px 6px rgba(0,0,0,0.2);box-shadow:0 2px 6px rgba(0,0,0,0.2);background:#444;border-radius:5px;color:white}.jconfirm.jconfirm-black .jconfirm-box .jconfirm-title-c .jconfirm-icon-c,.jconfirm.jconfirm-dark .jconfirm-box .jconfirm-title-c .jconfirm-icon-c{margin-right:8px;margin-left:0}.jconfirm.jconfirm-black .jconfirm-box .jconfirm-buttons,.jconfirm.jconfirm-dark .jconfirm-box .jconfirm-buttons{float:right}.jconfirm.jconfirm-black .jconfirm-box .jconfirm-buttons button,.jconfirm.jconfirm-dark .jconfirm-box .jconfirm-buttons button{border:0;background-image:none;text-transform:uppercase;font-size:14px;font-weight:bold;text-shadow:none;-webkit-transition:background .1s;transition:background .1s;color:white}.jconfirm.jconfirm-black .jconfirm-box .jconfirm-buttons button.btn-default,.jconfirm.jconfirm-dark .jconfirm-box .jconfirm-buttons button.btn-default{-webkit-box-shadow:none;box-shadow:none;color:#fff;background:0}.jconfirm.jconfirm-black .jconfirm-box .jconfirm-buttons button.btn-default:hover,.jconfirm.jconfirm-dark .jconfirm-box .jconfirm-buttons button.btn-default:hover{background:#666}.jconfirm.jconfirm-black.jconfirm-rtl .jconfirm-title-c .jconfirm-icon-c,.jconfirm.jconfirm-dark.jconfirm-rtl .jconfirm-title-c .jconfirm-icon-c{margin-left:8px;margin-right:0}.jconfirm .jconfirm-box.hilight.jconfirm-hilight-shake{-webkit-animation:shake .82s cubic-bezier(0.36,0.07,0.19,0.97) both;animation:shake .82s cubic-bezier(0.36,0.07,0.19,0.97) both;-webkit-transform:translate3d(0,0,0);transform:translate3d(0,0,0)}.jconfirm .jconfirm-box.hilight.jconfirm-hilight-glow{-webkit-animation:glow .82s cubic-bezier(0.36,0.07,0.19,0.97) both;animation:glow .82s cubic-bezier(0.36,0.07,0.19,0.97) both;-webkit-transform:translate3d(0,0,0);transform:translate3d(0,0,0)}@-webkit-keyframes shake{10%,90%{-webkit-transform:translate3d(-2px,0,0);transform:translate3d(-2px,0,0)}20%,80%{-webkit-transform:translate3d(4px,0,0);transform:translate3d(4px,0,0)}30%,50%,70%{-webkit-transform:translate3d(-8px,0,0);transform:translate3d(-8px,0,0)}40%,60%{-webkit-transform:translate3d(8px,0,0);transform:translate3d(8px,0,0)}}@keyframes shake{10%,90%{-webkit-transform:translate3d(-2px,0,0);transform:translate3d(-2px,0,0)}20%,80%{-webkit-transform:translate3d(4px,0,0);transform:translate3d(4px,0,0)}30%,50%,70%{-webkit-transform:translate3d(-8px,0,0);transform:translate3d(-8px,0,0)}40%,60%{-webkit-transform:translate3d(8px,0,0);transform:translate3d(8px,0,0)}}@-webkit-keyframes glow{0%,100%{-webkit-box-shadow:0 0 0 red;box-shadow:0 0 0 red}50%{-webkit-box-shadow:0 0 30px red;box-shadow:0 0 30px red}}@keyframes glow{0%,100%{-webkit-box-shadow:0 0 0 red;box-shadow:0 0 0 red}50%{-webkit-box-shadow:0 0 30px red;box-shadow:0 0 30px red}}.jconfirm{-webkit-perspective:400px;perspective:400px}.jconfirm .jconfirm-box{opacity:1;-webkit-transition-property:all;transition-property:all}.jconfirm .jconfirm-box.jconfirm-animation-top,.jconfirm .jconfirm-box.jconfirm-animation-left,.jconfirm .jconfirm-box.jconfirm-animation-right,.jconfirm .jconfirm-box.jconfirm-animation-bottom,.jconfirm .jconfirm-box.jconfirm-animation-opacity,.jconfirm .jconfirm-box.jconfirm-animation-zoom,.jconfirm .jconfirm-box.jconfirm-animation-scale,.jconfirm .jconfirm-box.jconfirm-animation-none,.jconfirm .jconfirm-box.jconfirm-animation-rotate,.jconfirm .jconfirm-box.jconfirm-animation-rotatex,.jconfirm .jconfirm-box.jconfirm-animation-rotatey,.jconfirm .jconfirm-box.jconfirm-animation-scaley,.jconfirm .jconfirm-box.jconfirm-animation-scalex{opacity:0}.jconfirm .jconfirm-box.jconfirm-animation-rotate{-webkit-transform:rotate(90deg);transform:rotate(90deg)}.jconfirm .jconfirm-box.jconfirm-animation-rotatex{-webkit-transform:rotateX(90deg);transform:rotateX(90deg);-webkit-transform-origin:center;transform-origin:center}.jconfirm .jconfirm-box.jconfirm-animation-rotatexr{-webkit-transform:rotateX(-90deg);transform:rotateX(-90deg);-webkit-transform-origin:center;transform-origin:center}.jconfirm .jconfirm-box.jconfirm-animation-rotatey{-webkit-transform:rotatey(90deg);transform:rotatey(90deg);-webkit-transform-origin:center;transform-origin:center}.jconfirm .jconfirm-box.jconfirm-animation-rotateyr{-webkit-transform:rotatey(-90deg);transform:rotatey(-90deg);-webkit-transform-origin:center;transform-origin:center}.jconfirm .jconfirm-box.jconfirm-animation-scaley{-webkit-transform:scaley(1.5);transform:scaley(1.5);-webkit-transform-origin:center;transform-origin:center}.jconfirm .jconfirm-box.jconfirm-animation-scalex{-webkit-transform:scalex(1.5);transform:scalex(1.5);-webkit-transform-origin:center;transform-origin:center}.jconfirm .jconfirm-box.jconfirm-animation-top{-webkit-transform:translate(0px,-100px);transform:translate(0px,-100px)}.jconfirm .jconfirm-box.jconfirm-animation-left{-webkit-transform:translate(-100px,0px);transform:translate(-100px,0px)}.jconfirm .jconfirm-box.jconfirm-animation-right{-webkit-transform:translate(100px,0px);transform:translate(100px,0px)}.jconfirm .jconfirm-box.jconfirm-animation-bottom{-webkit-transform:translate(0px,100px);transform:translate(0px,100px)}.jconfirm .jconfirm-box.jconfirm-animation-zoom{-webkit-transform:scale(1.2);transform:scale(1.2)}.jconfirm .jconfirm-box.jconfirm-animation-scale{-webkit-transform:scale(0.5);transform:scale(0.5)}.jconfirm .jconfirm-box.jconfirm-animation-none{visibility:hidden}.jconfirm.jconfirm-supervan .jconfirm-bg{background-color:rgba(54,70,93,0.95)}.jconfirm.jconfirm-supervan .jconfirm-box{background-color:transparent}.jconfirm.jconfirm-supervan .jconfirm-box.jconfirm-type-blue{border:0}.jconfirm.jconfirm-supervan .jconfirm-box.jconfirm-type-green{border:0}.jconfirm.jconfirm-supervan .jconfirm-box.jconfirm-type-red{border:0}.jconfirm.jconfirm-supervan .jconfirm-box.jconfirm-type-orange{border:0}.jconfirm.jconfirm-supervan .jconfirm-box.jconfirm-type-purple{border:0}.jconfirm.jconfirm-supervan .jconfirm-box.jconfirm-type-dark{border:0}.jconfirm.jconfirm-supervan .jconfirm-box div.jconfirm-closeIcon{color:white}.jconfirm.jconfirm-supervan .jconfirm-box div.jconfirm-title-c{text-align:center;color:white;font-size:28px;font-weight:normal}.jconfirm.jconfirm-supervan .jconfirm-box div.jconfirm-title-c>*{padding-bottom:25px}.jconfirm.jconfirm-supervan .jconfirm-box div.jconfirm-title-c .jconfirm-icon-c{margin-right:8px;margin-left:0}.jconfirm.jconfirm-supervan .jconfirm-box div.jconfirm-content-pane{margin-bottom:25px}.jconfirm.jconfirm-supervan .jconfirm-box div.jconfirm-content{text-align:center;color:white}.jconfirm.jconfirm-supervan .jconfirm-box .jconfirm-buttons{text-align:center}.jconfirm.jconfirm-supervan .jconfirm-box .jconfirm-buttons button{font-size:16px;border-radius:2px;background:#303f53;text-shadow:none;border:0;color:white;padding:10px;min-width:100px}.jconfirm.jconfirm-supervan.jconfirm-rtl .jconfirm-box div.jconfirm-title-c .jconfirm-icon-c{margin-left:8px;margin-right:0}.jconfirm.jconfirm-material .jconfirm-bg{background-color:rgba(0,0,0,0.67)}.jconfirm.jconfirm-material .jconfirm-box{background-color:white;-webkit-box-shadow:0 7px 8px -4px rgba(0,0,0,0.2),0 13px 19px 2px rgba(0,0,0,0.14),0 5px 24px 4px rgba(0,0,0,0.12);box-shadow:0 7px 8px -4px rgba(0,0,0,0.2),0 13px 19px 2px rgba(0,0,0,0.14),0 5px 24px 4px rgba(0,0,0,0.12);padding:30px 25px 10px 25px}.jconfirm.jconfirm-material .jconfirm-box .jconfirm-title-c .jconfirm-icon-c{margin-right:8px;margin-left:0}.jconfirm.jconfirm-material .jconfirm-box div.jconfirm-closeIcon{color:rgba(0,0,0,0.87)}.jconfirm.jconfirm-material .jconfirm-box div.jconfirm-title-c{color:rgba(0,0,0,0.87);font-size:22px;font-weight:bold}.jconfirm.jconfirm-material .jconfirm-box div.jconfirm-content{color:rgba(0,0,0,0.87)}.jconfirm.jconfirm-material .jconfirm-box .jconfirm-buttons{text-align:right}.jconfirm.jconfirm-material .jconfirm-box .jconfirm-buttons button{text-transform:uppercase;font-weight:500}.jconfirm.jconfirm-material.jconfirm-rtl .jconfirm-title-c .jconfirm-icon-c{margin-left:8px;margin-right:0}.jconfirm.jconfirm-bootstrap .jconfirm-bg{background-color:rgba(0,0,0,0.21)}.jconfirm.jconfirm-bootstrap .jconfirm-box{background-color:white;-webkit-box-shadow:0 3px 8px 0 rgba(0,0,0,0.2);box-shadow:0 3px 8px 0 rgba(0,0,0,0.2);border:solid 1px rgba(0,0,0,0.4);padding:15px 0 0}.jconfirm.jconfirm-bootstrap .jconfirm-box .jconfirm-title-c .jconfirm-icon-c{margin-right:8px;margin-left:0}.jconfirm.jconfirm-bootstrap .jconfirm-box div.jconfirm-closeIcon{color:rgba(0,0,0,0.87)}.jconfirm.jconfirm-bootstrap .jconfirm-box div.jconfirm-title-c{color:rgba(0,0,0,0.87);font-size:22px;font-weight:bold;padding-left:15px;padding-right:15px}.jconfirm.jconfirm-bootstrap .jconfirm-box div.jconfirm-content{color:rgba(0,0,0,0.87);padding:0 15px}.jconfirm.jconfirm-bootstrap .jconfirm-box .jconfirm-buttons{text-align:right;padding:10px;margin:-5px 0 0;border-top:solid 1px #ddd;overflow:hidden;border-radius:0 0 4px 4px}.jconfirm.jconfirm-bootstrap .jconfirm-box .jconfirm-buttons button{font-weight:500}.jconfirm.jconfirm-bootstrap.jconfirm-rtl .jconfirm-title-c .jconfirm-icon-c{margin-left:8px;margin-right:0}.jconfirm.jconfirm-modern .jconfirm-bg{background-color:slategray;opacity:.6}.jconfirm.jconfirm-modern .jconfirm-box{background-color:white;-webkit-box-shadow:0 7px 8px -4px rgba(0,0,0,0.2),0 13px 19px 2px rgba(0,0,0,0.14),0 5px 24px 4px rgba(0,0,0,0.12);box-shadow:0 7px 8px -4px rgba(0,0,0,0.2),0 13px 19px 2px rgba(0,0,0,0.14),0 5px 24px 4px rgba(0,0,0,0.12);padding:30px 30px 15px}.jconfirm.jconfirm-modern .jconfirm-box div.jconfirm-closeIcon{color:rgba(0,0,0,0.87);top:15px;right:15px}.jconfirm.jconfirm-modern .jconfirm-box div.jconfirm-title-c{color:rgba(0,0,0,0.87);font-size:24px;font-weight:bold;text-align:center;margin-bottom:10px}.jconfirm.jconfirm-modern .jconfirm-box div.jconfirm-title-c .jconfirm-icon-c{-webkit-transition:-webkit-transform .5s;transition:-webkit-transform .5s;transition:transform .5s;transition:transform .5s,-webkit-transform .5s;-webkit-transform:scale(0);transform:scale(0);display:block;margin-right:0;margin-left:0;margin-bottom:10px;font-size:69px;color:#aaa}.jconfirm.jconfirm-modern .jconfirm-box div.jconfirm-content{text-align:center;font-size:15px;color:#777;margin-bottom:25px}.jconfirm.jconfirm-modern .jconfirm-box .jconfirm-buttons{text-align:center}.jconfirm.jconfirm-modern .jconfirm-box .jconfirm-buttons button{font-weight:bold;text-transform:uppercase;-webkit-transition:background .1s;transition:background .1s;padding:10px 20px}.jconfirm.jconfirm-modern .jconfirm-box .jconfirm-buttons button+button{margin-left:4px}.jconfirm.jconfirm-modern.jconfirm-open .jconfirm-box .jconfirm-title-c .jconfirm-icon-c{-webkit-transform:scale(1);transform:scale(1)} \ No newline at end of file diff --git a/themes/default/js/plugins/jquery-confirm.min.js b/themes/default/js/plugins/jquery-confirm.min.js new file mode 100644 index 000000000..4cf8123e2 --- /dev/null +++ b/themes/default/js/plugins/jquery-confirm.min.js @@ -0,0 +1,10 @@ +/*! + * jquery-confirm v3.3.4 (http://craftpip.github.io/jquery-confirm/) + * Author: Boniface Pereira + * Website: www.craftpip.com + * Contact: hey@craftpip.com + * + * Copyright 2013-2019 jquery-confirm + * Licensed under MIT (https://github.com/craftpip/jquery-confirm/blob/master/LICENSE) + */ +(function(factory){if(typeof define==="function"&&define.amd){define(["jquery"],factory);}else{if(typeof module==="object"&&module.exports){module.exports=function(root,jQuery){if(jQuery===undefined){if(typeof window!=="undefined"){jQuery=require("jquery");}else{jQuery=require("jquery")(root);}}factory(jQuery);return jQuery;};}else{factory(jQuery);}}}(function($){var w=window;$.fn.confirm=function(options,option2){if(typeof options==="undefined"){options={};}if(typeof options==="string"){options={content:options,title:(option2)?option2:false};}$(this).each(function(){var $this=$(this);if($this.attr("jc-attached")){console.warn("jConfirm has already been attached to this element ",$this[0]);return;}$this.on("click",function(e){e.preventDefault();var jcOption=$.extend({},options);if($this.attr("data-title")){jcOption.title=$this.attr("data-title");}if($this.attr("data-content")){jcOption.content=$this.attr("data-content");}if(typeof jcOption.buttons==="undefined"){jcOption.buttons={};}jcOption["$target"]=$this;if($this.attr("href")&&Object.keys(jcOption.buttons).length===0){var buttons=$.extend(true,{},w.jconfirm.pluginDefaults.defaultButtons,(w.jconfirm.defaults||{}).defaultButtons||{});var firstBtn=Object.keys(buttons)[0];jcOption.buttons=buttons;jcOption.buttons[firstBtn].action=function(){location.href=$this.attr("href");};}jcOption.closeIcon=false;var instance=$.confirm(jcOption);});$this.attr("jc-attached",true);});return $(this);};$.confirm=function(options,option2){if(typeof options==="undefined"){options={};}if(typeof options==="string"){options={content:options,title:(option2)?option2:false};}var putDefaultButtons=!(options.buttons===false);if(typeof options.buttons!=="object"){options.buttons={};}if(Object.keys(options.buttons).length===0&&putDefaultButtons){var buttons=$.extend(true,{},w.jconfirm.pluginDefaults.defaultButtons,(w.jconfirm.defaults||{}).defaultButtons||{});options.buttons=buttons;}return w.jconfirm(options);};$.alert=function(options,option2){if(typeof options==="undefined"){options={};}if(typeof options==="string"){options={content:options,title:(option2)?option2:false};}var putDefaultButtons=!(options.buttons===false);if(typeof options.buttons!=="object"){options.buttons={};}if(Object.keys(options.buttons).length===0&&putDefaultButtons){var buttons=$.extend(true,{},w.jconfirm.pluginDefaults.defaultButtons,(w.jconfirm.defaults||{}).defaultButtons||{});var firstBtn=Object.keys(buttons)[0];options.buttons[firstBtn]=buttons[firstBtn];}return w.jconfirm(options);};$.dialog=function(options,option2){if(typeof options==="undefined"){options={};}if(typeof options==="string"){options={content:options,title:(option2)?option2:false,closeIcon:function(){}};}options.buttons={};if(typeof options.closeIcon==="undefined"){options.closeIcon=function(){};}options.confirmKeys=[13];return w.jconfirm(options);};w.jconfirm=function(options){if(typeof options==="undefined"){options={};}var pluginOptions=$.extend(true,{},w.jconfirm.pluginDefaults);if(w.jconfirm.defaults){pluginOptions=$.extend(true,pluginOptions,w.jconfirm.defaults);}pluginOptions=$.extend(true,{},pluginOptions,options);var instance=new w.Jconfirm(pluginOptions);w.jconfirm.instances.push(instance);return instance;};w.Jconfirm=function(options){$.extend(this,options);this._init();};w.Jconfirm.prototype={_init:function(){var that=this;if(!w.jconfirm.instances.length){w.jconfirm.lastFocused=$("body").find(":focus");}this._id=Math.round(Math.random()*99999);this.contentParsed=$(document.createElement("div"));if(!this.lazyOpen){setTimeout(function(){that.open();},0);}},_buildHTML:function(){var that=this;this._parseAnimation(this.animation,"o");this._parseAnimation(this.closeAnimation,"c");this._parseBgDismissAnimation(this.backgroundDismissAnimation);this._parseColumnClass(this.columnClass);this._parseTheme(this.theme);this._parseType(this.type);var template=$(this.template);template.find(".jconfirm-box").addClass(this.animationParsed).addClass(this.backgroundDismissAnimationParsed).addClass(this.typeParsed);if(this.typeAnimated){template.find(".jconfirm-box").addClass("jconfirm-type-animated");}if(this.useBootstrap){template.find(".jc-bs3-row").addClass(this.bootstrapClasses.row);template.find(".jc-bs3-row").addClass("justify-content-md-center justify-content-sm-center justify-content-xs-center justify-content-lg-center");template.find(".jconfirm-box-container").addClass(this.columnClassParsed);if(this.containerFluid){template.find(".jc-bs3-container").addClass(this.bootstrapClasses.containerFluid);}else{template.find(".jc-bs3-container").addClass(this.bootstrapClasses.container);}}else{template.find(".jconfirm-box").css("width",this.boxWidth);}if(this.titleClass){template.find(".jconfirm-title-c").addClass(this.titleClass);}template.addClass(this.themeParsed);var ariaLabel="jconfirm-box"+this._id;template.find(".jconfirm-box").attr("aria-labelledby",ariaLabel).attr("tabindex",-1);template.find(".jconfirm-content").attr("id",ariaLabel);if(this.bgOpacity!==null){template.find(".jconfirm-bg").css("opacity",this.bgOpacity);}if(this.rtl){template.addClass("jconfirm-rtl");}this.$el=template.appendTo(this.container);this.$jconfirmBoxContainer=this.$el.find(".jconfirm-box-container");this.$jconfirmBox=this.$body=this.$el.find(".jconfirm-box");this.$jconfirmBg=this.$el.find(".jconfirm-bg");this.$title=this.$el.find(".jconfirm-title");this.$titleContainer=this.$el.find(".jconfirm-title-c");this.$content=this.$el.find("div.jconfirm-content");this.$contentPane=this.$el.find(".jconfirm-content-pane");this.$icon=this.$el.find(".jconfirm-icon-c");this.$closeIcon=this.$el.find(".jconfirm-closeIcon");this.$holder=this.$el.find(".jconfirm-holder");this.$btnc=this.$el.find(".jconfirm-buttons");this.$scrollPane=this.$el.find(".jconfirm-scrollpane");that.setStartingPoint();this._contentReady=$.Deferred();this._modalReady=$.Deferred();this.$holder.css({"padding-top":this.offsetTop,"padding-bottom":this.offsetBottom,});this.setTitle();this.setIcon();this._setButtons();this._parseContent();this.initDraggable();if(this.isAjax){this.showLoading(false);}$.when(this._contentReady,this._modalReady).then(function(){if(that.isAjaxLoading){setTimeout(function(){that.isAjaxLoading=false;that.setContent();that.setTitle();that.setIcon();setTimeout(function(){that.hideLoading(false);that._updateContentMaxHeight();},100);if(typeof that.onContentReady==="function"){that.onContentReady();}},50);}else{that._updateContentMaxHeight();that.setTitle();that.setIcon();if(typeof that.onContentReady==="function"){that.onContentReady();}}if(that.autoClose){that._startCountDown();}}).then(function(){that._watchContent();});if(this.animation==="none"){this.animationSpeed=1;this.animationBounce=1;}this.$body.css(this._getCSS(this.animationSpeed,this.animationBounce));this.$contentPane.css(this._getCSS(this.animationSpeed,1));this.$jconfirmBg.css(this._getCSS(this.animationSpeed,1));this.$jconfirmBoxContainer.css(this._getCSS(this.animationSpeed,1));},_typePrefix:"jconfirm-type-",typeParsed:"",_parseType:function(type){this.typeParsed=this._typePrefix+type;},setType:function(type){var oldClass=this.typeParsed;this._parseType(type);this.$jconfirmBox.removeClass(oldClass).addClass(this.typeParsed);},themeParsed:"",_themePrefix:"jconfirm-",setTheme:function(theme){var previous=this.theme;this.theme=theme||this.theme;this._parseTheme(this.theme);if(previous){this.$el.removeClass(previous);}this.$el.addClass(this.themeParsed);this.theme=theme;},_parseTheme:function(theme){var that=this;theme=theme.split(",");$.each(theme,function(k,a){if(a.indexOf(that._themePrefix)===-1){theme[k]=that._themePrefix+$.trim(a);}});this.themeParsed=theme.join(" ").toLowerCase();},backgroundDismissAnimationParsed:"",_bgDismissPrefix:"jconfirm-hilight-",_parseBgDismissAnimation:function(bgDismissAnimation){var animation=bgDismissAnimation.split(",");var that=this;$.each(animation,function(k,a){if(a.indexOf(that._bgDismissPrefix)===-1){animation[k]=that._bgDismissPrefix+$.trim(a);}});this.backgroundDismissAnimationParsed=animation.join(" ").toLowerCase();},animationParsed:"",closeAnimationParsed:"",_animationPrefix:"jconfirm-animation-",setAnimation:function(animation){this.animation=animation||this.animation;this._parseAnimation(this.animation,"o");},_parseAnimation:function(animation,which){which=which||"o";var animations=animation.split(",");var that=this;$.each(animations,function(k,a){if(a.indexOf(that._animationPrefix)===-1){animations[k]=that._animationPrefix+$.trim(a);}});var a_string=animations.join(" ").toLowerCase();if(which==="o"){this.animationParsed=a_string;}else{this.closeAnimationParsed=a_string;}return a_string;},setCloseAnimation:function(closeAnimation){this.closeAnimation=closeAnimation||this.closeAnimation;this._parseAnimation(this.closeAnimation,"c");},setAnimationSpeed:function(speed){this.animationSpeed=speed||this.animationSpeed;},columnClassParsed:"",setColumnClass:function(colClass){if(!this.useBootstrap){console.warn("cannot set columnClass, useBootstrap is set to false");return;}this.columnClass=colClass||this.columnClass;this._parseColumnClass(this.columnClass);this.$jconfirmBoxContainer.addClass(this.columnClassParsed);},_updateContentMaxHeight:function(){var height=$(window).height()-(this.$jconfirmBox.outerHeight()-this.$contentPane.outerHeight())-(this.offsetTop+this.offsetBottom);this.$contentPane.css({"max-height":height+"px"});},setBoxWidth:function(width){if(this.useBootstrap){console.warn("cannot set boxWidth, useBootstrap is set to true");return;}this.boxWidth=width;this.$jconfirmBox.css("width",width);},_parseColumnClass:function(colClass){colClass=colClass.toLowerCase();var p;switch(colClass){case"xl":case"xlarge":p="col-md-12";break;case"l":case"large":p="col-md-8 col-md-offset-2";break;case"m":case"medium":p="col-md-6 col-md-offset-3";break;case"s":case"small":p="col-md-4 col-md-offset-4";break;case"xs":case"xsmall":p="col-md-2 col-md-offset-5";break;default:p=colClass;}this.columnClassParsed=p;},initDraggable:function(){var that=this;var $t=this.$titleContainer;this.resetDrag();if(this.draggable){$t.on("mousedown",function(e){$t.addClass("jconfirm-hand");that.mouseX=e.clientX;that.mouseY=e.clientY;that.isDrag=true;});$(window).on("mousemove."+this._id,function(e){if(that.isDrag){that.movingX=e.clientX-that.mouseX+that.initialX;that.movingY=e.clientY-that.mouseY+that.initialY;that.setDrag();}});$(window).on("mouseup."+this._id,function(){$t.removeClass("jconfirm-hand");if(that.isDrag){that.isDrag=false;that.initialX=that.movingX;that.initialY=that.movingY;}});}},resetDrag:function(){this.isDrag=false;this.initialX=0;this.initialY=0;this.movingX=0;this.movingY=0;this.mouseX=0;this.mouseY=0;this.$jconfirmBoxContainer.css("transform","translate("+0+"px, "+0+"px)");},setDrag:function(){if(!this.draggable){return;}this.alignMiddle=false;var boxWidth=this.$jconfirmBox.outerWidth();var boxHeight=this.$jconfirmBox.outerHeight();var windowWidth=$(window).width();var windowHeight=$(window).height();var that=this;var dragUpdate=1;if(that.movingX%dragUpdate===0||that.movingY%dragUpdate===0){if(that.dragWindowBorder){var leftDistance=(windowWidth/2)-boxWidth/2;var topDistance=(windowHeight/2)-boxHeight/2;topDistance-=that.dragWindowGap;leftDistance-=that.dragWindowGap;if(leftDistance+that.movingX<0){that.movingX=-leftDistance;}else{if(leftDistance-that.movingX<0){that.movingX=leftDistance;}}if(topDistance+that.movingY<0){that.movingY=-topDistance;}else{if(topDistance-that.movingY<0){that.movingY=topDistance;}}}that.$jconfirmBoxContainer.css("transform","translate("+that.movingX+"px, "+that.movingY+"px)");}},_scrollTop:function(){if(typeof pageYOffset!=="undefined"){return pageYOffset;}else{var B=document.body;var D=document.documentElement;D=(D.clientHeight)?D:B;return D.scrollTop;}},_watchContent:function(){var that=this;if(this._timer){clearInterval(this._timer);}var prevContentHeight=0;this._timer=setInterval(function(){if(that.smoothContent){var contentHeight=that.$content.outerHeight()||0;if(contentHeight!==prevContentHeight){prevContentHeight=contentHeight;}var wh=$(window).height();var total=that.offsetTop+that.offsetBottom+that.$jconfirmBox.height()-that.$contentPane.height()+that.$content.height();if(total').html(that.buttons[key].text).addClass(that.buttons[key].btnClass).prop("disabled",that.buttons[key].isDisabled).css("display",that.buttons[key].isHidden?"none":"").click(function(e){e.preventDefault();var res=that.buttons[key].action.apply(that,[that.buttons[key]]);that.onAction.apply(that,[key,that.buttons[key]]);that._stopCountDown();if(typeof res==="undefined"||res){that.close();}});that.buttons[key].el=button_element;that.buttons[key].setText=function(text){button_element.html(text);};that.buttons[key].addClass=function(className){button_element.addClass(className);};that.buttons[key].removeClass=function(className){button_element.removeClass(className);};that.buttons[key].disable=function(){that.buttons[key].isDisabled=true;button_element.prop("disabled",true);};that.buttons[key].enable=function(){that.buttons[key].isDisabled=false;button_element.prop("disabled",false);};that.buttons[key].show=function(){that.buttons[key].isHidden=false;button_element.css("display","");};that.buttons[key].hide=function(){that.buttons[key].isHidden=true;button_element.css("display","none");};that["$_"+key]=that["$$"+key]=button_element;that.$btnc.append(button_element);});if(total_buttons===0){this.$btnc.hide();}if(this.closeIcon===null&&total_buttons===0){this.closeIcon=true;}if(this.closeIcon){if(this.closeIconClass){var closeHtml='';this.$closeIcon.html(closeHtml);}this.$closeIcon.click(function(e){e.preventDefault();var buttonName=false;var shouldClose=false;var str;if(typeof that.closeIcon==="function"){str=that.closeIcon();}else{str=that.closeIcon;}if(typeof str==="string"&&typeof that.buttons[str]!=="undefined"){buttonName=str;shouldClose=false;}else{if(typeof str==="undefined"||!!(str)===true){shouldClose=true;}else{shouldClose=false;}}if(buttonName){var btnResponse=that.buttons[buttonName].action.apply(that);shouldClose=(typeof btnResponse==="undefined")||!!(btnResponse);}if(shouldClose){that.close();}});this.$closeIcon.show();}else{this.$closeIcon.hide();}},setTitle:function(string,force){force=force||false;if(typeof string!=="undefined"){if(typeof string==="string"){this.title=string;}else{if(typeof string==="function"){if(typeof string.promise==="function"){console.error("Promise was returned from title function, this is not supported.");}var response=string();if(typeof response==="string"){this.title=response;}else{this.title=false;}}else{this.title=false;}}}if(this.isAjaxLoading&&!force){return;}this.$title.html(this.title||"");this.updateTitleContainer();},setIcon:function(iconClass,force){force=force||false;if(typeof iconClass!=="undefined"){if(typeof iconClass==="string"){this.icon=iconClass;}else{if(typeof iconClass==="function"){var response=iconClass();if(typeof response==="string"){this.icon=response;}else{this.icon=false;}}else{this.icon=false;}}}if(this.isAjaxLoading&&!force){return;}this.$icon.html(this.icon?'':"");this.updateTitleContainer();},updateTitleContainer:function(){if(!this.title&&!this.icon){this.$titleContainer.hide();}else{this.$titleContainer.show();}},setContentPrepend:function(content,force){if(!content){return;}this.contentParsed.prepend(content);},setContentAppend:function(content){if(!content){return;}this.contentParsed.append(content);},setContent:function(content,force){force=!!force;var that=this;if(content){this.contentParsed.html("").append(content);}if(this.isAjaxLoading&&!force){return;}this.$content.html("");this.$content.append(this.contentParsed);setTimeout(function(){that.$body.find("input[autofocus]:visible:first").focus();},100);},loadingSpinner:false,showLoading:function(disableButtons){this.loadingSpinner=true;this.$jconfirmBox.addClass("loading");if(disableButtons){this.$btnc.find("button").prop("disabled",true);}},hideLoading:function(enableButtons){this.loadingSpinner=false;this.$jconfirmBox.removeClass("loading");if(enableButtons){this.$btnc.find("button").prop("disabled",false);}},ajaxResponse:false,contentParsed:"",isAjax:false,isAjaxLoading:false,_parseContent:function(){var that=this;var e=" ";if(typeof this.content==="function"){var res=this.content.apply(this);if(typeof res==="string"){this.content=res;}else{if(typeof res==="object"&&typeof res.always==="function"){this.isAjax=true;this.isAjaxLoading=true;res.always(function(data,status,xhr){that.ajaxResponse={data:data,status:status,xhr:xhr};that._contentReady.resolve(data,status,xhr);if(typeof that.contentLoaded==="function"){that.contentLoaded(data,status,xhr);}});this.content=e;}else{this.content=e;}}}if(typeof this.content==="string"&&this.content.substr(0,4).toLowerCase()==="url:"){this.isAjax=true;this.isAjaxLoading=true;var u=this.content.substring(4,this.content.length);$.get(u).done(function(html){that.contentParsed.html(html);}).always(function(data,status,xhr){that.ajaxResponse={data:data,status:status,xhr:xhr};that._contentReady.resolve(data,status,xhr);if(typeof that.contentLoaded==="function"){that.contentLoaded(data,status,xhr);}});}if(!this.content){this.content=e;}if(!this.isAjax){this.contentParsed.html(this.content);this.setContent();that._contentReady.resolve();}},_stopCountDown:function(){clearInterval(this.autoCloseInterval);if(this.$cd){this.$cd.remove();}},_startCountDown:function(){var that=this;var opt=this.autoClose.split("|");if(opt.length!==2){console.error("Invalid option for autoClose. example 'close|10000'");return false;}var button_key=opt[0];var time=parseInt(opt[1]);if(typeof this.buttons[button_key]==="undefined"){console.error("Invalid button key '"+button_key+"' for autoClose");return false;}var seconds=Math.ceil(time/1000);this.$cd=$(' ('+seconds+")").appendTo(this["$_"+button_key]);this.autoCloseInterval=setInterval(function(){that.$cd.html(" ("+(seconds-=1)+") ");if(seconds<=0){that["$$"+button_key].trigger("click");that._stopCountDown();}},1000);},_getKey:function(key){switch(key){case 192:return"tilde";case 13:return"enter";case 16:return"shift";case 9:return"tab";case 20:return"capslock";case 17:return"ctrl";case 91:return"win";case 18:return"alt";case 27:return"esc";case 32:return"space";}var initial=String.fromCharCode(key);if(/^[A-z0-9]+$/.test(initial)){return initial.toLowerCase();}else{return false;}},reactOnKey:function(e){var that=this;var a=$(".jconfirm");if(a.eq(a.length-1)[0]!==this.$el[0]){return false;}var key=e.which;if(this.$content.find(":input").is(":focus")&&/13|32/.test(key)){return false;}var keyChar=this._getKey(key);if(keyChar==="esc"&&this.escapeKey){if(this.escapeKey===true){this.$scrollPane.trigger("click");}else{if(typeof this.escapeKey==="string"||typeof this.escapeKey==="function"){var buttonKey;if(typeof this.escapeKey==="function"){buttonKey=this.escapeKey();}else{buttonKey=this.escapeKey;}if(buttonKey){if(typeof this.buttons[buttonKey]==="undefined"){console.warn("Invalid escapeKey, no buttons found with key "+buttonKey);}else{this["$_"+buttonKey].trigger("click");}}}}}$.each(this.buttons,function(key,button){if(button.keys.indexOf(keyChar)!==-1){that["$_"+key].trigger("click");}});},setDialogCenter:function(){console.info("setDialogCenter is deprecated, dialogs are centered with CSS3 tables");},_unwatchContent:function(){clearInterval(this._timer);},close:function(onClosePayload){var that=this;if(typeof this.onClose==="function"){this.onClose(onClosePayload);}this._unwatchContent();$(window).unbind("resize."+this._id);$(window).unbind("keyup."+this._id);$(window).unbind("jcKeyDown."+this._id);if(this.draggable){$(window).unbind("mousemove."+this._id);$(window).unbind("mouseup."+this._id);this.$titleContainer.unbind("mousedown");}that.$el.removeClass(that.loadedClass);$("body").removeClass("jconfirm-no-scroll-"+that._id);that.$jconfirmBoxContainer.removeClass("jconfirm-no-transition");setTimeout(function(){that.$body.addClass(that.closeAnimationParsed);that.$jconfirmBg.addClass("jconfirm-bg-h");var closeTimer=(that.closeAnimation==="none")?1:that.animationSpeed;setTimeout(function(){that.$el.remove();var l=w.jconfirm.instances;var i=w.jconfirm.instances.length-1;for(i;i>=0;i--){if(w.jconfirm.instances[i]._id===that._id){w.jconfirm.instances.splice(i,1);}}if(!w.jconfirm.instances.length){if(that.scrollToPreviousElement&&w.jconfirm.lastFocused&&w.jconfirm.lastFocused.length&&$.contains(document,w.jconfirm.lastFocused[0])){var $lf=w.jconfirm.lastFocused;if(that.scrollToPreviousElementAnimate){var st=$(window).scrollTop();var ot=w.jconfirm.lastFocused.offset().top;var wh=$(window).height();if(!(ot>st&&ot<(st+wh))){var scrollTo=(ot-Math.round((wh/3)));$("html, body").animate({scrollTop:scrollTo},that.animationSpeed,"swing",function(){$lf.focus();});}else{$lf.focus();}}else{$lf.focus();}w.jconfirm.lastFocused=false;}}if(typeof that.onDestroy==="function"){that.onDestroy();}},closeTimer*0.4);},50);return true;},open:function(){if(this.isOpen()){return false;}this._buildHTML();this._bindEvents();this._open();return true;},setStartingPoint:function(){var el=false;if(this.animateFromElement!==true&&this.animateFromElement){el=this.animateFromElement;w.jconfirm.lastClicked=false;}else{if(w.jconfirm.lastClicked&&this.animateFromElement===true){el=w.jconfirm.lastClicked;w.jconfirm.lastClicked=false;}else{return false;}}if(!el){return false;}var offset=el.offset();var iTop=el.outerHeight()/2;var iLeft=el.outerWidth()/2;iTop-=this.$jconfirmBox.outerHeight()/2;iLeft-=this.$jconfirmBox.outerWidth()/2;var sourceTop=offset.top+iTop;sourceTop=sourceTop-this._scrollTop();var sourceLeft=offset.left+iLeft;var wh=$(window).height()/2;var ww=$(window).width()/2;var targetH=wh-this.$jconfirmBox.outerHeight()/2;var targetW=ww-this.$jconfirmBox.outerWidth()/2;sourceTop-=targetH;sourceLeft-=targetW;if(Math.abs(sourceTop)>wh||Math.abs(sourceLeft)>ww){return false;}this.$jconfirmBoxContainer.css("transform","translate("+sourceLeft+"px, "+sourceTop+"px)");},_open:function(){var that=this;if(typeof that.onOpenBefore==="function"){that.onOpenBefore();}this.$body.removeClass(this.animationParsed);this.$jconfirmBg.removeClass("jconfirm-bg-h");this.$body.focus();that.$jconfirmBoxContainer.css("transform","translate("+0+"px, "+0+"px)");setTimeout(function(){that.$body.css(that._getCSS(that.animationSpeed,1));that.$body.css({"transition-property":that.$body.css("transition-property")+", margin"});that.$jconfirmBoxContainer.addClass("jconfirm-no-transition");that._modalReady.resolve();if(typeof that.onOpen==="function"){that.onOpen();}that.$el.addClass(that.loadedClass);},this.animationSpeed);},loadedClass:"jconfirm-open",isClosed:function(){return !this.$el||this.$el.parent().length===0;},isOpen:function(){return !this.isClosed();},toggle:function(){if(!this.isOpen()){this.open();}else{this.close();}}};w.jconfirm.instances=[];w.jconfirm.lastFocused=false;w.jconfirm.pluginDefaults={template:'×',title:"Hello",titleClass:"",type:"default",typeAnimated:true,draggable:true,dragWindowGap:15,dragWindowBorder:true,animateFromElement:true,alignMiddle:true,smoothContent:true,content:"Are you sure to continue?",buttons:{},defaultButtons:{ok:{action:function(){}},close:{action:function(){}}},contentLoaded:function(){},icon:"",lazyOpen:false,bgOpacity:null,theme:"light",animation:"scale",closeAnimation:"scale",animationSpeed:400,animationBounce:1,escapeKey:true,rtl:false,container:"body",containerFluid:false,backgroundDismiss:false,backgroundDismissAnimation:"shake",autoClose:false,closeIcon:null,closeIconClass:false,watchInterval:100,columnClass:"col-md-4 col-md-offset-4 col-sm-6 col-sm-offset-3 col-xs-10 col-xs-offset-1",boxWidth:"50%",scrollToPreviousElement:true,scrollToPreviousElementAnimate:true,useBootstrap:true,offsetTop:40,offsetBottom:40,bootstrapClasses:{container:"container",containerFluid:"container-fluid",row:"row"},onContentReady:function(){},onOpenBefore:function(){},onOpen:function(){},onClose:function(){},onDestroy:function(){},onAction:function(){}};var keyDown=false;$(window).on("keydown",function(e){if(!keyDown){var $target=$(e.target);var pass=false;if($target.closest(".jconfirm-box").length){pass=true;}if(pass){$(window).trigger("jcKeyDown");}keyDown=true;}});$(window).on("keyup",function(){keyDown=false;});w.jconfirm.lastClicked=false;$(document).on("mousedown","button, a, [jc-source]",function(){w.jconfirm.lastClicked=$(this);});})); \ No newline at end of file diff --git a/themes/default/js/plugins/moment-with-locales.min.js b/themes/default/js/plugins/moment-with-locales.min.js new file mode 100644 index 000000000..b79adb7f6 --- /dev/null +++ b/themes/default/js/plugins/moment-with-locales.min.js @@ -0,0 +1,2 @@ +!function(e,a){"object"==typeof exports&&"undefined"!=typeof module?module.exports=a():"function"==typeof define&&define.amd?define(a):e.moment=a()}(this,function(){"use strict";var e,n;function M(){return e.apply(null,arguments)}function _(e){return e instanceof Array||"[object Array]"===Object.prototype.toString.call(e)}function i(e){return null!=e&&"[object Object]"===Object.prototype.toString.call(e)}function h(e,a){return Object.prototype.hasOwnProperty.call(e,a)}function o(e){if(Object.getOwnPropertyNames)return 0===Object.getOwnPropertyNames(e).length;var a;for(a in e)if(h(e,a))return;return 1}function r(e){return void 0===e}function m(e){return"number"==typeof e||"[object Number]"===Object.prototype.toString.call(e)}function d(e){return e instanceof Date||"[object Date]"===Object.prototype.toString.call(e)}function u(e,a){for(var t=[],s=0;s>>0,s=0;sFe(e)?(r=e+1,d-Fe(e)):(r=e,d);return{year:r,dayOfYear:_}}function Ce(e,a,t){var s,n,r=Je(e.year(),a,t),d=Math.floor((e.dayOfYear()-r-1)/7)+1;return d<1?s=d+Ie(n=e.year()-1,a,t):d>Ie(e.year(),a,t)?(s=d-Ie(e.year(),a,t),n=e.year()+1):(n=e.year(),s=d),{week:s,year:n}}function Ie(e,a,t){var s=Je(e,a,t),n=Je(e+1,a,t);return(Fe(e)-s+n)/7}W("w",["ww",2],"wo","week"),W("W",["WW",2],"Wo","isoWeek"),z("week","w"),z("isoWeek","W"),C("week",5),C("isoWeek",5),le("w",ae),le("ww",ae,$),le("W",ae),le("WW",ae,$),Ye(["w","ww","W","WW"],function(e,a,t,s){a[s.substr(0,1)]=G(e)});function Ue(e,a){return e.slice(a,7).concat(e.slice(0,a))}W("d",0,"do","day"),W("dd",0,0,function(e){return this.localeData().weekdaysMin(this,e)}),W("ddd",0,0,function(e){return this.localeData().weekdaysShort(this,e)}),W("dddd",0,0,function(e){return this.localeData().weekdays(this,e)}),W("e",0,0,"weekday"),W("E",0,0,"isoWeekday"),z("day","d"),z("weekday","e"),z("isoWeekday","E"),C("day",11),C("weekday",11),C("isoWeekday",11),le("d",ae),le("e",ae),le("E",ae),le("dd",function(e,a){return a.weekdaysMinRegex(e)}),le("ddd",function(e,a){return a.weekdaysShortRegex(e)}),le("dddd",function(e,a){return a.weekdaysRegex(e)}),Ye(["dd","ddd","dddd"],function(e,a,t,s){var n=t._locale.weekdaysParse(e,s,t._strict);null!=n?a.d=n:L(t).invalidWeekday=e}),Ye(["d","e","E"],function(e,a,t,s){a[s]=G(e)});var Ge="Sunday_Monday_Tuesday_Wednesday_Thursday_Friday_Saturday".split("_"),Ve="Sun_Mon_Tue_Wed_Thu_Fri_Sat".split("_"),Be="Su_Mo_Tu_We_Th_Fr_Sa".split("_"),Ke=ue,qe=ue,Ze=ue;function $e(){function e(e,a){return a.length-e.length}for(var a,t,s,n,r=[],d=[],_=[],i=[],o=0;o<7;o++)a=c([2e3,1]).day(o),t=he(this.weekdaysMin(a,"")),s=he(this.weekdaysShort(a,"")),n=he(this.weekdays(a,"")),r.push(t),d.push(s),_.push(n),i.push(t),i.push(s),i.push(n);r.sort(e),d.sort(e),_.sort(e),i.sort(e),this._weekdaysRegex=new RegExp("^("+i.join("|")+")","i"),this._weekdaysShortRegex=this._weekdaysRegex,this._weekdaysMinRegex=this._weekdaysRegex,this._weekdaysStrictRegex=new RegExp("^("+_.join("|")+")","i"),this._weekdaysShortStrictRegex=new RegExp("^("+d.join("|")+")","i"),this._weekdaysMinStrictRegex=new RegExp("^("+r.join("|")+")","i")}function Qe(){return this.hours()%12||12}function Xe(e,a){W(e,0,0,function(){return this.localeData().meridiem(this.hours(),this.minutes(),a)})}function ea(e,a){return a._meridiemParse}W("H",["HH",2],0,"hour"),W("h",["hh",2],0,Qe),W("k",["kk",2],0,function(){return this.hours()||24}),W("hmm",0,0,function(){return""+Qe.apply(this)+S(this.minutes(),2)}),W("hmmss",0,0,function(){return""+Qe.apply(this)+S(this.minutes(),2)+S(this.seconds(),2)}),W("Hmm",0,0,function(){return""+this.hours()+S(this.minutes(),2)}),W("Hmmss",0,0,function(){return""+this.hours()+S(this.minutes(),2)+S(this.seconds(),2)}),Xe("a",!0),Xe("A",!1),z("hour","h"),C("hour",13),le("a",ea),le("A",ea),le("H",ae),le("h",ae),le("k",ae),le("HH",ae,$),le("hh",ae,$),le("kk",ae,$),le("hmm",te),le("hmmss",se),le("Hmm",te),le("Hmmss",se),Le(["H","HH"],De),Le(["k","kk"],function(e,a,t){var s=G(e);a[De]=24===s?0:s}),Le(["a","A"],function(e,a,t){t._isPm=t._locale.isPM(e),t._meridiem=e}),Le(["h","hh"],function(e,a,t){a[De]=G(e),L(t).bigHour=!0}),Le("hmm",function(e,a,t){var s=e.length-2;a[De]=G(e.substr(0,s)),a[Te]=G(e.substr(s)),L(t).bigHour=!0}),Le("hmmss",function(e,a,t){var s=e.length-4,n=e.length-2;a[De]=G(e.substr(0,s)),a[Te]=G(e.substr(s,2)),a[ge]=G(e.substr(n)),L(t).bigHour=!0}),Le("Hmm",function(e,a,t){var s=e.length-2;a[De]=G(e.substr(0,s)),a[Te]=G(e.substr(s))}),Le("Hmmss",function(e,a,t){var s=e.length-4,n=e.length-2;a[De]=G(e.substr(0,s)),a[Te]=G(e.substr(s,2)),a[ge]=G(e.substr(n))});var aa=V("Hours",!0);var ta,sa={calendar:{sameDay:"[Today at] LT",nextDay:"[Tomorrow at] LT",nextWeek:"dddd [at] LT",lastDay:"[Yesterday at] LT",lastWeek:"[Last] dddd [at] LT",sameElse:"L"},longDateFormat:{LTS:"h:mm:ss A",LT:"h:mm A",L:"MM/DD/YYYY",LL:"MMMM D, YYYY",LLL:"MMMM D, YYYY h:mm A",LLLL:"dddd, MMMM D, YYYY h:mm A"},invalidDate:"Invalid date",ordinal:"%d",dayOfMonthOrdinalParse:/\d{1,2}/,relativeTime:{future:"in %s",past:"%s ago",s:"a few seconds",ss:"%d seconds",m:"a minute",mm:"%d minutes",h:"an hour",hh:"%d hours",d:"a day",dd:"%d days",w:"a week",ww:"%d weeks",M:"a month",MM:"%d months",y:"a year",yy:"%d years"},months:Se,monthsShort:je,week:{dow:0,doy:6},weekdays:Ge,weekdaysMin:Be,weekdaysShort:Ve,meridiemParse:/[ap]\.?m?\.?/i},na={},ra={};function da(e){return e?e.toLowerCase().replace("_","-"):e}function _a(e){for(var a,t,s,n,r=0;r=a&&function(e,a){for(var t=Math.min(e.length,a.length),s=0;s=a-1)break;a--}r++}return ta}function ia(a){var e=null;if(void 0===na[a]&&"undefined"!=typeof module&&module&&module.exports)try{e=ta._abbr,require("./locale/"+a),oa(e)}catch(e){na[a]=null}return na[a]}function oa(e,a){var t;return e&&((t=r(a)?ua(e):ma(e,a))?ta=t:"undefined"!=typeof console&&console.warn&&console.warn("Locale "+e+" not found. Did you forget to load it?")),ta._abbr}function ma(e,a){if(null===a)return delete na[e],null;var t,s=sa;if(a.abbr=e,null!=na[e])w("defineLocaleOverride","use moment.updateLocale(localeName, config) to change an existing locale. moment.defineLocale(localeName, config) should only be used for creating a new locale See http://momentjs.com/guides/#/warnings/define-locale/ for more info."),s=na[e]._config;else if(null!=a.parentLocale)if(null!=na[a.parentLocale])s=na[a.parentLocale]._config;else{if(null==(t=ia(a.parentLocale)))return ra[a.parentLocale]||(ra[a.parentLocale]=[]),ra[a.parentLocale].push({name:e,config:a}),null;s=t._config}return na[e]=new b(H(s,a)),ra[e]&&ra[e].forEach(function(e){ma(e.name,e.config)}),oa(e),na[e]}function ua(e){var a;if(e&&e._locale&&e._locale._abbr&&(e=e._locale._abbr),!e)return ta;if(!_(e)){if(a=ia(e))return a;e=[e]}return _a(e)}function la(e){var a,t=e._a;return t&&-2===L(e).overflow&&(a=t[pe]<0||11be(t[fe],t[pe])?ke:t[De]<0||24Ie(t,r,d)?L(e)._overflowWeeks=!0:null!=i?L(e)._overflowWeekday=!0:(_=Re(t,s,n,r,d),e._a[fe]=_.year,e._dayOfYear=_.dayOfYear)}(e),null!=e._dayOfYear&&(r=ga(e._a[fe],s[fe]),(e._dayOfYear>Fe(r)||0===e._dayOfYear)&&(L(e)._overflowDayOfYear=!0),t=Ne(r,0,e._dayOfYear),e._a[pe]=t.getUTCMonth(),e._a[ke]=t.getUTCDate()),a=0;a<3&&null==e._a[a];++a)e._a[a]=i[a]=s[a];for(;a<7;a++)e._a[a]=i[a]=null==e._a[a]?2===a?1:0:e._a[a];24===e._a[De]&&0===e._a[Te]&&0===e._a[ge]&&0===e._a[we]&&(e._nextDay=!0,e._a[De]=0),e._d=(e._useUTC?Ne:function(e,a,t,s,n,r,d){var _;return e<100&&0<=e?(_=new Date(e+400,a,t,s,n,r,d),isFinite(_.getFullYear())&&_.setFullYear(e)):_=new Date(e,a,t,s,n,r,d),_}).apply(null,i),n=e._useUTC?e._d.getUTCDay():e._d.getDay(),null!=e._tzm&&e._d.setUTCMinutes(e._d.getUTCMinutes()-e._tzm),e._nextDay&&(e._a[De]=24),e._w&&void 0!==e._w.d&&e._w.d!==n&&(L(e).weekdayMismatch=!0)}}function va(e){if(e._f!==M.ISO_8601)if(e._f!==M.RFC_2822){e._a=[],L(e).empty=!0;for(var a,t,s,n,r,d,_,i=""+e._i,o=i.length,m=0,u=E(e._f,e._locale).match(j)||[],l=0;lt.valueOf():t.valueOf()"}),yt.toJSON=function(){return this.isValid()?this.toISOString():null},yt.toString=function(){return this.clone().locale("en").format("ddd MMM DD YYYY HH:mm:ss [GMT]ZZ")},yt.unix=function(){return Math.floor(this.valueOf()/1e3)},yt.valueOf=function(){return this._d.valueOf()-6e4*(this._offset||0)},yt.creationData=function(){return{input:this._i,format:this._f,locale:this._locale,isUTC:this._isUTC,strict:this._strict}},yt.eraName=function(){for(var e,a=this.localeData().eras(),t=0,s=a.length;tthis.clone().month(0).utcOffset()||this.utcOffset()>this.clone().month(5).utcOffset()},yt.isLocal=function(){return!!this.isValid()&&!this._isUTC},yt.isUtcOffset=function(){return!!this.isValid()&&this._isUTC},yt.isUtc=Ca,yt.isUTC=Ca,yt.zoneAbbr=function(){return this._isUTC?"UTC":""},yt.zoneName=function(){return this._isUTC?"Coordinated Universal Time":""},yt.dates=t("dates accessor is deprecated. Use date instead.",lt),yt.months=t("months accessor is deprecated. Use month instead",Ae),yt.years=t("years accessor is deprecated. Use year instead",ze),yt.zone=t("moment().zone is deprecated, use moment().utcOffset instead. http://momentjs.com/guides/#/warnings/zone/",function(e,a){return null!=e?("string"!=typeof e&&(e=-e),this.utcOffset(e,a),this):-this.utcOffset()}),yt.isDSTShifted=t("isDSTShifted is deprecated. See http://momentjs.com/guides/#/warnings/dst-shifted/ for more information",function(){if(!r(this._isDSTShifted))return this._isDSTShifted;var e,a={};return p(a,this),(a=Ha(a))._a?(e=(a._isUTC?c:Sa)(a._a),this._isDSTShifted=this.isValid()&&0=0?this.parent.children[e]:null}return null},e.prototype.getNextSibling=function(){if(this.parent){var e=this.parent.getChildIndex(this)+1;return e/g,">").replace(/"/g,""").replace(/'/g,"'").replace(/\//g,"/")},t.getBoolString=function(e){return e?"true":"false"}},function(e,t){e.exports=jQuery},function(e,t,o){"use strict";t.__esModule=!0;var n=function(){function e(e,t){this.$el=jQuery(e);var o=this.constructor.defaults;this.options=jQuery.extend({},o,t)}return e.register=function(t,o){var n=function(){return"simple_widget_"+o};function r(t,o){var n=jQuery.data(t,o);return n&&n instanceof e?n:null}function i(e,o){for(var i=n(),s=0,a=e.get();so.right||t>o.bottom)return null;for(var n=0,r=this.hitAreas.length;n>1,s=this.hitAreas[i];if(ts.bottom))return s;n=i+1}}return null},e.prototype.mustOpenFolderTimer=function(e){var t=e.node;return t.isFolder()&&!t.is_open&&e.position===s.Position.Inside},e.prototype.updateDropHint=function(){if(this.hoveredArea){this.removeDropHint();var e=this.treeWidget._getNodeElementForNode(this.hoveredArea.node);this.previousGhost=e.addDropHint(this.hoveredArea.position)}},e.prototype.startOpenFolderTimer=function(e){var t=this;this.stopOpenFolderTimer(),this.openFolderTimer=window.setTimeout(function(){t.treeWidget._openNode(e,t.treeWidget.options.slide,function(){t.refresh(),t.updateDropHint()})},this.treeWidget.options.openFolderDelay)},e.prototype.stopOpenFolderTimer=function(){this.openFolderTimer&&(clearTimeout(this.openFolderTimer),this.openFolderTimer=null)},e.prototype.moveItem=function(e){var t=this;if(this.currentItem&&this.hoveredArea&&this.hoveredArea.position!==s.Position.None&&this.canMoveToArea(this.hoveredArea)){var o=this.currentItem.node,n=this.hoveredArea.node,r=this.hoveredArea.position,i=o.parent;r===s.Position.Inside&&(this.hoveredArea.node.is_open=!0);var a=function(){t.treeWidget.tree.moveNode(o,n,r),t.treeWidget.element.empty(),t.treeWidget._refreshElements(null)};this.treeWidget._triggerEvent("tree.move",{move_info:{moved_node:o,target_node:n,position:s.getPositionName(r),previous_parent:i,do_move:a,original_event:e.originalEvent}}).isDefaultPrevented()||a()}},e.prototype.getTreeDimensions=function(){var e=this.treeWidget.element.offset();if(e){var t=this.treeWidget.element,o=t.width()||0,n=t.height()||0,r=e.left+this.treeWidget._getScrollLeft();return{left:r,top:e.top,right:r+o,bottom:e.top+n+16}}return{left:0,top:0,right:0,bottom:0}},e}();t.DragAndDropHandler=l;var d=function(e){function t(t,o,n){var r=e.call(this,t)||this;return r.currentNode=o,r.treeBottom=n,r}return r(t,e),t.prototype.generate=function(){return this.positions=[],this.lastTop=0,this.iterate(),this.generateHitAreas(this.positions)},t.prototype.generateHitAreas=function(e){for(var t=-1,o=[],n=[],r=0,i=e;r'+e+""),this.$element.css("position","absolute"),n.append(this.$element)}return e.prototype.move=function(e,t){this.$element.offset({left:e-this.offsetX,top:t-this.offsetY})},e.prototype.remove=function(){this.$element.remove()},e}()},function(e,t,o){"use strict";t.__esModule=!0;var n=o(1),r=function(){function e(e){this.treeWidget=e,this.openedIconElement=this.createButtonElement(e.options.openedIcon),this.closedIconElement=this.createButtonElement(e.options.closedIcon)}return e.prototype.render=function(e){e&&e.parent?this.renderFromNode(e):this.renderFromRoot()},e.prototype.renderFromRoot=function(){var e=this.treeWidget.element;e.empty(),this.createDomElements(e[0],this.treeWidget.tree.children,!0,1)},e.prototype.renderFromNode=function(e){var t=jQuery(e.element),o=this.createLi(e,e.getLevel());this.attachNodeData(e,o),t.after(o),t.remove(),e.children&&this.createDomElements(o,e.children,!1,e.getLevel()+1)},e.prototype.createDomElements=function(e,t,o,n){var r=this.createUl(o);e.appendChild(r);for(var i=0,s=t;i1)){var n=o.changedTouches[0];return t._handleMouseDown(t._getPositionInfo(n))}},t.touchMove=function(e){var o=e.originalEvent;if(!(o.touches.length>1)){var n=o.changedTouches[0];return t._handleMouseMove(e,t._getPositionInfo(n))}},t.touchEnd=function(e){var o=e.originalEvent;if(!(o.touches.length>1)){var n=o.changedTouches[0];return t._handleMouseUp(t._getPositionInfo(n))}},t}return r(t,e),t.prototype.setMouseDelay=function(e){this.mouseDelay=e},t.prototype._init=function(){this.$el.on("mousedown.mousewidget",this.mouseDown),this.$el.on("touchstart.mousewidget",this.touchStart),this.isMouseStarted=!1,this.mouseDelay=0,this.mouseDelayTimer=null,this.isMouseDelayMet=!0,this.mouseDownInfo=null},t.prototype._deinit=function(){this.$el.off("mousedown.mousewidget"),this.$el.off("touchstart.mousewidget");var e=jQuery(document);e.off("mousemove.mousewidget"),e.off("mouseup.mousewidget")},t.prototype._handleMouseDown=function(e){if(this.isMouseStarted&&this._handleMouseUp(e),this.mouseDownInfo=e,this._mouseCapture(e))return this._handleStartMouse(),!0},t.prototype._handleStartMouse=function(){var e=jQuery(document);e.on("mousemove.mousewidget",this.mouseMove),e.on("touchmove.mousewidget",this.touchMove),e.on("mouseup.mousewidget",this.mouseUp),e.on("touchend.mousewidget",this.touchEnd),this.mouseDelay&&this._startMouseDelayTimer()},t.prototype._startMouseDelayTimer=function(){var e=this;this.mouseDelayTimer&&clearTimeout(this.mouseDelayTimer),this.mouseDelayTimer=window.setTimeout(function(){e.isMouseDelayMet=!0},this.mouseDelay),this.isMouseDelayMet=!1},t.prototype._handleMouseMove=function(e,t){return this.isMouseStarted?(this._mouseDrag(t),e.preventDefault()):!(!this.mouseDelay||this.isMouseDelayMet)||(this.mouseDownInfo&&(this.isMouseStarted=!1!==this._mouseStart(this.mouseDownInfo)),this.isMouseStarted?this._mouseDrag(t):this._handleMouseUp(t),!this.isMouseStarted)},t.prototype._getPositionInfo=function(e){return{pageX:e.pageX,pageY:e.pageY,target:e.target,originalEvent:e}},t.prototype._handleMouseUp=function(e){var t=jQuery(document);t.off("mousemove.mousewidget"),t.off("touchmove.mousewidget"),t.off("mouseup.mousewidget"),t.off("touchend.mousewidget"),this.isMouseStarted&&(this.isMouseStarted=!1,this._mouseStop(e))},t}(o(3).default);t.default=i},function(e,t,o){"use strict";t.__esModule=!0;var n=o(1),r=function(){function e(e){this.treeWidget=e}return e.prototype.saveState=function(){var e=JSON.stringify(this.getState());this.treeWidget.options.onSetStateFromStorage?this.treeWidget.options.onSetStateFromStorage(e):this.supportsLocalStorage()&&localStorage.setItem(this.getKeyName(),e)},e.prototype.getStateFromStorage=function(){var e=this._loadFromStorage();return e?this._parseState(e):null},e.prototype.getState=function(){var e,t=this;return{open_nodes:(e=[],t.treeWidget.tree.iterate(function(t){return t.is_open&&t.id&&t.hasChildren()&&e.push(t.id),!0}),e),selected_node:t.treeWidget.getSelectedNodes().map(function(e){return e.id})}},e.prototype.setInitialState=function(e){if(e){var t=!1;return e.open_nodes&&(t=this._openInitialNodes(e.open_nodes)),e.selected_node&&(this._resetSelection(),this._selectInitialNodes(e.selected_node)),t}return!1},e.prototype.setInitialStateOnDemand=function(e,t){e?this._setInitialStateOnDemand(e.open_nodes,e.selected_node,t):t()},e.prototype.getNodeIdToBeSelected=function(){var e=this.getStateFromStorage();return e&&e.selected_node?e.selected_node[0]:null},e.prototype._parseState=function(e){var t=jQuery.parseJSON(e);return t&&t.selected_node&&n.isInt(t.selected_node)&&(t.selected_node=[t.selected_node]),t},e.prototype._loadFromStorage=function(){return this.treeWidget.options.onGetStateFromStorage?this.treeWidget.options.onGetStateFromStorage():this.supportsLocalStorage()?localStorage.getItem(this.getKeyName()):void 0},e.prototype._openInitialNodes=function(e){for(var t=!1,o=0,n=e;o=r},e.prototype.getScrollLeft=function(){return this.$scrollParent&&this.$scrollParent.scrollLeft()||0},e.prototype.initScrollParent=function(){var e=this,t=function(){e.scrollParentTop=0,e.$scrollParent=null};"fixed"===this.treeWidget.$el.css("position")&&t();var o=function(){var t=["overflow","overflow-y"],o=function(e){for(var o=0,n=t;o0,s=o.left+n.clientWidth,a=o.left,l=e.pageX>s-20,d=e.pageX0,i=e.pageX>n-20,s=e.pageX-o<20;i?t.scrollLeft(o+20):s&&r&&t.scrollLeft(Math.max(o-20,0))}},e}();t.default=n},function(e,t,o){"use strict";t.__esModule=!0;var n=function(){function e(e){this.treeWidget=e,this.clear()}return e.prototype.getSelectedNode=function(){var e=this.getSelectedNodes();return!!e.length&&e[0]},e.prototype.getSelectedNodes=function(){if(this.selectedSingleNode)return[this.selectedSingleNode];var e=[];for(var t in this.selectedNodes)if(this.selectedNodes.hasOwnProperty(t)){var o=this.treeWidget.getNodeById(t);o&&e.push(o)}return e},e.prototype.getSelectedNodesUnder=function(e){if(this.selectedSingleNode)return e.isParentOf(this.selectedSingleNode)?[this.selectedSingleNode]:[];var t=[];for(var o in this.selectedNodes)if(this.selectedNodes.hasOwnProperty(o)){var n=this.treeWidget.getNodeById(o);n&&e.isParentOf(n)&&t.push(n)}return t},e.prototype.isNodeSelected=function(e){return!!e&&(null!=e.id?!!this.selectedNodes[e.id]:!!this.selectedSingleNode&&this.selectedSingleNode.element===e.element)},e.prototype.clear=function(){this.selectedNodes={},this.selectedSingleNode=null},e.prototype.removeFromSelection=function(e,t){var o=this;void 0===t&&(t=!1),null==e.id?this.selectedSingleNode&&e.element===this.selectedSingleNode.element&&(this.selectedSingleNode=null):(delete this.selectedNodes[e.id],t&&e.iterate(function(){return delete o.selectedNodes[e.id],!0}))},e.prototype.addToSelection=function(e){null!=e.id?this.selectedNodes[e.id]=!0:this.selectedSingleNode=e},e}();t.default=n},function(e,t,o){"use strict";var n,r=this&&this.__extends||(n=function(e,t){return(n=Object.setPrototypeOf||{__proto__:[]}instanceof Array&&function(e,t){e.__proto__=t}||function(e,t){for(var o in t)t.hasOwnProperty(o)&&(e[o]=t[o])})(e,t)},function(e,t){function o(){this.constructor=e}n(e,t),e.prototype=null===t?Object.create(t):(o.prototype=t.prototype,new o)});t.__esModule=!0;var i=o(0),s=function(){function e(e,t){this.init(e,t)}return e.prototype.init=function(e,t){this.node=e,this.treeWidget=t,e.element||(e.element=this.treeWidget.element.get(0)),this.$element=jQuery(e.element)},e.prototype.addDropHint=function(e){return this.mustShowBorderDropHint(e)?new l(this.$element,this.treeWidget._getScrollLeft()):new d(this.node,this.$element,e)},e.prototype.select=function(e){var t=this.getLi();t.addClass("jqtree-selected"),t.attr("aria-selected","true");var o=this.getSpan();o.attr("tabindex",this.treeWidget.options.tabIndex),e&&o.focus()},e.prototype.deselect=function(){var e=this.getLi();e.removeClass("jqtree-selected"),e.attr("aria-selected","false");var t=this.getSpan();t.removeAttr("tabindex"),t.blur()},e.prototype.getUl=function(){return this.$element.children("ul:first")},e.prototype.getSpan=function(){return this.$element.children(".jqtree-element").find("span.jqtree-title")},e.prototype.getLi=function(){return this.$element},e.prototype.mustShowBorderDropHint=function(e){return e===i.Position.Inside},e}();t.NodeElement=s;var a=function(e){function t(){return null!==e&&e.apply(this,arguments)||this}return r(t,e),t.prototype.open=function(e,t,o){var n=this;if(void 0===t&&(t=!0),void 0===o&&(o="fast"),!this.node.is_open){this.node.is_open=!0;var r=this.getButton();r.removeClass("jqtree-closed"),r.html("");var i=r.get(0);if(i){var s=this.treeWidget.renderer.openedIconElement.cloneNode(!0);i.appendChild(s)}var a=function(){n.getLi().removeClass("jqtree-closed"),n.getSpan().attr("aria-expanded","true"),e&&e(n.node),n.treeWidget._triggerEvent("tree.open",{node:n.node})};t?this.getUl().slideDown(o,a):(this.getUl().show(),a())}},t.prototype.close=function(e,t){var o=this;if(void 0===e&&(e=!0),void 0===t&&(t="fast"),this.node.is_open){this.node.is_open=!1;var n=this.getButton();n.addClass("jqtree-closed"),n.html("");var r=n.get(0);if(r){var i=this.treeWidget.renderer.closedIconElement.cloneNode(!0);r.appendChild(i)}var s=function(){o.getLi().addClass("jqtree-closed"),o.getSpan().attr("aria-expanded","false"),o.treeWidget._triggerEvent("tree.close",{node:o.node})};e?this.getUl().slideUp(t,s):(this.getUl().hide(),s())}},t.prototype.mustShowBorderDropHint=function(e){return!this.node.is_open&&e===i.Position.Inside},t.prototype.getButton=function(){return this.$element.children(".jqtree-element").find("a.jqtree-toggler")},t}(s);t.FolderElement=a;var l=function(){function e(e,t){var o=e.children(".jqtree-element"),n=e.width()||0,r=Math.max(n+t-4,0),i=o.outerHeight()||0,s=Math.max(i-4,0);this.$hint=jQuery(''),o.append(this.$hint),this.$hint.css({width:r,height:s})}return e.prototype.remove=function(){this.$hint.remove()},e}();t.BorderDropHint=l;var d=function(){function e(e,t,o){this.$element=t,this.node=e,this.$ghost=jQuery('\n '),o===i.Position.After?this.moveAfter():o===i.Position.Before?this.moveBefore():o===i.Position.Inside&&(e.isFolder()&&e.is_open?this.moveInsideOpenFolder():this.moveInside())}return e.prototype.remove=function(){this.$ghost.remove()},e.prototype.moveAfter=function(){this.$element.after(this.$ghost)},e.prototype.moveBefore=function(){this.$element.before(this.$ghost)},e.prototype.moveInsideOpenFolder=function(){jQuery(this.node.children[0].element).before(this.$ghost)},e.prototype.moveInside=function(){this.$element.after(this.$ghost),this.$ghost.addClass("jqtree-inside")},e}()},,function(e,t,o){e.exports=o(4)}]); \ No newline at end of file diff --git a/themes/default/template/comments.tpl b/themes/default/template/comments.tpl index 6a38dcf99..42d786ac5 100644 --- a/themes/default/template/comments.tpl +++ b/themes/default/template/comments.tpl @@ -12,7 +12,7 @@ - {'Filter'|@translate} + {'Filter'|@translate} diff --git a/themes/default/template/header.tpl b/themes/default/template/header.tpl index 03084aa87..5092b3814 100644 --- a/themes/default/template/header.tpl +++ b/themes/default/template/header.tpl @@ -1,6 +1,9 @@ +{if $SHOW_MOBILE_APP_BANNER} + +{/if} diff --git a/themes/default/template/include/resize.inc.tpl b/themes/default/template/include/resize.inc.tpl deleted file mode 100644 index 152ee61a2..000000000 --- a/themes/default/template/include/resize.inc.tpl +++ /dev/null @@ -1,16 +0,0 @@ -{* Resize possible *} -{footer_script require='jquery.ui.resizable'}{literal} - jQuery().ready(function(){ - // Resize possible for list - jQuery(".categoryList").resizable({ - handles: "all", - animate: true, - animateDuration: "slow", - animateEasing: "swing", - preventDefault: true, - preserveCursor: true, - autoHide: true, - ghost: true - }); - }); -{/literal}{/footer_script} diff --git a/themes/default/template/menubar_related_categories.tpl b/themes/default/template/menubar_related_categories.tpl new file mode 100644 index 000000000..1d1e0837e --- /dev/null +++ b/themes/default/template/menubar_related_categories.tpl @@ -0,0 +1,28 @@ + + {'Related albums'|@translate} + + +{assign var='ref_level' value=0} +{foreach from=$block->data.MENU_CATEGORIES item=cat} + {if $cat.LEVEL > $ref_level} + + {else} + + {''|@str_repeat:($ref_level-$cat.LEVEL)} + {/if} + + {if isset($cat.url)} + {$cat.name} + {else} + {$cat.name} + {/if} + {if $cat.count_images > 0} + {$cat.count_images} + {/if} + {if $cat.count_categories > 0} + {$cat.count_categories} + {/if} + {assign var='ref_level' value=$cat.LEVEL} +{/foreach} +{''|@str_repeat:$ref_level} + diff --git a/themes/default/template/search.tpl b/themes/default/template/search.tpl index 4129746bd..cca8ca41e 100644 --- a/themes/default/template/search.tpl +++ b/themes/default/template/search.tpl @@ -1,8 +1,3 @@ -{* Example of resizeable *} -{* -{include file='include/resize.inc.tpl'} -*} - {combine_script id='jquery.selectize' load='footer' path='themes/default/js/plugins/selectize.min.js'} {combine_css id='jquery.selectize' path="themes/default/js/plugins/selectize.{$themeconf.colorscheme}.css"} diff --git a/themes/default/theme.css b/themes/default/theme.css index 3468e3992..8b1d94944 100644 --- a/themes/default/theme.css +++ b/themes/default/theme.css @@ -113,6 +113,10 @@ padding:0 25px; } +#menubar .badge { + margin-left:5px; +} + .badge::before { content: '['; } @@ -121,6 +125,34 @@ content: ']'; } +.badge.badgeCategories::before { + content:"("; +} +.badge.badgeCategories::after { + content:")"; +} + +/* A nicer (more modern) way to present badge, with a background color and no brackets */ + +/* +.badge::before, .badge::after { + content:none; +} + +.badge { + display: inline-block; + min-width: 5px; + padding: 3px 7px; + color: #eee; + line-height: 1; + vertical-align: middle; + white-space: nowrap; + text-align: center; + background-color: #666; + border-radius: 10px; +} +*/ + /* category and tag results paragraphs on a quick search */ .search_results { font-size: 16px; @@ -792,3 +824,8 @@ LEGEND { .selectize-dropdown [data-selectable], .selectize-dropdown .optgroup-header { padding: 0px 5px !important; } + + +#TagsGroupRemoveTag span{ + display:none; +} diff --git a/themes/elegant/admin/admin.inc.php b/themes/elegant/admin/admin.inc.php deleted file mode 100644 index 7f68dc072..000000000 --- a/themes/elegant/admin/admin.inc.php +++ /dev/null @@ -1,29 +0,0 @@ -set_filenames(array( - 'theme_admin_content' => dirname(__FILE__) . '/admin.tpl')); - -$template->assign('options', safe_unserialize($conf['elegant'])); - -$template->assign_var_from_handle('ADMIN_CONTENT', 'theme_admin_content'); - -?> \ No newline at end of file diff --git a/themes/elegant/admin/admin.tpl b/themes/elegant/admin/admin.tpl deleted file mode 100644 index 2cbad5e21..000000000 --- a/themes/elegant/admin/admin.tpl +++ /dev/null @@ -1,44 +0,0 @@ -{combine_css path="themes/default/js/ui/theme/jquery.ui.button.css"} -{combine_css path="themes/elegant/admin/jquery.ui.button.css"} -{footer_script require='jquery.ui.button'} -{literal} -jQuery(document).ready(function(){ - jQuery( ".radio" ).buttonset(); -}); -{/literal} -{/footer_script} - - - {'Elegant, Configuration Page'|@translate} - - - - - {'Panels options'|@translate} - {'Choose what should be the default state for each panel, or disable the animation:'|@translate} - - - {'Main Menu Panel'|@translate} - {'Displayed'|@translate} - {'Hidden'|@translate} - {'Disable the animation'|@translate} - - - {'Photo Description Panel'|@translate} - {'Displayed'|@translate} - {'Hidden'|@translate} - {'Disable the animation'|@translate} - - - {'Comments Panel'|@translate} - {'Displayed'|@translate} - {'Hidden'|@translate} - {'Disable the animation'|@translate} - - - - - - - - diff --git a/themes/elegant/admin/index.php b/themes/elegant/admin/index.php deleted file mode 100644 index c01bbd832..000000000 --- a/themes/elegant/admin/index.php +++ /dev/null @@ -1,15 +0,0 @@ - diff --git a/themes/elegant/admin/jquery.ui.button.css b/themes/elegant/admin/jquery.ui.button.css deleted file mode 100644 index 4bc0491e3..000000000 --- a/themes/elegant/admin/jquery.ui.button.css +++ /dev/null @@ -1,571 +0,0 @@ -/*! jQuery UI - v1.10.3 - 2013-06-16 -* http://jqueryui.com -* Includes: jquery.ui.core.css, jquery.ui.button.css -* To view and modify this theme, visit http://jqueryui.com/themeroller/?ffDefault=Verdana%2CArial%2Csans-serif&fwDefault=normal&fsDefault=1.1em&cornerRadius=4px&bgColorHeader=cccccc&bgTextureHeader=highlight_soft&bgImgOpacityHeader=75&borderColorHeader=aaaaaa&fcHeader=222222&iconColorHeader=222222&bgColorContent=ffffff&bgTextureContent=flat&bgImgOpacityContent=75&borderColorContent=aaaaaa&fcContent=222222&iconColorContent=222222&bgColorDefault=e6e6e6&bgTextureDefault=glass&bgImgOpacityDefault=75&borderColorDefault=d3d3d3&fcDefault=555555&iconColorDefault=888888&bgColorHover=dadada&bgTextureHover=glass&bgImgOpacityHover=75&borderColorHover=999999&fcHover=212121&iconColorHover=454545&bgColorActive=ffffff&bgTextureActive=glass&bgImgOpacityActive=65&borderColorActive=aaaaaa&fcActive=212121&iconColorActive=454545&bgColorHighlight=fbf9ee&bgTextureHighlight=glass&bgImgOpacityHighlight=55&borderColorHighlight=fcefa1&fcHighlight=363636&iconColorHighlight=2e83ff&bgColorError=fef1ec&bgTextureError=glass&bgImgOpacityError=95&borderColorError=cd0a0a&fcError=cd0a0a&iconColorError=cd0a0a&bgColorOverlay=aaaaaa&bgTextureOverlay=flat&bgImgOpacityOverlay=0&opacityOverlay=30&bgColorShadow=aaaaaa&bgTextureShadow=flat&bgImgOpacityShadow=0&opacityShadow=30&thicknessShadow=8px&offsetTopShadow=-8px&offsetLeftShadow=-8px&cornerRadiusShadow=8px -* Copyright 2013 jQuery Foundation and other contributors Licensed MIT */ - -/* Layout helpers -----------------------------------*/ -#content .ui-helper-hidden { - display: none; -} -#content .ui-helper-hidden-accessible { - border: 0; - clip: rect(0 0 0 0); - height: 1px; - margin: -1px; - overflow: hidden; - padding: 0; - position: absolute; - width: 1px; -} -#content .ui-helper-reset { - margin: 0; - padding: 0; - border: 0; - outline: 0; - line-height: 1.3; - text-decoration: none; - font-size: 100%; - list-style: none; -} -#content .ui-helper-clearfix:before, -#content .ui-helper-clearfix:after { - content: ""; - display: table; - border-collapse: collapse; -} -#content .ui-helper-clearfix:after { - clear: both; -} -#content .ui-helper-clearfix { - min-height: 0; /* support: IE7 */ -} -#content .ui-helper-zfix { - width: 100%; - height: 100%; - top: 0; - left: 0; - position: absolute; - opacity: 0; - filter:Alpha(Opacity=0); -} - -#content .ui-front { - z-index: 100; -} - - -/* Interaction Cues -----------------------------------*/ -#content .ui-state-disabled { - cursor: default !important; -} - - -/* Icons -----------------------------------*/ - -/* states and images */ -#content .ui-icon { - display: block; - text-indent: -99999px; - overflow: hidden; - background-repeat: no-repeat; -} - - -/* Misc visuals -----------------------------------*/ - -/* Overlays */ -#content .ui-widget-overlay { - position: fixed; - top: 0; - left: 0; - width: 100%; - height: 100%; -} -#content .ui-button { - display: inline-block; - position: relative; - padding: 0; - line-height: normal; - margin-right: .1em; - cursor: pointer; - vertical-align: middle; - text-align: center; - overflow: visible; /* removes extra width in IE */ -} -#content .ui-button, -#content .ui-button:link, -#content .ui-button:visited, -#content .ui-button:hover, -#content .ui-button:active { - text-decoration: none; -} -/* to make room for the icon, a width needs to be set here */ -#content .ui-button-icon-only { - width: 2.2em; -} -/* button elements seem to need a little more width */ -#content button.ui-button-icon-only { - width: 2.4em; -} -#content .ui-button-icons-only { - width: 3.4em; -} -#content button.ui-button-icons-only { - width: 3.7em; -} - -/* button text element */ -#content .ui-button .ui-button-text { - display: block; - line-height: normal; -} -#content .ui-button-text-only .ui-button-text { - padding: .4em 1em; -} -#content .ui-button-icon-only .ui-button-text, -#content .ui-button-icons-only .ui-button-text { - padding: .4em; - text-indent: -9999999px; -} -#content .ui-button-text-icon-primary .ui-button-text, -#content .ui-button-text-icons .ui-button-text { - padding: .4em 1em .4em 2.1em; -} -#content .ui-button-text-icon-secondary .ui-button-text, -#content .ui-button-text-icons .ui-button-text { - padding: .4em 2.1em .4em 1em; -} -#content .ui-button-text-icons .ui-button-text { - padding-left: 2.1em; - padding-right: 2.1em; -} -/* no icon support for input elements, provide padding by default */ -#content input.ui-button { - padding: .4em 1em; -} - -/* button icon element(s) */ -#content .ui-button-icon-only .ui-icon, -#content .ui-button-text-icon-primary .ui-icon, -#content .ui-button-text-icon-secondary .ui-icon, -#content .ui-button-text-icons .ui-icon, -#content .ui-button-icons-only .ui-icon { - position: absolute; - top: 50%; - margin-top: -8px; -} -#content .ui-button-icon-only .ui-icon { - left: 50%; - margin-left: -8px; -} -#content .ui-button-text-icon-primary .ui-button-icon-primary, -#content .ui-button-text-icons .ui-button-icon-primary, -#content .ui-button-icons-only .ui-button-icon-primary { - left: .5em; -} -#content .ui-button-text-icon-secondary .ui-button-icon-secondary, -#content .ui-button-text-icons .ui-button-icon-secondary, -#content .ui-button-icons-only .ui-button-icon-secondary { - right: .5em; -} - -/* button sets */ -#content .ui-buttonset { - margin-right: 7px; -} -#content .ui-buttonset .ui-button { - margin-left: 0; - margin-right: -.3em; -} - -/* workarounds */ -/* reset extra padding in Firefox, see h5bp.com/l */ -#content input.ui-button::-moz-focus-inner, -#content button.ui-button::-moz-focus-inner { - border: 0; - padding: 0; -} - -/* Component containers -----------------------------------*/ -#content .ui-widget-content { - border: 1px solid #aaaaaa; - background: #ffffff url(images/ui-bg_flat_75_ffffff_40x100.png) 50% 50% repeat-x; - color: #222222; -} -#content .ui-widget-content a { - color: #222222; -} -#content .ui-widget-header { - border: 1px solid #aaaaaa; - background: #cccccc url(images/ui-bg_highlight-soft_75_cccccc_1x100.png) 50% 50% repeat-x; - color: #222222; - font-weight: bold; -} -#content .ui-widget-header a { - color: #222222; -} - -/* Interaction states -----------------------------------*/ -#content .ui-state-default, -#content .ui-widget-content .ui-state-default, -#content .ui-widget-header .ui-state-default { - border: 1px solid #d3d3d3; - background: #e6e6e6 url(images/ui-bg_glass_75_e6e6e6_1x400.png) 50% 50% repeat-x; - font-weight: normal; - color: #555555; -} -#content .ui-state-default a, -#content .ui-state-default a:link, -#content .ui-state-default a:visited { - color: #555555; - text-decoration: none; -} -#content .ui-state-hover, -#content .ui-widget-content .ui-state-hover, -#content .ui-widget-header .ui-state-hover, -#content .ui-state-focus, -#content .ui-widget-content .ui-state-focus, -#content .ui-widget-header .ui-state-focus { - border: 1px solid #999999; - background: #dadada url(images/ui-bg_glass_75_dadada_1x400.png) 50% 50% repeat-x; - font-weight: normal; - color: #212121; -} -#content .ui-state-hover a, -#content .ui-state-hover a:hover, -#content .ui-state-hover a:link, -#content .ui-state-hover a:visited { - color: #212121; - text-decoration: none; -} -#content .ui-state-active, -#content .ui-widget-content .ui-state-active, -#content .ui-widget-header .ui-state-active { - border: 1px solid #aaaaaa; - background: #ffffff url(images/ui-bg_glass_65_ffffff_1x400.png) 50% 50% repeat-x; - font-weight: normal; - color: #212121; -} -#content .ui-state-active a, -#content .ui-state-active a:link, -#content .ui-state-active a:visited { - color: #212121; - text-decoration: none; -} - -/* Interaction Cues -----------------------------------*/ -#content .ui-state-highlight, -#content .ui-widget-content .ui-state-highlight, -#content .ui-widget-header .ui-state-highlight { - border: 1px solid #fcefa1; - background: #fbf9ee url(images/ui-bg_glass_55_fbf9ee_1x400.png) 50% 50% repeat-x; - color: #363636; -} -#content .ui-state-highlight a, -#content .ui-widget-content .ui-state-highlight a, -#content .ui-widget-header .ui-state-highlight a { - color: #363636; -} -#content .ui-state-error, -#content .ui-widget-content .ui-state-error, -#content .ui-widget-header .ui-state-error { - border: 1px solid #cd0a0a; - background: #fef1ec url(images/ui-bg_glass_95_fef1ec_1x400.png) 50% 50% repeat-x; - color: #cd0a0a; -} -#content .ui-state-error a, -#content .ui-widget-content .ui-state-error a, -#content .ui-widget-header .ui-state-error a { - color: #cd0a0a; -} -#content .ui-state-error-text, -#content .ui-widget-content .ui-state-error-text, -#content .ui-widget-header .ui-state-error-text { - color: #cd0a0a; -} -#content .ui-priority-primary, -#content .ui-widget-content .ui-priority-primary, -#content .ui-widget-header .ui-priority-primary { - font-weight: bold; -} -#content .ui-priority-secondary, -#content .ui-widget-content .ui-priority-secondary, -#content .ui-widget-header .ui-priority-secondary { - opacity: .7; - filter:Alpha(Opacity=70); - font-weight: normal; -} -#content .ui-state-disabled, -#content .ui-widget-content .ui-state-disabled, -#content .ui-widget-header .ui-state-disabled { - opacity: .35; - filter:Alpha(Opacity=35); - background-image: none; -} -#content .ui-state-disabled .ui-icon { - filter:Alpha(Opacity=35); /* For IE8 - See #6059 */ -} - -/* Icons -----------------------------------*/ - -/* states and images */ -#content .ui-icon { - width: 16px; - height: 16px; -} -#content .ui-icon, -#content .ui-widget-content .ui-icon { - background-image: url(images/ui-icons_222222_256x240.png); -} -#content .ui-widget-header .ui-icon { - background-image: url(images/ui-icons_222222_256x240.png); -} -#content .ui-state-default .ui-icon { - background-image: url(images/ui-icons_888888_256x240.png); -} -#content .ui-state-hover .ui-icon, -#content .ui-state-focus .ui-icon { - background-image: url(images/ui-icons_454545_256x240.png); -} -#content .ui-state-active .ui-icon { - background-image: url(images/ui-icons_454545_256x240.png); -} -#content .ui-state-highlight .ui-icon { - background-image: url(images/ui-icons_2e83ff_256x240.png); -} -#content .ui-state-error .ui-icon, -#content .ui-state-error-text .ui-icon { - background-image: url(images/ui-icons_cd0a0a_256x240.png); -} - -/* positioning */ -#content .ui-icon-blank { background-position: 16px 16px; } -#content .ui-icon-carat-1-n { background-position: 0 0; } -#content .ui-icon-carat-1-ne { background-position: -16px 0; } -#content .ui-icon-carat-1-e { background-position: -32px 0; } -#content .ui-icon-carat-1-se { background-position: -48px 0; } -#content .ui-icon-carat-1-s { background-position: -64px 0; } -#content .ui-icon-carat-1-sw { background-position: -80px 0; } -#content .ui-icon-carat-1-w { background-position: -96px 0; } -#content .ui-icon-carat-1-nw { background-position: -112px 0; } -#content .ui-icon-carat-2-n-s { background-position: -128px 0; } -#content .ui-icon-carat-2-e-w { background-position: -144px 0; } -#content .ui-icon-triangle-1-n { background-position: 0 -16px; } -#content .ui-icon-triangle-1-ne { background-position: -16px -16px; } -#content .ui-icon-triangle-1-e { background-position: -32px -16px; } -#content .ui-icon-triangle-1-se { background-position: -48px -16px; } -#content .ui-icon-triangle-1-s { background-position: -64px -16px; } -#content .ui-icon-triangle-1-sw { background-position: -80px -16px; } -#content .ui-icon-triangle-1-w { background-position: -96px -16px; } -#content .ui-icon-triangle-1-nw { background-position: -112px -16px; } -#content .ui-icon-triangle-2-n-s { background-position: -128px -16px; } -#content .ui-icon-triangle-2-e-w { background-position: -144px -16px; } -#content .ui-icon-arrow-1-n { background-position: 0 -32px; } -#content .ui-icon-arrow-1-ne { background-position: -16px -32px; } -#content .ui-icon-arrow-1-e { background-position: -32px -32px; } -#content .ui-icon-arrow-1-se { background-position: -48px -32px; } -#content .ui-icon-arrow-1-s { background-position: -64px -32px; } -#content .ui-icon-arrow-1-sw { background-position: -80px -32px; } -#content .ui-icon-arrow-1-w { background-position: -96px -32px; } -#content .ui-icon-arrow-1-nw { background-position: -112px -32px; } -#content .ui-icon-arrow-2-n-s { background-position: -128px -32px; } -#content .ui-icon-arrow-2-ne-sw { background-position: -144px -32px; } -#content .ui-icon-arrow-2-e-w { background-position: -160px -32px; } -#content .ui-icon-arrow-2-se-nw { background-position: -176px -32px; } -#content .ui-icon-arrowstop-1-n { background-position: -192px -32px; } -#content .ui-icon-arrowstop-1-e { background-position: -208px -32px; } -#content .ui-icon-arrowstop-1-s { background-position: -224px -32px; } -#content .ui-icon-arrowstop-1-w { background-position: -240px -32px; } -#content .ui-icon-arrowthick-1-n { background-position: 0 -48px; } -#content .ui-icon-arrowthick-1-ne { background-position: -16px -48px; } -#content .ui-icon-arrowthick-1-e { background-position: -32px -48px; } -#content .ui-icon-arrowthick-1-se { background-position: -48px -48px; } -#content .ui-icon-arrowthick-1-s { background-position: -64px -48px; } -#content .ui-icon-arrowthick-1-sw { background-position: -80px -48px; } -#content .ui-icon-arrowthick-1-w { background-position: -96px -48px; } -#content .ui-icon-arrowthick-1-nw { background-position: -112px -48px; } -#content .ui-icon-arrowthick-2-n-s { background-position: -128px -48px; } -#content .ui-icon-arrowthick-2-ne-sw { background-position: -144px -48px; } -#content .ui-icon-arrowthick-2-e-w { background-position: -160px -48px; } -#content .ui-icon-arrowthick-2-se-nw { background-position: -176px -48px; } -#content .ui-icon-arrowthickstop-1-n { background-position: -192px -48px; } -#content .ui-icon-arrowthickstop-1-e { background-position: -208px -48px; } -#content .ui-icon-arrowthickstop-1-s { background-position: -224px -48px; } -#content .ui-icon-arrowthickstop-1-w { background-position: -240px -48px; } -#content .ui-icon-arrowreturnthick-1-w { background-position: 0 -64px; } -#content .ui-icon-arrowreturnthick-1-n { background-position: -16px -64px; } -#content .ui-icon-arrowreturnthick-1-e { background-position: -32px -64px; } -#content .ui-icon-arrowreturnthick-1-s { background-position: -48px -64px; } -#content .ui-icon-arrowreturn-1-w { background-position: -64px -64px; } -#content .ui-icon-arrowreturn-1-n { background-position: -80px -64px; } -#content .ui-icon-arrowreturn-1-e { background-position: -96px -64px; } -#content .ui-icon-arrowreturn-1-s { background-position: -112px -64px; } -#content .ui-icon-arrowrefresh-1-w { background-position: -128px -64px; } -#content .ui-icon-arrowrefresh-1-n { background-position: -144px -64px; } -#content .ui-icon-arrowrefresh-1-e { background-position: -160px -64px; } -#content .ui-icon-arrowrefresh-1-s { background-position: -176px -64px; } -#content .ui-icon-arrow-4 { background-position: 0 -80px; } -#content .ui-icon-arrow-4-diag { background-position: -16px -80px; } -#content .ui-icon-extlink { background-position: -32px -80px; } -#content .ui-icon-newwin { background-position: -48px -80px; } -#content .ui-icon-refresh { background-position: -64px -80px; } -#content .ui-icon-shuffle { background-position: -80px -80px; } -#content .ui-icon-transfer-e-w { background-position: -96px -80px; } -#content .ui-icon-transferthick-e-w { background-position: -112px -80px; } -#content .ui-icon-folder-collapsed { background-position: 0 -96px; } -#content .ui-icon-folder-open { background-position: -16px -96px; } -#content .ui-icon-document { background-position: -32px -96px; } -#content .ui-icon-document-b { background-position: -48px -96px; } -#content .ui-icon-note { background-position: -64px -96px; } -#content .ui-icon-mail-closed { background-position: -80px -96px; } -#content .ui-icon-mail-open { background-position: -96px -96px; } -#content .ui-icon-suitcase { background-position: -112px -96px; } -#content .ui-icon-comment { background-position: -128px -96px; } -#content .ui-icon-person { background-position: -144px -96px; } -#content .ui-icon-print { background-position: -160px -96px; } -#content .ui-icon-trash { background-position: -176px -96px; } -#content .ui-icon-locked { background-position: -192px -96px; } -#content .ui-icon-unlocked { background-position: -208px -96px; } -#content .ui-icon-bookmark { background-position: -224px -96px; } -#content .ui-icon-tag { background-position: -240px -96px; } -#content .ui-icon-home { background-position: 0 -112px; } -#content .ui-icon-flag { background-position: -16px -112px; } -#content .ui-icon-calendar { background-position: -32px -112px; } -#content .ui-icon-cart { background-position: -48px -112px; } -#content .ui-icon-pencil { background-position: -64px -112px; } -#content .ui-icon-clock { background-position: -80px -112px; } -#content .ui-icon-disk { background-position: -96px -112px; } -#content .ui-icon-calculator { background-position: -112px -112px; } -#content .ui-icon-zoomin { background-position: -128px -112px; } -#content .ui-icon-zoomout { background-position: -144px -112px; } -#content .ui-icon-search { background-position: -160px -112px; } -#content .ui-icon-wrench { background-position: -176px -112px; } -#content .ui-icon-gear { background-position: -192px -112px; } -#content .ui-icon-heart { background-position: -208px -112px; } -#content .ui-icon-star { background-position: -224px -112px; } -#content .ui-icon-link { background-position: -240px -112px; } -#content .ui-icon-cancel { background-position: 0 -128px; } -#content .ui-icon-plus { background-position: -16px -128px; } -#content .ui-icon-plusthick { background-position: -32px -128px; } -#content .ui-icon-minus { background-position: -48px -128px; } -#content .ui-icon-minusthick { background-position: -64px -128px; } -#content .ui-icon-close { background-position: -80px -128px; } -#content .ui-icon-closethick { background-position: -96px -128px; } -#content .ui-icon-key { background-position: -112px -128px; } -#content .ui-icon-lightbulb { background-position: -128px -128px; } -#content .ui-icon-scissors { background-position: -144px -128px; } -#content .ui-icon-clipboard { background-position: -160px -128px; } -#content .ui-icon-copy { background-position: -176px -128px; } -#content .ui-icon-contact { background-position: -192px -128px; } -#content .ui-icon-image { background-position: -208px -128px; } -#content .ui-icon-video { background-position: -224px -128px; } -#content .ui-icon-script { background-position: -240px -128px; } -#content .ui-icon-alert { background-position: 0 -144px; } -#content .ui-icon-info { background-position: -16px -144px; } -#content .ui-icon-notice { background-position: -32px -144px; } -#content .ui-icon-help { background-position: -48px -144px; } -#content .ui-icon-check { background-position: -64px -144px; } -#content .ui-icon-bullet { background-position: -80px -144px; } -#content .ui-icon-radio-on { background-position: -96px -144px; } -#content .ui-icon-radio-off { background-position: -112px -144px; } -#content .ui-icon-pin-w { background-position: -128px -144px; } -#content .ui-icon-pin-s { background-position: -144px -144px; } -#content .ui-icon-play { background-position: 0 -160px; } -#content .ui-icon-pause { background-position: -16px -160px; } -#content .ui-icon-seek-next { background-position: -32px -160px; } -#content .ui-icon-seek-prev { background-position: -48px -160px; } -#content .ui-icon-seek-end { background-position: -64px -160px; } -#content .ui-icon-seek-start { background-position: -80px -160px; } -/* ui-icon-seek-first is deprecated, use ui-icon-seek-start instead */ -#content .ui-icon-seek-first { background-position: -80px -160px; } -#content .ui-icon-stop { background-position: -96px -160px; } -#content .ui-icon-eject { background-position: -112px -160px; } -#content .ui-icon-volume-off { background-position: -128px -160px; } -#content .ui-icon-volume-on { background-position: -144px -160px; } -#content .ui-icon-power { background-position: 0 -176px; } -#content .ui-icon-signal-diag { background-position: -16px -176px; } -#content .ui-icon-signal { background-position: -32px -176px; } -#content .ui-icon-battery-0 { background-position: -48px -176px; } -#content .ui-icon-battery-1 { background-position: -64px -176px; } -#content .ui-icon-battery-2 { background-position: -80px -176px; } -#content .ui-icon-battery-3 { background-position: -96px -176px; } -#content .ui-icon-circle-plus { background-position: 0 -192px; } -#content .ui-icon-circle-minus { background-position: -16px -192px; } -#content .ui-icon-circle-close { background-position: -32px -192px; } -#content .ui-icon-circle-triangle-e { background-position: -48px -192px; } -#content .ui-icon-circle-triangle-s { background-position: -64px -192px; } -#content .ui-icon-circle-triangle-w { background-position: -80px -192px; } -#content .ui-icon-circle-triangle-n { background-position: -96px -192px; } -#content .ui-icon-circle-arrow-e { background-position: -112px -192px; } -#content .ui-icon-circle-arrow-s { background-position: -128px -192px; } -#content .ui-icon-circle-arrow-w { background-position: -144px -192px; } -#content .ui-icon-circle-arrow-n { background-position: -160px -192px; } -#content .ui-icon-circle-zoomin { background-position: -176px -192px; } -#content .ui-icon-circle-zoomout { background-position: -192px -192px; } -#content .ui-icon-circle-check { background-position: -208px -192px; } -#content .ui-icon-circlesmall-plus { background-position: 0 -208px; } -#content .ui-icon-circlesmall-minus { background-position: -16px -208px; } -#content .ui-icon-circlesmall-close { background-position: -32px -208px; } -#content .ui-icon-squaresmall-plus { background-position: -48px -208px; } -#content .ui-icon-squaresmall-minus { background-position: -64px -208px; } -#content .ui-icon-squaresmall-close { background-position: -80px -208px; } -#content .ui-icon-grip-dotted-vertical { background-position: 0 -224px; } -#content .ui-icon-grip-dotted-horizontal { background-position: -16px -224px; } -#content .ui-icon-grip-solid-vertical { background-position: -32px -224px; } -#content .ui-icon-grip-solid-horizontal { background-position: -48px -224px; } -#content .ui-icon-gripsmall-diagonal-se { background-position: -64px -224px; } -#content .ui-icon-grip-diagonal-se { background-position: -80px -224px; } - - -/* Misc visuals -----------------------------------*/ - -/* Corner radius */ -#content .ui-corner-all, -#content .ui-corner-top, -#content .ui-corner-left, -#content .ui-corner-tl { - border-top-left-radius: 4px; -} -#content .ui-corner-all, -#content .ui-corner-top, -#content .ui-corner-right, -#content .ui-corner-tr { - border-top-right-radius: 4px; -} -#content .ui-corner-all, -#content .ui-corner-bottom, -#content .ui-corner-left, -#content .ui-corner-bl { - border-bottom-left-radius: 4px; -} -#content .ui-corner-all, -#content .ui-corner-bottom, -#content .ui-corner-right, -#content .ui-corner-br { - border-bottom-right-radius: 4px; -} - -/* Overlays */ -#content .ui-widget-overlay { - background: #aaaaaa url(images/ui-bg_flat_0_aaaaaa_40x100.png) 50% 50% repeat-x; - opacity: .3; - filter: Alpha(Opacity=30); -} -#content .ui-widget-shadow { - margin: -8px 0 0 -8px; - padding: 8px; - background: #aaaaaa url(images/ui-bg_flat_0_aaaaaa_40x100.png) 50% 50% repeat-x; - opacity: .3; - filter: Alpha(Opacity=30); - border-radius: 8px; -} diff --git a/themes/elegant/admin/upgrade.inc.php b/themes/elegant/admin/upgrade.inc.php deleted file mode 100644 index b07fb4768..000000000 --- a/themes/elegant/admin/upgrade.inc.php +++ /dev/null @@ -1,28 +0,0 @@ - 'on', //on - off - disabled - 'p_pict_descr' => 'on', //on - off - disabled - 'p_pict_comment' => 'off', //on - off - disabled - ); - - conf_update_param('elegant', $config, true); -} -elseif (count(safe_unserialize( $conf['elegant'] ))!=3) -{ - $conff = safe_unserialize($conf['elegant']); - $config = array( - 'p_main_menu' => (isset($conff['p_main_menu'])) ? $conff['p_main_menu'] :'on', - 'p_pict_descr' => (isset($conff['p_pict_descr'])) ? $conff['p_pict_descr'] :'on', - 'p_pict_comment' => (isset($conff['p_pict_comment'])) ? $conff['p_pict_comment'] :'off', - ); - - conf_update_param('elegant', $config, true); -} -?> \ No newline at end of file diff --git a/themes/elegant/fix-ie7.css b/themes/elegant/fix-ie7.css deleted file mode 100644 index 380666696..000000000 --- a/themes/elegant/fix-ie7.css +++ /dev/null @@ -1,3 +0,0 @@ -#theImage.infoshown { float: left;} -#theImage.infohidden { float: right;} -#imageToolBar .actionButtons { float: right;} \ No newline at end of file diff --git a/themes/elegant/icon/arrows_ccc.png b/themes/elegant/icon/arrows_ccc.png deleted file mode 100644 index d4e0b3514..000000000 Binary files a/themes/elegant/icon/arrows_ccc.png and /dev/null differ diff --git a/themes/elegant/icon/arrows_fff.png b/themes/elegant/icon/arrows_fff.png deleted file mode 100644 index a3a4cd675..000000000 Binary files a/themes/elegant/icon/arrows_fff.png and /dev/null differ diff --git a/themes/elegant/icon/icons_sprite-hover.png b/themes/elegant/icon/icons_sprite-hover.png deleted file mode 100644 index f181301af..000000000 Binary files a/themes/elegant/icon/icons_sprite-hover.png and /dev/null differ diff --git a/themes/elegant/icon/icons_sprite.png b/themes/elegant/icon/icons_sprite.png deleted file mode 100644 index af96ffedc..000000000 Binary files a/themes/elegant/icon/icons_sprite.png and /dev/null differ diff --git a/themes/elegant/icon/icons_sprite.xcf b/themes/elegant/icon/icons_sprite.xcf deleted file mode 100644 index e9dfe623f..000000000 Binary files a/themes/elegant/icon/icons_sprite.xcf and /dev/null differ diff --git a/themes/elegant/icon/img_next.png b/themes/elegant/icon/img_next.png deleted file mode 100644 index be982ed82..000000000 Binary files a/themes/elegant/icon/img_next.png and /dev/null differ diff --git a/themes/elegant/icon/img_prev.png b/themes/elegant/icon/img_prev.png deleted file mode 100644 index 1061c77b5..000000000 Binary files a/themes/elegant/icon/img_prev.png and /dev/null differ diff --git a/themes/elegant/icon/none.png b/themes/elegant/icon/none.png deleted file mode 100644 index f32e0d46b..000000000 Binary files a/themes/elegant/icon/none.png and /dev/null differ diff --git a/themes/elegant/icon/rating-stars.png b/themes/elegant/icon/rating-stars.png deleted file mode 100644 index b4d4de476..000000000 Binary files a/themes/elegant/icon/rating-stars.png and /dev/null differ diff --git a/themes/elegant/index.php b/themes/elegant/index.php deleted file mode 100644 index 58ea04e8f..000000000 --- a/themes/elegant/index.php +++ /dev/null @@ -1,15 +0,0 @@ - diff --git a/themes/elegant/language/ar_SA/theme.lang.php b/themes/elegant/language/ar_SA/theme.lang.php deleted file mode 100644 index 74abd8223..000000000 --- a/themes/elegant/language/ar_SA/theme.lang.php +++ /dev/null @@ -1,17 +0,0 @@ - \ No newline at end of file diff --git a/themes/elegant/language/bg_BG/theme.lang.php b/themes/elegant/language/bg_BG/theme.lang.php deleted file mode 100644 index 5e68f94e6..000000000 --- a/themes/elegant/language/bg_BG/theme.lang.php +++ /dev/null @@ -1,17 +0,0 @@ - \ No newline at end of file diff --git a/themes/elegant/language/br_FR/theme.lang.php b/themes/elegant/language/br_FR/theme.lang.php deleted file mode 100644 index f74c94b76..000000000 --- a/themes/elegant/language/br_FR/theme.lang.php +++ /dev/null @@ -1,17 +0,0 @@ - \ No newline at end of file diff --git a/themes/elegant/language/ca_ES/theme.lang.php b/themes/elegant/language/ca_ES/theme.lang.php deleted file mode 100644 index fd471ad8f..000000000 --- a/themes/elegant/language/ca_ES/theme.lang.php +++ /dev/null @@ -1,17 +0,0 @@ - \ No newline at end of file diff --git a/themes/elegant/language/cs_CZ/index.php b/themes/elegant/language/cs_CZ/index.php deleted file mode 100644 index c01bbd832..000000000 --- a/themes/elegant/language/cs_CZ/index.php +++ /dev/null @@ -1,15 +0,0 @@ - diff --git a/themes/elegant/language/cs_CZ/theme.lang.php b/themes/elegant/language/cs_CZ/theme.lang.php deleted file mode 100644 index b5e534976..000000000 --- a/themes/elegant/language/cs_CZ/theme.lang.php +++ /dev/null @@ -1,11 +0,0 @@ - \ No newline at end of file diff --git a/themes/elegant/language/da_DK/theme.lang.php b/themes/elegant/language/da_DK/theme.lang.php deleted file mode 100644 index 32af74f0e..000000000 --- a/themes/elegant/language/da_DK/theme.lang.php +++ /dev/null @@ -1,17 +0,0 @@ - \ No newline at end of file diff --git a/themes/elegant/language/de_DE/theme.lang.php b/themes/elegant/language/de_DE/theme.lang.php deleted file mode 100644 index 9e0ec9d2a..000000000 --- a/themes/elegant/language/de_DE/theme.lang.php +++ /dev/null @@ -1,16 +0,0 @@ - \ No newline at end of file diff --git a/themes/elegant/language/en_UK/index.php b/themes/elegant/language/en_UK/index.php deleted file mode 100644 index c01bbd832..000000000 --- a/themes/elegant/language/en_UK/index.php +++ /dev/null @@ -1,15 +0,0 @@ - diff --git a/themes/elegant/language/en_UK/theme.lang.php b/themes/elegant/language/en_UK/theme.lang.php deleted file mode 100644 index c2eb97e86..000000000 --- a/themes/elegant/language/en_UK/theme.lang.php +++ /dev/null @@ -1,11 +0,0 @@ - \ No newline at end of file diff --git a/themes/elegant/language/eo_EO/theme.lang.php b/themes/elegant/language/eo_EO/theme.lang.php deleted file mode 100644 index 6226882cd..000000000 --- a/themes/elegant/language/eo_EO/theme.lang.php +++ /dev/null @@ -1,17 +0,0 @@ - \ No newline at end of file diff --git a/themes/elegant/language/es_ES/theme.lang.php b/themes/elegant/language/es_ES/theme.lang.php deleted file mode 100644 index 13f2f2d9b..000000000 --- a/themes/elegant/language/es_ES/theme.lang.php +++ /dev/null @@ -1,17 +0,0 @@ - \ No newline at end of file diff --git a/themes/elegant/language/et_EE/theme.lang.php b/themes/elegant/language/et_EE/theme.lang.php deleted file mode 100644 index 5b8fb91e7..000000000 --- a/themes/elegant/language/et_EE/theme.lang.php +++ /dev/null @@ -1,16 +0,0 @@ - \ No newline at end of file diff --git a/themes/elegant/language/fi_FI/theme.lang.php b/themes/elegant/language/fi_FI/theme.lang.php deleted file mode 100644 index 6e28ea198..000000000 --- a/themes/elegant/language/fi_FI/theme.lang.php +++ /dev/null @@ -1,17 +0,0 @@ - \ No newline at end of file diff --git a/themes/elegant/language/fr_CA/index.php b/themes/elegant/language/fr_CA/index.php deleted file mode 100644 index c01bbd832..000000000 --- a/themes/elegant/language/fr_CA/index.php +++ /dev/null @@ -1,15 +0,0 @@ - diff --git a/themes/elegant/language/fr_CA/theme.lang.php b/themes/elegant/language/fr_CA/theme.lang.php deleted file mode 100644 index 46b8a3bcc..000000000 --- a/themes/elegant/language/fr_CA/theme.lang.php +++ /dev/null @@ -1,12 +0,0 @@ - \ No newline at end of file diff --git a/themes/elegant/language/fr_FR/index.php b/themes/elegant/language/fr_FR/index.php deleted file mode 100644 index c01bbd832..000000000 --- a/themes/elegant/language/fr_FR/index.php +++ /dev/null @@ -1,15 +0,0 @@ - diff --git a/themes/elegant/language/fr_FR/theme.lang.php b/themes/elegant/language/fr_FR/theme.lang.php deleted file mode 100644 index 5b5ad5b2e..000000000 --- a/themes/elegant/language/fr_FR/theme.lang.php +++ /dev/null @@ -1,12 +0,0 @@ - \ No newline at end of file diff --git a/themes/elegant/language/gl_ES/theme.lang.php b/themes/elegant/language/gl_ES/theme.lang.php deleted file mode 100644 index 4c52b4f65..000000000 --- a/themes/elegant/language/gl_ES/theme.lang.php +++ /dev/null @@ -1,16 +0,0 @@ - diff --git a/themes/elegant/language/he_IL/theme.lang.php b/themes/elegant/language/he_IL/theme.lang.php deleted file mode 100644 index 477d284ea..000000000 --- a/themes/elegant/language/he_IL/theme.lang.php +++ /dev/null @@ -1,16 +0,0 @@ - \ No newline at end of file diff --git a/themes/elegant/language/index.php b/themes/elegant/language/index.php deleted file mode 100644 index c01bbd832..000000000 --- a/themes/elegant/language/index.php +++ /dev/null @@ -1,15 +0,0 @@ - diff --git a/themes/elegant/language/it_IT/theme.lang.php b/themes/elegant/language/it_IT/theme.lang.php deleted file mode 100644 index f0c808ca5..000000000 --- a/themes/elegant/language/it_IT/theme.lang.php +++ /dev/null @@ -1,17 +0,0 @@ - \ No newline at end of file diff --git a/themes/elegant/language/ja_JP/index.php b/themes/elegant/language/ja_JP/index.php deleted file mode 100644 index ec6605317..000000000 --- a/themes/elegant/language/ja_JP/index.php +++ /dev/null @@ -1,7 +0,0 @@ - diff --git a/themes/elegant/language/ja_JP/theme.lang.php b/themes/elegant/language/ja_JP/theme.lang.php deleted file mode 100644 index 0737204a7..000000000 --- a/themes/elegant/language/ja_JP/theme.lang.php +++ /dev/null @@ -1,16 +0,0 @@ - diff --git a/themes/elegant/language/km_KH/theme.lang.php b/themes/elegant/language/km_KH/theme.lang.php deleted file mode 100644 index 672488144..000000000 --- a/themes/elegant/language/km_KH/theme.lang.php +++ /dev/null @@ -1,17 +0,0 @@ - \ No newline at end of file diff --git a/themes/elegant/language/kn_IN/theme.lang.php b/themes/elegant/language/kn_IN/theme.lang.php deleted file mode 100644 index 14273677e..000000000 --- a/themes/elegant/language/kn_IN/theme.lang.php +++ /dev/null @@ -1,17 +0,0 @@ - \ No newline at end of file diff --git a/themes/elegant/language/ko_KR/theme.lang.php b/themes/elegant/language/ko_KR/theme.lang.php deleted file mode 100644 index ab2904943..000000000 --- a/themes/elegant/language/ko_KR/theme.lang.php +++ /dev/null @@ -1,17 +0,0 @@ - \ No newline at end of file diff --git a/themes/elegant/language/lt_LT/theme.lang.php b/themes/elegant/language/lt_LT/theme.lang.php deleted file mode 100644 index c97774809..000000000 --- a/themes/elegant/language/lt_LT/theme.lang.php +++ /dev/null @@ -1,17 +0,0 @@ - \ No newline at end of file diff --git a/themes/elegant/language/lv_LV/theme.lang.php b/themes/elegant/language/lv_LV/theme.lang.php deleted file mode 100644 index af23655c0..000000000 --- a/themes/elegant/language/lv_LV/theme.lang.php +++ /dev/null @@ -1,17 +0,0 @@ - \ No newline at end of file diff --git a/themes/elegant/language/mn_MN/index.php b/themes/elegant/language/mn_MN/index.php deleted file mode 100644 index ec6605317..000000000 --- a/themes/elegant/language/mn_MN/index.php +++ /dev/null @@ -1,7 +0,0 @@ - diff --git a/themes/elegant/language/mn_MN/theme.lang.php b/themes/elegant/language/mn_MN/theme.lang.php deleted file mode 100644 index bee23f289..000000000 --- a/themes/elegant/language/mn_MN/theme.lang.php +++ /dev/null @@ -1,17 +0,0 @@ - \ No newline at end of file diff --git a/themes/elegant/language/nb_NO/theme.lang.php b/themes/elegant/language/nb_NO/theme.lang.php deleted file mode 100644 index bbe9b90cd..000000000 --- a/themes/elegant/language/nb_NO/theme.lang.php +++ /dev/null @@ -1,17 +0,0 @@ - \ No newline at end of file diff --git a/themes/elegant/language/nl_NL/theme.lang.php b/themes/elegant/language/nl_NL/theme.lang.php deleted file mode 100644 index a1d91e9a1..000000000 --- a/themes/elegant/language/nl_NL/theme.lang.php +++ /dev/null @@ -1,16 +0,0 @@ - \ No newline at end of file diff --git a/themes/elegant/language/pl_PL/theme.lang.php b/themes/elegant/language/pl_PL/theme.lang.php deleted file mode 100644 index 61020c8f3..000000000 --- a/themes/elegant/language/pl_PL/theme.lang.php +++ /dev/null @@ -1,17 +0,0 @@ - \ No newline at end of file diff --git a/themes/elegant/language/pt_BR/theme.lang.php b/themes/elegant/language/pt_BR/theme.lang.php deleted file mode 100644 index e31e8b9d6..000000000 --- a/themes/elegant/language/pt_BR/theme.lang.php +++ /dev/null @@ -1,17 +0,0 @@ - \ No newline at end of file diff --git a/themes/elegant/language/pt_PT/theme.lang.php b/themes/elegant/language/pt_PT/theme.lang.php deleted file mode 100644 index 3bf665290..000000000 --- a/themes/elegant/language/pt_PT/theme.lang.php +++ /dev/null @@ -1,17 +0,0 @@ - \ No newline at end of file diff --git a/themes/elegant/language/ro_RO/theme.lang.php b/themes/elegant/language/ro_RO/theme.lang.php deleted file mode 100644 index 5a5349f73..000000000 --- a/themes/elegant/language/ro_RO/theme.lang.php +++ /dev/null @@ -1,17 +0,0 @@ - \ No newline at end of file diff --git a/themes/elegant/language/ru_RU/theme.lang.php b/themes/elegant/language/ru_RU/theme.lang.php deleted file mode 100644 index c28d2352e..000000000 --- a/themes/elegant/language/ru_RU/theme.lang.php +++ /dev/null @@ -1,17 +0,0 @@ - \ No newline at end of file diff --git a/themes/elegant/language/sk_SK/theme.lang.php b/themes/elegant/language/sk_SK/theme.lang.php deleted file mode 100644 index d8b4a8d38..000000000 --- a/themes/elegant/language/sk_SK/theme.lang.php +++ /dev/null @@ -1,17 +0,0 @@ - \ No newline at end of file diff --git a/themes/elegant/language/sl_SI/theme.lang.php b/themes/elegant/language/sl_SI/theme.lang.php deleted file mode 100644 index 678a2315c..000000000 --- a/themes/elegant/language/sl_SI/theme.lang.php +++ /dev/null @@ -1,17 +0,0 @@ - \ No newline at end of file diff --git a/themes/elegant/language/sr_RS/index.php b/themes/elegant/language/sr_RS/index.php deleted file mode 100644 index ec6605317..000000000 --- a/themes/elegant/language/sr_RS/index.php +++ /dev/null @@ -1,7 +0,0 @@ - diff --git a/themes/elegant/language/sr_RS/theme.lang.php b/themes/elegant/language/sr_RS/theme.lang.php deleted file mode 100644 index 67b934063..000000000 --- a/themes/elegant/language/sr_RS/theme.lang.php +++ /dev/null @@ -1,16 +0,0 @@ - \ No newline at end of file diff --git a/themes/elegant/language/ta_IN/theme.lang.php b/themes/elegant/language/ta_IN/theme.lang.php deleted file mode 100644 index 15826689d..000000000 --- a/themes/elegant/language/ta_IN/theme.lang.php +++ /dev/null @@ -1,18 +0,0 @@ - \ No newline at end of file diff --git a/themes/elegant/language/th_TH/theme.lang.php b/themes/elegant/language/th_TH/theme.lang.php deleted file mode 100644 index b641b3b19..000000000 --- a/themes/elegant/language/th_TH/theme.lang.php +++ /dev/null @@ -1,18 +0,0 @@ - \ No newline at end of file diff --git a/themes/elegant/language/tr_TR/theme.lang.php b/themes/elegant/language/tr_TR/theme.lang.php deleted file mode 100644 index 216931bc5..000000000 --- a/themes/elegant/language/tr_TR/theme.lang.php +++ /dev/null @@ -1,17 +0,0 @@ - \ No newline at end of file diff --git a/themes/elegant/language/uk_UA/theme.lang.php b/themes/elegant/language/uk_UA/theme.lang.php deleted file mode 100644 index b34287dde..000000000 --- a/themes/elegant/language/uk_UA/theme.lang.php +++ /dev/null @@ -1,17 +0,0 @@ - \ No newline at end of file diff --git a/themes/elegant/language/vi_VN/theme.lang.php b/themes/elegant/language/vi_VN/theme.lang.php deleted file mode 100644 index 675d81657..000000000 --- a/themes/elegant/language/vi_VN/theme.lang.php +++ /dev/null @@ -1,17 +0,0 @@ - \ No newline at end of file diff --git a/themes/elegant/language/zh_CN/theme.lang.php b/themes/elegant/language/zh_CN/theme.lang.php deleted file mode 100644 index 13984a0a8..000000000 --- a/themes/elegant/language/zh_CN/theme.lang.php +++ /dev/null @@ -1,17 +0,0 @@ - \ No newline at end of file diff --git a/themes/elegant/language/zh_HK/theme.lang.php b/themes/elegant/language/zh_HK/theme.lang.php deleted file mode 100644 index e55ea0044..000000000 --- a/themes/elegant/language/zh_HK/theme.lang.php +++ /dev/null @@ -1,17 +0,0 @@ - \ No newline at end of file diff --git a/themes/elegant/language/zh_TW/theme.lang.php b/themes/elegant/language/zh_TW/theme.lang.php deleted file mode 100644 index 9d042dea4..000000000 --- a/themes/elegant/language/zh_TW/theme.lang.php +++ /dev/null @@ -1,17 +0,0 @@ - \ No newline at end of file diff --git a/themes/elegant/local_head.tpl b/themes/elegant/local_head.tpl deleted file mode 100644 index 8c2b4045c..000000000 --- a/themes/elegant/local_head.tpl +++ /dev/null @@ -1,11 +0,0 @@ -{footer_script} - var p_main_menu = "{$elegant.p_main_menu}", p_pict_descr = "{$elegant.p_pict_descr}", p_pict_comment = "{$elegant.p_pict_comment}"; -{/footer_script} -{if $BODY_ID=='thePicturePage'} - {combine_script id='elegant.scripts_pp' load='footer' require='jquery' path='themes/elegant/scripts_pp.js'} -{else} - {combine_script id='elegant.scripts' load='footer' require='jquery' path='themes/elegant/scripts.js'} -{/if} - diff --git a/themes/elegant/screenshot.png b/themes/elegant/screenshot.png deleted file mode 100644 index 5d938d235..000000000 Binary files a/themes/elegant/screenshot.png and /dev/null differ diff --git a/themes/elegant/scripts.js b/themes/elegant/scripts.js deleted file mode 100644 index 51da49fd6..000000000 --- a/themes/elegant/scripts.js +++ /dev/null @@ -1,54 +0,0 @@ -(function() { - var session_storage = window.sessionStorage || {}; - - var menubar=jQuery("#menubar"), - menuswitcher=jQuery("#menuSwitcher"), - content=jQuery("#the_page > .content"), - pcontent=jQuery("#content"); - - function hideMenu(delay) { - menubar.hide(delay); - menuswitcher.addClass("menuhidden").removeClass("menushown"); - content.addClass("menuhidden").removeClass("menushown"); - pcontent.addClass("menuhidden").removeClass("menushown"); - session_storage['page-menu'] = 'hidden'; - } - - function showMenu(delay) { - menubar.show(delay); - menuswitcher.addClass("menushown").removeClass("menuhidden"); - content.addClass("menushown").removeClass("menuhidden"); - pcontent.addClass("menushown").removeClass("menuhidden"); - session_storage['page-menu'] = 'visible'; - } - - jQuery(function(){ - if (menubar.length == 1 && p_main_menu!="disabled") { - menuswitcher.html(' '); - - if (session_storage['page-menu'] === undefined && p_main_menu == 'off') { - session_storage['page-menu'] = 'hidden'; - } - - if (session_storage['page-menu'] == 'hidden') { - hideMenu(0); - } - else { - showMenu(0); - } - - menuswitcher.click(function(e){ - if (menubar.is(":hidden")) { - showMenu(0); - } - else { - hideMenu(0); - } - e.preventDefault(); - }); - } - else if (menubar.length == 1 && p_main_menu=="disabled") { - showMenu(0); - } - }); -}()); \ No newline at end of file diff --git a/themes/elegant/scripts_pp.js b/themes/elegant/scripts_pp.js deleted file mode 100644 index f85570d7c..000000000 --- a/themes/elegant/scripts_pp.js +++ /dev/null @@ -1,172 +0,0 @@ -(function() { - var session_storage = window.sessionStorage || {}; - - var menubar=jQuery("#menubar"), - menuswitcher, - content=jQuery("#the_page > .content"), - pcontent=jQuery("#content"), - imageInfos=jQuery("#imageInfos"), - infoswitcher, - theImage=jQuery("#theImage"), - comments=jQuery("#thePicturePage #comments"), - comments_button, - commentsswitcher, - comments_add, - comments_top_offset = 0; - - function hideMenu(delay) { - menubar.hide(delay); - menuswitcher.addClass("menuhidden").removeClass("menushown"); - content.addClass("menuhidden").removeClass("menushown"); - pcontent.addClass("menuhidden").removeClass("menushown"); - session_storage['picture-menu'] = 'hidden'; - } - - function showMenu(delay) { - menubar.show(delay); - menuswitcher.addClass("menushown").removeClass("menuhidden"); - content.addClass("menushown").removeClass("menuhidden"); - pcontent.addClass("menushown").removeClass("menuhidden"); - session_storage['picture-menu'] = 'visible'; - } - - function hideInfo(delay) { - imageInfos.hide(delay); - infoswitcher.addClass("infohidden").removeClass("infoshown"); - theImage.addClass("infohidden").removeClass("infoshown"); - session_storage['side-info'] = 'hidden'; - } - - function showInfo(delay) { - imageInfos.show(delay); - infoswitcher.addClass("infoshown").removeClass("infohidden"); - theImage.addClass("infoshown").removeClass("infohidden"); - session_storage['side-info'] = 'visible'; - } - - function commentsToggle() { - if (comments.hasClass("commentshidden")) { - comments.removeClass("commentshidden").addClass("commentsshown"); - comments_button.addClass("comments_toggle_off").removeClass("comments_toggle_on"); - session_storage['comments'] = 'visible'; - comments_top_offset = comments_add.offset().top - parseFloat(comments_add.css('marginTop').replace(/auto/, 0)); - } - else { - comments.addClass("commentshidden").removeClass("commentsshown"); - comments_button.addClass("comments_toggle_on").removeClass("comments_toggle_off"); - session_storage['comments'] = 'hidden'; - comments_top_offset = 0; - } - } - - jQuery(function(){ - // side-menu show/hide - if (menubar.length == 1 && p_main_menu!="disabled") { - menuswitcher=jQuery("#menuSwitcher"); - - menuswitcher.html(' '); - - if (session_storage['picture-menu'] === undefined && p_main_menu == 'off') { - session_storage['picture-menu'] = 'hidden'; - } - - if (session_storage['picture-menu'] == 'hidden') { - hideMenu(0); - } - else { - showMenu(0); - } - - menuswitcher.click(function(e){ - if (menubar.is(":hidden")) { - showMenu(0); - } - else { - hideMenu(0); - } - e.preventDefault(); - }); - } - - // info show/hide - if (imageInfos.length == 1 && p_pict_descr!="disabled") { - infoswitcher=jQuery("#infoSwitcher"); - - infoswitcher.html(' '); - - if (session_storage['side-info'] === undefined && p_pict_descr == 'off') { - session_storage['side-info'] = 'hidden'; - } - - if (session_storage['side-info'] == 'hidden') { - hideInfo(0); - } - else { - showInfo(0); - } - - infoswitcher.click(function(e){ - if (imageInfos.is(":hidden")) { - showInfo(0); - } - else { - hideInfo(0); - } - e.preventDefault(); - }); - } - - // comments show/hide - if (comments.length == 1 && p_pict_comment!="disabled") { - commentsswitcher=jQuery("#commentsSwitcher"); - comments_button=jQuery("#comments h3"); - comments_add=jQuery('#commentAdd'); - - commentsswitcher.html(' '); - - if (comments_button.length == 0) { - jQuery("#addComment").before("Comments"); - comments_button=jQuery("#comments h3"); - } - - if (session_storage['comments'] === undefined && p_pict_comment == 'off') { - session_storage['comments'] = 'hidden'; - } - - if (session_storage['comments'] == 'hidden') { - comments.addClass("commentshidden"); - comments_button.addClass("comments_toggle comments_toggle_on"); - } - else { - comments.addClass("commentsshown"); - comments_button.addClass("comments_toggle comments_toggle_off"); - } - - comments_button.click(commentsToggle); - commentsswitcher.click(commentsToggle); - - jQuery(window).scroll(function (event) { - if (comments_top_offset==0) return; - - var y = jQuery(this).scrollTop(); - - if (y >= comments_top_offset) { - comments_add.css({ - 'position': 'absolute', - 'top': y-comments.offset().top+10 - }); - } - else { - comments_add.css({ - 'position': 'static', - 'top': 0 - }); - } - }); - - if (comments_add.is(":visible")) { - comments_top_offset = comments_add.offset().top - parseFloat(comments_add.css('marginTop').replace(/auto/, 0)); - } - } - }); -}()); diff --git a/themes/elegant/theme.css b/themes/elegant/theme.css deleted file mode 100644 index 3fb589222..000000000 --- a/themes/elegant/theme.css +++ /dev/null @@ -1,292 +0,0 @@ -/* backgrounds */ - -html, body { background-color: #111;} - -#content, .content { background-color: #222;} -.content .titrePage { background-color: #111;} - -#menubar, #the_page #menuSwitcher.menuhidden { background-color: #222;} - -#thePicturePage, #imageHeaderBar { background-color: #111;} -#imageInfos, #infoSwitcher.infohidden { background-color: #333;} -#thePicturePage #comments { background-color: #333;} -#pictureCommentList li { background-color: #444;} - -.calendarTitle { background-color: #222;} - -.switchBox, .header_notes { background-color: #555;} -.thumbnailCategory , .commentElement { background-color: #333;} -.message { background-color: #666;} - -INPUT[type="text"], INPUT[type="password"], -INPUT[type="button"], INPUT[type="submit"], -INPUT[type="reset"], INPUT[type="file"], -SELECT, TEXTAREA, OPTION { background-color: #555;} -INPUT:focus, SELECT:focus, TEXTAREA:focus { background-color: #666;} - - -/* font colors */ - -body, legend { color: #aaa;} -a { color: #ccc;} -a:hover { color: #fff;} -INPUT.rateButton { color: #fff;} -H1, H3, INPUT.rateButtonSelected { color: #ccc;} -.message { color: #fff;} -.commentContent .comments_toggle:hover { color: #fff;} -INPUT[type="text"], INPUT[type="password"], -INPUT[type="button"], INPUT[type="submit"], -INPUT[type="reset"], INPUT[type="file"], -SELECT, TEXTAREA { color: #ccc;} -INPUT:focus, SELECT:focus, TEXTAREA:focus { color: #fff;} - - -/* borders */ - -#content,.content, .content .titrePage { border-bottom: 2px solid #444;} -#imageHeaderBar { border: solid 0 #444; border-bottom-width:2px;} -#copyright { border-top-width:2px;} -#content .calendarTitleBar { border-bottom: none;} -.calendarTitle { border-top: 2px solid #444;} -.switchBox { border: 1px solid #000;} -.switchBoxTitle { border-bottom: 1px solid #444;} -INPUT, SELECT, TEXTAREA { border: 1px solid #666;} -FIELDSET {border: 2px solid #444;} - -/* form */ -legend {font-style:normal;} -#qsearchInput {margin-left:-20px} - -/* icons */ - -.pwg-icon { background-image: url(icon/icons_sprite.png);} -A:hover .pwg-icon { background-image: url(icon/icons_sprite-hover.png);} - - -/* general rules */ - -body { margin: 5px 0;} -a:hover { border-bottom: none;} -#copyright { padding:0 4px 0 0; text-align:right;} - - -/* content */ - -#the_page #content.menushown, #the_page > .content.menushown, .contentWithMenu { margin-left: 240px;} -#the_page #content.menuhidden, #the_page > .content.menuhidden { margin-left: 35px;} -#the_page #content, #the_page > .content { margin-right: 0;} - -#content,.content { margin-bottom: 4px; padding-bottom: 4px;} -#thePicturePage #content { padding-bottom: 0;} -.content .titrePage { padding:0; margin-bottom:4px;} -.content .titrePage H2 { line-height: 20px; padding: 8px 0 0 2px;} - - -/* menubar */ - -#menubar { - display: inline; - width: 230px; - float: left; - margin: 28px 8px 10px 0; - padding: 0; -} -#menubar DT { text-align: left;} -#menubar dd { padding: 0 0 1em 1em;} -#menubar .pwg-icon-filter { display: none;} - -#quickconnect FIELDSET { - margin: 0 10px 0 -10px; - border: 2px solid #444444; -} - -/* switchers */ - -#menuSwitcher { - display: block; - text-align: center; - height: 32px; - cursor: pointer; - float: left; - margin: 28px 0 0 -34px; -} - - -#imageInfos, #infoSwitcher.infohidden { border-radius: 10px 0 0 10px;} -#menubar, #the_page #menuSwitcher.menuhidden { border-radius: 0 10px 10px 0;} -#the_page #menuSwitcher.menuhidden { width: 25px; margin-left: 0;} - -#infoSwitcher { - display: block; - text-align: center; - height: 32px; - cursor: pointer; - position:absolute; - left:75%; - top:0; - margin: 10px 0 0 7px; - z-index:99; -} - -#infoSwitcher.infohidden { - width:25px; - top:10px; - right:0; - left:auto; - margin:0; -} - -#slideshow #theImage { width: 100%; margin: auto; overflow: visible;} -#theImage.infohidden { width: 100%;} - -#commentsSwitcher { float: left; margin: 2px 0; cursor:pointer;} -.noCommentContent #commentsSwitcher { display: none;} - -.switchArrow { width: 16px; height: 16px; margin: 8px 5px 8px 4px;} -.switchArrow { background: transparent url("icon/arrows_ccc.png");} -.switchArrow:hover { background: transparent url("icon/arrows_fff.png");} -.menuhidden .switchArrow { background-position: 0 0;} -.menushown .switchArrow { background-position: -16px 0;} -.infohidden .switchArrow { background-position: -16px 0;} -.infoshown .switchArrow { background-position: 0 0;} -.commentshidden .switchArrow { background-position: -48px 0;} -.commentsshown .switchArrow { background-position: -32px 0;} - - -/* switchboxes */ - -.switchBox { - border-radius: 4px 4px 4px 4px; - padding: 0.5em 10px; - text-align: left; - z-index: 100; -} -.derivativeSizeDetails { display: none;} - -/* thumbnails */ - -#thumbnails { padding-top: 5px;} -.thumbnailCategory .illustration, -.commentElement .illustration { margin: 2px; text-align: center;} - - -/* picture page */ - -.contentWithMenu #imageHeaderBar { padding: 0;} -#imageHeaderBar { padding: 0 0 0 10px;} -#imageHeaderBar { width: auto;} -#imageHeaderBar h2 { font-size: 100%; font-weight: inherit;} -#imageHeaderBar .browsePath { - display:inline-block; - float:left; - font-size:120%; - line-height:20px; - padding: 8px 0 0 2px; - font-weight:bold; - margin:0; -} -#imageToolBar .imageNumber { display: inline-block; float: right; line-height: 26px; margin: 0 2px 0 0; min-width: 40px; text-align: center;} -#imageToolBar { margin-top: -28px; margin-bottom: 0; float: right;} -#thePicturePage .pwg-button { width: 26px;} -#thePicturePage .actionButtons { margin-right: 26px;} - -#theImageAndInfos { - display: block; - width: 100%; - position: relative; -} -#theImage { - display: inline-block; - width: 75%; - vertical-align: top; - overflow: auto; - padding: 10px 0 5px 0; -} - -.rateButtonStarFull { background: url('icon/rating-stars.png') no-repeat -16px center; width:16px;} -.rateButtonStarEmpty { background: url('icon/rating-stars.png') no-repeat 0 center; width:16px;} - - -/* image infos */ - -#imageInfos { - display: inline-block; - width: 24.5%; - vertical-align: top; - padding-top: 35px; - padding-bottom: 5px; - margin: 10px 0 10px 0.5%; - word-wrap:break-word; -} - -#imageInfos .navThumbs { width: 250px; height: 130px; margin: auto; padding: 0 5px;} -#imageInfos .navThumb { position: relative; margin: 0; overflow: hidden;} -#imageInfos #linkPrev { float: left;} -#imageInfos #linkNext { float: right;} -#imageInfos .prevThumbHover { background: transparent url(icon/none.png) no-repeat center center;} -#imageInfos .prevThumbHover:hover { background: transparent url(icon/img_prev.png) no-repeat center center;} -#imageInfos .nextThumbHover { background: transparent url(icon/none.png) no-repeat center center;} -#imageInfos .nextThumbHover:hover { background: transparent url(icon/img_next.png) no-repeat center center;} - -#imageInfos dl.imageInfoTable { display: block; padding: 0 15px; margin: 12px auto;} -#imageInfos .imageInfo { display: block; line-height: 16px;} -#imageInfos .imageInfo dt { display: block; font-weight: bold; text-align: left; padding: 0;} -#imageInfos .imageInfo dd { display: block; text-align: left; margin: 0 0 5px 20px;} -#imageInfos h3 { margin: 20px 0 10px;} - - -/* image comments */ - -#thePicturePage #comments { padding: 2px 5px; position:relative;} -#thePicturePage #comments h3 { margin: 10px 0;} -#thePicturePage #comments form { margin: 10px 0;} -#thePicturePage #comments fieldset { margin: 0 1em;} - -.commentshidden #pictureComments { display: none;} -.commentContent .comments_toggle { cursor: pointer;} - -#commentAdd, #pictureCommentList { width: 48%; padding: 0 1%;} -#commentAdd { float: left; } -#pictureCommentList { float: right; } - -#commentAdd input[type="text"], -#commentAdd textarea { - width: 95%; - font-family: Arial,Helvetica,sans-serif; - font-size: 100%; -} -#pictureCommentList .commentsOrder { float: left; margin-bottom: 5px;} -#pictureCommentList .navigationBar { float: right; margin-bottom: 5px;} -#pictureComments h4 { margin: 0;} -#pictureComments form p { margin: 5px 0;} -#pictureComments form p textarea { margin: 10px 0;} -#pictureComments INPUT { margin: 10px;} -#pictureComments INPUT[type=submit] { margin: 0;} -.commentElement .description { padding: 5px;} - -/* tag page */ - -FIELDSET.tagLetter, LEGEND.tagLetterLegend, TR.tagLine { - border-color: #333; -} - -FIELDSET.tagLetter { - width:250px; -} - -TABLE.tagLetterContent { - font-size:inherit; -} - -TD.nbEntries { - white-space: nowrap; -} - -/* calendar */ - -.calendarViews { margin-top: 4px;} - -/* plugins */ - -#the_page .content .stuffs { margin: 0!important} -.categoryActions .theme_menuf { display: none;} diff --git a/themes/elegant/themeconf.inc.php b/themes/elegant/themeconf.inc.php deleted file mode 100644 index 5ff8842eb..000000000 --- a/themes/elegant/themeconf.inc.php +++ /dev/null @@ -1,27 +0,0 @@ - 'elegant', - 'parent' => 'default', - 'local_head' => 'local_head.tpl' -); -// Need upgrade? -global $conf; -include(PHPWG_THEMES_PATH.'elegant/admin/upgrade.inc.php'); - -add_event_handler('init', 'set_config_values_elegant'); -function set_config_values_elegant() -{ - global $conf, $template; - $config = unserialize( $conf['elegant'] ); - $template->assign( 'elegant', $config ); -} - -?> diff --git a/themes/smartpocket/admin/admin.inc.php b/themes/smartpocket/admin/admin.inc.php deleted file mode 100644 index 6b2069837..000000000 --- a/themes/smartpocket/admin/admin.inc.php +++ /dev/null @@ -1,28 +0,0 @@ -set_filenames(array( - 'theme_admin_content' => dirname(__FILE__) . '/admin.tpl')); - -$template->assign('options', safe_unserialize($conf['smartpocket'])); - -$template->assign_var_from_handle('ADMIN_CONTENT', 'theme_admin_content'); - -?> \ No newline at end of file diff --git a/themes/smartpocket/admin/admin.tpl b/themes/smartpocket/admin/admin.tpl deleted file mode 100644 index baf6d47fe..000000000 --- a/themes/smartpocket/admin/admin.tpl +++ /dev/null @@ -1,47 +0,0 @@ -{html_style} -.graphicalCheckbox { - font-size:16px; - line-height:16px; -} - -input[type=checkbox] { - display:none; -} -{/html_style} - -{footer_script}{literal} -jQuery(document).ready(function() { - jQuery('form li label input[type=checkbox]').change(function() { - jQuery(this).prev().toggleClass('icon-check icon-check-empty'); - }); -}); -{/literal}{/footer_script} - - - {'Smartpocket, Configuration Page'|@translate} - - - - - {'Slideshow Options'|@translate} - - - - {'Loop the slideshow'|@translate} - - - - - - {'Autohide the bar of the slideshow'|@translate} - - - - - - - - - - - diff --git a/themes/smartpocket/admin/index.php b/themes/smartpocket/admin/index.php deleted file mode 100644 index c01bbd832..000000000 --- a/themes/smartpocket/admin/index.php +++ /dev/null @@ -1,15 +0,0 @@ - diff --git a/themes/smartpocket/admin/maintain.inc.php b/themes/smartpocket/admin/maintain.inc.php deleted file mode 100644 index 92fe7b1e3..000000000 --- a/themes/smartpocket/admin/maintain.inc.php +++ /dev/null @@ -1,43 +0,0 @@ - true,//true - false - 'autohide' => 5000,//5000 - 0 - ); - - function activate($theme_version, &$errors=array()) - { - global $conf, $prefixeTable; - - if (empty($conf['smartpocket'])) - { - conf_update_param('smartpocket', $this->default_conf, true); - } - elseif (count(safe_unserialize($conf['smartpocket'])) != 2) - { - $conff = safe_unserialize($conf['smartpocket']); - - $config = array( - 'loop' => (!empty($conff['loop'])) ? $conff['loop'] :true, - 'autohide' => (!empty($conff['autohide'])) ? $conff['autohide'] :5000, - ); - - conf_update_param('smartpocket', $config, true); - } - $this->installed = true; - } - - function deactivate() - { - } - - function delete() - { - // delete configuration - conf_delete_param('smartpocket'); - } -} -?> \ No newline at end of file diff --git a/themes/smartpocket/admin/upgrade.inc.php b/themes/smartpocket/admin/upgrade.inc.php deleted file mode 100644 index 53e4e1aae..000000000 --- a/themes/smartpocket/admin/upgrade.inc.php +++ /dev/null @@ -1,25 +0,0 @@ - true,//true - false - 'autohide' => 5000,//5000 - 0 - ); - - conf_update_param('smartpocket', $config, true); -} -elseif (count(safe_unserialize($conf['smartpocket'])) != 2) -{ - $conff = safe_unserialize($conf['smartpocket']); - $config = array( - 'loop' => (!empty($conff['loop'])) ? $conff['loop'] :true, - 'autohide' => (!empty($conff['autohide'])) ? $conff['autohide'] :5000, - ); - conf_update_param('smartpocket', $config, true); -} -?> \ No newline at end of file diff --git a/themes/smartpocket/images/ajax-loader.gif b/themes/smartpocket/images/ajax-loader.gif deleted file mode 100644 index fd1a189c2..000000000 Binary files a/themes/smartpocket/images/ajax-loader.gif and /dev/null differ diff --git a/themes/smartpocket/images/ajax-loader.png b/themes/smartpocket/images/ajax-loader.png deleted file mode 100644 index 0973ae040..000000000 Binary files a/themes/smartpocket/images/ajax-loader.png and /dev/null differ diff --git a/themes/smartpocket/images/error.gif b/themes/smartpocket/images/error.gif deleted file mode 100644 index 6a96f4d61..000000000 Binary files a/themes/smartpocket/images/error.gif and /dev/null differ diff --git a/themes/smartpocket/images/icons-18-black.png b/themes/smartpocket/images/icons-18-black.png deleted file mode 100644 index 791646384..000000000 Binary files a/themes/smartpocket/images/icons-18-black.png and /dev/null differ diff --git a/themes/smartpocket/images/icons-18-white.png b/themes/smartpocket/images/icons-18-white.png deleted file mode 100644 index 3419b81f6..000000000 Binary files a/themes/smartpocket/images/icons-18-white.png and /dev/null differ diff --git a/themes/smartpocket/images/icons-36-black.png b/themes/smartpocket/images/icons-36-black.png deleted file mode 100644 index 043bfcd52..000000000 Binary files a/themes/smartpocket/images/icons-36-black.png and /dev/null differ diff --git a/themes/smartpocket/images/icons-36-white.png b/themes/smartpocket/images/icons-36-white.png deleted file mode 100644 index 12455c907..000000000 Binary files a/themes/smartpocket/images/icons-36-white.png and /dev/null differ diff --git a/themes/smartpocket/images/icons.png b/themes/smartpocket/images/icons.png deleted file mode 100644 index c4011d1d0..000000000 Binary files a/themes/smartpocket/images/icons.png and /dev/null differ diff --git a/themes/smartpocket/images/icons@2x.png b/themes/smartpocket/images/icons@2x.png deleted file mode 100644 index 87b63455d..000000000 Binary files a/themes/smartpocket/images/icons@2x.png and /dev/null differ diff --git a/themes/smartpocket/images/loader.gif b/themes/smartpocket/images/loader.gif deleted file mode 100644 index c95d05a05..000000000 Binary files a/themes/smartpocket/images/loader.gif and /dev/null differ diff --git a/themes/smartpocket/jquery.mobile.css b/themes/smartpocket/jquery.mobile.css deleted file mode 100644 index 422d175b7..000000000 --- a/themes/smartpocket/jquery.mobile.css +++ /dev/null @@ -1,3366 +0,0 @@ -/* -* jQuery Mobile 1.3.1 -* Git HEAD hash: 74b4bec049fd93e4fe40205e6157de16eb64eb46 <> Date: Mon Apr 8 2013 19:41:28 UTC -* http://jquerymobile.com -* -* Copyright 2010, 2013 jQuery Foundation, Inc. and other contributors -* Released under the MIT license. -* http://jquery.org/license -* -*/ - - -/* Swatches */ -/* A ------------------------------------------------------------------------------------------------------------*/ -.ui-bar-a { - border: 1px solid #333 /*{a-bar-border}*/; - background: #111 /*{a-bar-background-color}*/; - color: #fff /*{a-bar-color}*/; - font-weight: bold; - text-shadow: 0 /*{a-bar-shadow-x}*/ -1px /*{a-bar-shadow-y}*/ 0 /*{a-bar-shadow-radius}*/ #000 /*{a-bar-shadow-color}*/; - background-image: -webkit-gradient(linear, left top, left bottom, from( #3c3c3c /*{a-bar-background-start}*/), to( #111 /*{a-bar-background-end}*/)); /* Saf4+, Chrome */ - background-image: -webkit-linear-gradient( #3c3c3c /*{a-bar-background-start}*/, #111 /*{a-bar-background-end}*/); /* Chrome 10+, Saf5.1+ */ - background-image: -moz-linear-gradient( #3c3c3c /*{a-bar-background-start}*/, #111 /*{a-bar-background-end}*/); /* FF3.6 */ - background-image: -ms-linear-gradient( #3c3c3c /*{a-bar-background-start}*/, #111 /*{a-bar-background-end}*/); /* IE10 */ - background-image: -o-linear-gradient( #3c3c3c /*{a-bar-background-start}*/, #111 /*{a-bar-background-end}*/); /* Opera 11.10+ */ - background-image: linear-gradient( #3c3c3c /*{a-bar-background-start}*/, #111 /*{a-bar-background-end}*/); -} -.ui-bar-a, -.ui-bar-a input, -.ui-bar-a select, -.ui-bar-a textarea, -.ui-bar-a button { - font-family: Helvetica, Arial, sans-serif /*{global-font-family}*/; -} -.ui-bar-a .ui-link-inherit { - color: #fff /*{a-bar-color}*/; -} -.ui-bar-a a.ui-link { - color: #7cc4e7 /*{a-bar-link-color}*/; - font-weight: bold; -} -.ui-bar-a a.ui-link:visited { - color: #2489ce /*{a-bar-link-visited}*/; -} -.ui-bar-a a.ui-link:hover { - color: #2489ce /*{a-bar-link-hover}*/; -} -.ui-bar-a a.ui-link:active { - color: #2489ce /*{a-bar-link-active}*/; -} -.ui-body-a, -.ui-overlay-a { - border: 1px solid #444 /*{a-body-border}*/; - background: #222 /*{a-body-background-color}*/; - color: #fff /*{a-body-color}*/; - text-shadow: 0 /*{a-body-shadow-x}*/ 1px /*{a-body-shadow-y}*/ 0 /*{a-body-shadow-radius}*/ #111 /*{a-body-shadow-color}*/; - font-weight: normal; - background-image: -webkit-gradient(linear, left top, left bottom, from( #444 /*{a-body-background-start}*/), to( #222 /*{a-body-background-end}*/)); /* Saf4+, Chrome */ - background-image: -webkit-linear-gradient( #444 /*{a-body-background-start}*/, #222 /*{a-body-background-end}*/); /* Chrome 10+, Saf5.1+ */ - background-image: -moz-linear-gradient( #444 /*{a-body-background-start}*/, #222 /*{a-body-background-end}*/); /* FF3.6 */ - background-image: -ms-linear-gradient( #444 /*{a-body-background-start}*/, #222 /*{a-body-background-end}*/); /* IE10 */ - background-image: -o-linear-gradient( #444 /*{a-body-background-start}*/, #222 /*{a-body-background-end}*/); /* Opera 11.10+ */ - background-image: linear-gradient( #444 /*{a-body-background-start}*/, #222 /*{a-body-background-end}*/); -} -.ui-overlay-a { - background-image: none; - border-width: 0; -} -.ui-body-a, -.ui-body-a input, -.ui-body-a select, -.ui-body-a textarea, -.ui-body-a button { - font-family: Helvetica, Arial, sans-serif /*{global-font-family}*/; -} -.ui-body-a .ui-link-inherit { - color: #fff /*{a-body-color}*/; -} -.ui-body-a .ui-link { - color: #2489ce /*{a-body-link-color}*/; - font-weight: bold; -} -.ui-body-a .ui-link:visited { - color: #2489ce /*{a-body-link-visited}*/; -} -.ui-body-a .ui-link:hover { - color: #2489ce /*{a-body-link-hover}*/; -} -.ui-body-a .ui-link:active { - color: #2489ce /*{a-body-link-active}*/; -} -.ui-btn-up-a { - border: 1px solid #111 /*{a-bup-border}*/; - background: #333 /*{a-bup-background-color}*/; - font-weight: bold; - color: #fff /*{a-bup-color}*/; - text-shadow: 0 /*{a-bup-shadow-x}*/ 1px /*{a-bup-shadow-y}*/ 0 /*{a-bup-shadow-radius}*/ #111 /*{a-bup-shadow-color}*/; - background-image: -webkit-gradient(linear, left top, left bottom, from( #444 /*{a-bup-background-start}*/), to( #2d2d2d /*{a-bup-background-end}*/)); /* Saf4+, Chrome */ - background-image: -webkit-linear-gradient( #444 /*{a-bup-background-start}*/, #2d2d2d /*{a-bup-background-end}*/); /* Chrome 10+, Saf5.1+ */ - background-image: -moz-linear-gradient( #444 /*{a-bup-background-start}*/, #2d2d2d /*{a-bup-background-end}*/); /* FF3.6 */ - background-image: -ms-linear-gradient( #444 /*{a-bup-background-start}*/, #2d2d2d /*{a-bup-background-end}*/); /* IE10 */ - background-image: -o-linear-gradient( #444 /*{a-bup-background-start}*/, #2d2d2d /*{a-bup-background-end}*/); /* Opera 11.10+ */ - background-image: linear-gradient( #444 /*{a-bup-background-start}*/, #2d2d2d /*{a-bup-background-end}*/); -} -.ui-btn-up-a:visited, -.ui-btn-up-a a.ui-link-inherit { - color: #fff /*{a-bup-color}*/; -} -.ui-btn-hover-a { - border: 1px solid #000 /*{a-bhover-border}*/; - background: #444 /*{a-bhover-background-color}*/; - font-weight: bold; - color: #fff /*{a-bhover-color}*/; - text-shadow: 0 /*{a-bhover-shadow-x}*/ 1px /*{a-bhover-shadow-y}*/ 0 /*{a-bhover-shadow-radius}*/ #111 /*{a-bhover-shadow-color}*/; - background-image: -webkit-gradient(linear, left top, left bottom, from( #555 /*{a-bhover-background-start}*/), to( #383838 /*{a-bhover-background-end}*/)); /* Saf4+, Chrome */ - background-image: -webkit-linear-gradient( #555 /*{a-bhover-background-start}*/, #383838 /*{a-bhover-background-end}*/); /* Chrome 10+, Saf5.1+ */ - background-image: -moz-linear-gradient( #555 /*{a-bhover-background-start}*/, #383838 /*{a-bhover-background-end}*/); /* FF3.6 */ - background-image: -ms-linear-gradient( #555 /*{a-bhover-background-start}*/, #383838 /*{a-bhover-background-end}*/); /* IE10 */ - background-image: -o-linear-gradient( #555 /*{a-bhover-background-start}*/, #383838 /*{a-bhover-background-end}*/); /* Opera 11.10+ */ - background-image: linear-gradient( #555 /*{a-bhover-background-start}*/, #383838 /*{a-bhover-background-end}*/); -} -.ui-btn-hover-a:visited, -.ui-btn-hover-a:hover, -.ui-btn-hover-a a.ui-link-inherit { - color: #fff /*{a-bhover-color}*/; -} -.ui-btn-down-a { - border: 1px solid #000 /*{a-bdown-border}*/; - background: #222 /*{a-bdown-background-color}*/; - font-weight: bold; - color: #fff /*{a-bdown-color}*/; - text-shadow: 0 /*{a-bdown-shadow-x}*/ 1px /*{a-bdown-shadow-y}*/ 0 /*{a-bdown-shadow-radius}*/ #111 /*{a-bdown-shadow-color}*/; - background-image: -webkit-gradient(linear, left top, left bottom, from( #202020 /*{a-bdown-background-start}*/), to( #2c2c2c /*{a-bdown-background-end}*/)); /* Saf4+, Chrome */ - background-image: -webkit-linear-gradient( #202020 /*{a-bdown-background-start}*/, #2c2c2c /*{a-bdown-background-end}*/); /* Chrome 10+, Saf5.1+ */ - background-image: -moz-linear-gradient( #202020 /*{a-bdown-background-start}*/, #2c2c2c /*{a-bdown-background-end}*/); /* FF3.6 */ - background-image: -ms-linear-gradient( #202020 /*{a-bdown-background-start}*/, #2c2c2c /*{a-bdown-background-end}*/); /* IE10 */ - background-image: -o-linear-gradient( #202020 /*{a-bdown-background-start}*/, #2c2c2c /*{a-bdown-background-end}*/); /* Opera 11.10+ */ - background-image: linear-gradient( #202020 /*{a-bdown-background-start}*/, #2c2c2c /*{a-bdown-background-end}*/); -} -.ui-btn-down-a:visited, -.ui-btn-down-a:hover, -.ui-btn-down-a a.ui-link-inherit { - color: #fff /*{a-bdown-color}*/; -} -.ui-btn-up-a, -.ui-btn-hover-a, -.ui-btn-down-a { - font-family: Helvetica, Arial, sans-serif /*{global-font-family}*/; - text-decoration: none; -} -/* B ------------------------------------------------------------------------------------------------------------*/ -.ui-bar-b { - border: 1px solid #456f9a /*{b-bar-border}*/; - background: #5e87b0 /*{b-bar-background-color}*/; - color: #fff /*{b-bar-color}*/; - font-weight: bold; - text-shadow: 0 /*{b-bar-shadow-x}*/ 1px /*{b-bar-shadow-y}*/ 0 /*{b-bar-shadow-radius}*/ #3e6790 /*{b-bar-shadow-color}*/; - background-image: -webkit-gradient(linear, left top, left bottom, from( #6facd5 /*{b-bar-background-start}*/), to( #497bae /*{b-bar-background-end}*/)); /* Saf4+, Chrome */ - background-image: -webkit-linear-gradient( #6facd5 /*{b-bar-background-start}*/, #497bae /*{b-bar-background-end}*/); /* Chrome 10+, Saf5.1+ */ - background-image: -moz-linear-gradient( #6facd5 /*{b-bar-background-start}*/, #497bae /*{b-bar-background-end}*/); /* FF3.6 */ - background-image: -ms-linear-gradient( #6facd5 /*{b-bar-background-start}*/, #497bae /*{b-bar-background-end}*/); /* IE10 */ - background-image: -o-linear-gradient( #6facd5 /*{b-bar-background-start}*/, #497bae /*{b-bar-background-end}*/); /* Opera 11.10+ */ - background-image: linear-gradient( #6facd5 /*{b-bar-background-start}*/, #497bae /*{b-bar-background-end}*/); -} -.ui-bar-b, -.ui-bar-b input, -.ui-bar-b select, -.ui-bar-b textarea, -.ui-bar-b button { - font-family: Helvetica, Arial, sans-serif /*{global-font-family}*/; -} -.ui-bar-b .ui-link-inherit { - color: #fff /*{b-bar-color}*/; -} -.ui-bar-b a.ui-link { - color: #ddf0f8 /*{b-bar-link-color}*/; - font-weight: bold; -} -.ui-bar-b a.ui-link:visited { - color: #ddf0f8 /*{b-bar-link-visited}*/; -} -.ui-bar-b a.ui-link:hover { - color: #ddf0f8 /*{b-bar-link-hover}*/; -} -.ui-bar-b a.ui-link:active { - color: #ddf0f8 /*{b-bar-link-active}*/; -} -.ui-body-b, -.ui-overlay-b { - border: 1px solid #999 /*{b-body-border}*/; - background: #f3f3f3 /*{b-body-background-color}*/; - color: #222 /*{b-body-color}*/; - text-shadow: 0 /*{b-body-shadow-x}*/ 1px /*{b-body-shadow-y}*/ 0 /*{b-body-shadow-radius}*/ #fff /*{b-body-shadow-color}*/; - font-weight: normal; - background-image: -webkit-gradient(linear, left top, left bottom, from( #ddd /*{b-body-background-start}*/), to( #ccc /*{b-body-background-end}*/)); /* Saf4+, Chrome */ - background-image: -webkit-linear-gradient( #ddd /*{b-body-background-start}*/, #ccc /*{b-body-background-end}*/); /* Chrome 10+, Saf5.1+ */ - background-image: -moz-linear-gradient( #ddd /*{b-body-background-start}*/, #ccc /*{b-body-background-end}*/); /* FF3.6 */ - background-image: -ms-linear-gradient( #ddd /*{b-body-background-start}*/, #ccc /*{b-body-background-end}*/); /* IE10 */ - background-image: -o-linear-gradient( #ddd /*{b-body-background-start}*/, #ccc /*{b-body-background-end}*/); /* Opera 11.10+ */ - background-image: linear-gradient( #ddd /*{b-body-background-start}*/, #ccc /*{b-body-background-end}*/); -} -.ui-overlay-b { - background-image: none; - border-width: 0; -} -.ui-body-b, -.ui-body-b input, -.ui-body-b select, -.ui-body-b textarea, -.ui-body-b button { - font-family: Helvetica, Arial, sans-serif /*{global-font-family}*/; -} -.ui-body-b .ui-link-inherit { - color: #333 /*{b-body-color}*/; -} -.ui-body-b .ui-link { - color: #2489ce /*{b-body-link-color}*/; - font-weight: bold; -} -.ui-body-b .ui-link:visited { - color: #2489ce /*{b-body-link-visited}*/; -} -.ui-body-b .ui-link:hover { - color: #2489ce /*{b-body-link-hover}*/; -} -.ui-body-b .ui-link:active { - color: #2489ce /*{b-body-link-active}*/; -} -.ui-btn-up-b { - border: 1px solid #044062 /*{b-bup-border}*/; - background: #396b9e /*{b-bup-background-color}*/; - font-weight: bold; - color: #fff /*{b-bup-color}*/; - text-shadow: 0 /*{b-bup-shadow-x}*/ 1px /*{b-bup-shadow-y}*/ 0 /*{b-bup-shadow-radius}*/ #194b7e /*{b-bup-shadow-color}*/; - background-image: -webkit-gradient(linear, left top, left bottom, from( #5f9cc5 /*{b-bup-background-start}*/), to( #396b9e /*{b-bup-background-end}*/)); /* Saf4+, Chrome */ - background-image: -webkit-linear-gradient( #5f9cc5 /*{b-bup-background-start}*/, #396b9e /*{b-bup-background-end}*/); /* Chrome 10+, Saf5.1+ */ - background-image: -moz-linear-gradient( #5f9cc5 /*{b-bup-background-start}*/, #396b9e /*{b-bup-background-end}*/); /* FF3.6 */ - background-image: -ms-linear-gradient( #5f9cc5 /*{b-bup-background-start}*/, #396b9e /*{b-bup-background-end}*/); /* IE10 */ - background-image: -o-linear-gradient( #5f9cc5 /*{b-bup-background-start}*/, #396b9e /*{b-bup-background-end}*/); /* Opera 11.10+ */ - background-image: linear-gradient( #5f9cc5 /*{b-bup-background-start}*/, #396b9e /*{b-bup-background-end}*/); -} -.ui-btn-up-b:visited, -.ui-btn-up-b a.ui-link-inherit { - color: #fff /*{b-bup-color}*/; -} -.ui-btn-hover-b { - border: 1px solid #00415e /*{b-bhover-border}*/; - background: #4b88b6 /*{b-bhover-background-color}*/; - font-weight: bold; - color: #fff /*{b-bhover-color}*/; - text-shadow: 0 /*{b-bhover-shadow-x}*/ 1px /*{b-bhover-shadow-y}*/ 0 /*{b-bhover-shadow-radius}*/ #194b7e /*{b-bhover-shadow-color}*/; - background-image: -webkit-gradient(linear, left top, left bottom, from( #6facd5 /*{b-bhover-background-start}*/), to( #4272a4 /*{b-bhover-background-end}*/)); /* Saf4+, Chrome */ - background-image: -webkit-linear-gradient( #6facd5 /*{b-bhover-background-start}*/, #4272a4 /*{b-bhover-background-end}*/); /* Chrome 10+, Saf5.1+ */ - background-image: -moz-linear-gradient( #6facd5 /*{b-bhover-background-start}*/, #4272a4 /*{b-bhover-background-end}*/); /* FF3.6 */ - background-image: -ms-linear-gradient( #6facd5 /*{b-bhover-background-start}*/, #4272a4 /*{b-bhover-background-end}*/); /* IE10 */ - background-image: -o-linear-gradient( #6facd5 /*{b-bhover-background-start}*/, #4272a4 /*{b-bhover-background-end}*/); /* Opera 11.10+ */ - background-image: linear-gradient( #6facd5 /*{b-bhover-background-start}*/, #4272a4 /*{b-bhover-background-end}*/); -} -.ui-btn-hover-b:visited, -.ui-btn-hover-b:hover, -.ui-btn-hover-b a.ui-link-inherit { - color: #fff /*{b-bhover-color}*/; -} -.ui-btn-down-b { - border: 1px solid #225377 /*{b-bdown-border}*/; - background: #4e89c5 /*{b-bdown-background-color}*/; - font-weight: bold; - color: #fff /*{b-bdown-color}*/; - text-shadow: 0 /*{b-bdown-shadow-x}*/ 1px /*{b-bdown-shadow-y}*/ 0 /*{b-bdown-shadow-radius}*/ #194b7e /*{b-bdown-shadow-color}*/; - background-image: -webkit-gradient(linear, left top, left bottom, from( #295b8e /*{b-bdown-background-start}*/), to( #3e79b5 /*{b-bdown-background-end}*/)); /* Saf4+, Chrome */ - background-image: -webkit-linear-gradient( #295b8e /*{b-bdown-background-start}*/, #3e79b5 /*{b-bdown-background-end}*/); /* Chrome 10+, Saf5.1+ */ - background-image: -moz-linear-gradient( #295b8e /*{b-bdown-background-start}*/, #3e79b5 /*{b-bdown-background-end}*/); /* FF3.6 */ - background-image: -ms-linear-gradient( #295b8e /*{b-bdown-background-start}*/, #3e79b5 /*{b-bdown-background-end}*/); /* IE10 */ - background-image: -o-linear-gradient( #295b8e /*{b-bdown-background-start}*/, #3e79b5 /*{b-bdown-background-end}*/); /* Opera 11.10+ */ - background-image: linear-gradient( #295b8e /*{b-bdown-background-start}*/, #3e79b5 /*{b-bdown-background-end}*/); -} -.ui-btn-down-b:visited, -.ui-btn-down-b:hover, -.ui-btn-down-b a.ui-link-inherit { - color: #fff /*{b-bdown-color}*/; -} -.ui-btn-up-b, -.ui-btn-hover-b, -.ui-btn-down-b { - font-family: Helvetica, Arial, sans-serif /*{global-font-family}*/; - text-decoration: none; -} -/* C ------------------------------------------------------------------------------------------------------------*/ -.ui-bar-c { - border: 1px solid #b3b3b3 /*{c-bar-border}*/; - background: #eee /*{c-bar-background-color}*/; - color: #3e3e3e /*{c-bar-color}*/; - font-weight: bold; - text-shadow: 0 /*{c-bar-shadow-x}*/ 1px /*{c-bar-shadow-y}*/ 0 /*{c-bar-shadow-radius}*/ #fff /*{c-bar-shadow-color}*/; - background-image: -webkit-gradient(linear, left top, left bottom, from( #f0f0f0 /*{c-bar-background-start}*/), to( #ddd /*{c-bar-background-end}*/)); /* Saf4+, Chrome */ - background-image: -webkit-linear-gradient( #f0f0f0 /*{c-bar-background-start}*/, #ddd /*{c-bar-background-end}*/); /* Chrome 10+, Saf5.1+ */ - background-image: -moz-linear-gradient( #f0f0f0 /*{c-bar-background-start}*/, #ddd /*{c-bar-background-end}*/); /* FF3.6 */ - background-image: -ms-linear-gradient( #f0f0f0 /*{c-bar-background-start}*/, #ddd /*{c-bar-background-end}*/); /* IE10 */ - background-image: -o-linear-gradient( #f0f0f0 /*{c-bar-background-start}*/, #ddd /*{c-bar-background-end}*/); /* Opera 11.10+ */ - background-image: linear-gradient( #f0f0f0 /*{c-bar-background-start}*/, #ddd /*{c-bar-background-end}*/); -} -.ui-bar-c .ui-link-inherit { - color: #3e3e3e /*{c-bar-color}*/; -} -.ui-bar-c a.ui-link { - color: #7cc4e7 /*{c-bar-link-color}*/; - font-weight: bold; -} -.ui-bar-c a.ui-link:visited { - color: #2489ce /*{c-bar-link-visited}*/; -} -.ui-bar-c a.ui-link:hover { - color: #2489ce /*{c-bar-link-hover}*/; -} -.ui-bar-c a.ui-link:active { - color: #2489ce /*{c-bar-link-active}*/; -} -.ui-bar-c, -.ui-bar-c input, -.ui-bar-c select, -.ui-bar-c textarea, -.ui-bar-c button { - font-family: Helvetica, Arial, sans-serif /*{global-font-family}*/; -} -.ui-body-c, -.ui-overlay-c { - border: 1px solid #aaa /*{c-body-border}*/; - color: #333 /*{c-body-color}*/; - text-shadow: 0 /*{c-body-shadow-x}*/ 1px /*{c-body-shadow-y}*/ 0 /*{c-body-shadow-radius}*/ #fff /*{c-body-shadow-color}*/; - background: #f9f9f9 /*{c-body-background-color}*/; - background-image: -webkit-gradient(linear, left top, left bottom, from( #f9f9f9 /*{c-body-background-start}*/), to( #eee /*{c-body-background-end}*/)); /* Saf4+, Chrome */ - background-image: -webkit-linear-gradient( #f9f9f9 /*{c-body-background-start}*/, #eee /*{c-body-background-end}*/); /* Chrome 10+, Saf5.1+ */ - background-image: -moz-linear-gradient( #f9f9f9 /*{c-body-background-start}*/, #eee /*{c-body-background-end}*/); /* FF3.6 */ - background-image: -ms-linear-gradient( #f9f9f9 /*{c-body-background-start}*/, #eee /*{c-body-background-end}*/); /* IE10 */ - background-image: -o-linear-gradient( #f9f9f9 /*{c-body-background-start}*/, #eee /*{c-body-background-end}*/); /* Opera 11.10+ */ - background-image: linear-gradient( #f9f9f9 /*{c-body-background-start}*/, #eee /*{c-body-background-end}*/); -} -.ui-overlay-c { - background-image: none; - border-width: 0; -} -.ui-body-c, -.ui-body-c input, -.ui-body-c select, -.ui-body-c textarea, -.ui-body-c button { - font-family: Helvetica, Arial, sans-serif /*{global-font-family}*/; -} -.ui-body-c .ui-link-inherit { - color: #333 /*{c-body-color}*/; -} -.ui-body-c .ui-link { - color: #2489ce /*{c-body-link-color}*/; - font-weight: bold; -} -.ui-body-c .ui-link:visited { - color: #2489ce /*{c-body-link-visited}*/; -} -.ui-body-c .ui-link:hover { - color: #2489ce /*{c-body-link-hover}*/; -} -.ui-body-c .ui-link:active { - color: #2489ce /*{c-body-link-active}*/; -} -.ui-btn-up-c { - border: 1px solid #ccc /*{c-bup-border}*/; - background: #eee /*{c-bup-background-color}*/; - font-weight: bold; - color: #222 /*{c-bup-color}*/; - text-shadow: 0 /*{c-bup-shadow-x}*/ 1px /*{c-bup-shadow-y}*/ 0 /*{c-bup-shadow-radius}*/ #fff /*{c-bup-shadow-color}*/; - background-image: -webkit-gradient(linear, left top, left bottom, from( #fff /*{c-bup-background-start}*/), to( #f1f1f1 /*{c-bup-background-end}*/)); /* Saf4+, Chrome */ - background-image: -webkit-linear-gradient( #fff /*{c-bup-background-start}*/, #f1f1f1 /*{c-bup-background-end}*/); /* Chrome 10+, Saf5.1+ */ - background-image: -moz-linear-gradient( #fff /*{c-bup-background-start}*/, #f1f1f1 /*{c-bup-background-end}*/); /* FF3.6 */ - background-image: -ms-linear-gradient( #fff /*{c-bup-background-start}*/, #f1f1f1 /*{c-bup-background-end}*/); /* IE10 */ - background-image: -o-linear-gradient( #fff /*{c-bup-background-start}*/, #f1f1f1 /*{c-bup-background-end}*/); /* Opera 11.10+ */ - background-image: linear-gradient( #fff /*{c-bup-background-start}*/, #f1f1f1 /*{c-bup-background-end}*/); -} -.ui-btn-up-c:visited, -.ui-btn-up-c a.ui-link-inherit { - color: #2f3e46 /*{c-bup-color}*/; -} -.ui-btn-hover-c { - border: 1px solid #bbb /*{c-bhover-border}*/; - background: #dfdfdf /*{c-bhover-background-color}*/; - font-weight: bold; - color: #222 /*{c-bhover-color}*/; - text-shadow: 0 /*{c-bhover-shadow-x}*/ 1px /*{c-bhover-shadow-y}*/ 0 /*{c-bhover-shadow-radius}*/ #fff /*{c-bhover-shadow-color}*/; - background-image: -webkit-gradient(linear, left top, left bottom, from( #f6f6f6 /*{c-bhover-background-start}*/), to( #e0e0e0 /*{c-bhover-background-end}*/)); /* Saf4+, Chrome */ - background-image: -webkit-linear-gradient( #f6f6f6 /*{c-bhover-background-start}*/, #e0e0e0 /*{c-bhover-background-end}*/); /* Chrome 10+, Saf5.1+ */ - background-image: -moz-linear-gradient( #f6f6f6 /*{c-bhover-background-start}*/, #e0e0e0 /*{c-bhover-background-end}*/); /* FF3.6 */ - background-image: -ms-linear-gradient( #f6f6f6 /*{c-bhover-background-start}*/, #e0e0e0 /*{c-bhover-background-end}*/); /* IE10 */ - background-image: -o-linear-gradient( #f6f6f6 /*{c-bhover-background-start}*/, #e0e0e0 /*{c-bhover-background-end}*/); /* Opera 11.10+ */ - background-image: linear-gradient( #f6f6f6 /*{c-bhover-background-start}*/, #e0e0e0 /*{c-bhover-background-end}*/); -} -.ui-btn-hover-c:visited, -.ui-btn-hover-c:hover, -.ui-btn-hover-c a.ui-link-inherit { - color: #2f3e46 /*{c-bhover-color}*/; -} -.ui-btn-down-c { - border: 1px solid #bbb /*{c-bdown-border}*/; - background: #d6d6d6 /*{c-bdown-background-color}*/; - font-weight: bold; - color: #222 /*{c-bdown-color}*/; - text-shadow: 0 /*{c-bdown-shadow-x}*/ 1px /*{c-bdown-shadow-y}*/ 0 /*{c-bdown-shadow-radius}*/ #fff /*{c-bdown-shadow-color}*/; - background-image: -webkit-gradient(linear, left top, left bottom, from( #d0d0d0 /*{c-bdown-background-start}*/), to( #dfdfdf /*{c-bdown-background-end}*/)); /* Saf4+, Chrome */ - background-image: -webkit-linear-gradient( #d0d0d0 /*{c-bdown-background-start}*/, #dfdfdf /*{c-bdown-background-end}*/); /* Chrome 10+, Saf5.1+ */ - background-image: -moz-linear-gradient( #d0d0d0 /*{c-bdown-background-start}*/, #dfdfdf /*{c-bdown-background-end}*/); /* FF3.6 */ - background-image: -ms-linear-gradient( #d0d0d0 /*{c-bdown-background-start}*/, #dfdfdf /*{c-bdown-background-end}*/); /* IE10 */ - background-image: -o-linear-gradient( #d0d0d0 /*{c-bdown-background-start}*/, #dfdfdf /*{c-bdown-background-end}*/); /* Opera 11.10+ */ - background-image: linear-gradient( #d0d0d0 /*{c-bdown-background-start}*/, #dfdfdf /*{c-bdown-background-end}*/); -} -.ui-btn-down-c:visited, -.ui-btn-down-c:hover, -.ui-btn-down-c a.ui-link-inherit { - color: #2f3e46 /*{c-bdown-color}*/; -} -.ui-btn-up-c, -.ui-btn-hover-c, -.ui-btn-down-c { - font-family: Helvetica, Arial, sans-serif /*{global-font-family}*/; - text-decoration: none; -} -/* D ------------------------------------------------------------------------------------------------------------*/ -.ui-bar-d { - border: 1px solid #bbb /*{d-bar-border}*/; - background: #bbb /*{d-bar-background-color}*/; - color: #333 /*{d-bar-color}*/; - font-weight: bold; - text-shadow: 0 /*{d-bar-shadow-x}*/ 1px /*{d-bar-shadow-y}*/ 0 /*{d-bar-shadow-radius}*/ #eee /*{d-bar-shadow-color}*/; - background-image: -webkit-gradient(linear, left top, left bottom, from( #ddd /*{d-bar-background-start}*/), to( #bbb /*{d-bar-background-end}*/)); /* Saf4+, Chrome */ - background-image: -webkit-linear-gradient( #ddd /*{d-bar-background-start}*/, #bbb /*{d-bar-background-end}*/); /* Chrome 10+, Saf5.1+ */ - background-image: -moz-linear-gradient( #ddd /*{d-bar-background-start}*/, #bbb /*{d-bar-background-end}*/); /* FF3.6 */ - background-image: -ms-linear-gradient( #ddd /*{d-bar-background-start}*/, #bbb /*{d-bar-background-end}*/); /* IE10 */ - background-image: -o-linear-gradient( #ddd /*{d-bar-background-start}*/, #bbb /*{d-bar-background-end}*/); /* Opera 11.10+ */ - background-image: linear-gradient( #ddd /*{d-bar-background-start}*/, #bbb /*{d-bar-background-end}*/); -} -.ui-bar-d, -.ui-bar-d input, -.ui-bar-d select, -.ui-bar-d textarea, -.ui-bar-d button { - font-family: Helvetica, Arial, sans-serif /*{global-font-family}*/; -} -.ui-bar-d .ui-link-inherit { - color: #333 /*{d-bar-color}*/; -} -.ui-bar-d a.ui-link { - color: #2489ce /*{d-bar-link-color}*/; - font-weight: bold; -} -.ui-bar-d a.ui-link:visited { - color: #2489ce /*{d-bar-link-visited}*/; -} -.ui-bar-d a.ui-link:hover { - color: #2489ce /*{d-bar-link-hover}*/; -} -.ui-bar-d a.ui-link:active { - color: #2489ce /*{d-bar-link-active}*/; -} -.ui-body-d, -.ui-overlay-d { - border: 1px solid #bbb /*{d-body-border}*/; - color: #333 /*{d-body-color}*/; - text-shadow: 0 /*{d-body-shadow-x}*/ 1px /*{d-body-shadow-y}*/ 0 /*{d-body-shadow-radius}*/ #fff /*{d-body-shadow-color}*/; - background: #fff /*{d-body-background-color}*/; - background-image: -webkit-gradient(linear, left top, left bottom, from( #fff /*{d-body-background-start}*/), to( #fff /*{d-body-background-end}*/)); /* Saf4+, Chrome */ - background-image: -webkit-linear-gradient( #fff /*{d-body-background-start}*/, #fff /*{d-body-background-end}*/); /* Chrome 10+, Saf5.1+ */ - background-image: -moz-linear-gradient( #fff /*{d-body-background-start}*/, #fff /*{d-body-background-end}*/); /* FF3.6 */ - background-image: -ms-linear-gradient( #fff /*{d-body-background-start}*/, #fff /*{d-body-background-end}*/); /* IE10 */ - background-image: -o-linear-gradient( #fff /*{d-body-background-start}*/, #fff /*{d-body-background-end}*/); /* Opera 11.10+ */ - background-image: linear-gradient( #fff /*{d-body-background-start}*/, #fff /*{d-body-background-end}*/); -} -.ui-overlay-d { - background-image: none; - border-width: 0; -} -.ui-body-d, -.ui-body-d input, -.ui-body-d select, -.ui-body-d textarea, -.ui-body-d button { - font-family: Helvetica, Arial, sans-serif /*{global-font-family}*/; -} -.ui-body-d .ui-link-inherit { - color: #333 /*{d-body-color}*/; -} -.ui-body-d .ui-link { - color: #2489ce /*{d-body-link-color}*/; - font-weight: bold; -} -.ui-body-d .ui-link:visited { - color: #2489ce /*{d-body-link-visited}*/; -} -.ui-body-d .ui-link:hover { - color: #2489ce /*{d-body-link-hover}*/; -} -.ui-body-d .ui-link:active { - color: #2489ce /*{d-body-link-active}*/; -} -.ui-btn-up-d { - border: 1px solid #bbb /*{d-bup-border}*/; - background: #fff /*{d-bup-background-color}*/; - font-weight: bold; - color: #333 /*{d-bup-color}*/; - text-shadow: 0 /*{d-bup-shadow-x}*/ 1px /*{d-bup-shadow-y}*/ 0 /*{d-bup-shadow-radius}*/ #fff /*{d-bup-shadow-color}*/; - background-image: -webkit-gradient(linear, left top, left bottom, from( #fafafa /*{d-bup-background-start}*/), to( #f6f6f6 /*{d-bup-background-end}*/)); /* Saf4+, Chrome */ - background-image: -webkit-linear-gradient( #fafafa /*{d-bup-background-start}*/, #f6f6f6 /*{d-bup-background-end}*/); /* Chrome 10+, Saf5.1+ */ - background-image: -moz-linear-gradient( #fafafa /*{d-bup-background-start}*/, #f6f6f6 /*{d-bup-background-end}*/); /* FF3.6 */ - background-image: -ms-linear-gradient( #fafafa /*{d-bup-background-start}*/, #f6f6f6 /*{d-bup-background-end}*/); /* IE10 */ - background-image: -o-linear-gradient( #fafafa /*{d-bup-background-start}*/, #f6f6f6 /*{d-bup-background-end}*/); /* Opera 11.10+ */ - background-image: linear-gradient( #fafafa /*{d-bup-background-start}*/, #f6f6f6 /*{d-bup-background-end}*/); -} -.ui-btn-up-d:visited, -.ui-btn-up-d a.ui-link-inherit { - color: #333 /*{d-bup-color}*/; -} -.ui-btn-hover-d { - border: 1px solid #aaa /*{d-bhover-border}*/; - background: #eee /*{d-bhover-background-color}*/; - font-weight: bold; - color: #333 /*{d-bhover-color}*/; - cursor: pointer; - text-shadow: 0 /*{d-bhover-shadow-x}*/ 1px /*{d-bhover-shadow-y}*/ 0 /*{d-bhover-shadow-radius}*/ #fff /*{d-bhover-shadow-color}*/; - background-image: -webkit-gradient(linear, left top, left bottom, from( #eee /*{d-bhover-background-start}*/), to( #fff /*{d-bhover-background-end}*/)); /* Saf4+, Chrome */ - background-image: -webkit-linear-gradient( #eee /*{d-bhover-background-start}*/, #fff /*{d-bhover-background-end}*/); /* Chrome 10+, Saf5.1+ */ - background-image: -moz-linear-gradient( #eee /*{d-bhover-background-start}*/, #fff /*{d-bhover-background-end}*/); /* FF3.6 */ - background-image: -ms-linear-gradient( #eee /*{d-bhover-background-start}*/, #fff /*{d-bhover-background-end}*/); /* IE10 */ - background-image: -o-linear-gradient( #eee /*{d-bhover-background-start}*/, #fff /*{d-bhover-background-end}*/); /* Opera 11.10+ */ - background-image: linear-gradient( #eee /*{d-bhover-background-start}*/, #fff /*{d-bhover-background-end}*/); -} -.ui-btn-hover-d:visited, -.ui-btn-hover-d:hover, -.ui-btn-hover-d a.ui-link-inherit { - color: #333 /*{d-bhover-color}*/; -} -.ui-btn-down-d { - border: 1px solid #aaa /*{d-bdown-border}*/; - background: #eee /*{d-bdown-background-color}*/; - font-weight: bold; - color: #333 /*{d-bdown-color}*/; - text-shadow: 0 /*{d-bdown-shadow-x}*/ 1px /*{d-bdown-shadow-y}*/ 0 /*{d-bdown-shadow-radius}*/ #fff /*{d-bdown-shadow-color}*/; - background-image: -webkit-gradient(linear, left top, left bottom, from( #e5e5e5 /*{d-bdown-background-start}*/), to( #f2f2f2 /*{d-bdown-background-end}*/)); /* Saf4+, Chrome */ - background-image: -webkit-linear-gradient( #e5e5e5 /*{d-bdown-background-start}*/, #f2f2f2 /*{d-bdown-background-end}*/); /* Chrome 10+, Saf5.1+ */ - background-image: -moz-linear-gradient( #e5e5e5 /*{d-bdown-background-start}*/, #f2f2f2 /*{d-bdown-background-end}*/); /* FF3.6 */ - background-image: -ms-linear-gradient( #e5e5e5 /*{d-bdown-background-start}*/, #f2f2f2 /*{d-bdown-background-end}*/); /* IE10 */ - background-image: -o-linear-gradient( #e5e5e5 /*{d-bdown-background-start}*/, #f2f2f2 /*{d-bdown-background-end}*/); /* Opera 11.10+ */ - background-image: linear-gradient( #e5e5e5 /*{d-bdown-background-start}*/, #f2f2f2 /*{d-bdown-background-end}*/); -} -.ui-btn-down-d:visited, -.ui-btn-down-d:hover, -.ui-btn-down-d a.ui-link-inherit { - color: #333 /*{d-bdown-color}*/; -} -.ui-btn-up-d, -.ui-btn-hover-d, -.ui-btn-down-d { - font-family: Helvetica, Arial, sans-serif /*{global-font-family}*/; - text-decoration: none; -} -/* E ------------------------------------------------------------------------------------------------------------*/ -.ui-bar-e { - border: 1px solid #f7c942 /*{e-bar-border}*/; - background: #fadb4e /*{e-bar-background-color}*/; - color: #333 /*{e-bar-color}*/; - font-weight: bold; - text-shadow: 0 /*{e-bar-shadow-x}*/ 1px /*{e-bar-shadow-y}*/ 0 /*{e-bar-shadow-radius}*/ #fff /*{e-bar-shadow-color}*/; - background-image: -webkit-gradient(linear, left top, left bottom, from( #fceda7 /*{e-bar-background-start}*/), to( #fbef7e /*{e-bar-background-end}*/)); /* Saf4+, Chrome */ - background-image: -webkit-linear-gradient( #fceda7 /*{e-bar-background-start}*/, #fbef7e /*{e-bar-background-end}*/); /* Chrome 10+, Saf5.1+ */ - background-image: -moz-linear-gradient( #fceda7 /*{e-bar-background-start}*/, #fbef7e /*{e-bar-background-end}*/); /* FF3.6 */ - background-image: -ms-linear-gradient( #fceda7 /*{e-bar-background-start}*/, #fbef7e /*{e-bar-background-end}*/); /* IE10 */ - background-image: -o-linear-gradient( #fceda7 /*{e-bar-background-start}*/, #fbef7e /*{e-bar-background-end}*/); /* Opera 11.10+ */ - background-image: linear-gradient( #fceda7 /*{e-bar-background-start}*/, #fbef7e /*{e-bar-background-end}*/); -} -.ui-bar-e, -.ui-bar-e input, -.ui-bar-e select, -.ui-bar-e textarea, -.ui-bar-e button { - font-family: Helvetica, Arial, sans-serif /*{global-font-family}*/; -} -.ui-bar-e .ui-link-inherit { - color: #333 /*{e-bar-color}*/; -} -.ui-bar-e a.ui-link { - color: #2489ce /*{e-bar-link-color}*/; - font-weight: bold; -} -.ui-bar-e a.ui-link:visited { - color: #2489ce /*{e-bar-link-visited}*/; -} -.ui-bar-e a.ui-link:hover { - color: #2489ce /*{e-bar-link-hover}*/; -} -.ui-bar-e a.ui-link:active { - color: #2489ce /*{e-bar-link-active}*/; -} -.ui-body-e, -.ui-overlay-e { - border: 1px solid #f7c942 /*{e-body-border}*/; - color: #222 /*{e-body-color}*/; - text-shadow: 0 /*{e-body-shadow-x}*/ 1px /*{e-body-shadow-y}*/ 0 /*{e-body-shadow-radius}*/ #fff /*{e-body-shadow-color}*/; - background: #fff9df /*{e-body-background-color}*/; - background-image: -webkit-gradient(linear, left top, left bottom, from( #fffadf /*{e-body-background-start}*/), to( #fff3a5 /*{e-body-background-end}*/)); /* Saf4+, Chrome */ - background-image: -webkit-linear-gradient( #fffadf /*{e-body-background-start}*/, #fff3a5 /*{e-body-background-end}*/); /* Chrome 10+, Saf5.1+ */ - background-image: -moz-linear-gradient( #fffadf /*{e-body-background-start}*/, #fff3a5 /*{e-body-background-end}*/); /* FF3.6 */ - background-image: -ms-linear-gradient( #fffadf /*{e-body-background-start}*/, #fff3a5 /*{e-body-background-end}*/); /* IE10 */ - background-image: -o-linear-gradient( #fffadf /*{e-body-background-start}*/, #fff3a5 /*{e-body-background-end}*/); /* Opera 11.10+ */ - background-image: linear-gradient( #fffadf /*{e-body-background-start}*/, #fff3a5 /*{e-body-background-end}*/); -} -.ui-overlay-e { - background-image: none; - border-width: 0; -} -.ui-body-e, -.ui-body-e input, -.ui-body-e select, -.ui-body-e textarea, -.ui-body-e button { - font-family: Helvetica, Arial, sans-serif /*{global-font-family}*/; -} -.ui-body-e .ui-link-inherit { - color: #222 /*{e-body-color}*/; -} -.ui-body-e .ui-link { - color: #2489ce /*{e-body-link-color}*/; - font-weight: bold; -} -.ui-body-e .ui-link:visited { - color: #2489ce /*{e-body-link-visited}*/; -} -.ui-body-e .ui-link:hover { - color: #2489ce /*{e-body-link-hover}*/; -} -.ui-body-e .ui-link:active { - color: #2489ce /*{e-body-link-active}*/; -} -.ui-btn-up-e { - border: 1px solid #f4c63f /*{e-bup-border}*/; - background: #fadb4e /*{e-bup-background-color}*/; - font-weight: bold; - color: #222 /*{e-bup-color}*/; - text-shadow: 0 /*{e-bup-shadow-x}*/ 1px /*{e-bup-shadow-y}*/ 0 /*{e-bup-shadow-radius}*/ #fff /*{e-bup-shadow-color}*/; - background-image: -webkit-gradient(linear, left top, left bottom, from( #ffefaa /*{e-bup-background-start}*/), to( #ffe155 /*{e-bup-background-end}*/)); /* Saf4+, Chrome */ - background-image: -webkit-linear-gradient( #ffefaa /*{e-bup-background-start}*/, #ffe155 /*{e-bup-background-end}*/); /* Chrome 10+, Saf5.1+ */ - background-image: -moz-linear-gradient( #ffefaa /*{e-bup-background-start}*/, #ffe155 /*{e-bup-background-end}*/); /* FF3.6 */ - background-image: -ms-linear-gradient( #ffefaa /*{e-bup-background-start}*/, #ffe155 /*{e-bup-background-end}*/); /* IE10 */ - background-image: -o-linear-gradient( #ffefaa /*{e-bup-background-start}*/, #ffe155 /*{e-bup-background-end}*/); /* Opera 11.10+ */ - background-image: linear-gradient( #ffefaa /*{e-bup-background-start}*/, #ffe155 /*{e-bup-background-end}*/); -} -.ui-btn-up-e:visited, -.ui-btn-up-e a.ui-link-inherit { - color: #222 /*{e-bup-color}*/; -} -.ui-btn-hover-e { - border: 1px solid #f2c43d /*{e-bhover-border}*/; - background: #fbe26f /*{e-bhover-background-color}*/; - font-weight: bold; - color: #111 /*{e-bhover-color}*/; - text-shadow: 0 /*{e-bhover-shadow-x}*/ 1px /*{e-bhover-shadow-y}*/ 0 /*{e-bhover-shadow-radius}*/ #fff /*{e-bhover-shadow-color}*/; - background-image: -webkit-gradient(linear, left top, left bottom, from( #fff5ba /*{e-bhover-background-start}*/), to( #fbdd52 /*{e-bhover-background-end}*/)); /* Saf4+, Chrome */ - background-image: -webkit-linear-gradient( #fff5ba /*{e-bhover-background-start}*/, #fbdd52 /*{e-bhover-background-end}*/); /* Chrome 10+, Saf5.1+ */ - background-image: -moz-linear-gradient( #fff5ba /*{e-bhover-background-start}*/, #fbdd52 /*{e-bhover-background-end}*/); /* FF3.6 */ - background-image: -ms-linear-gradient( #fff5ba /*{e-bhover-background-start}*/, #fbdd52 /*{e-bhover-background-end}*/); /* IE10 */ - background-image: -o-linear-gradient( #fff5ba /*{e-bhover-background-start}*/, #fbdd52 /*{e-bhover-background-end}*/); /* Opera 11.10+ */ - background-image: linear-gradient( #fff5ba /*{e-bhover-background-start}*/, #fbdd52 /*{e-bhover-background-end}*/); -} -.ui-btn-hover-e:visited, -.ui-btn-hover-e:hover, -.ui-btn-hover-e a.ui-link-inherit { - color: #333 /*{e-bhover-color}*/; -} -.ui-btn-down-e { - border: 1px solid #f2c43d /*{e-bdown-border}*/; - background: #fceda7 /*{e-bdown-background-color}*/; - font-weight: bold; - color: #111 /*{e-bdown-color}*/; - text-shadow: 0 /*{e-bdown-shadow-x}*/ 1px /*{e-bdown-shadow-y}*/ 0 /*{e-bdown-shadow-radius}*/ #fff /*{e-bdown-shadow-color}*/; - background-image: -webkit-gradient(linear, left top, left bottom, from( #f8d94c /*{e-bdown-background-start}*/), to( #fadb4e /*{e-bdown-background-end}*/)); /* Saf4+, Chrome */ - background-image: -webkit-linear-gradient( #f8d94c /*{e-bdown-background-start}*/, #fadb4e /*{e-bdown-background-end}*/); /* Chrome 10+, Saf5.1+ */ - background-image: -moz-linear-gradient( #f8d94c /*{e-bdown-background-start}*/, #fadb4e /*{e-bdown-background-end}*/); /* FF3.6 */ - background-image: -ms-linear-gradient( #f8d94c /*{e-bdown-background-start}*/, #fadb4e /*{e-bdown-background-end}*/); /* IE10 */ - background-image: -o-linear-gradient( #f8d94c /*{e-bdown-background-start}*/, #fadb4e /*{e-bdown-background-end}*/); /* Opera 11.10+ */ - background-image: linear-gradient( #f8d94c /*{e-bdown-background-start}*/, #fadb4e /*{e-bdown-background-end}*/); -} -.ui-btn-down-e:visited, -.ui-btn-down-e:hover, -.ui-btn-down-e a.ui-link-inherit { - color: #333 /*{e-bdown-color}*/; -} -.ui-btn-up-e, -.ui-btn-hover-e, -.ui-btn-down-e { - font-family: Helvetica, Arial, sans-serif /*{global-font-family}*/; - text-decoration: none; -} -/* Structure */ -/* links within "buttons" ------------------------------------------------------------------------------------------------------------*/ -a.ui-link-inherit { - text-decoration: none !important; -} -/* Active class used as the "on" state across all themes ------------------------------------------------------------------------------------------------------------*/ -.ui-btn-active { - border: 1px solid #2373a5 /*{global-active-border}*/; - background: #5393c5 /*{global-active-background-color}*/; - font-weight: bold; - color: #fff /*{global-active-color}*/; - cursor: pointer; - text-shadow: 0 /*{global-active-shadow-x}*/ 1px /*{global-active-shadow-y}*/ 0 /*{global-active-shadow-radius}*/ #3373a5 /*{global-active-shadow-color}*/; - text-decoration: none; - background-image: -webkit-gradient(linear, left top, left bottom, from( #5393c5 /*{global-active-background-start}*/), to( #6facd5 /*{global-active-background-end}*/)); /* Saf4+, Chrome */ - background-image: -webkit-linear-gradient( #5393c5 /*{global-active-background-start}*/, #6facd5 /*{global-active-background-end}*/); /* Chrome 10+, Saf5.1+ */ - background-image: -moz-linear-gradient( #5393c5 /*{global-active-background-start}*/, #6facd5 /*{global-active-background-end}*/); /* FF3.6 */ - background-image: -ms-linear-gradient( #5393c5 /*{global-active-background-start}*/, #6facd5 /*{global-active-background-end}*/); /* IE10 */ - background-image: -o-linear-gradient( #5393c5 /*{global-active-background-start}*/, #6facd5 /*{global-active-background-end}*/); /* Opera 11.10+ */ - background-image: linear-gradient( #5393c5 /*{global-active-background-start}*/, #6facd5 /*{global-active-background-end}*/); - font-family: Helvetica, Arial, sans-serif /*{global-font-family}*/; -} -.ui-btn-active:visited, -.ui-btn-active:hover, -.ui-btn-active a.ui-link-inherit { - color: #fff /*{global-active-color}*/; -} -/* button inner top highlight ------------------------------------------------------------------------------------------------------------*/ -.ui-btn-inner { - border-top: 1px solid #fff; - border-color: rgba(255,255,255,.3); -} -/* corner rounding classes ------------------------------------------------------------------------------------------------------------*/ -.ui-corner-all { - -webkit-border-radius: .6em /*{global-radii-blocks}*/; - border-radius: .6em /*{global-radii-blocks}*/; -} -/* Form field separator ------------------------------------------------------------------------------------------------------------*/ -.ui-br { - border-color: rgb(130,130,130); - border-color: rgba(130,130,130,.3); - border-style: solid; -} -/* Interaction cues ------------------------------------------------------------------------------------------------------------*/ -.ui-disabled { - filter: Alpha(Opacity=30); - opacity: .3; - zoom: 1; -} -.ui-disabled, -.ui-disabled a { - cursor: default !important; - pointer-events: none; -} -/* Icons ------------------------------------------------------------------------------------------------------------*/ -.ui-icon, -.ui-icon-searchfield:after { - background-color: #666 /*{global-icon-color}*/; - background-color: rgba(0,0,0,.4) /*{global-icon-disc}*/; - background-image: url(images/icons-18-white.png) /*{global-icon-set}*/; - background-repeat: no-repeat; - -webkit-border-radius: 9px; - border-radius: 9px; -} -/* Alt icon color ------------------------------------------------------------------------------------------------------------*/ -.ui-icon-alt .ui-icon, -.ui-icon-alt .ui-icon-searchfield:after { - background-color: #fff; - background-color: rgba(255,255,255,.3); - background-image: url(images/icons-18-black.png); - background-repeat: no-repeat; -} -/* No disc ------------------------------------------------------------------------------------------------------------*/ -.ui-icon-nodisc .ui-icon, -.ui-icon-nodisc .ui-icon-searchfield:after, -.ui-icon-nodisc .ui-icon-alt .ui-icon, -.ui-icon-nodisc .ui-icon-alt .ui-icon-searchfield:after { - background-color: transparent; -} -/* Icon sprite ------------------------------------------------------------------------------------------------------------*/ -/* plus minus */ -.ui-icon-plus { - background-position: -1px -1px; -} -.ui-icon-minus { - background-position: -37px -1px; -} -/* delete/close */ -.ui-icon-delete { - background-position: -73px -1px; -} -/* arrows */ -.ui-icon-arrow-r { - background-position: -108px -1px; -} -.ui-icon-arrow-l { - background-position: -144px -1px; -} -.ui-icon-arrow-u { - background-position: -180px -1px; -} -.ui-icon-arrow-d { - background-position: -216px -1px; -} -/* misc */ -.ui-icon-check { - background-position: -252px -1px; -} -.ui-icon-gear { - background-position: -288px -1px; -} -.ui-icon-refresh { - background-position: -323px -1px; -} -.ui-icon-forward { - background-position: -360px -1px; -} -.ui-icon-back { - background-position: -396px -1px; -} -.ui-icon-grid { - background-position: -432px -1px; -} -.ui-icon-star { - background-position: -467px -1px; -} -.ui-icon-alert { - background-position: -503px -1px; -} -.ui-icon-info { - background-position: -539px -1px; -} -.ui-icon-home { - background-position: -575px -1px; -} -/* search */ -.ui-icon-search, -.ui-icon-searchfield:after { - background-position: -611px -1px; -} -/* checkbox radio */ -.ui-icon-checkbox-on { - background-position: -647px -1px; -} -.ui-icon-checkbox-off { - background-position: -683px -1px; -} -.ui-icon-radio-on { - background-position: -718px -1px; -} -.ui-icon-radio-off { - background-position: -754px -1px; -} -/* menu edit */ -.ui-icon-bars { - background-position: -788px -1px; -} -.ui-icon-edit { - background-position: -824px -1px; -} -/* HD/"retina" sprite ------------------------------------------------------------------------------------------------------------*/ -@media only screen and (-webkit-min-device-pixel-ratio: 1.3), - only screen and (min--moz-device-pixel-ratio: 1.3), - only screen and (min-resolution: 200dpi) { - - .ui-icon-plus, .ui-icon-minus, .ui-icon-delete, .ui-icon-arrow-r, - .ui-icon-arrow-l, .ui-icon-arrow-u, .ui-icon-arrow-d, .ui-icon-check, - .ui-icon-gear, .ui-icon-refresh, .ui-icon-forward, .ui-icon-back, - .ui-icon-grid, .ui-icon-star, .ui-icon-alert, .ui-icon-info, .ui-icon-home, .ui-icon-bars, .ui-icon-edit, - .ui-icon-search, .ui-icon-searchfield:after, - .ui-icon-checkbox-off, .ui-icon-checkbox-on, .ui-icon-radio-off, .ui-icon-radio-on { - background-image: url(images/icons-36-white.png); - -moz-background-size: 864px 18px; - -o-background-size: 864px 18px; - -webkit-background-size: 864px 18px; - background-size: 864px 18px; - } - .ui-icon-alt .ui-icon { - background-image: url(images/icons-36-black.png); - } - .ui-icon-plus { - background-position: 0 50%; - } - .ui-icon-minus { - background-position: -36px 50%; - } - .ui-icon-delete { - background-position: -72px 50%; - } - .ui-icon-arrow-r { - background-position: -108px 50%; - } - .ui-icon-arrow-l { - background-position: -144px 50%; - } - .ui-icon-arrow-u { - background-position: -179px 50%; - } - .ui-icon-arrow-d { - background-position: -215px 50%; - } - .ui-icon-check { - background-position: -252px 50%; - } - .ui-icon-gear { - background-position: -287px 50%; - } - .ui-icon-refresh { - background-position: -323px 50%; - } - .ui-icon-forward { - background-position: -360px 50%; - } - .ui-icon-back { - background-position: -395px 50%; - } - .ui-icon-grid { - background-position: -431px 50%; - } - .ui-icon-star { - background-position: -467px 50%; - } - .ui-icon-alert { - background-position: -503px 50%; - } - .ui-icon-info { - background-position: -538px 50%; - } - .ui-icon-home { - background-position: -575px 50%; - } - .ui-icon-search, - .ui-icon-searchfield:after { - background-position: -611px 50%; - } - .ui-icon-checkbox-on { - background-position: -647px 50%; - } - .ui-icon-checkbox-off { - background-position: -683px 50%; - } - .ui-icon-radio-on { - background-position: -718px 50%; - } - .ui-icon-radio-off { - background-position: -754px 50%; - } - .ui-icon-bars { - background-position: -788px 50%; - - }.ui-icon-edit { - background-position: -824px 50%; - } -} -/* checks,radios */ -.ui-checkbox .ui-icon, -.ui-selectmenu-list .ui-icon { - -webkit-border-radius: 3px; - border-radius: 3px; -} -.ui-icon-checkbox-off, -.ui-icon-radio-off { - background-color: transparent; -} -.ui-checkbox-on .ui-icon, -.ui-radio-on .ui-icon { - background-color: #4596ce /*{global-active-background-color}*/; /* NOTE: this hex should match the active state color. It's repeated here for cascade */ -} -/* loading icon */ -.ui-icon-loading { - background: url(images/ajax-loader.gif); - background-size: 46px 46px; -} -/* Button corner class ------------------------------------------------------------------------------------------------------------*/ -.ui-btn-corner-all { - -webkit-border-radius: 1em /*{global-radii-buttons}*/; - border-radius: 1em /*{global-radii-buttons}*/; -} -/* radius clip workaround for cleaning up corner trapping */ -.ui-corner-all, -.ui-btn-corner-all { - -webkit-background-clip: padding; - background-clip: padding-box; -} -/* Overlay / modal ------------------------------------------------------------------------------------------------------------*/ -.ui-overlay { - background: #666; - filter: Alpha(Opacity=50); - opacity: .5; - position: absolute; - width: 100%; - height: 100%; -} -.ui-overlay-shadow { - -moz-box-shadow: 0 0 12px rgba(0,0,0,.6); - -webkit-box-shadow: 0 0 12px rgba(0,0,0,.6); - box-shadow: 0 0 12px rgba(0,0,0,.6); -} -.ui-shadow { - -moz-box-shadow: 0 1px 3px /*{global-box-shadow-size}*/ rgba(0,0,0,.2) /*{global-box-shadow-color}*/; - -webkit-box-shadow: 0 1px 3px /*{global-box-shadow-size}*/ rgba(0,0,0,.2) /*{global-box-shadow-color}*/; - box-shadow: 0 1px 3px /*{global-box-shadow-size}*/ rgba(0,0,0,.2) /*{global-box-shadow-color}*/ -} -.ui-bar-a .ui-shadow, -.ui-bar-b .ui-shadow , -.ui-bar-c .ui-shadow { - -moz-box-shadow: 0 1px 0 rgba(255,255,255,.3); - -webkit-box-shadow: 0 1px 0 rgba(255,255,255,.3); - box-shadow: 0 1px 0 rgba(255,255,255,.3); -} -.ui-shadow-inset { - -moz-box-shadow: inset 0 1px 4px rgba(0,0,0,.2); - -webkit-box-shadow: inset 0 1px 4px rgba(0,0,0,.2); - box-shadow: inset 0 1px 4px rgba(0,0,0,.2); -} -.ui-icon-shadow { - -moz-box-shadow: 0 1px 0 rgba(255,255,255,.4) /*{global-icon-shadow}*/; - -webkit-box-shadow: 0 1px 0 rgba(255,255,255,.4) /*{global-icon-shadow}*/; - box-shadow: 0 1px 0 rgba(255,255,255,.4) /*{global-icon-shadow}*/; -} -/* Focus state - set here for specificity (note: these classes are added by JavaScript) ------------------------------------------------------------------------------------------------------------*/ -.ui-btn:focus, .ui-link-inherit:focus { - outline: 0; -} -.ui-btn.ui-focus { - z-index: 1; -} -.ui-focus, -.ui-btn:focus { - -moz-box-shadow: inset 0 0 3px #387bbe /*{global-active-background-color}*/, 0 0 9px #387bbe /*{global-active-background-color}*/; - -webkit-box-shadow: inset 0 0 3px #387bbe /*{global-active-background-color}*/, 0 0 9px #387bbe /*{global-active-background-color}*/; - box-shadow: inset 0 0 3px #387bbe /*{global-active-background-color}*/, 0 0 9px #387bbe /*{global-active-background-color}*/; -} -.ui-input-text.ui-focus, -.ui-input-search.ui-focus { - -moz-box-shadow: 0 0 12px #387bbe /*{global-active-background-color}*/; - -webkit-box-shadow: 0 0 12px #387bbe /*{global-active-background-color}*/; - box-shadow: 0 0 12px #387bbe /*{global-active-background-color}*/; -} -/* unset box shadow in browsers that don't do it right ------------------------------------------------------------------------------------------------------------*/ -.ui-mobile-nosupport-boxshadow * { - -moz-box-shadow: none !important; - -webkit-box-shadow: none !important; - box-shadow: none !important; -} -/* ...and bring back focus */ -.ui-mobile-nosupport-boxshadow .ui-focus, -.ui-mobile-nosupport-boxshadow .ui-btn:focus, -.ui-mobile-nosupport-boxshadow .ui-link-inherit:focus { - outline-width: 1px; - outline-style: auto; -} -/* some unsets - more probably needed */ -.ui-mobile, .ui-mobile body { height: 99.9%; } -.ui-mobile fieldset, .ui-page { padding: 0; margin: 0; } -.ui-mobile a img, .ui-mobile fieldset { border-width: 0; } -/* responsive page widths */ -.ui-mobile-viewport { margin: 0; overflow-x: visible; -webkit-text-size-adjust: 100%; -ms-text-size-adjust:none; -webkit-tap-highlight-color: rgba(0, 0, 0, 0); } -/* Issue #2066 */ -body.ui-mobile-viewport, -div.ui-mobile-viewport { overflow-x: hidden; } -/* "page" containers - full-screen views, one should always be in view post-pageload */ -.ui-mobile [data-role=page], .ui-mobile [data-role=dialog], .ui-page { top: 0; left: 0; width: 100%; min-height: 100%; position: absolute; display: none; border: 0; } -.ui-mobile .ui-page-active { display: block; overflow: visible; } -/* on ios4, setting focus on the page element causes flashing during transitions when there is an outline, so we turn off outlines */ -.ui-page { outline: none; } -/*orientations from js are available */ -@media screen and (orientation: portrait){ -.ui-mobile .ui-page { min-height: 420px; } -} -@media screen and (orientation: landscape){ -.ui-mobile .ui-page { min-height: 300px; } -} -/* loading screen */ -.ui-loading .ui-loader { display: block; } -.ui-loader { display: none; z-index: 9999999; position: fixed; top: 50%; left: 50%; border:0; } -.ui-loader-default { background: none; filter: Alpha(Opacity=18); opacity: .18; width: 46px; height: 46px; margin-left: -23px; margin-top: -23px; } -.ui-loader-verbose { width: 200px; filter: Alpha(Opacity=88); opacity: .88; box-shadow: 0 1px 1px -1px #fff; height: auto; margin-left: -110px; margin-top: -43px; padding: 10px; } -.ui-loader-default h1 { font-size: 0; width: 0; height: 0; overflow: hidden; } -.ui-loader-verbose h1 { font-size: 16px; margin: 0; text-align: center; } -.ui-loader .ui-icon { background-color: #000; display: block; margin: 0; width: 44px; height: 44px; padding: 1px; -webkit-border-radius: 36px; border-radius: 36px; } -.ui-loader-verbose .ui-icon { margin: 0 auto 10px; filter: Alpha(Opacity=75); opacity: .75; } -.ui-loader-textonly { padding: 15px; margin-left: -115px; } -.ui-loader-textonly .ui-icon { display: none; } -.ui-loader-fakefix { position: absolute; } -/*fouc*/ -.ui-mobile-rendering > * { visibility: hidden; } -/*headers, content panels*/ -.ui-bar, .ui-body { position: relative; padding: .4em 15px; overflow: hidden; display: block; clear:both; } -.ui-bar { font-size: 16px; margin: 0; } -.ui-bar h1, .ui-bar h2, .ui-bar h3, .ui-bar h4, .ui-bar h5, .ui-bar h6 { margin: 0; padding: 0; font-size: 16px; display: inline-block; } -.ui-header, .ui-footer { position: relative; zoom: 1; } -.ui-mobile .ui-header, .ui-mobile .ui-footer { border-left-width: 0; border-right-width: 0; } -.ui-header .ui-btn-left, -.ui-header .ui-btn-right, -.ui-footer .ui-btn-left, -.ui-footer .ui-btn-right, -.ui-header-fixed.ui-fixed-hidden .ui-btn-left, -.ui-header-fixed.ui-fixed-hidden .ui-btn-right { position: absolute; top: 3px; } -.ui-header-fixed .ui-btn-left, -.ui-header-fixed .ui-btn-right { top: 4px;} -.ui-header .ui-btn-left, -.ui-footer .ui-btn-left { left: 5px; } -.ui-header .ui-btn-right, -.ui-footer .ui-btn-right { right: 5px; } -.ui-footer > .ui-btn-icon-notext, -.ui-header > .ui-btn-icon-notext, -.ui-header-fixed.ui-fixed-hidden > .ui-btn-icon-notext { top: 6px; } -.ui-header-fixed > .ui-btn-icon-notext { top: 7px;} -.ui-header .ui-title, .ui-footer .ui-title { min-height: 1.1em; text-align: center; font-size: 16px; display: block; margin: .6em 30% .8em; padding: 0; text-overflow: ellipsis; overflow: hidden; white-space: nowrap; outline: 0 !important; } -.ui-footer .ui-title { margin: .6em 15px .8em; } -/* content area*/ -.ui-content { border-width: 0; overflow: visible; overflow-x: hidden; padding: 15px; } -/* corner styling for dialogs and popups */ -.ui-corner-all > .ui-header:first-child, -.ui-corner-all > .ui-content:first-child, -.ui-corner-all > .ui-footer:first-child { - -webkit-border-top-left-radius: inherit; - border-top-left-radius: inherit; - -webkit-border-top-right-radius: inherit; - border-top-right-radius: inherit; -} -.ui-corner-all > .ui-header:last-child, -.ui-corner-all > .ui-content:last-child, -.ui-corner-all > .ui-footer:last-child { - -webkit-border-bottom-left-radius: inherit; - border-bottom-left-radius: inherit; - -webkit-border-bottom-right-radius: inherit; - border-bottom-right-radius: inherit; -} -/* icons sizing */ -.ui-icon { width: 18px; height: 18px; } -/* non-js content hiding */ -.ui-nojs { position: absolute; left: -9999px; } -/* accessible content hiding */ -.ui-hide-label label.ui-input-text, .ui-hide-label label.ui-select, .ui-hide-label label.ui-slider, .ui-hide-label label.ui-submit, .ui-hide-label .ui-controlgroup-label, -.ui-hidden-accessible { position: absolute !important; left: -9999px; clip: rect(1px 1px 1px 1px); clip: rect(1px,1px,1px,1px); } -/* Transitions originally inspired by those from jQtouch, nice work, folks */ -.ui-mobile-viewport-transitioning, -.ui-mobile-viewport-transitioning .ui-page { - width: 100%; - height: 100%; - overflow: hidden; - -webkit-box-sizing: border-box; - -moz-box-sizing: border-box; - box-sizing: border-box; -} -.ui-page-pre-in { - opacity: 0; -} -.in { - -webkit-animation-timing-function: ease-out; - -webkit-animation-duration: 350ms; - -moz-animation-timing-function: ease-out; - -moz-animation-duration: 350ms; - animation-timing-function: ease-out; - animation-duration: 350ms; -} -.out { - -webkit-animation-timing-function: ease-in; - -webkit-animation-duration: 225ms; - -moz-animation-timing-function: ease-in; - -moz-animation-duration: 225ms; - animation-timing-function: ease-in; - animation-duration: 225ms; -} -@-webkit-keyframes fadein { - from { opacity: 0; } - to { opacity: 1; } -} -@-moz-keyframes fadein { - from { opacity: 0; } - to { opacity: 1; } -} -@keyframes fadein { - from { opacity: 0; } - to { opacity: 1; } -} -@-webkit-keyframes fadeout { - from { opacity: 1; } - to { opacity: 0; } -} -@-moz-keyframes fadeout { - from { opacity: 1; } - to { opacity: 0; } -} -@keyframes fadeout { - from { opacity: 1; } - to { opacity: 0; } -} -.fade.out { - opacity: 0; - -webkit-animation-duration: 125ms; - -webkit-animation-name: fadeout; - -moz-animation-duration: 125ms; - -moz-animation-name: fadeout; - animation-duration: 125ms; - animation-name: fadeout; -} -.fade.in { - opacity: 1; - -webkit-animation-duration: 225ms; - -webkit-animation-name: fadein; - -moz-animation-duration: 225ms; - -moz-animation-name: fadein; - animation-duration: 225ms; - animation-name: fadein; -} -.pop { - -webkit-transform-origin: 50% 50%; - -moz-transform-origin: 50% 50%; - transform-origin: 50% 50%; -} -.pop.in { - -webkit-transform: scale(1); - -webkit-animation-name: popin; - -webkit-animation-duration: 350ms; - -moz-transform: scale(1); - -moz-animation-name: popin; - -moz-animation-duration: 350ms; - transform: scale(1); - animation-name: popin; - animation-duration: 350ms; - opacity: 1; -} -.pop.out { - -webkit-animation-name: fadeout; - -webkit-animation-duration: 100ms; - -moz-animation-name: fadeout; - -moz-animation-duration: 100ms; - animation-name: fadeout; - animation-duration: 100ms; - opacity: 0; -} -.pop.in.reverse { - -webkit-animation-name: fadein; - -moz-animation-name: fadein; - animation-name: fadein; -} -.pop.out.reverse { - -webkit-transform: scale(.8); - -webkit-animation-name: popout; - -moz-transform: scale(.8); - -moz-animation-name: popout; - transform: scale(.8); - animation-name: popout; -} -@-webkit-keyframes popin { - from { - -webkit-transform: scale(.8); - opacity: 0; - } - to { - -webkit-transform: scale(1); - opacity: 1; - } -} -@-moz-keyframes popin { - from { - -moz-transform: scale(.8); - opacity: 0; - } - to { - -moz-transform: scale(1); - opacity: 1; - } -} -@keyframes popin { - from { - transform: scale(.8); - opacity: 0; - } - to { - transform: scale(1); - opacity: 1; - } -} -@-webkit-keyframes popout { - from { - -webkit-transform: scale(1); - opacity: 1; - } - to { - -webkit-transform: scale(.8); - opacity: 0; - } -} -@-moz-keyframes popout { - from { - -moz-transform: scale(1); - opacity: 1; - } - to { - -moz-transform: scale(.8); - opacity: 0; - } -} -@keyframes popout { - from { - transform: scale(1); - opacity: 1; - } - to { - transform: scale(.8); - opacity: 0; - } -} -/* keyframes for slidein from sides */ -@-webkit-keyframes slideinfromright { - from { -webkit-transform: translate3d(100%,0,0); } - to { -webkit-transform: translate3d(0,0,0); } -} -@-moz-keyframes slideinfromright { - from { -moz-transform: translateX(100%); } - to { -moz-transform: translateX(0); } -} -@keyframes slideinfromright { - from { transform: translateX(100%); } - to { transform: translateX(0); } -} -@-webkit-keyframes slideinfromleft { - from { -webkit-transform: translate3d(-100%,0,0); } - to { -webkit-transform: translate3d(0,0,0); } -} -@-moz-keyframes slideinfromleft { - from { -moz-transform: translateX(-100%); } - to { -moz-transform: translateX(0); } -} -@keyframes slideinfromleft { - from { transform: translateX(-100%); } - to { transform: translateX(0); } -} -/* keyframes for slideout to sides */ -@-webkit-keyframes slideouttoleft { - from { -webkit-transform: translate3d(0,0,0); } - to { -webkit-transform: translate3d(-100%,0,0); } -} -@-moz-keyframes slideouttoleft { - from { -moz-transform: translateX(0); } - to { -moz-transform: translateX(-100%); } -} -@keyframes slideouttoleft { - from { transform: translateX(0); } - to { transform: translateX(-100%); } -} -@-webkit-keyframes slideouttoright { - from { -webkit-transform: translate3d(0,0,0); } - to { -webkit-transform: translate3d(100%,0,0); } -} -@-moz-keyframes slideouttoright { - from { -moz-transform: translateX(0); } - to { -moz-transform: translateX(100%); } -} -@keyframes slideouttoright { - from { transform: translateX(0); } - to { transform: translateX(100%); } -} -.slide.out, .slide.in { - -webkit-animation-timing-function: ease-out; - -webkit-animation-duration: 350ms; - -moz-animation-timing-function: ease-out; - -moz-animation-duration: 350ms; - animation-timing-function: ease-out; - animation-duration: 350ms; -} -.slide.out { - -webkit-transform: translate3d(-100%,0,0); - -webkit-animation-name: slideouttoleft; - -moz-transform: translateX(-100%); - -moz-animation-name: slideouttoleft; - transform: translateX(-100%); - animation-name: slideouttoleft; -} -.slide.in { - -webkit-transform: translate3d(0,0,0); - -webkit-animation-name: slideinfromright; - -moz-transform: translateX(0); - -moz-animation-name: slideinfromright; - transform: translateX(0); - animation-name: slideinfromright; -} -.slide.out.reverse { - -webkit-transform: translate3d(100%,0,0); - -webkit-animation-name: slideouttoright; - -moz-transform: translateX(100%); - -moz-animation-name: slideouttoright; - transform: translateX(100%); - animation-name: slideouttoright; -} -.slide.in.reverse { - -webkit-transform: translate3d(0,0,0); - -webkit-animation-name: slideinfromleft; - -moz-transform: translateX(0); - -moz-animation-name: slideinfromleft; - transform: translateX(0); - animation-name: slideinfromleft; -} -.slidefade.out { - -webkit-transform: translateX(-100%); - -webkit-animation-name: slideouttoleft; - -webkit-animation-duration: 225ms; - -moz-transform: translateX(-100%); - -moz-animation-name: slideouttoleft; - -moz-animation-duration: 225ms; - transform: translateX(-100%); - animation-name: slideouttoleft; - animation-duration: 225ms; -} -.slidefade.in { - -webkit-transform: translateX(0); - -webkit-animation-name: fadein; - -webkit-animation-duration: 200ms; - -moz-transform: translateX(0); - -moz-animation-name: fadein; - -moz-animation-duration: 200ms; - transform: translateX(0); - animation-name: fadein; - animation-duration: 200ms; -} -.slidefade.out.reverse { - -webkit-transform: translateX(100%); - -webkit-animation-name: slideouttoright; - -webkit-animation-duration: 200ms; - -moz-transform: translateX(100%); - -moz-animation-name: slideouttoright; - -moz-animation-duration: 200ms; - transform: translateX(100%); - animation-name: slideouttoright; - animation-duration: 200ms; -} -.slidefade.in.reverse { - -webkit-transform: translateX(0); - -webkit-animation-name: fadein; - -webkit-animation-duration: 200ms; - -moz-transform: translateX(0); - -moz-animation-name: fadein; - -moz-animation-duration: 200ms; - transform: translateX(0); - animation-name: fadein; - animation-duration: 200ms; -} -/* slide down */ -.slidedown.out { - -webkit-animation-name: fadeout; - -webkit-animation-duration: 100ms; - -moz-animation-name: fadeout; - -moz-animation-duration: 100ms; - animation-name: fadeout; - animation-duration: 100ms; -} -.slidedown.in { - -webkit-transform: translateY(0); - -webkit-animation-name: slideinfromtop; - -webkit-animation-duration: 250ms; - -moz-transform: translateY(0); - -moz-animation-name: slideinfromtop; - -moz-animation-duration: 250ms; - transform: translateY(0); - animation-name: slideinfromtop; - animation-duration: 250ms; -} -.slidedown.in.reverse { - -webkit-animation-name: fadein; - -webkit-animation-duration: 150ms; - -moz-animation-name: fadein; - -moz-animation-duration: 150ms; - animation-name: fadein; - animation-duration: 150ms; -} -.slidedown.out.reverse { - -webkit-transform: translateY(-100%); - -webkit-animation-name: slideouttotop; - -webkit-animation-duration: 200ms; - -moz-transform: translateY(-100%); - -moz-animation-name: slideouttotop; - -moz-animation-duration: 200ms; - transform: translateY(-100%); - animation-name: slideouttotop; - animation-duration: 200ms; -} -@-webkit-keyframes slideinfromtop { - from { -webkit-transform: translateY(-100%); } - to { -webkit-transform: translateY(0); } -} -@-moz-keyframes slideinfromtop { - from { -moz-transform: translateY(-100%); } - to { -moz-transform: translateY(0); } -} -@keyframes slideinfromtop { - from { transform: translateY(-100%); } - to { transform: translateY(0); } -} -@-webkit-keyframes slideouttotop { - from { -webkit-transform: translateY(0); } - to { -webkit-transform: translateY(-100%); } -} -@-moz-keyframes slideouttotop { - from { -moz-transform: translateY(0); } - to { -moz-transform: translateY(-100%); } -} -@keyframes slideouttotop { - from { transform: translateY(0); } - to { transform: translateY(-100%); } -} -/* slide up */ -.slideup.out { - -webkit-animation-name: fadeout; - -webkit-animation-duration: 100ms; - -moz-animation-name: fadeout; - -moz-animation-duration: 100ms; - animation-name: fadeout; - animation-duration: 100ms; -} -.slideup.in { - -webkit-transform: translateY(0); - -webkit-animation-name: slideinfrombottom; - -webkit-animation-duration: 250ms; - -moz-transform: translateY(0); - -moz-animation-name: slideinfrombottom; - -moz-animation-duration: 250ms; - transform: translateY(0); - animation-name: slideinfrombottom; - animation-duration: 250ms; -} -.slideup.in.reverse { - -webkit-animation-name: fadein; - -webkit-animation-duration: 150ms; - -moz-animation-name: fadein; - -moz-animation-duration: 150ms; - animation-name: fadein; - animation-duration: 150ms; -} -.slideup.out.reverse { - -webkit-transform: translateY(100%); - -webkit-animation-name: slideouttobottom; - -webkit-animation-duration: 200ms; - -moz-transform: translateY(100%); - -moz-animation-name: slideouttobottom; - -moz-animation-duration: 200ms; - transform: translateY(100%); - animation-name: slideouttobottom; - animation-duration: 200ms; -} -@-webkit-keyframes slideinfrombottom { - from { -webkit-transform: translateY(100%); } - to { -webkit-transform: translateY(0); } -} -@-moz-keyframes slideinfrombottom { - from { -moz-transform: translateY(100%); } - to { -moz-transform: translateY(0); } -} -@keyframes slideinfrombottom { - from { transform: translateY(100%); } - to { transform: translateY(0); } -} -@-webkit-keyframes slideouttobottom { - from { -webkit-transform: translateY(0); } - to { -webkit-transform: translateY(100%); } -} -@-moz-keyframes slideouttobottom { - from { -moz-transform: translateY(0); } - to { -moz-transform: translateY(100%); } -} -@keyframes slideouttobottom { - from { transform: translateY(0); } - to { transform: translateY(100%); } -} -/* The properties in this rule are only necessary for the 'flip' transition. - * We need specify the perspective to create a projection matrix. This will add - * some depth as the element flips. The depth number represents the distance of - * the viewer from the z-plane. According to the CSS3 spec, 1000 is a moderate - * value. - */ -.viewport-flip { - -webkit-perspective: 1000; - -moz-perspective: 1000; - perspective: 1000; - position: absolute; -} -.flip { - -webkit-backface-visibility: hidden; - -webkit-transform: translateX(0); /* Needed to work around an iOS 3.1 bug that causes listview thumbs to disappear when -webkit-visibility:hidden is used. */ - -moz-backface-visibility: hidden; - -moz-transform: translateX(0); - backface-visibility: hidden; - transform: translateX(0); -} -.flip.out { - -webkit-transform: rotateY(-90deg) scale(.9); - -webkit-animation-name: flipouttoleft; - -webkit-animation-duration: 175ms; - -moz-transform: rotateY(-90deg) scale(.9); - -moz-animation-name: flipouttoleft; - -moz-animation-duration: 175ms; - transform: rotateY(-90deg) scale(.9); - animation-name: flipouttoleft; - animation-duration: 175ms; -} -.flip.in { - -webkit-animation-name: flipintoright; - -webkit-animation-duration: 225ms; - -moz-animation-name: flipintoright; - -moz-animation-duration: 225ms; - animation-name: flipintoright; - animation-duration: 225ms; -} -.flip.out.reverse { - -webkit-transform: rotateY(90deg) scale(.9); - -webkit-animation-name: flipouttoright; - -moz-transform: rotateY(90deg) scale(.9); - -moz-animation-name: flipouttoright; - transform: rotateY(90deg) scale(.9); - animation-name: flipouttoright; -} -.flip.in.reverse { - -webkit-animation-name: flipintoleft; - -moz-animation-name: flipintoleft; - animation-name: flipintoleft; -} -@-webkit-keyframes flipouttoleft { - from { -webkit-transform: rotateY(0); } - to { -webkit-transform: rotateY(-90deg) scale(.9); } -} -@-moz-keyframes flipouttoleft { - from { -moz-transform: rotateY(0); } - to { -moz-transform: rotateY(-90deg) scale(.9); } -} -@keyframes flipouttoleft { - from { transform: rotateY(0); } - to { transform: rotateY(-90deg) scale(.9); } -} -@-webkit-keyframes flipouttoright { - from { -webkit-transform: rotateY(0) ; } - to { -webkit-transform: rotateY(90deg) scale(.9); } -} -@-moz-keyframes flipouttoright { - from { -moz-transform: rotateY(0); } - to { -moz-transform: rotateY(90deg) scale(.9); } -} -@keyframes flipouttoright { - from { transform: rotateY(0); } - to { transform: rotateY(90deg) scale(.9); } -} -@-webkit-keyframes flipintoleft { - from { -webkit-transform: rotateY(-90deg) scale(.9); } - to { -webkit-transform: rotateY(0); } -} -@-moz-keyframes flipintoleft { - from { -moz-transform: rotateY(-90deg) scale(.9); } - to { -moz-transform: rotateY(0); } -} -@keyframes flipintoleft { - from { transform: rotateY(-90deg) scale(.9); } - to { transform: rotateY(0); } -} -@-webkit-keyframes flipintoright { - from { -webkit-transform: rotateY(90deg) scale(.9); } - to { -webkit-transform: rotateY(0); } -} -@-moz-keyframes flipintoright { - from { -moz-transform: rotateY(90deg) scale(.9); } - to { -moz-transform: rotateY(0); } -} -@keyframes flipintoright { - from { transform: rotateY(90deg) scale(.9); } - to { transform: rotateY(0); } -} -/* The properties in this rule are only necessary for the 'flip' transition. - * We need specify the perspective to create a projection matrix. This will add - * some depth as the element flips. The depth number represents the distance of - * the viewer from the z-plane. According to the CSS3 spec, 1000 is a moderate - * value. - */ -.viewport-turn { - -webkit-perspective: 200px; - -moz-perspective: 200px; - -ms-perspective: 200px; - perspective: 200px; - position: absolute; -} -.turn { - -webkit-backface-visibility: hidden; - -webkit-transform: translateX(0); /* Needed to work around an iOS 3.1 bug that causes listview thumbs to disappear when -webkit-visibility:hidden is used. */ - -webkit-transform-origin: 0; - - -moz-backface-visibility: hidden; - -moz-transform: translateX(0); - -moz-transform-origin: 0; - - backface-visibility :hidden; - transform: translateX(0); - transform-origin: 0; -} -.turn.out { - -webkit-transform: rotateY(-90deg) scale(.9); - -webkit-animation-name: flipouttoleft; - -webkit-animation-duration: 125ms; - -moz-transform: rotateY(-90deg) scale(.9); - -moz-animation-name: flipouttoleft; - -moz-animation-duration: 125ms; - transform: rotateY(-90deg) scale(.9); - animation-name: flipouttoleft; - animation-duration: 125ms; -} -.turn.in { - -webkit-animation-name: flipintoright; - -webkit-animation-duration: 250ms; - -moz-animation-name: flipintoright; - -moz-animation-duration: 250ms; - animation-name: flipintoright; - animation-duration: 250ms; - -} -.turn.out.reverse { - -webkit-transform: rotateY(90deg) scale(.9); - -webkit-animation-name: flipouttoright; - -moz-transform: rotateY(90deg) scale(.9); - -moz-animation-name: flipouttoright; - transform: rotateY(90deg) scale(.9); - animation-name: flipouttoright; -} -.turn.in.reverse { - -webkit-animation-name: flipintoleft; - -moz-animation-name: flipintoleft; - animation-name: flipintoleft; -} -@-webkit-keyframes flipouttoleft { - from { -webkit-transform: rotateY(0); } - to { -webkit-transform: rotateY(-90deg) scale(.9); } -} -@-moz-keyframes flipouttoleft { - from { -moz-transform: rotateY(0); } - to { -moz-transform: rotateY(-90deg) scale(.9); } -} -@keyframes flipouttoleft { - from { transform: rotateY(0); } - to { transform: rotateY(-90deg) scale(.9); } -} -@-webkit-keyframes flipouttoright { - from { -webkit-transform: rotateY(0) ; } - to { -webkit-transform: rotateY(90deg) scale(.9); } -} -@-moz-keyframes flipouttoright { - from { -moz-transform: rotateY(0); } - to { -moz-transform: rotateY(90deg) scale(.9); } -} -@keyframes flipouttoright { - from { transform: rotateY(0); } - to { transform: rotateY(90deg) scale(.9); } -} -@-webkit-keyframes flipintoleft { - from { -webkit-transform: rotateY(-90deg) scale(.9); } - to { -webkit-transform: rotateY(0); } -} -@-moz-keyframes flipintoleft { - from { -moz-transform: rotateY(-90deg) scale(.9); } - to { -moz-transform: rotateY(0); } -} -@keyframes flipintoleft { - from { transform: rotateY(-90deg) scale(.9); } - to { transform: rotateY(0); } -} -@-webkit-keyframes flipintoright { - from { -webkit-transform: rotateY(90deg) scale(.9); } - to { -webkit-transform: rotateY(0); } -} -@-moz-keyframes flipintoright { - from { -moz-transform: rotateY(90deg) scale(.9); } - to { -moz-transform: rotateY(0); } -} -@keyframes flipintoright { - from { transform: rotateY(90deg) scale(.9); } - to { transform: rotateY(0); } -} -/* flow transition */ -.flow { - -webkit-transform-origin: 50% 30%; - -webkit-box-shadow: 0 0 20px rgba(0,0,0,.4); - -moz-transform-origin: 50% 30%; - -moz-box-shadow: 0 0 20px rgba(0,0,0,.4); - transform-origin: 50% 30%; - box-shadow: 0 0 20px rgba(0,0,0,.4); -} -.ui-dialog.flow { - -webkit-transform-origin: none; - -webkit-box-shadow: none; - -moz-transform-origin: none; - -moz-box-shadow: none; - transform-origin: none; - box-shadow: none; -} -.flow.out { - -webkit-transform: translateX(-100%) scale(.7); - -webkit-animation-name: flowouttoleft; - -webkit-animation-timing-function: ease; - -webkit-animation-duration: 350ms; - -moz-transform: translateX(-100%) scale(.7); - -moz-animation-name: flowouttoleft; - -moz-animation-timing-function: ease; - -moz-animation-duration: 350ms; - transform: translateX(-100%) scale(.7); - animation-name: flowouttoleft; - animation-timing-function: ease; - animation-duration: 350ms; -} -.flow.in { - -webkit-transform: translateX(0) scale(1); - -webkit-animation-name: flowinfromright; - -webkit-animation-timing-function: ease; - -webkit-animation-duration: 350ms; - -moz-transform: translateX(0) scale(1); - -moz-animation-name: flowinfromright; - -moz-animation-timing-function: ease; - -moz-animation-duration: 350ms; - transform: translateX(0) scale(1); - animation-name: flowinfromright; - animation-timing-function: ease; - animation-duration: 350ms; -} -.flow.out.reverse { - -webkit-transform: translateX(100%); - -webkit-animation-name: flowouttoright; - -moz-transform: translateX(100%); - -moz-animation-name: flowouttoright; - transform: translateX(100%); - animation-name: flowouttoright; -} -.flow.in.reverse { - -webkit-animation-name: flowinfromleft; - -moz-animation-name: flowinfromleft; - animation-name: flowinfromleft; -} -@-webkit-keyframes flowouttoleft { - 0% { -webkit-transform: translateX(0) scale(1); } - 60%, 70% { -webkit-transform: translateX(0) scale(.7); } - 100% { -webkit-transform: translateX(-100%) scale(.7); } -} -@-moz-keyframes flowouttoleft { - 0% { -moz-transform: translateX(0) scale(1); } - 60%, 70% { -moz-transform: translateX(0) scale(.7); } - 100% { -moz-transform: translateX(-100%) scale(.7); } -} -@keyframes flowouttoleft { - 0% { transform: translateX(0) scale(1); } - 60%, 70% { transform: translateX(0) scale(.7); } - 100% { transform: translateX(-100%) scale(.7); } -} -@-webkit-keyframes flowouttoright { - 0% { -webkit-transform: translateX(0) scale(1); } - 60%, 70% { -webkit-transform: translateX(0) scale(.7); } - 100% { -webkit-transform: translateX(100%) scale(.7); } -} -@-moz-keyframes flowouttoright { - 0% { -moz-transform: translateX(0) scale(1); } - 60%, 70% { -moz-transform: translateX(0) scale(.7); } - 100% { -moz-transform: translateX(100%) scale(.7); } -} -@keyframes flowouttoright { - 0% { transform: translateX(0) scale(1); } - 60%, 70% { transform: translateX(0) scale(.7); } - 100% { transform: translateX(100%) scale(.7); } -} -@-webkit-keyframes flowinfromleft { - 0% { -webkit-transform: translateX(-100%) scale(.7); } - 30%, 40% { -webkit-transform: translateX(0) scale(.7); } - 100% { -webkit-transform: translateX(0) scale(1); } -} -@-moz-keyframes flowinfromleft { - 0% { -moz-transform: translateX(-100%) scale(.7); } - 30%, 40% { -moz-transform: translateX(0) scale(.7); } - 100% { -moz-transform: translateX(0) scale(1); } -} -@keyframes flowinfromleft { - 0% { transform: translateX(-100%) scale(.7); } - 30%, 40% { transform: translateX(0) scale(.7); } - 100% { transform: translateX(0) scale(1); } -} -@-webkit-keyframes flowinfromright { - 0% { -webkit-transform: translateX(100%) scale(.7); } - 30%, 40% { -webkit-transform: translateX(0) scale(.7); } - 100% { -webkit-transform: translateX(0) scale(1); } -} -@-moz-keyframes flowinfromright { - 0% { -moz-transform: translateX(100%) scale(.7); } - 30%, 40% { -moz-transform: translateX(0) scale(.7); } - 100% { -moz-transform: translateX(0) scale(1); } -} -@keyframes flowinfromright { - 0% { transform: translateX(100%) scale(.7); } - 30%, 40% { transform: translateX(0) scale(.7); } - 100% { transform: translateX(0) scale(1); } -} -/* content configurations. */ -.ui-grid-a, .ui-grid-b, .ui-grid-c, .ui-grid-d { overflow: hidden; } -.ui-block-a, .ui-block-b, .ui-block-c, .ui-block-d, .ui-block-e { margin: 0; padding: 0; border: 0; float: left; min-height: 1px; -webkit-box-sizing: border-box; -moz-box-sizing: border-box; -ms-box-sizing: border-box; box-sizing: border-box; } -/* grid solo: 100 - single item fallback */ -.ui-grid-solo .ui-block-a { display: block; float: none; } -/* Lower percentages for older browsers (i.e. IE7) to prevent wrapping. -.5px to fix BB5 wrap issue. */ -/* grid a: 50/50 */ -.ui-grid-a .ui-block-a, .ui-grid-a .ui-block-b { width: 49.95%; } -.ui-grid-a > :nth-child(n) { width: 50%; margin-right: -.5px; } -.ui-grid-a .ui-block-a { clear: left; } -/* grid b: 33/33/33 */ -.ui-grid-b .ui-block-a, .ui-grid-b .ui-block-b, .ui-grid-b .ui-block-c { width: 33.25%; } -.ui-grid-b > :nth-child(n) { width: 33.333%; margin-right: -.5px; } -.ui-grid-b .ui-block-a { clear: left; } -/* grid c: 25/25/25/25 */ -.ui-grid-c .ui-block-a, .ui-grid-c .ui-block-b, .ui-grid-c .ui-block-c, .ui-grid-c .ui-block-d { width: 24.925%; } -.ui-grid-c > :nth-child(n) { width: 25%; margin-right: -.5px; } -.ui-grid-c .ui-block-a { clear: left; } -/* grid d: 20/20/20/20/20 */ -.ui-grid-d .ui-block-a, .ui-grid-d .ui-block-b, .ui-grid-d .ui-block-c, .ui-grid-d .ui-block-d, .ui-grid-d .ui-block-e { width: 19.925%; } -.ui-grid-d > :nth-child(n) { width: 20%; } -.ui-grid-d .ui-block-a { clear: left; } -/* preset breakpoint to switch to stacked grid styles below 35em (560px) */ -@media all and (max-width: 35em) { - .ui-responsive .ui-block-a, - .ui-responsive .ui-block-b, - .ui-responsive .ui-block-c, - .ui-responsive .ui-block-d, - .ui-responsive .ui-block-e { - width: 100%; - float:none; - } -} -/* fixed page header & footer configuration */ -.ui-header-fixed, -.ui-footer-fixed { - left: 0; - right: 0; - width: 100%; - position: fixed; - z-index: 1000; -} -.ui-header-fixed { - top: -1px; - padding-top: 1px; -} -.ui-header-fixed.ui-fixed-hidden { - top: 0; - padding-top: 0; -} -.ui-footer-fixed { - bottom: -1px; - padding-bottom: 1px; -} -.ui-footer-fixed.ui-fixed-hidden { - bottom: 0; - padding-bottom: 0; -} -.ui-header-fullscreen, -.ui-footer-fullscreen { - filter: Alpha(Opacity=90); - opacity: .9; -} -.ui-page-header-fixed { - padding-top: 2.6875em; -} -.ui-page-footer-fixed { - padding-bottom: 2.6875em; -} -.ui-page-header-fullscreen > .ui-content, -.ui-page-footer-fullscreen > .ui-content { - padding: 0; -} -.ui-fixed-hidden { - position: absolute; -} -.ui-page-header-fullscreen .ui-fixed-hidden, -.ui-page-footer-fullscreen .ui-fixed-hidden { - left: -9999px; -} -.ui-header-fixed .ui-btn, -.ui-footer-fixed .ui-btn { - z-index: 10; -} -/* workarounds for other widgets */ -.ui-android-2x-fixed .ui-li-has-thumb { - -webkit-transform: translate3d(0,0,0); -} -.ui-navbar { max-width: 100%; } -.ui-navbar.ui-mini { margin: 0; } -.ui-navbar ul:before, .ui-navbar ul:after { content: " "; display: table; } -.ui-navbar ul:after { clear: both; } -.ui-navbar ul { list-style:none; margin: 0; padding: 0; position: relative; display: block; border: 0; max-width: 100%; overflow: visible; zoom: 1; } -.ui-navbar li .ui-btn { display: block; text-align: center; margin: 0 -1px 0 0; border-right-width: 0; } -.ui-navbar li .ui-btn-icon-right .ui-icon { right: 6px; } -/* add border if not in header/footer (full width) */ -.ui-navbar li:last-child .ui-btn, -.ui-navbar .ui-grid-duo .ui-block-b .ui-btn { margin-right: 0; border-right-width: 1px; } -.ui-header .ui-navbar li:last-child .ui-btn, -.ui-footer .ui-navbar li:last-child .ui-btn, -.ui-header .ui-navbar .ui-grid-duo .ui-block-b .ui-btn, -.ui-footer .ui-navbar .ui-grid-duo .ui-block-b .ui-btn { margin-right: -1px; border-right-width: 0; } -.ui-navbar .ui-grid-duo li.ui-block-a:last-child .ui-btn { margin-right: -1px; border-right-width: 1px; } -.ui-header .ui-navbar li .ui-btn, -.ui-footer .ui-navbar li .ui-btn { border-top-width: 0; border-bottom-width: 0; } -/* fixing gaps caused by subpixel problem */ -.ui-header .ui-navbar .ui-grid-b li.ui-block-c .ui-btn, -.ui-footer .ui-navbar .ui-grid-b li.ui-block-c .ui-btn { margin-right: -5px; } -.ui-header .ui-navbar .ui-grid-c li.ui-block-d .ui-btn, -.ui-footer .ui-navbar .ui-grid-c li.ui-block-d .ui-btn, -.ui-header .ui-navbar .ui-grid-d li.ui-block-e .ui-btn, -.ui-footer .ui-navbar .ui-grid-d li.ui-block-e .ui-btn { margin-right: -4px; } -.ui-header .ui-navbar .ui-grid-b li.ui-block-c .ui-btn-icon-right .ui-icon, -.ui-footer .ui-navbar .ui-grid-b li.ui-block-c .ui-btn-icon-right .ui-icon, -.ui-header .ui-navbar .ui-grid-c li.ui-block-d .ui-btn-icon-right .ui-icon, -.ui-footer .ui-navbar .ui-grid-c li.ui-block-d .ui-btn-icon-right .ui-icon, -.ui-header .ui-navbar .ui-grid-d li.ui-block-e .ui-btn-icon-right .ui-icon, -.ui-footer .ui-navbar .ui-grid-d li.ui-block-e .ui-btn-icon-right .ui-icon { right: 8px; } -.ui-navbar li .ui-btn .ui-btn-inner { padding-top: .7em; padding-bottom: .8em } -.ui-navbar li .ui-btn-icon-top .ui-btn-inner { padding-top: 30px; } -.ui-navbar li .ui-btn-icon-bottom .ui-btn-inner { padding-bottom: 30px; } -.ui-btn { display: block; text-align: center; cursor:pointer; position: relative; margin: .5em 0; padding: 0; } -.ui-mini { margin-top: .25em; margin-bottom: .25em; } -.ui-btn-left, .ui-btn-right, .ui-input-clear, .ui-btn-inline, -.ui-grid-a .ui-btn, .ui-grid-b .ui-btn, .ui-grid-c .ui-btn, .ui-grid-d .ui-btn, .ui-grid-e .ui-btn, .ui-grid-solo .ui-btn { margin-right: 5px; margin-left: 5px; } -.ui-btn-inner { font-size: 16px; padding: .6em 20px; min-width: .75em; display: block; position: relative; text-overflow: ellipsis; overflow: hidden; white-space: nowrap; zoom: 1; } -.ui-btn input, .ui-btn button { z-index: 2; } -.ui-btn-left, .ui-btn-right, .ui-btn-inline { display: inline-block; vertical-align: middle; } -.ui-mobile .ui-btn-left, .ui-mobile .ui-btn-right, .ui-btn-left > .ui-btn, .ui-btn-right > .ui-btn { margin: 0; } /* .ui-mobile to increase specificity level */ -.ui-btn-block { display: block; } -.ui-header > .ui-btn, -.ui-footer > .ui-btn { display: inline-block; margin: 0; } -.ui-header .ui-btn-block, -.ui-footer .ui-btn-block { display: block; } -.ui-header .ui-btn-inner, -.ui-footer .ui-btn-inner, -.ui-mini .ui-btn-inner { font-size: 12.5px; padding: .55em 11px .5em; } -.ui-fullsize .ui-btn-inner, -.ui-fullsize .ui-btn-inner { font-size: 16px; padding: .6em 20px; } -.ui-btn-icon-notext { width: 24px; height: 24px; } -.ui-btn-icon-notext .ui-btn-inner { padding: 0; height: 100%; } -.ui-btn-icon-notext .ui-btn-inner .ui-icon { margin: 2px 1px 2px 3px; float: left; } -.ui-btn-text { position: relative; z-index: 1; width: 100%; -moz-user-select: none; -webkit-user-select: none; -ms-user-select: none; } -div.ui-btn-text { width: auto; } -.ui-btn-icon-notext .ui-btn-text { position: absolute; left: -9999px; } -.ui-btn-icon-left .ui-btn-inner { padding-left: 40px; } -.ui-btn-icon-right .ui-btn-inner { padding-right: 40px; } -.ui-btn-icon-top .ui-btn-inner { padding-top: 40px; } -.ui-btn-icon-bottom .ui-btn-inner { padding-bottom: 40px; } -.ui-header .ui-btn-icon-left .ui-btn-inner, -.ui-footer .ui-btn-icon-left .ui-btn-inner, -.ui-mini.ui-btn-icon-left .ui-btn-inner, -.ui-mini .ui-btn-icon-left .ui-btn-inner { padding-left: 30px; } -.ui-header .ui-btn-icon-right .ui-btn-inner, -.ui-footer .ui-btn-icon-right .ui-btn-inner, -.ui-mini.ui-btn-icon-right .ui-btn-inner, -.ui-mini .ui-btn-icon-right .ui-btn-inner { padding-right: 30px; } -.ui-header .ui-btn-icon-top .ui-btn-inner, -.ui-footer .ui-btn-icon-top .ui-btn-inner { padding: 30px 3px .5em 3px; } -.ui-mini.ui-btn-icon-top .ui-btn-inner, -.ui-mini .ui-btn-icon-top .ui-btn-inner { padding-top: 30px; } -.ui-header .ui-btn-icon-bottom .ui-btn-inner, -.ui-footer .ui-btn-icon-bottom .ui-btn-inner { padding: .55em 3px 30px 3px; } -.ui-mini.ui-btn-icon-bottom .ui-btn-inner, -.ui-mini .ui-btn-icon-bottom .ui-btn-inner { padding-bottom: 30px; } -/* Corner styling inheritance */ -.ui-btn-inner { - -webkit-border-radius: inherit; - border-radius: inherit; -} -/*btn icon positioning*/ -.ui-btn-icon-notext .ui-icon { display: block; z-index: 0;} -.ui-btn-icon-left > .ui-btn-inner > .ui-icon, .ui-btn-icon-right > .ui-btn-inner > .ui-icon { position: absolute; top: 50%; margin-top: -9px; } -.ui-btn-icon-top .ui-btn-inner .ui-icon, .ui-btn-icon-bottom .ui-btn-inner .ui-icon { position: absolute; left: 50%; margin-left: -9px; } -.ui-btn-icon-left .ui-icon { left: 10px; } -.ui-btn-icon-right .ui-icon { right: 10px; } -.ui-btn-icon-top .ui-icon { top: 10px; } -.ui-btn-icon-bottom .ui-icon { top: auto; bottom: 10px; } -.ui-header .ui-btn-icon-left .ui-icon, -.ui-footer .ui-btn-icon-left .ui-icon, -.ui-mini.ui-btn-icon-left .ui-icon, -.ui-mini .ui-btn-icon-left .ui-icon { left: 5px; } -.ui-header .ui-btn-icon-right .ui-icon, -.ui-footer .ui-btn-icon-right .ui-icon, -.ui-mini.ui-btn-icon-right .ui-icon, -.ui-mini .ui-btn-icon-right .ui-icon { right: 5px; } -.ui-header .ui-btn-icon-top .ui-icon, -.ui-footer .ui-btn-icon-top .ui-icon, -.ui-mini.ui-btn-icon-top .ui-icon, -.ui-mini .ui-btn-icon-top .ui-icon { top: 5px; } -.ui-header .ui-btn-icon-bottom .ui-icon, -.ui-footer .ui-btn-icon-bottom .ui-icon, -.ui-mini.ui-btn-icon-bottom .ui-icon, -.ui-mini .ui-btn-icon-bottom .ui-icon { bottom: 5px; } -/*hiding native button,inputs */ -.ui-btn-hidden { position: absolute; top: 0; left: 0; width: 100%; height: 100%; -webkit-appearance: none; cursor: pointer; background: #fff; background: rgba(255,255,255,0); filter: Alpha(Opacity=0); opacity: .1; font-size: 1px; border: none; text-indent: -9999px; } -/* Fixes IE/WP filter alpha opacity bugs */ -.ui-disabled .ui-btn-hidden { display: none; } -.ui-disabled { z-index: 1; } -.ui-field-contain .ui-btn.ui-submit { margin: 0; } -label.ui-submit { font-size: 16px; line-height: 1.4; font-weight: normal; margin: 0 0 .3em; display: block; } -@media all and (min-width: 28em){ - .ui-field-contain label.ui-submit { vertical-align: top; display: inline-block; width: 20%; margin: 0 2% 0 0; } - .ui-field-contain .ui-btn.ui-submit { width: 78%; display: inline-block; -webkit-box-sizing: border-box; -moz-box-sizing: border-box; -ms-box-sizing: border-box; box-sizing: border-box; } - .ui-hide-label .ui-btn.ui-submit { width: auto; display: block; } -} -.ui-collapsible-inset { margin: .5em 0; } -.ui-collapsible-heading { font-size: 16px; display: block; margin: 0 -15px; padding: 0; position: relative; } -.ui-collapsible-inset .ui-collapsible-heading { margin: 0; } -.ui-collapsible-heading .ui-btn { text-align: left; margin: 0; border-left-width: 0; border-right-width: 0; } -.ui-collapsible-inset .ui-collapsible-heading .ui-btn { border-right-width: 1px; border-left-width: 1px; } -.ui-collapsible-collapsed + .ui-collapsible:not(.ui-collapsible-inset) .ui-collapsible-heading .ui-btn { border-top-width: 0; } -.ui-collapsible-set .ui-collapsible:not(.ui-collapsible-inset) .ui-collapsible-heading .ui-btn { border-top-width: 1px; } -.ui-collapsible-heading .ui-btn-inner { padding-left: 12px; padding-right: 12px; } -.ui-collapsible-heading .ui-btn-icon-left .ui-btn-inner { padding-left: 40px; } -.ui-collapsible-heading .ui-btn-icon-right .ui-btn-inner { padding-right: 40px; } -.ui-collapsible-heading .ui-btn-icon-top .ui-btn-inner, -.ui-collapsible-heading .ui-btn-icon-bottom .ui-btn-inner { text-align: center; } -.ui-collapsible-heading .ui-btn-icon-left.ui-mini .ui-btn-inner { padding-left: 30px; } -.ui-collapsible-heading .ui-btn-icon-right.ui-mini .ui-btn-inner { padding-right: 30px; } -.ui-collapsible-heading .ui-btn span.ui-btn { position: absolute; left: 6px; top: 50%; margin: -12px 0 0 0; width: 20px; height: 20px; padding: 1px 0 1px 2px; text-indent: -9999px; } -.ui-collapsible-heading .ui-btn span.ui-btn .ui-btn-inner { padding: 10px 0; } -.ui-collapsible-heading .ui-btn span.ui-btn .ui-icon { left: 0; margin-top: -10px; } -.ui-collapsible-heading-status { position: absolute; top: -9999px; left: 0; } -.ui-collapsible-content { - display: block; - margin: 0 -15px; - padding: 10px 15px; - border-left-width: 0; - border-right-width: 0; - border-top: none; /* Overrides ui-body-* */ - background-image: none; /* Overrides ui-body-* */ -} -.ui-collapsible-inset .ui-collapsible-content { margin: 0; border-right-width: 1px; border-left-width: 1px; } -.ui-collapsible-content-collapsed { display: none; } -.ui-collapsible-set > .ui-collapsible.ui-corner-all { - -webkit-border-radius: 0; - border-radius: 0; -} -.ui-collapsible-heading, -.ui-collapsible-heading > .ui-btn { - -webkit-border-radius: inherit; - border-radius: inherit; -} -.ui-collapsible-set .ui-collapsible.ui-first-child { - -webkit-border-top-right-radius: inherit; - border-top-right-radius: inherit; - -webkit-border-top-left-radius: inherit; - border-top-left-radius: inherit; -} -.ui-collapsible-content, -.ui-collapsible-set .ui-collapsible.ui-last-child { - -webkit-border-bottom-right-radius: inherit; - border-bottom-right-radius: inherit; - -webkit-border-bottom-left-radius: inherit; - border-bottom-left-radius: inherit; -} -.ui-collapsible-themed-content:not(.ui-collapsible-collapsed) > .ui-collapsible-heading { - -webkit-border-bottom-right-radius: 0; - border-bottom-right-radius: 0; - -webkit-border-bottom-left-radius: 0; - border-bottom-left-radius: 0; -} -.ui-collapsible-set { margin: .5em 0; } -.ui-collapsible-set .ui-collapsible { margin: -1px 0 0; } -.ui-collapsible-set .ui-collapsible.ui-first-child { margin-top: 0; } -.ui-controlgroup, fieldset.ui-controlgroup { padding: 0; margin: .5em 0; zoom: 1; } -.ui-controlgroup.ui-mini, fieldset.ui-controlgroup.ui-mini { margin: .25em 0; } -.ui-field-contain .ui-controlgroup, .ui-field-contain fieldset.ui-controlgroup { margin: 0; } -.ui-bar .ui-controlgroup { margin: 0 5px; } -.ui-controlgroup-label { font-size: 16px; line-height: 1.4; font-weight: normal; margin: 0 0 .4em; } -.ui-controlgroup-controls label.ui-select, -.ui-controlgroup-controls label.ui-submit { position: absolute; left: -9999px; } -.ui-controlgroup li { list-style: none; } -.ui-controlgroup .ui-btn { margin: 0; } -.ui-controlgroup .ui-btn-icon-notext { width: auto; height: auto; top: auto; } -.ui-controlgroup .ui-btn-icon-notext .ui-btn-inner { height: 20px; padding: .6em 20px .6em 20px } -.ui-controlgroup-horizontal .ui-btn-icon-notext .ui-btn-inner { width: 18px; } -.ui-controlgroup.ui-mini .ui-btn-icon-notext .ui-btn-inner, -.ui-header .ui-controlgroup .ui-btn-icon-notext .ui-btn-inner, -.ui-footer .ui-controlgroup .ui-btn-icon-notext .ui-btn-inner { height: 16px; padding: .55em 11px .5em 11px; } -.ui-controlgroup .ui-btn-icon-notext .ui-btn-inner .ui-icon { position: absolute; top: 50%; right: 50%; margin: -9px -9px 0 0; } -.ui-controlgroup-horizontal .ui-btn-inner { text-align: center; } -.ui-controlgroup-horizontal.ui-mini .ui-btn-inner { height: 16px; line-height: 16px; } -.ui-controlgroup .ui-checkbox label, .ui-controlgroup .ui-radio label { font-size: 16px; } -.ui-controlgroup-horizontal .ui-controlgroup-controls:before, -.ui-controlgroup-horizontal .ui-controlgroup-controls:after { content: ""; display: table; } -.ui-controlgroup-horizontal .ui-controlgroup-controls:after { clear: both; } -.ui-controlgroup-horizontal .ui-controlgroup-controls { display: inline-block; vertical-align: middle; zoom: 1; } -.ui-controlgroup-horizontal .ui-controlgroup-controls > .ui-btn, .ui-controlgroup-horizontal .ui-controlgroup-controls li > .ui-btn, -.ui-controlgroup-horizontal .ui-checkbox, .ui-controlgroup-horizontal .ui-radio, -.ui-controlgroup-horizontal .ui-select { float: left; clear: none; margin: 0; } -/* On IE7 the floating selects will be displayed as block if .ui-btn-text has width 100% */ -.ui-controlgroup-horizontal .ui-select .ui-btn-text { width: auto; } -.ui-controlgroup-vertical .ui-btn { border-bottom-width: 0; } -.ui-controlgroup-vertical .ui-btn.ui-last-child { border-bottom-width: 1px; } -.ui-controlgroup-horizontal .ui-btn { border-right-width: 0; } -.ui-controlgroup-horizontal .ui-btn.ui-last-child { border-right-width: 1px; } -.ui-controlgroup .ui-btn-corner-all { - -webkit-border-radius: 0; - border-radius: 0; -} -.ui-controlgroup .ui-controlgroup-controls, -.ui-controlgroup .ui-radio, -.ui-controlgroup .ui-checkbox, -.ui-controlgroup .ui-select, -.ui-controlgroup li { - -webkit-border-radius: inherit; - border-radius: inherit; -} -.ui-controlgroup-vertical .ui-btn.ui-first-child { - -webkit-border-top-left-radius: inherit; - border-top-left-radius: inherit; - -webkit-border-top-right-radius: inherit; - border-top-right-radius: inherit; -} -.ui-controlgroup-vertical .ui-btn.ui-last-child { - -webkit-border-bottom-left-radius: inherit; - border-bottom-left-radius: inherit; - -webkit-border-bottom-right-radius: inherit; - border-bottom-right-radius: inherit; -} -.ui-controlgroup-horizontal .ui-btn.ui-first-child { - -webkit-border-top-left-radius: inherit; - border-top-left-radius: inherit; - -webkit-border-bottom-left-radius: inherit; - border-bottom-left-radius: inherit; -} -.ui-controlgroup-horizontal .ui-btn.ui-last-child { - -webkit-border-top-right-radius: inherit; - border-top-right-radius: inherit; - -webkit-border-bottom-right-radius: inherit; - border-bottom-right-radius: inherit; -} -.ui-controlgroup .ui-shadow:not(.ui-focus) { - -moz-box-shadow: none; - -webkit-box-shadow: none; - box-shadow: none; -} -@media all and (min-width: 28em){ - .ui-field-contain .ui-controlgroup-label { vertical-align: top; display: inline-block; width: 20%; margin: 0 2% 0 0; } - .ui-field-contain .ui-controlgroup-controls { width: 78%; display: inline-block; } - .ui-field-contain .ui-controlgroup .ui-select { width: 100%; display: block; } - .ui-field-contain .ui-controlgroup-horizontal .ui-select { width: auto; } - .ui-hide-label .ui-controlgroup-controls { width: 100%; } -} -.ui-dialog { - background: none !important; /* this is to ensure that dialog theming does not apply (by default at least) on the page div */ -} -.ui-dialog-contain { - width: 92.5%; - max-width: 500px; - margin: 10% auto 15px auto; - padding: 0; - position: relative; - top: -15px; -} -.ui-dialog-contain > .ui-header, -.ui-dialog-contain > .ui-content, -.ui-dialog-contain > .ui-footer { - display: block; - position: relative; - width: auto; - margin: 0; -} -.ui-dialog-contain > .ui-header { - border: none; - overflow: hidden; - z-index: 10; - padding: 0; -} -.ui-dialog-contain > .ui-content { - padding: 15px; -} -.ui-dialog-contain > .ui-footer { - z-index: 10; - padding: 0 15px; -} -.ui-popup-open .ui-header-fixed, -.ui-popup-open .ui-footer-fixed { - position: absolute !important; /* See line #553 of popup.js */ -} -.ui-popup-screen { - background-image: url(data:image/gif;base64,R0lGODlhAQABAID/AMDAwAAAACH5BAEAAAAALAAAAAABAAEAAAICRAEAOw==); /* Necessary to set some form of background to ensure element is clickable in IE6/7. While legacy IE won't understand the data-URI'd image, it ensures no additional requests occur in all other browsers with little overhead. */ - top: 0; - left: 0; - right: 0; - bottom: 1px; - position: absolute; - filter: Alpha(Opacity=0); - opacity: 0; - z-index: 1099; -} -.ui-popup-screen.in { - opacity: 0.5; - filter: Alpha(Opacity=50); -} -.ui-popup-screen.out { - opacity: 0; - filter: Alpha(Opacity=0); -} -.ui-popup-container { - z-index: 1100; - display: inline-block; - position: absolute; - padding: 0; - outline: 0; -} -.ui-popup { - position: relative; -} -.ui-popup.ui-content, -.ui-popup .ui-content { - overflow: visible; -} -.ui-popup > p, -.ui-popup > h1, -.ui-popup > h2, -.ui-popup > h3, -.ui-popup > h4, -.ui-popup > h5, -.ui-popup > h6 { - margin: .5em 7px; -} -.ui-popup > span { - display: block; - margin: .5em 7px; -} -.ui-popup .ui-title { - font-size: 16px; - font-weight: bold; - margin-top: .5em; - margin-bottom: .5em; -} -.ui-popup-container .ui-content > p, -.ui-popup-container .ui-content > h1, -.ui-popup-container .ui-content > h2, -.ui-popup-container .ui-content > h3, -.ui-popup-container .ui-content > h4, -.ui-popup-container .ui-content > h5, -.ui-popup-container .ui-content > h6 { - margin: .5em 0; -} -.ui-popup-container .ui-content > span { - margin: 0; -} -.ui-popup-container .ui-content > p:first-child, -.ui-popup-container .ui-content > h1:first-child, -.ui-popup-container .ui-content > h2:first-child, -.ui-popup-container .ui-content > h3:first-child, -.ui-popup-container .ui-content > h4:first-child, -.ui-popup-container .ui-content > h5:first-child, -.ui-popup-container .ui-content > h6:first-child { - margin-top: 0; -} -.ui-popup-container .ui-content > p:last-child, -.ui-popup-container .ui-content > h1:last-child, -.ui-popup-container .ui-content > h2:last-child, -.ui-popup-container .ui-content > h3:last-child, -.ui-popup-container .ui-content > h4:last-child, -.ui-popup-container .ui-content > h5:last-child, -.ui-popup-container .ui-content > h6:last-child { - margin-bottom: 0; -} -.ui-popup > img { - width: auto; - height: auto; - max-width: 100%; - max-height: 100%; - vertical-align: middle; -} -.ui-popup:not(.ui-content) > img:only-child, -.ui-popup:not(.ui-content) > .ui-btn-left:first-child + img:last-child, -.ui-popup:not(.ui-content) > .ui-btn-right:first-child + img:last-child { - -webkit-border-radius: inherit; - border-radius: inherit; -} -.ui-popup iframe { - vertical-align: middle; -} -@media all and (min-width: 28em){ - .ui-popup .ui-field-contain label.ui-submit, - .ui-popup .ui-field-contain .ui-controlgroup-label, - .ui-popup .ui-field-contain label.ui-select, - .ui-popup .ui-field-contain label.ui-input-text { - font-size: 16px; line-height: 1.4; display: block; font-weight: normal; margin: 0 0 .3em; - } - .ui-popup .ui-field-contain .ui-btn.ui-submit, - .ui-popup .ui-field-contain .ui-controlgroup-controls, - .ui-popup .ui-field-contain .ui-select, - .ui-popup .ui-field-contain input.ui-input-text, - .ui-popup .ui-field-contain textarea.ui-input-text, - .ui-popup .ui-field-contain .ui-input-search { - width: 100%; display: block; - } -} -.ui-popup > .ui-btn-left, -.ui-popup > .ui-btn-right { - position: absolute; - top: -9px; - margin: 0; - z-index: 1101; -} -.ui-popup > .ui-btn-left { left: -9px; } -.ui-popup > .ui-btn-right { right: -9px; } -.ui-popup-hidden { top: -99999px; left: -9999px; } -.ui-checkbox, .ui-radio { position: relative; clear: both; margin: 0; z-index: 1; } -.ui-checkbox .ui-btn, .ui-radio .ui-btn { text-align: left; z-index: 2; } -.ui-controlgroup .ui-checkbox .ui-btn, .ui-controlgroup .ui-radio .ui-btn { margin: 0; } -.ui-checkbox .ui-btn-inner, .ui-radio .ui-btn-inner { white-space: normal; } -.ui-checkbox .ui-btn-icon-left .ui-btn-inner,.ui-radio .ui-btn-icon-left .ui-btn-inner { padding-left: 45px; } -.ui-checkbox .ui-mini.ui-btn-icon-left .ui-btn-inner,.ui-radio .ui-mini.ui-btn-icon-left .ui-btn-inner { padding-left: 36px; } -.ui-checkbox .ui-btn-icon-right .ui-btn-inner, .ui-radio .ui-btn-icon-right .ui-btn-inner { padding-right: 45px; } -.ui-checkbox .ui-mini.ui-btn-icon-right .ui-btn-inner, .ui-radio .ui-mini.ui-btn-icon-right .ui-btn-inner { padding-right: 36px; } -.ui-checkbox .ui-btn-icon-top .ui-btn-inner, .ui-radio .ui-btn-icon-top .ui-btn-inner { padding-right: 0; padding-left: 0; text-align: center; } -.ui-checkbox .ui-btn-icon-bottom .ui-btn-inner, .ui-radio .ui-btn-icon-bottom .ui-btn-inner { padding-right: 0; padding-left: 0; text-align: center; } -.ui-checkbox .ui-icon, .ui-radio .ui-icon { top: 1.1em; } -.ui-checkbox .ui-btn-icon-left .ui-icon, .ui-radio .ui-btn-icon-left .ui-icon { left: 15px; } -.ui-checkbox .ui-mini.ui-btn-icon-left .ui-icon, .ui-radio .ui-mini.ui-btn-icon-left .ui-icon { left: 9px; } -.ui-checkbox .ui-btn-icon-right .ui-icon, .ui-radio .ui-btn-icon-right .ui-icon { right: 15px; } -.ui-checkbox .ui-mini.ui-btn-icon-right .ui-icon, .ui-radio .ui-mini.ui-btn-icon-right .ui-icon { right: 9px; } -.ui-checkbox .ui-btn-icon-top .ui-icon, .ui-radio .ui-btn-icon-top .ui-icon { top: 10px; } -.ui-checkbox .ui-btn-icon-bottom .ui-icon, .ui-radio .ui-btn-icon-bottom .ui-icon { top: auto; bottom: 10px; } -.ui-checkbox .ui-btn-icon-right .ui-icon, .ui-radio .ui-btn-icon-right .ui-icon { right: 15px; } -.ui-checkbox .ui-mini.ui-btn-icon-right .ui-icon, .ui-radio .ui-mini.ui-btn-icon-right .ui-icon { right: 9px; } -.ui-controlgroup-horizontal .ui-checkbox .ui-icon, -.ui-controlgroup-horizontal .ui-radio .ui-icon { display: none; } -.ui-controlgroup-horizontal .ui-checkbox .ui-btn-inner, -.ui-controlgroup-horizontal .ui-radio .ui-btn-inner { padding: .6em 20px; } -.ui-controlgroup-horizontal .ui-checkbox .ui-mini .ui-btn-inner, -.ui-controlgroup-horizontal .ui-radio .ui-mini .ui-btn-inner { padding: .55em 11px .5em; } -/* input, label positioning */ -.ui-checkbox input,.ui-radio input { position:absolute; left:20px; top:50%; width: 10px; height: 10px; margin:-5px 0 0 0; outline: 0 !important; z-index: 1; } -.ui-field-contain, fieldset.ui-field-contain { padding: .8em 0; margin: 0; border-width: 0 0 1px 0; overflow: visible; } -.ui-field-contain:last-child { border-bottom-width: 0; } -.ui-field-contain { max-width: 100%; } /* This prevents horizontal scrollbar in IE7 */ -@media all and (min-width: 28em){ - .ui-field-contain, .ui-mobile fieldset.ui-field-contain { border-width: 0; padding: 0; margin: 1em 0; } -} -.ui-select { display: block; position: relative; } -.ui-select select { position: absolute; left: -9999px; top: -9999px; } -.ui-select .ui-btn { opacity: 1; } -.ui-field-contain .ui-select .ui-btn { margin: 0; } -/* Fixes #2588: When Windows Phone 7.5 (Mango) tries to calculate a numeric opacity for a select (including "inherit") without explicitly specifying an opacity on the parent to give it context, a bug appears where clicking elsewhere on the page after opening the select will open the select again. */ -.ui-select .ui-btn select { cursor: pointer; -webkit-appearance: none; left: 0; top:0; width: 100%; min-height: 1.5em; min-height: 100%; height: 3em; max-height: 100%; filter: Alpha(Opacity=0); opacity: 0; z-index: 2; } -.ui-select .ui-disabled { opacity: .3; } -/* Display none because of issues with IE/WP's filter alpha opacity */ -.ui-select .ui-disabled select { display: none; } -@-moz-document url-prefix() { .ui-select .ui-btn select { opacity: 0.0001; }} -.ui-select .ui-btn.ui-select-nativeonly { border-radius: 0; border: 0; } -.ui-select .ui-btn.ui-select-nativeonly select { opacity: 1; text-indent: 0; display: block; } -.ui-select .ui-disabled.ui-select-nativeonly .ui-btn-inner { opacity: 0; } -.ui-select .ui-btn-icon-right .ui-btn-inner, .ui-select .ui-li-has-count .ui-btn-inner { padding-right: 45px; } -.ui-select .ui-mini.ui-btn-icon-right .ui-btn-inner { padding-right: 32px; } -.ui-select .ui-btn-icon-right.ui-li-has-count .ui-btn-inner { padding-right: 80px; } -.ui-select .ui-mini.ui-btn-icon-right.ui-li-has-count .ui-btn-inner { padding-right: 67px; } -.ui-select .ui-btn-icon-right .ui-icon { right: 15px; } -.ui-select .ui-mini.ui-btn-icon-right .ui-icon { right: 7px; } -.ui-select .ui-btn-icon-right.ui-li-has-count .ui-li-count { right: 45px; } -.ui-select .ui-mini.ui-btn-icon-right.ui-li-has-count .ui-li-count { right: 32px; } -/* labels */ -label.ui-select { font-size: 16px; line-height: 1.4; font-weight: normal; margin: 0 0 .3em; display: block; } -/*listbox*/ -.ui-select .ui-btn-text, .ui-selectmenu .ui-btn-text { display: block; min-height: 1em; overflow: hidden !important; -/* This !important is required for iPad Safari specifically. See https://github.com/jquery/jquery-mobile/issues/2647 */ } -.ui-select .ui-btn-text { text-overflow: ellipsis; } -.ui-selectmenu { padding: 6px; min-width: 160px; } -.ui-selectmenu .ui-listview { margin: 0; } -.ui-selectmenu .ui-btn.ui-li-divider { cursor: default; } -.ui-screen-hidden, .ui-selectmenu-list .ui-li .ui-icon { display: none; } -.ui-selectmenu-list .ui-li .ui-icon { display: block; } -.ui-li.ui-selectmenu-placeholder { display: none; } -.ui-selectmenu .ui-header { margin: 0; padding: 0; } -.ui-selectmenu.ui-popup .ui-header { -webkit-border-top-left-radius: 0; border-top-left-radius: 0; -webkit-border-top-right-radius: 0; border-top-right-radius: 0; } -.ui-selectmenu .ui-header .ui-title { margin: 0.6em 46px 0.8em; } -@media all and (min-width: 28em){ - .ui-field-contain label.ui-select { vertical-align: top; display: inline-block; width: 20%; margin: 0 2% 0 0; } - .ui-field-contain .ui-select { width: 78%; display: inline-block; } - .ui-hide-label .ui-select { width: 100%; } -} -/* when no placeholder is defined in a multiple select, the header height doesn't even extend past the close button. this shim's content in there */ -.ui-selectmenu .ui-header h1:after { content: '.'; visibility: hidden; } -label.ui-input-text { font-size: 16px; line-height: 1.4; display: block; font-weight: normal; margin: 0 0 .3em; } -input.ui-input-text, textarea.ui-input-text { background-image: none; padding: .4em; margin: .5em 0; min-height: 1.4em; line-height: 1.4em; font-size: 16px; display: block; width: 100%; outline: 0; } -input.ui-mini, .ui-mini input, textarea.ui-mini { font-size: 14px; } -div.ui-input-text input.ui-input-text, div.ui-input-text textarea.ui-input-text, -.ui-input-search input.ui-input-text { border: none; width: 100%; padding: .4em 0; margin: 0; display: block; background: transparent none; outline: 0 !important; } -.ui-input-search, div.ui-input-text { margin: .5em 0; background-image: none; position: relative; } -.ui-input-search { padding: 0 30px; } -div.ui-input-text { padding: 0 .4em; } -div.ui-input-has-clear { padding: 0 30px 0 .4em; } -input.ui-input-text.ui-mini, textarea.ui-input-text.ui-mini, -.ui-input-search.ui-mini, div.ui-input-text.ui-mini { margin: .25em 0; } -.ui-field-contain input.ui-input-text, .ui-field-contain textarea.ui-input-text, -.ui-field-contain .ui-input-search, .ui-field-contain div.ui-input-text { margin: 0; } -textarea.ui-input-text { -webkit-box-sizing: border-box; -moz-box-sizing: border-box; -ms-box-sizing: border-box; box-sizing: border-box; } -input.ui-input-text { -webkit-appearance: none; } -textarea.ui-input-text { height: 50px; -webkit-transition: height 200ms linear; -moz-transition: height 200ms linear; -o-transition: height 200ms linear; transition: height 200ms linear; } -textarea.ui-mini { height: 45px; } -.ui-icon-searchfield:after { position: absolute; left: 7px; top: 50%; margin-top: -9px; content: ""; width: 18px; height: 18px; opacity: .5; } -.ui-input-search .ui-input-clear, .ui-input-text .ui-input-clear { position: absolute; right: 0; top: 50%; margin-top: -13px; } -.ui-mini .ui-input-clear { right: -3px; } -.ui-input-search .ui-input-clear-hidden, .ui-input-text .ui-input-clear-hidden { display: none; } -/* Resolves issue #5166: Added to support issue introduced in Firefox 15. We can likely remove this in the future. */ -input::-moz-placeholder, textarea::-moz-placeholder { color: #aaa; } -/* Resolves issue #5131: Width of textinput depends on its type, for Android 4.1 */ -input[type=number]::-webkit-outer-spin-button { margin: 0; } -@media all and (min-width: 28em){ - .ui-field-contain label.ui-input-text { vertical-align: top; display: inline-block; width: 20%; margin: 0 2% 0 0 } - .ui-field-contain input.ui-input-text, - .ui-field-contain textarea.ui-input-text, - .ui-field-contain .ui-input-search, - .ui-field-contain div.ui-input-text { width: 78%; display: inline-block; } - .ui-field-contain .ui-input-search, - .ui-field-contain div.ui-input-text { -webkit-box-sizing: border-box; -moz-box-sizing: border-box; -ms-box-sizing: border-box; box-sizing: border-box; } - .ui-hide-label input.ui-input-text, - .ui-hide-label textarea.ui-input-text, - .ui-hide-label .ui-input-search, - .ui-hide-label div.ui-input-text, - .ui-input-search input.ui-input-text, - div.ui-input-text input.ui-input-text { width: 100%; } -} -.ui-rangeslider { - zoom: 1; - margin: 0; -} -.ui-rangeslider:before, -.ui-rangeslider:after { - content: ""; - display: table; -} -.ui-rangeslider:after { - clear: both; -} -/* Margin-top/bottom: .5em * 16px/14px to make it equal to ui-rangeslider-sliders margin (input font-size is 14px) */ -.ui-rangeslider input.ui-input-text.ui-slider-input { - margin: .57143em 0; -} -.ui-rangeslider.ui-mini input.ui-slider-input { - margin: .28571em 0; -} -.ui-rangeslider input.ui-slider-input.ui-rangeslider-last { - float: right; -} -.ui-rangeslider .ui-rangeslider-sliders { - position: relative; - overflow: visible; - height: 30px; - margin: .5em 68px; -} -.ui-rangeslider.ui-mini .ui-rangeslider-sliders { - margin: .25em 68px; -} -.ui-field-contain .ui-rangeslider input.ui-slider-input, -.ui-field-contain .ui-rangeslider.ui-mini input.ui-slider-input, -.ui-field-contain .ui-rangeslider .ui-rangeslider-sliders, -.ui-field-contain .ui-rangeslider.ui-mini .ui-rangeslider-sliders { - margin-top: 0; - margin-bottom: 0; -} -.ui-rangeslider .ui-rangeslider-sliders .ui-slider-track { - position: absolute; - top: 6px; - right: 0; - left: 0; - margin: 0; -} -.ui-rangeslider.ui-mini .ui-rangeslider-sliders .ui-slider-track { - top: 8px; -} -.ui-rangeslider .ui-slider-track:first-child .ui-slider-bg { - display: none; -} -.ui-rangeslider .ui-rangeslider-sliders .ui-slider-track:first-child { - background-color: transparent; - background: none; - border-width: 0; - height: 0; -} -/* this makes ie6 and ie7 set height to 0 to fix z-index problem */ -html >/**/body .ui-rangeslider .ui-rangeslider-sliders .ui-slider-track:first-child { - height: 15px; - border-width: 1px; -} -html >/**/body .ui-rangeslider.ui-mini .ui-rangeslider-sliders .ui-slider-track:first-child { - height: 12px; -} -@media all and (min-width: 28em){ - .ui-field-contain .ui-rangeslider label.ui-slider { - float: left; - } - .ui-field-contain .ui-rangeslider input.ui-slider-input { - position: relative; - z-index: 1; - } - .ui-field-contain .ui-rangeslider input.ui-slider-input.ui-rangeslider-first, - .ui-field-contain .ui-rangeslider.ui-mini input.ui-slider-input.ui-rangeslider-first { - margin-right: 17px; - } - .ui-field-contain .ui-rangeslider .ui-rangeslider-sliders, - .ui-field-contain .ui-rangeslider.ui-mini .ui-rangeslider-sliders { - float: left; - width: 78%; - margin: 0 -68px; - } - .ui-field-contain .ui-rangeslider .ui-slider-track, - .ui-field-contain .ui-rangeslider.ui-mini .ui-slider-track { - right: 68px; - left: 68px; - } - .ui-field-contain.ui-hide-label .ui-rangeslider input.ui-slider-input.ui-rangeslider-first { - margin: 0; - } - .ui-field-contain.ui-hide-label .ui-rangeslider .ui-rangeslider-sliders, - .ui-field-contain.ui-hide-label .ui-rangeslider.ui-mini .ui-rangeslider-sliders { - width: auto; - float: none; - margin: 0 68px; - } - .ui-field-contain.ui-hide-label .ui-rangeslider .ui-slider-track, - .ui-field-contain.ui-hide-label .ui-rangeslider.ui-mini .ui-slider-track { - right: 0; - left: 0; - } -} -.ui-listview { margin: 0; } -ol.ui-listview, ol.ui-listview .ui-li-divider { counter-reset: listnumbering; } -.ui-content .ui-listview, .ui-panel-inner > .ui-listview { margin: -15px; } -.ui-collapsible-content > .ui-listview { margin: -10px -15px; } -.ui-content .ui-listview-inset, .ui-panel-inner .ui-listview-inset { margin: 1em 0; } -.ui-collapsible-content .ui-listview-inset { margin: .5em 0; } -.ui-listview, .ui-li { list-style: none; padding: 0; } -.ui-li, .ui-li.ui-field-contain { display: block; margin: 0; position: relative; overflow: visible; text-align: left; border-width: 0; border-top-width: 1px; } -.ui-li.ui-btn, .ui-li.ui-field-contain, .ui-li-divider, .ui-li-static { margin: 0; } -.ui-listview-inset .ui-li { border-right-width: 1px; border-left-width: 1px; } -.ui-li.ui-last-child, .ui-li.ui-field-contain.ui-last-child { border-bottom-width: 1px; } -.ui-collapsible-content > .ui-listview:not(.ui-listview-inset) > .ui-li.ui-first-child { border-top-width: 0; } -.ui-collapsible-themed-content .ui-listview:not(.ui-listview-inset) > .ui-li.ui-last-child { border-bottom-width: 0; } -.ui-li .ui-btn-text a.ui-link-inherit { text-overflow: ellipsis; overflow: hidden; white-space: nowrap; } -.ui-li-static { background-image: none; } -.ui-li-divider { padding: .5em 15px; font-size: 14px; font-weight: bold; } -ol.ui-listview .ui-link-inherit:before, ol.ui-listview .ui-li-static:before, .ui-li-dec { font-size: .8em; display: inline-block; padding-right: .3em; font-weight: normal; counter-increment: listnumbering; content: counter(listnumbering) ". "; } -ol.ui-listview .ui-li-jsnumbering:before { content: "" !important; } /* to avoid chance of duplication */ -.ui-listview .ui-li > .ui-btn-text { - -webkit-border-radius: inherit; - border-radius: inherit; -} -.ui-listview > .ui-li.ui-first-child, -.ui-listview .ui-btn.ui-first-child > .ui-li > .ui-btn-text > .ui-link-inherit { - -webkit-border-top-right-radius: inherit; - border-top-right-radius: inherit; - -webkit-border-top-left-radius: inherit; - border-top-left-radius: inherit; -} -.ui-listview > .ui-li.ui-last-child, -.ui-listview .ui-btn.ui-last-child > .ui-li > .ui-btn-text > .ui-link-inherit, -.ui-collapsible-content > .ui-listview:not(.ui-listview-inset), -.ui-collapsible-content > .ui-listview:not(.ui-listview-inset) .ui-li.ui-last-child { - -webkit-border-bottom-right-radius: inherit; - border-bottom-right-radius: inherit; - -webkit-border-bottom-left-radius: inherit; - border-bottom-left-radius: inherit; -} -.ui-listview > .ui-li.ui-first-child .ui-li-link-alt { - -webkit-border-top-right-radius: inherit; - border-top-right-radius: inherit; -} -.ui-listview > .ui-li.ui-last-child .ui-li-link-alt { - -webkit-border-bottom-right-radius: inherit; - border-bottom-right-radius: inherit; -} -.ui-listview > .ui-li.ui-first-child .ui-li-thumb:not(.ui-li-icon) { - -webkit-border-top-left-radius: inherit; - border-top-left-radius: inherit; -} -.ui-listview > .ui-li.ui-last-child .ui-li-thumb:not(.ui-li-icon) { - -webkit-border-bottom-left-radius: inherit; - border-bottom-left-radius: inherit; -} -.ui-li>.ui-btn-inner { display: block; position: relative; padding: 0; } -.ui-li .ui-btn-inner a.ui-link-inherit, .ui-li-static.ui-li { padding: .7em 15px; display: block; } -.ui-li-has-thumb .ui-btn-inner a.ui-link-inherit, .ui-li-static.ui-li-has-thumb { min-height: 59px; padding-left: 100px; } -.ui-li-has-icon .ui-btn-inner a.ui-link-inherit, .ui-li-static.ui-li-has-icon { min-height: 20px; padding-left: 40px; } -.ui-li-has-count .ui-btn-inner a.ui-link-inherit, .ui-li-static.ui-li-has-count, .ui-li-divider.ui-li-has-count { padding-right: 45px; } -.ui-li-has-arrow .ui-btn-inner a.ui-link-inherit, .ui-li-static.ui-li-has-arrow { padding-right: 40px; } -.ui-li-has-arrow.ui-li-has-count .ui-btn-inner a.ui-link-inherit, .ui-li-static.ui-li-has-arrow.ui-li-has-count { padding-right: 75px; } -.ui-li-heading { font-size: 16px; font-weight: bold; display: block; margin: .6em 0; text-overflow: ellipsis; overflow: hidden; white-space: nowrap; } -.ui-li-desc { font-size: 12px; font-weight: normal; display: block; margin: -.5em 0 .6em; text-overflow: ellipsis; overflow: hidden; white-space: nowrap; } -ol.ui-listview > .ui-li .ui-li-heading { display: inline-block; width: 100%; margin-left: -1.3em; text-indent: 1.3em; vertical-align: middle; } -ol.ui-listview > .ui-li .ui-li-desc:not(.ui-li-aside) { text-indent: 1.55em; } -.ui-li-thumb, .ui-listview .ui-li-icon { position: absolute; left: 1px; top: 0; max-height: 80px; max-width: 80px; } -.ui-listview .ui-li-icon { max-height: 16px; max-width: 16px; left: 10px; top: .9em; } -.ui-li-thumb, .ui-listview .ui-li-icon, .ui-li-content { float: left; margin-right: 10px; } -.ui-li-aside { float: right; width: 50%; text-align: right; margin: .3em 0; } -@media all and (min-width: 480px){ - .ui-li-aside { width: 45%; } -} -.ui-li-divider { cursor: default; } -.ui-li-has-alt .ui-btn-inner a.ui-link-inherit, .ui-li-static.ui-li-has-alt { padding-right: 53px; } -.ui-li-has-alt.ui-li-has-count .ui-btn-inner a.ui-link-inherit, .ui-li-static.ui-li-has-alt.ui-li-has-count { padding-right: 88px; } -.ui-li-has-count .ui-li-count { position: absolute; font-size: 11px; font-weight: bold; padding: .2em .5em; top: 50%; margin-top: -.9em; right: 10px; } -.ui-li-has-count.ui-li-divider .ui-li-count, .ui-li-has-count .ui-link-inherit .ui-li-count { margin-top: -.95em; } -.ui-li-has-arrow.ui-li-has-count .ui-li-count { right: 40px; } -.ui-li-has-alt.ui-li-has-count .ui-li-count { right: 53px; } -.ui-li-link-alt { position: absolute; width: 40px; height: 100%; border-width: 0; border-left-width: 1px; top: 0; right: 0; margin: 0; padding: 0; z-index: 2; } -.ui-li-link-alt .ui-btn { overflow: hidden; position: absolute; right: 8px; top: 50%; margin: -13px 0 0 0; border-bottom-width: 1px; z-index: -1;} -.ui-li-link-alt .ui-btn-inner { padding: 0; height: 100%; position: absolute; width: 100%; top: 0; left: 0;} -.ui-li-link-alt .ui-btn .ui-icon { right: 50%; margin-right: -9px; } -.ui-li-link-alt .ui-btn-icon-notext .ui-btn-inner .ui-icon { position: absolute; top: 50%; margin-top: -9px; } -.ui-listview * .ui-btn-inner > .ui-btn > .ui-btn-inner { border-top: 0; } -.ui-listview-filter { border-width: 0; overflow: hidden; margin: -15px -15px 15px -15px; } -.ui-collapsible-content .ui-listview-filter { margin: -10px -15px 10px -15px; border-bottom: inherit; } -.ui-listview-filter-inset { margin: -15px -5px; background: transparent; } -.ui-collapsible-content .ui-listview-filter-inset { margin: -5px; border-bottom-width: 0; } -.ui-listview-filter .ui-input-search { margin: 5px; width: auto; display: block; } -.ui-li.ui-screen-hidden{ display:none; } -/* Odd iPad positioning issue. */ -@media only screen and (min-device-width: 768px) and (max-device-width: 1024px) { - .ui-li .ui-btn-text { overflow: visible; } -} -label.ui-slider { - font-size: 16px; - line-height: 1.4; - font-weight: normal; - margin: 0; - display: block; -} -.ui-field-contain label.ui-slider { - margin-bottom: .4em; -} -div.ui-slider { - height: 30px; - margin: .5em 0; - zoom: 1; -} -div.ui-slider.ui-mini { - margin: .25em 0; -} -.ui-field-contain div.ui-slider, -.ui-field-contain div.ui-slider.ui-mini { - margin: 0; -} -div.ui-slider:before, div.ui-slider:after { - content: ""; - display: table; -} -div.ui-slider:after { - clear: both; -} -/* High level of specificity to override Textinput CSS. */ -input.ui-input-text.ui-slider-input { - display: block; - float: left; - margin: 0; - padding: 4px; - width: 40px; - height: 22px; - line-height: 22px; - font-size: 14px; - border-width: 0; - background-image: none; - font-weight: bold; - text-align: center; - vertical-align: text-bottom; - outline: 0; - -webkit-box-sizing: content-box; - -moz-box-sizing: content-box; - -ms-box-sizing: content-box; - box-sizing: content-box; -} -.ui-slider-input::-webkit-outer-spin-button, -.ui-slider-input::-webkit-inner-spin-button { - -webkit-appearance: none; - margin: 0; -} -.ui-slider-track, -.ui-slider-switch { - position: relative; - overflow: visible; - height: 15px; - margin: 0 15px 0 68px; - top: 6px; -} -.ui-slider-track.ui-mini { - height: 12px; - top: 8px; -} -.ui-slider-bg { - border: none; - height: 100%; -} -/* High level of specificity to override button margins in grids */ -.ui-slider-track .ui-btn.ui-slider-handle, -.ui-slider-switch .ui-btn.ui-slider-handle { - position: absolute; - z-index: 1; - top: 50%; - width: 28px; - height: 28px; - margin: -15px 0 0 -15px; - outline: 0; -} -.ui-slider-track.ui-mini .ui-slider-handle { - height: 14px; - width: 14px; - margin: -8px 0 0 -7px; -} -.ui-slider-handle .ui-btn-inner { - padding: 0; - height: 100%; -} -.ui-slider-track.ui-mini .ui-slider-handle .ui-btn-inner { - height: 30px; - width: 30px; - padding: 0; - margin: -9px 0 0 -9px; - border-top: none; -} -select.ui-slider-switch { - display: none; -} -div.ui-slider-switch { - display: inline-block; - height: 32px; - width: 5.8em; - margin: .5em 0; - top: 0; -} -/* reset the clearfix */ -div.ui-slider-switch:before, div.ui-slider-switch:after { - display: none; - clear: none; -} -div.ui-slider-switch.ui-mini { - width: 5em; - height: 29px; - margin: .25em 0; - top: 0; -} -.ui-field-contain .ui-slider-switch, -.ui-field-contain .ui-slider-switch.ui-mini { - margin: 0; -} -.ui-slider-inneroffset { - margin: 0 16px; - position: relative; - z-index: 1; -} -.ui-slider-switch.ui-mini .ui-slider-inneroffset { - margin: 0 15px 0 14px; -} -.ui-slider-switch .ui-btn.ui-slider-handle { - margin: 1px 0 0 -15px; -} -.ui-slider-switch.ui-mini .ui-slider-handle { - width: 25px; - height: 25px; - margin: 1px 0 0 -13px; - padding: 0; -} -.ui-slider-handle-snapping { - -webkit-transition: left 70ms linear; - -moz-transition: left 70ms linear; -} -.ui-slider-switch.ui-mini .ui-slider-handle .ui-btn-inner { - height: 30px; - width: 30px; - padding: 0; - margin: 0; - border-top: none; -} -.ui-slider-switch .ui-slider-label { - position: absolute; - text-align: center; - width: 100%; - overflow: hidden; - font-size: 16px; - top: 0; - line-height: 2; - min-height: 100%; - border-width: 0; - white-space: nowrap; - cursor: pointer; -} -.ui-slider-switch.ui-mini .ui-slider-label { - font-size: 14px; -} -.ui-slider-switch .ui-slider-label-a { - z-index: 1; - left: 0; - text-indent: -1.5em; -} -.ui-slider-switch .ui-slider-label-b { - z-index: 0; - right: 0; - text-indent: 1.5em; -} -@media all and (min-width: 28em){ - .ui-field-contain label.ui-slider { - vertical-align: top; - display: inline-block; - width: 20%; - margin: 0 2% 0 0; - } - .ui-field-contain div.ui-slider { - display: inline-block; - width: 78%; - } - .ui-field-contain.ui-hide-label div.ui-slider { - display: block; - width: auto; - } - .ui-field-contain div.ui-slider-switch, - .ui-field-contain.ui-hide-label div.ui-slider-switch { - display: inline-block; - width: 5.8em; - } - .ui-field-contain div.ui-slider-switch.ui-mini { - width: 5em; - } -} -.ui-table { - border: 0; - border-collapse: collapse; - padding: 0; - width: 100%; -} -.ui-table th, -.ui-table td { - line-height: 1.5em; - text-align: left; - padding: .4em .5em; - vertical-align:top; -} -.ui-table th .ui-btn, -.ui-table td .ui-btn { - line-height: normal; -} -.ui-table th { - font-weight: bold; -} -.ui-table caption { - text-align:left; - margin-bottom:1.4em; - opacity: .5; -} -/* Add strokes between each row */ -.table-stroke thead th { - border-bottom: 1px solid #d6d6d6; /* non-RGBA fallback */ - border-bottom: 1px solid rgba(0, 0, 0, .1); -} -.table-stroke tbody th, -.table-stroke tbody td { - border-bottom: 1px solid #e6e6e6; /* non-RGBA fallback */ - border-bottom: 1px solid rgba(0, 0, 0, .05); -} -/* Add alternating row stripes */ -.table-stripe tbody tr:nth-child(odd) td, -.table-stripe tbody tr:nth-child(odd) th { - background-color: #eeeeee; /* non-RGBA fallback */ - background-color: rgba(0,0,0,0.04); -} -/* Add stroke to the header and last item */ -.table-stripe thead th, -.table-stripe tbody tr:last-child { - border-bottom: 1px solid #d6d6d6; /* non-RGBA fallback */ - border-bottom: 1px solid rgba(0, 0, 0, .1); -} -/* - Styles for the table columntoggle mode -*/ -.ui-table-columntoggle-btn { - float: right; - margin-bottom:.8em; -} -/* Remove top/bottom margins around the fieldcontain on check list */ -.ui-table-columntoggle-popup fieldset { - margin:0; -} -/* Hide all prioritized columns by default */ -@media only all { - th.ui-table-priority-6, - td.ui-table-priority-6, - th.ui-table-priority-5, - td.ui-table-priority-5, - th.ui-table-priority-4, - td.ui-table-priority-4, - th.ui-table-priority-3, - td.ui-table-priority-3, - th.ui-table-priority-2, - td.ui-table-priority-2, - th.ui-table-priority-1, - td.ui-table-priority-1 { - display: none; - } -} -/* Preset breakpoints if ".ui-responsive" class added to table */ -/* Show priority 1 at 320px (20em x 16px) */ -@media screen and (min-width: 20em) { - .ui-table-columntoggle.ui-responsive th.ui-table-priority-1, - .ui-table-columntoggle.ui-responsive td.ui-table-priority-1 { - display: table-cell; - } -} -/* Show priority 2 at 480px (30em x 16px) */ -@media screen and (min-width: 30em) { - .ui-table-columntoggle.ui-responsive th.ui-table-priority-2, - .ui-table-columntoggle.ui-responsive td.ui-table-priority-2 { - display: table-cell; - } -} -/* Show priority 3 at 640px (40em x 16px) */ -@media screen and (min-width: 40em) { - .ui-table-columntoggle.ui-responsive th.ui-table-priority-3, - .ui-table-columntoggle.ui-responsive td.ui-table-priority-3 { - display: table-cell; - } -} -/* Show priority 4 at 800px (50em x 16px) */ -@media screen and (min-width: 50em) { - .ui-table-columntoggle.ui-responsive th.ui-table-priority-4, - .ui-table-columntoggle.ui-responsive td.ui-table-priority-4 { - display: table-cell; - } -} -/* Show priority 5 at 960px (60em x 16px) */ -@media screen and (min-width: 60em) { - .ui-table-columntoggle.ui-responsive th.ui-table-priority-5, - .ui-table-columntoggle.ui-responsive td.ui-table-priority-5 { - display: table-cell; - } -} -/* Show priority 6 at 1,120px (70em x 16px) */ -@media screen and (min-width: 70em) { - .ui-table-columntoggle.ui-responsive th.ui-table-priority-6, - .ui-table-columntoggle.ui-responsive td.ui-table-priority-6 { - display: table-cell; - } -} -/* Unchecked manually: Always hide */ -.ui-table-columntoggle th.ui-table-cell-hidden, -.ui-table-columntoggle td.ui-table-cell-hidden, -.ui-table-columntoggle.ui-responsive th.ui-table-cell-hidden, -.ui-table-columntoggle.ui-responsive td.ui-table-cell-hidden { - display: none; -} -/* Checked manually: Always show */ -.ui-table-columntoggle th.ui-table-cell-visible, -.ui-table-columntoggle td.ui-table-cell-visible, -.ui-table-columntoggle.ui-responsive th.ui-table-cell-visible, -.ui-table-columntoggle.ui-responsive td.ui-table-cell-visible { - display: table-cell; -} -/* - Styles for the table columntoggle mode -*/ -.ui-table-reflow td .ui-table-cell-label, -.ui-table-reflow th .ui-table-cell-label { - display: none; -} -/* Mobile first styles: Begin with the stacked presentation at narrow widths */ -@media only all { - /* Hide the table headers */ - .ui-table-reflow thead td, - .ui-table-reflow thead th { - display: none; - } - /* Show the table cells as a block level element */ - .ui-table-reflow td, - .ui-table-reflow th { - text-align: left; - display: block; - } - /* Add a fair amount of top margin to visually separate each row when stacked */ - .ui-table-reflow tbody th { - margin-top: 3em; - } - /* Make the label elements a percentage width */ - .ui-table-reflow td .ui-table-cell-label, - .ui-table-reflow th .ui-table-cell-label { - display: block; - padding: .4em; - min-width: 30%; - display: inline-block; - margin: -.4em 1em -.4em -.4em; - } - /* For grouped headers, have a different style to visually separate the levels by classing the first label in each col group */ - .ui-table-reflow th .ui-table-cell-label-top, - .ui-table-reflow td .ui-table-cell-label-top { - display: block; - padding: .4em 0; - margin: .4em 0; - text-transform: uppercase; - font-size: .9em; - font-weight: normal; - } -} -/* Breakpoint to show as a standard table at 560px (35em x 16px) or wider */ -@media ( min-width: 35em ) { - /* Fixes table rendering when switching between breakpoints in Safari <= 5. See https://github.com/jquery/jquery-mobile/issues/5380 */ - .ui-table-reflow.ui-responsive { - display: table-row-group; - } - /* Show the table header rows */ - .ui-table-reflow.ui-responsive td, - .ui-table-reflow.ui-responsive th, - .ui-table-reflow.ui-responsive tbody th, - .ui-table-reflow.ui-responsive tbody td, - .ui-table-reflow.ui-responsive thead td, - .ui-table-reflow.ui-responsive thead th { - display: table-cell; - margin: 0; - } - /* Hide the labels in each cell */ - .ui-table-reflow.ui-responsive td .ui-table-cell-label, - .ui-table-reflow.ui-responsive th .ui-table-cell-label { - display: none; - } -} -/* Hack to make IE9 and WP7.5 treat cells like block level elements, scoped to ui-responsive class */ -/* Applied in a max-width media query up to the table layout breakpoint so we don't need to negate this*/ -@media ( max-width: 35em ) { - .ui-table-reflow.ui-responsive td, - .ui-table-reflow.ui-responsive th { - width: 100%; - -webkit-box-sizing: border-box; - -moz-box-sizing: border-box; - box-sizing: border-box; - float: left; - clear: left; - } -} -/* panel */ -.ui-panel { - width: 17em; - min-height: 100%; - max-height: none; - border-width: 0; - position: absolute; - top: 0; - display: block; -} -.ui-panel-closed { - width: 0; - max-height: 100%; - overflow: hidden; - visibility: hidden; -} -.ui-panel-fixed { - position: fixed; - bottom: -1px; /* fixes gap on Chrome for Android */ - padding-bottom: 1px; -} -.ui-panel-display-overlay { - z-index: 1001; /* fixed toolbars have z-index 1000 */ -} -.ui-panel-display-reveal { - z-index: 0; -} -.ui-panel-display-push { - z-index: 999; -} -.ui-panel-inner { - padding: 15px; -} -/* content-wrap */ -.ui-panel-content-wrap { - position: relative; - left: 0; - min-height: inherit; - border: none; - z-index: 999; -} -.ui-panel-content-wrap-display-overlay, -.ui-panel-animate.ui-panel-content-wrap > .ui-header, /* ios4 fix */ -.ui-panel-content-wrap-closed { - position: static; -} -/* dismiss */ -.ui-panel-dismiss { - position: absolute; - top: 0; - left:0; - height: 100%; - width: 100%; - z-index: 1002; - display: none; -} -.ui-panel-dismiss-open { - display: block; -} -/* animate class is added to panel, wrapper and fixed toolbars */ -.ui-panel-animate { - -webkit-transition: -webkit-transform 350ms ease; - -moz-transition: -moz-transform 350ms ease; - transition: transform 350ms ease; -} -/* hardware acceleration for smoother transitions on WebKit browsers */ -.ui-panel-animate.ui-panel:not(.ui-panel-display-reveal), -.ui-panel-animate.ui-panel:not(.ui-panel-display-reveal) > div, -.ui-panel-animate.ui-panel-closed.ui-panel-display-reveal > div, -.ui-panel-animate.ui-panel-content-wrap, -.ui-panel-animate.ui-panel-content-fixed-toolbar { - -webkit-backface-visibility: hidden; - -webkit-transform: translate3d(0,0,0); -} -/* positioning: panel */ -/* panel left */ -.ui-panel-position-left { - left: -17em; -} -/* animated: panel left (for overlay and push) */ -.ui-panel-animate.ui-panel-position-left.ui-panel-display-overlay, -.ui-panel-animate.ui-panel-position-left.ui-panel-display-push { - left: 0; - -webkit-transform: translate3d(-17em,0,0); - -moz-transform: translate3d(-17em,0,0); - transform: translate3d(-17em,0,0); -} -/* panel left open */ -.ui-panel-position-left.ui-panel-display-reveal, /* negate "panel left" for reveal */ -.ui-panel-position-left.ui-panel-open { - left: 0; -} -/* animated: panel left open (for overlay and push) */ -.ui-panel-animate.ui-panel-position-left.ui-panel-open.ui-panel-display-overlay, -.ui-panel-animate.ui-panel-position-left.ui-panel-open.ui-panel-display-push { - -webkit-transform: translate3d(0,0,0); - transform: translate3d(0,0,0); - -moz-transform: none; -} -/* panel right */ -.ui-panel-position-right { - right: -17em; -} -/* animated: panel right (for overlay and push) */ -.ui-panel-animate.ui-panel-position-right.ui-panel-display-overlay, -.ui-panel-animate.ui-panel-position-right.ui-panel-display-push { - right: 0; - -webkit-transform: translate3d(17em,0,0); - -moz-transform: translate3d(17em,0,0); - transform: translate3d(17em,0,0); -} -/* panel right open */ -.ui-panel-position-right.ui-panel-display-reveal, /* negate "panel right" for reveal */ -.ui-panel-position-right.ui-panel-open { - right: 0; -} -/* animated: panel right open (for overlay and push) */ -.ui-panel-animate.ui-panel-position-right.ui-panel-open.ui-panel-display-overlay, -.ui-panel-animate.ui-panel-position-right.ui-panel-open.ui-panel-display-push { - -webkit-transform: translate3d(0,0,0); - transform: translate3d(0,0,0); - -moz-transform: none; -} -/* positioning: content wrap, fixed toolbars and dismiss */ -/* panel left open */ -.ui-panel-content-fixed-toolbar-position-left.ui-panel-content-fixed-toolbar-open, -.ui-panel-content-wrap-position-left.ui-panel-content-wrap-open, -.ui-panel-dismiss-position-left.ui-panel-dismiss-open { - left: 17em; - right: -17em; -} -/* animated: panel left open (for reveal and push) */ -.ui-panel-animate.ui-panel-content-fixed-toolbar-position-left.ui-panel-content-fixed-toolbar-open.ui-panel-content-fixed-toolbar-display-reveal, -.ui-panel-animate.ui-panel-content-fixed-toolbar-position-left.ui-panel-content-fixed-toolbar-open.ui-panel-content-fixed-toolbar-display-push, -.ui-panel-animate.ui-panel-content-wrap-position-left.ui-panel-content-wrap-open.ui-panel-content-wrap-display-reveal, -.ui-panel-animate.ui-panel-content-wrap-position-left.ui-panel-content-wrap-open.ui-panel-content-wrap-display-push { - left: 0; - right: 0; - -webkit-transform: translate3d(17em,0,0); - -moz-transform: translate3d(17em,0,0); - transform: translate3d(17em,0,0); -} -/* panel right open */ -.ui-panel-content-fixed-toolbar-position-right.ui-panel-content-fixed-toolbar-open, -.ui-panel-content-wrap-position-right.ui-panel-content-wrap-open, -.ui-panel-dismiss-position-right.ui-panel-dismiss-open { - left: -17em; - right: 17em; -} -/* animated: panel right open (for reveal and push) */ -.ui-panel-animate.ui-panel-content-fixed-toolbar-position-right.ui-panel-content-fixed-toolbar-open.ui-panel-content-fixed-toolbar-display-reveal, -.ui-panel-animate.ui-panel-content-fixed-toolbar-position-right.ui-panel-content-fixed-toolbar-open.ui-panel-content-fixed-toolbar-display-push, -.ui-panel-animate.ui-panel-content-wrap-position-right.ui-panel-content-wrap-open.ui-panel-content-wrap-display-reveal, -.ui-panel-animate.ui-panel-content-wrap-position-right.ui-panel-content-wrap-open.ui-panel-content-wrap-display-push { - left: 0; - right: 0; - -webkit-transform: translate3d(-17em,0,0); - -moz-transform: translate3d(-17em,0,0); - transform: translate3d(-17em,0,0); -} -/* negate "panel left/right open" for overlay */ -.ui-panel-content-fixed-toolbar-open.ui-panel-content-fixed-toolbar-display-overlay, -.ui-panel-content-wrap-open.ui-panel-content-wrap-display-overlay { - left: 0; -} -/* always disable overflow-x to prevent zoom issue on Android */ -.ui-page-active.ui-page-panel { - overflow-x: hidden; -} -/* shadows and borders */ -.ui-panel-display-reveal { - -webkit-box-shadow: inset -5px 0 5px rgba(0,0,0,.15); - -moz-box-shadow: inset -5px 0 5px rgba(0,0,0,.15); - box-shadow: inset -5px 0 5px rgba(0,0,0,.15); -} -.ui-panel-position-right.ui-panel-display-reveal { - -webkit-box-shadow: inset 5px 0 5px rgba(0,0,0,.15); - -moz-box-shadow: inset 5px 0 5px rgba(0,0,0,.15); - box-shadow: inset 5px 0 5px rgba(0,0,0,.15); -} -.ui-panel-display-overlay { - -webkit-box-shadow: 5px 0 5px rgba(0,0,0,.15); - -moz-box-shadow: 5px 0 5px rgba(0,0,0,.15); - box-shadow: 5px 0 5px rgba(0,0,0,.15); -} -.ui-panel-position-right.ui-panel-display-overlay { - -webkit-box-shadow: -5px 0 5px rgba(0,0,0,.15); - -moz-box-shadow: -5px 0 5px rgba(0,0,0,.15); - box-shadow: -5px 0 5px rgba(0,0,0,.15); -} -.ui-panel-display-push.ui-panel-open.ui-panel-position-left { - border-right-width: 1px; - margin-right: -1px; -} -.ui-panel-animate.ui-panel-content-fixed-toolbar-position-left.ui-panel-content-fixed-toolbar-open.ui-panel-content-fixed-toolbar-display-push { - margin-left: 1px; -} -.ui-panel-display-push.ui-panel-open.ui-panel-position-right { - border-left-width: 1px; - margin-left: -1px; -} -.ui-panel-animate.ui-panel-content-fixed-toolbar-position-right.ui-panel-content-fixed-toolbar-open.ui-panel-content-fixed-toolbar-display-push { - margin-right: 1px; -} -/* wrap on wide viewports once open */ -@media (min-width:55em){ - .ui-responsive-panel.ui-page-panel-open .ui-panel-content-fixed-toolbar-display-push.ui-panel-content-fixed-toolbar-position-left, - .ui-responsive-panel.ui-page-panel-open .ui-panel-content-fixed-toolbar-display-reveal.ui-panel-content-fixed-toolbar-position-left, - .ui-responsive-panel.ui-page-panel-open .ui-panel-content-wrap-display-push.ui-panel-content-wrap-position-left, - .ui-responsive-panel.ui-page-panel-open .ui-panel-content-wrap-display-reveal.ui-panel-content-wrap-position-left { - margin-right: 17em; - } - .ui-responsive-panel.ui-page-panel-open .ui-panel-content-fixed-toolbar-display-push.ui-panel-content-fixed-toolbar-position-right, - .ui-responsive-panel.ui-page-panel-open .ui-panel-content-fixed-toolbar-display-reveal.ui-panel-content-fixed-toolbar-position-right, - .ui-responsive-panel.ui-page-panel-open .ui-panel-content-wrap-display-push.ui-panel-content-wrap-position-right, - .ui-responsive-panel.ui-page-panel-open .ui-panel-content-wrap-display-reveal.ui-panel-content-wrap-position-right { - margin-left: 17em; - } - .ui-responsive-panel.ui-page-panel-open .ui-panel-content-fixed-toolbar-display-push, - .ui-responsive-panel.ui-page-panel-open .ui-panel-content-fixed-toolbar-display-reveal { - width: auto; - } - .ui-responsive-panel .ui-panel-dismiss-display-push { - display: none; - } -} diff --git a/themes/smartpocket/js/code.photoswipe.jquery.min.js b/themes/smartpocket/js/code.photoswipe.jquery.min.js deleted file mode 100644 index d209fc3e3..000000000 --- a/themes/smartpocket/js/code.photoswipe.jquery.min.js +++ /dev/null @@ -1,164 +0,0 @@ -// PhotoSwipe - http://www.photoswipe.com/ -// Copyright (c) 2012 by Code Computerlove (http://www.codecomputerlove.com) -// Licensed under the MIT license -// version: 3.0.5.1 -(function(e){Function.prototype.bind||(Function.prototype.bind=function(d){var a=[].slice,b=a.call(arguments,1),c=this,g=function(){},f=function(){return c.apply(this instanceof g?this:d||{},b.concat(a.call(arguments)))};g.prototype=c.prototype;f.prototype=new g;return f});"undefined"===typeof e.Code&&(e.Code={});e.Code.Util={registerNamespace:function(){var d=arguments,a=null,b,c,g,f,i;b=0;for(f=d.length;bd.DOM.windowHeight()}};d.Browser._detect()})(window,window.Code.Util); -(function(e,d,a){a.extend(a,{Events:{add:function(a,c,g){"mousewheel"===c&&(c=this._normaliseMouseWheelType());d(a).bind(c,g)},remove:function(a,c,g){"mousewheel"===c&&(c=this._normaliseMouseWheelType());d(a).unbind(c,g)},fire:function(a,c){var g,f=Array.prototype.slice.call(arguments).splice(2);"mousewheel"===c&&(c=this._normaliseMouseWheelType());g="string"===typeof c?{type:c}:c;d(a).trigger(d.Event(g.type,g),f)},getMousePosition:function(a){return{x:a.pageX,y:a.pageY}},getTouchEvent:function(a){return a.originalEvent}, -getWheelDelta:function(b){var c=0;a.isNothing(b.originalEvent.wheelDelta)?a.isNothing(b.originalEvent.detail)||(c=-b.originalEvent.detail/3):c=b.originalEvent.wheelDelta/120;return c},domReady:function(a){d(document).ready(a)},_normaliseMouseWheelType:function(){return a.Browser.isEventSupported("mousewheel")?"mousewheel":"DOMMouseScroll"}}})})(window,window.jQuery,window.Code.Util); -(function(e,d,a){a.extend(a,{DOM:{setData:function(b,c,g){if(a.isLikeArray(b)){var f,d;f=0;for(d=b.length;f"+a+">");a.attr(c);a.append(g);return a[0]},appendChild:function(a,c){d(c).append(a)},insertBefore:function(a,c){d(a).insertBefore(c)},appendText:function(a,c){d(c).text(a)},appendToBody:function(a){d("body").append(a)},removeChild:function(a){d(a).empty().remove()},removeChildren:function(a){d(a).empty()}, -hasAttribute:function(b,c){return!a.isNothing(d(b).attr(c))},getAttribute:function(b,c,g){b=d(b).attr(c);a.isNothing(b)&&!a.isNothing(g)&&(b=g);return b},setAttribute:function(b,c,g){if(a.isLikeArray(b)){var f,d;f=0;for(d=b.length;f=f&&(f=1);if(0>=b&&(d.DOM.setStyle(a,"opacity",f),!d.isNothing(c))){c(a); -return}1<=d.DOM.getStyle(a,"opacity")&&d.DOM.setStyle(a,"opacity",0);d.Browser.isCSSTransformSupported?this._applyTransition(a,"opacity",f,b,c,g):d.isNothing(e.jQuery)||e.jQuery(a).fadeTo(b,f,c)},fadeTo:function(a,b,c,g,f){this.fadeIn(a,c,g,f,b)},fadeOut:function(a,b,c,g){if(0>=b&&(d.DOM.setStyle(a,"opacity",0),!d.isNothing(c))){c(a);return}d.Browser.isCSSTransformSupported?this._applyTransition(a,"opacity",0,b,c,g):e.jQuery(a).fadeTo(b,0,c)},slideBy:function(a,b,c,g,f,i){var j={},b=d.coalesce(b, -0),c=d.coalesce(c,0),i=d.coalesce(i,"ease-out");j[this._transitionPrefix+"Property"]="all";j[this._transitionPrefix+"Delay"]="0";0===g?(j[this._transitionPrefix+"Duration"]="",j[this._transitionPrefix+"TimingFunction"]=""):(j[this._transitionPrefix+"Duration"]=g+"ms",j[this._transitionPrefix+"TimingFunction"]=d.coalesce(i,"ease-out"),d.Events.add(a,this._transitionEndLabel,this._getTransitionEndHandler()));j[this._transformLabel]=d.Browser.is3dSupported?"translate3d("+b+"px, "+c+"px, 0px)":"translate("+ -b+"px, "+c+"px)";d.isNothing(f)||(a.cclallcallback=f);d.DOM.setStyle(a,j);0===g&&e.setTimeout(function(){this._leaveTransforms(a)}.bind(this),this._applyTransitionDelay)},resetTranslate:function(a){var b={};b[this._transformLabel]=b[this._transformLabel]=d.Browser.is3dSupported?"translate3d(0px, 0px, 0px)":"translate(0px, 0px)";d.DOM.setStyle(a,b)},_applyTransition:function(a,b,c,g,f,i){var j={},i=d.coalesce(i,"ease-in");j[this._transitionPrefix+"Property"]=b;j[this._transitionPrefix+"Duration"]= -g+"ms";j[this._transitionPrefix+"TimingFunction"]=i;j[this._transitionPrefix+"Delay"]="0";d.Events.add(a,this._transitionEndLabel,this._getTransitionEndHandler());d.DOM.setStyle(a,j);d.isNothing(f)||(a["ccl"+b+"callback"]=f);e.setTimeout(function(){d.DOM.setStyle(a,b,c)},this._applyTransitionDelay)},_onTransitionEnd:function(a){d.Events.remove(a.currentTarget,this._transitionEndLabel,this._getTransitionEndHandler());this._leaveTransforms(a.currentTarget)},_leaveTransforms:function(a){var b=a.style[this._transitionPrefix+ -"Property"],c=""!==b?"ccl"+b+"callback":"cclallcallback",g,b=d.coalesce(a.style.webkitTransform,a.style.MozTransform,a.style.OTransform,a.style.transform),f,i=e.parseInt(d.DOM.getStyle(a,"left"),0),j=e.parseInt(d.DOM.getStyle(a,"top"),0),h,l,k={};""!==b&&(b=d.Browser.is3dSupported?b.match(/translate3d\((.*?)\)/):b.match(/translate\((.*?)\)/),d.isNothing(b)||(f=b[1].split(", "),h=e.parseInt(f[0],0),l=e.parseInt(f[1],0)));k[this._transitionPrefix+"Property"]="";k[this._transitionPrefix+"Duration"]= -"";k[this._transitionPrefix+"TimingFunction"]="";k[this._transitionPrefix+"Delay"]="";d.DOM.setStyle(a,k);e.setTimeout(function(){if(!d.isNothing(f)){k={};k[this._transformLabel]="";k.left=i+h+"px";k.top=j+l+"px";d.DOM.setStyle(a,k)}if(!d.isNothing(a[c])){g=a[c];delete a[c];g(a)}}.bind(this),this._applyTransitionDelay)}}})})(window,window.Code.Util); -(function(e,d,a){a.registerNamespace("Code.Util.TouchElement");a.TouchElement.EventTypes={onTouch:"CodeUtilTouchElementOnTouch"};a.TouchElement.ActionTypes={touchStart:"touchStart",touchMove:"touchMove",touchEnd:"touchEnd",touchMoveEnd:"touchMoveEnd",tap:"tap",doubleTap:"doubleTap",swipeLeft:"swipeLeft",swipeRight:"swipeRight",swipeUp:"swipeUp",swipeDown:"swipeDown",gestureStart:"gestureStart",gestureChange:"gestureChange",gestureEnd:"gestureEnd"}})(window,window.klass,window.Code.Util); -(function(e,d,a){a.registerNamespace("Code.Util.TouchElement");a.TouchElement.TouchElementClass=d({el:null,captureSettings:null,touchStartPoint:null,touchEndPoint:null,touchStartTime:null,doubleTapTimeout:null,touchStartHandler:null,touchMoveHandler:null,touchEndHandler:null,mouseDownHandler:null,mouseMoveHandler:null,mouseUpHandler:null,mouseOutHandler:null,gestureStartHandler:null,gestureChangeHandler:null,gestureEndHandler:null,swipeThreshold:null,swipeTimeThreshold:null,doubleTapSpeed:null,dispose:function(){var b; -this.removeEventHandlers();for(b in this)a.objectHasProperty(this,b)&&(this[b]=null)},initialize:function(b,c){this.el=b;this.captureSettings={swipe:!1,move:!1,gesture:!1,doubleTap:!1,preventDefaultTouchEvents:!0,allowVerticalScroll:!1};a.extend(this.captureSettings,c);this.swipeThreshold=50;this.doubleTapSpeed=this.swipeTimeThreshold=250;this.touchStartPoint={x:0,y:0};this.touchEndPoint={x:0,y:0}},addEventHandlers:function(){a.isNothing(this.touchStartHandler)&&(this.touchStartHandler=this.onTouchStart.bind(this), -this.touchMoveHandler=this.onTouchMove.bind(this),this.touchEndHandler=this.onTouchEnd.bind(this),this.mouseDownHandler=this.onMouseDown.bind(this),this.mouseMoveHandler=this.onMouseMove.bind(this),this.mouseUpHandler=this.onMouseUp.bind(this),this.mouseOutHandler=this.onMouseOut.bind(this),this.gestureStartHandler=this.onGestureStart.bind(this),this.gestureChangeHandler=this.onGestureChange.bind(this),this.gestureEndHandler=this.onGestureEnd.bind(this));a.Events.add(this.el,"touchstart",this.touchStartHandler); -this.captureSettings.move&&a.Events.add(this.el,"touchmove",this.touchMoveHandler);a.Events.add(this.el,"touchend",this.touchEndHandler);a.Events.add(this.el,"mousedown",this.mouseDownHandler);a.Browser.isGestureSupported&&this.captureSettings.gesture&&(a.Events.add(this.el,"gesturestart",this.gestureStartHandler),a.Events.add(this.el,"gesturechange",this.gestureChangeHandler),a.Events.add(this.el,"gestureend",this.gestureEndHandler))},removeEventHandlers:function(){a.Events.remove(this.el,"touchstart", -this.touchStartHandler);this.captureSettings.move&&a.Events.remove(this.el,"touchmove",this.touchMoveHandler);a.Events.remove(this.el,"touchend",this.touchEndHandler);a.Events.remove(this.el,"mousedown",this.mouseDownHandler);a.Browser.isGestureSupported&&this.captureSettings.gesture&&(a.Events.remove(this.el,"gesturestart",this.gestureStartHandler),a.Events.remove(this.el,"gesturechange",this.gestureChangeHandler),a.Events.remove(this.el,"gestureend",this.gestureEndHandler))},getTouchPoint:function(a){return{x:a[0].pageX, -y:a[0].pageY}},fireTouchEvent:function(b){var c=0,g=0,f=0,d,c=this.touchEndPoint.x-this.touchStartPoint.x,g=this.touchEndPoint.y-this.touchStartPoint.y,f=Math.sqrt(c*c+g*g);if(this.captureSettings.swipe&&(d=new Date,d-=this.touchStartTime,d<=this.swipeTimeThreshold)){if(e.Math.abs(c)>=this.swipeThreshold){a.Events.fire(this,{type:a.TouchElement.EventTypes.onTouch,target:this,point:this.touchEndPoint,action:0>c?a.TouchElement.ActionTypes.swipeLeft:a.TouchElement.ActionTypes.swipeRight,targetEl:b.target, -currentTargetEl:b.currentTarget});return}if(e.Math.abs(g)>=this.swipeThreshold){a.Events.fire(this,{type:a.TouchElement.EventTypes.onTouch,target:this,point:this.touchEndPoint,action:0>g?a.TouchElement.ActionTypes.swipeUp:a.TouchElement.ActionTypes.swipeDown,targetEl:b.target,currentTargetEl:b.currentTarget});return}}1this.imageEl.naturalHeight;this.imageEl.isLoading=!1;a.Events.fire(this,{type:b.Image.EventTypes.onLoad,target:this})},onImageError:function(){this.imageEl.onload=null;this.imageEl.onerror=null;this.imageEl.onabort=null;this.imageEl.isLoading=!1;this.imageEl.isError=!0;a.Events.fire(this,{type:b.Image.EventTypes.onError, -target:this})}})})(window,window.klass,window.Code.Util); -(function(e,d,a){a.registerNamespace("Code.PhotoSwipe.Cache");e=e.Code.PhotoSwipe;e.Cache.Mode={normal:"normal",aggressive:"aggressive"};e.Cache.Functions={getImageSource:function(a){return a.href},getImageCaption:function(b){if("IMG"===b.nodeName)return a.DOM.getAttribute(b,"alt");var c,g,f;c=0;for(g=b.childNodes.length;cb&&(b=this.initialBodyHeight),a.DOM.windowHeight()>b&&(b= -a.DOM.windowHeight())):(c=a.DOM.width(this.settings.target),b=a.DOM.height(this.settings.target),f="0px");a.DOM.setStyle(this.el,{width:c,height:b,top:f})},fadeIn:function(c,b){this.resetPosition();a.DOM.setStyle(this.el,"opacity",0);a.DOM.show(this.el);a.Animation.fadeIn(this.el,c,b)}})})(window,window.klass,window.Code.Util); -(function(e,d,a){a.registerNamespace("Code.PhotoSwipe.Carousel");e=e.Code.PhotoSwipe;e.Carousel.EventTypes={onSlideByEnd:"PhotoSwipeCarouselOnSlideByEnd",onSlideshowStart:"PhotoSwipeCarouselOnSlideshowStart",onSlideshowStop:"PhotoSwipeCarouselOnSlideshowStop"};e.Carousel.CssClasses={carousel:"ps-carousel",content:"ps-carousel-content",item:"ps-carousel-item",itemLoading:"ps-carousel-item-loading",itemError:"ps-carousel-item-error"};e.Carousel.SlideByAction={previous:"previous",current:"current",next:"next"}})(window, -window.klass,window.Code.Util); -(function(e,d,a){a.registerNamespace("Code.PhotoSwipe.Carousel");var b=e.Code.PhotoSwipe;b.Carousel.CarouselClass=d({el:null,contentEl:null,settings:null,cache:null,slideByEndHandler:null,currentCacheIndex:null,isSliding:null,isSlideshowActive:null,lastSlideByAction:null,touchStartPoint:null,touchStartPosition:null,imageLoadHandler:null,imageErrorHandler:null,slideshowTimeout:null,dispose:function(){var c,g,f;g=0;for(f=this.cache.images.length;gthis.cache.images.length&&(this.settings.loop=!1);this.el=a.DOM.createElement("div",{"class":b.Carousel.CssClasses.carousel},"");a.DOM.setStyle(this.el,{display:"block",position:"absolute",left:0,top:0,overflow:"hidden",zIndex:this.settings.zIndex});a.DOM.hide(this.el);this.contentEl=a.DOM.createElement("div",{"class":b.Carousel.CssClasses.content},"");a.DOM.setStyle(this.contentEl,{display:"block",position:"absolute",left:0,top:0});a.DOM.appendChild(this.contentEl, -this.el);d=3>c.images.length?c.images.length:3;for(f=0;fe&&(b=e/f,f=Math.round(f*b),d=Math.round(d*b)),d>h)b=h/d,d=Math.round(d*b),f=Math.round(f*b)}else b=c.isLandscape?e/c.naturalWidth:h/c.naturalHeight,f=Math.round(c.naturalWidth* -b),d=Math.round(c.naturalHeight*b),"zoom"===this.settings.imageScaleMethod?(b=1,de?b=e/f:d>h&&(b=h/d),1!==b&&(f=Math.round(f*b),d=Math.round(d*b)));b=Math.round((h-d)/2)+"px";e=Math.round((e-f)/2)+"px";a.DOM.setStyle(c,{position:"absolute",width:f,height:d,top:b,left:e,display:"block"})}},setContentLeftPosition:function(){var c,b,d;c=this.settings.target===e?a.DOM.windowWidth():a.DOM.width(this.settings.target); -b=this.getItemEls();d=0;this.settings.loop?d=-1*(c+this.settings.margin):this.currentCacheIndex===this.cache.images.length-1?d=-1*(b.length-1)*(c+this.settings.margin):0this.cache.images.length-1&&(b=0),0>e&&(e=this.cache.images.length-1),b=this.cache.getImages([e,this.currentCacheIndex,b]),a||this.addCacheImageToItemEl(b[1],d[1]),this.addCacheImageToItemEl(b[2],d[2]),this.addCacheImageToItemEl(b[0], -d[0])):1===d.length?a||(b=this.cache.getImages([this.currentCacheIndex]),this.addCacheImageToItemEl(b[0],d[0])):2===d.length?0===this.currentCacheIndex?(b=this.cache.getImages([this.currentCacheIndex,this.currentCacheIndex+1]),a||this.addCacheImageToItemEl(b[0],d[0]),this.addCacheImageToItemEl(b[1],d[1])):(b=this.cache.getImages([this.currentCacheIndex-1,this.currentCacheIndex]),a||this.addCacheImageToItemEl(b[1],d[1]),this.addCacheImageToItemEl(b[0],d[0])):0===this.currentCacheIndex?(b=this.cache.getImages([this.currentCacheIndex, -this.currentCacheIndex+1,this.currentCacheIndex+2]),a||this.addCacheImageToItemEl(b[0],d[0]),this.addCacheImageToItemEl(b[1],d[1]),this.addCacheImageToItemEl(b[2],d[2])):(this.currentCacheIndex===this.cache.images.length-1?(b=this.cache.getImages([this.currentCacheIndex-2,this.currentCacheIndex-1,this.currentCacheIndex]),a||this.addCacheImageToItemEl(b[2],d[2]),this.addCacheImageToItemEl(b[1],d[1])):(b=this.cache.getImages([this.currentCacheIndex-1,this.currentCacheIndex,this.currentCacheIndex+1]), -a||this.addCacheImageToItemEl(b[1],d[1]),this.addCacheImageToItemEl(b[2],d[2])),this.addCacheImageToItemEl(b[0],d[0]))},addCacheImageToItemEl:function(c,d){a.DOM.removeClass(d,b.Carousel.CssClasses.itemError);a.DOM.addClass(d,b.Carousel.CssClasses.itemLoading);a.DOM.removeChildren(d);a.DOM.setStyle(c.imageEl,{display:"none"});a.DOM.appendChild(c.imageEl,d);a.Animation.resetTranslate(c.imageEl);a.Events.add(c,b.Image.EventTypes.onLoad,this.imageLoadHandler);a.Events.add(c,b.Image.EventTypes.onError, -this.imageErrorHandler);c.load()},slideCarousel:function(c,d,f){if(!this.isSliding){var i,j;i=this.settings.target===e?a.DOM.windowWidth()+this.settings.margin:a.DOM.width(this.settings.target)+this.settings.margin;f=a.coalesce(f,this.settings.slideSpeed);if(!(1>e.Math.abs(j))){switch(d){case a.TouchElement.ActionTypes.swipeLeft:c=-1*i;break;case a.TouchElement.ActionTypes.swipeRight:c=i;break;default:j=c.x-this.touchStartPoint.x,c=e.Math.abs(j)>i/2?0c?b.Carousel.SlideByAction.next: -0this.currentCacheIndex?this.currentCacheIndex=this.cache.images.length-1:this.currentCacheIndex=== -this.cache.images.length&&(this.currentCacheIndex=0)):3=c?this.slideByEndHandler():a.Browser.isCSSTransformSupported?(d=a.coalesce(this.contentEl.style.webkitTransform,this.contentEl.style.MozTransform, -this.contentEl.style.OTransform,this.contentEl.style.transform,""),0===d.indexOf("translate3d("+b)?this.slideByEndHandler():0===d.indexOf("translate("+b)?this.slideByEndHandler():a.Animation.slideBy(this.contentEl,b,0,c,this.slideByEndHandler,this.settings.slideTimingFunction)):a.isNothing(e.jQuery)||(d={left:this.getStartingPos().x+b+"px"},"ease-out"===this.settings.animationTimingFunction&&(this.settings.animationTimingFunction="easeOutQuad"),a.isNothing(e.jQuery.easing[this.settings.animationTimingFunction])&& -(this.settings.animationTimingFunction="linear"),e.jQuery(this.contentEl).animate(d,this.settings.slideSpeed,this.settings.animationTimingFunction,this.slideByEndHandler))}})})(window,window.klass,window.Code.Util,window.Code.PhotoSwipe.TouchElement); -(function(e,d,a){a.registerNamespace("Code.PhotoSwipe.Toolbar");var b=e.Code.PhotoSwipe;b.Toolbar.CssClasses={toolbar:"ps-toolbar",toolbarContent:"ps-toolbar-content",toolbarTop:"ps-toolbar-top",caption:"ps-caption",captionBottom:"ps-caption-bottom",captionContent:"ps-caption-content",close:"ps-toolbar-close",play:"ps-toolbar-play",playDisabled:"ps-toolbar-play-disabled",previous:"ps-toolbar-previous",previousDisabled:"ps-toolbar-previous-disabled",next:"ps-toolbar-next",nextDisabled:"ps-toolbar-next-disabled"}; -b.Toolbar.ToolbarAction={close:"close",play:"play",next:"next",previous:"previous",none:"none"};b.Toolbar.EventTypes={onTap:"PhotoSwipeToolbarOnClick",onBeforeShow:"PhotoSwipeToolbarOnBeforeShow",onShow:"PhotoSwipeToolbarOnShow",onBeforeHide:"PhotoSwipeToolbarOnBeforeHide",onHide:"PhotoSwipeToolbarOnHide"};b.Toolbar.getToolbar=function(){return''}})(window,window.klass,window.Code.Util); -(function(e,d,a){a.registerNamespace("Code.PhotoSwipe.Toolbar");var b=e.Code.PhotoSwipe;b.Toolbar.ToolbarClass=d({toolbarEl:null,closeEl:null,playEl:null,previousEl:null,nextEl:null,captionEl:null,captionContentEl:null,currentCaption:null,settings:null,cache:null,timeout:null,isVisible:null,fadeOutHandler:null,touchStartHandler:null,touchMoveHandler:null,clickHandler:null,dispose:function(){var b;this.clearTimeout();this.removeEventHandlers();a.Animation.stop(this.toolbarEl);a.Animation.stop(this.captionEl); -a.DOM.removeChild(this.toolbarEl,this.toolbarEl.parentNode);a.DOM.removeChild(this.captionEl,this.captionEl.parentNode);for(b in this)a.objectHasProperty(this,b)&&(this[b]=null)},initialize:function(c,d){var f;this.settings=d;this.cache=c;this.isVisible=!1;this.fadeOutHandler=this.onFadeOut.bind(this);this.touchStartHandler=this.onTouchStart.bind(this);this.touchMoveHandler=this.onTouchMove.bind(this);this.clickHandler=this.onClick.bind(this);f=b.Toolbar.CssClasses.toolbar;this.settings.captionAndToolbarFlipPosition&& -(f=f+" "+b.Toolbar.CssClasses.toolbarTop);this.toolbarEl=a.DOM.createElement("div",{"class":f},this.settings.getToolbar());a.DOM.setStyle(this.toolbarEl,{left:0,position:"absolute",overflow:"hidden",zIndex:this.settings.zIndex});this.settings.target===e?a.DOM.appendToBody(this.toolbarEl):a.DOM.appendChild(this.toolbarEl,this.settings.target);a.DOM.hide(this.toolbarEl);this.closeEl=a.DOM.find("."+b.Toolbar.CssClasses.close,this.toolbarEl)[0];this.settings.preventHide&&!a.isNothing(this.closeEl)&&a.DOM.hide(this.closeEl); -this.playEl=a.DOM.find("."+b.Toolbar.CssClasses.play,this.toolbarEl)[0];this.settings.preventSlideshow&&!a.isNothing(this.playEl)&&a.DOM.hide(this.playEl);this.nextEl=a.DOM.find("."+b.Toolbar.CssClasses.next,this.toolbarEl)[0];this.previousEl=a.DOM.find("."+b.Toolbar.CssClasses.previous,this.toolbarEl)[0];f=b.Toolbar.CssClasses.caption;this.settings.captionAndToolbarFlipPosition&&(f=f+" "+b.Toolbar.CssClasses.captionBottom);this.captionEl=a.DOM.createElement("div",{"class":f},"");a.DOM.setStyle(this.captionEl, -{left:0,position:"absolute",overflow:"hidden",zIndex:this.settings.zIndex});this.settings.target===e?a.DOM.appendToBody(this.captionEl):a.DOM.appendChild(this.captionEl,this.settings.target);a.DOM.hide(this.captionEl);this.captionContentEl=a.DOM.createElement("div",{"class":b.Toolbar.CssClasses.captionContent},"");a.DOM.appendChild(this.captionContentEl,this.captionEl);this.addEventHandlers()},resetPosition:function(){var b,d,f;this.settings.target===e?(this.settings.captionAndToolbarFlipPosition? -(d=a.DOM.windowScrollTop(),f=a.DOM.windowScrollTop()+a.DOM.windowHeight()-a.DOM.height(this.captionEl)):(d=a.DOM.windowScrollTop()+a.DOM.windowHeight()-a.DOM.height(this.toolbarEl),f=a.DOM.windowScrollTop()),b=a.DOM.windowWidth()):(this.settings.captionAndToolbarFlipPosition?(d="0",f=a.DOM.height(this.settings.target)-a.DOM.height(this.captionEl)):(d=a.DOM.height(this.settings.target)-a.DOM.height(this.toolbarEl),f=0),b=a.DOM.width(this.settings.target));a.DOM.setStyle(this.toolbarEl,{top:d+"px", -width:b});a.DOM.setStyle(this.captionEl,{top:f+"px",width:b})},toggleVisibility:function(a){this.isVisible?this.fadeOut():this.show(a)},show:function(c){a.Animation.stop(this.toolbarEl);a.Animation.stop(this.captionEl);this.resetPosition();this.setToolbarStatus(c);a.Events.fire(this,{type:b.Toolbar.EventTypes.onBeforeShow,target:this});this.showToolbar();this.setCaption(c);this.showCaption();this.isVisible=!0;this.setTimeout();a.Events.fire(this,{type:b.Toolbar.EventTypes.onShow,target:this})},setTimeout:function(){0< -this.settings.captionAndToolbarAutoHideDelay&&(this.clearTimeout(),this.timeout=e.setTimeout(this.fadeOut.bind(this),this.settings.captionAndToolbarAutoHideDelay))},clearTimeout:function(){a.isNothing(this.timeout)||(e.clearTimeout(this.timeout),this.timeout=null)},fadeOut:function(){this.clearTimeout();a.Events.fire(this,{type:b.Toolbar.EventTypes.onBeforeHide,target:this});a.Animation.fadeOut(this.toolbarEl,this.settings.fadeOutSpeed);a.Animation.fadeOut(this.captionEl,this.settings.fadeOutSpeed, -this.fadeOutHandler);this.isVisible=!1},addEventHandlers:function(){a.Browser.isTouchSupported&&(a.Browser.blackberry||a.Events.add(this.toolbarEl,"touchstart",this.touchStartHandler),a.Events.add(this.toolbarEl,"touchmove",this.touchMoveHandler),a.Events.add(this.captionEl,"touchmove",this.touchMoveHandler));a.Events.add(this.toolbarEl,"click",this.clickHandler)},removeEventHandlers:function(){a.Browser.isTouchSupported&&(a.Browser.blackberry||a.Events.remove(this.toolbarEl,"touchstart",this.touchStartHandler), -a.Events.remove(this.toolbarEl,"touchmove",this.touchMoveHandler),a.Events.remove(this.captionEl,"touchmove",this.touchMoveHandler));a.Events.remove(this.toolbarEl,"click",this.clickHandler)},handleTap:function(c){this.clearTimeout();var d;if(c.target===this.nextEl||a.DOM.isChildOf(c.target,this.nextEl))d=b.Toolbar.ToolbarAction.next;else if(c.target===this.previousEl||a.DOM.isChildOf(c.target,this.previousEl))d=b.Toolbar.ToolbarAction.previous;else if(c.target===this.closeEl||a.DOM.isChildOf(c.target, -this.closeEl))d=b.Toolbar.ToolbarAction.close;else if(c.target===this.playEl||a.DOM.isChildOf(c.target,this.playEl))d=b.Toolbar.ToolbarAction.play;this.setTimeout();a.isNothing(d)&&(d=b.Toolbar.ToolbarAction.none);a.Events.fire(this,{type:b.Toolbar.EventTypes.onTap,target:this,action:d,tapTarget:c.target})},setCaption:function(b){a.DOM.removeChildren(this.captionContentEl);this.currentCaption=a.coalesce(this.cache.images[b].caption,"\u00a0");a.isObject(this.currentCaption)?a.DOM.appendChild(this.currentCaption, -this.captionContentEl):(""===this.currentCaption&&(this.currentCaption="\u00a0"),a.DOM.appendText(this.currentCaption,this.captionContentEl));this.currentCaption="\u00a0"===this.currentCaption?"":this.currentCaption;this.resetPosition()},showToolbar:function(){a.DOM.setStyle(this.toolbarEl,{opacity:this.settings.captionAndToolbarOpacity});a.DOM.show(this.toolbarEl)},showCaption:function(){(""===this.currentCaption||1>this.captionContentEl.childNodes.length)&&!this.settings.captionAndToolbarShowEmptyCaptions? -a.DOM.hide(this.captionEl):(a.DOM.setStyle(this.captionEl,{opacity:this.settings.captionAndToolbarOpacity}),a.DOM.show(this.captionEl))},setToolbarStatus:function(c){this.settings.loop||(a.DOM.removeClass(this.previousEl,b.Toolbar.CssClasses.previousDisabled),a.DOM.removeClass(this.nextEl,b.Toolbar.CssClasses.nextDisabled),a.DOM.removeClass(this.playEl,b.Toolbar.CssClasses.playDisabled),0this.settings.maxUserZoom&&(a=this.settings.maxUserZoom);return a},setStartingScaleAndRotation:function(a,b){this.transformSettings.startingScale=this.getScale(a);this.transformSettings.startingRotation=(this.transformSettings.startingRotation+b)%360},zoomRotate:function(a,b){this.transformSettings.scale=this.getScale(a);this.transformSettings.rotation=this.transformSettings.startingRotation+b;this.applyTransform()},panStart:function(a){this.setStartingTranslateFromCurrentTransform(); -this.panStartingPoint={x:a.x,y:a.y}},pan:function(a){var b=(a.y-this.panStartingPoint.y)/this.transformSettings.scale;this.transformSettings.translateX=this.transformSettings.startingTranslateX+(a.x-this.panStartingPoint.x)/this.transformSettings.scale;this.transformSettings.translateY=this.transformSettings.startingTranslateY+b;this.applyTransform()},zoomAndPanToPoint:function(b,d){if(this.settings.target===e){this.panStart({x:a.DOM.windowWidth()/2,y:a.DOM.windowHeight()/2});var f=(d.y-this.panStartingPoint.y)/ -this.transformSettings.scale;this.transformSettings.translateX=-1*(this.transformSettings.startingTranslateX+(d.x-this.panStartingPoint.x)/this.transformSettings.scale);this.transformSettings.translateY=-1*(this.transformSettings.startingTranslateY+f)}this.setStartingScaleAndRotation(b,0);this.transformSettings.scale=this.transformSettings.startingScale;this.transformSettings.rotation=0;this.applyTransform()},applyTransform:function(){var c=this.transformSettings.rotation%360,d=e.parseInt(this.transformSettings.translateX, -10),f=e.parseInt(this.transformSettings.translateY,10),i="scale("+this.transformSettings.scale+") rotate("+c+"deg) translate("+d+"px, "+f+"px)";a.DOM.setStyle(this.transformEl,{webkitTransform:i,MozTransform:i,msTransform:i,OTransform:i,transform:i});a.Events.fire(this,{target:this,type:b.ZoomPanRotate.EventTypes.onTransform,scale:this.transformSettings.scale,rotation:this.transformSettings.rotation,rotationDegs:c,translateX:d,translateY:f})}})})(window,window.klass,window.Code.Util); -(function(e,d){d.registerNamespace("Code.PhotoSwipe");var a=e.Code.PhotoSwipe;a.CssClasses={buildingBody:"ps-building",activeBody:"ps-active"};a.EventTypes={onBeforeShow:"PhotoSwipeOnBeforeShow",onShow:"PhotoSwipeOnShow",onBeforeHide:"PhotoSwipeOnBeforeHide",onHide:"PhotoSwipeOnHide",onDisplayImage:"PhotoSwipeOnDisplayImage",onResetPosition:"PhotoSwipeOnResetPosition",onSlideshowStart:"PhotoSwipeOnSlideshowStart",onSlideshowStop:"PhotoSwipeOnSlideshowStop",onTouch:"PhotoSwipeOnTouch",onBeforeCaptionAndToolbarShow:"PhotoSwipeOnBeforeCaptionAndToolbarShow", -onCaptionAndToolbarShow:"PhotoSwipeOnCaptionAndToolbarShow",onBeforeCaptionAndToolbarHide:"PhotoSwipeOnBeforeCaptionAndToolbarHide",onCaptionAndToolbarHide:"PhotoSwipeOnCaptionAndToolbarHide",onToolbarTap:"PhotoSwipeOnToolbarTap",onBeforeZoomPanRotateShow:"PhotoSwipeOnBeforeZoomPanRotateShow",onZoomPanRotateShow:"PhotoSwipeOnZoomPanRotateShow",onBeforeZoomPanRotateHide:"PhotoSwipeOnBeforeZoomPanRotateHide",onZoomPanRotateHide:"PhotoSwipeOnZoomPanRotateHide",onZoomPanRotateTransform:"PhotoSwipeOnZoomPanRotateTransform"}; -a.instances=[];a.activeInstances=[];a.setActivateInstance=function(b){if(-1this.currentIndex||this.currentIndex>this.originalImages.length-1)throw"Code.PhotoSwipe.PhotoSwipeClass.show: Starting index out of range";this.isAlreadyGettingPage=this.getWindowDimensions();h.setActivateInstance(this);this.windowDimensions=this.getWindowDimensions();this.settings.target===e?a.DOM.addClass(e.document.body,h.CssClasses.buildingBody):a.DOM.addClass(this.settings.target,h.CssClasses.buildingBody);this.createComponents();a.Events.fire(this,{type:h.EventTypes.onBeforeShow, -target:this});this.documentOverlay.fadeIn(this.settings.fadeInSpeed,this.onDocumentOverlayFadeIn.bind(this))},getWindowDimensions:function(){return{width:a.DOM.windowWidth(),height:a.DOM.windowHeight()}},createComponents:function(){this.documentOverlay=new c.DocumentOverlayClass(this.settings);this.carousel=new g.CarouselClass(this.cache,this.settings);this.uiLayer=new i.UILayerClass(this.settings);this.settings.captionAndToolbarHide||(this.toolbar=new f.ToolbarClass(this.cache,this.settings))},resetPosition:function(){if(!this._isResettingPosition){var b= -this.getWindowDimensions();this._isResettingPosition=!0;this.windowDimensions=b;this.destroyZoomPanRotate();this.documentOverlay.resetPosition();this.carousel.resetPosition();a.isNothing(this.toolbar)||this.toolbar.resetPosition();this.uiLayer.resetPosition();this._isResettingPosition=!1;a.Events.fire(this,{type:h.EventTypes.onResetPosition,target:this})}},addEventHandler:function(b,c){a.Events.add(this,b,c)},addEventHandlers:function(){a.isNothing(this.windowOrientationChangeHandler)&&(this.windowOrientationChangeHandler= -this.onWindowOrientationChange.bind(this),this.windowScrollHandler=this.onWindowScroll.bind(this),this.keyDownHandler=this.onKeyDown.bind(this),this.windowHashChangeHandler=this.onWindowHashChange.bind(this),this.uiLayerTouchHandler=this.onUILayerTouch.bind(this),this.carouselSlideByEndHandler=this.onCarouselSlideByEnd.bind(this),this.carouselSlideshowStartHandler=this.onCarouselSlideshowStart.bind(this),this.carouselSlideshowStopHandler=this.onCarouselSlideshowStop.bind(this),this.toolbarTapHandler= -this.onToolbarTap.bind(this),this.toolbarBeforeShowHandler=this.onToolbarBeforeShow.bind(this),this.toolbarShowHandler=this.onToolbarShow.bind(this),this.toolbarBeforeHideHandler=this.onToolbarBeforeHide.bind(this),this.toolbarHideHandler=this.onToolbarHide.bind(this),this.mouseWheelHandler=this.onMouseWheel.bind(this),this.zoomPanRotateTransformHandler=this.onZoomPanRotateTransform.bind(this));a.Browser.android?this.orientationEventName="resize":a.Browser.iOS&&!a.Browser.safari?a.Events.add(e.document.body, -"orientationchange",this.windowOrientationChangeHandler):this.orientationEventName=!a.isNothing(e.onorientationchange)?"orientationchange":"resize";a.isNothing(this.orientationEventName)||a.Events.add(e,this.orientationEventName,this.windowOrientationChangeHandler);this.settings.target===e&&a.Events.add(e,"scroll",this.windowScrollHandler);this.settings.enableKeyboard&&a.Events.add(e.document,"keydown",this.keyDownHandler);this.isBackEventSupported&&this.settings.backButtonHideEnabled&&(this.windowHashChangeHandler= -this.onWindowHashChange.bind(this),this.settings.jQueryMobile?e.location.hash=this.settings.jQueryMobileDialogHash:(this.currentHistoryHashValue="PhotoSwipe"+(new Date).getTime().toString(),e.location.hash=this.currentHistoryHashValue),a.Events.add(e,"hashchange",this.windowHashChangeHandler));this.settings.enableMouseWheel&&a.Events.add(e,"mousewheel",this.mouseWheelHandler);a.Events.add(this.uiLayer,a.TouchElement.EventTypes.onTouch,this.uiLayerTouchHandler);a.Events.add(this.carousel,g.EventTypes.onSlideByEnd, -this.carouselSlideByEndHandler);a.Events.add(this.carousel,g.EventTypes.onSlideshowStart,this.carouselSlideshowStartHandler);a.Events.add(this.carousel,g.EventTypes.onSlideshowStop,this.carouselSlideshowStopHandler);a.isNothing(this.toolbar)||(a.Events.add(this.toolbar,f.EventTypes.onTap,this.toolbarTapHandler),a.Events.add(this.toolbar,f.EventTypes.onBeforeShow,this.toolbarBeforeShowHandler),a.Events.add(this.toolbar,f.EventTypes.onShow,this.toolbarShowHandler),a.Events.add(this.toolbar,f.EventTypes.onBeforeHide, -this.toolbarBeforeHideHandler),a.Events.add(this.toolbar,f.EventTypes.onHide,this.toolbarHideHandler))},removeEventHandlers:function(){a.Browser.iOS&&!a.Browser.safari&&a.Events.remove(e.document.body,"orientationchange",this.windowOrientationChangeHandler);a.isNothing(this.orientationEventName)||a.Events.remove(e,this.orientationEventName,this.windowOrientationChangeHandler);a.Events.remove(e,"scroll",this.windowScrollHandler);this.settings.enableKeyboard&&a.Events.remove(e.document,"keydown",this.keyDownHandler); -this.isBackEventSupported&&(this.settings.backButtonHideEnabled&&null!==this.windowHashChangeHandler)&&a.Events.remove(e,"hashchange",this.windowHashChangeHandler);this.settings.enableMouseWheel&&a.Events.remove(e,"mousewheel",this.mouseWheelHandler);a.isNothing(this.uiLayer)||a.Events.remove(this.uiLayer,a.TouchElement.EventTypes.onTouch,this.uiLayerTouchHandler);a.isNothing(this.toolbar)||(a.Events.remove(this.carousel,g.EventTypes.onSlideByEnd,this.carouselSlideByEndHandler),a.Events.remove(this.carousel, -g.EventTypes.onSlideshowStart,this.carouselSlideshowStartHandler),a.Events.remove(this.carousel,g.EventTypes.onSlideshowStop,this.carouselSlideshowStopHandler));a.isNothing(this.toolbar)||(a.Events.remove(this.toolbar,f.EventTypes.onTap,this.toolbarTapHandler),a.Events.remove(this.toolbar,f.EventTypes.onBeforeShow,this.toolbarBeforeShowHandler),a.Events.remove(this.toolbar,f.EventTypes.onShow,this.toolbarShowHandler),a.Events.remove(this.toolbar,f.EventTypes.onBeforeHide,this.toolbarBeforeHideHandler), -a.Events.remove(this.toolbar,f.EventTypes.onHide,this.toolbarHideHandler))},hide:function(){if(!this.settings.preventHide){if(a.isNothing(this.documentOverlay))throw"Code.PhotoSwipe.PhotoSwipeClass.hide: PhotoSwipe instance is already hidden";a.isNothing(this.hiding)&&(this.clearUIWebViewResetPositionTimeout(),this.destroyZoomPanRotate(),this.removeEventHandlers(),a.Events.fire(this,{type:h.EventTypes.onBeforeHide,target:this}),this.uiLayer.dispose(),this.uiLayer=null,a.isNothing(this.toolbar)||(this.toolbar.dispose(), -this.toolbar=null),this.carousel.dispose(),this.carousel=null,a.DOM.removeClass(e.document.body,h.CssClasses.activeBody),a.DOM.removeClass(e.document.getElementsByTagName("html")[0],h.CssClasses.activeBody),this.documentOverlay.dispose(),this.documentOverlay=null,this._isResettingPosition=!1,h.unsetActivateInstance(this),a.Events.fire(this,{type:h.EventTypes.onHide,target:this}),this.goBackInHistory())}},goBackInHistory:function(){this.isBackEventSupported&&this.settings.backButtonHideEnabled&&(this.backButtonClicked|| -e.history.back())},play:function(){!this.isZoomActive()&&(!this.settings.preventSlideshow&&!a.isNothing(this.carousel))&&(!a.isNothing(this.toolbar)&&this.toolbar.isVisible&&this.toolbar.fadeOut(),this.carousel.startSlideshow())},stop:function(){this.isZoomActive()||a.isNothing(this.carousel)||this.carousel.stopSlideshow()},previous:function(){this.isZoomActive()||a.isNothing(this.carousel)||this.carousel.previous()},next:function(){this.isZoomActive()||a.isNothing(this.carousel)||this.carousel.next()}, -toggleToolbar:function(){this.isZoomActive()||a.isNothing(this.toolbar)||this.toolbar.toggleVisibility(this.currentIndex)},fadeOutToolbarIfVisible:function(){!a.isNothing(this.toolbar)&&(this.toolbar.isVisible&&0g&&(b.point.x=g);b.point.yc&&(b.point.y=c);this.createZoomPanRotate(); -this.isZoomActive()&&this.zoomPanRotate.zoomAndPanToPoint(this.settings.doubleTapZoomLevel,b.point);break;case a.TouchElement.ActionTypes.gestureStart:this.createZoomPanRotate()}a.Events.fire(this,{type:h.EventTypes.onTouch,target:this,point:b.point,action:b.action})},onCarouselSlideByEnd:function(b){this.currentIndex=b.cacheIndex;a.isNothing(this.toolbar)||(this.toolbar.setCaption(this.currentIndex),this.toolbar.setToolbarStatus(this.currentIndex));a.Events.fire(this,{type:h.EventTypes.onDisplayImage, -target:this,action:b.action,index:b.cacheIndex})},onToolbarTap:function(b){switch(b.action){case f.ToolbarAction.next:this.next();break;case f.ToolbarAction.previous:this.previous();break;case f.ToolbarAction.close:this.hide();break;case f.ToolbarAction.play:this.play()}a.Events.fire(this,{type:h.EventTypes.onToolbarTap,target:this,toolbarAction:b.action,tapTarget:b.tapTarget})},onMouseWheel:function(b){var c=a.Events.getWheelDelta(b);b.timeStamp-(this.mouseWheelStartTime||0)c?this.next():0c.DOM.windowHeight()}};c.Browser._detect()})(window,window.Code.Util); -(function(e,c){c.extend(c,{Events:{add:function(a,b,d){this._checkHandlersProperty(a);"mousewheel"===b&&(b=this._normaliseMouseWheelType());"undefined"===typeof a.__eventHandlers[b]&&(a.__eventHandlers[b]=[]);a.__eventHandlers[b].push(d);this._isBrowserObject(a)&&a.addEventListener(b,d,!1)},remove:function(a,b,d){this._checkHandlersProperty(a);"mousewheel"===b&&(b=this._normaliseMouseWheelType());if(a.__eventHandlers[b]instanceof Array){var f,g,e=a.__eventHandlers[b];if(c.isNothing(d)){if(this._isBrowserObject(a)){f= -0;for(g=e.length;fj.length){a.dispatchEvent(d);return}}this._checkHandlersProperty(a);d="string"===typeof b?{type:b}:b;d.target||(d.target=a);if(!d.type)throw Error("Event object missing 'type' property.");if(a.__eventHandlers[d.type]instanceof Array){g=a.__eventHandlers[d.type];j.unshift(d);d=0;for(f=g.length;d=g&&(g=1);if(0>=b&&(c.DOM.setStyle(a,"opacity",g),!c.isNothing(d))){d(a); -return}1<=c.DOM.getStyle(a,"opacity")&&c.DOM.setStyle(a,"opacity",0);c.Browser.isCSSTransformSupported?this._applyTransition(a,"opacity",g,b,d,f):c.isNothing(e.jQuery)||e.jQuery(a).fadeTo(b,g,d)},fadeTo:function(a,b,d,f,c){this.fadeIn(a,d,f,c,b)},fadeOut:function(a,b,d,f){if(0>=b&&(c.DOM.setStyle(a,"opacity",0),!c.isNothing(d))){d(a);return}c.Browser.isCSSTransformSupported?this._applyTransition(a,"opacity",0,b,d,f):e.jQuery(a).fadeTo(b,0,d)},slideBy:function(a,b,d,f,g,h){var j={},b=c.coalesce(b, -0),d=c.coalesce(d,0),h=c.coalesce(h,"ease-out");j[this._transitionPrefix+"Property"]="all";j[this._transitionPrefix+"Delay"]="0";0===f?(j[this._transitionPrefix+"Duration"]="",j[this._transitionPrefix+"TimingFunction"]=""):(j[this._transitionPrefix+"Duration"]=f+"ms",j[this._transitionPrefix+"TimingFunction"]=c.coalesce(h,"ease-out"),c.Events.add(a,this._transitionEndLabel,this._getTransitionEndHandler()));j[this._transformLabel]=c.Browser.is3dSupported?"translate3d("+b+"px, "+d+"px, 0px)":"translate("+ -b+"px, "+d+"px)";c.isNothing(g)||(a.cclallcallback=g);c.DOM.setStyle(a,j);0===f&&e.setTimeout(function(){this._leaveTransforms(a)}.bind(this),this._applyTransitionDelay)},resetTranslate:function(a){var b={};b[this._transformLabel]=b[this._transformLabel]=c.Browser.is3dSupported?"translate3d(0px, 0px, 0px)":"translate(0px, 0px)";c.DOM.setStyle(a,b)},_applyTransition:function(a,b,d,f,g,h){var j={},h=c.coalesce(h,"ease-in");j[this._transitionPrefix+"Property"]=b;j[this._transitionPrefix+"Duration"]= -f+"ms";j[this._transitionPrefix+"TimingFunction"]=h;j[this._transitionPrefix+"Delay"]="0";c.Events.add(a,this._transitionEndLabel,this._getTransitionEndHandler());c.DOM.setStyle(a,j);c.isNothing(g)||(a["ccl"+b+"callback"]=g);e.setTimeout(function(){c.DOM.setStyle(a,b,d)},this._applyTransitionDelay)},_onTransitionEnd:function(a){c.Events.remove(a.currentTarget,this._transitionEndLabel,this._getTransitionEndHandler());this._leaveTransforms(a.currentTarget)},_leaveTransforms:function(a){var b=a.style[this._transitionPrefix+ -"Property"],d=""!==b?"ccl"+b+"callback":"cclallcallback",f,b=c.coalesce(a.style.webkitTransform,a.style.MozTransform,a.style.OTransform,a.style.transform),g,h=e.parseInt(c.DOM.getStyle(a,"left"),0),j=e.parseInt(c.DOM.getStyle(a,"top"),0),i,l,k={};""!==b&&(b=c.Browser.is3dSupported?b.match(/translate3d\((.*?)\)/):b.match(/translate\((.*?)\)/),c.isNothing(b)||(g=b[1].split(", "),i=e.parseInt(g[0],0),l=e.parseInt(g[1],0)));k[this._transitionPrefix+"Property"]="";k[this._transitionPrefix+"Duration"]= -"";k[this._transitionPrefix+"TimingFunction"]="";k[this._transitionPrefix+"Delay"]="";c.DOM.setStyle(a,k);e.setTimeout(function(){if(!c.isNothing(g)){k={};k[this._transformLabel]="";k.left=h+i+"px";k.top=j+l+"px";c.DOM.setStyle(a,k)}if(!c.isNothing(a[d])){f=a[d];delete a[d];f(a)}}.bind(this),this._applyTransitionDelay)}}})})(window,window.Code.Util); -(function(e,c,a){a.registerNamespace("Code.Util.TouchElement");a.TouchElement.EventTypes={onTouch:"CodeUtilTouchElementOnTouch"};a.TouchElement.ActionTypes={touchStart:"touchStart",touchMove:"touchMove",touchEnd:"touchEnd",touchMoveEnd:"touchMoveEnd",tap:"tap",doubleTap:"doubleTap",swipeLeft:"swipeLeft",swipeRight:"swipeRight",swipeUp:"swipeUp",swipeDown:"swipeDown",gestureStart:"gestureStart",gestureChange:"gestureChange",gestureEnd:"gestureEnd"}})(window,window.klass,window.Code.Util); -(function(e,c,a){a.registerNamespace("Code.Util.TouchElement");a.TouchElement.TouchElementClass=c({el:null,captureSettings:null,touchStartPoint:null,touchEndPoint:null,touchStartTime:null,doubleTapTimeout:null,touchStartHandler:null,touchMoveHandler:null,touchEndHandler:null,mouseDownHandler:null,mouseMoveHandler:null,mouseUpHandler:null,mouseOutHandler:null,gestureStartHandler:null,gestureChangeHandler:null,gestureEndHandler:null,swipeThreshold:null,swipeTimeThreshold:null,doubleTapSpeed:null,dispose:function(){var b; -this.removeEventHandlers();for(b in this)a.objectHasProperty(this,b)&&(this[b]=null)},initialize:function(b,d){this.el=b;this.captureSettings={swipe:!1,move:!1,gesture:!1,doubleTap:!1,preventDefaultTouchEvents:!0,allowVerticalScroll:!1};a.extend(this.captureSettings,d);this.swipeThreshold=50;this.doubleTapSpeed=this.swipeTimeThreshold=250;this.touchStartPoint={x:0,y:0};this.touchEndPoint={x:0,y:0}},addEventHandlers:function(){a.isNothing(this.touchStartHandler)&&(this.touchStartHandler=this.onTouchStart.bind(this), -this.touchMoveHandler=this.onTouchMove.bind(this),this.touchEndHandler=this.onTouchEnd.bind(this),this.mouseDownHandler=this.onMouseDown.bind(this),this.mouseMoveHandler=this.onMouseMove.bind(this),this.mouseUpHandler=this.onMouseUp.bind(this),this.mouseOutHandler=this.onMouseOut.bind(this),this.gestureStartHandler=this.onGestureStart.bind(this),this.gestureChangeHandler=this.onGestureChange.bind(this),this.gestureEndHandler=this.onGestureEnd.bind(this));a.Events.add(this.el,"touchstart",this.touchStartHandler); -this.captureSettings.move&&a.Events.add(this.el,"touchmove",this.touchMoveHandler);a.Events.add(this.el,"touchend",this.touchEndHandler);a.Events.add(this.el,"mousedown",this.mouseDownHandler);a.Browser.isGestureSupported&&this.captureSettings.gesture&&(a.Events.add(this.el,"gesturestart",this.gestureStartHandler),a.Events.add(this.el,"gesturechange",this.gestureChangeHandler),a.Events.add(this.el,"gestureend",this.gestureEndHandler))},removeEventHandlers:function(){a.Events.remove(this.el,"touchstart", -this.touchStartHandler);this.captureSettings.move&&a.Events.remove(this.el,"touchmove",this.touchMoveHandler);a.Events.remove(this.el,"touchend",this.touchEndHandler);a.Events.remove(this.el,"mousedown",this.mouseDownHandler);a.Browser.isGestureSupported&&this.captureSettings.gesture&&(a.Events.remove(this.el,"gesturestart",this.gestureStartHandler),a.Events.remove(this.el,"gesturechange",this.gestureChangeHandler),a.Events.remove(this.el,"gestureend",this.gestureEndHandler))},getTouchPoint:function(a){return{x:a[0].pageX, -y:a[0].pageY}},fireTouchEvent:function(b){var d=0,f=0,c=0,h,d=this.touchEndPoint.x-this.touchStartPoint.x,f=this.touchEndPoint.y-this.touchStartPoint.y,c=Math.sqrt(d*d+f*f);if(this.captureSettings.swipe&&(h=new Date,h-=this.touchStartTime,h<=this.swipeTimeThreshold)){if(e.Math.abs(d)>=this.swipeThreshold){a.Events.fire(this,{type:a.TouchElement.EventTypes.onTouch,target:this,point:this.touchEndPoint,action:0>d?a.TouchElement.ActionTypes.swipeLeft:a.TouchElement.ActionTypes.swipeRight,targetEl:b.target, -currentTargetEl:b.currentTarget});return}if(e.Math.abs(f)>=this.swipeThreshold){a.Events.fire(this,{type:a.TouchElement.EventTypes.onTouch,target:this,point:this.touchEndPoint,action:0>f?a.TouchElement.ActionTypes.swipeUp:a.TouchElement.ActionTypes.swipeDown,targetEl:b.target,currentTargetEl:b.currentTarget});return}}1this.imageEl.naturalHeight;this.imageEl.isLoading=!1;a.Events.fire(this,{type:b.Image.EventTypes.onLoad,target:this})},onImageError:function(){this.imageEl.onload=null;this.imageEl.onerror=null;this.imageEl.onabort=null;this.imageEl.isLoading=!1;this.imageEl.isError=!0;a.Events.fire(this,{type:b.Image.EventTypes.onError, -target:this})}})})(window,window.klass,window.Code.Util); -(function(e,c,a){a.registerNamespace("Code.PhotoSwipe.Cache");e=e.Code.PhotoSwipe;e.Cache.Mode={normal:"normal",aggressive:"aggressive"};e.Cache.Functions={getImageSource:function(a){return a.href},getImageCaption:function(b){if("IMG"===b.nodeName)return a.DOM.getAttribute(b,"alt");var d,f,c;d=0;for(f=b.childNodes.length;df&&(f=this.initialBodyHeight),a.DOM.windowHeight()>f&&(f= -a.DOM.windowHeight())):(b=a.DOM.width(this.settings.target),f=a.DOM.height(this.settings.target),c="0px");a.DOM.setStyle(this.el,{width:b,height:f,top:c})},fadeIn:function(b,f){this.resetPosition();a.DOM.setStyle(this.el,"opacity",0);a.DOM.show(this.el);a.Animation.fadeIn(this.el,b,f)}})})(window,window.klass,window.Code.Util); -(function(e,c,a){a.registerNamespace("Code.PhotoSwipe.Carousel");e=e.Code.PhotoSwipe;e.Carousel.EventTypes={onSlideByEnd:"PhotoSwipeCarouselOnSlideByEnd",onSlideshowStart:"PhotoSwipeCarouselOnSlideshowStart",onSlideshowStop:"PhotoSwipeCarouselOnSlideshowStop"};e.Carousel.CssClasses={carousel:"ps-carousel",content:"ps-carousel-content",item:"ps-carousel-item",itemLoading:"ps-carousel-item-loading",itemError:"ps-carousel-item-error"};e.Carousel.SlideByAction={previous:"previous",current:"current",next:"next"}})(window, -window.klass,window.Code.Util); -(function(e,c,a){a.registerNamespace("Code.PhotoSwipe.Carousel");var b=e.Code.PhotoSwipe;b.Carousel.CarouselClass=c({el:null,contentEl:null,settings:null,cache:null,slideByEndHandler:null,currentCacheIndex:null,isSliding:null,isSlideshowActive:null,lastSlideByAction:null,touchStartPoint:null,touchStartPosition:null,imageLoadHandler:null,imageErrorHandler:null,slideshowTimeout:null,dispose:function(){var d,f,c;f=0;for(c=this.cache.images.length;fthis.cache.images.length&&(this.settings.loop=!1);this.el=a.DOM.createElement("div",{"class":b.Carousel.CssClasses.carousel},"");a.DOM.setStyle(this.el,{display:"block",position:"absolute",left:0,top:0,overflow:"hidden",zIndex:this.settings.zIndex});a.DOM.hide(this.el);this.contentEl=a.DOM.createElement("div",{"class":b.Carousel.CssClasses.content},"");a.DOM.setStyle(this.contentEl,{display:"block",position:"absolute",left:0,top:0});a.DOM.appendChild(this.contentEl, -this.el);h=3>d.images.length?d.images.length:3;for(c=0;cj&&(c=j/e,e=Math.round(e*c),h=Math.round(h*c)),h>i)c=i/h,h=Math.round(h*c),e=Math.round(e*c)}else c=b.isLandscape?j/b.naturalWidth:i/b.naturalHeight,e=Math.round(b.naturalWidth* -c),h=Math.round(b.naturalHeight*c),"zoom"===this.settings.imageScaleMethod?(c=1,hj?c=j/e:h>i&&(c=i/h),1!==c&&(e=Math.round(e*c),h=Math.round(h*c)));c=Math.round((i-h)/2)+"px";j=Math.round((j-e)/2)+"px";a.DOM.setStyle(b,{position:"absolute",width:e,height:h,top:c,left:j,display:"block"})}},setContentLeftPosition:function(){var b,c,g;b=this.settings.target===e?a.DOM.windowWidth():a.DOM.width(this.settings.target); -c=this.getItemEls();g=0;this.settings.loop?g=-1*(b+this.settings.margin):this.currentCacheIndex===this.cache.images.length-1?g=-1*(c.length-1)*(b+this.settings.margin):0this.cache.images.length-1&&(b=0),0>e&&(e=this.cache.images.length-1),b=this.cache.getImages([e,this.currentCacheIndex,b]),a||this.addCacheImageToItemEl(b[1],c[1]),this.addCacheImageToItemEl(b[2],c[2]),this.addCacheImageToItemEl(b[0], -c[0])):1===c.length?a||(b=this.cache.getImages([this.currentCacheIndex]),this.addCacheImageToItemEl(b[0],c[0])):2===c.length?0===this.currentCacheIndex?(b=this.cache.getImages([this.currentCacheIndex,this.currentCacheIndex+1]),a||this.addCacheImageToItemEl(b[0],c[0]),this.addCacheImageToItemEl(b[1],c[1])):(b=this.cache.getImages([this.currentCacheIndex-1,this.currentCacheIndex]),a||this.addCacheImageToItemEl(b[1],c[1]),this.addCacheImageToItemEl(b[0],c[0])):0===this.currentCacheIndex?(b=this.cache.getImages([this.currentCacheIndex, -this.currentCacheIndex+1,this.currentCacheIndex+2]),a||this.addCacheImageToItemEl(b[0],c[0]),this.addCacheImageToItemEl(b[1],c[1]),this.addCacheImageToItemEl(b[2],c[2])):(this.currentCacheIndex===this.cache.images.length-1?(b=this.cache.getImages([this.currentCacheIndex-2,this.currentCacheIndex-1,this.currentCacheIndex]),a||this.addCacheImageToItemEl(b[2],c[2]),this.addCacheImageToItemEl(b[1],c[1])):(b=this.cache.getImages([this.currentCacheIndex-1,this.currentCacheIndex,this.currentCacheIndex+1]), -a||this.addCacheImageToItemEl(b[1],c[1]),this.addCacheImageToItemEl(b[2],c[2])),this.addCacheImageToItemEl(b[0],c[0]))},addCacheImageToItemEl:function(d,c){a.DOM.removeClass(c,b.Carousel.CssClasses.itemError);a.DOM.addClass(c,b.Carousel.CssClasses.itemLoading);a.DOM.removeChildren(c);a.DOM.setStyle(d.imageEl,{display:"none"});a.DOM.appendChild(d.imageEl,c);a.Animation.resetTranslate(d.imageEl);a.Events.add(d,b.Image.EventTypes.onLoad,this.imageLoadHandler);a.Events.add(d,b.Image.EventTypes.onError, -this.imageErrorHandler);d.load()},slideCarousel:function(d,c,g){if(!this.isSliding){var h,j;h=this.settings.target===e?a.DOM.windowWidth()+this.settings.margin:a.DOM.width(this.settings.target)+this.settings.margin;g=a.coalesce(g,this.settings.slideSpeed);if(!(1>e.Math.abs(j))){switch(c){case a.TouchElement.ActionTypes.swipeLeft:d=-1*h;break;case a.TouchElement.ActionTypes.swipeRight:d=h;break;default:j=d.x-this.touchStartPoint.x,d=e.Math.abs(j)>h/2?0d?b.Carousel.SlideByAction.next: -0this.currentCacheIndex?this.currentCacheIndex=this.cache.images.length-1:this.currentCacheIndex=== -this.cache.images.length&&(this.currentCacheIndex=0)):3=d?this.slideByEndHandler():a.Browser.isCSSTransformSupported?(c=a.coalesce(this.contentEl.style.webkitTransform,this.contentEl.style.MozTransform, -this.contentEl.style.OTransform,this.contentEl.style.transform,""),0===c.indexOf("translate3d("+b)?this.slideByEndHandler():0===c.indexOf("translate("+b)?this.slideByEndHandler():a.Animation.slideBy(this.contentEl,b,0,d,this.slideByEndHandler,this.settings.slideTimingFunction)):a.isNothing(e.jQuery)||(c={left:this.getStartingPos().x+b+"px"},"ease-out"===this.settings.animationTimingFunction&&(this.settings.animationTimingFunction="easeOutQuad"),a.isNothing(e.jQuery.easing[this.settings.animationTimingFunction])&& -(this.settings.animationTimingFunction="linear"),e.jQuery(this.contentEl).animate(c,this.settings.slideSpeed,this.settings.animationTimingFunction,this.slideByEndHandler))}})})(window,window.klass,window.Code.Util,window.Code.PhotoSwipe.TouchElement); -(function(e,c,a){a.registerNamespace("Code.PhotoSwipe.Toolbar");var b=e.Code.PhotoSwipe;b.Toolbar.CssClasses={toolbar:"ps-toolbar",toolbarContent:"ps-toolbar-content",toolbarTop:"ps-toolbar-top",caption:"ps-caption",captionBottom:"ps-caption-bottom",captionContent:"ps-caption-content",close:"ps-toolbar-close",play:"ps-toolbar-play",playDisabled:"ps-toolbar-play-disabled",previous:"ps-toolbar-previous",previousDisabled:"ps-toolbar-previous-disabled",next:"ps-toolbar-next",nextDisabled:"ps-toolbar-next-disabled"}; -b.Toolbar.ToolbarAction={close:"close",play:"play",next:"next",previous:"previous",none:"none"};b.Toolbar.EventTypes={onTap:"PhotoSwipeToolbarOnClick",onBeforeShow:"PhotoSwipeToolbarOnBeforeShow",onShow:"PhotoSwipeToolbarOnShow",onBeforeHide:"PhotoSwipeToolbarOnBeforeHide",onHide:"PhotoSwipeToolbarOnHide"};b.Toolbar.getToolbar=function(){return''}})(window,window.klass,window.Code.Util); -(function(e,c,a){a.registerNamespace("Code.PhotoSwipe.Toolbar");var b=e.Code.PhotoSwipe;b.Toolbar.ToolbarClass=c({toolbarEl:null,closeEl:null,playEl:null,previousEl:null,nextEl:null,captionEl:null,captionContentEl:null,currentCaption:null,settings:null,cache:null,timeout:null,isVisible:null,fadeOutHandler:null,touchStartHandler:null,touchMoveHandler:null,clickHandler:null,dispose:function(){var b;this.clearTimeout();this.removeEventHandlers();a.Animation.stop(this.toolbarEl);a.Animation.stop(this.captionEl); -a.DOM.removeChild(this.toolbarEl,this.toolbarEl.parentNode);a.DOM.removeChild(this.captionEl,this.captionEl.parentNode);for(b in this)a.objectHasProperty(this,b)&&(this[b]=null)},initialize:function(d,c){var g;this.settings=c;this.cache=d;this.isVisible=!1;this.fadeOutHandler=this.onFadeOut.bind(this);this.touchStartHandler=this.onTouchStart.bind(this);this.touchMoveHandler=this.onTouchMove.bind(this);this.clickHandler=this.onClick.bind(this);g=b.Toolbar.CssClasses.toolbar;this.settings.captionAndToolbarFlipPosition&& -(g=g+" "+b.Toolbar.CssClasses.toolbarTop);this.toolbarEl=a.DOM.createElement("div",{"class":g},this.settings.getToolbar());a.DOM.setStyle(this.toolbarEl,{left:0,position:"absolute",overflow:"hidden",zIndex:this.settings.zIndex});this.settings.target===e?a.DOM.appendToBody(this.toolbarEl):a.DOM.appendChild(this.toolbarEl,this.settings.target);a.DOM.hide(this.toolbarEl);this.closeEl=a.DOM.find("."+b.Toolbar.CssClasses.close,this.toolbarEl)[0];this.settings.preventHide&&!a.isNothing(this.closeEl)&&a.DOM.hide(this.closeEl); -this.playEl=a.DOM.find("."+b.Toolbar.CssClasses.play,this.toolbarEl)[0];this.settings.preventSlideshow&&!a.isNothing(this.playEl)&&a.DOM.hide(this.playEl);this.nextEl=a.DOM.find("."+b.Toolbar.CssClasses.next,this.toolbarEl)[0];this.previousEl=a.DOM.find("."+b.Toolbar.CssClasses.previous,this.toolbarEl)[0];g=b.Toolbar.CssClasses.caption;this.settings.captionAndToolbarFlipPosition&&(g=g+" "+b.Toolbar.CssClasses.captionBottom);this.captionEl=a.DOM.createElement("div",{"class":g},"");a.DOM.setStyle(this.captionEl, -{left:0,position:"absolute",overflow:"hidden",zIndex:this.settings.zIndex});this.settings.target===e?a.DOM.appendToBody(this.captionEl):a.DOM.appendChild(this.captionEl,this.settings.target);a.DOM.hide(this.captionEl);this.captionContentEl=a.DOM.createElement("div",{"class":b.Toolbar.CssClasses.captionContent},"");a.DOM.appendChild(this.captionContentEl,this.captionEl);this.addEventHandlers()},resetPosition:function(){var b,c,g;this.settings.target===e?(this.settings.captionAndToolbarFlipPosition? -(c=a.DOM.windowScrollTop(),g=a.DOM.windowScrollTop()+a.DOM.windowHeight()-a.DOM.height(this.captionEl)):(c=a.DOM.windowScrollTop()+a.DOM.windowHeight()-a.DOM.height(this.toolbarEl),g=a.DOM.windowScrollTop()),b=a.DOM.windowWidth()):(this.settings.captionAndToolbarFlipPosition?(c="0",g=a.DOM.height(this.settings.target)-a.DOM.height(this.captionEl)):(c=a.DOM.height(this.settings.target)-a.DOM.height(this.toolbarEl),g=0),b=a.DOM.width(this.settings.target));a.DOM.setStyle(this.toolbarEl,{top:c+"px", -width:b});a.DOM.setStyle(this.captionEl,{top:g+"px",width:b})},toggleVisibility:function(a){this.isVisible?this.fadeOut():this.show(a)},show:function(d){a.Animation.stop(this.toolbarEl);a.Animation.stop(this.captionEl);this.resetPosition();this.setToolbarStatus(d);a.Events.fire(this,{type:b.Toolbar.EventTypes.onBeforeShow,target:this});this.showToolbar();this.setCaption(d);this.showCaption();this.isVisible=!0;this.setTimeout();a.Events.fire(this,{type:b.Toolbar.EventTypes.onShow,target:this})},setTimeout:function(){0< -this.settings.captionAndToolbarAutoHideDelay&&(this.clearTimeout(),this.timeout=e.setTimeout(this.fadeOut.bind(this),this.settings.captionAndToolbarAutoHideDelay))},clearTimeout:function(){a.isNothing(this.timeout)||(e.clearTimeout(this.timeout),this.timeout=null)},fadeOut:function(){this.clearTimeout();a.Events.fire(this,{type:b.Toolbar.EventTypes.onBeforeHide,target:this});a.Animation.fadeOut(this.toolbarEl,this.settings.fadeOutSpeed);a.Animation.fadeOut(this.captionEl,this.settings.fadeOutSpeed, -this.fadeOutHandler);this.isVisible=!1},addEventHandlers:function(){a.Browser.isTouchSupported&&(a.Browser.blackberry||a.Events.add(this.toolbarEl,"touchstart",this.touchStartHandler),a.Events.add(this.toolbarEl,"touchmove",this.touchMoveHandler),a.Events.add(this.captionEl,"touchmove",this.touchMoveHandler));a.Events.add(this.toolbarEl,"click",this.clickHandler)},removeEventHandlers:function(){a.Browser.isTouchSupported&&(a.Browser.blackberry||a.Events.remove(this.toolbarEl,"touchstart",this.touchStartHandler), -a.Events.remove(this.toolbarEl,"touchmove",this.touchMoveHandler),a.Events.remove(this.captionEl,"touchmove",this.touchMoveHandler));a.Events.remove(this.toolbarEl,"click",this.clickHandler)},handleTap:function(d){this.clearTimeout();var c;if(d.target===this.nextEl||a.DOM.isChildOf(d.target,this.nextEl))c=b.Toolbar.ToolbarAction.next;else if(d.target===this.previousEl||a.DOM.isChildOf(d.target,this.previousEl))c=b.Toolbar.ToolbarAction.previous;else if(d.target===this.closeEl||a.DOM.isChildOf(d.target, -this.closeEl))c=b.Toolbar.ToolbarAction.close;else if(d.target===this.playEl||a.DOM.isChildOf(d.target,this.playEl))c=b.Toolbar.ToolbarAction.play;this.setTimeout();a.isNothing(c)&&(c=b.Toolbar.ToolbarAction.none);a.Events.fire(this,{type:b.Toolbar.EventTypes.onTap,target:this,action:c,tapTarget:d.target})},setCaption:function(b){a.DOM.removeChildren(this.captionContentEl);this.currentCaption=a.coalesce(this.cache.images[b].caption,"\u00a0");a.isObject(this.currentCaption)?a.DOM.appendChild(this.currentCaption, -this.captionContentEl):(""===this.currentCaption&&(this.currentCaption="\u00a0"),a.DOM.appendText(this.currentCaption,this.captionContentEl));this.currentCaption="\u00a0"===this.currentCaption?"":this.currentCaption;this.resetPosition()},showToolbar:function(){a.DOM.setStyle(this.toolbarEl,{opacity:this.settings.captionAndToolbarOpacity});a.DOM.show(this.toolbarEl)},showCaption:function(){(""===this.currentCaption||1>this.captionContentEl.childNodes.length)&&!this.settings.captionAndToolbarShowEmptyCaptions? -a.DOM.hide(this.captionEl):(a.DOM.setStyle(this.captionEl,{opacity:this.settings.captionAndToolbarOpacity}),a.DOM.show(this.captionEl))},setToolbarStatus:function(d){this.settings.loop||(a.DOM.removeClass(this.previousEl,b.Toolbar.CssClasses.previousDisabled),a.DOM.removeClass(this.nextEl,b.Toolbar.CssClasses.nextDisabled),a.DOM.removeClass(this.playEl,b.Toolbar.CssClasses.playDisabled),0this.settings.maxUserZoom&&(a=this.settings.maxUserZoom);return a},setStartingScaleAndRotation:function(a,b){this.transformSettings.startingScale=this.getScale(a);this.transformSettings.startingRotation=(this.transformSettings.startingRotation+b)%360},zoomRotate:function(a,b){this.transformSettings.scale=this.getScale(a);this.transformSettings.rotation=this.transformSettings.startingRotation+b;this.applyTransform()},panStart:function(a){this.setStartingTranslateFromCurrentTransform(); -this.panStartingPoint={x:a.x,y:a.y}},pan:function(a){var b=(a.y-this.panStartingPoint.y)/this.transformSettings.scale;this.transformSettings.translateX=this.transformSettings.startingTranslateX+(a.x-this.panStartingPoint.x)/this.transformSettings.scale;this.transformSettings.translateY=this.transformSettings.startingTranslateY+b;this.applyTransform()},zoomAndPanToPoint:function(b,c){if(this.settings.target===e){this.panStart({x:a.DOM.windowWidth()/2,y:a.DOM.windowHeight()/2});var g=(c.y-this.panStartingPoint.y)/ -this.transformSettings.scale;this.transformSettings.translateX=-1*(this.transformSettings.startingTranslateX+(c.x-this.panStartingPoint.x)/this.transformSettings.scale);this.transformSettings.translateY=-1*(this.transformSettings.startingTranslateY+g)}this.setStartingScaleAndRotation(b,0);this.transformSettings.scale=this.transformSettings.startingScale;this.transformSettings.rotation=0;this.applyTransform()},applyTransform:function(){var c=this.transformSettings.rotation%360,f=e.parseInt(this.transformSettings.translateX, -10),g=e.parseInt(this.transformSettings.translateY,10),h="scale("+this.transformSettings.scale+") rotate("+c+"deg) translate("+f+"px, "+g+"px)";a.DOM.setStyle(this.transformEl,{webkitTransform:h,MozTransform:h,msTransform:h,OTransform:h,transform:h});a.Events.fire(this,{target:this,type:b.ZoomPanRotate.EventTypes.onTransform,scale:this.transformSettings.scale,rotation:this.transformSettings.rotation,rotationDegs:c,translateX:f,translateY:g})}})})(window,window.klass,window.Code.Util); -(function(e,c){c.registerNamespace("Code.PhotoSwipe");var a=e.Code.PhotoSwipe;a.CssClasses={buildingBody:"ps-building",activeBody:"ps-active"};a.EventTypes={onBeforeShow:"PhotoSwipeOnBeforeShow",onShow:"PhotoSwipeOnShow",onBeforeHide:"PhotoSwipeOnBeforeHide",onHide:"PhotoSwipeOnHide",onDisplayImage:"PhotoSwipeOnDisplayImage",onResetPosition:"PhotoSwipeOnResetPosition",onSlideshowStart:"PhotoSwipeOnSlideshowStart",onSlideshowStop:"PhotoSwipeOnSlideshowStop",onTouch:"PhotoSwipeOnTouch",onBeforeCaptionAndToolbarShow:"PhotoSwipeOnBeforeCaptionAndToolbarShow", -onCaptionAndToolbarShow:"PhotoSwipeOnCaptionAndToolbarShow",onBeforeCaptionAndToolbarHide:"PhotoSwipeOnBeforeCaptionAndToolbarHide",onCaptionAndToolbarHide:"PhotoSwipeOnCaptionAndToolbarHide",onToolbarTap:"PhotoSwipeOnToolbarTap",onBeforeZoomPanRotateShow:"PhotoSwipeOnBeforeZoomPanRotateShow",onZoomPanRotateShow:"PhotoSwipeOnZoomPanRotateShow",onBeforeZoomPanRotateHide:"PhotoSwipeOnBeforeZoomPanRotateHide",onZoomPanRotateHide:"PhotoSwipeOnZoomPanRotateHide",onZoomPanRotateTransform:"PhotoSwipeOnZoomPanRotateTransform"}; -a.instances=[];a.activeInstances=[];a.setActivateInstance=function(b){if(-1this.currentIndex||this.currentIndex>this.originalImages.length-1)throw"Code.PhotoSwipe.PhotoSwipeClass.show: Starting index out of range";this.isAlreadyGettingPage=this.getWindowDimensions();i.setActivateInstance(this);this.windowDimensions=this.getWindowDimensions();this.settings.target===e?a.DOM.addClass(e.document.body,i.CssClasses.buildingBody):a.DOM.addClass(this.settings.target,i.CssClasses.buildingBody);this.createComponents();a.Events.fire(this,{type:i.EventTypes.onBeforeShow, -target:this});this.documentOverlay.fadeIn(this.settings.fadeInSpeed,this.onDocumentOverlayFadeIn.bind(this))},getWindowDimensions:function(){return{width:a.DOM.windowWidth(),height:a.DOM.windowHeight()}},createComponents:function(){this.documentOverlay=new d.DocumentOverlayClass(this.settings);this.carousel=new f.CarouselClass(this.cache,this.settings);this.uiLayer=new h.UILayerClass(this.settings);this.settings.captionAndToolbarHide||(this.toolbar=new g.ToolbarClass(this.cache,this.settings))},resetPosition:function(){if(!this._isResettingPosition){var b= -this.getWindowDimensions();this._isResettingPosition=!0;this.windowDimensions=b;this.destroyZoomPanRotate();this.documentOverlay.resetPosition();this.carousel.resetPosition();a.isNothing(this.toolbar)||this.toolbar.resetPosition();this.uiLayer.resetPosition();this._isResettingPosition=!1;a.Events.fire(this,{type:i.EventTypes.onResetPosition,target:this})}},addEventHandler:function(b,c){a.Events.add(this,b,c)},addEventHandlers:function(){a.isNothing(this.windowOrientationChangeHandler)&&(this.windowOrientationChangeHandler= -this.onWindowOrientationChange.bind(this),this.windowScrollHandler=this.onWindowScroll.bind(this),this.keyDownHandler=this.onKeyDown.bind(this),this.windowHashChangeHandler=this.onWindowHashChange.bind(this),this.uiLayerTouchHandler=this.onUILayerTouch.bind(this),this.carouselSlideByEndHandler=this.onCarouselSlideByEnd.bind(this),this.carouselSlideshowStartHandler=this.onCarouselSlideshowStart.bind(this),this.carouselSlideshowStopHandler=this.onCarouselSlideshowStop.bind(this),this.toolbarTapHandler= -this.onToolbarTap.bind(this),this.toolbarBeforeShowHandler=this.onToolbarBeforeShow.bind(this),this.toolbarShowHandler=this.onToolbarShow.bind(this),this.toolbarBeforeHideHandler=this.onToolbarBeforeHide.bind(this),this.toolbarHideHandler=this.onToolbarHide.bind(this),this.mouseWheelHandler=this.onMouseWheel.bind(this),this.zoomPanRotateTransformHandler=this.onZoomPanRotateTransform.bind(this));a.Browser.android?this.orientationEventName="resize":a.Browser.iOS&&!a.Browser.safari?a.Events.add(e.document.body, -"orientationchange",this.windowOrientationChangeHandler):this.orientationEventName=!a.isNothing(e.onorientationchange)?"orientationchange":"resize";a.isNothing(this.orientationEventName)||a.Events.add(e,this.orientationEventName,this.windowOrientationChangeHandler);this.settings.target===e&&a.Events.add(e,"scroll",this.windowScrollHandler);this.settings.enableKeyboard&&a.Events.add(e.document,"keydown",this.keyDownHandler);this.isBackEventSupported&&this.settings.backButtonHideEnabled&&(this.windowHashChangeHandler= -this.onWindowHashChange.bind(this),this.settings.jQueryMobile?e.location.hash=this.settings.jQueryMobileDialogHash:(this.currentHistoryHashValue="PhotoSwipe"+(new Date).getTime().toString(),e.location.hash=this.currentHistoryHashValue),a.Events.add(e,"hashchange",this.windowHashChangeHandler));this.settings.enableMouseWheel&&a.Events.add(e,"mousewheel",this.mouseWheelHandler);a.Events.add(this.uiLayer,a.TouchElement.EventTypes.onTouch,this.uiLayerTouchHandler);a.Events.add(this.carousel,f.EventTypes.onSlideByEnd, -this.carouselSlideByEndHandler);a.Events.add(this.carousel,f.EventTypes.onSlideshowStart,this.carouselSlideshowStartHandler);a.Events.add(this.carousel,f.EventTypes.onSlideshowStop,this.carouselSlideshowStopHandler);a.isNothing(this.toolbar)||(a.Events.add(this.toolbar,g.EventTypes.onTap,this.toolbarTapHandler),a.Events.add(this.toolbar,g.EventTypes.onBeforeShow,this.toolbarBeforeShowHandler),a.Events.add(this.toolbar,g.EventTypes.onShow,this.toolbarShowHandler),a.Events.add(this.toolbar,g.EventTypes.onBeforeHide, -this.toolbarBeforeHideHandler),a.Events.add(this.toolbar,g.EventTypes.onHide,this.toolbarHideHandler))},removeEventHandlers:function(){a.Browser.iOS&&!a.Browser.safari&&a.Events.remove(e.document.body,"orientationchange",this.windowOrientationChangeHandler);a.isNothing(this.orientationEventName)||a.Events.remove(e,this.orientationEventName,this.windowOrientationChangeHandler);a.Events.remove(e,"scroll",this.windowScrollHandler);this.settings.enableKeyboard&&a.Events.remove(e.document,"keydown",this.keyDownHandler); -this.isBackEventSupported&&(this.settings.backButtonHideEnabled&&null!==this.windowHashChangeHandler)&&a.Events.remove(e,"hashchange",this.windowHashChangeHandler);this.settings.enableMouseWheel&&a.Events.remove(e,"mousewheel",this.mouseWheelHandler);a.isNothing(this.uiLayer)||a.Events.remove(this.uiLayer,a.TouchElement.EventTypes.onTouch,this.uiLayerTouchHandler);a.isNothing(this.toolbar)||(a.Events.remove(this.carousel,f.EventTypes.onSlideByEnd,this.carouselSlideByEndHandler),a.Events.remove(this.carousel, -f.EventTypes.onSlideshowStart,this.carouselSlideshowStartHandler),a.Events.remove(this.carousel,f.EventTypes.onSlideshowStop,this.carouselSlideshowStopHandler));a.isNothing(this.toolbar)||(a.Events.remove(this.toolbar,g.EventTypes.onTap,this.toolbarTapHandler),a.Events.remove(this.toolbar,g.EventTypes.onBeforeShow,this.toolbarBeforeShowHandler),a.Events.remove(this.toolbar,g.EventTypes.onShow,this.toolbarShowHandler),a.Events.remove(this.toolbar,g.EventTypes.onBeforeHide,this.toolbarBeforeHideHandler), -a.Events.remove(this.toolbar,g.EventTypes.onHide,this.toolbarHideHandler))},hide:function(){if(!this.settings.preventHide){if(a.isNothing(this.documentOverlay))throw"Code.PhotoSwipe.PhotoSwipeClass.hide: PhotoSwipe instance is already hidden";a.isNothing(this.hiding)&&(this.clearUIWebViewResetPositionTimeout(),this.destroyZoomPanRotate(),this.removeEventHandlers(),a.Events.fire(this,{type:i.EventTypes.onBeforeHide,target:this}),this.uiLayer.dispose(),this.uiLayer=null,a.isNothing(this.toolbar)||(this.toolbar.dispose(), -this.toolbar=null),this.carousel.dispose(),this.carousel=null,a.DOM.removeClass(e.document.body,i.CssClasses.activeBody),a.DOM.removeClass(e.document.getElementsByTagName("html")[0],i.CssClasses.activeBody),this.documentOverlay.dispose(),this.documentOverlay=null,this._isResettingPosition=!1,i.unsetActivateInstance(this),a.Events.fire(this,{type:i.EventTypes.onHide,target:this}),this.goBackInHistory())}},goBackInHistory:function(){this.isBackEventSupported&&this.settings.backButtonHideEnabled&&(this.backButtonClicked|| -e.history.back())},play:function(){!this.isZoomActive()&&(!this.settings.preventSlideshow&&!a.isNothing(this.carousel))&&(!a.isNothing(this.toolbar)&&this.toolbar.isVisible&&this.toolbar.fadeOut(),this.carousel.startSlideshow())},stop:function(){this.isZoomActive()||a.isNothing(this.carousel)||this.carousel.stopSlideshow()},previous:function(){this.isZoomActive()||a.isNothing(this.carousel)||this.carousel.previous()},next:function(){this.isZoomActive()||a.isNothing(this.carousel)||this.carousel.next()}, -toggleToolbar:function(){this.isZoomActive()||a.isNothing(this.toolbar)||this.toolbar.toggleVisibility(this.currentIndex)},fadeOutToolbarIfVisible:function(){!a.isNothing(this.toolbar)&&(this.toolbar.isVisible&&0g&&(b.point.x=g);b.point.yc&&(b.point.y=c);this.createZoomPanRotate(); -this.isZoomActive()&&this.zoomPanRotate.zoomAndPanToPoint(this.settings.doubleTapZoomLevel,b.point);break;case a.TouchElement.ActionTypes.gestureStart:this.createZoomPanRotate()}a.Events.fire(this,{type:i.EventTypes.onTouch,target:this,point:b.point,action:b.action})},onCarouselSlideByEnd:function(b){this.currentIndex=b.cacheIndex;a.isNothing(this.toolbar)||(this.toolbar.setCaption(this.currentIndex),this.toolbar.setToolbarStatus(this.currentIndex));a.Events.fire(this,{type:i.EventTypes.onDisplayImage, -target:this,action:b.action,index:b.cacheIndex})},onToolbarTap:function(b){switch(b.action){case g.ToolbarAction.next:this.next();break;case g.ToolbarAction.previous:this.previous();break;case g.ToolbarAction.close:this.hide();break;case g.ToolbarAction.play:this.play()}a.Events.fire(this,{type:i.EventTypes.onToolbarTap,target:this,toolbarAction:b.action,tapTarget:b.tapTarget})},onMouseWheel:function(b){var c=a.Events.getWheelDelta(b);b.timeStamp-(this.mouseWheelStartTime||0)c?this.next():0").appendTo(b),e=d.css("display");d.remove();if(e==="none"||e===""){ch||(ch=c.createElement("iframe"),ch.frameBorder=ch.width=ch.height=0),b.appendChild(ch);if(!ci||!ch.createElement)ci=(ch.contentWindow||ch.contentDocument).document,ci.write((c.compatMode==="CSS1Compat"?"":"")+""),ci.close();d=ci.createElement(a),ci.body.appendChild(d),e=f.css(d,"display"),b.removeChild(ch)}cg[a]=e}return cg[a]}function cq(a,b){var c={};f.each(cm.concat.apply([],cm.slice(0,b)),function(){c[this]=a});return c}function cp(){cn=b}function co(){setTimeout(cp,0);return cn=f.now()}function cf(){try{return new a.ActiveXObject("Microsoft.XMLHTTP")}catch(b){}}function ce(){try{return new a.XMLHttpRequest}catch(b){}}function b$(a,c){a.dataFilter&&(c=a.dataFilter(c,a.dataType));var d=a.dataTypes,e={},g,h,i=d.length,j,k=d[0],l,m,n,o,p;for(g=1;g0){c!=="border"&&f.each(e,function(){c||(d-=parseFloat(f.css(a,"padding"+this))||0),c==="margin"?d+=parseFloat(f.css(a,c+this))||0:d-=parseFloat(f.css(a,"border"+this+"Width"))||0});return d+"px"}d=bv(a,b,b);if(d<0||d==null)d=a.style[b]||0;d=parseFloat(d)||0,c&&f.each(e,function(){d+=parseFloat(f.css(a,"padding"+this))||0,c!=="padding"&&(d+=parseFloat(f.css(a,"border"+this+"Width"))||0),c==="margin"&&(d+=parseFloat(f.css(a,c+this))||0)});return d+"px"}function bl(a,b){b.src?f.ajax({url:b.src,async:!1,dataType:"script"}):f.globalEval((b.text||b.textContent||b.innerHTML||"").replace(bd,"/*$0*/")),b.parentNode&&b.parentNode.removeChild(b)}function bk(a){f.nodeName(a,"input")?bj(a):"getElementsByTagName"in a&&f.grep(a.getElementsByTagName("input"),bj)}function bj(a){if(a.type==="checkbox"||a.type==="radio")a.defaultChecked=a.checked}function bi(a){return"getElementsByTagName"in a?a.getElementsByTagName("*"):"querySelectorAll"in a?a.querySelectorAll("*"):[]}function bh(a,b){var c;if(b.nodeType===1){b.clearAttributes&&b.clearAttributes(),b.mergeAttributes&&b.mergeAttributes(a),c=b.nodeName.toLowerCase();if(c==="object")b.outerHTML=a.outerHTML;else if(c!=="input"||a.type!=="checkbox"&&a.type!=="radio"){if(c==="option")b.selected=a.defaultSelected;else if(c==="input"||c==="textarea")b.defaultValue=a.defaultValue}else a.checked&&(b.defaultChecked=b.checked=a.checked),b.value!==a.value&&(b.value=a.value);b.removeAttribute(f.expando)}}function bg(a,b){if(b.nodeType===1&&!!f.hasData(a)){var c=f.expando,d=f.data(a),e=f.data(b,d);if(d=d[c]){var g=d.events;e=e[c]=f.extend({},d);if(g){delete e.handle,e.events={};for(var h in g)for(var i=0,j=g[h].length;i=0===c})}function U(a){return!a||!a.parentNode||a.parentNode.nodeType===11}function M(a,b){return(a&&a!=="*"?a+".":"")+b.replace(y,"`").replace(z,"&")}function L(a){var b,c,d,e,g,h,i,j,k,l,m,n,o,p=[],q=[],r=f._data(this,"events");if(!(a.liveFired===this||!r||!r.live||a.target.disabled||a.button&&a.type==="click")){a.namespace&&(n=new RegExp("(^|\\.)"+a.namespace.split(".").join("\\.(?:.*\\.)?")+"(\\.|$)")),a.liveFired=this;var s=r.live.slice(0);for(i=0;ic)break;a.currentTarget=e.elem,a.data=e.handleObj.data,a.handleObj=e.handleObj,o=e.handleObj.origHandler.apply(e.elem,arguments);if(o===!1||a.isPropagationStopped()){c=e.level,o===!1&&(b=!1);if(a.isImmediatePropagationStopped())break}}return b}}function J(a,c,d){var e=f.extend({},d[0]);e.type=a,e.originalEvent={},e.liveFired=b,f.event.handle.call(c,e),e.isDefaultPrevented()&&d[0].preventDefault()}function D(){return!0}function C(){return!1}function m(a,c,d){var e=c+"defer",g=c+"queue",h=c+"mark",i=f.data(a,e,b,!0);i&&(d==="queue"||!f.data(a,g,b,!0))&&(d==="mark"||!f.data(a,h,b,!0))&&setTimeout(function(){!f.data(a,g,b,!0)&&!f.data(a,h,b,!0)&&(f.removeData(a,e,!0),i.resolve())},0)}function l(a){for(var b in a)if(b!=="toJSON")return!1;return!0}function k(a,c,d){if(d===b&&a.nodeType===1){var e="data-"+c.replace(j,"-$1").toLowerCase();d=a.getAttribute(e);if(typeof d=="string"){try{d=d==="true"?!0:d==="false"?!1:d==="null"?null:f.isNaN(d)?i.test(d)?f.parseJSON(d):d:parseFloat(d)}catch(g){}f.data(a,c,d)}else d=b}return d}var c=a.document,d=a.navigator,e=a.location,f=function(){function K(){if(!e.isReady){try{c.documentElement.doScroll("left")}catch(a){setTimeout(K,1);return}e.ready()}}var e=function(a,b){return new e.fn.init(a,b,h)},f=a.jQuery,g=a.$,h,i=/^(?:[^#<]*(<[\w\W]+>)[^>]*$|#([\w\-]*)$)/,j=/\S/,k=/^\s+/,l=/\s+$/,m=/\d/,n=/^<(\w+)\s*\/?>(?:<\/\1>)?$/,o=/^[\],:{}\s]*$/,p=/\\(?:["\\\/bfnrt]|u[0-9a-fA-F]{4})/g,q=/"[^"\\\n\r]*"|true|false|null|-?\d+(?:\.\d*)?(?:[eE][+\-]?\d+)?/g,r=/(?:^|:|,)(?:\s*\[)+/g,s=/(webkit)[ \/]([\w.]+)/,t=/(opera)(?:.*version)?[ \/]([\w.]+)/,u=/(msie) ([\w.]+)/,v=/(mozilla)(?:.*? rv:([\w.]+))?/,w=/-([a-z]|[0-9])/ig,x=/^-ms-/,y=function(a,b){return(b+"").toUpperCase()},z=d.userAgent,A,B,C,D=Object.prototype.toString,E=Object.prototype.hasOwnProperty,F=Array.prototype.push,G=Array.prototype.slice,H=String.prototype.trim,I=Array.prototype.indexOf,J={};e.fn=e.prototype={constructor:e,init:function(a,d,f){var g,h,j,k;if(!a)return this;if(a.nodeType){this.context=this[0]=a,this.length=1;return this}if(a==="body"&&!d&&c.body){this.context=c,this[0]=c.body,this.selector=a,this.length=1;return this}if(typeof a=="string"){a.charAt(0)!=="<"||a.charAt(a.length-1)!==">"||a.length<3?g=i.exec(a):g=[null,a,null];if(g&&(g[1]||!d)){if(g[1]){d=d instanceof e?d[0]:d,k=d?d.ownerDocument||d:c,j=n.exec(a),j?e.isPlainObject(d)?(a=[c.createElement(j[1])],e.fn.attr.call(a,d,!0)):a=[k.createElement(j[1])]:(j=e.buildFragment([g[1]],[k]),a=(j.cacheable?e.clone(j.fragment):j.fragment).childNodes);return e.merge(this,a)}h=c.getElementById(g[2]);if(h&&h.parentNode){if(h.id!==g[2])return f.find(a);this.length=1,this[0]=h}this.context=c,this.selector=a;return this}return!d||d.jquery?(d||f).find(a):this.constructor(d).find(a)}if(e.isFunction(a))return f.ready(a);a.selector!==b&&(this.selector=a.selector,this.context=a.context);return e.makeArray(a,this)},selector:"",jquery:"1.6.4",length:0,size:function(){return this.length},toArray:function(){return G.call(this,0)},get:function(a){return a==null?this.toArray():a<0?this[this.length+a]:this[a]},pushStack:function(a,b,c){var d=this.constructor();e.isArray(a)?F.apply(d,a):e.merge(d,a),d.prevObject=this,d.context=this.context,b==="find"?d.selector=this.selector+(this.selector?" ":"")+c:b&&(d.selector=this.selector+"."+b+"("+c+")");return d},each:function(a,b){return e.each(this,a,b)},ready:function(a){e.bindReady(),B.done(a);return this},eq:function(a){return a===-1?this.slice(a):this.slice(a,+a+1)},first:function(){return this.eq(0)},last:function(){return this.eq(-1)},slice:function(){return this.pushStack(G.apply(this,arguments),"slice",G.call(arguments).join(","))},map:function(a){return this.pushStack(e.map(this,function(b,c){return a.call(b,c,b)}))},end:function(){return this.prevObject||this.constructor(null)},push:F,sort:[].sort,splice:[].splice},e.fn.init.prototype=e.fn,e.extend=e.fn.extend=function(){var a,c,d,f,g,h,i=arguments[0]||{},j=1,k=arguments.length,l=!1;typeof i=="boolean"&&(l=i,i=arguments[1]||{},j=2),typeof i!="object"&&!e.isFunction(i)&&(i={}),k===j&&(i=this,--j);for(;j0)return;B.resolveWith(c,[e]),e.fn.trigger&&e(c).trigger("ready").unbind("ready")}},bindReady:function(){if(!B){B=e._Deferred();if(c.readyState==="complete")return setTimeout(e.ready,1);if(c.addEventListener)c.addEventListener("DOMContentLoaded",C,!1),a.addEventListener("load",e.ready,!1);else if(c.attachEvent){c.attachEvent("onreadystatechange",C),a.attachEvent("onload",e.ready);var b=!1;try{b=a.frameElement==null}catch(d){}c.documentElement.doScroll&&b&&K()}}},isFunction:function(a){return e.type(a)==="function"},isArray:Array.isArray||function(a){return e.type(a)==="array"},isWindow:function(a){return a&&typeof a=="object"&&"setInterval"in a},isNaN:function(a){return a==null||!m.test(a)||isNaN(a)},type:function(a){return a==null?String(a):J[D.call(a)]||"object"},isPlainObject:function(a){if(!a||e.type(a)!=="object"||a.nodeType||e.isWindow(a))return!1;try{if(a.constructor&&!E.call(a,"constructor")&&!E.call(a.constructor.prototype,"isPrototypeOf"))return!1}catch(c){return!1}var d;for(d in a);return d===b||E.call(a,d)},isEmptyObject:function(a){for(var b in a)return!1;return!0},error:function(a){throw a},parseJSON:function(b){if(typeof b!="string"||!b)return null;b=e.trim(b);if(a.JSON&&a.JSON.parse)return a.JSON.parse(b);if(o.test(b.replace(p,"@").replace(q,"]").replace(r,"")))return(new Function("return "+b))();e.error("Invalid JSON: "+b)},parseXML:function(c){var d,f;try{a.DOMParser?(f=new DOMParser,d=f.parseFromString(c,"text/xml")):(d=new ActiveXObject("Microsoft.XMLDOM"),d.async="false",d.loadXML(c))}catch(g){d=b}(!d||!d.documentElement||d.getElementsByTagName("parsererror").length)&&e.error("Invalid XML: "+c);return d},noop:function(){},globalEval:function(b){b&&j.test(b)&&(a.execScript||function(b){a.eval.call(a,b)})(b)},camelCase:function(a){return a.replace(x,"ms-").replace(w,y)},nodeName:function(a,b){return a.nodeName&&a.nodeName.toUpperCase()===b.toUpperCase()},each:function(a,c,d){var f,g=0,h=a.length,i=h===b||e.isFunction(a);if(d){if(i){for(f in a)if(c.apply(a[f],d)===!1)break}else for(;g0&&a[0]&&a[j-1]||j===0||e.isArray(a));if(k)for(;i1?h.call(arguments,0):c,--e||g.resolveWith(g,h.call(b,0))}}var b=arguments,c=0,d=b.length,e=d,g=d<=1&&a&&f.isFunction(a.promise)?a:f.Deferred();if(d>1){for(;ca",d=a.getElementsByTagName("*"),e=a.getElementsByTagName("a")[0];if(!d||!d.length||!e)return{};g=c.createElement("select"),h=g.appendChild(c.createElement("option")),i=a.getElementsByTagName("input")[0],k={leadingWhitespace:a.firstChild.nodeType===3,tbody:!a.getElementsByTagName("tbody").length,htmlSerialize:!!a.getElementsByTagName("link").length,style:/top/.test(e.getAttribute("style")),hrefNormalized:e.getAttribute("href")==="/a",opacity:/^0.55$/.test(e.style.opacity),cssFloat:!!e.style.cssFloat,checkOn:i.value==="on",optSelected:h.selected,getSetAttribute:a.className!=="t",submitBubbles:!0,changeBubbles:!0,focusinBubbles:!1,deleteExpando:!0,noCloneEvent:!0,inlineBlockNeedsLayout:!1,shrinkWrapBlocks:!1,reliableMarginRight:!0},i.checked=!0,k.noCloneChecked=i.cloneNode(!0).checked,g.disabled=!0,k.optDisabled=!h.disabled;try{delete a.test}catch(v){k.deleteExpando=!1}!a.addEventListener&&a.attachEvent&&a.fireEvent&&(a.attachEvent("onclick",function(){k.noCloneEvent=!1}),a.cloneNode(!0).fireEvent("onclick")),i=c.createElement("input"),i.value="t",i.setAttribute("type","radio"),k.radioValue=i.value==="t",i.setAttribute("checked","checked"),a.appendChild(i),l=c.createDocumentFragment(),l.appendChild(a.firstChild),k.checkClone=l.cloneNode(!0).cloneNode(!0).lastChild.checked,a.innerHTML="",a.style.width=a.style.paddingLeft="1px",m=c.getElementsByTagName("body")[0],o=c.createElement(m?"div":"body"),p={visibility:"hidden",width:0,height:0,border:0,margin:0,background:"none"},m&&f.extend(p,{position:"absolute",left:"-1000px",top:"-1000px"});for(t in p)o.style[t]=p[t];o.appendChild(a),n=m||b,n.insertBefore(o,n.firstChild),k.appendChecked=i.checked,k.boxModel=a.offsetWidth===2,"zoom"in a.style&&(a.style.display="inline",a.style.zoom=1,k.inlineBlockNeedsLayout=a.offsetWidth===2,a.style.display="",a.innerHTML="",k.shrinkWrapBlocks=a.offsetWidth!==2),a.innerHTML="t",q=a.getElementsByTagName("td"),u=q[0].offsetHeight===0,q[0].style.display="",q[1].style.display="none",k.reliableHiddenOffsets=u&&q[0].offsetHeight===0,a.innerHTML="",c.defaultView&&c.defaultView.getComputedStyle&&(j=c.createElement("div"),j.style.width="0",j.style.marginRight="0",a.appendChild(j),k.reliableMarginRight=(parseInt((c.defaultView.getComputedStyle(j,null)||{marginRight:0}).marginRight,10)||0)===0),o.innerHTML="",n.removeChild(o);if(a.attachEvent)for(t in{submit:1,change:1,focusin:1})s="on"+t,u=s in a,u||(a.setAttribute(s,"return;"),u=typeof a[s]=="function"),k[t+"Bubbles"]=u;o=l=g=h=m=j=a=i=null;return k}(),f.boxModel=f.support.boxModel;var i=/^(?:\{.*\}|\[.*\])$/,j=/([A-Z])/g;f.extend({cache:{},uuid:0,expando:"jQuery"+(f.fn.jquery+Math.random()).replace(/\D/g,""),noData:{embed:!0,object:"clsid:D27CDB6E-AE6D-11cf-96B8-444553540000",applet:!0},hasData:function(a){a=a.nodeType?f.cache[a[f.expando]]:a[f.expando];return!!a&&!l(a)},data:function(a,c,d,e){if(!!f.acceptData(a)){var g,h,i=f.expando,j=typeof c=="string",k=a.nodeType,l=k?f.cache:a,m=k?a[f.expando]:a[f.expando]&&f.expando;if((!m||e&&m&&l[m]&&!l[m][i])&&j&&d===b)return;m||(k?a[f.expando]=m=++f.uuid:m=f.expando),l[m]||(l[m]={},k||(l[m].toJSON=f.noop));if(typeof c=="object"||typeof c=="function")e?l[m][i]=f.extend(l[m][i],c):l[m]=f.extend(l[m],c);g=l[m],e&&(g[i]||(g[i]={}),g=g[i]),d!==b&&(g[f.camelCase(c)]=d);if(c==="events"&&!g[c])return g[i]&&g[i].events;j?(h=g[c],h==null&&(h=g[f.camelCase(c)])):h=g;return h}},removeData:function(a,b,c){if(!!f.acceptData(a)){var d,e=f.expando,g=a.nodeType,h=g?f.cache:a,i=g?a[f.expando]:f.expando;if(!h[i])return;if(b){d=c?h[i][e]:h[i];if(d){d[b]||(b=f.camelCase(b)),delete d[b];if(!l(d))return}}if(c){delete h[i][e];if(!l(h[i]))return}var j=h[i][e];f.support.deleteExpando||!h.setInterval?delete h[i]:h[i]=null,j?(h[i]={},g||(h[i].toJSON=f.noop),h[i][e]=j):g&&(f.support.deleteExpando?delete a[f.expando]:a.removeAttribute?a.removeAttribute(f.expando):a[f.expando]=null)}},_data:function(a,b,c){return f.data(a,b,c,!0)},acceptData:function(a){if(a.nodeName){var b=f.noData[a.nodeName.toLowerCase()];if(b)return b!==!0&&a.getAttribute("classid")===b}return!0}}),f.fn.extend({data:function(a,c){var d=null;if(typeof a=="undefined"){if(this.length){d=f.data(this[0]);if(this[0].nodeType===1){var e=this[0].attributes,g;for(var h=0,i=e.length;h-1)return!0;return!1},val:function(a){var c,d,e=this[0];if(!arguments.length){if(e){c=f.valHooks[e.nodeName.toLowerCase()]||f.valHooks[e.type];if(c&&"get"in c&&(d=c.get(e,"value"))!==b)return d;d=e.value;return typeof d=="string"?d.replace(p,""):d==null?"":d}return b}var g=f.isFunction(a);return this.each(function(d){var e=f(this),h;if(this.nodeType===1){g?h=a.call(this,d,e.val()):h=a,h==null?h="":typeof h=="number"?h+="":f.isArray(h)&&(h=f.map(h,function(a){return a==null?"":a+""})),c=f.valHooks[this.nodeName.toLowerCase()]||f.valHooks[this.type];if(!c||!("set"in c)||c.set(this,h,"value")===b)this.value=h}})}}),f.extend({valHooks:{option:{get:function(a){var b=a.attributes.value;return!b||b.specified?a.value:a.text}},select:{get:function(a){var b,c=a.selectedIndex,d=[],e=a.options,g=a.type==="select-one";if(c<0)return null;for(var h=g?c:0,i=g?c+1:e.length;h=0}),c.length||(a.selectedIndex=-1);return c}}},attrFn:{val:!0,css:!0,html:!0,text:!0,data:!0,width:!0,height:!0,offset:!0},attrFix:{tabindex:"tabIndex"},attr:function(a,c,d,e){var g=a.nodeType;if(!a||g===3||g===8||g===2)return b;if(e&&c in f.attrFn)return f(a)[c](d);if(!("getAttribute"in a))return f.prop(a,c,d);var h,i,j=g!==1||!f.isXMLDoc(a);j&&(c=f.attrFix[c]||c,i=f.attrHooks[c],i||(t.test(c)?i=v:u&&(i=u)));if(d!==b){if(d===null){f.removeAttr(a,c);return b}if(i&&"set"in i&&j&&(h=i.set(a,d,c))!==b)return h;a.setAttribute(c,""+d);return d}if(i&&"get"in i&&j&&(h=i.get(a,c))!==null)return h;h=a.getAttribute(c);return h===null?b:h},removeAttr:function(a,b){var c;a.nodeType===1&&(b=f.attrFix[b]||b,f.attr(a,b,""),a.removeAttribute(b),t.test(b)&&(c=f.propFix[b]||b)in a&&(a[c]=!1))},attrHooks:{type:{set:function(a,b){if(q.test(a.nodeName)&&a.parentNode)f.error("type property can't be changed");else if(!f.support.radioValue&&b==="radio"&&f.nodeName(a,"input")){var c=a.value;a.setAttribute("type",b),c&&(a.value=c);return b}}},value:{get:function(a,b){if(u&&f.nodeName(a,"button"))return u.get(a,b);return b in a?a.value:null},set:function(a,b,c){if(u&&f.nodeName(a,"button"))return u.set(a,b,c);a.value=b}}},propFix:{tabindex:"tabIndex",readonly:"readOnly","for":"htmlFor","class":"className",maxlength:"maxLength",cellspacing:"cellSpacing",cellpadding:"cellPadding",rowspan:"rowSpan",colspan:"colSpan",usemap:"useMap",frameborder:"frameBorder",contenteditable:"contentEditable"},prop:function(a,c,d){var e=a.nodeType;if(!a||e===3||e===8||e===2)return b;var g,h,i=e!==1||!f.isXMLDoc(a);i&&(c=f.propFix[c]||c,h=f.propHooks[c]);return d!==b?h&&"set"in h&&(g=h.set(a,d,c))!==b?g:a[c]=d:h&&"get"in h&&(g=h.get(a,c))!==null?g:a[c]},propHooks:{tabIndex:{get:function(a){var c=a.getAttributeNode("tabindex");return c&&c.specified?parseInt(c.value,10):r.test(a.nodeName)||s.test(a.nodeName)&&a.href?0:b}}}}),f.attrHooks.tabIndex=f.propHooks.tabIndex,v={get:function(a,c){var d;return f.prop(a,c)===!0||(d=a.getAttributeNode(c))&&d.nodeValue!==!1?c.toLowerCase():b},set:function(a,b,c){var d;b===!1?f.removeAttr(a,c):(d=f.propFix[c]||c,d in a&&(a[d]=!0),a.setAttribute(c,c.toLowerCase()));return c}},f.support.getSetAttribute||(u=f.valHooks.button={get:function(a,c){var d;d=a.getAttributeNode(c);return d&&d.nodeValue!==""?d.nodeValue:b},set:function(a,b,d){var e=a.getAttributeNode(d);e||(e=c.createAttribute(d),a.setAttributeNode(e));return e.nodeValue=b+""}},f.each(["width","height"],function(a,b){f.attrHooks[b]=f.extend(f.attrHooks[b],{set:function(a,c){if(c===""){a.setAttribute(b,"auto");return c}}})})),f.support.hrefNormalized||f.each(["href","src","width","height"],function(a,c){f.attrHooks[c]=f.extend(f.attrHooks[c],{get:function(a){var d=a.getAttribute(c,2);return d===null?b:d}})}),f.support.style||(f.attrHooks.style={get:function(a){return a.style.cssText.toLowerCase()||b},set:function(a,b){return a.style.cssText=""+b}}),f.support.optSelected||(f.propHooks.selected=f.extend(f.propHooks.selected,{get:function(a){var b=a.parentNode;b&&(b.selectedIndex,b.parentNode&&b.parentNode.selectedIndex);return null}})),f.support.checkOn||f.each(["radio","checkbox"],function(){f.valHooks[this]={get:function(a){return a.getAttribute("value")===null?"on":a.value}}}),f.each(["radio","checkbox"],function(){f.valHooks[this]=f.extend(f.valHooks[this],{set:function(a,b){if(f.isArray(b))return a.checked=f.inArray(f(a).val(),b)>=0}})});var w=/\.(.*)$/,x=/^(?:textarea|input|select)$/i,y=/\./g,z=/ /g,A=/[^\w\s.|`]/g,B=function(a){return a.replace(A,"\\$&")};f.event={add:function(a,c,d,e){if(a.nodeType!==3&&a.nodeType!==8){if(d===!1)d=C;else if(!d)return;var g,h;d.handler&&(g=d,d=g.handler),d.guid||(d.guid=f.guid++);var i=f._data(a);if(!i)return;var j=i.events,k=i.handle;j||(i.events=j={}),k||(i.handle=k=function(a){return typeof f!="undefined"&&(!a||f.event.triggered!==a.type)?f.event.handle.apply(k.elem,arguments):b}),k.elem=a,c=c.split(" ");var l,m=0,n;while(l=c[m++]){h=g?f.extend({},g):{handler:d,data:e},l.indexOf(".")>-1?(n=l.split("."),l=n.shift(),h.namespace=n.slice(0).sort().join(".")):(n=[],h.namespace=""),h.type=l,h.guid||(h.guid=d.guid);var o=j[l],p=f.event.special[l]||{};if(!o){o=j[l]=[];if(!p.setup||p.setup.call(a,e,n,k)===!1)a.addEventListener?a.addEventListener(l,k,!1):a.attachEvent&&a.attachEvent("on"+l,k)}p.add&&(p.add.call(a,h),h.handler.guid||(h.handler.guid=d.guid)),o.push(h),f.event.global[l]=!0}a=null}},global:{},remove:function(a,c,d,e){if(a.nodeType!==3&&a.nodeType!==8){d===!1&&(d=C);var g,h,i,j,k=0,l,m,n,o,p,q,r,s=f.hasData(a)&&f._data(a),t=s&&s.events;if(!s||!t)return;c&&c.type&&(d=c.handler,c=c.type);if(!c||typeof c=="string"&&c.charAt(0)==="."){c=c||"";for(h in t)f.event.remove(a,h+c);return}c=c.split(" ");while(h=c[k++]){r=h,q=null,l=h.indexOf(".")<0,m=[],l||(m=h.split("."),h=m.shift(),n=new RegExp("(^|\\.)"+f.map(m.slice(0).sort(),B).join("\\.(?:.*\\.)?")+"(\\.|$)")),p=t[h];if(!p)continue;if(!d){for(j=0;j=0&&(h=h.slice(0,-1),j=!0),h.indexOf(".")>=0&&(i=h.split("."),h=i.shift(),i.sort());if(!!e&&!f.event.customEvent[h]||!!f.event.global[h]){c=typeof c=="object"?c[f.expando]?c:new f.Event(h,c):new f.Event(h),c.type=h,c.exclusive=j,c.namespace=i.join("."),c.namespace_re=new RegExp("(^|\\.)"+i.join("\\.(?:.*\\.)?")+"(\\.|$)");if(g||!e)c.preventDefault(),c.stopPropagation();if(!e){f.each(f.cache,function(){var a=f.expando,b=this[a];b&&b.events&&b.events[h]&&f.event.trigger(c,d,b.handle.elem)});return}if(e.nodeType===3||e.nodeType===8)return;c.result=b,c.target=e,d=d!=null?f.makeArray(d):[],d.unshift(c);var k=e,l=h.indexOf(":")<0?"on"+h:"";do{var m=f._data(k,"handle");c.currentTarget=k,m&&m.apply(k,d),l&&f.acceptData(k)&&k[l]&&k[l].apply(k,d)===!1&&(c.result=!1,c.preventDefault()),k=k.parentNode||k.ownerDocument||k===c.target.ownerDocument&&a}while(k&&!c.isPropagationStopped());if(!c.isDefaultPrevented()){var n,o=f.event.special[h]||{};if((!o._default||o._default.call(e.ownerDocument,c)===!1)&&(h!=="click"||!f.nodeName(e,"a"))&&f.acceptData(e)){try{l&&e[h]&&(n=e[l],n&&(e[l]=null),f.event.triggered=h,e[h]())}catch(p){}n&&(e[l]=n),f.event.triggered=b}}return c.result}},handle:function(c){c=f.event.fix(c||a.event);var d=((f._data(this,"events")||{})[c.type]||[]).slice(0),e=!c.exclusive&&!c.namespace,g=Array.prototype.slice.call(arguments,0);g[0]=c,c.currentTarget=this;for(var h=0,i=d.length;h-1?f.map(a.options,function(a){return a.selected}).join("-"):"":f.nodeName(a,"select")&&(c=a.selectedIndex);return c},I=function(c){var d=c.target,e,g;if(!!x.test(d.nodeName)&&!d.readOnly){e=f._data(d,"_change_data"),g=H(d),(c.type!=="focusout"||d.type!=="radio")&&f._data(d,"_change_data",g);if(e===b||g===e)return;if(e!=null||g)c.type="change",c.liveFired=b,f.event.trigger(c,arguments[1],d)}};f.event.special.change={filters:{focusout:I,beforedeactivate:I,click:function(a){var b=a.target,c=f.nodeName(b,"input")?b.type:"";(c==="radio"||c==="checkbox"||f.nodeName(b,"select"))&&I.call(this,a)},keydown:function(a){var b=a.target,c=f.nodeName(b,"input")?b.type:"";(a.keyCode===13&&!f.nodeName(b,"textarea")||a.keyCode===32&&(c==="checkbox"||c==="radio")||c==="select-multiple")&&I.call(this,a)},beforeactivate:function(a){var b=a.target;f._data(b,"_change_data",H(b))}},setup:function(a,b){if(this.type==="file")return!1;for(var c in G)f.event.add(this,c+".specialChange",G[c]);return x.test(this.nodeName)},teardown:function(a){f.event.remove(this,".specialChange");return x.test(this.nodeName)}},G=f.event.special.change.filters,G.focus=G.beforeactivate}f.support.focusinBubbles||f.each({focus:"focusin",blur:"focusout"},function(a,b){function e(a){var c=f.event.fix(a);c.type=b,c.originalEvent={},f.event.trigger(c,null,c.target),c.isDefaultPrevented()&&a.preventDefault()}var d=0;f.event.special[b]={setup:function(){d++===0&&c.addEventListener(a,e,!0)},teardown:function(){--d===0&&c.removeEventListener(a,e,!0)}}}),f.each(["bind","one"],function(a,c){f.fn[c]=function(a,d,e){var g;if(typeof a=="object"){for(var h in a)this[c](h,d,a[h],e);return this}if(arguments.length===2||d===!1)e=d,d=b;c==="one"?(g=function(a){f(this).unbind(a,g);return e.apply(this,arguments)},g.guid=e.guid||f.guid++):g=e;if(a==="unload"&&c!=="one")this.one(a,d,e);else for(var i=0,j=this.length;i0?this.bind(b,a,c):this.trigger(b)},f.attrFn&&(f.attrFn[b]=!0)}),function(){function u(a,b,c,d,e,f){for(var g=0,h=d.length;g0){j=i;break}}i=i[a]}d[g]=j}}}function t(a,b,c,d,e,f){for(var g=0,h=d.length;g+~,(\[\\]+)+|[>+~])(\s*,\s*)?((?:.|\r|\n)*)/g,d=0,e=Object.prototype.toString,g=!1,h=!0,i=/\\/g,j=/\W/;[0,0].sort(function(){h=!1;return 0});var k=function(b,d,f,g){f=f||[],d=d||c;var h=d;if(d.nodeType!==1&&d.nodeType!==9)return[];if(!b||typeof b!="string")return f;var i,j,n,o,q,r,s,t,u=!0,w=k.isXML(d),x=[],y=b;do{a.exec(""),i=a.exec(y);if(i){y=i[3],x.push(i[1]);if(i[2]){o=i[3];break}}}while(i);if(x.length>1&&m.exec(b))if(x.length===2&&l.relative[x[0]])j=v(x[0]+x[1],d);else{j=l.relative[x[0]]?[d]:k(x.shift(),d);while(x.length)b=x.shift(),l.relative[b]&&(b+=x.shift()),j=v(b,j)}else{!g&&x.length>1&&d.nodeType===9&&!w&&l.match.ID.test(x[0])&&!l.match.ID.test(x[x.length-1])&&(q=k.find(x.shift(),d,w),d=q.expr?k.filter(q.expr,q.set)[0]:q.set[0]);if(d){q=g?{expr:x.pop(),set:p(g)}:k.find(x.pop(),x.length===1&&(x[0]==="~"||x[0]==="+")&&d.parentNode?d.parentNode:d,w),j=q.expr?k.filter(q.expr,q.set):q.set,x.length>0?n=p(j):u=!1;while(x.length)r=x.pop(),s=r,l.relative[r]?s=x.pop():r="",s==null&&(s=d),l.relative[r](n,s,w)}else n=x=[]}n||(n=j),n||k.error(r||b);if(e.call(n)==="[object Array]")if(!u)f.push.apply(f,n);else if(d&&d.nodeType===1)for(t=0;n[t]!=null;t++)n[t]&&(n[t]===!0||n[t].nodeType===1&&k.contains(d,n[t]))&&f.push(j[t]);else for(t=0;n[t]!=null;t++)n[t]&&n[t].nodeType===1&&f.push(j[t]);else p(n,f);o&&(k(o,h,f,g),k.uniqueSort(f));return f};k.uniqueSort=function(a){if(r){g=h,a.sort(r);if(g)for(var b=1;b0},k.find=function(a,b,c){var d;if(!a)return[];for(var e=0,f=l.order.length;e":function(a,b){var c,d=typeof b=="string",e=0,f=a.length;if(d&&!j.test(b)){b=b.toLowerCase();for(;e=0)?c||d.push(h):c&&(b[g]=!1));return!1},ID:function(a){return a[1].replace(i,"")},TAG:function(a,b){return a[1].replace(i,"").toLowerCase()},CHILD:function(a){if(a[1]==="nth"){a[2]||k.error(a[0]),a[2]=a[2].replace(/^\+|\s*/g,"");var b=/(-?)(\d*)(?:n([+\-]?\d*))?/.exec(a[2]==="even"&&"2n"||a[2]==="odd"&&"2n+1"||!/\D/.test(a[2])&&"0n+"+a[2]||a[2]);a[2]=b[1]+(b[2]||1)-0,a[3]=b[3]-0}else a[2]&&k.error(a[0]);a[0]=d++;return a},ATTR:function(a,b,c,d,e,f){var g=a[1]=a[1].replace(i,"");!f&&l.attrMap[g]&&(a[1]=l.attrMap[g]),a[4]=(a[4]||a[5]||"").replace(i,""),a[2]==="~="&&(a[4]=" "+a[4]+" ");return a},PSEUDO:function(b,c,d,e,f){if(b[1]==="not")if((a.exec(b[3])||"").length>1||/^\w/.test(b[3]))b[3]=k(b[3],null,null,c);else{var g=k.filter(b[3],c,d,!0^f);d||e.push.apply(e,g);return!1}else if(l.match.POS.test(b[0])||l.match.CHILD.test(b[0]))return!0;return b},POS:function(a){a.unshift(!0);return a}},filters:{enabled:function(a){return a.disabled===!1&&a.type!=="hidden"},disabled:function(a){return a.disabled===!0},checked:function(a){return a.checked===!0},selected:function(a){a.parentNode&&a.parentNode.selectedIndex;return a.selected===!0},parent:function(a){return!!a.firstChild},empty:function(a){return!a.firstChild},has:function(a,b,c){return!!k(c[3],a).length},header:function(a){return/h\d/i.test(a.nodeName)},text:function(a){var b=a.getAttribute("type"),c=a.type;return a.nodeName.toLowerCase()==="input"&&"text"===c&&(b===c||b===null)},radio:function(a){return a.nodeName.toLowerCase()==="input"&&"radio"===a.type},checkbox:function(a){return a.nodeName.toLowerCase()==="input"&&"checkbox"===a.type},file:function(a){return a.nodeName.toLowerCase()==="input"&&"file"===a.type},password:function(a){return a.nodeName.toLowerCase()==="input"&&"password"===a.type},submit:function(a){var b=a.nodeName.toLowerCase();return(b==="input"||b==="button")&&"submit"===a.type},image:function(a){return a.nodeName.toLowerCase()==="input"&&"image"===a.type},reset:function(a){var b=a.nodeName.toLowerCase();return(b==="input"||b==="button")&&"reset"===a.type},button:function(a){var b=a.nodeName.toLowerCase();return b==="input"&&"button"===a.type||b==="button"},input:function(a){return/input|select|textarea|button/i.test(a.nodeName)},focus:function(a){return a===a.ownerDocument.activeElement}},setFilters:{first:function(a,b){return b===0},last:function(a,b,c,d){return b===d.length-1},even:function(a,b){return b%2===0},odd:function(a,b){return b%2===1},lt:function(a,b,c){return bc[3]-0},nth:function(a,b,c){return c[3]-0===b},eq:function(a,b,c){return c[3]-0===b}},filter:{PSEUDO:function(a,b,c,d){var e=b[1],f=l.filters[e];if(f)return f(a,c,b,d);if(e==="contains")return(a.textContent||a.innerText||k.getText([a])||"").indexOf(b[3])>=0;if(e==="not"){var g=b[3];for(var h=0,i=g.length;h=0}},ID:function(a,b){return a.nodeType===1&&a.getAttribute("id")===b},TAG:function(a,b){return b==="*"&&a.nodeType===1||a.nodeName.toLowerCase()===b},CLASS:function(a,b){return(" "+(a.className||a.getAttribute("class"))+" ").indexOf(b)>-1},ATTR:function(a,b){var c=b[1],d=l.attrHandle[c]?l.attrHandle[c](a):a[c]!=null?a[c]:a.getAttribute(c),e=d+"",f=b[2],g=b[4];return d==null?f==="!=":f==="="?e===g:f==="*="?e.indexOf(g)>=0:f==="~="?(" "+e+" ").indexOf(g)>=0:g?f==="!="?e!==g:f==="^="?e.indexOf(g)===0:f==="$="?e.substr(e.length-g.length)===g:f==="|="?e===g||e.substr(0,g.length+1)===g+"-":!1:e&&d!==!1},POS:function(a,b,c,d){var e=b[2],f=l.setFilters[e];if(f)return f(a,c,b,d)}}},m=l.match.POS,n=function(a,b){return"\\"+(b-0+1)};for(var o in l.match)l.match[o]=new RegExp(l.match[o].source+/(?![^\[]*\])(?![^\(]*\))/.source),l.leftMatch[o]=new RegExp(/(^(?:.|\r|\n)*?)/.source+l.match[o].source.replace(/\\(\d+)/g,n));var p=function(a,b){a=Array.prototype.slice.call(a,0);if(b){b.push.apply(b,a);return b}return a};try{Array.prototype.slice.call(c.documentElement.childNodes,0)[0].nodeType}catch(q){p=function(a,b){var c=0,d=b||[];if(e.call(a)==="[object Array]")Array.prototype.push.apply(d,a);else if(typeof a.length=="number")for(var f=a.length;c",e.insertBefore(a,e.firstChild),c.getElementById(d)&&(l.find.ID=function(a,c,d){if(typeof c.getElementById!="undefined"&&!d){var e=c.getElementById(a[1]);return e?e.id===a[1]||typeof e.getAttributeNode!="undefined"&&e.getAttributeNode("id").nodeValue===a[1]?[e]:b:[]}},l.filter.ID=function(a,b){var c=typeof a.getAttributeNode!="undefined"&&a.getAttributeNode("id");return a.nodeType===1&&c&&c.nodeValue===b}),e.removeChild(a),e=a=null}(),function(){var a=c.createElement("div");a.appendChild(c.createComment("")),a.getElementsByTagName("*").length>0&&(l.find.TAG=function(a,b){var c=b.getElementsByTagName(a[1]);if(a[1]==="*"){var d=[];for(var e=0;c[e];e++)c[e].nodeType===1&&d.push(c[e]);c=d}return c}),a.innerHTML="",a.firstChild&&typeof a.firstChild.getAttribute!="undefined"&&a.firstChild.getAttribute("href")!=="#"&&(l.attrHandle.href=function(a){return a.getAttribute("href",2)}),a=null}(),c.querySelectorAll&&function(){var a=k,b=c.createElement("div"),d="__sizzle__";b.innerHTML="";if(!b.querySelectorAll||b.querySelectorAll(".TEST").length!==0){k=function(b,e,f,g){e=e||c;if(!g&&!k.isXML(e)){var h=/^(\w+$)|^\.([\w\-]+$)|^#([\w\-]+$)/.exec(b);if(h&&(e.nodeType===1||e.nodeType===9)){if(h[1])return p(e.getElementsByTagName(b),f);if(h[2]&&l.find.CLASS&&e.getElementsByClassName)return p(e.getElementsByClassName(h[2]),f)}if(e.nodeType===9){if(b==="body"&&e.body)return p([e.body],f);if(h&&h[3]){var i=e.getElementById(h[3]);if(!i||!i.parentNode)return p([],f);if(i.id===h[3])return p([i],f)}try{return p(e.querySelectorAll(b),f)}catch(j){}}else if(e.nodeType===1&&e.nodeName.toLowerCase()!=="object"){var m=e,n=e.getAttribute("id"),o=n||d,q=e.parentNode,r=/^\s*[+~]/.test(b);n?o=o.replace(/'/g,"\\$&"):e.setAttribute("id",o),r&&q&&(e=e.parentNode);try{if(!r||q)return p(e.querySelectorAll("[id='"+o+"'] "+b),f)}catch(s){}finally{n||m.removeAttribute("id")}}}return a(b,e,f,g)};for(var e in a)k[e]=a[e];b=null}}(),function(){var a=c.documentElement,b=a.matchesSelector||a.mozMatchesSelector||a.webkitMatchesSelector||a.msMatchesSelector;if(b){var d=!b.call(c.createElement("div"),"div"),e=!1;try{b.call(c.documentElement,"[test!='']:sizzle")}catch(f){e=!0}k.matchesSelector=function(a,c){c=c.replace(/\=\s*([^'"\]]*)\s*\]/g,"='$1']");if(!k.isXML(a))try{if(e||!l.match.PSEUDO.test(c)&&!/!=/.test(c)){var f=b.call(a,c);if(f||!d||a.document&&a.document.nodeType!==11)return f}}catch(g){}return k(c,null,null,[a]).length>0}}}(),function(){var a=c.createElement("div");a.innerHTML="";if(!!a.getElementsByClassName&&a.getElementsByClassName("e").length!==0){a.lastChild.className="e";if(a.getElementsByClassName("e").length===1)return;l.order.splice(1,0,"CLASS"),l.find.CLASS=function(a,b,c){if(typeof b.getElementsByClassName!="undefined"&&!c)return b.getElementsByClassName(a[1])},a=null}}(),c.documentElement.contains?k.contains=function(a,b){return a!==b&&(a.contains?a.contains(b):!0)}:c.documentElement.compareDocumentPosition?k.contains=function(a,b){return!!(a.compareDocumentPosition(b)&16)}:k.contains=function(){return!1},k.isXML=function(a){var b=(a?a.ownerDocument||a:0).documentElement;return b?b.nodeName!=="HTML":!1};var v=function(a,b){var c,d=[],e="",f=b.nodeType?[b]:b;while(c=l.match.PSEUDO.exec(a))e+=c[0],a=a.replace(l.match.PSEUDO,"");a=l.relative[a]?a+"*":a;for(var g=0,h=f.length;g0)for(h=g;h0:this.filter(a).length>0)},closest:function(a,b){var c=[],d,e,g=this[0];if(f.isArray(a)){var h,i,j={},k=1;if(g&&a.length){for(d=0,e=a.length;d-1:f(g).is(h))&&c.push({selector:i,elem:g,level:k});g=g.parentNode,k++}}return c}var l=S.test(a)||typeof a!="string"?f(a,b||this.context):0;for(d=0,e=this.length;d-1:f.find.matchesSelector(g,a)){c.push(g);break}g=g.parentNode;if(!g||!g.ownerDocument||g===b||g.nodeType===11)break}}c=c.length>1?f.unique(c):c;return this.pushStack(c,"closest",a)},index:function(a){if(!a)return this[0]&&this[0].parentNode?this.prevAll().length:-1;if(typeof a=="string")return f.inArray(this[0],f(a));return f.inArray(a.jquery?a[0]:a,this)},add:function(a,b){var c=typeof a=="string"?f(a,b):f.makeArray(a&&a.nodeType?[a]:a),d=f.merge(this.get(),c);return this.pushStack(U(c[0])||U(d[0])?d:f.unique(d))},andSelf:function(){return this.add(this.prevObject)}}),f.each({parent:function(a){var b=a.parentNode;return b&&b.nodeType!==11?b:null},parents:function(a){return f.dir(a,"parentNode")},parentsUntil:function(a,b,c){return f.dir(a,"parentNode",c)},next:function(a){return f.nth(a,2,"nextSibling")},prev:function(a){return f.nth(a,2,"previousSibling")},nextAll:function(a){return f.dir(a,"nextSibling")},prevAll:function(a){return f.dir(a,"previousSibling")},nextUntil:function(a,b,c){return f.dir(a,"nextSibling",c)},prevUntil:function(a,b,c){return f.dir(a,"previousSibling",c)},siblings:function(a){return f.sibling(a.parentNode.firstChild,a)},children:function(a){return f.sibling(a.firstChild)},contents:function(a){return f.nodeName(a,"iframe")?a.contentDocument||a.contentWindow.document:f.makeArray(a.childNodes)}},function(a,b){f.fn[a]=function(c,d){var e=f.map(this,b,c),g=R.call(arguments);N.test(a)||(d=c),d&&typeof d=="string"&&(e=f.filter(d,e)),e=this.length>1&&!T[a]?f.unique(e):e,(this.length>1||P.test(d))&&O.test(a)&&(e=e.reverse());return this.pushStack(e,a,g.join(","))}}),f.extend({filter:function(a,b,c){c&&(a=":not("+a+")");return b.length===1?f.find.matchesSelector(b[0],a)?[b[0]]:[]:f.find.matches(a,b)},dir:function(a,c,d){var e=[],g=a[c];while(g&&g.nodeType!==9&&(d===b||g.nodeType!==1||!f(g).is(d)))g.nodeType===1&&e.push(g),g=g[c];return e},nth:function(a,b,c,d){b=b||1;var e=0;for(;a;a=a[c])if(a.nodeType===1&&++e===b)break;return a},sibling:function(a,b){var c=[];for(;a;a=a.nextSibling)a.nodeType===1&&a!==b&&c.push(a);return c}});var W=/ jQuery\d+="(?:\d+|null)"/g,X=/^\s+/,Y=/<(?!area|br|col|embed|hr|img|input|link|meta|param)(([\w:]+)[^>]*)\/>/ig,Z=/<([\w:]+)/,$=/",""],legend:[1,"",""],thead:[1,"",""],tr:[2,"",""],td:[3,"",""],col:[2,"",""],area:[1,"",""],_default:[0,"",""]};be.optgroup=be.option,be.tbody=be.tfoot=be.colgroup=be.caption=be.thead,be.th=be.td,f.support.htmlSerialize||(be._default=[1,"div",""]),f.fn.extend({text:function(a){if(f.isFunction(a))return this.each(function(b){var c=f(this);c.text(a.call(this,b,c.text()))});if(typeof a!="object"&&a!==b)return this.empty().append((this[0]&&this[0].ownerDocument||c).createTextNode(a));return f.text(this)},wrapAll:function(a){if(f.isFunction(a))return this.each(function(b){f(this).wrapAll(a.call(this,b))});if(this[0]){var b=f(a,this[0].ownerDocument).eq(0).clone(!0);this[0].parentNode&&b.insertBefore(this[0]),b.map(function(){var a=this;while(a.firstChild&&a.firstChild.nodeType===1)a=a.firstChild;return a}).append(this)}return this},wrapInner:function(a){if(f.isFunction(a))return this.each(function(b){f(this).wrapInner(a.call(this,b))});return this.each(function(){var b=f(this),c=b.contents();c.length?c.wrapAll(a):b.append(a)})},wrap:function(a){return this.each(function(){f(this).wrapAll(a)})},unwrap:function(){return this.parent().each(function(){f.nodeName(this,"body")||f(this).replaceWith(this.childNodes)}).end()},append:function(){return this.domManip(arguments,!0,function(a){this.nodeType===1&&this.appendChild(a)})},prepend:function(){return this.domManip(arguments,!0,function(a){this.nodeType===1&&this.insertBefore(a,this.firstChild)})},before:function(){if(this[0]&&this[0].parentNode)return this.domManip(arguments,!1,function(a){this.parentNode.insertBefore(a,this)});if(arguments.length){var a=f(arguments[0]);a.push.apply(a,this.toArray());return this.pushStack(a,"before",arguments)}},after:function(){if(this[0]&&this[0].parentNode)return this.domManip(arguments,!1,function(a){this.parentNode.insertBefore(a,this.nextSibling)});if(arguments.length){var a=this.pushStack(this,"after",arguments);a.push.apply(a,f(arguments[0]).toArray());return a}},remove:function(a,b){for(var c=0,d;(d=this[c])!=null;c++)if(!a||f.filter(a,[d]).length)!b&&d.nodeType===1&&(f.cleanData(d.getElementsByTagName("*")),f.cleanData([d])),d.parentNode&&d.parentNode.removeChild(d);return this},empty:function(){for(var a=0,b;(b=this[a])!=null;a++){b.nodeType===1&&f.cleanData(b.getElementsByTagName("*"));while(b.firstChild)b.removeChild(b.firstChild)}return this},clone:function(a,b){a=a==null?!1:a,b=b==null?a:b;return this.map(function(){return f.clone(this,a,b)})},html:function(a){if(a===b)return this[0]&&this[0].nodeType===1?this[0].innerHTML.replace(W,""):null;if(typeof a=="string"&&!ba.test(a)&&(f.support.leadingWhitespace||!X.test(a))&&!be[(Z.exec(a)||["",""])[1].toLowerCase()]){a=a.replace(Y,"<$1>$2>");try{for(var c=0,d=this.length;c1&&l0?this.clone(!0):this).get();f(e[h])[b](j),d=d.concat(j)}return this.pushStack(d,a,e.selector)}}),f.extend({clone:function(a,b,c){var d=a.cloneNode(!0),e,g,h;if((!f.support.noCloneEvent||!f.support.noCloneChecked)&&(a.nodeType===1||a.nodeType===11)&&!f.isXMLDoc(a)){bh(a,d),e=bi(a),g=bi(d);for(h=0;e[h];++h)g[h]&&bh(e[h],g[h])}if(b){bg(a,d);if(c){e=bi(a),g=bi(d);for(h=0;e[h];++h)bg(e[h],g[h])}}e=g=null;return d},clean:function(a,b,d,e){var g;b=b||c,typeof b.createElement=="undefined"&&(b=b.ownerDocument||b[0]&&b[0].ownerDocument||c);var h=[],i;for(var j=0,k;(k=a[j])!=null;j++){typeof k=="number"&&(k+="");if(!k)continue;if(typeof k=="string")if(!_.test(k))k=b.createTextNode(k);else{k=k.replace(Y,"<$1>$2>");var l=(Z.exec(k)||["",""])[1].toLowerCase(),m=be[l]||be._default,n=m[0],o=b.createElement("div");o.innerHTML=m[1]+k+m[2];while(n--)o=o.lastChild;if(!f.support.tbody){var p=$.test(k),q=l==="table"&&!p?o.firstChild&&o.firstChild.childNodes:m[1]===""&&!p?o.childNodes:[];for(i=q.length-1;i>=0;--i)f.nodeName(q[i],"tbody")&&!q[i].childNodes.length&&q[i].parentNode.removeChild(q[i])}!f.support.leadingWhitespace&&X.test(k)&&o.insertBefore(b.createTextNode(X.exec(k)[0]),o.firstChild),k=o.childNodes}var r;if(!f.support.appendChecked)if(k[0]&&typeof (r=k.length)=="number")for(i=0;i=0)return b+"px"}}}),f.support.opacity||(f.cssHooks.opacity={get:function(a,b){return bn.test((b&&a.currentStyle?a.currentStyle.filter:a.style.filter)||"")?parseFloat(RegExp.$1)/100+"":b?"1":""},set:function(a,b){var c=a.style,d=a.currentStyle,e=f.isNaN(b)?"":"alpha(opacity="+b*100+")",g=d&&d.filter||c.filter||"";c.zoom=1;if(b>=1&&f.trim(g.replace(bm,""))===""){c.removeAttribute("filter");if(d&&!d.filter)return}c.filter=bm.test(g)?g.replace(bm,e):g+" "+e}}),f(function(){f.support.reliableMarginRight||(f.cssHooks.marginRight={get:function(a,b){var c;f.swap(a,{display:"inline-block"},function(){b?c=bv(a,"margin-right","marginRight"):c=a.style.marginRight});return c}})}),c.defaultView&&c.defaultView.getComputedStyle&&(bw=function(a,c){var d,e,g;c=c.replace(bo,"-$1").toLowerCase();if(!(e=a.ownerDocument.defaultView))return b;if(g=e.getComputedStyle(a,null))d=g.getPropertyValue(c),d===""&&!f.contains(a.ownerDocument.documentElement,a)&&(d=f.style(a,c));return d}),c.documentElement.currentStyle&&(bx=function(a,b){var c,d=a.currentStyle&&a.currentStyle[b],e=a.runtimeStyle&&a.runtimeStyle[b],f=a.style;!bp.test(d)&&bq.test(d)&&(c=f.left,e&&(a.runtimeStyle.left=a.currentStyle.left),f.left=b==="fontSize"?"1em":d||0,d=f.pixelLeft+"px",f.left=c,e&&(a.runtimeStyle.left=e));return d===""?"auto":d}),bv=bw||bx,f.expr&&f.expr.filters&&(f.expr.filters.hidden=function(a){var b=a.offsetWidth,c=a.offsetHeight;return b===0&&c===0||!f.support.reliableHiddenOffsets&&(a.style.display||f.css(a,"display"))==="none"},f.expr.filters.visible=function(a){return!f.expr.filters.hidden(a)});var bz=/%20/g,bA=/\[\]$/,bB=/\r?\n/g,bC=/#.*$/,bD=/^(.*?):[ \t]*([^\r\n]*)\r?$/mg,bE=/^(?:color|date|datetime|datetime-local|email|hidden|month|number|password|range|search|tel|text|time|url|week)$/i,bF=/^(?:about|app|app\-storage|.+\-extension|file|res|widget):$/,bG=/^(?:GET|HEAD)$/,bH=/^\/\//,bI=/\?/,bJ=/'),a.close(),t.location.hash=i)}}(),l}()}(e,this),function(e){t.matchMedia=t.matchMedia||function(e){var t,i=e.documentElement,n=i.firstElementChild||i.firstChild,a=e.createElement("body"),o=e.createElement("div");return o.id="mq-test-1",o.style.cssText="position:absolute;top:-100em",a.style.background="none",a.appendChild(o),function(e){return o.innerHTML='',i.insertBefore(a,n),t=42===o.offsetWidth,i.removeChild(a),{matches:t,media:e}}}(i),e.mobile.media=function(e){return t.matchMedia(e).matches}}(e),function(e){var t={touch:"ontouchend"in i};e.mobile.support=e.mobile.support||{},e.extend(e.support,t),e.extend(e.mobile.support,t)}(e),function(e){e.extend(e.support,{orientation:"orientation"in t&&"onorientationchange"in t})}(e),function(e,n){function a(e){var t=e.charAt(0).toUpperCase()+e.substr(1),i=(e+" "+p.join(t+" ")+t).split(" ");for(var a in i)if(u[i[a]]!==n)return!0}function o(e,t,n){for(var a,o=i.createElement("div"),s=function(e){return e.charAt(0).toUpperCase()+e.substr(1)},r=function(e){return""===e?"":"-"+e.charAt(0).toLowerCase()+e.substr(1)+"-"},l=function(i){var n=r(i)+e+": "+t+";",l=s(i),d=l+(""===l?e:s(e));o.setAttribute("style",n),o.style[d]&&(a=!0)},d=n?n:p,c=0;d.length>c;c++)l(d[c]);return!!a}function s(){var a="transform-3d",o=e.mobile.media("(-"+p.join("-"+a+"),(-")+"-"+a+"),("+a+")");if(o)return!!o;var s=i.createElement("div"),r={MozTransform:"-moz-transform",transform:"transform"};h.append(s);for(var l in r)s.style[l]!==n&&(s.style[l]="translate3d( 100px, 1px, 1px )",o=t.getComputedStyle(s).getPropertyValue(r[l]));return!!o&&"none"!==o}function r(){var t,i,n=location.protocol+"//"+location.host+location.pathname+"ui-dir/",a=e("head base"),o=null,s="";return a.length?s=a.attr("href"):a=o=e("",{href:n}).appendTo("head"),t=e("").prependTo(h),i=t[0].href,a[0].href=s||location.pathname,o&&o.remove(),0===i.indexOf(n)}function l(){var e,n=i.createElement("x"),a=i.documentElement,o=t.getComputedStyle;return"pointerEvents"in n.style?(n.style.pointerEvents="auto",n.style.pointerEvents="x",a.appendChild(n),e=o&&"auto"===o(n,"").pointerEvents,a.removeChild(n),!!e):!1}function d(){var e=i.createElement("div");return e.getBoundingClientRect!==n}function c(){var e=t,i=navigator.userAgent,n=navigator.platform,a=i.match(/AppleWebKit\/([0-9]+)/),o=!!a&&a[1],s=i.match(/Fennec\/([0-9]+)/),r=!!s&&s[1],l=i.match(/Opera Mobi\/([0-9]+)/),d=!!l&&l[1];return(n.indexOf("iPhone")>-1||n.indexOf("iPad")>-1||n.indexOf("iPod")>-1)&&o&&534>o||e.operamini&&"[object OperaMini]"==={}.toString.call(e.operamini)||l&&7458>d||i.indexOf("Android")>-1&&o&&533>o||r&&6>r||"palmGetResource"in t&&o&&534>o||i.indexOf("MeeGo")>-1&&i.indexOf("NokiaBrowser/8.5.0")>-1?!1:!0}var h=e("").prependTo("html"),u=h[0].style,p=["Webkit","Moz","O"],m="palmGetResource"in t,f=t.opera,g=t.operamini&&"[object OperaMini]"==={}.toString.call(t.operamini),b=t.blackberry&&!a("-webkit-transform");e.extend(e.mobile,{browser:{}}),e.mobile.browser.oldIE=function(){var e=3,t=i.createElement("div"),n=t.all||[];do t.innerHTML="";while(n[0]);return e>4?e:!e}(),e.extend(e.support,{cssTransitions:"WebKitTransitionEvent"in t||o("transition","height 100ms linear",["Webkit","Moz",""])&&!e.mobile.browser.oldIE&&!f,pushState:"pushState"in history&&"replaceState"in history&&!(t.navigator.userAgent.indexOf("Firefox")>=0&&t.top!==t)&&-1===t.navigator.userAgent.search(/CriOS/),mediaquery:e.mobile.media("only all"),cssPseudoElement:!!a("content"),touchOverflow:!!a("overflowScrolling"),cssTransform3d:s(),boxShadow:!!a("boxShadow")&&!b,fixedPosition:c(),scrollTop:("pageXOffset"in t||"scrollTop"in i.documentElement||"scrollTop"in h[0])&&!m&&!g,dynamicBaseTag:r(),cssPointerEvents:l(),boundingRect:d()}),h.remove();var v=function(){var e=t.navigator.userAgent;return e.indexOf("Nokia")>-1&&(e.indexOf("Symbian/3")>-1||e.indexOf("Series60/5")>-1)&&e.indexOf("AppleWebKit")>-1&&e.match(/(BrowserNG|NokiaBrowser)\/7\.[0-3]/)}();e.mobile.gradeA=function(){return(e.support.mediaquery||e.mobile.browser.oldIE&&e.mobile.browser.oldIE>=7)&&(e.support.boundingRect||null!==e.fn.jquery.match(/1\.[0-7+]\.[0-9+]?/))},e.mobile.ajaxBlacklist=t.blackberry&&!t.WebKitPoint||g||v,v&&e(function(){e("head link[rel='stylesheet']").attr("rel","alternate stylesheet").attr("rel","stylesheet")}),e.support.boxShadow||e("html").addClass("ui-mobile-nosupport-boxshadow")}(e),function(e,t){var i,n=e.mobile.window;e.event.special.navigate=i={bound:!1,pushStateEnabled:!0,originalEventName:t,isPushStateEnabled:function(){return e.support.pushState&&e.mobile.pushStateEnabled===!0&&this.isHashChangeEnabled()},isHashChangeEnabled:function(){return e.mobile.hashListeningEnabled===!0},popstate:function(t){var i=new e.Event("navigate"),a=new e.Event("beforenavigate"),o=t.originalEvent.state||{};location.href,n.trigger(a),a.isDefaultPrevented()||(t.historyState&&e.extend(o,t.historyState),i.originalEvent=t,setTimeout(function(){n.trigger(i,{state:o})},0))},hashchange:function(t){var i=new e.Event("navigate"),a=new e.Event("beforenavigate");n.trigger(a),a.isDefaultPrevented()||(i.originalEvent=t,n.trigger(i,{state:t.hashchangeState||{}}))},setup:function(){i.bound||(i.bound=!0,i.isPushStateEnabled()?(i.originalEventName="popstate",n.bind("popstate.navigate",i.popstate)):i.isHashChangeEnabled()&&(i.originalEventName="hashchange",n.bind("hashchange.navigate",i.hashchange)))}}}(e),function(e,i){var n,a,o="&ui-state=dialog";e.mobile.path=n={uiStateKey:"&ui-state",urlParseRE:/^\s*(((([^:\/#\?]+:)?(?:(\/\/)((?:(([^:@\/#\?]+)(?:\:([^:@\/#\?]+))?)@)?(([^:\/#\?\]\[]+|\[[^\/\]@#?]+\])(?:\:([0-9]+))?))?)?)?((\/?(?:[^\/\?#]+\/+)*)([^\?#]*)))?(\?[^#]+)?)(#.*)?/,getLocation:function(e){var t=e?this.parseUrl(e):location,i=this.parseUrl(e||location.href).hash;return i="#"===i?"":i,t.protocol+"//"+t.host+t.pathname+t.search+i},parseLocation:function(){return this.parseUrl(this.getLocation())},parseUrl:function(t){if("object"===e.type(t))return t;var i=n.urlParseRE.exec(t||"")||[];return{href:i[0]||"",hrefNoHash:i[1]||"",hrefNoSearch:i[2]||"",domain:i[3]||"",protocol:i[4]||"",doubleSlash:i[5]||"",authority:i[6]||"",username:i[8]||"",password:i[9]||"",host:i[10]||"",hostname:i[11]||"",port:i[12]||"",pathname:i[13]||"",directory:i[14]||"",filename:i[15]||"",search:i[16]||"",hash:i[17]||""}},makePathAbsolute:function(e,t){if(e&&"/"===e.charAt(0))return e;e=e||"",t=t?t.replace(/^\/|(\/[^\/]*|[^\/]+)$/g,""):"";for(var i=t?t.split("/"):[],n=e.split("/"),a=0;n.length>a;a++){var o=n[a];switch(o){case".":break;case"..":i.length&&i.pop();break;default:i.push(o)}}return"/"+i.join("/")},isSameDomain:function(e,t){return n.parseUrl(e).domain===n.parseUrl(t).domain},isRelativeUrl:function(e){return""===n.parseUrl(e).protocol},isAbsoluteUrl:function(e){return""!==n.parseUrl(e).protocol},makeUrlAbsolute:function(e,t){if(!n.isRelativeUrl(e))return e;t===i&&(t=this.documentBase);var a=n.parseUrl(e),o=n.parseUrl(t),s=a.protocol||o.protocol,r=a.protocol?a.doubleSlash:a.doubleSlash||o.doubleSlash,l=a.authority||o.authority,d=""!==a.pathname,c=n.makePathAbsolute(a.pathname||o.filename,o.pathname),h=a.search||!d&&o.search||"",u=a.hash;return s+r+l+c+h+u},addSearchParams:function(t,i){var a=n.parseUrl(t),o="object"==typeof i?e.param(i):i,s=a.search||"?";return a.hrefNoSearch+s+("?"!==s.charAt(s.length-1)?"&":"")+o+(a.hash||"")},convertUrlToDataUrl:function(e){var i=n.parseUrl(e);return n.isEmbeddedPage(i)?i.hash.split(o)[0].replace(/^#/,"").replace(/\?.*$/,""):n.isSameDomain(i,this.documentBase)?i.hrefNoHash.replace(this.documentBase.domain,"").split(o)[0]:t.decodeURIComponent(e)},get:function(e){return e===i&&(e=n.parseLocation().hash),n.stripHash(e).replace(/[^\/]*\.[^\/*]+$/,"")},set:function(e){location.hash=e},isPath:function(e){return/\//.test(e)},clean:function(e){return e.replace(this.documentBase.domain,"")},stripHash:function(e){return e.replace(/^#/,"")},stripQueryParams:function(e){return e.replace(/\?.*$/,"")},cleanHash:function(e){return n.stripHash(e.replace(/\?.*$/,"").replace(o,""))},isHashValid:function(e){return/^#[^#]+$/.test(e)},isExternal:function(e){var t=n.parseUrl(e);return t.protocol&&t.domain!==this.documentUrl.domain?!0:!1},hasProtocol:function(e){return/^(:?\w+:)/.test(e)},isEmbeddedPage:function(e){var t=n.parseUrl(e);return""!==t.protocol?!this.isPath(t.hash)&&t.hash&&(t.hrefNoHash===this.documentUrl.hrefNoHash||this.documentBaseDiffers&&t.hrefNoHash===this.documentBase.hrefNoHash):/^#/.test(t.href)},squash:function(e,t){var i,a,o,s,r=this.isPath(e),l=this.parseUrl(e),d=l.hash,c="";return t=t||(n.isPath(e)?n.getLocation():n.getDocumentUrl()),a=r?n.stripHash(e):e,a=n.isPath(l.hash)?n.stripHash(l.hash):a,s=a.indexOf(this.uiStateKey),s>-1&&(c=a.slice(s),a=a.slice(0,s)),i=n.makeUrlAbsolute(a,t),o=this.parseUrl(i).search,r?((n.isPath(d)||0===d.replace("#","").indexOf(this.uiStateKey))&&(d=""),c&&-1===d.indexOf(this.uiStateKey)&&(d+=c),-1===d.indexOf("#")&&""!==d&&(d="#"+d),i=n.parseUrl(i),i=i.protocol+"//"+i.host+i.pathname+o+d):i+=i.indexOf("#")>-1?c:"#"+c,i},isPreservableHash:function(e){return 0===e.replace("#","").indexOf(this.uiStateKey)}},n.documentUrl=n.parseLocation(),a=e("head").find("base"),n.documentBase=a.length?n.parseUrl(n.makeUrlAbsolute(a.attr("href"),n.documentUrl.href)):n.documentUrl,n.documentBaseDiffers=n.documentUrl.hrefNoHash!==n.documentBase.hrefNoHash,n.getDocumentUrl=function(t){return t?e.extend({},n.documentUrl):n.documentUrl.href},n.getDocumentBase=function(t){return t?e.extend({},n.documentBase):n.documentBase.href}}(e),function(e,t){e.mobile.path,e.mobile.History=function(e,t){this.stack=e||[],this.activeIndex=t||0},e.extend(e.mobile.History.prototype,{getActive:function(){return this.stack[this.activeIndex]},getLast:function(){return this.stack[this.previousIndex]},getNext:function(){return this.stack[this.activeIndex+1]},getPrev:function(){return this.stack[this.activeIndex-1]},add:function(e,t){t=t||{},this.getNext()&&this.clearForward(),t.hash&&-1===t.hash.indexOf("#")&&(t.hash="#"+t.hash),t.url=e,this.stack.push(t),this.activeIndex=this.stack.length-1},clearForward:function(){this.stack=this.stack.slice(0,this.activeIndex+1)},find:function(e,t,i){t=t||this.stack;var n,a,o,s=t.length;for(a=0;s>a;a++)if(n=t[a],(decodeURIComponent(e)===decodeURIComponent(n.url)||decodeURIComponent(e)===decodeURIComponent(n.hash))&&(o=a,i))return o;return o},closest:function(e){var i,n=this.activeIndex;return i=this.find(e,this.stack.slice(0,n)),i===t&&(i=this.find(e,this.stack.slice(n),!0),i=i===t?i:i+n),i},direct:function(i){var n=this.closest(i.url),a=this.activeIndex;n!==t&&(this.activeIndex=n,this.previousIndex=a),a>n?(i.present||i.back||e.noop)(this.getActive(),"back"):n>a?(i.present||i.forward||e.noop)(this.getActive(),"forward"):n===t&&i.missing&&i.missing(this.getActive())}})}(e),function(e){var a=e.mobile.path,o=location.href;e.mobile.Navigator=function(t){this.history=t,this.ignoreInitialHashChange=!0,e.mobile.window.bind({"popstate.history":e.proxy(this.popstate,this),"hashchange.history":e.proxy(this.hashchange,this)})},e.extend(e.mobile.Navigator.prototype,{squash:function(n,o){var s,r,l=a.isPath(n)?a.stripHash(n):n;return r=a.squash(n),s=e.extend({hash:l,url:r},o),t.history.replaceState(s,s.title||i.title,r),s},hash:function(e,t){var i,n,o;if(i=a.parseUrl(e),n=a.parseLocation(),n.pathname+n.search===i.pathname+i.search)o=i.hash?i.hash:i.pathname+i.search;else if(a.isPath(e)){var s=a.parseUrl(t);o=s.pathname+s.search+(a.isPreservableHash(s.hash)?s.hash.replace("#",""):"")}else o=e;return o},go:function(n,o,s){var r,l,d,c,h=e.event.special.navigate.isPushStateEnabled();l=a.squash(n),d=this.hash(n,l),s&&d!==a.stripHash(a.parseLocation().hash)&&(this.preventNextHashChange=s),this.preventHashAssignPopState=!0,t.location.hash=d,this.preventHashAssignPopState=!1,r=e.extend({url:l,hash:d,title:i.title},o),h&&(c=new e.Event("popstate"),c.originalEvent={type:"popstate",state:null},this.squash(n,r),s||(this.ignorePopState=!0,e.mobile.window.trigger(c))),this.history.add(r.url,r)},popstate:function(t){var i,s;if(e.event.special.navigate.isPushStateEnabled())return this.preventHashAssignPopState?(this.preventHashAssignPopState=!1,t.stopImmediatePropagation(),n):this.ignorePopState?(this.ignorePopState=!1,n):!t.originalEvent.state&&1===this.history.stack.length&&this.ignoreInitialHashChange&&(this.ignoreInitialHashChange=!1,location.href===o)?(t.preventDefault(),n):(i=a.parseLocation().hash,!t.originalEvent.state&&i?(s=this.squash(i),this.history.add(s.url,s),t.historyState=s,n):(this.history.direct({url:(t.originalEvent.state||{}).url||i,present:function(i,n){t.historyState=e.extend({},i),t.historyState.direction=n}}),n))},hashchange:function(t){var o,s;if(e.event.special.navigate.isHashChangeEnabled()&&!e.event.special.navigate.isPushStateEnabled()){if(this.preventNextHashChange)return this.preventNextHashChange=!1,t.stopImmediatePropagation(),n;o=this.history,s=a.parseLocation().hash,this.history.direct({url:s,present:function(i,n){t.hashchangeState=e.extend({},i),t.hashchangeState.direction=n},missing:function(){o.add(s,{hash:s,title:i.title})}})}}})}(e),function(e){e.mobile.navigate=function(t,i,n){e.mobile.navigate.navigator.go(t,i,n)},e.mobile.navigate.history=new e.mobile.History,e.mobile.navigate.navigator=new e.mobile.Navigator(e.mobile.navigate.history);var t=e.mobile.path.parseLocation();e.mobile.navigate.history.add(t.href,{hash:t.hash})}(e),function(e,t,i,n){function a(e){for(;e&&e.originalEvent!==n;)e=e.originalEvent;return e}function o(t,i){var o,s,r,l,d,c,h,u,p,m=t.type;if(t=e.Event(t),t.type=i,o=t.originalEvent,s=e.event.props,m.search(/^(mouse|click)/)>-1&&(s=q),o)for(h=s.length,l;h;)l=s[--h],t[l]=o[l];if(m.search(/mouse(down|up)|click/)>-1&&!t.which&&(t.which=1),-1!==m.search(/^touch/)&&(r=a(o),m=r.touches,d=r.changedTouches,c=m&&m.length?m[0]:d&&d.length?d[0]:n))for(u=0,p=k.length;p>u;u++)l=k[u],t[l]=c[l];return t}function s(t){for(var i,n,a={};t;){i=e.data(t,T);for(n in i)i[n]&&(a[n]=a.hasVirtualBinding=!0);t=t.parentNode}return a}function r(t,i){for(var n;t;){if(n=e.data(t,T),n&&(!i||n[i]))return t;t=t.parentNode}return null}function l(){M=!1}function d(){M=!0}function c(){U=0,O.length=0,H=!1,d()}function h(){l()}function u(){p(),S=setTimeout(function(){S=0,c()},e.vmouse.resetTimerDuration)}function p(){S&&(clearTimeout(S),S=0)}function m(t,i,n){var a;return(n&&n[t]||!n&&r(i.target,t))&&(a=o(i,t),e(i.target).trigger(a)),a}function f(t){var i=e.data(t.target,D);if(!(H||U&&U===i)){var n=m("v"+t.type,t);n&&(n.isDefaultPrevented()&&t.preventDefault(),n.isPropagationStopped()&&t.stopPropagation(),n.isImmediatePropagationStopped()&&t.stopImmediatePropagation())}}function g(t){var i,n,o=a(t).touches;if(o&&1===o.length&&(i=t.target,n=s(i),n.hasVirtualBinding)){U=L++,e.data(i,D,U),p(),h(),I=!1;var r=a(t).touches[0];A=r.pageX,N=r.pageY,m("vmouseover",t,n),m("vmousedown",t,n)}}function b(e){M||(I||m("vmousecancel",e,s(e.target)),I=!0,u())}function v(t){if(!M){var i=a(t).touches[0],n=I,o=e.vmouse.moveDistanceThreshold,r=s(t.target);I=I||Math.abs(i.pageX-A)>o||Math.abs(i.pageY-N)>o,I&&!n&&m("vmousecancel",t,r),m("vmousemove",t,r),u()}}function _(e){if(!M){d();var t,i=s(e.target);if(m("vmouseup",e,i),!I){var n=m("vclick",e,i);n&&n.isDefaultPrevented()&&(t=a(e).changedTouches[0],O.push({touchID:U,x:t.clientX,y:t.clientY}),H=!0)}m("vmouseout",e,i),I=!1,u()}}function C(t){var i,n=e.data(t,T);if(n)for(i in n)if(n[i])return!0;return!1}function x(){}function y(t){var i=t.substr(1);return{setup:function(){C(this)||e.data(this,T,{});var n=e.data(this,T);n[t]=!0,j[t]=(j[t]||0)+1,1===j[t]&&B.bind(i,f),e(this).bind(i,x),F&&(j.touchstart=(j.touchstart||0)+1,1===j.touchstart&&B.bind("touchstart",g).bind("touchend",_).bind("touchmove",v).bind("scroll",b))},teardown:function(){--j[t],j[t]||B.unbind(i,f),F&&(--j.touchstart,j.touchstart||B.unbind("touchstart",g).unbind("touchmove",v).unbind("touchend",_).unbind("scroll",b));var n=e(this),a=e.data(this,T);a&&(a[t]=!1),n.unbind(i,x),C(this)||n.removeData(T)}}}var w,T="virtualMouseBindings",D="virtualTouchID",P="vmouseover vmousedown vmousemove vmouseup vclick vmouseout vmousecancel".split(" "),k="clientX clientY pageX pageY screenX screenY".split(" "),E=e.event.mouseHooks?e.event.mouseHooks.props:[],q=e.event.props.concat(E),j={},S=0,A=0,N=0,I=!1,O=[],H=!1,M=!1,F="addEventListener"in i,B=e(i),L=1,U=0;e.vmouse={moveDistanceThreshold:10,clickDistanceThreshold:10,resetTimerDuration:1500};for(var z=0;P.length>z;z++)e.event.special[P[z]]=y(P[z]);F&&i.addEventListener("click",function(t){var i,a,o,s,r,l,d=O.length,c=t.target;if(d)for(i=t.clientX,a=t.clientY,w=e.vmouse.clickDistanceThreshold,o=c;o;){for(s=0;d>s;s++)if(r=O[s],l=0,o===c&&w>Math.abs(r.x-i)&&w>Math.abs(r.y-a)||e.data(o,D)===r.touchID)return t.preventDefault(),t.stopPropagation(),n;o=o.parentNode}},!0)}(e,t,i),function(e,t,n){function a(t,i,n){var a=n.type;n.type=i,e.event.dispatch.call(t,n),n.type=a}var o=e(i);e.each("touchstart touchmove touchend tap taphold swipe swipeleft swiperight scrollstart scrollstop".split(" "),function(t,i){e.fn[i]=function(e){return e?this.bind(i,e):this.trigger(i)},e.attrFn&&(e.attrFn[i]=!0)});var s=e.mobile.support.touch,r="touchmove scroll",l=s?"touchstart":"mousedown",d=s?"touchend":"mouseup",c=s?"touchmove":"mousemove";e.event.special.scrollstart={enabled:!0,setup:function(){function t(e,t){i=t,a(o,i?"scrollstart":"scrollstop",e)}var i,n,o=this,s=e(o);s.bind(r,function(a){e.event.special.scrollstart.enabled&&(i||t(a,!0),clearTimeout(n),n=setTimeout(function(){t(a,!1)},50))})}},e.event.special.tap={tapholdThreshold:750,setup:function(){var t=this,i=e(t);i.bind("vmousedown",function(n){function s(){clearTimeout(d)}function r(){s(),i.unbind("vclick",l).unbind("vmouseup",s),o.unbind("vmousecancel",r)}function l(e){r(),c===e.target&&a(t,"tap",e)}if(n.which&&1!==n.which)return!1;var d,c=n.target;n.originalEvent,i.bind("vmouseup",s).bind("vclick",l),o.bind("vmousecancel",r),d=setTimeout(function(){a(t,"taphold",e.Event("taphold",{target:c})) -},e.event.special.tap.tapholdThreshold)})}},e.event.special.swipe={scrollSupressionThreshold:30,durationThreshold:1e3,horizontalDistanceThreshold:30,verticalDistanceThreshold:75,start:function(t){var i=t.originalEvent.touches?t.originalEvent.touches[0]:t;return{time:(new Date).getTime(),coords:[i.pageX,i.pageY],origin:e(t.target)}},stop:function(e){var t=e.originalEvent.touches?e.originalEvent.touches[0]:e;return{time:(new Date).getTime(),coords:[t.pageX,t.pageY]}},handleSwipe:function(t,i){i.time-t.timee.event.special.swipe.horizontalDistanceThreshold&&Math.abs(t.coords[1]-i.coords[1])i.coords[0]?"swipeleft":"swiperight")},setup:function(){var t=this,i=e(t);i.bind(l,function(t){function a(t){s&&(o=e.event.special.swipe.stop(t),Math.abs(s.coords[0]-o.coords[0])>e.event.special.swipe.scrollSupressionThreshold&&t.preventDefault())}var o,s=e.event.special.swipe.start(t);i.bind(c,a).one(d,function(){i.unbind(c,a),s&&o&&e.event.special.swipe.handleSwipe(s,o),s=o=n})})}},e.each({scrollstop:"scrollstart",taphold:"tap",swipeleft:"swipe",swiperight:"swipe"},function(t,i){e.event.special[t]={setup:function(){e(this).bind(i,e.noop)}}})}(e,this),function(e){e.event.special.throttledresize={setup:function(){e(this).bind("resize",o)},teardown:function(){e(this).unbind("resize",o)}};var t,i,n,a=250,o=function(){i=(new Date).getTime(),n=i-s,n>=a?(s=i,e(this).trigger("throttledresize")):(t&&clearTimeout(t),t=setTimeout(o,a-n))},s=0}(e),function(e,t){function a(){var e=o();e!==s&&(s=e,d.trigger(c))}var o,s,r,l,d=e(t),c="orientationchange",h={0:!0,180:!0};if(e.support.orientation){var u=t.innerWidth||d.width(),p=t.innerHeight||d.height(),m=50;r=u>p&&u-p>m,l=h[t.orientation],(r&&l||!r&&!l)&&(h={"-90":!0,90:!0})}e.event.special.orientationchange=e.extend({},e.event.special.orientationchange,{setup:function(){return e.support.orientation&&!e.event.special.orientationchange.disabled?!1:(s=o(),d.bind("throttledresize",a),n)},teardown:function(){return e.support.orientation&&!e.event.special.orientationchange.disabled?!1:(d.unbind("throttledresize",a),n)},add:function(e){var t=e.handler;e.handler=function(e){return e.orientation=o(),t.apply(this,arguments)}}}),e.event.special.orientationchange.orientation=o=function(){var n=!0,a=i.documentElement;return n=e.support.orientation?h[t.orientation]:a&&1.1>a.clientWidth/a.clientHeight,n?"portrait":"landscape"},e.fn[c]=function(e){return e?this.bind(c,e):this.trigger(c)},e.attrFn&&(e.attrFn[c]=!0)}(e,this),function(e){e.widget("mobile.page",e.mobile.widget,{options:{theme:"c",domCache:!1,keepNativeDefault:":jqmData(role='none'), :jqmData(role='nojs')"},_create:function(){return this._trigger("beforecreate")===!1?!1:(this.element.attr("tabindex","0").addClass("ui-page ui-body-"+this.options.theme),this._on(this.element,{pagebeforehide:"removeContainerBackground",pagebeforeshow:"_handlePageBeforeShow"}),n)},_handlePageBeforeShow:function(){this.setContainerBackground()},removeContainerBackground:function(){e.mobile.pageContainer.removeClass("ui-overlay-"+e.mobile.getInheritedTheme(this.element.parent()))},setContainerBackground:function(t){this.options.theme&&e.mobile.pageContainer.addClass("ui-overlay-"+(t||this.options.theme))},keepNativeSelector:function(){var t=this.options,i=t.keepNative&&e.trim(t.keepNative);return i&&t.keepNative!==t.keepNativeDefault?[t.keepNative,t.keepNativeDefault].join(", "):t.keepNativeDefault}})}(e),function(e,t,i){var n=function(n){return n===i&&(n=!0),function(i,a,o,s){var r=new e.Deferred,l=a?" reverse":"",d=e.mobile.urlHistory.getActive(),c=d.lastScroll||e.mobile.defaultHomeScroll,h=e.mobile.getScreenHeight(),u=e.mobile.maxTransitionWidth!==!1&&e.mobile.window.width()>e.mobile.maxTransitionWidth,p=!e.support.cssTransitions||u||!i||"none"===i||Math.max(e.mobile.window.scrollTop(),c)>e.mobile.getMaxScrollForTransition(),m=" ui-page-pre-in",f=function(){e.mobile.pageContainer.toggleClass("ui-mobile-viewport-transitioning viewport-"+i)},g=function(){e.event.special.scrollstart.enabled=!1,t.scrollTo(0,c),setTimeout(function(){e.event.special.scrollstart.enabled=!0},150)},b=function(){s.removeClass(e.mobile.activePageClass+" out in reverse "+i).height("")},v=function(){n?s.animationComplete(_):_(),s.height(h+e.mobile.window.scrollTop()).addClass(i+" out"+l)},_=function(){s&&n&&b(),C()},C=function(){o.css("z-index",-10),o.addClass(e.mobile.activePageClass+m),e.mobile.focusPage(o),o.height(h+c),g(),o.css("z-index",""),p||o.animationComplete(x),o.removeClass(m).addClass(i+" in"+l),p&&x()},x=function(){n||s&&b(),o.removeClass("out in reverse "+i).height(""),f(),e.mobile.window.scrollTop()!==c&&g(),r.resolve(i,a,o,s,!0)};return f(),s&&!p?v():_(),r.promise()}},a=n(),o=n(!1),s=function(){return 3*e.mobile.getScreenHeight()};e.mobile.defaultTransitionHandler=a,e.mobile.transitionHandlers={"default":e.mobile.defaultTransitionHandler,sequential:a,simultaneous:o},e.mobile.transitionFallbacks={},e.mobile._maybeDegradeTransition=function(t){return t&&!e.support.cssTransform3d&&e.mobile.transitionFallbacks[t]&&(t=e.mobile.transitionFallbacks[t]),t},e.mobile.getMaxScrollForTransition=e.mobile.getMaxScrollForTransition||s}(e,this),function(e,n){function a(t){!f||f.closest("."+e.mobile.activePageClass).length&&!t||f.removeClass(e.mobile.activeBtnClass),f=null}function o(){_=!1,v.length>0&&e.mobile.changePage.apply(null,v.pop())}function s(t,i,n,a){i&&i.data("mobile-page")._trigger("beforehide",null,{nextPage:t}),t.data("mobile-page")._trigger("beforeshow",null,{prevPage:i||e("")}),e.mobile.hidePageLoadingMsg(),n=e.mobile._maybeDegradeTransition(n);var o=e.mobile.transitionHandlers[n||"default"]||e.mobile.defaultTransitionHandler,s=o(n,a,t,i);return s.done(function(){i&&i.data("mobile-page")._trigger("hide",null,{nextPage:t}),t.data("mobile-page")._trigger("show",null,{prevPage:i||e("")})}),s}function r(t,i){i&&t.attr("data-"+e.mobile.ns+"role",i),t.page()}function l(){var t=e.mobile.activePage&&c(e.mobile.activePage);return t||w.hrefNoHash}function d(e){for(;e&&("string"!=typeof e.nodeName||"a"!==e.nodeName.toLowerCase());)e=e.parentNode;return e}function c(t){var i=e(t).closest(".ui-page").jqmData("url"),n=w.hrefNoHash;return i&&p.isPath(i)||(i=n),p.makeUrlAbsolute(i,n)}var h=e.mobile.window,u=(e("html"),e("head")),p=e.extend(e.mobile.path,{getFilePath:function(t){var i="&"+e.mobile.subPageUrlKey;return t&&t.split(i)[0].split(C)[0]},isFirstPageUrl:function(t){var i=p.parseUrl(p.makeUrlAbsolute(t,this.documentBase)),a=i.hrefNoHash===this.documentUrl.hrefNoHash||this.documentBaseDiffers&&i.hrefNoHash===this.documentBase.hrefNoHash,o=e.mobile.firstPage,s=o&&o[0]?o[0].id:n;return a&&(!i.hash||"#"===i.hash||s&&i.hash.replace(/^#/,"")===s)},isPermittedCrossDomainRequest:function(t,i){return e.mobile.allowCrossDomainPages&&"file:"===t.protocol&&-1!==i.search(/^https?:/)}}),m=null,f=null,g=e.Deferred(),b=e.mobile.navigate.history,v=[],_=!1,C="&ui-state=dialog",x=u.children("base"),y=p.documentUrl,w=p.documentBase,T=(p.documentBaseDiffers,e.mobile.getScreenHeight),D=e.support.dynamicBaseTag?{element:x.length?x:e("",{href:w.hrefNoHash}).prependTo(u),set:function(e){e=p.parseUrl(e).hrefNoHash,D.element.attr("href",p.makeUrlAbsolute(e,w))},reset:function(){D.element.attr("href",w.hrefNoSearch)}}:n;e.mobile.getDocumentUrl=p.getDocumentUrl,e.mobile.getDocumentBase=p.getDocumentBase,e.mobile.back=function(){var e=t.navigator;this.phonegapNavigationEnabled&&e&&e.app&&e.app.backHistory?e.app.backHistory():t.history.back()},e.mobile.focusPage=function(e){var t=e.find("[autofocus]"),i=e.find(".ui-title:eq(0)");return t.length?(t.focus(),n):(i.length?i.focus():e.focus(),n)};var P,k,E=!0;P=function(){if(E){var t=e.mobile.urlHistory.getActive();if(t){var i=h.scrollTop();t.lastScroll=e.mobile.minScrollBack>i?e.mobile.defaultHomeScroll:i}}},k=function(){setTimeout(P,100)},h.bind(e.support.pushState?"popstate":"hashchange",function(){E=!1}),h.one(e.support.pushState?"popstate":"hashchange",function(){E=!0}),h.one("pagecontainercreate",function(){e.mobile.pageContainer.bind("pagechange",function(){E=!0,h.unbind("scrollstop",k),h.bind("scrollstop",k)})}),h.bind("scrollstop",k),e.mobile._maybeDegradeTransition=e.mobile._maybeDegradeTransition||function(e){return e},e.mobile.resetActivePageHeight=function(t){var i=e("."+e.mobile.activePageClass),n=parseFloat(i.css("padding-top")),a=parseFloat(i.css("padding-bottom")),o=parseFloat(i.css("border-top-width")),s=parseFloat(i.css("border-bottom-width"));t="number"==typeof t?t:T(),i.css("min-height",t-n-a-o-s)},e.fn.animationComplete=function(t){return e.support.cssTransitions?e(this).one("webkitAnimationEnd animationend",t):(setTimeout(t,0),e(this))},e.mobile.path=p,e.mobile.base=D,e.mobile.urlHistory=b,e.mobile.dialogHashKey=C,e.mobile.allowCrossDomainPages=!1,e.mobile._bindPageRemove=function(){var t=e(this);!t.data("mobile-page").options.domCache&&t.is(":jqmData(external-page='true')")&&t.bind("pagehide.remove",function(){var t=e(this),i=new e.Event("pageremove");t.trigger(i),i.isDefaultPrevented()||t.removeWithDependents()})},e.mobile.loadPage=function(t,i){var a=e.Deferred(),o=e.extend({},e.mobile.loadPage.defaults,i),s=null,d=null,c=p.makeUrlAbsolute(t,l());o.data&&"get"===o.type&&(c=p.addSearchParams(c,o.data),o.data=n),o.data&&"post"===o.type&&(o.reloadPage=!0);var h=p.getFilePath(c),u=p.convertUrlToDataUrl(c);if(o.pageContainer=o.pageContainer||e.mobile.pageContainer,s=o.pageContainer.children("[data-"+e.mobile.ns+"url='"+u+"']"),0===s.length&&u&&!p.isPath(u)&&(s=o.pageContainer.children("#"+u).attr("data-"+e.mobile.ns+"url",u).jqmData("url",u)),0===s.length)if(e.mobile.firstPage&&p.isFirstPageUrl(h))e.mobile.firstPage.parent().length&&(s=e(e.mobile.firstPage));else if(p.isEmbeddedPage(h))return a.reject(c,i),a.promise();if(s.length){if(!o.reloadPage)return r(s,o.role),a.resolve(c,i,s),D&&!i.prefetch&&D.set(t),a.promise();d=s}var m=o.pageContainer,f=new e.Event("pagebeforeload"),g={url:t,absUrl:c,dataUrl:u,deferred:a,options:o};if(m.trigger(f,g),f.isDefaultPrevented())return a.promise();if(o.showLoadMsg)var b=setTimeout(function(){e.mobile.showPageLoadingMsg()},o.loadMsgDelay),v=function(){clearTimeout(b),e.mobile.hidePageLoadingMsg()};return D&&i.prefetch===n&&D.reset(),e.mobile.allowCrossDomainPages||p.isSameDomain(y,c)?e.ajax({url:h,type:o.type,data:o.data,contentType:o.contentType,dataType:"html",success:function(l,m,f){var b=e(""),_=l.match(/]*>([^<]*)/)&&RegExp.$1,C=RegExp("(<[^>]+\\bdata-"+e.mobile.ns+"role=[\"']?page[\"']?[^>]*>)"),x=RegExp("\\bdata-"+e.mobile.ns+"url=[\"']?([^\"'>]*)[\"']?");if(C.test(l)&&RegExp.$1&&x.test(RegExp.$1)&&RegExp.$1&&(t=h=p.getFilePath(e(""+RegExp.$1+"").text())),D&&i.prefetch===n&&D.set(h),b.get(0).innerHTML=l,s=b.find(":jqmData(role='page'), :jqmData(role='dialog')").first(),s.length||(s=e(""+(l.split(/<\/?body[^>]*>/gim)[1]||"")+"")),_&&!s.jqmData("title")&&(~_.indexOf("&")&&(_=e(""+_+"").text()),s.jqmData("title",_)),!e.support.dynamicBaseTag){var y=p.get(h);s.find("[src], link[href], a[rel='external'], :jqmData(ajax='false'), a[target]").each(function(){var t=e(this).is("[href]")?"href":e(this).is("[src]")?"src":"action",i=e(this).attr(t);i=i.replace(location.protocol+"//"+location.host+location.pathname,""),/^(\w+:|#|\/)/.test(i)||e(this).attr(t,y+i)})}s.attr("data-"+e.mobile.ns+"url",p.convertUrlToDataUrl(h)).attr("data-"+e.mobile.ns+"external-page",!0).appendTo(o.pageContainer),s.one("pagecreate",e.mobile._bindPageRemove),r(s,o.role),c.indexOf("&"+e.mobile.subPageUrlKey)>-1&&(s=o.pageContainer.children("[data-"+e.mobile.ns+"url='"+u+"']")),o.showLoadMsg&&v(),g.xhr=f,g.textStatus=m,g.page=s,o.pageContainer.trigger("pageload",g),a.resolve(c,i,s,d)},error:function(t,n,s){D&&D.set(p.get()),g.xhr=t,g.textStatus=n,g.errorThrown=s;var r=new e.Event("pageloadfailed");o.pageContainer.trigger(r,g),r.isDefaultPrevented()||(o.showLoadMsg&&(v(),e.mobile.showPageLoadingMsg(e.mobile.pageLoadErrorMessageTheme,e.mobile.pageLoadErrorMessage,!0),setTimeout(e.mobile.hidePageLoadingMsg,1500)),a.reject(c,i))}}):a.reject(c,i),a.promise()},e.mobile.loadPage.defaults={type:"get",data:n,reloadPage:!1,role:n,showLoadMsg:!1,pageContainer:n,loadMsgDelay:50},e.mobile.changePage=function(t,d){if(_)return v.unshift(arguments),n;var c,h=e.extend({},e.mobile.changePage.defaults,d);h.pageContainer=h.pageContainer||e.mobile.pageContainer,h.fromPage=h.fromPage||e.mobile.activePage,c="string"==typeof t;var u=h.pageContainer,m=new e.Event("pagebeforechange"),f={toPage:t,options:h};if(f.absUrl=c?p.makeUrlAbsolute(t,l()):t.data("absUrl"),u.trigger(m,f),!m.isDefaultPrevented()){if(t=f.toPage,c="string"==typeof t,_=!0,c)return h.target=t,e.mobile.loadPage(t,h).done(function(t,i,n,a){_=!1,i.duplicateCachedPage=a,n.data("absUrl",f.absUrl),e.mobile.changePage(n,i)}).fail(function(){a(!0),o(),h.pageContainer.trigger("pagechangefailed",f)}),n;t[0]!==e.mobile.firstPage[0]||h.dataUrl||(h.dataUrl=y.hrefNoHash);var g=h.fromPage,x=h.dataUrl&&p.convertUrlToDataUrl(h.dataUrl)||t.jqmData("url"),w=x,T=(p.getFilePath(x),b.getActive()),D=0===b.activeIndex,P=0,k=i.title,E="dialog"===h.role||"dialog"===t.jqmData("role");if(g&&g[0]===t[0]&&!h.allowSamePageTransition)return _=!1,u.trigger("pagechange",f),h.fromHashChange&&b.direct({url:x}),n;r(t,h.role),h.fromHashChange&&(P="back"===d.direction?-1:1);try{i.activeElement&&"body"!==i.activeElement.nodeName.toLowerCase()?e(i.activeElement).blur():e("input:focus, textarea:focus, select:focus").blur()}catch(q){}var j=!1;E&&T&&(T.url&&T.url.indexOf(C)>-1&&e.mobile.activePage&&!e.mobile.activePage.is(".ui-dialog")&&b.activeIndex>0&&(h.changeHash=!1,j=!0),x=T.url||"",x+=!j&&x.indexOf("#")>-1?C:"#"+C,0===b.activeIndex&&x===b.initialDst&&(x+=C));var S=T?t.jqmData("title")||t.children(":jqmData(role='header')").find(".ui-title").text():k;if(S&&k===i.title&&(k=S),t.jqmData("title")||t.jqmData("title",k),h.transition=h.transition||(P&&!D?T.transition:n)||(E?e.mobile.defaultDialogTransition:e.mobile.defaultPageTransition),!P&&j&&(b.getActive().pageUrl=w),x&&!h.fromHashChange){var A;!p.isPath(x)&&0>x.indexOf("#")&&(x="#"+x),A={transition:h.transition,title:k,pageUrl:w,role:h.role},h.changeHash!==!1&&e.mobile.hashListeningEnabled?e.mobile.navigate(x,A,!0):t[0]!==e.mobile.firstPage[0]&&e.mobile.navigate.history.add(x,A)}i.title=k,e.mobile.activePage=t,h.reverse=h.reverse||0>P,s(t,g,h.transition,h.reverse).done(function(i,n,s,r,l){a(),h.duplicateCachedPage&&h.duplicateCachedPage.remove(),l||e.mobile.focusPage(t),o(),u.trigger("pagechange",f)})}},e.mobile.changePage.defaults={transition:n,reverse:!1,changeHash:!0,fromHashChange:!1,role:n,duplicateCachedPage:n,pageContainer:n,showLoadMsg:!0,dataUrl:n,fromPage:n,allowSamePageTransition:!1},e.mobile.navreadyDeferred=e.Deferred(),e.mobile._registerInternalEvents=function(){var i=function(t,i){var a,o,s,r,l=!0;return!e.mobile.ajaxEnabled||t.is(":jqmData(ajax='false')")||!t.jqmHijackable().length||t.attr("target")?!1:(a=t.attr("action"),r=(t.attr("method")||"get").toLowerCase(),a||(a=c(t),"get"===r&&(a=p.parseUrl(a).hrefNoSearch),a===w.hrefNoHash&&(a=y.hrefNoSearch)),a=p.makeUrlAbsolute(a,c(t)),p.isExternal(a)&&!p.isPermittedCrossDomainRequest(y,a)?!1:(i||(o=t.serializeArray(),m&&m[0].form===t[0]&&(s=m.attr("name"),s&&(e.each(o,function(e,t){return t.name===s?(s="",!1):n}),s&&o.push({name:s,value:m.attr("value")}))),l={url:a,options:{type:r,data:e.param(o),transition:t.jqmData("transition"),reverse:"reverse"===t.jqmData("direction"),reloadPage:!0}}),l))};e.mobile.document.delegate("form","submit",function(t){var n=i(e(this));n&&(e.mobile.changePage(n.url,n.options),t.preventDefault())}),e.mobile.document.bind("vclick",function(t){var n,o,s=t.target,r=!1;if(!(t.which>1)&&e.mobile.linkBindingEnabled){if(m=e(s),e.data(s,"mobile-button")){if(!i(e(s).closest("form"),!0))return;s.parentNode&&(s=s.parentNode)}else{if(s=d(s),!s||"#"===p.parseUrl(s.getAttribute("href")||"#").hash)return;if(!e(s).jqmHijackable().length)return}~s.className.indexOf("ui-link-inherit")?s.parentNode&&(o=e.data(s.parentNode,"buttonElements")):o=e.data(s,"buttonElements"),o?s=o.outer:r=!0,n=e(s),r&&(n=n.closest(".ui-btn")),n.length>0&&!n.hasClass("ui-disabled")&&(a(!0),f=n,f.addClass(e.mobile.activeBtnClass))}}),e.mobile.document.bind("click",function(i){if(e.mobile.linkBindingEnabled&&!i.isDefaultPrevented()){var o,s=d(i.target),r=e(s);if(s&&!(i.which>1)&&r.jqmHijackable().length){if(o=function(){t.setTimeout(function(){a(!0)},200)},r.is(":jqmData(rel='back')"))return e.mobile.back(),!1;var l=c(r),h=p.makeUrlAbsolute(r.attr("href")||"#",l);if(!e.mobile.ajaxEnabled&&!p.isEmbeddedPage(h))return o(),n;if(-1!==h.search("#")){if(h=h.replace(/[^#]*#/,""),!h)return i.preventDefault(),n;h=p.isPath(h)?p.makeUrlAbsolute(h,l):p.makeUrlAbsolute("#"+h,y.hrefNoHash)}var u=r.is("[rel='external']")||r.is(":jqmData(ajax='false')")||r.is("[target]"),m=u||p.isExternal(h)&&!p.isPermittedCrossDomainRequest(y,h);if(m)return o(),n;var f=r.jqmData("transition"),g="reverse"===r.jqmData("direction")||r.jqmData("back"),b=r.attr("data-"+e.mobile.ns+"rel")||n;e.mobile.changePage(h,{transition:f,reverse:g,role:b,link:r}),i.preventDefault()}}}),e.mobile.document.delegate(".ui-page","pageshow.prefetch",function(){var t=[];e(this).find("a:jqmData(prefetch)").each(function(){var i=e(this),n=i.attr("href");n&&-1===e.inArray(n,t)&&(t.push(n),e.mobile.loadPage(n,{role:i.attr("data-"+e.mobile.ns+"rel"),prefetch:!0}))})}),e.mobile._handleHashChange=function(i,a){var o=p.stripHash(i),s=0===e.mobile.urlHistory.stack.length?"none":n,r={changeHash:!1,fromHashChange:!0,reverse:"back"===a.direction};if(e.extend(r,a,{transition:(b.getLast()||{}).transition||s}),b.activeIndex>0&&o.indexOf(C)>-1&&b.initialDst!==o){if(e.mobile.activePage&&!e.mobile.activePage.is(".ui-dialog"))return"back"===a.direction?e.mobile.back():t.history.forward(),n;o=a.pageUrl;var l=e.mobile.urlHistory.getActive();e.extend(r,{role:l.role,transition:l.transition,reverse:"back"===a.direction})}o?(o=p.isPath(o)?o:p.makeUrlAbsolute("#"+o,w),o===p.makeUrlAbsolute("#"+b.initialDst,w)&&b.stack.length&&b.stack[0].url!==b.initialDst.replace(C,"")&&(o=e.mobile.firstPage),e.mobile.changePage(o,r)):e.mobile.changePage(e.mobile.firstPage,r)},h.bind("navigate",function(t,i){var n;t.originalEvent&&t.originalEvent.isDefaultPrevented()||(n=e.event.special.navigate.originalEventName.indexOf("hashchange")>-1?i.state.hash:i.state.url,n||(n=e.mobile.path.parseLocation().hash),n&&"#"!==n&&0!==n.indexOf("#"+e.mobile.path.uiStateKey)||(n=location.href),e.mobile._handleHashChange(n,i.state))}),e.mobile.document.bind("pageshow",e.mobile.resetActivePageHeight),e.mobile.window.bind("throttledresize",e.mobile.resetActivePageHeight)},e(function(){g.resolve()}),e.when(g,e.mobile.navreadyDeferred).done(function(){e.mobile._registerInternalEvents()})}(e),function(e){e.mobile.transitionFallbacks.flip="fade"}(e,this),function(e){e.mobile.transitionFallbacks.flow="fade"}(e,this),function(e){e.mobile.transitionFallbacks.pop="fade"}(e,this),function(e){e.mobile.transitionHandlers.slide=e.mobile.transitionHandlers.simultaneous,e.mobile.transitionFallbacks.slide="fade"}(e,this),function(e){e.mobile.transitionFallbacks.slidedown="fade"}(e,this),function(e){e.mobile.transitionFallbacks.slidefade="fade"}(e,this),function(e){e.mobile.transitionFallbacks.slideup="fade"}(e,this),function(e){e.mobile.transitionFallbacks.turn="fade"}(e,this),function(e){e.mobile.page.prototype.options.degradeInputs={color:!1,date:!1,datetime:!1,"datetime-local":!1,email:!1,month:!1,number:!1,range:"number",search:"text",tel:!1,time:!1,url:!1,week:!1},e.mobile.document.bind("pagecreate create",function(t){var i,n=e.mobile.closestPageData(e(t.target));n&&(i=n.options,e(t.target).find("input").not(n.keepNativeSelector()).each(function(){var t=e(this),n=this.getAttribute("type"),a=i.degradeInputs[n]||"text";if(i.degradeInputs[n]){var o=e("").html(t.clone()).html(),s=o.indexOf(" type=")>-1,r=s?/\s+type=["']?\w+['"]?/:/\/?>/,l=' type="'+a+'" data-'+e.mobile.ns+'type="'+n+'"'+(s?"":">");t.replaceWith(o.replace(r,l))}}))})}(e),function(e){e.widget("mobile.dialog",e.mobile.widget,{options:{closeBtn:"left",closeBtnText:"Close",overlayTheme:"a",corners:!0,initSelector:":jqmData(role='dialog')"},_handlePageBeforeShow:function(){this._isCloseable=!0,this.options.overlayTheme&&this.element.page("removeContainerBackground").page("setContainerBackground",this.options.overlayTheme)},_create:function(){var t=this.element,i=this.options.corners?" ui-corner-all":"",n=e("",{role:"dialog","class":"ui-dialog-contain ui-overlay-shadow"+i});t.addClass("ui-dialog ui-overlay-"+this.options.overlayTheme),t.wrapInner(n),t.bind("vclick submit",function(t){var i,n=e(t.target).closest("vclick"===t.type?"a":"form");n.length&&!n.jqmData("transition")&&(i=e.mobile.urlHistory.getActive()||{},n.attr("data-"+e.mobile.ns+"transition",i.transition||e.mobile.defaultDialogTransition).attr("data-"+e.mobile.ns+"direction","reverse"))}),this._on(t,{pagebeforeshow:"_handlePageBeforeShow"}),e.extend(this,{_createComplete:!1}),this._setCloseBtn(this.options.closeBtn)},_setCloseBtn:function(t){var i,n,a=this;this._headerCloseButton&&(this._headerCloseButton.remove(),this._headerCloseButton=null),"none"!==t&&(n="left"===t?"left":"right",i=e(""+this.options.closeBtnText+""),this.element.children().find(":jqmData(role='header')").first().prepend(i),this._createComplete&&e.fn.buttonMarkup&&i.buttonMarkup(),this._createComplete=!0,i.bind("click",function(){a.close()}),this._headerCloseButton=i)},_setOption:function(e,t){"closeBtn"===e&&this._setCloseBtn(t),this._super(e,t)},close:function(){var t,i,n=e.mobile.navigate.history;this._isCloseable&&(this._isCloseable=!1,e.mobile.hashListeningEnabled&&n.activeIndex>0?e.mobile.back():(t=Math.max(0,n.activeIndex-1),i=n.stack[t].pageUrl||n.stack[t].url,n.previousIndex=n.activeIndex,n.activeIndex=t,e.mobile.path.isPath(i)||(i=e.mobile.path.makeUrlAbsolute("#"+i)),e.mobile.changePage(i,{direction:"back",changeHash:!1,fromHashChange:!0})))}}),e.mobile.document.delegate(e.mobile.dialog.prototype.options.initSelector,"pagecreate",function(){e.mobile.dialog.prototype.enhance(this)})}(e,this),function(e){e.mobile.page.prototype.options.backBtnText="Back",e.mobile.page.prototype.options.addBackBtn=!1,e.mobile.page.prototype.options.backBtnTheme=null,e.mobile.page.prototype.options.headerTheme="a",e.mobile.page.prototype.options.footerTheme="a",e.mobile.page.prototype.options.contentTheme=null,e.mobile.document.bind("pagecreate",function(t){var i=e(t.target),n=i.data("mobile-page").options,a=i.jqmData("role"),o=n.theme;e(":jqmData(role='header'), :jqmData(role='footer'), :jqmData(role='content')",i).jqmEnhanceable().each(function(){var t,s,r,l,d=e(this),c=d.jqmData("role"),h=d.jqmData("theme"),u=h||n.contentTheme||"dialog"===a&&o;if(d.addClass("ui-"+c),"header"===c||"footer"===c){var p=h||("header"===c?n.headerTheme:n.footerTheme)||o;d.addClass("ui-bar-"+p).attr("role","header"===c?"banner":"contentinfo"),"header"===c&&(t=d.children("a, button"),s=t.hasClass("ui-btn-left"),r=t.hasClass("ui-btn-right"),s=s||t.eq(0).not(".ui-btn-right").addClass("ui-btn-left").length,r=r||t.eq(1).addClass("ui-btn-right").length),n.addBackBtn&&"header"===c&&e(".ui-page").length>1&&i.jqmData("url")!==e.mobile.path.stripHash(location.hash)&&!s&&(l=e(""+n.backBtnText+"").attr("data-"+e.mobile.ns+"theme",n.backBtnTheme||p).prependTo(d)),d.children("h1, h2, h3, h4, h5, h6").addClass("ui-title").attr({role:"heading","aria-level":"1"})}else"content"===c&&(u&&d.addClass("ui-body-"+u),d.attr("role","main"))})})}(e),function(e,t){function n(e){for(var t;e&&(t="string"==typeof e.className&&e.className+" ",!(t&&t.indexOf("ui-btn ")>-1&&0>t.indexOf("ui-disabled ")));)e=e.parentNode;return e}function a(n,a,o,s,r){var l=e.data(n[0],"buttonElements");n.removeClass(a).addClass(o),l&&(l.bcls=e(i.createElement("div")).addClass(l.bcls+" "+o).removeClass(a).attr("class"),s!==t&&(l.hover=s),l.state=r)}var o=function(e,i){var n=e.getAttribute(i);return"true"===n?!0:"false"===n?!1:null===n?t:n};e.fn.buttonMarkup=function(n){var a,r=this,l="data-"+e.mobile.ns;n=n&&"object"===e.type(n)?n:{};for(var d=0;r.length>d;d++){var c,h,u,p,m,f,g=r.eq(d),b=g[0],v=e.extend({},e.fn.buttonMarkup.defaults,{icon:n.icon!==t?n.icon:o(b,l+"icon"),iconpos:n.iconpos!==t?n.iconpos:o(b,l+"iconpos"),theme:n.theme!==t?n.theme:o(b,l+"theme")||e.mobile.getInheritedTheme(g,"c"),inline:n.inline!==t?n.inline:o(b,l+"inline"),shadow:n.shadow!==t?n.shadow:o(b,l+"shadow"),corners:n.corners!==t?n.corners:o(b,l+"corners"),iconshadow:n.iconshadow!==t?n.iconshadow:o(b,l+"iconshadow"),mini:n.mini!==t?n.mini:o(b,l+"mini")},n),_="ui-btn-inner",C="ui-btn-text",x=!1,y="up";for(a in v)v[a]===t||null===v[a]?g.removeAttr(l+a):b.setAttribute(l+a,v[a]);for("popup"===o(b,l+"rel")&&g.attr("href")&&(b.setAttribute("aria-haspopup",!0),b.setAttribute("aria-owns",g.attr("href"))),f=e.data("INPUT"===b.tagName||"BUTTON"===b.tagName?b.parentNode:b,"buttonElements"),f?(b=f.outer,g=e(b),u=f.inner,p=f.text,e(f.icon).remove(),f.icon=null,x=f.hover,y=f.state):(u=i.createElement(v.wrapperEls),p=i.createElement(v.wrapperEls)),m=v.icon?i.createElement("span"):null,s&&!f&&s(),v.theme||(v.theme=e.mobile.getInheritedTheme(g,"c")),c="ui-btn ",c+=x?"ui-btn-hover-"+v.theme:"",c+=y?" ui-btn-"+y+"-"+v.theme:"",c+=v.shadow?" ui-shadow":"",c+=v.corners?" ui-btn-corner-all":"",v.mini!==t&&(c+=v.mini===!0?" ui-mini":" ui-fullsize"),v.inline!==t&&(c+=v.inline===!0?" ui-btn-inline":" ui-btn-block"),v.icon&&(v.icon="ui-icon-"+v.icon,v.iconpos=v.iconpos||"left",h="ui-icon "+v.icon,v.iconshadow&&(h+=" ui-icon-shadow")),v.iconpos&&(c+=" ui-btn-icon-"+v.iconpos,"notext"!==v.iconpos||g.attr("title")||g.attr("title",g.getEncodedText())),f&&g.removeClass(f.bcls||""),g.removeClass("ui-link").addClass(c),u.className=_,p.className=C,f||u.appendChild(p),m&&(m.className=h,f&&f.icon||(m.innerHTML=" ",u.appendChild(m)));b.firstChild&&!f;)p.appendChild(b.firstChild);f||b.appendChild(u),f={hover:x,state:y,bcls:c,outer:b,inner:u,text:p,icon:m},e.data(b,"buttonElements",f),e.data(u,"buttonElements",f),e.data(p,"buttonElements",f),m&&e.data(m,"buttonElements",f)}return this},e.fn.buttonMarkup.defaults={corners:!0,shadow:!0,iconshadow:!0,wrapperEls:"span"};var s=function(){var i,o,r=e.mobile.buttonMarkup.hoverDelay;e.mobile.document.bind({"vmousedown vmousecancel vmouseup vmouseover vmouseout focus blur scrollstart":function(s){var l,d=e(n(s.target)),c=s.originalEvent&&/^touch/.test(s.originalEvent.type),h=s.type;d.length&&(l=d.attr("data-"+e.mobile.ns+"theme"),"vmousedown"===h?c?i=setTimeout(function(){a(d,"ui-btn-up-"+l,"ui-btn-down-"+l,t,"down")},r):a(d,"ui-btn-up-"+l,"ui-btn-down-"+l,t,"down"):"vmousecancel"===h||"vmouseup"===h?a(d,"ui-btn-down-"+l,"ui-btn-up-"+l,t,"up"):"vmouseover"===h||"focus"===h?c?o=setTimeout(function(){a(d,"ui-btn-up-"+l,"ui-btn-hover-"+l,!0,"")},r):a(d,"ui-btn-up-"+l,"ui-btn-hover-"+l,!0,""):("vmouseout"===h||"blur"===h||"scrollstart"===h)&&(a(d,"ui-btn-hover-"+l+" ui-btn-down-"+l,"ui-btn-up-"+l,!1,"up"),i&&clearTimeout(i),o&&clearTimeout(o)))},"focusin focus":function(t){e(n(t.target)).addClass(e.mobile.focusClass)},"focusout blur":function(t){e(n(t.target)).removeClass(e.mobile.focusClass)}}),s=null};e.mobile.document.bind("pagecreate create",function(t){e(":jqmData(role='button'), .ui-bar > a, .ui-header > a, .ui-footer > a, .ui-bar > :jqmData(role='controlgroup') > a",t.target).jqmEnhanceable().not("button, input, .ui-btn, :jqmData(role='none'), :jqmData(role='nojs')").buttonMarkup()})}(e),function(e,t){e.widget("mobile.collapsible",e.mobile.widget,{options:{expandCueText:" click to expand contents",collapseCueText:" click to collapse contents",collapsed:!0,heading:"h1,h2,h3,h4,h5,h6,legend",collapsedIcon:"plus",expandedIcon:"minus",iconpos:"left",theme:null,contentTheme:null,inset:!0,corners:!0,mini:!1,initSelector:":jqmData(role='collapsible')"},_create:function(){var i=this.element,n=this.options,a=i.addClass("ui-collapsible"),o=i.children(n.heading).first(),s=a.wrapInner("").children(".ui-collapsible-content"),r=i.closest(":jqmData(role='collapsible-set')").addClass("ui-collapsible-set"),l="";o.is("legend")&&(o=e(""+o.html()+"").insertBefore(o),o.next().remove()),r.length?(n.theme||(n.theme=r.jqmData("theme")||e.mobile.getInheritedTheme(r,"c")),n.contentTheme||(n.contentTheme=r.jqmData("content-theme")),n.collapsedIcon=i.jqmData("collapsed-icon")||r.jqmData("collapsed-icon")||n.collapsedIcon,n.expandedIcon=i.jqmData("expanded-icon")||r.jqmData("expanded-icon")||n.expandedIcon,n.iconpos=i.jqmData("iconpos")||r.jqmData("iconpos")||n.iconpos,n.inset=r.jqmData("inset")!==t?r.jqmData("inset"):!0,n.corners=!1,n.mini||(n.mini=r.jqmData("mini"))):n.theme||(n.theme=e.mobile.getInheritedTheme(i,"c")),n.inset&&(l+=" ui-collapsible-inset",n.corners&&(l+=" ui-corner-all")),n.contentTheme&&(l+=" ui-collapsible-themed-content",s.addClass("ui-body-"+n.contentTheme)),""!==l&&a.addClass(l),o.insertBefore(s).addClass("ui-collapsible-heading").append("").wrapInner("").find("a").first().buttonMarkup({shadow:!1,corners:!1,iconpos:n.iconpos,icon:n.collapsedIcon,mini:n.mini,theme:n.theme}),a.bind("expand collapse",function(t){if(!t.isDefaultPrevented()){var i=e(this),a="collapse"===t.type;t.preventDefault(),o.toggleClass("ui-collapsible-heading-collapsed",a).find(".ui-collapsible-heading-status").text(a?n.expandCueText:n.collapseCueText).end().find(".ui-icon").toggleClass("ui-icon-"+n.expandedIcon,!a).toggleClass("ui-icon-"+n.collapsedIcon,a||n.expandedIcon===n.collapsedIcon).end().find("a").first().removeClass(e.mobile.activeBtnClass),i.toggleClass("ui-collapsible-collapsed",a),s.toggleClass("ui-collapsible-content-collapsed",a).attr("aria-hidden",a),s.trigger("updatelayout")}}).trigger(n.collapsed?"collapse":"expand"),o.bind("tap",function(){o.find("a").first().addClass(e.mobile.activeBtnClass)}).bind("click",function(e){var t=o.is(".ui-collapsible-heading-collapsed")?"expand":"collapse";a.trigger(t),e.preventDefault(),e.stopPropagation()})}}),e.mobile.document.bind("pagecreate create",function(t){e.mobile.collapsible.prototype.enhanceWithin(t.target)})}(e),function(e){e.mobile.behaviors.addFirstLastClasses={_getVisibles:function(e,t){var i;return t?i=e.not(".ui-screen-hidden"):(i=e.filter(":visible"),0===i.length&&(i=e.not(".ui-screen-hidden"))),i},_addFirstLastClasses:function(e,t,i){e.removeClass("ui-first-child ui-last-child"),t.eq(0).addClass("ui-first-child").end().last().addClass("ui-last-child"),i||this.element.trigger("updatelayout")}}}(e),function(e,t){e.widget("mobile.collapsibleset",e.mobile.widget,e.extend({options:{initSelector:":jqmData(role='collapsible-set')"},_create:function(){var i=this.element.addClass("ui-collapsible-set"),n=this.options;n.theme||(n.theme=e.mobile.getInheritedTheme(i,"c")),n.contentTheme||(n.contentTheme=i.jqmData("content-theme")),n.corners||(n.corners=i.jqmData("corners")),i.jqmData("inset")!==t&&(n.inset=i.jqmData("inset")),n.inset=n.inset!==t?n.inset:!0,n.corners=n.corners!==t?n.corners:!0,n.corners&&n.inset&&i.addClass("ui-corner-all"),i.jqmData("collapsiblebound")||i.jqmData("collapsiblebound",!0).bind("expand",function(t){var i=e(t.target).closest(".ui-collapsible");i.parent().is(":jqmData(role='collapsible-set')")&&i.siblings(".ui-collapsible").trigger("collapse")})},_init:function(){var e=this.element,t=e.children(":jqmData(role='collapsible')"),i=t.filter(":jqmData(collapsed='false')"); -this._refresh("true"),i.trigger("expand")},_refresh:function(t){var i=this.element.children(":jqmData(role='collapsible')");e.mobile.collapsible.prototype.enhance(i.not(".ui-collapsible")),this._addFirstLastClasses(i,this._getVisibles(i,t),t)},refresh:function(){this._refresh(!1)}},e.mobile.behaviors.addFirstLastClasses)),e.mobile.document.bind("pagecreate create",function(t){e.mobile.collapsibleset.prototype.enhanceWithin(t.target)})}(e),function(e){e.fn.fieldcontain=function(){return this.addClass("ui-field-contain ui-body ui-br").contents().filter(function(){return 3===this.nodeType&&!/\S/.test(this.nodeValue)}).remove()},e(i).bind("pagecreate create",function(t){e(":jqmData(role='fieldcontain')",t.target).jqmEnhanceable().fieldcontain()})}(e),function(e){e.fn.grid=function(t){return this.each(function(){var i,n=e(this),a=e.extend({grid:null},t),o=n.children(),s={solo:1,a:2,b:3,c:4,d:5},r=a.grid;if(!r)if(5>=o.length)for(var l in s)s[l]===o.length&&(r=l);else r="a",n.addClass("ui-grid-duo");i=s[r],n.addClass("ui-grid-"+r),o.filter(":nth-child("+i+"n+1)").addClass("ui-block-a"),i>1&&o.filter(":nth-child("+i+"n+2)").addClass("ui-block-b"),i>2&&o.filter(":nth-child("+i+"n+3)").addClass("ui-block-c"),i>3&&o.filter(":nth-child("+i+"n+4)").addClass("ui-block-d"),i>4&&o.filter(":nth-child("+i+"n+5)").addClass("ui-block-e")})}}(e),function(e,t){e.widget("mobile.navbar",e.mobile.widget,{options:{iconpos:"top",grid:null,initSelector:":jqmData(role='navbar')"},_create:function(){var n=this.element,a=n.find("a"),o=a.filter(":jqmData(icon)").length?this.options.iconpos:t;n.addClass("ui-navbar ui-mini").attr("role","navigation").find("ul").jqmEnhanceable().grid({grid:this.options.grid}),a.buttonMarkup({corners:!1,shadow:!1,inline:!0,iconpos:o}),n.delegate("a","vclick",function(t){var n=e(t.target).is("a")?e(this):e(this).parent("a");if(!n.is(".ui-disabled, .ui-btn-active")){a.removeClass(e.mobile.activeBtnClass),e(this).addClass(e.mobile.activeBtnClass);var o=e(this);e(i).one("pagehide",function(){o.removeClass(e.mobile.activeBtnClass)})}}),n.closest(".ui-page").bind("pagebeforeshow",function(){a.filter(".ui-state-persist").addClass(e.mobile.activeBtnClass)})}}),e.mobile.document.bind("pagecreate create",function(t){e.mobile.navbar.prototype.enhanceWithin(t.target)})}(e),function(e){var t={};e.widget("mobile.listview",e.mobile.widget,e.extend({options:{theme:null,countTheme:"c",headerTheme:"b",dividerTheme:"b",icon:"arrow-r",splitIcon:"arrow-r",splitTheme:"b",corners:!0,shadow:!0,inset:!1,initSelector:":jqmData(role='listview')"},_create:function(){var e=this,t="";t+=e.options.inset?" ui-listview-inset":"",e.options.inset&&(t+=e.options.corners?" ui-corner-all":"",t+=e.options.shadow?" ui-shadow":""),e.element.addClass(function(e,i){return i+" ui-listview"+t}),e.refresh(!0)},_findFirstElementByTagName:function(e,t,i,n){var a={};for(a[i]=a[n]=!0;e;){if(a[e.nodeName])return e;e=e[t]}return null},_getChildrenByTagName:function(t,i,n){var a=[],o={};for(o[i]=o[n]=!0,t=t.firstChild;t;)o[t.nodeName]&&a.push(t),t=t.nextSibling;return e(a)},_addThumbClasses:function(t){var i,n,a=t.length;for(i=0;a>i;i++)n=e(this._findFirstElementByTagName(t[i].firstChild,"nextSibling","img","IMG")),n.length&&(n.addClass("ui-li-thumb"),e(this._findFirstElementByTagName(n[0].parentNode,"parentNode","li","LI")).addClass(n.is(".ui-li-icon")?"ui-li-has-icon":"ui-li-has-thumb"))},refresh:function(t){this.parentPage=this.element.closest(".ui-page"),this._createSubPages();var n,a,o,s,r,l,d,c,h,u,p,m,f=this.options,g=this.element,b=g.jqmData("dividertheme")||f.dividerTheme,v=g.jqmData("splittheme"),_=g.jqmData("spliticon"),C=g.jqmData("icon"),x=this._getChildrenByTagName(g[0],"li","LI"),y=!!e.nodeName(g[0],"ol"),w=!e.support.cssPseudoElement,T=g.attr("start"),D={};y&&w&&g.find(".ui-li-dec").remove(),y&&(T||0===T?w?d=parseInt(T,10):(c=parseInt(T,10)-1,g.css("counter-reset","listnumbering "+c)):w&&(d=1)),f.theme||(f.theme=e.mobile.getInheritedTheme(this.element,"c"));for(var P=0,k=x.length;k>P;P++){if(n=x.eq(P),a="ui-li",t||!n.hasClass("ui-li")){o=n.jqmData("theme")||f.theme,s=this._getChildrenByTagName(n[0],"a","A");var E="list-divider"===n.jqmData("role");s.length&&!E?(p=n.jqmData("icon"),n.buttonMarkup({wrapperEls:"div",shadow:!1,corners:!1,iconpos:"right",icon:s.length>1||p===!1?!1:p||C||f.icon,theme:o}),p!==!1&&1===s.length&&n.addClass("ui-li-has-arrow"),s.first().removeClass("ui-link").addClass("ui-link-inherit"),s.length>1&&(a+=" ui-li-has-alt",r=s.last(),l=v||r.jqmData("theme")||f.splitTheme,m=r.jqmData("icon"),r.appendTo(n).attr("title",e.trim(r.getEncodedText())).addClass("ui-li-link-alt").empty().buttonMarkup({shadow:!1,corners:!1,theme:o,icon:!1,iconpos:"notext"}).find(".ui-btn-inner").append(e(i.createElement("span")).buttonMarkup({shadow:!0,corners:!0,theme:l,iconpos:"notext",icon:m||p||_||f.splitIcon})))):E?(a+=" ui-li-divider ui-bar-"+(n.jqmData("theme")||b),n.attr("role","heading"),y&&(T||0===T?w?d=parseInt(T,10):(h=parseInt(T,10)-1,n.css("counter-reset","listnumbering "+h)):w&&(d=1))):a+=" ui-li-static ui-btn-up-"+o}y&&w&&0>a.indexOf("ui-li-divider")&&(u=a.indexOf("ui-li-static")>0?n:n.find(".ui-link-inherit"),u.addClass("ui-li-jsnumbering").prepend(""+d++ +". ")),D[a]||(D[a]=[]),D[a].push(n[0])}for(a in D)e(D[a]).addClass(a).children(".ui-btn-inner").addClass(a);g.find("h1, h2, h3, h4, h5, h6").addClass("ui-li-heading").end().find("p, dl").addClass("ui-li-desc").end().find(".ui-li-aside").each(function(){var t=e(this);t.prependTo(t.parent())}).end().find(".ui-li-count").each(function(){e(this).closest("li").addClass("ui-li-has-count")}).addClass("ui-btn-up-"+(g.jqmData("counttheme")||this.options.countTheme)+" ui-btn-corner-all"),this._addThumbClasses(x),this._addThumbClasses(g.find(".ui-link-inherit")),this._addFirstLastClasses(x,this._getVisibles(x,t),t),this._trigger("afterrefresh")},_idStringEscape:function(e){return e.replace(/[^a-zA-Z0-9]/g,"-")},_createSubPages:function(){var i,a=this.element,o=a.closest(".ui-page"),s=o.jqmData("url"),r=s||o[0][e.expando],l=a.attr("id"),d=this.options,c="data-"+e.mobile.ns,h=this,u=o.find(":jqmData(role='footer')").jqmData("id");if(t[r]===n&&(t[r]=-1),l=l||++t[r],e(a.find("li>ul, li>ol").toArray().reverse()).each(function(t){var n,o,r=e(this),h=r.attr("id")||l+"-"+t,p=r.parent(),m=e(r.prevAll().toArray().reverse()),f=m.length?m:e(""+e.trim(p.contents()[0].nodeValue)+""),g=f.first().getEncodedText(),b=(s||"")+"&"+e.mobile.subPageUrlKey+"="+h,v=r.jqmData("theme")||d.theme,_=r.jqmData("counttheme")||a.jqmData("counttheme")||d.countTheme;i=!0,n=r.detach().wrap("").parent().before(""+g+"").after(u?e(""):"").parent().appendTo(e.mobile.pageContainer),n.page(),o=p.find("a:first"),o.length||(o=e("").html(f||g).prependTo(p.empty())),o.attr("href","#"+b)}).listview(),i&&o.is(":jqmData(external-page='true')")&&o.data("mobile-page").options.domCache===!1){var p=function(t,i){var n,a=i.nextPage,r=new e.Event("pageremove");i.nextPage&&(n=a.jqmData("url"),0!==n.indexOf(s+"&"+e.mobile.subPageUrlKey)&&(h.childPages().remove(),o.trigger(r),r.isDefaultPrevented()||o.removeWithDependents()))};o.unbind("pagehide.remove").bind("pagehide.remove",p)}},childPages:function(){var t=this.parentPage.jqmData("url");return e(":jqmData(url^='"+t+"&"+e.mobile.subPageUrlKey+"')")}},e.mobile.behaviors.addFirstLastClasses)),e.mobile.document.bind("pagecreate create",function(t){e.mobile.listview.prototype.enhanceWithin(t.target)})}(e),function(e){var t=e("meta[name=viewport]"),i=t.attr("content"),n=i+",maximum-scale=1, user-scalable=no",a=i+",maximum-scale=10, user-scalable=yes",o=/(user-scalable[\s]*=[\s]*no)|(maximum-scale[\s]*=[\s]*1)[$,\s]/.test(i);e.mobile.zoom=e.extend({},{enabled:!o,locked:!1,disable:function(i){o||e.mobile.zoom.locked||(t.attr("content",n),e.mobile.zoom.enabled=!1,e.mobile.zoom.locked=i||!1)},enable:function(i){o||e.mobile.zoom.locked&&i!==!0||(t.attr("content",a),e.mobile.zoom.enabled=!0,e.mobile.zoom.locked=!1)},restore:function(){o||(t.attr("content",i),e.mobile.zoom.enabled=!0)}})}(e),function(e){e.widget("mobile.textinput",e.mobile.widget,{options:{theme:null,mini:!1,preventFocusZoom:/iPhone|iPad|iPod/.test(navigator.platform)&&navigator.userAgent.indexOf("AppleWebKit")>-1,initSelector:"input[type='text'], input[type='search'], :jqmData(type='search'), input[type='number'], :jqmData(type='number'), input[type='password'], input[type='email'], input[type='url'], input[type='tel'], textarea, input[type='time'], input[type='date'], input[type='month'], input[type='week'], input[type='datetime'], input[type='datetime-local'], input[type='color'], input:not([type]), input[type='file']",clearBtn:!1,clearSearchButtonText:null,clearBtnText:"clear text",disabled:!1},_create:function(){function t(){setTimeout(function(){a.toggleClass("ui-input-clear-hidden",!s.val())},0)}var i,a,o=this,s=this.element,r=this.options,l=r.theme||e.mobile.getInheritedTheme(this.element,"c"),d=" ui-body-"+l,c=r.mini?" ui-mini":"",h=s.is("[type='search'], :jqmData(type='search')"),u=r.clearSearchButtonText||r.clearBtnText,p=s.is("textarea, :jqmData(type='range')"),m=!!r.clearBtn&&!p,f=s.is("input")&&!s.is(":jqmData(type='range')");if(e("label[for='"+s.attr("id")+"']").addClass("ui-input-text"),i=s.addClass("ui-input-text ui-body-"+l),s[0].autocorrect===n||e.support.touchOverflow||(s[0].setAttribute("autocorrect","off"),s[0].setAttribute("autocomplete","off")),h?i=s.wrap("").parent():f&&(i=s.wrap("").parent()),m||h?(a=e(""+u+"").bind("click",function(e){s.val("").focus().trigger("change"),a.addClass("ui-input-clear-hidden"),e.preventDefault()}).appendTo(i).buttonMarkup({icon:"delete",iconpos:"notext",corners:!0,shadow:!0,mini:r.mini}),h||i.addClass("ui-input-has-clear"),t(),s.bind("paste cut keyup input focus change blur",t)):f||h||s.addClass("ui-corner-all ui-shadow-inset"+d+c),s.focus(function(){r.preventFocusZoom&&e.mobile.zoom.disable(!0),i.addClass(e.mobile.focusClass)}).blur(function(){i.removeClass(e.mobile.focusClass),r.preventFocusZoom&&e.mobile.zoom.enable(!0)}),s.is("textarea")){var g,b=15,v=100;this._keyup=function(){var e=s[0].scrollHeight,t=s[0].clientHeight;if(e>t){var i=parseFloat(s.css("padding-top")),n=parseFloat(s.css("padding-bottom")),a=i+n;s.height(e-a+b)}},s.on("keyup change input paste",function(){clearTimeout(g),g=setTimeout(o._keyup,v)}),this._on(!0,e.mobile.document,{pagechange:"_keyup"}),e.trim(s.val())&&this._on(!0,e.mobile.window,{load:"_keyup"})}s.attr("disabled")&&this.disable()},disable:function(){var e,t=this.element.is("[type='search'], :jqmData(type='search')"),i=this.element.is("input")&&!this.element.is(":jqmData(type='range')"),n=this.element.attr("disabled",!0)&&(i||t);return e=n?this.element.parent():this.element,e.addClass("ui-disabled"),this._setOption("disabled",!0)},enable:function(){var e,t=this.element.is("[type='search'], :jqmData(type='search')"),i=this.element.is("input")&&!this.element.is(":jqmData(type='range')"),n=this.element.attr("disabled",!1)&&(i||t);return e=n?this.element.parent():this.element,e.removeClass("ui-disabled"),this._setOption("disabled",!1)}}),e.mobile.document.bind("pagecreate create",function(t){e.mobile.textinput.prototype.enhanceWithin(t.target,!0)})}(e),function(e){e.mobile.listview.prototype.options.filter=!1,e.mobile.listview.prototype.options.filterPlaceholder="Filter items...",e.mobile.listview.prototype.options.filterTheme="c",e.mobile.listview.prototype.options.filterReveal=!1;var t=function(e,t){return-1===(""+e).toLowerCase().indexOf(t)};e.mobile.listview.prototype.options.filterCallback=t,e.mobile.document.delegate("ul, ol","listviewcreate",function(){var i=e(this),n=i.data("mobile-listview");if(n&&n.options.filter){n.options.filterReveal&&i.children().addClass("ui-screen-hidden");var a=e("",{"class":"ui-listview-filter ui-bar-"+n.options.filterTheme,role:"search"}).submit(function(e){e.preventDefault(),s.blur()}),o=function(){var a,o=e(this),s=this.value.toLowerCase(),r=null,l=i.children(),d=o.jqmData("lastval")+"",c=!1,h="",u=n.options.filterCallback!==t;if(!d||d!==s){if(n._trigger("beforefilter","beforefilter",{input:this}),o.jqmData("lastval",s),u||s.length=0;p--)a=e(r[p]),h=a.jqmData("filtertext")||a.text(),a.is("li:jqmData(role=list-divider)")?(a.toggleClass("ui-filter-hidequeue",!c),c=!1):n.options.filterCallback(h,s,a)?a.toggleClass("ui-filter-hidequeue",!0):c=!0;r.filter(":not(.ui-filter-hidequeue)").toggleClass("ui-screen-hidden",!1),r.filter(".ui-filter-hidequeue").toggleClass("ui-screen-hidden",!0).toggleClass("ui-filter-hidequeue",!1)}else r.toggleClass("ui-screen-hidden",!!n.options.filterReveal);n._addFirstLastClasses(l,n._getVisibles(l,!1),!1)}},s=e("",{placeholder:n.options.filterPlaceholder}).attr("data-"+e.mobile.ns+"type","search").jqmData("lastval","").bind("keyup change input",o).appendTo(a).textinput();n.options.inset&&a.addClass("ui-listview-filter-inset"),a.bind("submit",function(){return!1}).insertBefore(i)}})}(e),function(e){e.mobile.listview.prototype.options.autodividers=!1,e.mobile.listview.prototype.options.autodividersSelector=function(t){var i=e.trim(t.text())||null;return i?i=i.slice(0,1).toUpperCase():null},e.mobile.document.delegate("ul,ol","listviewcreate",function(){var t=e(this),n=t.data("mobile-listview");if(n&&n.options.autodividers){var a=function(){t.find("li:jqmData(role='list-divider')").remove();for(var a,o,s=t.find("li"),r=null,l=0;s.length>l;l++){if(a=s[l],o=n.options.autodividersSelector(e(a)),o&&r!==o){var d=i.createElement("li");d.appendChild(i.createTextNode(o)),d.setAttribute("data-"+e.mobile.ns+"role","list-divider"),a.parentNode.insertBefore(d,a)}r=o}},o=function(){t.unbind("listviewafterrefresh",o),a(),n.refresh(),t.bind("listviewafterrefresh",o)};o()}})}(e),function(e){e(i).bind("pagecreate create",function(t){e(":jqmData(role='nojs')",t.target).addClass("ui-nojs")})}(e),function(e){e.mobile.behaviors.formReset={_handleFormReset:function(){this._on(this.element.closest("form"),{reset:function(){this._delay("_reset")}})}}}(e),function(e){e.widget("mobile.checkboxradio",e.mobile.widget,e.extend({options:{theme:null,mini:!1,initSelector:"input[type='checkbox'],input[type='radio']"},_create:function(){var t=this,a=this.element,o=this.options,s=function(e,t){return e.jqmData(t)||e.closest("form, fieldset").jqmData(t)},r=e(a).closest("label"),l=r.length?r:e(a).closest("form, fieldset, :jqmData(role='page'), :jqmData(role='dialog')").find("label").filter("[for='"+a[0].id+"']").first(),d=a[0].type,c=s(a,"mini")||o.mini,h=d+"-on",u=d+"-off",p=s(a,"iconpos"),m="ui-"+h,f="ui-"+u;if("checkbox"===d||"radio"===d){e.extend(this,{label:l,inputtype:d,checkedClass:m,uncheckedClass:f,checkedicon:h,uncheckedicon:u}),o.theme||(o.theme=e.mobile.getInheritedTheme(this.element,"c")),l.buttonMarkup({theme:o.theme,icon:u,shadow:!1,mini:c,iconpos:p});var g=i.createElement("div");g.className="ui-"+d,a.add(l).wrapAll(g),l.bind({vmouseover:function(t){e(this).parent().is(".ui-disabled")&&t.stopPropagation()},vclick:function(e){return a.is(":disabled")?(e.preventDefault(),n):(t._cacheVals(),a.prop("checked","radio"===d&&!0||!a.prop("checked")),a.triggerHandler("click"),t._getInputSet().not(a).prop("checked",!1),t._updateAll(),!1)}}),a.bind({vmousedown:function(){t._cacheVals()},vclick:function(){var i=e(this);i.is(":checked")?(i.prop("checked",!0),t._getInputSet().not(i).prop("checked",!1)):i.prop("checked",!1),t._updateAll()},focus:function(){l.addClass(e.mobile.focusClass)},blur:function(){l.removeClass(e.mobile.focusClass)}}),this._handleFormReset(),this.refresh()}},_cacheVals:function(){this._getInputSet().each(function(){e(this).jqmData("cacheVal",this.checked)})},_getInputSet:function(){return"checkbox"===this.inputtype?this.element:this.element.closest("form, :jqmData(role='page'), :jqmData(role='dialog')").find("input[name='"+this.element[0].name+"'][type='"+this.inputtype+"']")},_updateAll:function(){var t=this;this._getInputSet().each(function(){var i=e(this);(this.checked||"checkbox"===t.inputtype)&&i.trigger("change")}).checkboxradio("refresh")},_reset:function(){this.refresh()},refresh:function(){var t=this.element[0],i=" "+e.mobile.activeBtnClass,n=this.checkedClass+(this.element.parents(".ui-controlgroup-horizontal").length?i:""),a=this.label;t.checked?a.removeClass(this.uncheckedClass+i).addClass(n).buttonMarkup({icon:this.checkedicon}):a.removeClass(n).addClass(this.uncheckedClass).buttonMarkup({icon:this.uncheckedicon}),t.disabled?this.disable():this.enable()},disable:function(){this.element.prop("disabled",!0).parent().addClass("ui-disabled")},enable:function(){this.element.prop("disabled",!1).parent().removeClass("ui-disabled")}},e.mobile.behaviors.formReset)),e.mobile.document.bind("pagecreate create",function(t){e.mobile.checkboxradio.prototype.enhanceWithin(t.target,!0)})}(e),function(e){e.widget("mobile.button",e.mobile.widget,{options:{theme:null,icon:null,iconpos:null,corners:!0,shadow:!0,iconshadow:!0,inline:null,mini:null,initSelector:"button, [type='button'], [type='submit'], [type='reset']"},_create:function(){var t,i=this.element,a=function(e){var t,i={};for(t in e)null!==e[t]&&"initSelector"!==t&&(i[t]=e[t]);return i}(this.options),o="";return"A"===i[0].tagName?(i.hasClass("ui-btn")||i.buttonMarkup(),n):(this.options.theme||(this.options.theme=e.mobile.getInheritedTheme(this.element,"c")),~i[0].className.indexOf("ui-btn-left")&&(o="ui-btn-left"),~i[0].className.indexOf("ui-btn-right")&&(o="ui-btn-right"),("submit"===i.attr("type")||"reset"===i.attr("type"))&&(o?o+=" ui-submit":o="ui-submit"),e("label[for='"+i.attr("id")+"']").addClass("ui-submit"),this.button=e("")[i.html()?"html":"text"](i.html()||i.val()).insertBefore(i).buttonMarkup(a).addClass(o).append(i.addClass("ui-btn-hidden")),t=this.button,i.bind({focus:function(){t.addClass(e.mobile.focusClass)},blur:function(){t.removeClass(e.mobile.focusClass)}}),this.refresh(),n)},_setOption:function(t,i){var n={};n[t]=i,"initSelector"!==t&&(this.button.buttonMarkup(n),this.element.attr("data-"+(e.mobile.ns||"")+t.replace(/([A-Z])/,"-$1").toLowerCase(),i)),this._super("_setOption",t,i)},enable:function(){return this.element.attr("disabled",!1),this.button.removeClass("ui-disabled").attr("aria-disabled",!1),this._setOption("disabled",!1)},disable:function(){return this.element.attr("disabled",!0),this.button.addClass("ui-disabled").attr("aria-disabled",!0),this._setOption("disabled",!0)},refresh:function(){var t=this.element;t.prop("disabled")?this.disable():this.enable(),e(this.button.data("buttonElements").text)[t.html()?"html":"text"](t.html()||t.val())}}),e.mobile.document.bind("pagecreate create",function(t){e.mobile.button.prototype.enhanceWithin(t.target,!0)})}(e),function(e,n){e.widget("mobile.slider",e.mobile.widget,e.extend({widgetEventPrefix:"slide",options:{theme:null,trackTheme:null,disabled:!1,initSelector:"input[type='range'], :jqmData(type='range'), :jqmData(role='slider')",mini:!1,highlight:!1},_create:function(){var a,o,s=this,r=this.element,l=e.mobile.getInheritedTheme(r,"c"),d=this.options.theme||l,c=this.options.trackTheme||l,h=r[0].nodeName.toLowerCase(),u=(this.isToggleSwitch="select"===h,r.parent().is(":jqmData(role='rangeslider')")),p=this.isToggleSwitch?"ui-slider-switch":"",m=r.attr("id"),f=e("[for='"+m+"']"),g=f.attr("id")||m+"-label",b=f.attr("id",g),v=this.isToggleSwitch?0:parseFloat(r.attr("min")),_=this.isToggleSwitch?r.find("option").length-1:parseFloat(r.attr("max")),C=t.parseFloat(r.attr("step")||1),x=this.options.mini||r.jqmData("mini")?" ui-mini":"",y=i.createElement("a"),w=e(y),T=i.createElement("div"),D=e(T),P=this.options.highlight&&!this.isToggleSwitch?function(){var t=i.createElement("div");return t.className="ui-slider-bg "+e.mobile.activeBtnClass+" ui-btn-corner-all",e(t).prependTo(D)}():!1;if(y.setAttribute("href","#"),T.setAttribute("role","application"),T.className=[this.isToggleSwitch?"ui-slider ":"ui-slider-track ",p," ui-btn-down-",c," ui-btn-corner-all",x].join(""),y.className="ui-slider-handle",T.appendChild(y),w.buttonMarkup({corners:!0,theme:d,shadow:!0}).attr({role:"slider","aria-valuemin":v,"aria-valuemax":_,"aria-valuenow":this._value(),"aria-valuetext":this._value(),title:this._value(),"aria-labelledby":g}),e.extend(this,{slider:D,handle:w,type:h,step:C,max:_,min:v,valuebg:P,isRangeslider:u,dragging:!1,beforeStart:null,userModified:!1,mouseMoved:!1}),this.isToggleSwitch){o=i.createElement("div"),o.className="ui-slider-inneroffset";for(var k=0,E=T.childNodes.length;E>k;k++)o.appendChild(T.childNodes[k]);T.appendChild(o),w.addClass("ui-slider-handle-snapping"),a=r.find("option");for(var q=0,j=a.length;j>q;q++){var S=q?"a":"b",A=q?" "+e.mobile.activeBtnClass:" ui-btn-down-"+c,N=(i.createElement("div"),i.createElement("span"));N.className=["ui-slider-label ui-slider-label-",S,A," ui-btn-corner-all"].join(""),N.setAttribute("role","img"),N.appendChild(i.createTextNode(a[q].innerHTML)),e(N).prependTo(D)}s._labels=e(".ui-slider-label",D)}b.addClass("ui-slider"),r.addClass(this.isToggleSwitch?"ui-slider-switch":"ui-slider-input"),this._on(r,{change:"_controlChange",keyup:"_controlKeyup",blur:"_controlBlur",vmouseup:"_controlVMouseUp"}),D.bind("vmousedown",e.proxy(this._sliderVMouseDown,this)).bind("vclick",!1),this._on(i,{vmousemove:"_preventDocumentDrag"}),this._on(D.add(i),{vmouseup:"_sliderVMouseUp"}),D.insertAfter(r),this.isToggleSwitch||u||(o=this.options.mini?"":"",r.add(D).wrapAll(o)),this.isToggleSwitch&&this.handle.bind({focus:function(){D.addClass(e.mobile.focusClass)},blur:function(){D.removeClass(e.mobile.focusClass)}}),this._on(this.handle,{vmousedown:"_handleVMouseDown",keydown:"_handleKeydown",keyup:"_handleKeyup"}),this.handle.bind("vclick",!1),this._handleFormReset(),this.refresh(n,n,!0)},_controlChange:function(e){return this._trigger("controlchange",e)===!1?!1:(this.mouseMoved||this.refresh(this._value(),!0),n)},_controlKeyup:function(){this.refresh(this._value(),!0,!0)},_controlBlur:function(){this.refresh(this._value(),!0)},_controlVMouseUp:function(){this._checkedRefresh()},_handleVMouseDown:function(){this.handle.focus()},_handleKeydown:function(t){var i=this._value();if(!this.options.disabled){switch(t.keyCode){case e.mobile.keyCode.HOME:case e.mobile.keyCode.END:case e.mobile.keyCode.PAGE_UP:case e.mobile.keyCode.PAGE_DOWN:case e.mobile.keyCode.UP:case e.mobile.keyCode.RIGHT:case e.mobile.keyCode.DOWN:case e.mobile.keyCode.LEFT:t.preventDefault(),this._keySliding||(this._keySliding=!0,this.handle.addClass("ui-state-active"))}switch(t.keyCode){case e.mobile.keyCode.HOME:this.refresh(this.min);break;case e.mobile.keyCode.END:this.refresh(this.max);break;case e.mobile.keyCode.PAGE_UP:case e.mobile.keyCode.UP:case e.mobile.keyCode.RIGHT:this.refresh(i+this.step);break;case e.mobile.keyCode.PAGE_DOWN:case e.mobile.keyCode.DOWN:case e.mobile.keyCode.LEFT:this.refresh(i-this.step)}}},_handleKeyup:function(){this._keySliding&&(this._keySliding=!1,this.handle.removeClass("ui-state-active"))},_sliderVMouseDown:function(e){return this.options.disabled||1!==e.which&&0!==e.which?!1:this._trigger("beforestart",e)===!1?!1:(this.dragging=!0,this.userModified=!1,this.mouseMoved=!1,this.isToggleSwitch&&(this.beforeStart=this.element[0].selectedIndex),this.refresh(e),this._trigger("start"),!1)},_sliderVMouseUp:function(){return this.dragging?(this.dragging=!1,this.isToggleSwitch&&(this.handle.addClass("ui-slider-handle-snapping"),this.mouseMoved?this.userModified?this.refresh(0===this.beforeStart?1:0):this.refresh(this.beforeStart):this.refresh(0===this.beforeStart?1:0)),this.mouseMoved=!1,this._trigger("stop"),!1):n},_preventDocumentDrag:function(e){return this._trigger("drag",e)===!1?!1:this.dragging&&!this.options.disabled?(this.mouseMoved=!0,this.isToggleSwitch&&this.handle.removeClass("ui-slider-handle-snapping"),this.refresh(e),this.userModified=this.beforeStart!==this.element[0].selectedIndex,!1):n},_checkedRefresh:function(){this.value!==this._value()&&this.refresh(this._value())},_value:function(){return this.isToggleSwitch?this.element[0].selectedIndex:parseFloat(this.element.val())},_reset:function(){this.refresh(n,!1,!0)},refresh:function(t,a,o){var s,r,l,d,c=this,h=e.mobile.getInheritedTheme(this.element,"c"),u=this.options.theme||h,p=this.options.trackTheme||h;c.slider[0].className=[this.isToggleSwitch?"ui-slider ui-slider-switch":"ui-slider-track"," ui-btn-down-"+p," ui-btn-corner-all",this.options.mini?" ui-mini":""].join(""),(this.options.disabled||this.element.attr("disabled"))&&this.disable(),this.value=this._value(),this.options.highlight&&!this.isToggleSwitch&&0===this.slider.find(".ui-slider-bg").length&&(this.valuebg=function(){var t=i.createElement("div");return t.className="ui-slider-bg "+e.mobile.activeBtnClass+" ui-btn-corner-all",e(t).prependTo(c.slider)}()),this.handle.buttonMarkup({corners:!0,theme:u,shadow:!0});var m,f,g=this.element,b=!this.isToggleSwitch,v=b?[]:g.find("option"),_=b?parseFloat(g.attr("min")):0,C=b?parseFloat(g.attr("max")):v.length-1,x=b&&parseFloat(g.attr("step"))>0?parseFloat(g.attr("step")):1;if("object"==typeof t){if(l=t,d=8,s=this.slider.offset().left,r=this.slider.width(),m=r/((C-_)/x),!this.dragging||s-d>l.pageX||l.pageX>s+r+d)return;f=m>1?100*((l.pageX-s)/r):Math.round(100*((l.pageX-s)/r))}else null==t&&(t=b?parseFloat(g.val()||0):g[0].selectedIndex),f=100*((parseFloat(t)-_)/(C-_));if(!isNaN(f)){var y=f/100*(C-_)+_,w=(y-_)%x,T=y-w;2*Math.abs(w)>=x&&(T+=w>0?x:-x);var D=100/((C-_)/x);if(y=parseFloat(T.toFixed(5)),m===n&&(m=r/((C-_)/x)),m>1&&b&&(f=(y-_)*D*(1/x)),0>f&&(f=0),f>100&&(f=100),_>y&&(y=_),y>C&&(y=C),this.handle.css("left",f+"%"),this.handle[0].setAttribute("aria-valuenow",b?y:v.eq(y).attr("value")),this.handle[0].setAttribute("aria-valuetext",b?y:v.eq(y).getEncodedText()),this.handle[0].setAttribute("title",b?y:v.eq(y).getEncodedText()),this.valuebg&&this.valuebg.css("width",f+"%"),this._labels){var P=100*(this.handle.width()/this.slider.width()),k=f&&P+(100-P)*f/100,E=100===f?0:Math.min(P+100-k,100);this._labels.each(function(){var t=e(this).is(".ui-slider-label-a");e(this).width((t?k:E)+"%")})}if(!o){var q=!1;if(b?(q=g.val()!==y,g.val(y)):(q=g[0].selectedIndex!==y,g[0].selectedIndex=y),this._trigger("beforechange",t)===!1)return!1;!a&&q&&g.trigger("change")}}},enable:function(){return this.element.attr("disabled",!1),this.slider.removeClass("ui-disabled").attr("aria-disabled",!1),this._setOption("disabled",!1)},disable:function(){return this.element.attr("disabled",!0),this.slider.addClass("ui-disabled").attr("aria-disabled",!0),this._setOption("disabled",!0)}},e.mobile.behaviors.formReset)),e.mobile.document.bind("pagecreate create",function(t){e.mobile.slider.prototype.enhanceWithin(t.target,!0)})}(e),function(e){e.widget("mobile.rangeslider",e.mobile.widget,{options:{theme:null,trackTheme:null,disabled:!1,initSelector:":jqmData(role='rangeslider')",mini:!1,highlight:!0},_create:function(){var t,i=this.element,n=this.options.mini?"ui-rangeslider ui-mini":"ui-rangeslider",a=i.find("input").first(),o=i.find("input").last(),s=i.find("label").first(),r=e.data(a.get(0),"mobileSlider").slider,l=e.data(o.get(0),"mobileSlider").slider,d=e.data(a.get(0),"mobileSlider").handle,c=e('').appendTo(i);i.find("label").length>1&&(t=i.find("label").last().hide()),a.addClass("ui-rangeslider-first"),o.addClass("ui-rangeslider-last"),i.addClass(n),r.appendTo(c),l.appendTo(c),s.prependTo(i),d.prependTo(l),e.extend(this,{_inputFirst:a,_inputLast:o,_sliderFirst:r,_sliderLast:l,_targetVal:null,_sliderTarget:!1,_sliders:c,_proxy:!1}),this.refresh(),this._on(this.element.find("input.ui-slider-input"),{slidebeforestart:"_slidebeforestart",slidestop:"_slidestop",slidedrag:"_slidedrag",slidebeforechange:"_change",blur:"_change",keyup:"_change"}),this._on({mousedown:"_change"}),this._on(this.element.closest("form"),{reset:"_handleReset"}),this._on(d,{vmousedown:"_dragFirstHandle"})},_handleReset:function(){var e=this;setTimeout(function(){e._updateHighlight()},0)},_dragFirstHandle:function(t){return e.data(this._inputFirst.get(0),"mobileSlider").dragging=!0,e.data(this._inputFirst.get(0),"mobileSlider").refresh(t),!1},_slidedrag:function(t){var i=e(t.target).is(this._inputFirst),a=i?this._inputLast:this._inputFirst;return this._sliderTarget=!1,"first"===this._proxy&&i||"last"===this._proxy&&!i?(e.data(a.get(0),"mobileSlider").dragging=!0,e.data(a.get(0),"mobileSlider").refresh(t),!1):n},_slidestop:function(t){var i=e(t.target).is(this._inputFirst);this._proxy=!1,this.element.find("input").trigger("vmouseup"),this._sliderFirst.css("z-index",i?1:"")},_slidebeforestart:function(t){this._sliderTarget=!1,e(t.originalEvent.target).hasClass("ui-slider-track")&&(this._sliderTarget=!0,this._targetVal=e(t.target).val())},_setOption:function(e){this._superApply(e),this.refresh()},refresh:function(){var e=this.element,t=this.options;e.find("input").slider({theme:t.theme,trackTheme:t.trackTheme,disabled:t.disabled,mini:t.mini,highlight:t.highlight}).slider("refresh"),this._updateHighlight()},_change:function(t){if("keyup"===t.type)return this._updateHighlight(),!1;var i=this,a=parseFloat(this._inputFirst.val(),10),o=parseFloat(this._inputLast.val(),10),s=e(t.target).hasClass("ui-rangeslider-first"),r=s?this._inputFirst:this._inputLast,l=s?this._inputLast:this._inputFirst;if(this._inputFirst.val()>this._inputLast.val()&&"mousedown"===t.type&&!e(t.target).hasClass("ui-slider-handle"))r.blur();else if("mousedown"===t.type)return;return a>o&&!this._sliderTarget?(r.val(s?o:a).slider("refresh"),this._trigger("normalize")):a>o&&(r.val(this._targetVal).slider("refresh"),setTimeout(function(){l.val(s?a:o).slider("refresh"),e.data(l.get(0),"mobileSlider").handle.focus(),i._sliderFirst.css("z-index",s?"":1),i._trigger("normalize")},0),this._proxy=s?"first":"last"),a===o?(e.data(r.get(0),"mobileSlider").handle.css("z-index",1),e.data(l.get(0),"mobileSlider").handle.css("z-index",0)):(e.data(l.get(0),"mobileSlider").handle.css("z-index",""),e.data(r.get(0),"mobileSlider").handle.css("z-index","")),this._updateHighlight(),a>=o?!1:n},_updateHighlight:function(){var t=parseInt(e.data(this._inputFirst.get(0),"mobileSlider").handle.get(0).style.left,10),i=parseInt(e.data(this._inputLast.get(0),"mobileSlider").handle.get(0).style.left,10),n=i-t;this.element.find(".ui-slider-bg").css({"margin-left":t+"%",width:n+"%"})},_destroy:function(){this.element.removeClass("ui-rangeslider ui-mini").find("label").show(),this._inputFirst.after(this._sliderFirst),this._inputLast.after(this._sliderLast),this._sliders.remove(),this.element.find("input").removeClass("ui-rangeslider-first ui-rangeslider-last").slider("destroy")}}),e.widget("mobile.rangeslider",e.mobile.rangeslider,e.mobile.behaviors.formReset),e(i).bind("pagecreate create",function(t){e.mobile.rangeslider.prototype.enhanceWithin(t.target,!0)})}(e),function(e){e.widget("mobile.selectmenu",e.mobile.widget,e.extend({options:{theme:null,disabled:!1,icon:"arrow-d",iconpos:"right",inline:!1,corners:!0,shadow:!0,iconshadow:!0,overlayTheme:"a",dividerTheme:"b",hidePlaceholderMenuItems:!0,closeText:"Close",nativeMenu:!0,preventFocusZoom:/iPhone|iPad|iPod/.test(navigator.platform)&&navigator.userAgent.indexOf("AppleWebKit")>-1,initSelector:"select:not( :jqmData(role='slider') )",mini:!1},_button:function(){return e("") -},_setDisabled:function(e){return this.element.attr("disabled",e),this.button.attr("aria-disabled",e),this._setOption("disabled",e)},_focusButton:function(){var e=this;setTimeout(function(){e.button.focus()},40)},_selectOptions:function(){return this.select.find("option")},_preExtension:function(){var t="";~this.element[0].className.indexOf("ui-btn-left")&&(t=" ui-btn-left"),~this.element[0].className.indexOf("ui-btn-right")&&(t=" ui-btn-right"),this.select=this.element.removeClass("ui-btn-left ui-btn-right").wrap(""),this.selectID=this.select.attr("id"),this.label=e("label[for='"+this.selectID+"']").addClass("ui-select"),this.isMultiple=this.select[0].multiple,this.options.theme||(this.options.theme=e.mobile.getInheritedTheme(this.select,"c"))},_destroy:function(){var e=this.element.parents(".ui-select");e.length>0&&(e.is(".ui-btn-left, .ui-btn-right")&&this.element.addClass(e.is(".ui-btn-left")?"ui-btn-left":"ui-btn-right"),this.element.insertAfter(e),e.remove())},_create:function(){this._preExtension(),this._trigger("beforeCreate"),this.button=this._button();var i=this,n=this.options,a=n.inline||this.select.jqmData("inline"),o=n.mini||this.select.jqmData("mini"),s=n.icon?n.iconpos||this.select.jqmData("iconpos"):!1,r=(-1===this.select[0].selectedIndex?0:this.select[0].selectedIndex,this.button.insertBefore(this.select).buttonMarkup({theme:n.theme,icon:n.icon,iconpos:s,inline:a,corners:n.corners,shadow:n.shadow,iconshadow:n.iconshadow,mini:o}));this.setButtonText(),n.nativeMenu&&t.opera&&t.opera.version&&r.addClass("ui-select-nativeonly"),this.isMultiple&&(this.buttonCount=e("").addClass("ui-li-count ui-btn-up-c ui-btn-corner-all").hide().appendTo(r.addClass("ui-li-has-count"))),(n.disabled||this.element.attr("disabled"))&&this.disable(),this.select.change(function(){i.refresh(),n.nativeMenu&&this.blur()}),this._handleFormReset(),this.build()},build:function(){var t=this;this.select.appendTo(t.button).bind("vmousedown",function(){t.button.addClass(e.mobile.activeBtnClass)}).bind("focus",function(){t.button.addClass(e.mobile.focusClass)}).bind("blur",function(){t.button.removeClass(e.mobile.focusClass)}).bind("focus vmouseover",function(){t.button.trigger("vmouseover")}).bind("vmousemove",function(){t.button.removeClass(e.mobile.activeBtnClass)}).bind("change blur vmouseout",function(){t.button.trigger("vmouseout").removeClass(e.mobile.activeBtnClass)}).bind("change blur",function(){t.button.removeClass("ui-btn-down-"+t.options.theme)}),t.button.bind("vmousedown",function(){t.options.preventFocusZoom&&e.mobile.zoom.disable(!0)}),t.label.bind("click focus",function(){t.options.preventFocusZoom&&e.mobile.zoom.disable(!0)}),t.select.bind("focus",function(){t.options.preventFocusZoom&&e.mobile.zoom.disable(!0)}),t.button.bind("mouseup",function(){t.options.preventFocusZoom&&setTimeout(function(){e.mobile.zoom.enable(!0)},0)}),t.select.bind("blur",function(){t.options.preventFocusZoom&&e.mobile.zoom.enable(!0)})},selected:function(){return this._selectOptions().filter(":selected")},selectedIndices:function(){var e=this;return this.selected().map(function(){return e._selectOptions().index(this)}).get()},setButtonText:function(){var t=this,n=this.selected(),a=this.placeholder,o=e(i.createElement("span"));this.button.find(".ui-btn-text").html(function(){return a=n.length?n.map(function(){return e(this).text()}).get().join(", "):t.placeholder,o.text(a).addClass(t.select.attr("class")).addClass(n.attr("class"))})},setButtonCount:function(){var e=this.selected();this.isMultiple&&this.buttonCount[e.length>1?"show":"hide"]().text(e.length)},_reset:function(){this.refresh()},refresh:function(){this.setButtonText(),this.setButtonCount()},open:e.noop,close:e.noop,disable:function(){this._setDisabled(!0),this.button.addClass("ui-disabled")},enable:function(){this._setDisabled(!1),this.button.removeClass("ui-disabled")}},e.mobile.behaviors.formReset)),e.mobile.document.bind("pagecreate create",function(t){e.mobile.selectmenu.prototype.enhanceWithin(t.target,!0)})}(e),function(e,n){function a(e,t,i,n){var a=n;return a=t>e?i+(e-t)/2:Math.min(Math.max(i,n-t/2),i+e-t)}function o(){var i=e.mobile.window;return{x:i.scrollLeft(),y:i.scrollTop(),cx:t.innerWidth||i.width(),cy:t.innerHeight||i.height()}}e.widget("mobile.popup",e.mobile.widget,{options:{theme:null,overlayTheme:null,shadow:!0,corners:!0,transition:"none",positionTo:"origin",tolerance:null,initSelector:":jqmData(role='popup')",closeLinkSelector:"a:jqmData(rel='back')",closeLinkEvents:"click.popup",navigateEvents:"navigate.popup",closeEvents:"navigate.popup pagebeforechange.popup",dismissible:!0,history:!e.mobile.browser.oldIE},_eatEventAndClose:function(e){return e.preventDefault(),e.stopImmediatePropagation(),this.options.dismissible&&this.close(),!1},_resizeScreen:function(){var e=this._ui.container.outerHeight(!0);this._ui.screen.removeAttr("style"),e>this._ui.screen.height()&&this._ui.screen.height(e)},_handleWindowKeyUp:function(t){return this._isOpen&&t.keyCode===e.mobile.keyCode.ESCAPE?this._eatEventAndClose(t):n},_expectResizeEvent:function(){var t=o();if(this._resizeData){if(t.x===this._resizeData.winCoords.x&&t.y===this._resizeData.winCoords.y&&t.cx===this._resizeData.winCoords.cx&&t.cy===this._resizeData.winCoords.cy)return!1;clearTimeout(this._resizeData.timeoutId)}return this._resizeData={timeoutId:setTimeout(e.proxy(this,"_resizeTimeout"),200),winCoords:t},!0},_resizeTimeout:function(){this._isOpen?this._expectResizeEvent()||(this._ui.container.hasClass("ui-popup-hidden")&&(this._ui.container.removeClass("ui-popup-hidden"),this.reposition({positionTo:"window"}),this._ignoreResizeEvents()),this._resizeScreen(),this._resizeData=null,this._orientationchangeInProgress=!1):(this._resizeData=null,this._orientationchangeInProgress=!1)},_ignoreResizeEvents:function(){var e=this;this._ignoreResizeTo&&clearTimeout(this._ignoreResizeTo),this._ignoreResizeTo=setTimeout(function(){e._ignoreResizeTo=0},1e3)},_handleWindowResize:function(){this._isOpen&&0===this._ignoreResizeTo&&(!this._expectResizeEvent()&&!this._orientationchangeInProgress||this._ui.container.hasClass("ui-popup-hidden")||this._ui.container.addClass("ui-popup-hidden").removeAttr("style"))},_handleWindowOrientationchange:function(){!this._orientationchangeInProgress&&this._isOpen&&0===this._ignoreResizeTo&&(this._expectResizeEvent(),this._orientationchangeInProgress=!0)},_handleDocumentFocusIn:function(t){var n,a=t.target,o=this._ui;if(this._isOpen){if(a!==o.container[0]){if(n=e(t.target),0===n.parents().filter(o.container[0]).length)return e(i.activeElement).one("focus",function(){n.blur()}),o.focusElement.focus(),t.preventDefault(),t.stopImmediatePropagation(),!1;o.focusElement[0]===o.container[0]&&(o.focusElement=n)}this._ignoreResizeEvents()}},_create:function(){var t={screen:e(""),placeholder:e(""),container:e("")},i=this.element.closest(".ui-page"),a=this.element.attr("id"),o=this;this.options.history=this.options.history&&e.mobile.ajaxEnabled&&e.mobile.hashListeningEnabled,0===i.length&&(i=e("body")),this.options.container=this.options.container||e.mobile.pageContainer,i.append(t.screen),t.container.insertAfter(t.screen),t.placeholder.insertAfter(this.element),a&&(t.screen.attr("id",a+"-screen"),t.container.attr("id",a+"-popup"),t.placeholder.html("")),t.container.append(this.element),t.focusElement=t.container,this.element.addClass("ui-popup"),e.extend(this,{_scrollTop:0,_page:i,_ui:t,_fallbackTransition:"",_currentTransition:!1,_prereqs:null,_isOpen:!1,_tolerance:null,_resizeData:null,_ignoreResizeTo:0,_orientationchangeInProgress:!1}),e.each(this.options,function(e,t){o.options[e]=n,o._setOption(e,t,!0)}),t.screen.bind("vclick",e.proxy(this,"_eatEventAndClose")),this._on(e.mobile.window,{orientationchange:e.proxy(this,"_handleWindowOrientationchange"),resize:e.proxy(this,"_handleWindowResize"),keyup:e.proxy(this,"_handleWindowKeyUp")}),this._on(e.mobile.document,{focusin:e.proxy(this,"_handleDocumentFocusIn")})},_applyTheme:function(e,t,i){for(var n,a=(e.attr("class")||"").split(" "),o=null,s=t+"";a.length>0;){if(o=a.pop(),n=RegExp("^ui-"+i+"-([a-z])$").exec(o),n&&n.length>1){o=n[1];break}o=null}t!==o&&(e.removeClass("ui-"+i+"-"+o),null!==t&&"none"!==t&&e.addClass("ui-"+i+"-"+s))},_setTheme:function(e){this._applyTheme(this.element,e,"body")},_setOverlayTheme:function(e){this._applyTheme(this._ui.screen,e,"overlay"),this._isOpen&&this._ui.screen.addClass("in")},_setShadow:function(e){this.element.toggleClass("ui-overlay-shadow",e)},_setCorners:function(e){this.element.toggleClass("ui-corner-all",e)},_applyTransition:function(t){this._ui.container.removeClass(this._fallbackTransition),t&&"none"!==t&&(this._fallbackTransition=e.mobile._maybeDegradeTransition(t),"none"===this._fallbackTransition&&(this._fallbackTransition=""),this._ui.container.addClass(this._fallbackTransition))},_setTransition:function(e){this._currentTransition||this._applyTransition(e)},_setTolerance:function(t){var i={t:30,r:15,b:30,l:15};if(t!==n){var a=(t+"").split(",");switch(e.each(a,function(e,t){a[e]=parseInt(t,10)}),a.length){case 1:isNaN(a[0])||(i.t=i.r=i.b=i.l=a[0]);break;case 2:isNaN(a[0])||(i.t=i.b=a[0]),isNaN(a[1])||(i.l=i.r=a[1]);break;case 4:isNaN(a[0])||(i.t=a[0]),isNaN(a[1])||(i.r=a[1]),isNaN(a[2])||(i.b=a[2]),isNaN(a[3])||(i.l=a[3]);break;default:}}this._tolerance=i},_setOption:function(t,i){var a,o="_set"+t.charAt(0).toUpperCase()+t.slice(1);this[o]!==n&&this[o](i),a=["initSelector","closeLinkSelector","closeLinkEvents","navigateEvents","closeEvents","history","container"],e.mobile.widget.prototype._setOption.apply(this,arguments),-1===e.inArray(t,a)&&this.element.attr("data-"+(e.mobile.ns||"")+t.replace(/([A-Z])/,"-$1").toLowerCase(),i)},_placementCoords:function(e){var t,n,s=o(),r={x:this._tolerance.l,y:s.y+this._tolerance.t,cx:s.cx-this._tolerance.l-this._tolerance.r,cy:s.cy-this._tolerance.t-this._tolerance.b};this._ui.container.css("max-width",r.cx),t={cx:this._ui.container.outerWidth(!0),cy:this._ui.container.outerHeight(!0)},n={x:a(r.cx,t.cx,r.x,e.x),y:a(r.cy,t.cy,r.y,e.y)},n.y=Math.max(0,n.y);var l=i.documentElement,d=i.body,c=Math.max(l.clientHeight,d.scrollHeight,d.offsetHeight,l.scrollHeight,l.offsetHeight);return n.y-=Math.min(n.y,Math.max(0,n.y+t.cy-c)),{left:n.x,top:n.y}},_createPrereqs:function(t,i,n){var a,o=this;a={screen:e.Deferred(),container:e.Deferred()},a.screen.then(function(){a===o._prereqs&&t()}),a.container.then(function(){a===o._prereqs&&i()}),e.when(a.screen,a.container).done(function(){a===o._prereqs&&(o._prereqs=null,n())}),o._prereqs=a},_animate:function(t){return this._ui.screen.removeClass(t.classToRemove).addClass(t.screenClassToAdd),t.prereqs.screen.resolve(),t.transition&&"none"!==t.transition&&(t.applyTransition&&this._applyTransition(t.transition),this._fallbackTransition)?(this._ui.container.animationComplete(e.proxy(t.prereqs.container,"resolve")).addClass(t.containerClassToAdd).removeClass(t.classToRemove),n):(this._ui.container.removeClass(t.classToRemove),t.prereqs.container.resolve(),n)},_desiredCoords:function(t){var i,n=null,a=o(),s=t.x,r=t.y,l=t.positionTo;if(l&&"origin"!==l)if("window"===l)s=a.cx/2+a.x,r=a.cy/2+a.y;else{try{n=e(l)}catch(d){n=null}n&&(n.filter(":visible"),0===n.length&&(n=null))}return n&&(i=n.offset(),s=i.left+n.outerWidth()/2,r=i.top+n.outerHeight()/2),("number"!==e.type(s)||isNaN(s))&&(s=a.cx/2+a.x),("number"!==e.type(r)||isNaN(r))&&(r=a.cy/2+a.y),{x:s,y:r}},_reposition:function(e){e={x:e.x,y:e.y,positionTo:e.positionTo},this._trigger("beforeposition",e),this._ui.container.offset(this._placementCoords(this._desiredCoords(e)))},reposition:function(e){this._isOpen&&this._reposition(e)},_openPrereqsComplete:function(){this._ui.container.addClass("ui-popup-active"),this._isOpen=!0,this._resizeScreen(),this._ui.container.attr("tabindex","0").focus(),this._ignoreResizeEvents(),this._trigger("afteropen")},_open:function(t){var i=e.extend({},this.options,t),n=function(){var e=navigator.userAgent,t=e.match(/AppleWebKit\/([0-9\.]+)/),i=!!t&&t[1],n=e.match(/Android (\d+(?:\.\d+))/),a=!!n&&n[1],o=e.indexOf("Chrome")>-1;return null!==n&&"4.0"===a&&i&&i>534.13&&!o?!0:!1}();this._createPrereqs(e.noop,e.noop,e.proxy(this,"_openPrereqsComplete")),this._currentTransition=i.transition,this._applyTransition(i.transition),this.options.theme||this._setTheme(this._page.jqmData("theme")||e.mobile.getInheritedTheme(this._page,"c")),this._ui.screen.removeClass("ui-screen-hidden"),this._ui.container.removeClass("ui-popup-hidden"),this._reposition(i),this.options.overlayTheme&&n&&this.element.closest(".ui-page").addClass("ui-popup-open"),this._animate({additionalCondition:!0,transition:i.transition,classToRemove:"",screenClassToAdd:"in",containerClassToAdd:"in",applyTransition:!1,prereqs:this._prereqs})},_closePrereqScreen:function(){this._ui.screen.removeClass("out").addClass("ui-screen-hidden")},_closePrereqContainer:function(){this._ui.container.removeClass("reverse out").addClass("ui-popup-hidden").removeAttr("style")},_closePrereqsDone:function(){this.options,this._ui.container.removeAttr("tabindex"),e.mobile.popup.active=n,this._trigger("afterclose")},_close:function(t){this._ui.container.removeClass("ui-popup-active"),this._page.removeClass("ui-popup-open"),this._isOpen=!1,this._createPrereqs(e.proxy(this,"_closePrereqScreen"),e.proxy(this,"_closePrereqContainer"),e.proxy(this,"_closePrereqsDone")),this._animate({additionalCondition:this._ui.screen.hasClass("in"),transition:t?"none":this._currentTransition,classToRemove:"in",screenClassToAdd:"out",containerClassToAdd:"reverse out",applyTransition:!0,prereqs:this._prereqs})},_unenhance:function(){this._setTheme("none"),this.element.detach().insertAfter(this._ui.placeholder).removeClass("ui-popup ui-overlay-shadow ui-corner-all"),this._ui.screen.remove(),this._ui.container.remove(),this._ui.placeholder.remove()},_destroy:function(){e.mobile.popup.active===this?(this.element.one("popupafterclose",e.proxy(this,"_unenhance")),this.close()):this._unenhance()},_closePopup:function(i,n){var a,o,s=this.options,r=!1;t.scrollTo(0,this._scrollTop),i&&"pagebeforechange"===i.type&&n&&(a="string"==typeof n.toPage?n.toPage:n.toPage.jqmData("url"),a=e.mobile.path.parseUrl(a),o=a.pathname+a.search+a.hash,this._myUrl!==e.mobile.path.makeUrlAbsolute(o)?r=!0:i.preventDefault()),s.container.unbind(s.closeEvents),this.element.undelegate(s.closeLinkSelector,s.closeLinkEvents),this._close(r)},_bindContainerClose:function(){this.options.container.one(this.options.closeEvents,e.proxy(this,"_closePopup"))},open:function(i){var a,o,s,r,l,d,c=this,h=this.options;if(!e.mobile.popup.active){if(e.mobile.popup.active=this,this._scrollTop=e.mobile.window.scrollTop(),!h.history)return c._open(i),c._bindContainerClose(),c.element.delegate(h.closeLinkSelector,h.closeLinkEvents,function(e){c.close(),e.preventDefault()}),n;if(d=e.mobile.urlHistory,o=e.mobile.dialogHashKey,s=e.mobile.activePage,r=s.is(".ui-dialog"),this._myUrl=a=d.getActive().url,l=a.indexOf(o)>-1&&!r&&d.activeIndex>0)return c._open(i),c._bindContainerClose(),n;-1!==a.indexOf(o)||r?a=e.mobile.path.parseLocation().hash+o:a+=a.indexOf("#")>-1?o:"#"+o,0===d.activeIndex&&a===d.initialDst&&(a+=o),e(t).one("beforenavigate",function(e){e.preventDefault(),c._open(i),c._bindContainerClose()}),this.urlAltered=!0,e.mobile.navigate(a,{role:"dialog"})}},close:function(){e.mobile.popup.active===this&&(this._scrollTop=e.mobile.window.scrollTop(),this.options.history&&this.urlAltered?(e.mobile.back(),this.urlAltered=!1):this._closePopup())}}),e.mobile.popup.handleLink=function(t){var i,n=t.closest(":jqmData(role='page')"),a=0===n.length?e("body"):n,o=e(e.mobile.path.parseUrl(t.attr("href")).hash,a[0]);o.data("mobile-popup")&&(i=t.offset(),o.popup("open",{x:i.left+t.outerWidth()/2,y:i.top+t.outerHeight()/2,transition:t.jqmData("transition"),positionTo:t.jqmData("position-to")})),setTimeout(function(){var i=t.parent().parent();i.hasClass("ui-li")&&(t=i.parent()),t.removeClass(e.mobile.activeBtnClass)},300)},e.mobile.document.bind("pagebeforechange",function(t,i){"popup"===i.options.role&&(e.mobile.popup.handleLink(i.options.link),t.preventDefault())}),e.mobile.document.bind("pagecreate create",function(t){e.mobile.popup.prototype.enhanceWithin(t.target,!0)})}(e),function(e,t){var n=function(n){var a,o,s,r=(n.select,n._destroy),l=n.selectID,d=l?l:(e.mobile.ns||"")+"uuid-"+n.uuid,c=d+"-listbox",h=d+"-dialog",u=n.label,p=n.select.closest(".ui-page"),m=n._selectOptions(),f=n.isMultiple=n.select[0].multiple,g=l+"-button",b=l+"-menu",v=e(""+""+""+u.getEncodedText()+""+""+""+""),_=e("").insertAfter(n.select).popup({theme:n.options.overlayTheme}),C=e("",{"class":"ui-selectmenu-list",id:b,role:"listbox","aria-labelledby":g}).attr("data-"+e.mobile.ns+"theme",n.options.theme).attr("data-"+e.mobile.ns+"divider-theme",n.options.dividerTheme).appendTo(_),x=e("",{"class":"ui-header ui-bar-"+n.options.theme}).prependTo(_),y=e("",{"class":"ui-title"}).appendTo(x);n.isMultiple&&(s=e("",{text:n.options.closeText,href:"#","class":"ui-btn-left"}).attr("data-"+e.mobile.ns+"iconpos","notext").attr("data-"+e.mobile.ns+"icon","delete").appendTo(x).buttonMarkup()),e.extend(n,{select:n.select,selectID:l,buttonId:g,menuId:b,popupID:c,dialogID:h,thisPage:p,menuPage:v,label:u,selectOptions:m,isMultiple:f,theme:n.options.theme,listbox:_,list:C,header:x,headerTitle:y,headerClose:s,menuPageContent:a,menuPageClose:o,placeholder:"",build:function(){var i=this;i.refresh(),i._origTabIndex===t&&(i._origTabIndex=null===i.select[0].getAttribute("tabindex")?!1:i.select.attr("tabindex")),i.select.attr("tabindex","-1").focus(function(){e(this).blur(),i.button.focus()}),i.button.bind("vclick keydown",function(t){i.options.disabled||i.isOpen||("vclick"===t.type||t.keyCode&&(t.keyCode===e.mobile.keyCode.ENTER||t.keyCode===e.mobile.keyCode.SPACE))&&(i._decideFormat(),"overlay"===i.menuType?i.button.attr("href","#"+i.popupID).attr("data-"+(e.mobile.ns||"")+"rel","popup"):i.button.attr("href","#"+i.dialogID).attr("data-"+(e.mobile.ns||"")+"rel","dialog"),i.isOpen=!0)}),i.list.attr("role","listbox").bind("focusin",function(t){e(t.target).attr("tabindex","0").trigger("vmouseover")}).bind("focusout",function(t){e(t.target).attr("tabindex","-1").trigger("vmouseout")}).delegate("li:not(.ui-disabled, .ui-li-divider)","click",function(t){var a=i.select[0].selectedIndex,o=i.list.find("li:not(.ui-li-divider)").index(this),s=i._selectOptions().eq(o)[0];s.selected=i.isMultiple?!s.selected:!0,i.isMultiple&&e(this).find(".ui-icon").toggleClass("ui-icon-checkbox-on",s.selected).toggleClass("ui-icon-checkbox-off",!s.selected),(i.isMultiple||a!==o)&&i.select.trigger("change"),i.isMultiple?i.list.find("li:not(.ui-li-divider)").eq(o).addClass("ui-btn-down-"+n.options.theme).find("a").first().focus():i.close(),t.preventDefault()}).keydown(function(t){var i,a,o=e(t.target),s=o.closest("li");switch(t.keyCode){case 38:return i=s.prev().not(".ui-selectmenu-placeholder"),i.is(".ui-li-divider")&&(i=i.prev()),i.length&&(o.blur().attr("tabindex","-1"),i.addClass("ui-btn-down-"+n.options.theme).find("a").first().focus()),!1;case 40:return a=s.next(),a.is(".ui-li-divider")&&(a=a.next()),a.length&&(o.blur().attr("tabindex","-1"),a.addClass("ui-btn-down-"+n.options.theme).find("a").first().focus()),!1;case 13:case 32:return o.trigger("click"),!1}}),i.menuPage.bind("pagehide",function(){e.mobile._bindPageRemove.call(i.thisPage)}),i.listbox.bind("popupafterclose",function(){i.close()}),i.isMultiple&&i.headerClose.click(function(){return"overlay"===i.menuType?(i.close(),!1):t}),i.thisPage.addDependents(this.menuPage)},_isRebuildRequired:function(){var e=this.list.find("li"),t=this._selectOptions();return t.text()!==e.text()},selected:function(){return this._selectOptions().filter(":selected:not( :jqmData(placeholder='true') )")},refresh:function(t){var i,n=this;this.element,this.isMultiple,(t||this._isRebuildRequired())&&n._buildList(),i=this.selectedIndices(),n.setButtonText(),n.setButtonCount(),n.list.find("li:not(.ui-li-divider)").removeClass(e.mobile.activeBtnClass).attr("aria-selected",!1).each(function(t){if(e.inArray(t,i)>-1){var a=e(this);a.attr("aria-selected",!0),n.isMultiple?a.find(".ui-icon").removeClass("ui-icon-checkbox-off").addClass("ui-icon-checkbox-on"):a.is(".ui-selectmenu-placeholder")?a.next().addClass(e.mobile.activeBtnClass):a.addClass(e.mobile.activeBtnClass)}})},close:function(){if(!this.options.disabled&&this.isOpen){var e=this;"page"===e.menuType?(e.menuPage.dialog("close"),e.list.appendTo(e.listbox)):e.listbox.popup("close"),e._focusButton(),e.isOpen=!1}},open:function(){this.button.click()},_decideFormat:function(){function t(){var t=i.list.find("."+e.mobile.activeBtnClass+" a");0===t.length&&(t=i.list.find("li.ui-btn:not( :jqmData(placeholder='true') ) a")),t.first().focus().closest("li").addClass("ui-btn-down-"+n.options.theme)}var i=this,a=e.mobile.window,o=i.list.parent(),s=o.outerHeight(),r=(o.outerWidth(),e("."+e.mobile.activePageClass),a.scrollTop()),l=i.button.offset().top,d=a.height();a.width(),s>d-80||!e.support.scrollTop?(i.menuPage.appendTo(e.mobile.pageContainer).page(),i.menuPageContent=v.find(".ui-content"),i.menuPageClose=v.find(".ui-header a"),i.thisPage.unbind("pagehide.remove"),0===r&&l>d&&i.thisPage.one("pagehide",function(){e(this).jqmData("lastScroll",l)}),i.menuPage.one("pageshow",function(){t()}).one("pagehide",function(){i.close()}),i.menuType="page",i.menuPageContent.append(i.list),i.menuPage.find("div .ui-title").text(i.label.text())):(i.menuType="overlay",i.listbox.one("popupafteropen",t))},_buildList:function(){var t=this,n=this.options,a=this.placeholder,o=!0,s=t.isMultiple?"checkbox-off":"false";t.list.empty().filter(".ui-listview").listview("destroy");for(var r,l=t.select.find("option"),d=l.length,c=this.select[0],h="data-"+e.mobile.ns,u=h+"option-index",p=h+"icon",m=h+"role",f=h+"placeholder",g=i.createDocumentFragment(),b=!1,v=0;d>v;v++,b=!1){var _=l[v],C=e(_),x=_.parentNode,y=C.text(),w=i.createElement("a"),T=[];if(w.setAttribute("href","#"),w.appendChild(i.createTextNode(y)),x!==c&&"optgroup"===x.nodeName.toLowerCase()){var D=x.getAttribute("label");if(D!==r){var P=i.createElement("li");P.setAttribute(m,"list-divider"),P.setAttribute("role","option"),P.setAttribute("tabindex","-1"),P.appendChild(i.createTextNode(D)),g.appendChild(P),r=D}}!o||_.getAttribute("value")&&0!==y.length&&!C.jqmData("placeholder")||(o=!1,b=!0,null===_.getAttribute(f)&&(this._removePlaceholderAttr=!0),_.setAttribute(f,!0),n.hidePlaceholderMenuItems&&T.push("ui-selectmenu-placeholder"),a!==y&&(a=t.placeholder=y));var k=i.createElement("li");_.disabled&&(T.push("ui-disabled"),k.setAttribute("aria-disabled",!0)),k.setAttribute(u,v),k.setAttribute(p,s),b&&k.setAttribute(f,!0),k.className=T.join(" "),k.setAttribute("role","option"),w.setAttribute("tabindex","-1"),k.appendChild(w),g.appendChild(k)}t.list[0].appendChild(g),this.isMultiple||a.length?this.headerTitle.text(this.placeholder):this.header.hide(),t.list.listview()},_button:function(){return e("",{href:"#",role:"button",id:this.buttonId,"aria-haspopup":"true","aria-owns":this.menuId})},_destroy:function(){this.close(),this._origTabIndex!==t&&(this._origTabIndex!==!1?this.select.attr("tabindex",this._origTabIndex):this.select.removeAttr("tabindex")),this._removePlaceholderAttr&&this._selectOptions().removeAttr("data-"+e.mobile.ns+"placeholder"),this.listbox.remove(),r.apply(this,arguments)}})};e.mobile.document.bind("selectmenubeforecreate",function(t){var i=e(t.target).data("mobile-selectmenu");i.options.nativeMenu||0!==i.element.parents(":jqmData(role='popup')").length||n(i)})}(e),function(e,t){e.widget("mobile.controlgroup",e.mobile.widget,e.extend({options:{shadow:!1,corners:!0,excludeInvisible:!0,type:"vertical",mini:!1,initSelector:":jqmData(role='controlgroup')"},_create:function(){var i=this.element,n={inner:e(""),legend:e("")},a=i.children("legend"),o=this;i.wrapInner(n.inner),a.length&&n.legend.append(a).insertBefore(i.children(0)),i.addClass("ui-corner-all ui-controlgroup"),e.extend(this,{_initialRefresh:!0}),e.each(this.options,function(e,i){o.options[e]=t,o._setOption(e,i,!0)})},_init:function(){this.refresh()},_setOption:function(i,n){var a="_set"+i.charAt(0).toUpperCase()+i.slice(1);this[a]!==t&&this[a](n),this._super(i,n),this.element.attr("data-"+(e.mobile.ns||"")+i.replace(/([A-Z])/,"-$1").toLowerCase(),n)},_setType:function(e){this.element.removeClass("ui-controlgroup-horizontal ui-controlgroup-vertical").addClass("ui-controlgroup-"+e),this.refresh()},_setCorners:function(e){this.element.toggleClass("ui-corner-all",e)},_setShadow:function(e){this.element.toggleClass("ui-shadow",e)},_setMini:function(e){this.element.toggleClass("ui-mini",e)},container:function(){return this.element.children(".ui-controlgroup-controls")},refresh:function(){var t=this.element.find(".ui-btn").not(".ui-slider-handle"),i=this._initialRefresh;e.mobile.checkboxradio&&this.element.find(":mobile-checkboxradio").checkboxradio("refresh"),this._addFirstLastClasses(t,this.options.excludeInvisible?this._getVisibles(t,i):t,i),this._initialRefresh=!1}},e.mobile.behaviors.addFirstLastClasses)),e(function(){e.mobile.document.bind("pagecreate create",function(t){e.mobile.controlgroup.prototype.enhanceWithin(t.target,!0)})})}(e),function(e){e(i).bind("pagecreate create",function(t){e(t.target).find("a").jqmEnhanceable().not(".ui-btn, .ui-link-inherit, :jqmData(role='none'), :jqmData(role='nojs')").addClass("ui-link")})}(e),function(e,t){e.widget("mobile.fixedtoolbar",e.mobile.widget,{options:{visibleOnPageShow:!0,disablePageZoom:!0,transition:"slide",fullscreen:!1,tapToggle:!0,tapToggleBlacklist:"a, button, input, select, textarea, .ui-header-fixed, .ui-footer-fixed, .ui-popup, .ui-panel, .ui-panel-dismiss-open",hideDuringFocus:"input, textarea, select",updatePagePadding:!0,trackPersistentToolbars:!0,supportBlacklist:function(){return!e.support.fixedPosition},initSelector:":jqmData(position='fixed')"},_create:function(){var i=this,n=i.options,a=i.element,o=a.is(":jqmData(role='header')")?"header":"footer",s=a.closest(".ui-page");return n.supportBlacklist()?(i.destroy(),t):(a.addClass("ui-"+o+"-fixed"),n.fullscreen?(a.addClass("ui-"+o+"-fullscreen"),s.addClass("ui-page-"+o+"-fullscreen")):s.addClass("ui-page-"+o+"-fixed"),e.extend(this,{_thisPage:null}),i._addTransitionClass(),i._bindPageEvents(),i._bindToggleHandlers(),t)},_addTransitionClass:function(){var e=this.options.transition;e&&"none"!==e&&("slide"===e&&(e=this.element.is(".ui-header")?"slidedown":"slideup"),this.element.addClass(e))},_bindPageEvents:function(){this._thisPage=this.element.closest(".ui-page"),this._on(this._thisPage,{pagebeforeshow:"_handlePageBeforeShow",webkitAnimationStart:"_handleAnimationStart",animationstart:"_handleAnimationStart",updatelayout:"_handleAnimationStart",pageshow:"_handlePageShow",pagebeforehide:"_handlePageBeforeHide"})},_handlePageBeforeShow:function(){var t=this.options;t.disablePageZoom&&e.mobile.zoom.disable(!0),t.visibleOnPageShow||this.hide(!0)},_handleAnimationStart:function(){this.options.updatePagePadding&&this.updatePagePadding(this._thisPage)},_handlePageShow:function(){this.updatePagePadding(this._thisPage),this.options.updatePagePadding&&this._on(e.mobile.window,{throttledresize:"updatePagePadding"})},_handlePageBeforeHide:function(t,i){var n=this.options;if(n.disablePageZoom&&e.mobile.zoom.enable(!0),n.updatePagePadding&&this._off(e.mobile.window,"throttledresize"),n.trackPersistentToolbars){var a=e(".ui-footer-fixed:jqmData(id)",this._thisPage),o=e(".ui-header-fixed:jqmData(id)",this._thisPage),s=a.length&&i.nextPage&&e(".ui-footer-fixed:jqmData(id='"+a.jqmData("id")+"')",i.nextPage)||e(),r=o.length&&i.nextPage&&e(".ui-header-fixed:jqmData(id='"+o.jqmData("id")+"')",i.nextPage)||e();(s.length||r.length)&&(s.add(r).appendTo(e.mobile.pageContainer),i.nextPage.one("pageshow",function(){r.prependTo(this),s.appendTo(this)}))}},_visible:!0,updatePagePadding:function(i){var n=this.element,a=n.is(".ui-header"),o=parseFloat(n.css(a?"top":"bottom"));this.options.fullscreen||(i=i&&i.type===t&&i||this._thisPage||n.closest(".ui-page"),e(i).css("padding-"+(a?"top":"bottom"),n.outerHeight()+o))},_useTransition:function(t){var i=e.mobile.window,n=this.element,a=i.scrollTop(),o=n.height(),s=n.closest(".ui-page").height(),r=e.mobile.getScreenHeight(),l=n.is(":jqmData(role='header')")?"header":"footer";return!t&&(this.options.transition&&"none"!==this.options.transition&&("header"===l&&!this.options.fullscreen&&a>o||"footer"===l&&!this.options.fullscreen&&s-o>a+r)||this.options.fullscreen)},show:function(e){var t="ui-fixed-hidden",i=this.element;this._useTransition(e)?i.removeClass("out "+t).addClass("in").animationComplete(function(){i.removeClass("in")}):i.removeClass(t),this._visible=!0},hide:function(e){var t="ui-fixed-hidden",i=this.element,n="out"+("slide"===this.options.transition?" reverse":"");this._useTransition(e)?i.addClass(n).removeClass("in").animationComplete(function(){i.addClass(t).removeClass(n)}):i.addClass(t).removeClass(n),this._visible=!1},toggle:function(){this[this._visible?"hide":"show"]()},_bindToggleHandlers:function(){var t,i,n=this,a=n.options,o=n.element,s=!0;o.closest(".ui-page").bind("vclick",function(t){a.tapToggle&&!e(t.target).closest(a.tapToggleBlacklist).length&&n.toggle()}).bind("focusin focusout",function(o){1025>screen.width&&e(o.target).is(a.hideDuringFocus)&&!e(o.target).closest(".ui-header-fixed, .ui-footer-fixed").length&&("focusout"!==o.type||s?"focusin"===o.type&&s&&(clearTimeout(t),s=!1,i=setTimeout(function(){n.hide()},0)):(s=!0,clearTimeout(i),t=setTimeout(function(){n.show()},0)))})},_destroy:function(){var e=this.element,t=e.is(".ui-header");e.closest(".ui-page").css("padding-"+(t?"top":"bottom"),""),e.removeClass("ui-header-fixed ui-footer-fixed ui-header-fullscreen ui-footer-fullscreen in out fade slidedown slideup ui-fixed-hidden"),e.closest(".ui-page").removeClass("ui-page-header-fixed ui-page-footer-fixed ui-page-header-fullscreen ui-page-footer-fullscreen")}}),e.mobile.document.bind("pagecreate create",function(t){e(t.target).jqmData("fullscreen")&&e(e.mobile.fixedtoolbar.prototype.options.initSelector,t.target).not(":jqmData(fullscreen)").jqmData("fullscreen",!0),e.mobile.fixedtoolbar.prototype.enhanceWithin(t.target)})}(e),function(e){e.widget("mobile.fixedtoolbar",e.mobile.fixedtoolbar,{_create:function(){this._super(),this._workarounds()},_workarounds:function(){var e=navigator.userAgent,t=navigator.platform,i=e.match(/AppleWebKit\/([0-9]+)/),n=!!i&&i[1],a=null,o=this;if(t.indexOf("iPhone")>-1||t.indexOf("iPad")>-1||t.indexOf("iPod")>-1)a="ios";else{if(!(e.indexOf("Android")>-1))return;a="android"}if("ios"===a)o._bindScrollWorkaround();else{if(!("android"===a&&n&&534>n))return;o._bindScrollWorkaround(),o._bindListThumbWorkaround()}},_viewportOffset:function(){var t=this.element,i=t.is(".ui-header"),n=Math.abs(t.offset().top-e.mobile.window.scrollTop());return i||(n=Math.round(n-e.mobile.window.height()+t.outerHeight())-60),n},_bindScrollWorkaround:function(){var t=this;this._on(e.mobile.window,{scrollstop:function(){var e=t._viewportOffset();e>2&&t._visible&&t._triggerRedraw()}})},_bindListThumbWorkaround:function(){this.element.closest(".ui-page").addClass("ui-android-2x-fixed")},_triggerRedraw:function(){var t=parseFloat(e(".ui-page-active").css("padding-bottom")); -e(".ui-page-active").css("padding-bottom",t+1+"px"),setTimeout(function(){e(".ui-page-active").css("padding-bottom",t+"px")},0)},destroy:function(){this._super(),this.element.closest(".ui-page-active").removeClass("ui-android-2x-fix")}})}(e),function(e,n){e.widget("mobile.panel",e.mobile.widget,{options:{classes:{panel:"ui-panel",panelOpen:"ui-panel-open",panelClosed:"ui-panel-closed",panelFixed:"ui-panel-fixed",panelInner:"ui-panel-inner",modal:"ui-panel-dismiss",modalOpen:"ui-panel-dismiss-open",pagePanel:"ui-page-panel",pagePanelOpen:"ui-page-panel-open",contentWrap:"ui-panel-content-wrap",contentWrapOpen:"ui-panel-content-wrap-open",contentWrapClosed:"ui-panel-content-wrap-closed",contentFixedToolbar:"ui-panel-content-fixed-toolbar",contentFixedToolbarOpen:"ui-panel-content-fixed-toolbar-open",contentFixedToolbarClosed:"ui-panel-content-fixed-toolbar-closed",animate:"ui-panel-animate"},animate:!0,theme:"c",position:"left",dismissible:!0,display:"reveal",initSelector:":jqmData(role='panel')",swipeClose:!0,positionFixed:!1},_panelID:null,_closeLink:null,_page:null,_modal:null,_panelInner:null,_wrapper:null,_fixedToolbar:null,_create:function(){var t=this,i=t.element,n=i.closest(":jqmData(role='page')"),a=function(){var t=e.data(n[0],"mobilePage").options.theme,i="ui-body-"+t;return i},o=function(){var e=i.find("."+t.options.classes.panelInner);return 0===e.length&&(e=i.children().wrapAll('').parent()),e},s=function(){var i=n.find("."+t.options.classes.contentWrap);return 0===i.length&&(i=n.children(".ui-header:not(:jqmData(position='fixed')), .ui-content:not(:jqmData(role='popup')), .ui-footer:not(:jqmData(position='fixed'))").wrapAll('').parent(),e.support.cssTransform3d&&t.options.animate&&i.addClass(t.options.classes.animate)),i},r=function(){var i=n.find("."+t.options.classes.contentFixedToolbar);return 0===i.length&&(i=n.find(".ui-header:jqmData(position='fixed'), .ui-footer:jqmData(position='fixed')").addClass(t.options.classes.contentFixedToolbar),e.support.cssTransform3d&&t.options.animate&&i.addClass(t.options.classes.animate)),i};e.extend(this,{_panelID:i.attr("id"),_closeLink:i.find(":jqmData(rel='close')"),_page:i.closest(":jqmData(role='page')"),_pageTheme:a(),_panelInner:o(),_wrapper:s(),_fixedToolbar:r()}),t._addPanelClasses(),t._wrapper.addClass(this.options.classes.contentWrapClosed),t._fixedToolbar.addClass(this.options.classes.contentFixedToolbarClosed),t._page.addClass(t.options.classes.pagePanel),e.support.cssTransform3d&&t.options.animate&&this.element.addClass(t.options.classes.animate),t._bindUpdateLayout(),t._bindCloseEvents(),t._bindLinkListeners(),t._bindPageEvents(),t.options.dismissible&&t._createModal(),t._bindSwipeEvents()},_createModal:function(){var t=this;t._modal=e("").on("mousedown",function(){t.close()}).appendTo(this._page)},_getPosDisplayClasses:function(e){return e+"-position-"+this.options.position+" "+e+"-display-"+this.options.display},_getPanelClasses:function(){var e=this.options.classes.panel+" "+this._getPosDisplayClasses(this.options.classes.panel)+" "+this.options.classes.panelClosed;return this.options.theme&&(e+=" ui-body-"+this.options.theme),this.options.positionFixed&&(e+=" "+this.options.classes.panelFixed),e},_addPanelClasses:function(){this.element.addClass(this._getPanelClasses())},_bindCloseEvents:function(){var e=this;e._closeLink.on("click.panel",function(t){return t.preventDefault(),e.close(),!1}),e.element.on("click.panel","a:jqmData(ajax='false')",function(){e.close()})},_positionPanel:function(){var t=this,i=t._panelInner.outerHeight(),n=i>e.mobile.getScreenHeight();n||!t.options.positionFixed?(n&&(t._unfixPanel(),e.mobile.resetActivePageHeight(i)),t._scrollIntoView(i)):t._fixPanel()},_scrollIntoView:function(i){e(t).scrollTop()>i&&t.scrollTo(0,0)},_bindFixListener:function(){this._on(e(t),{throttledresize:"_positionPanel"})},_unbindFixListener:function(){this._off(e(t),"throttledresize")},_unfixPanel:function(){this.options.positionFixed&&e.support.fixedPosition&&this.element.removeClass(this.options.classes.panelFixed)},_fixPanel:function(){this.options.positionFixed&&e.support.fixedPosition&&this.element.addClass(this.options.classes.panelFixed)},_bindUpdateLayout:function(){var e=this;e.element.on("updatelayout",function(){e._open&&e._positionPanel()})},_bindLinkListeners:function(){var t=this;t._page.on("click.panel","a",function(i){if(this.href.split("#")[1]===t._panelID&&t._panelID!==n){i.preventDefault();var a=e(this);return a.hasClass("ui-link")||(a.addClass(e.mobile.activeBtnClass),t.element.one("panelopen panelclose",function(){a.removeClass(e.mobile.activeBtnClass)})),t.toggle(),!1}})},_bindSwipeEvents:function(){var e=this,t=e._modal?e.element.add(e._modal):e.element;e.options.swipeClose&&("left"===e.options.position?t.on("swipeleft.panel",function(){e.close()}):t.on("swiperight.panel",function(){e.close()}))},_bindPageEvents:function(){var e=this;e._page.on("panelbeforeopen",function(t){e._open&&t.target!==e.element[0]&&e.close()}).on("pagehide",function(){e._open&&e.close(!0)}).on("keyup.panel",function(t){27===t.keyCode&&e._open&&e.close()})},_open:!1,_contentWrapOpenClasses:null,_fixedToolbarOpenClasses:null,_modalOpenClasses:null,open:function(t){if(!this._open){var i=this,n=i.options,a=function(){i._page.off("panelclose"),i._page.jqmData("panel","open"),!t&&e.support.cssTransform3d&&n.animate?i.element.add(i._wrapper).on(i._transitionEndEvents,o):setTimeout(o,0),i.options.theme&&"overlay"!==i.options.display&&i._page.removeClass(i._pageTheme).addClass("ui-body-"+i.options.theme),i.element.removeClass(n.classes.panelClosed).addClass(n.classes.panelOpen),i._positionPanel(),i.options.theme&&"overlay"!==i.options.display&&i._wrapper.css("min-height",i._page.css("min-height")),i._contentWrapOpenClasses=i._getPosDisplayClasses(n.classes.contentWrap),i._wrapper.removeClass(n.classes.contentWrapClosed).addClass(i._contentWrapOpenClasses+" "+n.classes.contentWrapOpen),i._fixedToolbarOpenClasses=i._getPosDisplayClasses(n.classes.contentFixedToolbar),i._fixedToolbar.removeClass(n.classes.contentFixedToolbarClosed).addClass(i._fixedToolbarOpenClasses+" "+n.classes.contentFixedToolbarOpen),i._modalOpenClasses=i._getPosDisplayClasses(n.classes.modal)+" "+n.classes.modalOpen,i._modal&&i._modal.addClass(i._modalOpenClasses)},o=function(){i.element.add(i._wrapper).off(i._transitionEndEvents,o),i._page.addClass(n.classes.pagePanelOpen),i._bindFixListener(),i._trigger("open")};0>this.element.closest(".ui-page-active").length&&(t=!0),i._trigger("beforeopen"),"open"===i._page.jqmData("panel")?i._page.on("panelclose",function(){a()}):a(),i._open=!0}},close:function(t){if(this._open){var i=this.options,n=this,a=function(){!t&&e.support.cssTransform3d&&i.animate?n.element.add(n._wrapper).on(n._transitionEndEvents,o):setTimeout(o,0),n._page.removeClass(i.classes.pagePanelOpen),n.element.removeClass(i.classes.panelOpen),n._wrapper.removeClass(i.classes.contentWrapOpen),n._fixedToolbar.removeClass(i.classes.contentFixedToolbarOpen),n._modal&&n._modal.removeClass(n._modalOpenClasses)},o=function(){n.options.theme&&"overlay"!==n.options.display&&(n._page.removeClass("ui-body-"+n.options.theme).addClass(n._pageTheme),n._wrapper.css("min-height","")),n.element.add(n._wrapper).off(n._transitionEndEvents,o),n.element.addClass(i.classes.panelClosed),n._wrapper.removeClass(n._contentWrapOpenClasses).addClass(i.classes.contentWrapClosed),n._fixedToolbar.removeClass(n._fixedToolbarOpenClasses).addClass(i.classes.contentFixedToolbarClosed),n._fixPanel(),n._unbindFixListener(),e.mobile.resetActivePageHeight(),n._page.jqmRemoveData("panel"),n._trigger("close")};0>this.element.closest(".ui-page-active").length&&(t=!0),n._trigger("beforeclose"),a(),n._open=!1}},toggle:function(){this[this._open?"close":"open"]()},_transitionEndEvents:"webkitTransitionEnd oTransitionEnd otransitionend transitionend msTransitionEnd",_destroy:function(){var t=this.options.classes,i=this.options.theme,n=this.element.siblings("."+t.panel).length;n?this._open&&(this._wrapper.removeClass(t.contentWrapOpen),this._fixedToolbar.removeClass(t.contentFixedToolbarOpen),this._page.jqmRemoveData("panel"),this._page.removeClass(t.pagePanelOpen),i&&this._page.removeClass("ui-body-"+i).addClass(this._pageTheme)):(this._wrapper.children().unwrap(),this._page.find("a").unbind("panelopen panelclose"),this._page.removeClass(t.pagePanel),this._open&&(this._page.jqmRemoveData("panel"),this._page.removeClass(t.pagePanelOpen),i&&this._page.removeClass("ui-body-"+i).addClass(this._pageTheme),e.mobile.resetActivePageHeight())),this._panelInner.children().unwrap(),this.element.removeClass([this._getPanelClasses(),t.panelAnimate].join(" ")).off("swipeleft.panel swiperight.panel").off("panelbeforeopen").off("panelhide").off("keyup.panel").off("updatelayout"),this._closeLink.off("click.panel"),this._modal&&this._modal.remove(),this.element.off(this._transitionEndEvents).removeClass([t.panelUnfixed,t.panelClosed,t.panelOpen].join(" "))}}),e(i).bind("pagecreate create",function(t){e.mobile.panel.prototype.enhanceWithin(t.target)})}(e),function(e,t){e.widget("mobile.table",e.mobile.widget,{options:{classes:{table:"ui-table"},initSelector:":jqmData(role='table')"},_create:function(){var e=this;e.refresh(!0)},refresh:function(i){var n=this,a=this.element.find("thead tr");i&&this.element.addClass(this.options.classes.table),n.headers=this.element.find("tr:eq(0)").children(),n.allHeaders=n.headers.add(a.children()),a.each(function(){var o=0;e(this).children().each(function(){var s=parseInt(e(this).attr("colspan"),10),r=":nth-child("+(o+1)+")";if(e(this).jqmData("colstart",o+1),s)for(var l=0;s-1>l;l++)o++,r+=", :nth-child("+(o+1)+")";i===t&&e(this).jqmData("cells",""),e(this).jqmData("cells",n.element.find("tr").not(a.eq(0)).not(this).children(r)),o++})}),i===t&&this.element.trigger("refresh")}}),e.mobile.document.bind("pagecreate create",function(t){e.mobile.table.prototype.enhanceWithin(t.target)})}(e),function(e,t){e.mobile.table.prototype.options.mode="columntoggle",e.mobile.table.prototype.options.columnBtnTheme=null,e.mobile.table.prototype.options.columnPopupTheme=null,e.mobile.table.prototype.options.columnBtnText="Columns...",e.mobile.table.prototype.options.classes=e.extend(e.mobile.table.prototype.options.classes,{popup:"ui-table-columntoggle-popup",columnBtn:"ui-table-columntoggle-btn",priorityPrefix:"ui-table-priority-",columnToggleTable:"ui-table-columntoggle"}),e.mobile.document.delegate(":jqmData(role='table')","tablecreate refresh",function(i){var n,a,o,s,r=e(this),l=r.data("mobile-table"),d=i.type,c=l.options,h=e.mobile.ns,u=(r.attr("id")||c.classes.popup)+"-popup";"columntoggle"===c.mode&&("refresh"!==d&&(l.element.addClass(c.classes.columnToggleTable),n=e(""+c.columnBtnText+""),a=e(""),o=e("")),l.headers.not("td").each(function(t){var i=e(this).jqmData("priority"),n=e(this).add(e(this).jqmData("cells"));i&&(n.addClass(c.classes.priorityPrefix+i),"refresh"!==d?e(""+e(this).text()+"").appendTo(o).children(0).jqmData("cells",n).checkboxradio({theme:c.columnPopupTheme}):e("#"+u+" fieldset div:eq("+t+")").find("input").jqmData("cells",n))}),"refresh"!==d&&o.appendTo(a),s=o===t?e("#"+u+" fieldset"):o,"refresh"!==d&&(s.on("change","input",function(){this.checked?e(this).jqmData("cells").removeClass("ui-table-cell-hidden").addClass("ui-table-cell-visible"):e(this).jqmData("cells").removeClass("ui-table-cell-visible").addClass("ui-table-cell-hidden")}),n.insertBefore(r).buttonMarkup({theme:c.columnBtnTheme}),a.insertBefore(r).popup()),l.update=function(){s.find("input").each(function(){this.checked?(this.checked="table-cell"===e(this).jqmData("cells").eq(0).css("display"),"refresh"===d&&e(this).jqmData("cells").addClass("ui-table-cell-visible")):e(this).jqmData("cells").addClass("ui-table-cell-hidden"),e(this).checkboxradio("refresh")})},e.mobile.window.on("throttledresize",l.update),l.update())})}(e),function(e){e.mobile.table.prototype.options.mode="reflow",e.mobile.table.prototype.options.classes=e.extend(e.mobile.table.prototype.options.classes,{reflowTable:"ui-table-reflow",cellLabels:"ui-table-cell-label"}),e.mobile.document.delegate(":jqmData(role='table')","tablecreate refresh",function(t){var i=e(this),n=t.type,a=i.data("mobile-table"),o=a.options;if("reflow"===o.mode){"refresh"!==n&&a.element.addClass(o.classes.reflowTable);var s=e(a.allHeaders.get().reverse());s.each(function(){var t=e(this).jqmData("cells"),i=e(this).jqmData("colstart"),n=t.not(this).filter("thead th").length&&" ui-table-cell-label-top",a=e(this).text();if(""!==a)if(n){var s=parseInt(e(this).attr("colspan"),10),r="";s&&(r="td:nth-child("+s+"n + "+i+")"),t.filter(r).prepend(""+a+"")}else t.prepend(""+a+"")})}})}(e),function(e,t){function i(e){o=e.originalEvent,d=o.accelerationIncludingGravity,s=Math.abs(d.x),r=Math.abs(d.y),l=Math.abs(d.z),!t.orientation&&(s>7||(l>6&&8>r||8>l&&r>6)&&s>5)?c.enabled&&c.disable():c.enabled||c.enable()}e.mobile.iosorientationfixEnabled=!0;var a=navigator.userAgent;if(!(/iPhone|iPad|iPod/.test(navigator.platform)&&/OS [1-5]_[0-9_]* like Mac OS X/i.test(a)&&a.indexOf("AppleWebKit")>-1))return e.mobile.iosorientationfixEnabled=!1,n;var o,s,r,l,d,c=e.mobile.zoom;e.mobile.document.on("mobileinit",function(){e.mobile.iosorientationfixEnabled&&e.mobile.window.bind("orientationchange.iosorientationfix",c.enable).bind("devicemotion.iosorientationfix",i)})}(e,this),function(e,t){function n(){a.removeClass("ui-mobile-rendering")}var a=e("html"),o=(e("head"),e.mobile.window);e(t.document).trigger("mobileinit"),e.mobile.gradeA()&&(e.mobile.ajaxBlacklist&&(e.mobile.ajaxEnabled=!1),a.addClass("ui-mobile ui-mobile-rendering"),setTimeout(n,5e3),e.extend(e.mobile,{initializePage:function(){var t=e.mobile.path,a=e(":jqmData(role='page'), :jqmData(role='dialog')"),s=t.stripHash(t.stripQueryParams(t.parseLocation().hash)),r=i.getElementById(s);a.length||(a=e("body").wrapInner("").children(0)),a.each(function(){var t=e(this);t.jqmData("url")||t.attr("data-"+e.mobile.ns+"url",t.attr("id")||location.pathname+location.search)}),e.mobile.firstPage=a.first(),e.mobile.pageContainer=e.mobile.firstPage.parent().addClass("ui-mobile-viewport"),o.trigger("pagecontainercreate"),e.mobile.showPageLoadingMsg(),n(),e.mobile.hashListeningEnabled&&e.mobile.path.isHashValid(location.hash)&&(e(r).is(':jqmData(role="page")')||e.mobile.path.isPath(s)||s===e.mobile.dialogHashKey)?e.event.special.navigate.isPushStateEnabled()?(e.mobile.navigate.history.stack=[],e.mobile.navigate(e.mobile.path.isPath(location.hash)?location.hash:location.href)):o.trigger("hashchange",[!0]):(e.mobile.path.isHashValid(location.hash)&&(e.mobile.urlHistory.initialDst=s.replace("#","")),e.event.special.navigate.isPushStateEnabled()&&e.mobile.navigate.navigator.squash(t.parseLocation().href),e.mobile.changePage(e.mobile.firstPage,{transition:"none",reverse:!0,changeHash:!1,fromHashChange:!0}))}}),e.mobile.navreadyDeferred.resolve(),e(function(){t.scrollTo(0,1),e.mobile.defaultHomeScroll=e.support.scrollTop&&1!==e.mobile.window.scrollTop()?1:0,e.mobile.autoInitializePage&&e.mobile.initializePage(),o.load(e.mobile.silentScroll),e.support.cssPointerEvents||e.mobile.document.delegate(".ui-disabled","vclick",function(e){e.preventDefault(),e.stopImmediatePropagation()})}))}(e,this)}); -//@ sourceMappingURL=jquery.mobile-1.3.1.min.map \ No newline at end of file diff --git a/themes/smartpocket/js/klass.min.js b/themes/smartpocket/js/klass.min.js deleted file mode 100644 index 771a1b764..000000000 --- a/themes/smartpocket/js/klass.min.js +++ /dev/null @@ -1,8 +0,0 @@ -/** - * Klass.js - copyright @dedfat - * version 1.0 - * https://github.com/ded/klass - * Follow our software http://twitter.com/dedfat :) - * MIT License - */ -!function(a,b){function j(a,b){function c(){}c[e]=this[e];var d=this,g=new c,h=f(a),j=h?a:this,k=h?{}:a,l=function(){this.initialize?this.initialize.apply(this,arguments):(b||h&&d.apply(this,arguments),j.apply(this,arguments))};l.methods=function(a){i(g,a,d),l[e]=g;return this},l.methods.call(l,k).prototype.constructor=l,l.extend=arguments.callee,l[e].implement=l.statics=function(a,b){a=typeof a=="string"?function(){var c={};c[a]=b;return c}():a,i(this,a,d);return this};return l}function i(a,b,d){for(var g in b)b.hasOwnProperty(g)&&(a[g]=f(b[g])&&f(d[e][g])&&c.test(b[g])?h(g,b[g],d):b[g])}function h(a,b,c){return function(){var d=this.supr;this.supr=c[e][a];var f=b.apply(this,arguments);this.supr=d;return f}}function g(a){return j.call(f(a)?a:d,a,1)}var c=/xyz/.test(function(){xyz})?/\bsupr\b/:/.*/,d=function(){},e="prototype",f=function(a){return typeof a===b};if(typeof module!="undefined"&&module.exports)module.exports=g;else{var k=a.klass;g.noConflict=function(){a.klass=k;return this},a.klass=g}}(this,"function") diff --git a/themes/smartpocket/js/smartpocket.js b/themes/smartpocket/js/smartpocket.js deleted file mode 100644 index ee87a44d7..000000000 --- a/themes/smartpocket/js/smartpocket.js +++ /dev/null @@ -1,49 +0,0 @@ -(function(window, $, PhotoSwipe){ - $(document).ready(function(){ - var more_link - var options = { - jQueryMobile: true, - loop: var_loop, - captionAndToolbarAutoHideDelay: var_autohide, - imageScaleMethod: "fitNoUpscale", - getToolbar: function(){ -return ''+var_trad+'';}, - getImageMetaData:function(el){ - return { - picture_url: $(el).attr('data-picture-url'), - image_id: $(el).attr('data-image-id'), - };} - }; - var myPhotoSwipe = $(".thumbnails a").photoSwipe(options); - // onShow - store a reference to our "more_link" button - myPhotoSwipe.addEventHandler(PhotoSwipe.EventTypes.onShow, function(e){ - more_link = window.document.querySelectorAll('#more_link')[0]; - }); - // onToolbarTap - listen out for when the toolbar is tapped - myPhotoSwipe.addEventHandler(PhotoSwipe.EventTypes.onToolbarTap, function(e){ - if (e.toolbarAction === PhotoSwipe.Toolbar.ToolbarAction.none){ - if (e.tapTarget === more_link || Util.DOM.isChildOf(e.tapTarget, more_link)){ - var currentImage = myPhotoSwipe.getCurrentImage(); - window.location=currentImage.metaData.picture_url; - } - } - }); - - myPhotoSwipe.addEventHandler(PhotoSwipe.EventTypes.onDisplayImage, function(e) { - var currentImage = myPhotoSwipe.getCurrentImage(); - - jQuery.ajax({ - type: "POST", - url: 'ws.php?format=json&method=smartpocket.images.logHistory', - data: { - image_id:currentImage.metaData.image_id, - cat_id:jQuery("ul.thumbnails").data("cat_id"), - section:jQuery("ul.thumbnails").data("section"), - tags_string:jQuery("ul.thumbnails").data("tags_string"), - } - }); - }); - - var spThumbs = new SPThumbs(SPThumbsOpts); - }); -}(window, window.jQuery, window.Code.PhotoSwipe)); diff --git a/themes/smartpocket/js/thumb.arrange.js b/themes/smartpocket/js/thumb.arrange.js deleted file mode 100644 index f43c5d824..000000000 --- a/themes/smartpocket/js/thumb.arrange.js +++ /dev/null @@ -1,170 +0,0 @@ - -function SPTLine(margin, rowHeight) { - this.elements = new Array; - this.margin = margin; - this.rowHeight = rowHeight; - this.maxHeight = 0; -} - -SPTLine.prototype = { - width: 0, - elementsWidth: 0, - firstThumbIndex: 0, - - add: function($elt, absIndex) { - if (this.elements.length === 0) - this.firstThumbIndex = absIndex; - if (!$elt.data("w")) - { - var w=$elt.width(), h=$elt.height(); - if (h > this.rowHeight) { - w = Math.round(w * this.rowHeight/h); - h = this.rowHeight; - } - $elt.data("w", w) - .data("h", h); - } - - var eltObj = { - $elt: $elt, - w: $elt.data("w"), - h: $elt.data("h") - }; - this.elements.push(eltObj); - - if (eltObj.h > this.maxHeight) - this.maxHeight = eltObj.h; - - this.width += this.margin + eltObj.w; - this.elementsWidth += eltObj.w; - }, - - clear: function() { - if (!this.elements.length) return; - this.width = this.elementsWidth = 0; - this.maxHeight = 0; - this.elements.length = 0; - } -} - - -function SPThumbs(options) { - this.opts = options; - - this.$thumbs = $('.thumbnails'); - if (this.$thumbs.length==0) return; - this.$thumbs.css('text-align', 'left'); - - this.opts.extraRowHeight = 0; - if (window.devicePixelRatio > 1) { - var dpr = window.devicePixelRatio; - this.opts.extraRowHeight = 6; /*loose sharpness but only for small screens when we could "almost" fit with full sharpness*/ - this.opts.rowHeight = Math.round(this.opts.rowHeight / dpr ) + this.opts.extraRowHeight; - } - this.process(); - - var that = this; - $(window).on('resize', function() { - if (Math.abs(that.$thumbs.width() - that.prevContainerWidth)>1) - that.process(); - }) - .on('RVTS_loaded', function(evt, down) { - that.process( down && that.$thumbs.width() == that.prevContainerWidth ? that.prevLastLineFirstThumbIndex : 0); - } ); -} - -SPThumbs.prototype = { - prevContainerWidth:0, - prevLastLineFirstThumbIndex: 0, - - process: function(startIndex) { - startIndex = startIndex ? startIndex : 0; - var containerWidth = this.$thumbs.width() - , maxExtraMarginPerThumb = 1; - this.prevContainerWidth = containerWidth; - - var $elts = $('li.liVisible>a>img', this.$thumbs) - , line = new SPTLine(this.opts.hMargin, this.opts.rowHeight); - - for (var i=startIndex; i<$elts.length; i++) { - var $elt = $( $elts[i] ); - - line.add($elt, i); - if (line.width >= containerWidth - maxExtraMarginPerThumb * line.elements.length) { - this.processLine(line, containerWidth); - line.clear(); - } - }; - - if(line.elements.length) - this.processLine(line, containerWidth, true); - this.prevLastLineFirstThumbIndex = line.firstThumbIndex; - }, - - processLine: function(line, containerWidth, lastLine) { - var toRecover, eltW, eltH - , rowHeight = line.maxHeight ? line.maxHeight : line.elements[0].h; - - if (line.width / containerWidth > 1.01) { - var ratio = line.elementsWidth / (line.elementsWidth + containerWidth - line.width); - var adjustedRowHeight = rowHeight / (1 + (ratio-1) * 0.95 ); - adjustedRowHeight = 6 * Math.round( adjustedRowHeight/6 ); - if (adjustedRowHeight < rowHeight / ratio ) { - adjustedRowHeight = Math.ceil( rowHeight / ratio ); - var missing = this.opts.rowHeight - this.opts.extraRowHeight - adjustedRowHeight; - if (missing>0 && missing<6) - adjustedRowHeight += missing; - } - if (adjustedRowHeight < rowHeight) - rowHeight = adjustedRowHeight; - } - else if (lastLine) - rowHeight = Math.min( rowHeight, this.opts.rowHeight - this.opts.extraRowHeight); - - toRecover = line.width - containerWidth; - if (lastLine) - toRecover = 0; - - for(var i=0; i rowHeight ) { - eltW = Math.round( eltW * rowHeight/eltObj.h ); - eltH = rowHeight; - eltToRecover -= eltObj.w - eltW; - if (lastLine) - eltToRecover = 0; - } - - this.reposition(eltObj.$elt, eltW, eltH, eltW-eltToRecover, rowHeight); - } - }, - - reposition: function($img, imgW, imgH, liW, liH) { - $img.attr("width", imgW) - .attr("height", imgH); - - $img.closest("li").css( { - width: liW+"px", - height: liH+"px" - }); - - $img.parent("a").css( { - left: Math.round((liW-imgW)/2)+"px", - top: Math.round((liH-imgH)/2)+"px" - }); - } - -} - diff --git a/themes/smartpocket/language/ar_SA/index.php b/themes/smartpocket/language/ar_SA/index.php deleted file mode 100644 index ec6605317..000000000 --- a/themes/smartpocket/language/ar_SA/index.php +++ /dev/null @@ -1,7 +0,0 @@ - diff --git a/themes/smartpocket/language/ar_SA/theme.lang.php b/themes/smartpocket/language/ar_SA/theme.lang.php deleted file mode 100644 index 372402ad7..000000000 --- a/themes/smartpocket/language/ar_SA/theme.lang.php +++ /dev/null @@ -1,12 +0,0 @@ - diff --git a/themes/smartpocket/language/bg_BG/theme.lang.php b/themes/smartpocket/language/bg_BG/theme.lang.php deleted file mode 100644 index 205a33d3a..000000000 --- a/themes/smartpocket/language/bg_BG/theme.lang.php +++ /dev/null @@ -1,13 +0,0 @@ - \ No newline at end of file diff --git a/themes/smartpocket/language/br_FR/index.php b/themes/smartpocket/language/br_FR/index.php deleted file mode 100644 index ec6605317..000000000 --- a/themes/smartpocket/language/br_FR/index.php +++ /dev/null @@ -1,7 +0,0 @@ - diff --git a/themes/smartpocket/language/br_FR/theme.lang.php b/themes/smartpocket/language/br_FR/theme.lang.php deleted file mode 100644 index 05eae241e..000000000 --- a/themes/smartpocket/language/br_FR/theme.lang.php +++ /dev/null @@ -1,13 +0,0 @@ - \ No newline at end of file diff --git a/themes/smartpocket/language/ca_ES/index.php b/themes/smartpocket/language/ca_ES/index.php deleted file mode 100644 index ec6605317..000000000 --- a/themes/smartpocket/language/ca_ES/index.php +++ /dev/null @@ -1,7 +0,0 @@ - diff --git a/themes/smartpocket/language/ca_ES/theme.lang.php b/themes/smartpocket/language/ca_ES/theme.lang.php deleted file mode 100644 index db36f9b9f..000000000 --- a/themes/smartpocket/language/ca_ES/theme.lang.php +++ /dev/null @@ -1,13 +0,0 @@ - \ No newline at end of file diff --git a/themes/smartpocket/language/cs_CZ/index.php b/themes/smartpocket/language/cs_CZ/index.php deleted file mode 100644 index c01bbd832..000000000 --- a/themes/smartpocket/language/cs_CZ/index.php +++ /dev/null @@ -1,15 +0,0 @@ - diff --git a/themes/smartpocket/language/cs_CZ/theme.lang.php b/themes/smartpocket/language/cs_CZ/theme.lang.php deleted file mode 100644 index 58f46876a..000000000 --- a/themes/smartpocket/language/cs_CZ/theme.lang.php +++ /dev/null @@ -1,7 +0,0 @@ - \ No newline at end of file diff --git a/themes/smartpocket/language/da_DK/index.php b/themes/smartpocket/language/da_DK/index.php deleted file mode 100644 index ec6605317..000000000 --- a/themes/smartpocket/language/da_DK/index.php +++ /dev/null @@ -1,7 +0,0 @@ - diff --git a/themes/smartpocket/language/da_DK/theme.lang.php b/themes/smartpocket/language/da_DK/theme.lang.php deleted file mode 100644 index 716e0b1c9..000000000 --- a/themes/smartpocket/language/da_DK/theme.lang.php +++ /dev/null @@ -1,13 +0,0 @@ - \ No newline at end of file diff --git a/themes/smartpocket/language/de_DE/index.php b/themes/smartpocket/language/de_DE/index.php deleted file mode 100644 index ec6605317..000000000 --- a/themes/smartpocket/language/de_DE/index.php +++ /dev/null @@ -1,7 +0,0 @@ - diff --git a/themes/smartpocket/language/de_DE/theme.lang.php b/themes/smartpocket/language/de_DE/theme.lang.php deleted file mode 100644 index 182df69a7..000000000 --- a/themes/smartpocket/language/de_DE/theme.lang.php +++ /dev/null @@ -1,12 +0,0 @@ - diff --git a/themes/smartpocket/language/el_GR/theme.lang.php b/themes/smartpocket/language/el_GR/theme.lang.php deleted file mode 100644 index 7d174dcbe..000000000 --- a/themes/smartpocket/language/el_GR/theme.lang.php +++ /dev/null @@ -1,13 +0,0 @@ - \ No newline at end of file diff --git a/themes/smartpocket/language/en_UK/index.php b/themes/smartpocket/language/en_UK/index.php deleted file mode 100644 index c01bbd832..000000000 --- a/themes/smartpocket/language/en_UK/index.php +++ /dev/null @@ -1,15 +0,0 @@ - diff --git a/themes/smartpocket/language/en_UK/theme.lang.php b/themes/smartpocket/language/en_UK/theme.lang.php deleted file mode 100644 index 51aabe3fd..000000000 --- a/themes/smartpocket/language/en_UK/theme.lang.php +++ /dev/null @@ -1,7 +0,0 @@ - \ No newline at end of file diff --git a/themes/smartpocket/language/eo_EO/index.php b/themes/smartpocket/language/eo_EO/index.php deleted file mode 100644 index ec6605317..000000000 --- a/themes/smartpocket/language/eo_EO/index.php +++ /dev/null @@ -1,7 +0,0 @@ - diff --git a/themes/smartpocket/language/eo_EO/theme.lang.php b/themes/smartpocket/language/eo_EO/theme.lang.php deleted file mode 100644 index fa20fc806..000000000 --- a/themes/smartpocket/language/eo_EO/theme.lang.php +++ /dev/null @@ -1,13 +0,0 @@ - \ No newline at end of file diff --git a/themes/smartpocket/language/es_ES/index.php b/themes/smartpocket/language/es_ES/index.php deleted file mode 100644 index ec6605317..000000000 --- a/themes/smartpocket/language/es_ES/index.php +++ /dev/null @@ -1,7 +0,0 @@ - diff --git a/themes/smartpocket/language/es_ES/theme.lang.php b/themes/smartpocket/language/es_ES/theme.lang.php deleted file mode 100644 index bf2ab9e3d..000000000 --- a/themes/smartpocket/language/es_ES/theme.lang.php +++ /dev/null @@ -1,13 +0,0 @@ - \ No newline at end of file diff --git a/themes/smartpocket/language/es_MX/index.php b/themes/smartpocket/language/es_MX/index.php deleted file mode 100644 index ec6605317..000000000 --- a/themes/smartpocket/language/es_MX/index.php +++ /dev/null @@ -1,7 +0,0 @@ - diff --git a/themes/smartpocket/language/es_MX/theme.lang.php b/themes/smartpocket/language/es_MX/theme.lang.php deleted file mode 100644 index ed3c47c50..000000000 --- a/themes/smartpocket/language/es_MX/theme.lang.php +++ /dev/null @@ -1,12 +0,0 @@ - diff --git a/themes/smartpocket/language/et_EE/theme.lang.php b/themes/smartpocket/language/et_EE/theme.lang.php deleted file mode 100644 index 39d9ad72b..000000000 --- a/themes/smartpocket/language/et_EE/theme.lang.php +++ /dev/null @@ -1,13 +0,0 @@ - \ No newline at end of file diff --git a/themes/smartpocket/language/eu_ES/theme.lang.php b/themes/smartpocket/language/eu_ES/theme.lang.php deleted file mode 100644 index ce2b8f727..000000000 --- a/themes/smartpocket/language/eu_ES/theme.lang.php +++ /dev/null @@ -1,12 +0,0 @@ - diff --git a/themes/smartpocket/language/fa_IR/theme.lang.php b/themes/smartpocket/language/fa_IR/theme.lang.php deleted file mode 100644 index 3dc2ce246..000000000 --- a/themes/smartpocket/language/fa_IR/theme.lang.php +++ /dev/null @@ -1,13 +0,0 @@ - \ No newline at end of file diff --git a/themes/smartpocket/language/fi_FI/index.php b/themes/smartpocket/language/fi_FI/index.php deleted file mode 100644 index ec6605317..000000000 --- a/themes/smartpocket/language/fi_FI/index.php +++ /dev/null @@ -1,7 +0,0 @@ - diff --git a/themes/smartpocket/language/fi_FI/theme.lang.php b/themes/smartpocket/language/fi_FI/theme.lang.php deleted file mode 100644 index e44ecce1d..000000000 --- a/themes/smartpocket/language/fi_FI/theme.lang.php +++ /dev/null @@ -1,13 +0,0 @@ - \ No newline at end of file diff --git a/themes/smartpocket/language/fr_CA/index.php b/themes/smartpocket/language/fr_CA/index.php deleted file mode 100644 index c01bbd832..000000000 --- a/themes/smartpocket/language/fr_CA/index.php +++ /dev/null @@ -1,15 +0,0 @@ - diff --git a/themes/smartpocket/language/fr_CA/theme.lang.php b/themes/smartpocket/language/fr_CA/theme.lang.php deleted file mode 100644 index 322ac7714..000000000 --- a/themes/smartpocket/language/fr_CA/theme.lang.php +++ /dev/null @@ -1,7 +0,0 @@ - \ No newline at end of file diff --git a/themes/smartpocket/language/fr_FR/index.php b/themes/smartpocket/language/fr_FR/index.php deleted file mode 100644 index c01bbd832..000000000 --- a/themes/smartpocket/language/fr_FR/index.php +++ /dev/null @@ -1,15 +0,0 @@ - diff --git a/themes/smartpocket/language/fr_FR/theme.lang.php b/themes/smartpocket/language/fr_FR/theme.lang.php deleted file mode 100644 index 322ac7714..000000000 --- a/themes/smartpocket/language/fr_FR/theme.lang.php +++ /dev/null @@ -1,7 +0,0 @@ - \ No newline at end of file diff --git a/themes/smartpocket/language/gl_ES/index.php b/themes/smartpocket/language/gl_ES/index.php deleted file mode 100644 index ec6605317..000000000 --- a/themes/smartpocket/language/gl_ES/index.php +++ /dev/null @@ -1,7 +0,0 @@ - diff --git a/themes/smartpocket/language/gl_ES/theme.lang.php b/themes/smartpocket/language/gl_ES/theme.lang.php deleted file mode 100644 index 927efe911..000000000 --- a/themes/smartpocket/language/gl_ES/theme.lang.php +++ /dev/null @@ -1,12 +0,0 @@ - diff --git a/themes/smartpocket/language/he_IL/theme.lang.php b/themes/smartpocket/language/he_IL/theme.lang.php deleted file mode 100644 index 8a12f899f..000000000 --- a/themes/smartpocket/language/he_IL/theme.lang.php +++ /dev/null @@ -1,13 +0,0 @@ - \ No newline at end of file diff --git a/themes/smartpocket/language/hu_HU/index.php b/themes/smartpocket/language/hu_HU/index.php deleted file mode 100644 index ec6605317..000000000 --- a/themes/smartpocket/language/hu_HU/index.php +++ /dev/null @@ -1,7 +0,0 @@ - diff --git a/themes/smartpocket/language/hu_HU/theme.lang.php b/themes/smartpocket/language/hu_HU/theme.lang.php deleted file mode 100644 index fd29852cd..000000000 --- a/themes/smartpocket/language/hu_HU/theme.lang.php +++ /dev/null @@ -1,12 +0,0 @@ - diff --git a/themes/smartpocket/language/it_IT/theme.lang.php b/themes/smartpocket/language/it_IT/theme.lang.php deleted file mode 100644 index fd6de237e..000000000 --- a/themes/smartpocket/language/it_IT/theme.lang.php +++ /dev/null @@ -1,13 +0,0 @@ - \ No newline at end of file diff --git a/themes/smartpocket/language/ja_JP/index.php b/themes/smartpocket/language/ja_JP/index.php deleted file mode 100644 index ec6605317..000000000 --- a/themes/smartpocket/language/ja_JP/index.php +++ /dev/null @@ -1,7 +0,0 @@ - diff --git a/themes/smartpocket/language/ja_JP/theme.lang.php b/themes/smartpocket/language/ja_JP/theme.lang.php deleted file mode 100644 index 07925a97c..000000000 --- a/themes/smartpocket/language/ja_JP/theme.lang.php +++ /dev/null @@ -1,12 +0,0 @@ - diff --git a/themes/smartpocket/language/km_KH/theme.lang.php b/themes/smartpocket/language/km_KH/theme.lang.php deleted file mode 100644 index 85c1bcc3a..000000000 --- a/themes/smartpocket/language/km_KH/theme.lang.php +++ /dev/null @@ -1,13 +0,0 @@ - \ No newline at end of file diff --git a/themes/smartpocket/language/lt_LT/index.php b/themes/smartpocket/language/lt_LT/index.php deleted file mode 100644 index ec6605317..000000000 --- a/themes/smartpocket/language/lt_LT/index.php +++ /dev/null @@ -1,7 +0,0 @@ - diff --git a/themes/smartpocket/language/lt_LT/theme.lang.php b/themes/smartpocket/language/lt_LT/theme.lang.php deleted file mode 100644 index 4cdf165ee..000000000 --- a/themes/smartpocket/language/lt_LT/theme.lang.php +++ /dev/null @@ -1,13 +0,0 @@ - \ No newline at end of file diff --git a/themes/smartpocket/language/lv_LV/index.php b/themes/smartpocket/language/lv_LV/index.php deleted file mode 100644 index ec6605317..000000000 --- a/themes/smartpocket/language/lv_LV/index.php +++ /dev/null @@ -1,7 +0,0 @@ - diff --git a/themes/smartpocket/language/lv_LV/theme.lang.php b/themes/smartpocket/language/lv_LV/theme.lang.php deleted file mode 100644 index b8a76a206..000000000 --- a/themes/smartpocket/language/lv_LV/theme.lang.php +++ /dev/null @@ -1,13 +0,0 @@ - \ No newline at end of file diff --git a/themes/smartpocket/language/mn_MN/index.php b/themes/smartpocket/language/mn_MN/index.php deleted file mode 100644 index ec6605317..000000000 --- a/themes/smartpocket/language/mn_MN/index.php +++ /dev/null @@ -1,7 +0,0 @@ - diff --git a/themes/smartpocket/language/mn_MN/theme.lang.php b/themes/smartpocket/language/mn_MN/theme.lang.php deleted file mode 100644 index fdfcba58a..000000000 --- a/themes/smartpocket/language/mn_MN/theme.lang.php +++ /dev/null @@ -1,13 +0,0 @@ - \ No newline at end of file diff --git a/themes/smartpocket/language/nb_NO/index.php b/themes/smartpocket/language/nb_NO/index.php deleted file mode 100644 index ec6605317..000000000 --- a/themes/smartpocket/language/nb_NO/index.php +++ /dev/null @@ -1,7 +0,0 @@ - diff --git a/themes/smartpocket/language/nb_NO/theme.lang.php b/themes/smartpocket/language/nb_NO/theme.lang.php deleted file mode 100644 index 118b984fb..000000000 --- a/themes/smartpocket/language/nb_NO/theme.lang.php +++ /dev/null @@ -1,13 +0,0 @@ - \ No newline at end of file diff --git a/themes/smartpocket/language/nl_NL/index.php b/themes/smartpocket/language/nl_NL/index.php deleted file mode 100644 index ec6605317..000000000 --- a/themes/smartpocket/language/nl_NL/index.php +++ /dev/null @@ -1,7 +0,0 @@ - diff --git a/themes/smartpocket/language/nl_NL/theme.lang.php b/themes/smartpocket/language/nl_NL/theme.lang.php deleted file mode 100644 index c14ff5708..000000000 --- a/themes/smartpocket/language/nl_NL/theme.lang.php +++ /dev/null @@ -1,12 +0,0 @@ - diff --git a/themes/smartpocket/language/nn_NO/theme.lang.php b/themes/smartpocket/language/nn_NO/theme.lang.php deleted file mode 100644 index 8e58c2912..000000000 --- a/themes/smartpocket/language/nn_NO/theme.lang.php +++ /dev/null @@ -1,13 +0,0 @@ - \ No newline at end of file diff --git a/themes/smartpocket/language/pl_PL/index.php b/themes/smartpocket/language/pl_PL/index.php deleted file mode 100644 index ec6605317..000000000 --- a/themes/smartpocket/language/pl_PL/index.php +++ /dev/null @@ -1,7 +0,0 @@ - diff --git a/themes/smartpocket/language/pl_PL/theme.lang.php b/themes/smartpocket/language/pl_PL/theme.lang.php deleted file mode 100644 index 932e96448..000000000 --- a/themes/smartpocket/language/pl_PL/theme.lang.php +++ /dev/null @@ -1,12 +0,0 @@ - diff --git a/themes/smartpocket/language/pt_BR/theme.lang.php b/themes/smartpocket/language/pt_BR/theme.lang.php deleted file mode 100644 index 0823ac64d..000000000 --- a/themes/smartpocket/language/pt_BR/theme.lang.php +++ /dev/null @@ -1,13 +0,0 @@ - \ No newline at end of file diff --git a/themes/smartpocket/language/pt_PT/index.php b/themes/smartpocket/language/pt_PT/index.php deleted file mode 100644 index ec6605317..000000000 --- a/themes/smartpocket/language/pt_PT/index.php +++ /dev/null @@ -1,7 +0,0 @@ - diff --git a/themes/smartpocket/language/pt_PT/theme.lang.php b/themes/smartpocket/language/pt_PT/theme.lang.php deleted file mode 100644 index c768a4f37..000000000 --- a/themes/smartpocket/language/pt_PT/theme.lang.php +++ /dev/null @@ -1,13 +0,0 @@ - \ No newline at end of file diff --git a/themes/smartpocket/language/ro_RO/index.php b/themes/smartpocket/language/ro_RO/index.php deleted file mode 100644 index ec6605317..000000000 --- a/themes/smartpocket/language/ro_RO/index.php +++ /dev/null @@ -1,7 +0,0 @@ - diff --git a/themes/smartpocket/language/ro_RO/theme.lang.php b/themes/smartpocket/language/ro_RO/theme.lang.php deleted file mode 100644 index 6526b85ce..000000000 --- a/themes/smartpocket/language/ro_RO/theme.lang.php +++ /dev/null @@ -1,13 +0,0 @@ - \ No newline at end of file diff --git a/themes/smartpocket/language/ru_RU/index.php b/themes/smartpocket/language/ru_RU/index.php deleted file mode 100644 index ec6605317..000000000 --- a/themes/smartpocket/language/ru_RU/index.php +++ /dev/null @@ -1,7 +0,0 @@ - diff --git a/themes/smartpocket/language/ru_RU/theme.lang.php b/themes/smartpocket/language/ru_RU/theme.lang.php deleted file mode 100644 index 61317b0b2..000000000 --- a/themes/smartpocket/language/ru_RU/theme.lang.php +++ /dev/null @@ -1,13 +0,0 @@ - \ No newline at end of file diff --git a/themes/smartpocket/language/sh_RS/index.php b/themes/smartpocket/language/sh_RS/index.php deleted file mode 100644 index ec6605317..000000000 --- a/themes/smartpocket/language/sh_RS/index.php +++ /dev/null @@ -1,7 +0,0 @@ - diff --git a/themes/smartpocket/language/sh_RS/theme.lang.php b/themes/smartpocket/language/sh_RS/theme.lang.php deleted file mode 100644 index e68ba94e9..000000000 --- a/themes/smartpocket/language/sh_RS/theme.lang.php +++ /dev/null @@ -1,12 +0,0 @@ - diff --git a/themes/smartpocket/language/sk_SK/theme.lang.php b/themes/smartpocket/language/sk_SK/theme.lang.php deleted file mode 100644 index 8657d2def..000000000 --- a/themes/smartpocket/language/sk_SK/theme.lang.php +++ /dev/null @@ -1,13 +0,0 @@ - \ No newline at end of file diff --git a/themes/smartpocket/language/sl_SI/index.php b/themes/smartpocket/language/sl_SI/index.php deleted file mode 100644 index ec6605317..000000000 --- a/themes/smartpocket/language/sl_SI/index.php +++ /dev/null @@ -1,7 +0,0 @@ - diff --git a/themes/smartpocket/language/sl_SI/theme.lang.php b/themes/smartpocket/language/sl_SI/theme.lang.php deleted file mode 100644 index 20bec98a7..000000000 --- a/themes/smartpocket/language/sl_SI/theme.lang.php +++ /dev/null @@ -1,13 +0,0 @@ - \ No newline at end of file diff --git a/themes/smartpocket/language/sr_RS/index.php b/themes/smartpocket/language/sr_RS/index.php deleted file mode 100644 index ec6605317..000000000 --- a/themes/smartpocket/language/sr_RS/index.php +++ /dev/null @@ -1,7 +0,0 @@ - diff --git a/themes/smartpocket/language/sr_RS/theme.lang.php b/themes/smartpocket/language/sr_RS/theme.lang.php deleted file mode 100644 index 7727afb3e..000000000 --- a/themes/smartpocket/language/sr_RS/theme.lang.php +++ /dev/null @@ -1,12 +0,0 @@ - diff --git a/themes/smartpocket/language/sv_SE/theme.lang.php b/themes/smartpocket/language/sv_SE/theme.lang.php deleted file mode 100644 index 556aecfcf..000000000 --- a/themes/smartpocket/language/sv_SE/theme.lang.php +++ /dev/null @@ -1,13 +0,0 @@ - \ No newline at end of file diff --git a/themes/smartpocket/language/ta_IN/index.php b/themes/smartpocket/language/ta_IN/index.php deleted file mode 100644 index ec6605317..000000000 --- a/themes/smartpocket/language/ta_IN/index.php +++ /dev/null @@ -1,7 +0,0 @@ - diff --git a/themes/smartpocket/language/ta_IN/theme.lang.php b/themes/smartpocket/language/ta_IN/theme.lang.php deleted file mode 100644 index 441ffc7d2..000000000 --- a/themes/smartpocket/language/ta_IN/theme.lang.php +++ /dev/null @@ -1,13 +0,0 @@ - \ No newline at end of file diff --git a/themes/smartpocket/language/th_TH/index.php b/themes/smartpocket/language/th_TH/index.php deleted file mode 100644 index ec6605317..000000000 --- a/themes/smartpocket/language/th_TH/index.php +++ /dev/null @@ -1,7 +0,0 @@ - diff --git a/themes/smartpocket/language/th_TH/theme.lang.php b/themes/smartpocket/language/th_TH/theme.lang.php deleted file mode 100644 index 19151f285..000000000 --- a/themes/smartpocket/language/th_TH/theme.lang.php +++ /dev/null @@ -1,12 +0,0 @@ - diff --git a/themes/smartpocket/language/tr_TR/theme.lang.php b/themes/smartpocket/language/tr_TR/theme.lang.php deleted file mode 100644 index b746f4589..000000000 --- a/themes/smartpocket/language/tr_TR/theme.lang.php +++ /dev/null @@ -1,13 +0,0 @@ - \ No newline at end of file diff --git a/themes/smartpocket/language/uk_UA/index.php b/themes/smartpocket/language/uk_UA/index.php deleted file mode 100644 index ec6605317..000000000 --- a/themes/smartpocket/language/uk_UA/index.php +++ /dev/null @@ -1,7 +0,0 @@ - diff --git a/themes/smartpocket/language/uk_UA/theme.lang.php b/themes/smartpocket/language/uk_UA/theme.lang.php deleted file mode 100644 index 59fe4b8c6..000000000 --- a/themes/smartpocket/language/uk_UA/theme.lang.php +++ /dev/null @@ -1,13 +0,0 @@ - \ No newline at end of file diff --git a/themes/smartpocket/language/vi_VN/index.php b/themes/smartpocket/language/vi_VN/index.php deleted file mode 100644 index ec6605317..000000000 --- a/themes/smartpocket/language/vi_VN/index.php +++ /dev/null @@ -1,7 +0,0 @@ - diff --git a/themes/smartpocket/language/vi_VN/theme.lang.php b/themes/smartpocket/language/vi_VN/theme.lang.php deleted file mode 100644 index 3328beb28..000000000 --- a/themes/smartpocket/language/vi_VN/theme.lang.php +++ /dev/null @@ -1,13 +0,0 @@ - \ No newline at end of file diff --git a/themes/smartpocket/language/zh_CN/index.php b/themes/smartpocket/language/zh_CN/index.php deleted file mode 100644 index ec6605317..000000000 --- a/themes/smartpocket/language/zh_CN/index.php +++ /dev/null @@ -1,7 +0,0 @@ - diff --git a/themes/smartpocket/language/zh_CN/theme.lang.php b/themes/smartpocket/language/zh_CN/theme.lang.php deleted file mode 100644 index 91ce601ec..000000000 --- a/themes/smartpocket/language/zh_CN/theme.lang.php +++ /dev/null @@ -1,13 +0,0 @@ - \ No newline at end of file diff --git a/themes/smartpocket/language/zh_HK/index.php b/themes/smartpocket/language/zh_HK/index.php deleted file mode 100644 index ec6605317..000000000 --- a/themes/smartpocket/language/zh_HK/index.php +++ /dev/null @@ -1,7 +0,0 @@ - diff --git a/themes/smartpocket/language/zh_HK/theme.lang.php b/themes/smartpocket/language/zh_HK/theme.lang.php deleted file mode 100644 index 7e0b290f7..000000000 --- a/themes/smartpocket/language/zh_HK/theme.lang.php +++ /dev/null @@ -1,13 +0,0 @@ - \ No newline at end of file diff --git a/themes/smartpocket/language/zh_TW/index.php b/themes/smartpocket/language/zh_TW/index.php deleted file mode 100644 index ec6605317..000000000 --- a/themes/smartpocket/language/zh_TW/index.php +++ /dev/null @@ -1,7 +0,0 @@ - diff --git a/themes/smartpocket/language/zh_TW/theme.lang.php b/themes/smartpocket/language/zh_TW/theme.lang.php deleted file mode 100644 index c3c5d5199..000000000 --- a/themes/smartpocket/language/zh_TW/theme.lang.php +++ /dev/null @@ -1,12 +0,0 @@ - - - {'About'|@translate} - {$ABOUT_MESSAGE} - {if isset($THEME_ABOUT) } - {$THEME_ABOUT} - {/if} - {if not empty($about_msgs)} - {foreach from=$about_msgs item=elt} - {$elt} - {/foreach} - {/if} - - diff --git a/themes/smartpocket/template/add_menu_on_public_pages.tpl b/themes/smartpocket/template/add_menu_on_public_pages.tpl deleted file mode 100644 index 7a44575d2..000000000 --- a/themes/smartpocket/template/add_menu_on_public_pages.tpl +++ /dev/null @@ -1,3 +0,0 @@ - - {$MENUBAR} -{assign var='MENUBAR' value=''} \ No newline at end of file diff --git a/themes/smartpocket/template/comment_list.tpl b/themes/smartpocket/template/comment_list.tpl deleted file mode 100644 index 1434939bf..000000000 --- a/themes/smartpocket/template/comment_list.tpl +++ /dev/null @@ -1,12 +0,0 @@ - - {'User comments'|@translate} -{foreach from=$comments item=comment name=comment_loop} - - {if !isset($from) or $from!="picture"} - {/if} - {$comment.AUTHOR} - {$comment.CONTENT} - {if !isset($from) or $from!="comment"}{/if} - -{/foreach} - diff --git a/themes/smartpocket/template/comments.tpl b/themes/smartpocket/template/comments.tpl deleted file mode 100644 index 87328d5ac..000000000 --- a/themes/smartpocket/template/comments.tpl +++ /dev/null @@ -1,9 +0,0 @@ -{include file='infos_errors.tpl'} - - -{if isset($comments)} - {include file='comment_list.tpl' comment_derivative_params=$derivative_params} -{/if} - - - diff --git a/themes/smartpocket/template/footer.tpl b/themes/smartpocket/template/footer.tpl deleted file mode 100644 index 972e8d68b..000000000 --- a/themes/smartpocket/template/footer.tpl +++ /dev/null @@ -1,31 +0,0 @@ -{if !empty($thumb_navbar)} -{include file='navigation_bar.tpl'|@get_extent:'navbar' navbar=$thumb_navbar} -{elseif !empty($navbar) and !isset($ELEMENT_CONTENT)} -{include file='navigation_bar.tpl'|@get_extent:'navbar'} -{else} - -{/if} -{footer_script require='jquery'} -document.cookie = 'screen_size='+jQuery(document).width()+'x'+jQuery(document).height()+';path={$COOKIE_PATH}'; -{/footer_script} -{get_combined_scripts load='footer'} -{if isset($footer_elements)} -{foreach $footer_elements as $v} -{$v} -{/foreach} -{/if} - - - - \ No newline at end of file diff --git a/themes/smartpocket/template/header.tpl b/themes/smartpocket/template/header.tpl deleted file mode 100644 index 8df97c3b3..000000000 --- a/themes/smartpocket/template/header.tpl +++ /dev/null @@ -1,58 +0,0 @@ - - - - - -{if isset($meta_ref) } -{if isset($INFO_AUTHOR)} - -{/if} -{if isset($related_tags)} - -{/if} -{if isset($COMMENT_IMG)} - -{else} - -{/if} -{/if} - - - -{if (isset($REVERSE) and $REVERSE and $PAGE_TITLE == l10n('Home'))} -{$GALLERY_TITLE} | {$PAGE_TITLE}{else} -{$PAGE_TITLE} | {$GALLERY_TITLE}{/if} - - -{get_combined_css} -{foreach from=$themes item=theme} -{if $theme.load_css} -{combine_css path="themes/`$theme.id`/theme.css" order=-10} -{/if} -{if !empty($theme.local_head)}{include file=$theme.local_head load_css=$theme.load_css}{/if} -{/foreach} - -{if isset($U_CANONICAL)}{/if} - -{if not empty($page_refresh) }{/if} - -{get_combined_scripts load='header'} - -{combine_script id='config' path='themes/smartpocket/js/config.js' require='jquery'} -{combine_script id='jquery.mobile' path='themes/smartpocket/js/jquery.mobile.min.js' require='jquery,config'} - - - - - -{if isset($MENUBAR)} - {$MENUBAR} -{/if} - - - - {$GALLERY_TITLE} - Menu - - - diff --git a/themes/smartpocket/template/identification.tpl b/themes/smartpocket/template/identification.tpl deleted file mode 100644 index cf29190da..000000000 --- a/themes/smartpocket/template/identification.tpl +++ /dev/null @@ -1,41 +0,0 @@ -{include file='infos_errors.tpl'} - -{'Identification'|@translate} - - - - {'Username'|@translate} - - - - - - {'Password'|@translate} - - - - {if $authorize_remembering } - - {'Auto login'|@translate} - - - {/if} - - - - - - - - - -{if isset($U_LOST_PASSWORD)} - {'Forgot your password?'|@translate} -{/if} - -{if isset($U_REGISTER)} - {'Register'|@translate} -{/if} - - - diff --git a/themes/smartpocket/template/index.tpl b/themes/smartpocket/template/index.tpl deleted file mode 100644 index 4e3159396..000000000 --- a/themes/smartpocket/template/index.tpl +++ /dev/null @@ -1,11 +0,0 @@ - -{if !empty($CATEGORIES)}{$CATEGORIES}{/if} -{if !empty($THUMBNAILS)}{$THUMBNAILS}{/if} -{if !empty($CONTENT_DESCRIPTION)} - - {$CONTENT_DESCRIPTION} - -{/if} -{if !empty($CONTENT)}{$CONTENT}{/if} - - diff --git a/themes/smartpocket/template/infos_errors.tpl b/themes/smartpocket/template/infos_errors.tpl deleted file mode 100644 index 72ae50f18..000000000 --- a/themes/smartpocket/template/infos_errors.tpl +++ /dev/null @@ -1,23 +0,0 @@ -{if isset($errors)} - - {'Error'|@translate} - Button - {''|@implode:$errors} - -{/if} - -{if not empty($infos)} - - {'Info'|@translate} - Button - {''|@implode:$infos} - -{/if} - -{footer_script}{literal} -$(document).ready(function () { - $('.close-button').click(function() { - $(this).parents('.ui-bar').remove(); - }); -}); -{/literal}{/footer_script} \ No newline at end of file diff --git a/themes/smartpocket/template/mainpage_categories.tpl b/themes/smartpocket/template/mainpage_categories.tpl deleted file mode 100644 index d1cf3cf8b..000000000 --- a/themes/smartpocket/template/mainpage_categories.tpl +++ /dev/null @@ -1,12 +0,0 @@ - -{foreach from=$category_thumbnails item=cat} - - - - {$cat.NAME} - {$cat.CAPTION_NB_IMAGES} - - -{/foreach} - - diff --git a/themes/smartpocket/template/menubar.tpl b/themes/smartpocket/template/menubar.tpl deleted file mode 100644 index dded4611f..000000000 --- a/themes/smartpocket/template/menubar.tpl +++ /dev/null @@ -1,22 +0,0 @@ - - {'Close'|@translate} - -{if !empty($blocks) } - - {foreach from=$blocks key=id item=block} - - {if not empty($block->template)} - {include file=$block->template assign=the_block|@get_extent:$id} - {$the_block|replace:'dt':'h3'|replace:'':''|replace:'':''} - {else} - {$block->raw_content|replace:'dt':'h3'|replace:'':''|replace:'':''} - {/if} - - {/foreach} - -{/if} - - - {'View in'|@translate} - {'Desktop'|@translate} - diff --git a/themes/smartpocket/template/menubar_categories.tpl b/themes/smartpocket/template/menubar_categories.tpl deleted file mode 100644 index 1fc4332f6..000000000 --- a/themes/smartpocket/template/menubar_categories.tpl +++ /dev/null @@ -1,8 +0,0 @@ -{'Albums'|@translate} - -{foreach from=$block->data.MENU_CATEGORIES item=cat} - {$cat.NAME} - {if $cat.count_images > 0}{$cat.count_images}{/if} - -{/foreach} - diff --git a/themes/smartpocket/template/menubar_identification.tpl b/themes/smartpocket/template/menubar_identification.tpl deleted file mode 100644 index 256aa77fc..000000000 --- a/themes/smartpocket/template/menubar_identification.tpl +++ /dev/null @@ -1,8 +0,0 @@ -{'Identification'|@translate} - - {if isset($U_REGISTER)}{'Register'|@translate}{/if} - {if isset($U_LOGIN)}{'Login'|@translate}{/if} - {if isset($U_LOGOUT)}{'Logout'|@translate}{/if} - {if isset($U_PROFILE)}{'Customize'|@translate}{/if} - {if isset($U_ADMIN)}{'Administration'|@translate}{/if} - diff --git a/themes/smartpocket/template/menubar_links.tpl b/themes/smartpocket/template/menubar_links.tpl deleted file mode 100644 index 6bd110032..000000000 --- a/themes/smartpocket/template/menubar_links.tpl +++ /dev/null @@ -1,11 +0,0 @@ -{'Links'|@translate} -{strip} - {foreach from=$block->data item=link} - - - {$link.LABEL} - - - {/foreach} - {/strip} - diff --git a/themes/smartpocket/template/menubar_menu.tpl b/themes/smartpocket/template/menubar_menu.tpl deleted file mode 100644 index a45c5e0c0..000000000 --- a/themes/smartpocket/template/menubar_menu.tpl +++ /dev/null @@ -1,8 +0,0 @@ -{'Menu'|@translate} - - {foreach from=$block->data item=link} - {if is_array($link)} - {$link.NAME}{if isset($link.COUNTER)}{$link.COUNTER}{/if} - {/if} - {/foreach} - \ No newline at end of file diff --git a/themes/smartpocket/template/menubar_specials.tpl b/themes/smartpocket/template/menubar_specials.tpl deleted file mode 100644 index 21bf18a7b..000000000 --- a/themes/smartpocket/template/menubar_specials.tpl +++ /dev/null @@ -1,8 +0,0 @@ -{'Specials'|@translate} - - {foreach $block->data as $key=>$link} - {if in_array($key, array("favorites","most_visited","best_rated","recent_pics","recent_cats","random")) } - {$link.NAME} - {/if} - {/foreach} - diff --git a/themes/smartpocket/template/menubar_tags.tpl b/themes/smartpocket/template/menubar_tags.tpl deleted file mode 100644 index 3f9680054..000000000 --- a/themes/smartpocket/template/menubar_tags.tpl +++ /dev/null @@ -1,12 +0,0 @@ -{'Related tags'|@translate} - - {foreach from=$block->data item=tag} - + - {else} - "{$tag.URL}" title="{'display photos linked to this tag'|@translate}"> - {/if} - {$tag.name} - {/foreach} - diff --git a/themes/smartpocket/template/navigation_bar.tpl b/themes/smartpocket/template/navigation_bar.tpl deleted file mode 100644 index 5347f6847..000000000 --- a/themes/smartpocket/template/navigation_bar.tpl +++ /dev/null @@ -1,14 +0,0 @@ -{capture}{$navbar.pages|@end}{/capture} - - -{strip} - {if isset($navbar.URL_PREV)} - {'Previous'|@translate} - {/if} - {$navbar.CURRENT_PAGE} / {$navbar.pages|@key} - {if isset($navbar.URL_NEXT)} - {'Next'|@translate} - {/if} -{/strip} - - diff --git a/themes/smartpocket/template/notification.tpl b/themes/smartpocket/template/notification.tpl deleted file mode 100644 index b38aac8e6..000000000 --- a/themes/smartpocket/template/notification.tpl +++ /dev/null @@ -1,13 +0,0 @@ -{html_head} - - -{/html_head} -{include file='infos_errors.tpl'} - - - {'Notification'|@translate} - {'The RSS notification feed provides notification on news from this website : new photos, updated albums, new comments. Use a RSS feed reader.'|@translate} - {'Photos only RSS feed'|@translate} - {'Complete RSS feed (photos, comments)'|@translate} - - diff --git a/themes/smartpocket/template/password.tpl b/themes/smartpocket/template/password.tpl deleted file mode 100755 index a45ef819c..000000000 --- a/themes/smartpocket/template/password.tpl +++ /dev/null @@ -1,27 +0,0 @@ -{include file='infos_errors.tpl'} - -{'Forgot your password?'|translate} -{if $action ne 'none'} - - - - {if $action eq 'lost'} - - {'Username or email'|@translate} - - - - - {elseif $action eq 'reset'} - - {'New password'|@translate} - - {'Confirm Password'|@translate} - - - - {/if} - - -{/if} {* $action ne 'none' *} - diff --git a/themes/smartpocket/template/picture.tpl b/themes/smartpocket/template/picture.tpl deleted file mode 100644 index 164aae15e..000000000 --- a/themes/smartpocket/template/picture.tpl +++ /dev/null @@ -1,175 +0,0 @@ -{if isset($errors) or not empty($infos)} -{include file='infos_errors.tpl'} -{/if} - - - {$SECTION_TITLE}{$LEVEL_SEPARATOR}{$current.TITLE} - -{$ELEMENT_CONTENT} - -{include file='picture_nav_buttons.tpl'|@get_extent:'picture_nav_buttons'} - -{if isset($COMMENT_IMG)} -{$COMMENT_IMG} -{/if} - - -{strip} - {if $display_info.author and isset($INFO_AUTHOR)} - - {'Author'|@translate} - {$INFO_AUTHOR} - - {/if} - {if $display_info.created_on and isset($INFO_CREATION_DATE)} - - {'Created on'|@translate} - {$INFO_CREATION_DATE} - - {/if} - {if $display_info.posted_on} - - {'Posted on'|@translate} - {$INFO_POSTED_DATE} - - {/if} - {if $display_info.dimensions and isset($INFO_DIMENSIONS)} - - {'Dimensions'|@translate} - {$INFO_DIMENSIONS} - - {/if} - {if $display_info.file} - - {'File'|@translate} - {$INFO_FILE} - - {/if} - {if $display_info.filesize and isset($INFO_FILESIZE)} - - {'Filesize'|@translate} - {$INFO_FILESIZE} - - {/if} - {if $display_info.tags and isset($related_tags)} - - {'Tags'|@translate} - - {foreach from=$related_tags item=tag name=tag_loop}{if !$smarty.foreach.tag_loop.first}, {/if}{$tag.name}{/foreach} - - - {/if} - {if $display_info.categories and isset($related_categories)} - - {'Albums'|@translate} - - - {foreach from=$related_categories item=cat} - {$cat} - {/foreach} - - - - {/if} - {if $display_info.visits} - - {'Visits'|@translate} - {$INFO_VISITS} - - {/if} - -{if $display_info.rating_score and isset($rate_summary)} - - {'Rating score'|@translate} - - {if $rate_summary.count} - {$rate_summary.score} ({$rate_summary.count|@translate_dec:'%d rate':'%d rates'}) - {else} - {'no rate'|@translate} - {/if} - - -{/if} - -{if isset($rating)} - - - {if isset($rating.USER_RATE)}{'Update your rating'|@translate}{else}{'Rate this photo'|@translate}{/if} - - - - {foreach from=$rating.marks item=mark name=rate_loop} - {if isset($rating.USER_RATE) && $mark==$rating.USER_RATE} - - {else} - - {/if} - {/foreach} - - - -{/if} - - -{if isset($metadata)} - -{foreach from=$metadata item=meta} - {$meta.TITLE} - {foreach from=$meta.lines item=value key=label} - - {$label} - {$value} - - {/foreach} -{/foreach} - -{/if} - - -{if isset($COMMENT_COUNT)} - - {$COMMENT_COUNT|@translate_dec:'%d comment':'%d comments'} - - - {if isset($comment_add)} - - {'Add a comment'|@translate} - - {if $comment_add.SHOW_AUTHOR} - {'Author'|@translate}{if $comment_add.AUTHOR_MANDATORY} ({'mandatory'|@translate}){/if} : - - {/if} - {if $comment_add.SHOW_EMAIL} - {'Email address'|@translate}{if $comment_add.EMAIL_MANDATORY} ({'mandatory'|@translate}){/if} : - - {/if} - {'Website'|@translate} : - - {'Comment'|@translate} ({'mandatory'|@translate}) : - {$comment_add.CONTENT} - - - - - {/if} - {if isset($comments)} - - {if (($COMMENT_COUNT > 2) || !empty($navbar))} - - {if $COMMENT_COUNT > 2} - {$COMMENTS_ORDER_TITLE} - {/if} - {if !empty($navbar) }{include file='navigation_bar.tpl'|@get_extent:'navbar'}{/if} - - {/if} - {include file='comment_list.tpl' from="picture"} - - {/if} - - - -{/if}{*comments*} - -{include file='picture_nav_buttons.tpl'|@get_extent:'picture_nav_buttons'} - - diff --git a/themes/smartpocket/template/picture_content.tpl b/themes/smartpocket/template/picture_content.tpl deleted file mode 100644 index b8dc2277d..000000000 --- a/themes/smartpocket/template/picture_content.tpl +++ /dev/null @@ -1,2 +0,0 @@ - - diff --git a/themes/smartpocket/template/picture_nav_buttons.tpl b/themes/smartpocket/template/picture_nav_buttons.tpl deleted file mode 100644 index c18427f26..000000000 --- a/themes/smartpocket/template/picture_nav_buttons.tpl +++ /dev/null @@ -1,13 +0,0 @@ - -{strip} -{if isset($previous)} - {'Previous'|@translate} -{/if} -{if isset($U_UP) and !isset($slideshow)} - data-iconpos="notext" -{/if} -{if isset($next)} - {'Next'|@translate} -{/if} -{/strip} - diff --git a/themes/smartpocket/template/profile.tpl b/themes/smartpocket/template/profile.tpl deleted file mode 100644 index f4c1b8f25..000000000 --- a/themes/smartpocket/template/profile.tpl +++ /dev/null @@ -1,4 +0,0 @@ -{include file='infos_errors.tpl'} - -{$PROFILE_CONTENT} - diff --git a/themes/smartpocket/template/profile_content.tpl b/themes/smartpocket/template/profile_content.tpl deleted file mode 100644 index 2b6604fa1..000000000 --- a/themes/smartpocket/template/profile_content.tpl +++ /dev/null @@ -1,61 +0,0 @@ - - - - {'Username'|@translate} - - - - {if not $SPECIAL_USER} {* can modify password + email*} - - {'Email address'|@translate} - - - - - {'Password'|@translate} - - - - - {'New password'|@translate} - - - - - {'Confirm Password'|@translate} - - - {/if} - -{if $ALLOW_USER_CUSTOMIZATION} - - {'Number of photos per page'|@translate} - - - - - {'Language'|@translate} - {html_options name=language options=$language_options selected=$language_selection} - -{/if} - - - - {if $ALLOW_USER_CUSTOMIZATION} - - - - - - {/if} - - - - - {if $ALLOW_USER_CUSTOMIZATION} - - {/if} - - - - diff --git a/themes/smartpocket/template/redirect.tpl b/themes/smartpocket/template/redirect.tpl deleted file mode 100644 index 61f88885e..000000000 --- a/themes/smartpocket/template/redirect.tpl +++ /dev/null @@ -1,9 +0,0 @@ - - {$REDIRECT_MSG} - - - - - {'Click here if your browser does not automatically forward you'|@translate} - - diff --git a/themes/smartpocket/template/register.tpl b/themes/smartpocket/template/register.tpl deleted file mode 100644 index ee395f2d4..000000000 --- a/themes/smartpocket/template/register.tpl +++ /dev/null @@ -1,38 +0,0 @@ -{include file='infos_errors.tpl'} - -{'Register'|@translate} - - - - * {'Username'|@translate} - - - - - * {'Password'|@translate} - - - - - * {'Confirm Password'|@translate} - - - - - {if $obligatory_user_mail_address}* {/if}{'Email address'|@translate} - - - - - {'Send my connection settings by email'|@translate} - - - - - - - - - - - diff --git a/themes/smartpocket/template/search.tpl b/themes/smartpocket/template/search.tpl deleted file mode 100644 index 33c3eabb0..000000000 --- a/themes/smartpocket/template/search.tpl +++ /dev/null @@ -1,112 +0,0 @@ -{combine_script id='jquery.selectize' load='footer' path='themes/default/js/plugins/selectize.min.js'} -{combine_css id='jquery.selectize' path="themes/default/js/plugins/selectize.{$themeconf.colorscheme}.css"} - -{footer_script} -jQuery(document).ready(function() { - jQuery("#authors, #tags, #categories").each(function() { - jQuery(this).selectize({ - plugins: ['remove_button'], - maxOptions:jQuery(this).find("option").length - }); - }) -}); -{/footer_script} - -{html_style} -.ui-checkbox, .ui-radio, .ui-btn-text { - z-index:0; -} - -.form-actions { - margin-top:3em; - margin-bottom:3em; -} -{/html_style} - -{include file='infos_errors.tpl'} - - - {'Search'|@translate} - - - - - - {'Search for words'|@translate} - - - - - {'Search for all terms'|@translate} - - - {'Search for any term'|@translate} - - - - {'Apply on properties'|translate} - - - {'Photo title'|translate} - - - {'Photo description'|translate} - - - {'File name'|translate} - -{if isset($TAGS)} - - {'Tags'|translate} -{/if} - - -{if count($AUTHORS)>=1} - - {'Search for Author'|@translate} - -{foreach from=$AUTHORS item=author} - {$author.author|strip_tags:false} ({$author.counter|translate_dec:'%d photo':'%d photos'}) -{/foreach} - - -{/if} - -{if isset($TAGS)} - - {'Search tags'|@translate} - -{foreach from=$TAGS item=tag} - {$tag.name} ({$tag.counter|translate_dec:'%d photo':'%d photos'}) -{/foreach} - - - {'All tags'|@translate} - - - {'Any tag'|@translate} - -{/if} - - - {'Search in albums'|@translate} - - {html_options options=$category_options selected=$category_options_selected} - - - - {'Search in sub-albums'|@translate} - - - - - - - - - - - - diff --git a/themes/smartpocket/template/tags.tpl b/themes/smartpocket/template/tags.tpl deleted file mode 100644 index c0c9f6e5a..000000000 --- a/themes/smartpocket/template/tags.tpl +++ /dev/null @@ -1,15 +0,0 @@ -{include file='infos_errors.tpl'} -{if isset($tags)} - - {'Tags'|@translate} - {foreach from=$tags item=tag} - {$tag.name}{$tag.counter|@translate_dec:'%d photo':'%d photos'} - {/foreach} - -{elseif isset($letters)} - - {foreach from=$letters item=letter}{foreach from=$letter.tags item=tag} - {$tag.name}{$tag.counter|@translate_dec:'%d photo':'%d photos'} - {/foreach}{/foreach} -{/if} - diff --git a/themes/smartpocket/template/thumbnails.tpl b/themes/smartpocket/template/thumbnails.tpl deleted file mode 100644 index d19fc7d4c..000000000 --- a/themes/smartpocket/template/thumbnails.tpl +++ /dev/null @@ -1,45 +0,0 @@ -{if !empty($thumbnails)} -{$row_height=216} -{$hmargin=4} -{$vmargin=5} -{$container_margin=-10} - -{combine_script id='klass' path='themes/smartpocket/js/klass.min.js'} -{combine_script id='photoswipe' path='themes/smartpocket/js/code.photoswipe.jquery.min.js' require='klass,jquery.mobile'} -{combine_script id='smartpocket' path='themes/smartpocket/js/smartpocket.js' require='photoswipe'} -{combine_script id='sp.thumb.arrange' path='themes/smartpocket/js/thumb.arrange.js' require='jquery' load='footer'} -{footer_script} -var var_loop = {if $smartpocket.loop}true{else}false{/if}, var_autohide = {$smartpocket.autohide}, var_trad = "{'More Information'|@translate}"; -var SPThumbsOpts ={ hMargin:{$hmargin},rowHeight:{$row_height}}; -{/footer_script} -{$thumb_picker->init($row_height)} -{html_style} -.thumbnails .liEmpty{ display:none} -.thumbnails LI{ margin-left:{$hmargin}px; margin-bottom:{$vmargin}px} -.thumbnails { margin:0 {$container_margin}px 0 {$container_margin-$hmargin}px} -{/html_style} -{strip} - -{/strip} -{foreach from=$thumbnails item=thumbnail}{strip} -{$derivative=$thumb_picker->pick($thumbnail.src_image)} -{if isset($page_selection[$thumbnail.id])} - -{if !isset($thumbnail.representative_ext)} - -{else} - -{/if} - get_size_htm()} alt="{$thumbnail.TN_ALT}"> -{else} - - -{/if} - -{/strip}{/foreach} - -{/if} diff --git a/themes/smartpocket/theme.css b/themes/smartpocket/theme.css deleted file mode 100644 index 09e6ef899..000000000 --- a/themes/smartpocket/theme.css +++ /dev/null @@ -1,71 +0,0 @@ -@import "jquery.mobile.css"; -@import "photoswipe.css"; - -.title { margin: 10px; text-align: center; } -.title .ui-btn { margin-top: -5px; } -. { float: right; } -.home_button { float: left; } -.pwg_footer h6 { margin: 8px; text-align:right;} - -.errors h3, .infos h3{ float:left; margin-top:8px; } -.errors div, .infos div { float:right; margin-top:4px; } -.errors p, .infos p { clear:both; font-size:85%; margin-bottom:8px; } - -.ui-icon-profil { background-image: url("images/profil.png"); background-color: transparent; } - -.ui-content { overflow: hidden; } -.ui-field-contain, .ui-br { padding: 5px; border: 0 !important; } - -.thumbnails { list-style: none; padding: 0} -.thumbnails:after { clear: both; content: "."; display: block; height: 0; visibility: hidden; } -.thumbnails li { - float: left; - position: relative; - overflow: hidden; - display: inline; -} -.thumbnails li a { - position: absolute; -} - -#more_link { - color: #FFFFFF; - display: table-cell; - font-size: 1.1em; - text-decoration: none; - vertical-align: middle; - cursor: pointer; -} -.ui-panel-inner > .ui-listview { - margin: -15px -15px 0; -} -#menubar .ui-collapsible-heading-toggle.ui-btn-up-a { - background:linear-gradient(#6FACD5, #497BAE) repeat scroll 0 0 #5E87B0; -} - -.ui-li-desc { - text-overflow: clip; - white-space: normal; -} -#PictureInfo { - font-size: 0.8em; -} -#PictureInfo * { - font-size: 1em; -} -#addComment textarea.ui-input-text { - min-height: 100px; -} -#picture_page { - text-align: center; -} - -#colorbox, #cboxOverlay, #cboxWrapper { - display:none; - left: 0; - overflow: hidden; - position: absolute; - top: 0; - z-index:-1; - opacity:0 !important -} diff --git a/themes/smartpocket/themeconf.inc.php b/themes/smartpocket/themeconf.inc.php deleted file mode 100644 index fa43ff03f..000000000 --- a/themes/smartpocket/themeconf.inc.php +++ /dev/null @@ -1,198 +0,0 @@ - true, -); - -// Need upgrade? -global $conf; -include(PHPWG_THEMES_PATH.'smartpocket/admin/upgrade.inc.php'); - -load_language('theme.lang', PHPWG_THEMES_PATH.'smartpocket/'); - - -// Redirect if page is not compatible with mobile theme -/*if (!in_array(script_basename(), array('index', 'register', 'profile', 'identification', 'ws', 'admin'))) - redirect(duplicate_index_url()); -*/ - - -class SPThumbPicker -{ - var $candidates; - var $default; - var $height; - - function init($height) - { - $this->candidates = array(); - foreach( ImageStdParams::get_defined_type_map() as $params) - { - if ($params->max_height() < $height || $params->sizing->max_crop) - continue; - if ($params->max_height() > 3*$height) - break; - $this->candidates[] = $params; - } - $this->default = ImageStdParams::get_custom($height*3, $height, 1, 0, $height ); - $this->height = $height; - } - - function pick($src_image) - { - $ok = false; - foreach($this->candidates as $candidate) - { - $deriv = new DerivativeImage($candidate, $src_image); - $size = $deriv->get_size(); - if ($size[1]>=$row_height-2) - { - $ok = true; - break; - } - } - if (!$ok) - { - $deriv = new DerivativeImage($this->default, $src_image); - } - return $deriv; - } -} - -//Retrive all pictures on thumbnails page -add_event_handler('loc_index_thumbnails_selection', 'sp_select_all_thumbnails'); - -function sp_select_all_thumbnails($selection) -{ - global $page, $template; - - $template->assign('page_selection', array_flip($selection)); - $template->assign('thumb_picker', new SPThumbPicker() ); - return $page['items']; -} - -// Retrive all categories on thumbnails page -add_event_handler('loc_end_index_category_thumbnails', 'sp_select_all_categories'); - -function sp_select_all_categories($selection) -{ - global $tpl_thumbnails_var; - return $tpl_thumbnails_var; -} - -// Get better derive parameters for screen size -$type = IMG_LARGE; -if (!empty($_COOKIE['screen_size'])) -{ - $screen_size = explode('x', $_COOKIE['screen_size']); - foreach (ImageStdParams::get_all_type_map() as $type => $map) - { - if (max($map->sizing->ideal_size) >= max($screen_size) and min($map->sizing->ideal_size) >= min($screen_size)) - break; - } -} - -$this->assign('picture_derivative_params', ImageStdParams::get_by_type($type)); -$this->assign('thumbnail_derivative_params', ImageStdParams::get_by_type(IMG_SQUARE)); - -add_event_handler('loc_end_section_init', 'sp_end_section_init'); -function sp_end_section_init() -{ - global $page, $template; - - // variables to log history - $template->assign( - 'smartpocket_log_history', - array( - 'cat_id' => @$page['category']['id'], - 'section' => @$page['section'], - 'tags_string' => @implode(',', @$page['tag_ids']), - ) - ); -} - -add_event_handler('ws_add_methods', 'sp_add_methods'); -function sp_add_methods($arr) -{ - $service = &$arr[0]; - $service->addMethod( - 'smartpocket.images.logHistory', - 'ws_sp_log_history', - array( - 'image_id' => array('type'=>WS_TYPE_ID), - 'cat_id' => array('type'=>WS_TYPE_ID, 'default'=>null), - 'section' => array('default'=>null), - 'tags_string' => array('default'=>null), - ), - 'Log visit in history' - ); -} - -function ws_sp_log_history($params, &$service) -{ - global $logger, $page; - - if (!empty($params['section']) and in_array($params['section'], get_enums(HISTORY_TABLE, 'section'))) - { - $page['section'] = $params['section']; - } - - if (!empty($params['cat_id'])) - { - $page['category'] = array('id' => $params['cat_id']); - } - - if (!empty($params['tags_string']) and preg_match('/^\d+(,\d+)*$/', $params['tags_string'])) - { - $page['tag_ids'] = explode(',', $params['tags_string']); - } - - pwg_log($params['image_id'], 'picture'); -} -//------------------------------------------------------------- mobile version & theme config -add_event_handler('init', 'mobile_link'); - -function mobile_link() -{ - global $template, $conf; - $config = safe_unserialize( $conf['smartpocket'] ); - $template->assign( 'smartpocket', $config ); - if ( !empty($conf['mobile_theme']) && (get_device() != 'desktop' || mobile_theme())) - { - $template->assign(array( - 'TOGGLE_MOBILE_THEME_URL' => add_url_params(htmlspecialchars($_SERVER['REQUEST_URI']),array('mobile' => mobile_theme() ? 'false' : 'true')), - )); - } -} - - -if ( !function_exists( 'add_menu_on_public_pages' ) ) { - if ( defined('IN_ADMIN') and IN_ADMIN ) return false; - add_event_handler('loc_after_page_header', 'add_menu_on_public_pages', 20); - - function add_menu_on_public_pages() { - if ( function_exists( 'initialize_menu') ) return false; # The current page has already the menu - global $template, $page, $conf; - if ( isset($page['body_id']) and $page['body_id']=="thePicturePage" ) - { - $template->set_filenames(array( - 'add_menu_on_public_pages' => dirname(__FILE__) . '/template/add_menu_on_public_pages.tpl', - )); - include_once(PHPWG_ROOT_PATH.'include/menubar.inc.php'); - $template->parse('add_menu_on_public_pages'); - } - - - } -} - - -?> diff --git a/tools/piwigo_addSimple.pl b/tools/piwigo_addSimple.pl new file mode 100644 index 000000000..2b3aebd48 --- /dev/null +++ b/tools/piwigo_addSimple.pl @@ -0,0 +1,36 @@ +#!/usr/bin/perl + +use LWP::UserAgent; + +my %conf = ( + base_url => 'http://localhost/pwggit', +); + +my $ua = LWP::UserAgent->new; +$ua->cookie_jar({}); + +$ua->post( + $conf{base_url}.'/ws.php', + { + method => 'pwg.session.login', + username => 'plg', + password => 'plg', + } +); + +my $response = $ua->post( + $conf{base_url}.'/ws.php', + { + method => 'pwg.images.addSimple', + image => ['/Users/plg/Documents/IMG_7779.jpg'], + category => 6, + tags => 'tag1, tag2, another tag', + name => 'A nice title', + comment => 'A longer description', + author => 'Paul Nikanon', + level => 0, + }, + 'Content_Type' => 'form-data', +); + +use Data::Dumper; print Dumper($response->message); \ No newline at end of file diff --git a/tools/pwg_rel_create.sh b/tools/pwg_rel_create.sh index 0220534ae..860314107 100755 --- a/tools/pwg_rel_create.sh +++ b/tools/pwg_rel_create.sh @@ -79,11 +79,27 @@ done # | themes | # +--------------------------------------------------------------------------+ -cd /tmp/$version/piwigo/themes -for themefile in $(ls */themeconf.inc.php) +for theme in modus elegant smartpocket do + cd /tmp/$version/piwigo/themes + + git_url=https://github.com/Piwigo/piwigo-${theme}.git + + # clone repo + git clone $git_url $theme + + # enter theme directory for next actions + cd $theme + # change version - perl $scriptdir/replace_version.pl --file=$themefile --version=$version + perl $scriptdir/replace_version.pl --file=themeconf.inc.php --version=$version + + # register metadata in dedicated file + echo $git_url > pem_metadata.txt + git log -n 1 --pretty=format:"%H %ad" --date=iso8601 >> pem_metadata.txt + + # remove Git metadata + rm -rf .git done # +--------------------------------------------------------------------------+ diff --git a/tools/triggers_list.php b/tools/triggers_list.php index 8ac7e20ee..2b3b05035 100644 --- a/tools/triggers_list.php +++ b/tools/triggers_list.php @@ -461,6 +461,13 @@ array( 'files' => array('notification.php'), 'infos' => 'New in 2.5', ), +array( + 'name' => 'loc_end_add_uploaded_file', + 'type' => 'trigger_notify', + 'vars' => array('array', 'image_infos'), + 'files' => array('admin\include\functions_upload.inc.php (add_uploaded_file)'), + 'infos' => 'New in 2.11', +), array( 'name' => 'loc_end_password', 'type' => 'trigger_notify', diff --git a/tools/ws.htm b/tools/ws.htm index a97d16904..a401ffef1 100644 --- a/tools/ws.htm +++ b/tools/ws.htm @@ -242,7 +242,7 @@ diff --git a/upgrade.php b/upgrade.php index 659956b0c..5da742ca8 100644 --- a/upgrade.php +++ b/upgrade.php @@ -165,9 +165,6 @@ else if ('pl_PL' == $language) { else if ('zh_CN' == $language) { define('PHPWG_DOMAIN', 'cn.piwigo.org'); } -else if ('hu_HU' == $language) { - define('PHPWG_DOMAIN', 'hu.piwigo.org'); -} else if ('ru_RU' == $language) { define('PHPWG_DOMAIN', 'ru.piwigo.org'); } @@ -186,7 +183,7 @@ else if ('pt_BR' == $language) { else { define('PHPWG_DOMAIN', 'piwigo.org'); } -define('PHPWG_URL', 'http://'.PHPWG_DOMAIN); +define('PHPWG_URL', 'https://'.PHPWG_DOMAIN); load_language( 'common.lang', '', array('language'=>$language, 'target_charset'=>'utf-8', 'no_fallback' => true) ); load_language( 'admin.lang', '', array('language'=>$language, 'target_charset'=>'utf-8', 'no_fallback' => true) ); @@ -335,6 +332,14 @@ else if (!in_array('auth_key_id', $columns_of[PREFIX_TABLE.'history'])) { $current_release = '2.7.0'; } +else if (!in_array('history_id_to', $columns_of[PREFIX_TABLE.'history_summary'])) +{ + $current_release = '2.8.0'; +} +else if (!in_array(PREFIX_TABLE.'activity', $tables)) +{ + $current_release = '2.9.0'; +} else { // retrieve already applied upgrades @@ -344,9 +349,9 @@ SELECT id ;'; $applied_upgrades = array_from_query($query, 'id'); - if (!in_array(152, $applied_upgrades)) + if (!in_array(159, $applied_upgrades)) { - $current_release = '2.8.0'; + $current_release = '2.10.0'; } else { diff --git a/ws.php b/ws.php index 8e78c1bdf..bceda3a04 100644 --- a/ws.php +++ b/ws.php @@ -320,7 +320,10 @@ function ws_addDefaultMethods( $arr ) $service->addMethod( 'pwg.session.login', 'ws_session_login', - array('username', 'password'), + array( + 'username' => array(), + 'password' => array('default'=>null), + ), 'Tries to login the user.', $ws_functions_root . 'pwg.php', array('post_only'=>true) @@ -482,6 +485,36 @@ function ws_addDefaultMethods( $arr ) $ws_functions_root . 'pwg.images.php', array('admin_only'=>true, 'post_only'=>true) ); + + $service->addMethod( + 'pwg.images.uploadAsync', + 'ws_images_uploadAsync', + array( + 'username' => array(), + 'password' => array('default'=>null), + 'chunk' => array('type'=>WS_TYPE_INT|WS_TYPE_POSITIVE), + 'chunk_sum' => array(), + 'chunks' => array('type'=>WS_TYPE_INT|WS_TYPE_POSITIVE), + 'original_sum' => array(), + 'category' => array('default'=>null, 'flags'=>WS_PARAM_FORCE_ARRAY, 'type'=>WS_TYPE_ID), + 'filename' => array(), + 'name' => array('default'=>null), + 'author' => array('default'=>null), + 'comment' => array('default'=>null), + 'date_creation' => array('default'=>null), + 'level' => array('default'=>0, 'maxValue'=>max($conf['available_permission_levels']), 'type'=>WS_TYPE_INT|WS_TYPE_POSITIVE), + 'tag_ids' => array('default'=>null, 'info'=>'Comma separated ids'), + 'image_id' => array('default'=>null, 'type'=>WS_TYPE_ID), + ), + 'Upload photo by chunks in a random order. +Use the $_FILES[file] field for uploading file. +Start with chunk 0 (zero). +Set the form encoding to "form-data". +You can update an existing photo if you define an existing image_id. +Requires admin credentials.', + $ws_functions_root . 'pwg.images.php', + array('post_only'=>true) + ); $service->addMethod( 'pwg.images.delete', @@ -499,7 +532,7 @@ function ws_addDefaultMethods( $arr ) 'pwg.images.setMd5sum', 'ws_images_setMd5sum', array( - 'block_size' => array('default'=>1000, 'type'=>WS_TYPE_INT|WS_TYPE_POSITIVE), + 'block_size' => array('default'=>$conf['checksum_compute_blocksize'], 'type'=>WS_TYPE_INT|WS_TYPE_POSITIVE), 'pwg_token' => array(), ), 'Set md5sum column, by blocks. Returns how many md5sums were added and how many are remaining.', @@ -637,12 +670,68 @@ function ws_addDefaultMethods( $arr ) $service->addMethod( // TODO: create multiple tags 'pwg.tags.add', 'ws_tags_add', - array('name'), + array( + 'name' => array() + ), 'Adds a new tag.', $ws_functions_root . 'pwg.tags.php', array('admin_only'=>true) ); + $service->addMethod( + 'pwg.tags.delete', + 'ws_tags_delete', + array( + 'tag_id' => array('type'=>WS_TYPE_ID, + 'flags'=>WS_PARAM_FORCE_ARRAY), + 'pwg_token' => array(), + ), + 'Delete tag(s) by ID.', + $ws_functions_root . 'pwg.tags.php', + array('admin_only'=>true) + ); + + $service->addMethod( + 'pwg.tags.rename', + 'ws_tags_rename', + array( + 'tag_id' => array('type'=>WS_TYPE_ID), + 'new_name' => array(), + 'pwg_token' => array(), + ), + 'Rename tag', + $ws_functions_root . 'pwg.tags.php', + array('admin_only'=>true) + ); + + $service->addMethod( + 'pwg.tags.duplicate', + 'ws_tags_duplicate', + array( + 'tag_id' => array('type'=>WS_TYPE_ID), + 'copy_name' => array(), + 'pwg_token' => array(), + ), + 'Create a copy of a tag', + $ws_functions_root . 'pwg.tags.php', + array('admin_only'=>true, 'post_only'=>true) + ); + + $service->addMethod( + 'pwg.tags.merge', + 'ws_tags_merge', + array( + 'destination_tag_id' => array('type'=>WS_TYPE_ID, + 'info'=>'Is not necessarily part of groups to merge'), + 'merge_tag_id' => array('flags'=>WS_PARAM_FORCE_ARRAY, + 'type'=>WS_TYPE_ID), + 'pwg_token' => array(), + ), + 'Merge tags in one other group', + $ws_functions_root . 'pwg.tags.php', + array('admin_only'=>true, 'post_only'=>true) + ); + $service->addMethod( 'pwg.images.exist', 'ws_images_exist', @@ -907,6 +996,34 @@ function ws_addDefaultMethods( $arr ) array('admin_only'=>true, 'post_only'=>true) ); + $service->addMethod( + 'pwg.groups.merge', + 'ws_groups_merge', + array( + 'destination_group_id' => array('type'=>WS_TYPE_ID, + 'info'=>'Is not necessarily part of groups to merge'), + 'merge_group_id' => array('flags'=>WS_PARAM_FORCE_ARRAY, + 'type'=>WS_TYPE_ID), + 'pwg_token' => array(), + ), + 'Merge groups in one other group', + $ws_functions_root . 'pwg.groups.php', + array('admin_only'=>true, 'post_only'=>true) + ); + + $service->addMethod( + 'pwg.groups.duplicate', + 'ws_groups_duplicate', + array( + 'group_id' => array('type'=>WS_TYPE_ID), + 'copy_name' => array(), + 'pwg_token' => array(), + ), + 'Create a copy of a group', + $ws_functions_root . 'pwg.groups.php', + array('admin_only'=>true, 'post_only'=>true) + ); + $service->addMethod( 'pwg.users.getList', 'ws_users_getList', @@ -1076,6 +1193,48 @@ enabled_high, registration_date, registration_date_string, registration_date_sin $ws_functions_root . 'pwg.permissions.php', array('admin_only'=>true, 'post_only'=>true) ); + + $service->addMethod( + 'pwg.users.favorites.add', + 'ws_users_favorites_add', + array( + 'image_id' => array('type'=>WS_TYPE_ID) + ), + 'Adds the indicated image to the current user\'s favorite images.', + $ws_functions_root . 'pwg.users.php' + ); + + $service->addMethod( + 'pwg.users.favorites.remove', + 'ws_users_favorites_remove', + array( + 'image_id' => array('type'=>WS_TYPE_ID) + ), + 'Removes the indicated image from the current user\'s favorite images.', + $ws_functions_root . 'pwg.users.php' + ); + + $service->addMethod( + 'pwg.users.favorites.getList', + 'ws_users_favorites_getList', + array( + 'per_page' => array( + 'default'=>100, + 'maxValue'=>$conf['ws_max_images_per_page'], + 'type'=>WS_TYPE_INT|WS_TYPE_POSITIVE + ), + 'page' => array( + 'default'=>0, + 'type'=>WS_TYPE_INT|WS_TYPE_POSITIVE + ), + 'order' => array( + 'default'=>null, + 'info'=>'id, file, name, hit, rating_score, date_creation, date_available, random' + ) + ), + 'Returns the favorite images of the current user.', + $ws_functions_root . 'pwg.users.php' + ); } ?>
{$grp_name}
{$grp_members}
- {'Add group'|translate} -
{'Selection mode'|@translate}
{'No groups selected, no actions possible.'|@translate}
{'Your selection'|@translate}
- {'Group name'|translate} - -
- - {'Cancel'|@translate} -
{'Choose which group to merge these groups into'|@translate}
{'The other groups will be removed'|@translate}
You are about to delete 0 groups, are you sure?
{'Add group'|translate}
{$group.NAME}{$group.IS_DEFAULT}
{if $group.MEMBERS>0}{$group.MEMBERS}{$group.L_MEMBERS}{else}{$group.MEMBERS}{/if}
Associate User
Showing 39 users out of 251
{'Please select at least two groups'|@translate}
{'Are you sure?'|@translate}
- {$group.NAME} > -
- {$group.NAME} > {if empty($group.IS_DEFAULT)}{'This group will be set to default'|@translate}{else}{'This group will be unset to default'|@translate}{/if} -
-
{'Only private albums are listed'|@translate}
+ + {if $ACTIVITY_LAST_WEEKS[$WEEK_NUMBER][$DAY_NUMBER]["number"] > 1}{"%s Activities"|@translate:$ACTIVITY_LAST_WEEKS[$WEEK_NUMBER][$DAY_NUMBER]["number"]}{else}{"%s Activity"|@translate:$ACTIVITY_LAST_WEEKS[$WEEK_NUMBER][$DAY_NUMBER]["number"]}{/if} + {$ACTIVITY_LAST_WEEKS[$WEEK_NUMBER][$DAY_NUMBER]["date"]} + + + {foreach from=$ACTIVITY_LAST_WEEKS[$WEEK_NUMBER][$DAY_NUMBER]["details"] item=actions key=cat} + + {if $cat == "Group"} {$cat|@translate} + {elseif $cat == "User"} {$cat|@translate} + {elseif $cat == "Album"} {$cat|@translate} + {elseif $cat == "Photo"} {$cat|@translate} + {elseif $cat == "Tag"} {$cat|@translate} + {else} {$cat|@translate} {/if} + + {foreach from=$actions item=number key=action} + {if $action == "Edit"} {$number} + {elseif $action == "Add"} {$number} + {elseif $action == "Delete"} {$number} + {elseif $action == "Login"} {$number} + {elseif $action == "Logout"} {$number} + {elseif $action == "Move"} {$number} + {else} ({$action|@translate}) {$number} + {/if} + {/foreach} + + {/foreach} +
{round($value/$STORAGE_TOTAL*100)}%
{$type}
{$type|translate}
{if $ENABLE_SYNCHRONIZATION} {'Quick Local Synchronization'|translate} @@ -149,4 +263,4 @@ jQuery().ready(function(){ {if isset($SUBSCRIBE_BASE_URL)} {'Subscribe %s to Piwigo Announcements Newsletter'|@translate:$EMAIL} {'... or hide this link'|translate} {/if} -
{'Each email sent will contain its own automatic authentication key on links, valid for %s.'|translate:$auth_key_duration} {'For security reason, authentication keys do not work for administrators.'|translate} diff --git a/admin/themes/default/template/permalinks.tpl b/admin/themes/default/template/permalinks.tpl index 648048949..a7e9f6a31 100644 --- a/admin/themes/default/template/permalinks.tpl +++ b/admin/themes/default/template/permalinks.tpl @@ -63,7 +63,7 @@ form fieldset p.actionButtons {margin-bottom:0}
{'Piwigo for Android application empowers you to connect your Android phone or table to your Piwigo gallery, create some albums and upload several photos at once.'|@translate}
+{'Available on'|@translate} Google Play +
{'Piwigo requires an album to add photos.'|translate}
{'The picture dimensions will be reduced to %dx%d pixels.'|@translate:$original_resize_maxwidth:$original_resize_maxheight}
{'Title'|@translate} @@ -105,7 +146,7 @@ jQuery("a.preview-box").colorbox({ {'Creation date'|@translate} - + @@ -117,7 +158,7 @@ jQuery("a.preview-box").colorbox({ + data-default="{$STORAGE_ALBUM}" name="associate[]" multiple style="width:calc(100% + 2px);">
@@ -125,7 +166,7 @@ jQuery("a.preview-box").colorbox({ + name="represent[]" multiple style="width:calc(100% + 2px);">
@@ -133,7 +174,7 @@ jQuery("a.preview-box").colorbox({ + data-create="true" name="tags[]" multiple style="width:calc(100% + 2px);">
@@ -145,15 +186,16 @@ jQuery("a.preview-box").colorbox({
{'Who can see this photo?'|@translate} +
- - -
+ + +
+ {if $plugin.STATE == 'active'} + {'Active Plugins'|@translate} + {elseif $plugin.STATE == 'inactive'} + {'Inactive Plugins'|@translate} + {elseif $plugin.STATE == 'missing'} + {'Missing Plugins'|@translate} + {elseif $plugin.STATE == 'merged'} + {'Obsolete Plugins'|@translate} + {/if} +
Your browser does not support the canvas element.
{$tag_name}
- {'Add a tag'|translate} - {'Select tags'|translate} -
{'No tags selected, no actions possible.'|@translate}
- {foreach from=$tags item=tag name=tagloop} - {$tag.NAME} {'(this tag will be deleted)'|@translate} - {/foreach} -
- - - -
{'Choose which tag to merge these tags into'|@translate}
{'The other tags will be removed'|@translate}
- - - - {'Are you sure?'|@translate} - - we really need you to confirm -
{'Add a tag'|@translate}
{'Select'|@translate}
{$warning_tags}
{$message_tags}
- - {'Apply action'|translate} {* icon-trash because the only action is deletion *} - - -
{$plugin.REV_DESC|@htmlspecialchars|@nl2br}
{$language.REV_DESC|@htmlspecialchars|@nl2br}
+ {$MINOR_VERSION} + {'This is a minor update, with only bug corrections.'|@translate} +{if isset($MINOR_RELEASE_PHP_REQUIRED)} + {'Requires PHP %s'|translate:$MINOR_RELEASE_PHP_REQUIRED} +{else} + {'Update to Piwigo %s'|@translate:$MINOR_VERSION} +{/if}
{'You can update to Piwigo %s directly, without upgrading to Piwigo %s (recommended).'|@translate:$MAJOR_VERSION:$MINOR_VERSION}
+ {$MAJOR_VERSION} + {'This is a major update, with new exciting features.'|translate:$MAJOR_RELEASE_URL} + {'Some themes and plugins may be not available yet.'|translate} +{if isset($MAJOR_RELEASE_PHP_REQUIRED)} + {'Requires PHP %s'|translate:$MAJOR_RELEASE_PHP_REQUIRED} +{else} + {'Update to Piwigo %s'|@translate:$MAJOR_VERSION} +{/if} +
+ + {'You can update to Piwigo %s directly, without upgrading to Piwigo %s (recommended).'|@translate:$MAJOR_VERSION:$MINOR_VERSION} +
+ {$MINOR_VERSION} +
{'A new version of Piwigo is available.'|@translate} {'This is a minor update, with only bug corrections.'|@translate}
+ +{if isset($MINOR_RELEASE_PHP_REQUIRED)} + {'Requires PHP %s'|translate:$MINOR_RELEASE_PHP_REQUIRED} +{/if} +
{'Update in progress...'|@translate}
+ {$MAJOR_VERSION} +
{'A new version of Piwigo is available.'|@translate} {'This is a major update, with new exciting features.'|@translate:$RELEASE_URL} {'Some themes and plugins may be not available yet.'|@translate} @@ -69,14 +133,17 @@ li { margin: 5px; } {counter assign=i}
{'Include history data (Warning: server memory limit may be exceeded)'|@translate}
+ {'Always have a backup of your database and files.'|translate} + {'The best is to have them made automatically on a regular basis.'|translate} + {'If anything bad happens during the update, you would be able to restore a backup.'|translate} +
{'Following plugins may not be compatible with the new version of Piwigo:'|@translate}
{'I decide to update anyway'|@translate}
+
+{if isset($MAJOR_RELEASE_PHP_REQUIRED)} + {'Requires PHP %s'|translate:$MAJOR_RELEASE_PHP_REQUIRED} +{/if}
- {'Select:'|@translate} - {'All'|@translate}, - {'None'|@translate}, - {'Invert'|@translate} +
+ {'The whole page'|@translate} + {'The whole set'|@translate} + {'None'|@translate} + {'Invert'|@translate} - -
'; print_r($common_cats); echo '
".pwg_db_real_escape_string(l10n('Welcome to my photo gallery')).'
'; + +for ($upgrade_id = 157; $upgrade_id <= 159; $upgrade_id++) // TODO change on each release +{ + if (!file_exists(UPGRADES_PATH.'/'.$upgrade_id.'-database.php')) + { + continue; + } + + // maybe the upgrade task has already been applied in a previous and + // incomplete upgrade + if (in_array($upgrade_id, $applied)) + { + continue; + } + + unset($upgrade_description); + + echo "\n\n"; + echo '=== upgrade '.$upgrade_id."\n"; + + // include & execute upgrade script. Each upgrade script must contain + // $upgrade_description variable which describe briefly what the upgrade + // script does. + $up_start = get_moment(); + include(UPGRADES_PATH.'/'.$upgrade_id.'-database.php'); + + // notify upgrade (TODO change on each release) + $query = ' +INSERT INTO `'.PREFIX_TABLE.'upgrade` + (id, applied, description) + VALUES + (\''.$upgrade_id.'\', NOW(), \'[migration from 2.10.0 to '.PHPWG_VERSION.', '.get_elapsed_time($up_start, get_moment()).'] '.$upgrade_description.'\') +;'; + pwg_query($query); +} + +echo '
'; + +for ($upgrade_id = 153; $upgrade_id <= 156; $upgrade_id++) // TODO change on each release +{ + if (!file_exists(UPGRADES_PATH.'/'.$upgrade_id.'-database.php')) + { + continue; + } + + // maybe the upgrade task has already been applied in a previous and + // incomplete upgrade + if (in_array($upgrade_id, $applied)) + { + continue; + } + + unset($upgrade_description); + + echo "\n\n"; + echo '=== upgrade '.$upgrade_id."\n"; + + // include & execute upgrade script. Each upgrade script must contain + // $upgrade_description variable which describe briefly what the upgrade + // script does. + $up_start = get_moment(); + include(UPGRADES_PATH.'/'.$upgrade_id.'-database.php'); + + // notify upgrade (TODO change on each release) + $query = ' +INSERT INTO `'.PREFIX_TABLE.'upgrade` + (id, applied, description) + VALUES + (\''.$upgrade_id.'\', NOW(), \'[migration from 2.9.0 to '.PHPWG_VERSION.', '.get_elapsed_time($up_start, get_moment()).'] '.$upgrade_description.'\') +;'; + pwg_query($query); +} + +echo '
{'Choose what should be the default state for each panel, or disable the animation:'|@translate}
{$comment.CONTENT}
{''|@implode:$errors}
{''|@implode:$infos}
{$cat.CAPTION_NB_IMAGES}
{$COMMENT_IMG}
{'Author'|@translate}{if $comment_add.AUTHOR_MANDATORY} ({'mandatory'|@translate}){/if} :
{'Email address'|@translate}{if $comment_add.EMAIL_MANDATORY} ({'mandatory'|@translate}){/if} :
{'Website'|@translate} :
{'Comment'|@translate} ({'mandatory'|@translate}) :
{$comment_add.CONTENT}
- - {'Click here if your browser does not automatically forward you'|@translate} - -